←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] Problem z nvault

Zablokowany

  • +
  • -
mimo114 - zdjęcie mimo114 24.02.2013

Witam.
Mam 2 funkcje zapisz i wczytaj lecz niestety zapisywanie raz działa a raz nie.
Po sprawdzeniu pliku vault zobaczyłem że zapisało 2 boty
Pbmod-[P*D]Pseudolukian (100)0 0 0 0 0 0 6 0©k*Q"

i zaniepokoił mnie wynik ponieważ tylko pierwsze 2 liczby które są zapisywane mogą być większe niż 1 pozostałe w kodzie są modyfikowane tylko w sposób np. player_b_premium[id][5]=1 oraz w zapytaniach co raczej ich nie modyfikuje.
Po za tym po zwiększeniu 2 wartości nie została ona wcale zapisana.
Wartości są zapisywane po każdym zabiciu gracza oraz w funkcji client_disconect.
public zapiszpb(id)
{
new name[35]
get_user_name(id,name,34)

new key[64],data[256]
format(key,charsmax(key),"Pbmod-%s",name)
format(data,charsmax(data),"%i %i %i %i %i %i %i %i",player_b_honor[id],player_b_punktybonusowe[id],player_b_premium[id][1],player_b_premium[id][2],player_b_premium[id][3],player_b_premium[id][4],player_b_premium[id][5],player_b_premium[id][6])
nvault_set(vaultpb,key,data)
return PLUGIN_CONTINUE;
}

public wczytajpb(id)
{
new name[35]
get_user_name(id,name,34)

new key[64],data[256]
format(key,charsmax(key),"Pbmod-%s",name)
if(nvault_get(vaultpb,key,data,255))
{
new honor[24],po[24],p1[3],p2[3],p3[3],p4[3],p5[3],p6[3]
parse(data,honor,23,po,23,p1,2,p2,2,p3,2,p4,2,p5,2,p6,2)
player_b_honor[id]=str_to_num(honor)
player_b_punktybonusowe[id]=str_to_num(po)
player_b_premium[id][1]=str_to_num(p1)
player_b_premium[id][2]=str_to_num(p2)
player_b_premium[id][3]=str_to_num(p3)
player_b_premium[id][4]=str_to_num(p4)
player_b_premium[id][5]=str_to_num(p5)
player_b_premium[id][6]=str_to_num(p6)
}
return PLUGIN_CONTINUE
}
Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 24.02.2013

Jest coś w logach? Przy pobieraniu nicku dodaj warunek czy gracz jest połączony.
Odpowiedz

  • +
  • -
mimo114 - zdjęcie mimo114 25.02.2013

może problem tkwi w deklaracji zmiennej:
new player_b_premium[][] = { 0,0,0,0,0,0,0 };
Ale niestety w inny sposób nie potrafię tego zrobić bo gdy zmieniam player_b_premium[][] na player_b_premium[33][] lub player_b_premium[33][8] to mam błąd:
Error: Multi-dimensional arrays must be fully initialized on line 37
po za tym w logach cały czas wyskakują errory albo przy odpalaniu menu w którym są zapytania o tą zmienną.
Użytkownik mimo114 edytował ten post 25.02.2013 14:36
Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 25.02.2013

jakie są to błędy w logach?

deklaracja w postaci

new player_b_premium[33][8];


wywala błędy? niemożliwe raczej :)

Przykład z pierwszego lepszego sma:

new Float:damage_after[33][33];// nie przejmuj się tagiem Float:, potrzebna była tablica liczb rzeczywistych
Odpowiedz

  • +
  • -
mimo114 - zdjęcie mimo114 25.02.2013

Ok teraz wszystko już działa wystarczyło że zamieniłem
new player_b_premium[][] = { 0,0,0,0,0,0,0 };
na
new player_b_premium[33][8];
Dzięki za pomoc.
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 26.02.2013

Tak na przyszłość, tutaj
new player_b_premium[][] = { 0,0,0,0,0,0,0 };

próbowałeś przypisać tablicę dwuwymiarową do danych w jednym wymiarze, więc to nie miało prawa działać.
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 26.02.2013

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany