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

Load / Save Nvault, dlaczego nie działa?


  • Zamknięty Temat jest zamknięty
1 odpowiedź w tym temacie

#1 ^Grzyboo

    Wszechobecny

  • Użytkownik

Reputacja: 246
Wszechwidzący

  • Postów:461
  • Imię:Grzyboo
  • Lokalizacja:Tak
Offline

Napisano 24.06.2011 15:53

Przerobiłem diablomoda na nvault. Skopiowałem z coda funkcje: Wybór klasy, nvault: zapisywanie i wczytywanie.



public WybierzKlase(id)
{
new menu = menu_create("Wybierz klase:", "WybierzKlase_Handle");
new klasa[50];
for(new i=1; i<8; i++)
{
Load(id, i)
format(klasa, 49, "\y%s Lvl: %i", Race[i], player_lvl[id]);
menu_additem(menu, klasa);
}
menu_display(id, menu);
}

public WybierzKlase_Handle(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}

item++;

if(item == player_class[id])
return PLUGIN_CONTINUE;


if(player_class[id])
{
new_class[id] = item;
ColorChat(id, GREEN, "[%s] ^x01Klasa bedzie zmieniona w nastepnej rundzie", PREFIX)
}
else
{
player_class[id] = item;
Load(id, player_class[id])
}

return PLUGIN_CONTINUE;
}

public Save(id)
{
new name[32]
get_user_name(id, name, 31)

new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-%i-db", name, player_class[id]);
format(vaultdata,255,"%i#%i#%i#%i#%i#%i", player_xp[id], player_lvl[id], player_agility[id], player_dextery[id], player_intelligence[id], player_strength[id])
nvault_set(g_vault,vaultkey,vaultdata);
}

public Load(id, klasa)
{
new name[32]
get_user_name(id, name, 31)

new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-%i-db", name, klasa);
format(vaultdata,255,"%i#%i#%i#%i#%i#%i", player_xp[id], player_lvl[id], player_agility[id], player_dextery[id], player_intelligence[id], player_strength[id])
nvault_get(g_vault,vaultkey,vaultdata,255);

replace_all(vaultdata, 255, "#", " ");

new xp[32], lvl[32], agi[32], dex[32], int[32], str[32]

parse(vaultdata, xp, 31, lvl, 31, agi, 31, dex, 31, int, 31, str, 31);

player_xp[id] = str_to_num(xp)
player_lvl[id] = str_to_num(lvl)
player_agility[id] = str_to_num(agi)
player_dextery[id] = str_to_num(dex)
player_intelligence[id] = str_to_num(int)
player_strength[id] = str_to_num(str)
}



I teraz dziwne rzeczy się zaczynają tworzyć...

Jeśli dam tak, to nic nie działa

for(new i=1; i<8; i++)
{
Load(id, i)
format(klasa, 49, "\y%s Lvl: %i", Race[i], player_lvl[id]);
menu_additem(menu, klasa);
}


Natomiast tak:


for(new i=1; i<8; i++)
{

format(klasa, 49, "\y%s Lvl: %i", Race[i], player_lvl[id]);
menu_additem(menu, klasa);
}


... Wszystko jest w porządku, klasę wybiera, menu się tworzy.

Z tego wynika, że funkcja LOAD nie działa poprawnie, chociaż jest skopiowana z pluginu, w którym działa.

Czy da się to jakoś naprawić? :(
  • +
  • -
  • 1

#2 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 24.06.2011 16:45

Nie wiem czy to błąd, ale przy zapisywaniu nie widzę, żeby do każdej klasy był tworzony zapis, czyli niby jak ma dobrze wczytać?

Użytkownik sebul edytował ten post 24.06.2011 16:47

  • +
  • -
  • 0

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





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

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