Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4412 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, turiu tokią labai įkirią problemą. 

 

Visu pirma, kai ateina naujas vartotojas vardu pavyzdžiui Petras_Petrauskas, kažkiek laiko pažaidžia, nueina kur nors prie pelkės ir atsijungia, jo saves faile viskas teisingai surašyta. T.y. surašyti jo pinigai, XP ir t.t žodžiu jam atsijungus ''išsisaugo'' viskas kaip ir turėtų. Problema ta, kad naujam žaidėjui prisijungus dar kartą, viskas atsistato, t.y. dingsta išsaugotas skinas, dingsta visi pinigai, dingsta pozicija (perkelia į spawn vietą). Po viso šito dar kartą prisijungus atsijungus serveris pradeda saugoti viską automatiškai, t.y. po 3 karto nedingsta nei pinigai nei XP nei skinas.

 

Tai trumpai pasakius: 1 kartą žaidėjui prisijungus viskas būna normaliai, saves failiuke teisingai surašyti turimi pinigai, XP, skino ID ir t.t jam išėjus ir vėl įėjus viskas atsistato, t.y. dingsta pinigai, skinas ir žaidėjas būna spawn vietoje.

 

Dar viena problema yra ta, kad yra padarytas pickupas san-fierro viežbuty ant kurio užlipus viskas išsisaugo ir niekas atsijungus ir vėl prisijungus nedingsta, bet pickupas naudoja papraščiausią SavePlayerData funckiją kaip ir serveryje įdėtas autosave kuris turėtų daryt tą pačią funkciją kaip pickupas.

Bandžiau pagudraut ir pakeist pickupo koordinates į spawno vietą, kad užsiregistravus iškarto atsispawninus išsisaugotų žaidimas, bet deja perkėlus pickupą VISTIEK dingsta visi stats.

 

Gal žinot kas yra susidūrę su šitu šūdu? Beje GM kuriu nuo GRP4 jeigu tai padės.

 

Dėkui.  :taika:

 

❤️

 

Po onplayerdisconnect mėginai rašyt SavePlayerData(playerid); ?

 

Po OnPlayerDisconnect yra įmestas šitoks kodas:

  if(playerDB[playerid][authstate]==4) // Patikrina ar þmogus yra prisijunges
{
switch(reason)
{
	 case 0: SavePlayerData(playerid,false); // Jeigu þaidëjas gauna crash
	 case 1: SavePlayerData(playerid,false); // Jeigu þaidëjas iðeina paprastai.
	 case 2: SavePlayerData(playerid,false); // Jeigu þaidëjas gauna ban'à, arba kick.
}
}

❤️

 

public SavePlayerData

public SavePlayerData(playerid,bool:simple)
{
    if(!simple) GameTextForPlayer(playerid,"~r~] TAVO ZAIDIMAS SAUGOJAMAS ]",50000,5);
	new name[MAX_PLAYER_NAME],file[128];
	GetPlayerName(playerid,name,sizeof(name));
	format(file,sizeof(file),"saves/user/%s.ini",name);
	if(!fexist(file)) return;
	new Float:coo[3],weps[2][12];
	
	dini_IntSet(file,"Money.Pocket",GetPlayerMoneyA(playerid));
	dini_IntSet(file,"Money.Bank",playerDB[playerid][banke]);
	dini_IntSet(file,"Money.Home",playerDB[playerid][namuose]);
	dini_IntSet(file,"Biznis",playerDB[playerid][biznis]);
	dini_IntSet(file,"Wanted",GetPlayerWantedLevel(playerid));
	dini_IntSet(file,"Car",playerDB[playerid][pcar]);
	dini_IntSet(file,"LastSession",gSession);
	dini_IntSet(file,"Gang",gplayerDB[playerid][pgang]);
	dini_BoolSet(file,"Islead",gplayerDB[playerid][islead]);
	dini_IntSet(file,"Lead",playerDB[playerid][plead]);
	dini_IntSet(file,"Kalejime",playerDB[playerid][kalejimo_laikas]);
	
	for (new tmp=0; tmp<12; tmp++) GetPlayerWeaponData(playerid,tmp,weps[0][tmp],weps[1][tmp]);
	dini_IntSet(file,"Ginklas0",weps[0][0]); dini_IntSet(file,"Ammo0",weps[1][0]);
	dini_IntSet(file,"Ginklas1",weps[0][1]); dini_IntSet(file,"Ammo1",weps[1][1]);
	dini_IntSet(file,"Ginklas2",weps[0][2]); dini_IntSet(file,"Ammo2",weps[1][2]);
	dini_IntSet(file,"Ginklas3",weps[0][3]); dini_IntSet(file,"Ammo3",weps[1][3]);
	dini_IntSet(file,"Ginklas4",weps[0][4]); dini_IntSet(file,"Ammo4",weps[1][4]);
	dini_IntSet(file,"Ginklas5",weps[0][5]); dini_IntSet(file,"Ammo5",weps[1][5]);
	dini_IntSet(file,"Ginklas6",weps[0][6]); dini_IntSet(file,"Ammo6",weps[1][6]);
	dini_IntSet(file,"Ginklas7",weps[0][7]); dini_IntSet(file,"Ammo7",weps[1][7]);
	dini_IntSet(file,"Ginklas8",weps[0][8]); dini_IntSet(file,"Ammo8",weps[1][8]);
	dini_IntSet(file,"Ginklas9",weps[0][9]); dini_IntSet(file,"Ammo9",weps[1][9]);
	dini_IntSet(file,"Ginklas10",weps[0][10]); dini_IntSet(file,"Ammo10",weps[1][10]);
	dini_IntSet(file,"Ginklas11",weps[0][11]); dini_IntSet(file,"Ammo11",weps[1][11]);

	dini_IntSet(file,"Job",playerDB[playerid][specialybe]);
	dini_IntSet(file,"Drabuziai",playerDB[playerid][drabuziai]);
	dini_IntSet(file,"Uniforma",playerDB[playerid][uniforma]);
	dini_BoolSet(file,"Uniformd",playerDB[playerid][uniformd]);

	if(simple) return;

	GetPlayerPos(playerid,coo[0],coo[1],coo[2]);
    dini_IntSet(file,"Xp",GetPlayerScore(playerid));
	dini_IntSet(file,"Mobsas",playerDB[playerid][mobsas]);
	dini_IntSet(file,"Pastatas",playerDB[playerid][cbuilding]);
	dini_IntSet(file,"Lytis",playerDB[playerid][lytis]);
	dini_FloatSet(file,"pos_X",coo[0]);	dini_FloatSet(file,"pos_Y",coo[1]);	dini_FloatSet(file,"pos_Z",coo[2]);
	dini_IntSet(file,"Interior",GetPlayerInterior(playerid));
	
	dini_IntSet(file,"Drugs",playerDB[playerid][narkotikai]);
	dini_BoolSet(file,"License",playerDB[playerid][teises]);
	dini_IntSet(file,"World",GetPlayerVirtualWorld(playerid));
	dini_IntSet(file,"Insurance",playerDB[playerid][draudimas]);
}

stock GetPlayerMoneyA(playerid) return playerDB[playerid][pinigai];
stock ResetPlayerMoneyA(playerid)
{
	playerDB[playerid][pinigai]=0;
	ResetPlayerMoney(playerid);
}
stock GivePlayerMoneyA(playerid,money)
{

    new rmoney = GetPlayerMoney(playerid);
	if( rmoney < playerDB[playerid][pinigai] && rmoney > -1 ) playerDB[playerid][pinigai]=rmoney;
	
	playerDB[playerid][pinigai]+=money;
	ResetPlayerMoney(playerid);
	GivePlayerMoney(playerid,playerDB[playerid][pinigai]);
}

❤️

 

(redaguota)

GRP4 ir aš naudojau pradžioj, bet jei nori susigaudyti ten, tai reikia daug ką keisti, o norint pakeisti yra užsiknisimas. Daug paprasčiau yra nuo new.pwn pasidaryti, daugiau ir geriau nei GRP4. Patikėk, ten tokių nesąmonių yra...

Jei manai, kad daug nemoki ir negali nuo new.pwn daryti, nesijaudin, jei moki bent pagrindus, pasidarysi ir nuo new.pwn. Aš ir pats daug nemokėjau, bet nuo new.pwn sugebėjau kažką (dar nedaug...) pasidaryti.

Redaguota , nario MartynasK
prieš 15 valandas(-ų), perestukinas maskatuoklis parašė:

koks skirtumas motyvuotas ar ne, paprasiau padaryt o uz tai repais atsiskaitysiu, kas gales tas pades. Neieskau motyvatoriu.

GRP4 ir aš naudojau pradžioj, bet jei nori susigaudyti ten, tai reikia daug ką keisti, o norint pakeisti yra užsiknisimas. Daug paprasčiau yra nuo new.pwn pasidaryti, daugiau ir geriau nei GRP4. Patikėk, ten tokių nesąmonių yra...

Jei manai, kad daug nemoki ir negali nuo new.pwn daryti, nesijaudin, jei moki bent pagrindus, pasidarysi ir nuo new.pwn. Aš ir pats daug nemokėjau, bet nuo new.pwn sugebėjau kažką (dar nedaug...) pasidaryti.

 

Matai, dalykas tas kad aš prieš 2 ar 3 metus mokėjai scriptint neblogai, sukurt gamemodą buvo nesunku, bet nustojau scriptint tai sakau praėjo 2-3 metai nieko neprisimenu, bet vis dėl to reikės kurti nuo new.pwn, nieko čia nesigauna su tuo grp4 bugavotas visas. :D

❤️

 

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4412 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...