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

Zapis wieeelu zmiennych


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

#1 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 09.11.2012 20:03

public SaveData(id)
{
new vaultkey[128],vaultdata[256], name[64], szOsiagniecie[5];
get_user_name(id, name, 63);
for(new i = 1; i <= ILOSC_OSIAGNIEC; i++)
{
format(szOsiagniecie, 4, "#%d", osiagniecie[i]);
add(vaultdata, 255, szOsiagniecie, 4);
}

format(vaultkey, charsmax(vaultkey),"%s-osiagniecie", name);
nvault_set(vault,vaultkey,vaultdata);

return PLUGIN_CONTINUE;
}

public ReadData(id)
{
new vaultkey[128],vaultdata[256], name[64];

get_user_name(id, name, 63);
format(vaultkey, charsmax(vaultkey),"%s-osiagniecie", name);


if(!nvault_get(vault,vaultkey,vaultdata,255))
{
format(vaultkey, charsmax(vaultkey), "%s-osiagniecie", name);
nvault_get(vault,vaultkey,vaultdata,255);
}

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

for(new i = 1; i <= ILOSC_OSIAGNIEC; i++)
{
osiagniecie[id][i] = str_to_num(vaultdata[i]);
}

return PLUGIN_CONTINUE;
}


Odnośnie chciałbym aby mój kod zapisywał dużo zmiennych, ten kod wyżej to sposób z jakim dotychczas się męczyłem, i nie wiem co możę być w nim nie tak ;[

P.S. Prośże o dokładne wytłumaczenie błędu jeśli można
  • +
  • -
  • 0

#2 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 09.11.2012 20:22

Musiałbym zobaczyć jak tworzysz zmienną osiągnięcie. Ale ogólnie Twój problem znajduje się w funkcji SaveData(id).

Domyślam się, że Twoja zmienna osiągnięcia wygląda w tym stylu:
osiagniecie[33][24];

Jeśli tak, to Twój błąd jest tutaj:
format(szOsiagniecie, 4, "#%d", osiagniecie[i]);

A odczytujesz ją tak:
osiagniecie[id][i] = str_to_num(vaultdata[i]);

W takim razie błąd jest taki, że w zapisie w format nie podałeś indexu gracza, w funkcji z zapisem podmień sobie ten format na ten i sprawdź czy zadziała ;)
format(szOsiagniecie, 4, "#%d", osiagniecie[id][i]);

  • +
  • -
  • 1

If you can dream it, you can do it.


#3 d0naciak

    Godlike

  • Autor tematu
  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 09.11.2012 20:52

speedkill, sprawdze zara ale jak cos to zmienna osiagniecie[id][i] = 1, kiedy gracz zdobyl osiagniecie, a na 0, kiedy jeszcze tego nie zrobil
  • +
  • -
  • 0

#4 Ojciec Dyrektor

    papa smerf.

  • Przyjaciel

Reputacja: 477
Wszechobecny

  • Postów:3 035
  • Imię:Paweł
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 09.11.2012 21:28

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Temat zamknięty na prośbę użytkownika.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0




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

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