←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Zapis/Odczyt nvault tablicy

  • +
  • -
ELOS - zdjęcie ELOS 31.08.2012

Spoiler


Na dodatek nie wiem jak odczytać zmienną w tym momencie ;/

EDIT:

Edytowałem trochę kod i teraz wywala mi tylko 1 błąd
error 035: argument type mismatch (argument 2)
błąd jest tutaj
new out[25][3];
explode(vaultdata,"# ",out,25,3) // Tutaj
Odpowiedz

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

można i bez Dark'owego explode

new iOperacje[10][32]
replace_all(vaultdata, charsmax(vaultdata), "#", " ");
parse(vaultdata, iOperacje[0], 31, iOperacje[1], 31, iOperacje[2], 31, iOperacje[3], 31, iOperacje[4], 31, iOperacje[5], 31, iOperacje[6], 31, iOperacje[7], 31, iOperacje[8], 31, iOperacje[9], 31)

for(new i;i<10;i++)
{
odblokowanie[id][i] = str_to_num(iOperacje[i])
}


pisane na szybko, ale powinno działać.
MarWit (31.08.2012 18:19):
Ale explode i tak jest najoptymalniejszym rozwiązaniem.
Odpowiedz

  • +
  • -
Jak się nazwać - zdjęcie Jak się nazwać 31.08.2012

Kod od CheQ jest dobry za wyjątkiem tego:
'# '
cudzysłowem jednoznakowym (czy jak to się zwie) określamy char(znak) a to jest ciąg znaków czyli string (spacja i płotek) tak więc zamień
'# ' na "# "
ale i tak nie będzie działać bo jeżeli kożystasz z zapisu K!11r to tam nie ma spacji więc ostateczny działający kod wygląda tak:

public ZaladujDane(id)
{
new name[48]
new vaultkey[64],vaultdata[128]
formatex(vaultkey,63,"%s-unlock",name)

if(nvault_get(plik_vault,vaultkey,vaultdata,127)) {

new out[26][3];
explode(vaultdata,'#',out,25,3)

for(new i = 1 ; i<25;i++)
tablica[id][i] = str_to_num(out[i]))

}

return PLUGIN_CONTINUE
}
Odpowiedz

  • +
  • -
ELOS - zdjęcie ELOS 31.08.2012

Kod od CheQ jest dobry za wyjątkiem tego:
'# '
cudzysłowem jednoznakowym (czy jak to się zwie) określamy char(znak) a to jest ciąg znaków czyli string (spacja i płotek) tak więc zamień
'# ' na "# "
ale i tak nie będzie działać bo jeżeli kożystasz z zapisu K!11r to tam nie ma spacji więc ostateczny działający kod wygląda tak:


public ZaladujDane(id)
{
new name[48]
new vaultkey[64],vaultdata[128]
formatex(vaultkey,63,"%s-unlock",name)

if(nvault_get(plik_vault,vaultkey,vaultdata,127)) {

new out[26][3];
explode(vaultdata,'#',out,25,3)

for(new i = 1 ; i<25;i++)
tablica[id][i] = str_to_num(out[i]))

}

return PLUGIN_CONTINUE
}

Dzięki pusty okazało się że wy testowałem wszystkie sposoby oprócz tego jednego -.-
Odpowiedz