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

Nie działa zapis i/lub odczyt nvault


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
12 odpowiedzi w tym temacie

#1 Nltj

    Zaawansowany

  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:107
  • Lokalizacja:Jamajka ?
Offline

Napisano 12.08.2014 15:54

public zaladuj_evo(id)
{
new name[48]
get_user_name(id,name,47)
new vaultkey[64],vaultdata[128]
formatex(vaultkey,63,"%s-evosy",name)

if(nvault_get(evogamesgangi2,vaultkey,vaultdata,127)) {
new jb_packii[16];
parse(vaultdata, jb_packii, 15)
copy(nazwauz[id], 32, name)
g_iPoints[id]=str_to_num(jb_packii)
}

return PLUGIN_CONTINUE
}  

public zapisz_evo(id) {	

new vaultkey[64],vaultdata[128]
formatex(vaultkey,63,"%s-evosy",nazwauz[id])
formatex(vaultdata,127,"%d", g_iPoints[ id ])
nvault_set(evogamesgangi2,vaultkey,vaultdata)

return PLUGIN_CONTINUE
}

Użytkownik Nltj edytował ten post 12.08.2014 15:55

  • +
  • -
  • 0

#2 Nltj

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:107
  • Lokalizacja:Jamajka ?
Offline

Napisano 12.08.2014 23:22

Przeczytałem poradnik o nvault i nie rozumiem co tu jest źle (Oprócz tego że prunuje jednozmienny klucz ._.  :mur:  :crazy: )

Pisze ten post żebyście nie odsyłali mnie do tego Poradnika ^D^

 

Sprawdziłem pliki i tego pliku Vault w ogóle nie zapisuje (ma 0 bajtów) Dlaczego ?...


Użytkownik Nltj edytował ten post 12.08.2014 23:25

  • +
  • -
  • 0

#3 ^Technik^

    Zaawansowany

  • Zbanowany

Reputacja: 35
Życzliwy

  • Postów:93
  • GG:
  • Imię:Damian
  • Lokalizacja:Płock
Offline

Napisano 12.08.2014 23:38



public zaladuj_evo(id)
{
new name[48]
get_user_name(id,name,47)
new vaultkey[64],vaultdata[128]
formatex(vaultkey,63,"%s-evosy",name)

if(nvault_get(jb_packi_nv,vaultkey,vaultdata,127)) {
new jb_packii[16];
parse(vaultdata, jb_packii, 15)

ilosc_jbpack[id]=str_to_num(jb_packii)
}

return PLUGIN_CONTINUE
}

public zapisz_evo(id) {
new name[48]
get_user_name(id,name,47)
new vaultkey[64],vaultdata[128]
formatex(vaultkey,63,"%s-evosy",name)
formatex(vaultdata,127,"%d", ilosc_jbpack[id])
nvault_set(jb_packi_nv,vaultkey,vaultdata)

return PLUGIN_CONTINUE
}





#4 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 12.08.2014 23:56

Przy udanym wczytaniu danych (czyli jeśli coś zostało już zapisane) kopiujesz nick do zmiennej "nazwauz" i jeśli nie robisz tego w innym miejscu, to niby jak w tej zmiennej masz mieć jakiś nick w momencie zapisania danych?
  • +
  • -
  • 1

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


#5 Nltj

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:107
  • Lokalizacja:Jamajka ?
Offline

Napisano 13.08.2014 00:25

chodziło mi o to aby nie można było kopiować na inne nicki np poprzez zmianę nicku podczas gry


  • +
  • -
  • 0

#6 Nltj

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:107
  • Lokalizacja:Jamajka ?
Offline

Napisano 13.08.2014 00:30

zapiszg()
}
}
public plugin_end(){
nvault_close(evo1)
nvault_close(evo2)
zapiszg()
}
public wczytajg()
{
for(new i=1;i<100;i++)
{
new vaultkey[64],vaultdata[128]
formatex(vaultkey,63,"%d-data",i)

if(nvault_get(evo1,vaultkey,vaultdata,127)) 
{
new idtg[4],nazwag[16],skill[3],skill2[4],skill3[4],skill4[4],skill5[4],ilsczl[3],czyist[1];
parse(vaultdata, idtg, 3,nazwag,15,skill,3,skill2,3,skill3,3,skill4,3,skill5,3,ilsczl,2,czyist,1);
heh[i][a] = str_to_num(idtg);
copy(heh[i][b],15, nazwag);
heh[i][c] = str_to_num(skill);
heh[i][d] = str_to_num(skill2);
heh[i][e] = str_to_num(skill3);
heh[i][f] = str_to_num(skill4);
heh[i][g] = str_to_num(skill5);
heh[i][h] = str_to_num(ilsczl);
heh[i][j] = str_to_num(czyist);
}
continue;
}
return PLUGIN_CONTINUE;
}
public zapiszg()
{
for(new i=1;i<100;i++)
{
new vaultkey[64],vaultdata[128]
formatex(vaultkey,63,"%d-data",i)
formatex(vaultdata,63,"%d %s %d %d %d %d %d %d %d",heh[i][a],heh[i][b],heh[i][c],heh[i][d],heh[i][e],heh[i][f],heh[i][g],heh[i][h],heh[i][j])

nvault_set(evo1,vaultkey,vaultdata)
continue;
}
return PLUGIN_CONTINUE;
}

Mam tutaj takie dziwadełko, nie odczytuje/nie zapisuje danych tak jak wcześniej, Dlaczego ? Błąd w pętli ? (Tak mój pierwszy plugin z nvaultem :wstyd: )

Technik +++ dla cb

 

 

 

Dlaczego koło plików vault na ftp tworzą się pliki journal ?


Użytkownik Nltj edytował ten post 13.08.2014 00:32

  • +
  • -
  • 0

#7 Nltj

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:107
  • Lokalizacja:Jamajka ?
Offline

Napisano 15.08.2014 00:55

Co jest tu źle zrobione ? zmienne źle przypisane ? błąd w pętli ? zła zamiana ?


  • +
  • -
  • 0

#8 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

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

Napisano 15.08.2014 11:36

Co jest tu źle zrobione ? zmienne źle przypisane ? błąd w pętli ? zła zamiana ?

Pokaz jak stworzyłeś tablice heh, najbardziej mi chodzi o stringa o rozmiarze 15

 

and

public wczytajg()
{
	new vaultkey[64],vaultdata[128];
	
	for(new i=1;i<100;i++)
	{
		formatex(vaultkey,63,"%d-data",i)
		
		if(nvault_get(evo1,vaultkey,vaultdata,127)) 
		{
			new idtg[4],nazwag[16],skill[3],skill2[4],skill3[4],skill4[4],skill5[4],ilsczl[3],czyist[1];
			parse(vaultdata, idtg, 3,nazwag,15,skill,3,skill2,3,skill3,3,skill4,3,skill5,3,ilsczl,2,czyist,1);
			heh[i][a] = str_to_num(idtg);
			copy(heh[i][b],15, nazwag);
			heh[i][c] = str_to_num(skill);
			heh[i][d] = str_to_num(skill2);
			heh[i][e] = str_to_num(skill3);
			heh[i][f] = str_to_num(skill4);
			heh[i][g] = str_to_num(skill5);
			heh[i][h] = str_to_num(ilsczl);
			heh[i][j] = str_to_num(czyist);
		}
		continue;
	}
	return PLUGIN_CONTINUE;
}
public zapiszg()
{
	new vaultkey[64],vaultdata[128];
	
	for(new i=1;i<100;i++)
	{
		formatex(vaultkey,63,"%d-data",i)
		formatex(vaultdata,127,"%d %s %d %d %d %d %d %d %d",heh[i][a],heh[i][b],heh[i][c],heh[i][d],heh[i][e],heh[i][f],heh[i][g],heh[i][h],heh[i][j])
		
		nvault_set(evo1,vaultkey,vaultdata)
		continue;
	}
	return PLUGIN_CONTINUE;
}

Nauczyłbyś się tabulatorów + nr linii + zmienne twórz przed pętlą (nawet można użyć static czyli static vaultkey[64])


Użytkownik HubertTM edytował ten post 15.08.2014 11:37

  • +
  • -
  • 1

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

Na zlecenie i bez zlecenia zresztą też!


#9 Nltj

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:107
  • Lokalizacja:Jamajka ?
Offline

Napisano 15.08.2014 12:06

Jaka różnica static a new ._. ?
 
Od dziś wrzucam kod po tabulacji z amxx studio  xD O to chodzi z tabulacją ? Jak zrobić numerki przy liniach w kodzie na AMXX?
  1. enum eData {
  2. a,b[16],c,d,e,f,g,h,j
  3. };
  4. new heh[101][eData];

Zrobiłem testowy "zapis" tą metodą i działa, więc błąd chb jest tutaj, nie chce mi zwracać innej wartości niż "0"

new xd = 0
for(new i=1;i<100;i++)
{
	if(heh[i][h] = 0)
	{
		xd = heh[i][a]
		break;
	}
}

if(xd == 0)
{
	ColorChat( id, NORMAL, "%s Maksymalna liczba frakcji osiagnieta - 100", g_szPrefix );
	return PLUGIN_HANDLED;
}

heh[xd][a] = xd;
heh[xd][b] = szArgs[15];
heh[xd][c] = 0;
heh[xd][d] = 0;
heh[xd][e] = 0;
heh[xd][f] = 0;
heh[xd][g] = 0;
heh[xd][h] = 1;
heh[xd][j] = 1;
stopien[id] = 3
gtak[id] = 1
gid[id] = xd
zapiszjg(xd)
lfrakcji++

Użytkownik Nltj edytował ten post 15.08.2014 12:21

  • +
  • -
  • 0

#10 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

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

Napisano 15.08.2014 14:25



    enum eData {
    a,b[16],c,d,e,f,g,h,j
    };
    new heh[101][eData];

tak można w ogóle? Chodzi mi o b[16] to nie wiem czy ma sens

usunąłbym b i zrobił tego stringa jako oddzielna zmienna czyli new zmienna[16] i sprawdził

 

Co do kodu powyżej nie wiem kiedy zwiększasz heh[i][a], no ale jak jest równe zero, więc nie zwiększasz heh[i][a] xD

And w pętli jest break; o to Ci chodziło? Przerywasz tym zmienną

 

Fajnie jakbyś wyjaśnił co chcesz osiągnąć z tymi zmiennymi, bo nie ogarniam troche tego zapisu, tym bardziej jak używasz zmiennych o nazwie "xd" "heh" "alfabet a,b,c" xD


Droso (15.08.2014 14:26):
Z tym b[16] mogę się mylić, ale nigdy tak nie robiłem i nigdy czegoś takiego nie widziałem, więc wydaję mi się to błędne.
Niech ktoś mnie poprawi jak coś ;)
sebul (16.08.2014 09:55):
To jest dobrze, można tak robić.
GwynBleidD (16.08.2014 11:17):
W przypadku enumów, zastosowanie takiego b[16] zrobi dokładnie tyle, że c będzie o 16 większe od b, a nie o 1 jak to jest normalnie. Dokładnie taki sam efekt można uzyskać przypisując c stałą wartość, ale nie jest to wygodne.

  • +
  • -
  • 0

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

Na zlecenie i bez zlecenia zresztą też!


#11 Nltj

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:107
  • Lokalizacja:Jamajka ?
Offline

Napisano 15.08.2014 15:23

czytałem poradnik o enumach b[16] jest poprawne

Podczas czytania podręcznika Pawna znalazłem ciekawy akapit o strukturach. Pola enuma mogą reprezentować tablice  B) 

Dzięki temu enum może działać jak struct z C/C++
enum staty{
	nick[32],
	fragi,
	smierci
}

new gStats[33][staty];

public plugin_init() {	
	register_event("ScoreInfo", "eventScoreInfo", "a");
}
eventScoreInfo(){
	new id = read_data(1);
	
	get_user_name(id, gStats[id][nick], 31);
	gStats[id][fragi] = read_data(2);
	gStats[id][smierci] = read_data(3);
}

Jest jeszcze problem typów o który wspominał destrojer, ale łatwo go ominąć z pomocą _: przy wpisywaniu i TYP: przy odczycie 

Post R3X'a

 

 

 ._. jeżeli chodzi o "xd" heh alfabet nie mam pomysłu na nazwy zmiennych ( :mur:  ) ale "xd" chciałem sprawdzać czy frakcja istnieje, i przerywać pętle for (Myślałem że break jest właśnie od tego, ale teraz zastanawiam się czy nie sprawdzać czy wartość została już przypisana po sprawdzeniu czy slot jest wolny if "xd" != 0 i dopiero zmieniać wartość zmiennej "xd") jak znajdzie pusty "slot" na frakcję i w tym slocie heh[slot][a,b,c,...] zapisywać nazwę frakcji parametry ilość członków etc

(Wiem że brzmi to tragicznie ale nie chce stosować MYSQL)

 

Jedno pytanie funkcja HAM_spawn (spawnowanie) nwm czy tak ona brzmiała wykonuje się dla każdego ID osobno czy trzeba zastosować pętle ?

 

heh[i][a] jest to ID danej frakcji (zapiszg public dawałem go tutaj ^^)


Użytkownik Nltj edytował ten post 15.08.2014 15:31

  • +
  • -
  • 0

#12 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

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

Napisano 17.08.2014 10:40


Jedno pytanie funkcja HAM_spawn (spawnowanie) nwm czy tak ona brzmiała wykonuje się dla każdego ID osobno czy trzeba zastosować pętle ?

Dla każdego osobno, funkcja ma jeden parametr tj. ID gracza

 

+

Nie wiem co chciałeś osiągnąć tutaj:

for(new i=1;i<100;i++)
{
    if(heh[i][h] = 0)
    {
        xd = heh[i][a]
        break;
    }
}

Jak możesz podeślij kod na PW, zerknę i spróbuję pomóc.

OFC Kod nie wycieknie ;)

 

+

 


Jaka różnica static a new ._. ?

Zmienna static w funkcji, która się wykona (więc wszystkie funkcje się usuwają w tym ich wartosci), zachowuje się, czyli dalej istnieje i ma swoją wartośc, dzięki użyciu static, serwer nie tworzyłby cięgle tej samej zmiennej.

Oczywiście static lepiej użyć, jak funkcje wywołuje się często, jak rzadziej static będzie gorszym wyjściem.


Użytkownik HubertTM edytował ten post 17.08.2014 10:43

  • +
  • -
  • 0

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

Na zlecenie i bez zlecenia zresztą też!


#13 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 17.08.2014 12:37

Static jest prawie tym samym, co zmienna globalna... Prawie, tj dostęp do niej ma tylko funkcja w której zmienną tworzymy, a nie wszystkie, jak to ma miejsce w przypadku zmiennych globalnych.
  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark





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

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