Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

nVault String.


  • Zamknięty Temat jest zamknięty
16 odpowiedzi w tym temacie

#1 Dalinor

    Zaawansowany

  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:77
  • GG:
  • Lokalizacja:Rabka :)
Offline

Napisano 07.06.2011 05:45

Witam. Jak można zapisać i wczytać string poprzez nVault?

public Zapisz(id) 
{
if(is_user_connected(id))
{
if(is_user_bot(id))
return PLUGIN_CONTINUE;

new vaultkey[128], vaultdata[64], name[64];
new typ_zapisu = get_cvar_num("diablo_sql_save");
switch(typ_zapisu) {
case 0: get_user_name(id, name, charsmax(name));
case 1: get_user_ip(id, name, charsmax(name));
case 2: get_user_authid(id, name, charsmax(name));
}
format(vaultkey, charsmax(vaultkey), "%s-%i-string", name, typ_zapisu);
format(vaultdata, charsmax(vaultdata), "#%i", string[id]);
nvault_set(g_vault, vaultkey, vaultdata);
}
return PLUGIN_CONTINUE;
}

  • +
  • -
  • 0

#2 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 07.06.2011 11:02

Skoro string, to chyba
format(vaultdata, charsmax(vaultdata), "#%s", string[id]);

  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#3 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 07.06.2011 11:21

nvault_set(g_vault, vaultkey, string[id]);

  • +
  • -
  • 1

#4 Dalinor

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:77
  • GG:
  • Lokalizacja:Rabka :)
Offline

Napisano 07.06.2011 13:44

Sebul tak jak ty dałeś próbowałem. Nie zadziałało :/

R3X, a jakbym chciał dodać więcej stringów, to co wtedy ?
  • +
  • -
  • 0

#5 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 07.06.2011 22:34

format(vaultdata, charsmax(vaultdata), "^"%s^" ^"%s^"", string[id], string2[id]);
nvault_set(g_vault, vaultkey, aultdata);
+parse() przy odczycie

Jak próbowałeś i nie działa to spróbuj jeszcze raz bo to działa :)
  • +
  • -
  • 1

#6 Dalinor

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:77
  • GG:
  • Lokalizacja:Rabka :)
Offline

Napisano 07.06.2011 23:18

Dziękuję za pomoc. Macie po plusikach. Proszę o NIE zamykanie tematu. ^^

Dodano 08 czerwiec 2011 - 06:00:
Nie wczytuje tego stringa :/


format(vaultdata, charsmax(vaultdata), "#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#^"%s^"", a[id],b[id], c[id], d[id], e[id], f[id], g[id], h[id], i[id], j[id], k[id], l[id],sting[id]);


parse(vaultdata, a, 31, b, 31, c, 31,d, 31, e,31,f, g, 31, h, 31, i, 31, j, 31, k, 31, l, 31,string, 31);

Użytkownik Dalinor edytował ten post 07.06.2011 23:19

  • +
  • -
  • 0

#7 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 08.06.2011 11:05

sprawdzałeś jak działa funkcja parse?






no właśnie
  • +
  • -
  • 0

#8 Dalinor

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:77
  • GG:
  • Lokalizacja:Rabka :)
Offline

Napisano 08.06.2011 13:45

Eeee... To co jest źle ??
  • +
  • -
  • 0

#9 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 08.06.2011 18:53

nie # tylko spacjami oddziel dane
  • +
  • -
  • 1

#10 Dalinor

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:77
  • GG:
  • Lokalizacja:Rabka :)
Offline

Napisano 08.06.2011 19:44

No dobra.
Mam tak:
public ZapiszArtefakt(id) 
{
if(is_user_connected(id))
{
if(is_user_bot(id))
return PLUGIN_CONTINUE;

new vaultkey[128], vaultdata[64], name[64];
new typ_zapisu = get_cvar_num("diablo_sql_save");
switch(typ_zapisu) {
case 0: get_user_name(id, name, charsmax(name));
case 1: get_user_ip(id, name, charsmax(name));
case 2: get_user_authid(id, name, charsmax(name));
}
format(vaultkey, charsmax(vaultkey), "%s-%i-art", name, typ_zapisu);
format(vaultdata, charsmax(vaultdata), "#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i ^"%s^"", a_heal[id],a_vampire[id], a_respawn[id], a_dmg[id], a_redirect[id], a_silent[id], a_blind[id], a_drop[id], a_shake[id], a_antydmg[id], a_inv[id], wylosowal[id],player_artefakt[id]); // jeśli ktoś chce, może tutaj dodać więcej tych zmiennych, bez żadnego problemu
nvault_set(g_artefakt, vaultkey, vaultdata);
}
return PLUGIN_CONTINUE;
}

public WczytajArtefakt(id) {
if(is_user_bot(id))
return PLUGIN_CONTINUE;

new vaultkey[128], vaultdata[64], name[64];
new typ_zapisu = get_cvar_num("diablo_sql_save");
switch(typ_zapisu) {
case 0: get_user_name(id, name, charsmax(name));
case 1: get_user_ip(id, name, charsmax(name));
case 2: get_user_authid(id, name, charsmax(name));
}
format(vaultkey, charsmax(vaultkey), "%s-%i-art", name, typ_zapisu);
format(vaultdata, charsmax(vaultdata), "#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i ^"%s^"", a_heal[id],a_vampire[id], a_respawn[id], a_dmg[id], a_redirect[id], a_silent[id], a_blind[id], a_drop[id], a_shake[id], a_antydmg[id], a_inv[id], wylosowal[id],player_artefakt[id]);

nvault_get(g_artefakt, vaultkey, vaultdata, 63);

replace_all(vaultdata, charsmax(vaultdata), "#", " ");
new a_heal[32],a_vampire[32], a_respawn[32], a_dmg[32], a_redirect[32], a_silent[32], a_blind[32], a_drop[32], a_shake[32], a_antydmg[32],a_inv[32],wylosowal[32],player_artefakt[32];
parse(vaultdata, a_heal, 31, a_vampire, 31, a_respawn, 31, a_dmg, 31, a_redirect,31,a_silent, a_blind, 31, a_drop, 31, a_shake, 31, a_antydmg, 31, a_inv, 31, wylosowal, 31,player_artefakt, 31);

new a_healx = str_to_num(a_heal);
new a_vampirex= str_to_num(a_vampire);
new a_respawnx = str_to_num(a_respawn);
new a_dmgx = str_to_num(a_dmg);
new a_redirectx = str_to_num(a_redirect);
new a_silentx = str_to_num(a_silent);
new a_blindx = str_to_num(a_blind);
new a_dropx = str_to_num(a_drop);
new a_shakex = str_to_num(a_shake);
new a_antydmgx = str_to_num(a_antydmg);
new a_invx = str_to_num(a_inv);
new wylosowalx = str_to_num(wylosowal);
new player_artefaktx = str_to_num(player_artefakt);
a_heal[id] = a_healx;
a_vampire[id] = a_vampirex;
a_respawn[id] = a_respawnx;
a_dmg[id] = a_dmgx;
a_redirect[id] = a_redirectx;
a_silent[id] = a_silentx;
a_blind[id] = a_blindx;
a_drop[id] = a_dropx;
a_shake[id] = a_shakex;
a_antydmg[id] = a_antydmgx;
a_inv[id] = a_invx;
wylosowal[id] = wylosowalx;
player_artefakt[id] = player_artefaktx;

return PLUGIN_CONTINUE;
}


I zapisuje dobrze, ale już nie wczytuje stringa :/

Wpis z nVault:
Dalinor-0-art#0#0#0#2#0#0#0#0#0#0#0#1 "Swiety miecz"

Użytkownik Dalinor edytował ten post 09.06.2011 14:23

  • +
  • -
  • 0

#11 mierzwi

    Banned

  • Zbanowany

Reputacja: 235
Wszechwidzący

  • Postów:651
  • Lokalizacja:Polska
Offline

Napisano 10.06.2011 21:30

new player_artefaktx = str_to_num(player_artefakt);

jak chcesz string dac do num ? wtf ?
daj new player_artefaktx = player_artefakt;

jeśli masz fejsa i chcesz mi pomóc to wejdź tutaj: Zaproś kumpla by lubił nasz sklep | Facebook

na pewno jakoś C się odwdzięczę!


#12 Dalinor

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:77
  • GG:
  • Lokalizacja:Rabka :)
Offline

Napisano 10.06.2011 21:32

Hah. Nie zauważyłem :facepalm:

Dziękuję. Zaraz sprawdzę.

@EDIT

new player_artefaktx = player_artefakt; 


"Error: Array must be indexed (variable "-unknown-") on line 11500"

A więc dodałem:
new player_artefaktx = player_artefakt[id];


I nadal nie wczytuje. :/

Użytkownik Dalinor edytował ten post 10.06.2011 21:41

  • +
  • -
  • 0

#13 mierzwi

    Banned

  • Zbanowany

Reputacja: 235
Wszechwidzący

  • Postów:651
  • Lokalizacja:Polska
Offline

Napisano 12.06.2011 14:12

omg -.- player_artefakt[id] = player_artefaktx;

jeśli masz fejsa i chcesz mi pomóc to wejdź tutaj: Zaproś kumpla by lubił nasz sklep | Facebook

na pewno jakoś C się odwdzięczę!


#14 Dalinor

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:77
  • GG:
  • Lokalizacja:Rabka :)
Offline

Napisano 12.06.2011 17:39

Jest tak przecież ...
  • +
  • -
  • 0

#15 Goliath

    Godlike

  • Przyjaciel

Reputacja: 1 237
Godlike

  • Postów:2 334
  • GG:
  • Steam:steam
  • Imię:Maciej
  • Lokalizacja:Mońki
Offline

Napisano 12.06.2011 17:55

new a_heal[32],a_vampire[32], a_respawn[32], a_dmg[32], a_redirect[32], a_silent[32], a_blind[32], a_drop[32], a_shake[32], a_antydmg[32],a_inv[32],wylosowal[32],player_artefakt[32];

Po co tworzysz zmienne, nazywające się jak zmienne globalne? Zmień to na:
new a_healx[32], a_vampirex[32]...



new a_healx = str_to_num(a_heal);
new a_vampirex= str_to_num(a_vampire);
new a_respawnx = str_to_num(a_respawn);
new a_dmgx = str_to_num(a_dmg);
new a_redirectx = str_to_num(a_redirect);
new a_silentx = str_to_num(a_silent);
new a_blindx = str_to_num(a_blind);
new a_dropx = str_to_num(a_drop);
new a_shakex = str_to_num(a_shake);
new a_antydmgx = str_to_num(a_antydmg);
new a_invx = str_to_num(a_inv);
new wylosowalx = str_to_num(wylosowal);
new player_artefaktx = str_to_num(player_artefakt);
a_heal[id] = a_healx;
a_vampire[id] = a_vampirex;
a_respawn[id] = a_respawnx;
a_dmg[id] = a_dmgx;
a_redirect[id] = a_redirectx;
a_silent[id] = a_silentx;
a_blind[id] = a_blindx;
a_drop[id] = a_dropx;
a_shake[id] = a_shakex;
a_antydmg[id] = a_antydmgx;
a_inv[id] = a_invx;
wylosowal[id] = wylosowalx;
player_artefakt[id] = player_artefaktx;

Po co tak to rozkładać? A wiesz, że ostatni argument to string, a ty zmieniasz go na liczbę? Ma być tak (uwzględniając powyższą zmianę):

a_heal[id] = str_to_num(a_healx);
a_vampire[id] = str_to_num(a_vampirex);
a_respawn[id] = str_to_num(a_respawnx);
a_dmg[id] = str_to_num(a_dmgx);
a_redirect[id] = str_to_num(a_redirectx);
a_silent[id] = str_to_num(a_silentx);
a_blind[id] = str_to_num(a_blindx);
a_drop[id] = str_to_num(a_dropx);
a_shake[id] = str_to_num(a_shakex);
a_antydmg[id] = str_to_num(a_antydmgx);
a_inv[id] = str_to_num(a_invx);
wylosowal[id] = str_to_num(wylosowalx);
copy(player_artefakt[id], 31, player_artefaktx);

  • +
  • -
  • 1

#16 Dalinor

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:77
  • GG:
  • Lokalizacja:Rabka :)
Offline

Napisano 12.06.2011 18:17

Po co tworzysz zmienne, nazywające się jak zmienne globalne?


o_O Ale ja głupi :facepalm:

Zaraz sprawdzę ^^

@EDIT

Dalej nie działa :(.

Dodano 12 czerwiec 2011 - 18:44:
Dobra poradziłem sobie. Dziękuje wszystkim za pomoc. Można zamknąć :)

Użytkownik Dalinor edytował ten post 12.06.2011 18:29

  • +
  • -
  • 0

#17 mierzwi

    Banned

  • Zbanowany

Reputacja: 235
Wszechwidzący

  • Postów:651
  • Lokalizacja:Polska
Offline

Napisano 12.06.2011 22:20

jeszcze taka mała uwaga, nie formatuje się w load, bo to jest nie potrzebne 1 słowem

jeśli masz fejsa i chcesz mi pomóc to wejdź tutaj: Zaproś kumpla by lubił nasz sklep | Facebook

na pewno jakoś C się odwdzięczę!





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych