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

[ROZWIĄZANE] Wczytywanie i zapisywanie nvault.


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

#1 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 09.06.2012 14:42

Witam mam poniższy kod :
public ZapiszDane(id)
{
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-cry#", nazwa_gracza[id]);
format(vaultdata,255,"%i#%i#%i#%i#", doswiadczenie_gracz[id], doswiadczenie_graczam[id], poziom_gracza[id], poziom_graczam[id]);
nvault_set(g_vault,vaultkey,vaultdata);
}

public WczytajDane(id)
{
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-cry#", nazwa_gracza[id]);
nvault_get(g_vault,vaultkey,vaultdata,255);

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

new doswiadczeniegracz[32], doswiadczeniegraczam[32], poziomgracza[32], poziomgraczam[31];

parse(vaultdata, doswiadczeniegracz, 31,doswiadczeniegraczam, 31,poziomgracza, 31,poziomgraczam, 31);

doswiadczenie_gracz[id] = str_to_num(doswiadczeniegracz);
doswiadczenie_graczam[id] = str_to_num(doswiadczeniegraczam);
poziom_gracza[id] = str_to_num(poziomgracza);
poziom_graczam[id] = str_to_num(poziomgraczam);
}

I albo źle zapisuje, ale źle wczytuje, bo ciągle mam 1 lvl. (chyba, źle wczytuje bo w pliku nvault exp i lvl się zapisały).
Jest kod przerobiony tak, aby nie zwracał uwagi na klase, ale coś nie działa.
  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#2 ogieR8

    Wszechmogący

  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 09.06.2012 15:28

Powiem Ci tak.. Ja czasem tak mam, jak np :

parse(vaultdata, doswiadczeniegracz, 31,doswiadczeniegraczam, 31,poziomgracza, 31,poziomgraczam, 31);


- są podobne zmienne.. a w Twoim wypadku są podobne nawet do tych, do których są przypisane niżej. Zmien sobie np :

doswiadczeniegracz - hahaha
doswiadczeniegraczam - trololo
poziomgracza - iksde
poziomgraczam - smieszne

I oczywiście te same nazwy użyj w str_to_num ; ) Powinno działać.
  • +
  • -
  • 0

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#3 Droso

    Dawniej HubertTM

  • Autor tematu
  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 09.06.2012 15:46

To raczej nie to, bo mam zapis taki jak w Cod Mod czyli każda klasa ma oddzielny lvl i działa.
No chyba, że się mylę i to zadziała.

Sprawdziłem nie działa ;D
  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#4 ogieR8

    Wszechmogący

  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 09.06.2012 15:48

Mi to działało ;)

Chodzi tylko o

new doswiadczeniegracz[32], doswiadczeniegraczam[32], poziomgracza[32], poziomgraczam[31];

parse(vaultdata, doswiadczeniegracz, 31,doswiadczeniegraczam, 31,poziomgracza, 31,poziomgraczam, 31);


I wartości w str_to_num.

Tak samo funkcje czasem mylą się, jeśli menu są podobno nazwane, wyświetla się menu 'A', a jak kliknę 2 to reaguję menu 'B'. ;x

Ja już uważam na nazwy w menu i nVault, wymyślam już takie pierdoły, że masakra.. ^/^
G[o]Q (09.06.2012 19:43):
Większych głupot dawno nie czytałem xD

Użytkownik ogieR- edytował ten post 09.06.2012 15:49

  • +
  • -
  • -1

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#5 Droso

    Dawniej HubertTM

  • Autor tematu
  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 09.06.2012 15:50

Teraz mam tak i nie działa :D
public WczytajDane(id)
{
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-cry#", nazwa_gracza[id]);
nvault_get(g_vault,vaultkey,vaultdata,255);

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

new iks[32], trololo[32], smieszne[32], hahh[31];

parse(vaultdata, iks, 31,trololo, 31,smieszne, 31,hahh, 31);

doswiadczenie_gracz[id] = str_to_num(iks);
doswiadczenie_graczam[id] = str_to_num(trololo);
poziom_gracza[id] = str_to_num(smieszne);
poziom_graczam[id] = str_to_num(hahh);

  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#6 ogieR8

    Wszechmogący

  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 09.06.2012 16:15

Hmm, spróbuj usunąć z:

"%s-cry#"


... to #, bo w zapisie to masz - ok, ale w odczycie potem usuwasz wszystkie # i nie wiem, czy nie usuwa tego i nie próbuje wtedy odczytać z "%s-cry" - którego nie ma. Nic innego mi do głowy nie przychodzi ;d

Użytkownik ogieR- edytował ten post 09.06.2012 16:16

  • +
  • -
  • -3

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#7 Droso

    Dawniej HubertTM

  • Autor tematu
  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 09.06.2012 16:40

Nie działa, a może zrobie tak, że zapisuje to na klase 1 i przy każdej klasie będę wczytywał klasę 1 to by rozwiązało problem.
Chyba, że wiecie co tutaj poprawić ;D?
  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#8 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 09.06.2012 17:21

Hmm, spróbuj usunąć z:

"%s-cry#"


... to #, bo w zapisie to masz - ok, ale w odczycie potem usuwasz wszystkie # i nie wiem, czy nie usuwa tego i nie próbuje wtedy odczytać z "%s-cry" - którego nie ma. Nic innego mi do głowy nie przychodzi ;d

Proszę Cię, nie pisz nic jak masz pisać bzdury ;/


Co do samego tematu to ja już nie będę tego znowu tłumaczył, bo to nie pierwszy raz jak ktoś pisze taki zły kod do zapisu/odczytu z pliku vault, ale za to pokażę, gdzie można o tym poczytać, czyli -> http://amxx.pl/topic...roche-o-nvault/
  • +
  • -
  • 0

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


#9 Droso

    Dawniej HubertTM

  • Autor tematu
  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 09.06.2012 19:40

Nie rozumiem gdzie jest błąd, mój kod wygląda teraz tak:
public ZapiszDane(id)
{
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-cry", nazwa_gracza[id]);
format(vaultdata,255,"%i#%i#%i#%i#", doswiadczenie_gracz[id], doswiadczenie_graczam[id], poziom_gracza[id], poziom_graczam[id]);
nvault_set(g_vault,vaultkey,vaultdata);
}

public WczytajDane(id)
{
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-cry", nazwa_gracza[id]);
nvault_get(g_vault,vaultkey,vaultdata,255);


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

new doswiadczeniegracz[32], doswiadczeniegraczam[32], poziomgracza[32], poziomgraczam[31];
parse(vaultdata, doswiadczeniegracz, 31,doswiadczeniegraczam, 31,poziomgracza, 31,poziomgraczam, 31);

doswiadczenie_gracz[id] = str_to_num(doswiadczeniegracz);
doswiadczenie_graczam[id] = str_to_num(doswiadczeniegraczam);
poziom_gracza[id] = str_to_num(poziomgracza);
poziom_graczam[id] = str_to_num(poziomgraczam);
}

  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#10 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 09.06.2012 19:47

ja tam błędu nie widze raczej błąd jest w reszcie kodu pokaz funkcje client_connect/client_authorized/client_putinserver

sebul jest przewrażliwiony na punkcie kratek mimo ze one w niczym nie przeszkadzają a np ułatwiają odczyt pliku vault przez inne programy
  • +
  • -
  • 1
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#11 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 09.06.2012 21:08

Tak samo funkcje czasem mylą się

funkcje się nie mylą robi to programista ;)
  • +
  • -
  • 1

#12 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 10.06.2012 00:14

ja tam błędu nie widze

Ja bym nazwał błędem to w jaki sposób są wczytywane dane, bo nawet jeśli w pliku vault nie ma ich, to i tak do zmiennych są przypisywane puste dane, czyli 0. Oczywiście błąd może też być gdzie indziej.

sebul jest przewrażliwiony na punkcie kratek mimo ze one w niczym nie przeszkadzają a np ułatwiają odczyt pliku vault przez inne programy

Po prostu dla mnie pliki vault wykorzystuje się tylko do zwykłego zapisu/odczytu danych tylko przez amx i na pewno większość też tylko po to tego używa, więc nie ma sensu dodawać te kratki. A nawet jeśli te kratki komuś tam w czymś pomagają, to chyba lepiej by było zastąpić je tabulatorem.
  • +
  • -
  • 0

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


#13 Droso

    Dawniej HubertTM

  • Autor tematu
  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 10.06.2012 11:31

Przy połączeniu gracza ustawia tylko taski, i zmienne, dopiero po wczytaniu klasy
wykonuje się WczytajDane(id), mam jeszcze zapis i wczytywanie, że każda klasa ma oddzielny lvl, i to działa, więc wtf ;D
Zapis zależy od #define

// zapis na kazda klase oddzielnie
#if defined ZAPIS
public ZapiszDane(id)
{
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-%i-cry", nazwa_gracza[id], klasa_gracza[id]);
format(vaultdata,255,"%i#%i#%i#%i#", doswiadczenie_gracz[id], doswiadczenie_graczam[id], poziom_gracza[id], poziom_graczam[id]);
nvault_set(g_vault,vaultkey,vaultdata);
}

public WczytajDane(id, klasa)
{
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-%i-cry", nazwa_gracza[id], klasa);
nvault_get(g_vault,vaultkey,vaultdata,255);

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

new doswiadczeniegracz[32], doswiadczeniegraczam[32], poziomgracza[32], poziomgraczam[31];
parse(vaultdata, doswiadczeniegracz, 31,doswiadczeniegraczam, 31,poziomgracza, 31,poziomgraczam, 31);

doswiadczenie_gracz[id] = str_to_num(doswiadczeniegracz);
doswiadczenie_graczam[id] = str_to_num(doswiadczeniegraczam);
poziom_gracza[id] = str_to_num(poziomgracza);
poziom_graczam[id] = str_to_num(poziomgraczam);

}
#else
//zapis, ze kazda klasa ma ten sam lvl

public ZapiszDane(id)
{
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-cry#", nazwa_gracza[id]);
format(vaultdata,255,"%i#%i#%i#%i#", doswiadczenie_gracz[id], doswiadczenie_graczam[id], poziom_gracza[id], poziom_graczam[id]);
nvault_set(g_vault,vaultkey,vaultdata);
}

public WczytajDane(id)
{
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-cry#", nazwa_gracza[id]);
nvault_get(g_vault,vaultkey,vaultdata,255);

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

new doswiadczeniegracz[32], doswiadczeniegraczam[32], poziomgracza[32], poziomgraczam[31];

parse(vaultdata, doswiadczeniegracz, 31,doswiadczeniegraczam, 31,poziomgracza, 31,poziomgraczam, 31);

doswiadczenie_gracz[id] = str_to_num(doswiadczeniegracz);
doswiadczenie_graczam[id] = str_to_num(doswiadczeniegraczam);
poziom_gracza[id] = str_to_num(poziomgracza);
poziom_graczam[id] = str_to_num(poziomgraczam);
}
#endif
Próbowałem, też zrobić tak, że zapisując robie tak nick-1-cry
1- to numer klasy
i potem wczytuje przy kazdej klasie klase nr. 1, ale coś też nie działało ;(

[Mógłbym komuś wysłać moda na PW, bo i tak w tym miesiącu zamierzam go tu opublikować]
  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#14 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 10.06.2012 14:08

a nie mozesz poprostu pokazać kodu funkcji o które prosilem ??
  • +
  • -
  • 1
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#15 Droso

    Dawniej HubertTM

  • Autor tematu
  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 10.06.2012 17:55

public client_connect(id)
{
poziom_gracza[id] = 1;
poziom_graczam[id] = 1;
doswiadczenie_gracz[id] = 1;
doswiadczenie_graczam[id]= 1;
maskowanie[id] = false;
pancerz[id] = false;
sprint[id] = false;
klasa_gracza[id] = 0;
OnNVGToggle[id] = false;
#if !defined ZAPIS
WczytajDane(id)
#endif

get_user_name(id, nazwa_gracza[id], 63);

remove_task(id);
remove_task(id+ZAGLUSZAJ);

set_task(0.1, "Sprawdzaj", id, _, _, "b");
set_task(60.0, "SprawdzPoziom", id, _, _, "b");
set_task(30.0, "Pomoc", id, _, _, "b");
}
public client_putinserver(id){
set_task(1.0, "recovery", id, _, _, "b");
klasa_gracza[id] = 0;
}
public client_disconnect(id)
{
remove_task(id);
remove_task(id+ZAGLUSZAJ);
remove_task(id+RADAR_KS);
remove_task(id+RADAR_WYL);
ZapiszDane(id);

OnNVGToggle[id] = false;
maskowanie[id] = false;
pancerz[id] = false;
sprint[id] = false;
}
client_authorized- brak
  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#16 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 11.06.2012 18:48

Mi tu brakuje is_user_connected w ZapiszDane i WczytajDane
  • +
  • -
  • 0

#17 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 11.06.2012 18:56

Mi tu brakuje is_user_connected w ZapiszDane i WczytajDane


a Gó**o prawda

tak jak myślałem poprostu pierwsze wczytujesz dane a potem pobierasz nick a nick jest juz potrzebny przy wczytywaniu :D
  • +
  • -
  • 2
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#18 Droso

    Dawniej HubertTM

  • Autor tematu
  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 11.06.2012 21:13

Okej sprawdzę ten patent ;D

Działa działa działa, wow, dziękuje ;D


Mi tu brakuje is_user_connected w ZapiszDane i WczytajDane

W zapiszdane jest to bez sensu, ponieważ zapisuje dane jak gracz sie rozłączy.
sebul (11.06.2012 21:49):
Popraw też sam sposób używania nvault, bo na to co teraz masz, to aż patrzeć nie można :wstyd:

  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#19 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 11.06.2012 21:47

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
  • +
  • -
  • 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