Zaključano

Cesto pada skripta

pre 6 godina
1,254
pregleda
14
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
TokicMajstor
Street Runner
pre 6 godina
Problem(error/warning): Od nedavno na serveru svim igracima jako cesto pada skripta, najcesce kad se /goto do nekog i kad se portujes gde ima vise objekata i kad se tek spawnujes pa odma kucas komande tada 100% ces morati relog. Zna li neko zbog cega bi moglo biti
Dio skripte: ne znam sta bih postavio ako treba onplayerspawn ali ne desava se samo tada cesto kad se gotas do nekoga i portujes bilo kud
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): //
Slika/video ingame problema(obavezno ako je ingame problem): Jednostavno padne skripta (kako se to kaze na engleskom?) znaci niko te ne vidi npr. portujes se do lika i on tebe ne vidi i npr. kucas /stats nista se ne prikaze.
Mister Naithan
Kingpin
pre 6 godina
Mod ?
TokicMajstor
Street Runner
pre 6 godina
Luda Kuca, nije s neta, tj. ja sam skripter  i original mod.
Miki11
Crime Lord
pre 6 godina
Optimizacija
TokicMajstor
Street Runner
pre 6 godina
Miki11 wrote on March 2, 2019, 10:16 pm:
Optimizacija


Ali sta da optimizujem i pojasni ako mozes
Balsa.
Crime Lord
pre 6 godina
Probaj sve, od stringova  pa do uklanjanja nebitnih mapa, uklanjanja nepotrebnih stvari, i mozes i poslat mozda tu komandu /goto da vidimo kako izgleda i te komande nakon kojih se desava to
Scripter Vladimir
Underboss
pre 6 godina
Optimizuj skriptu, smanji stringove itd, imas tutorijale kao ovaj (Xunder) --> http://balkan-samp.com/forum/index.php?topic=104732.0  😄
--Lood--
Crime Lord
pre 6 godina
daj mi kada uradis compile
Tj je l ti izbaci samo jednu
liniju ili
izbaci 5/6
Takodje daj mi samo jednu komandu /goto da vidim na kome si princpiru radio provjere i ostalo,
Preporuka
npr OnPlayerDialog
I sada nemoj u svaki dialog praviti new string, pomnozi to sa brojem diajloga i vidices da ce to biti neki broj oko 5000, a zamisli da to smanjis na 128, tako sto samo stavis ispod OnDialogresponse ili kako  se vec zove ta procedura, samo new string ;
Ukratko to je i optimizacija koda
eSADâ„¢
Kingpin
pre 6 godina
Ja msm da preko crashreporta mozess utvrdit gdje ti pada skripta koje komande i ostala sranja ako ti nesto ne vaalja u kodu
FunnyGamingDay - FGD
OG Legend
pre 6 godina
Ovako, prvi od problema moze biti da nisi stavio freeze na teleport, npr ovako: Dodjem ja i ulazim tipa u banku, udje mi u banku onako odma i nista ne cekam | tu stavi freeze npr na 3sec. Onda od drugog problema moze biti preveliki stringovi, npr: pravis neku komandu lupam /ban i kada banuje igraca logicno je da formatiras poruku koju ce igrac dobiti (jer ide i razlog i ime admina) e pa kad stavljas da ti posalje poruku SendClientMessage( playerid, -1, tajstring); 'tajstring' moze i da bude problem. Pogledaj koliki si broj definisao, npr definises new tajstring; a u recenici ima slova max. 128. E Pa taj string smanjis na 128. I Tako sve komande, pronalazis i optimizujes mod. Isto tako treci problem moze biti do Streamera, preporucujem ti da skines najnoviju verziju. Mora raditi neki od nacina. Ali naravno ako ne bude radilo, skines crashdetect plugin i ubacis ga. On ce ti automatski skenirati gde ti je pala skripta i izbacice ti u server.log-u.

Former SA:MP server developer

Mister Naithan
Kingpin
Scripter Vladimir
Underboss
pre 6 godina
Optimizacija skripte , smanji stringove i t d imas na balkan samp optimizacija memorije Xunder je sve objasnio ...  😄
Nikola-.-
Kingpin
TokicMajstor
Street Runner
pre 6 godina
--Lood-- wrote on March 4, 2019, 8:30 am:
daj mi kada uradis compile
Tj je l ti izbaci samo jednu
liniju ili
izbaci 5/6
Takodje daj mi samo jednu komandu /goto da vidim na kome si princpiru radio provjere i ostalo,
Preporuka
npr OnPlayerDialog
I sada nemoj u svaki dialog praviti new string, pomnozi to sa brojem diajloga i vidices da ce to biti neki broj oko 5000, a zamisli da to smanjis na 128, tako sto samo stavis ispod OnDialogresponse ili kako  se vec zove ta procedura, samo new string ;
Ukratko to je i optimizacija koda


Ovako compile:

Pawn compiler 3.10.4 Copyright (c) 1997-2006, ITB CompuPhase

Header size:          60000 bytes
Code size:          9041392 bytes
Data size:        38360608 bytes
Stack/heap size:      80000 bytes; estimated max. usage=8614 cells (34456 bytes)
Total requirements:47542000 bytes


A evo /goto:

YCMD:goto(playerid, params[],help)
{
        if(UlogovanProvera == 0) return Error(playerid, "Morate biti ulogovani, kako bi koristili komande!");
if(PlayerInfo == 1) return SCM(playerid,-1,"LudaKuca | "CRVENA"Radis posao ne mozes da koristis ovu komandu!");
new string, giveplayerid, giveplayer;
new Float:plx,Float:ply,Float:plz;
        if(PlayerInfo >= 1 || PlayerInfo >= 1 || PlayerInfo >= 1 || PlayerInfo >= 1 || PlayerInfo >= 1 || PlayerInfo >= 5)
{
if( !sscanf(params, "u", giveplayerid ) )
              {
        if( giveplayerid == INVALID_PLAYER_ID ) return SCM(playerid, -1,""CRVENA"Igrac nije povezan!");
                        if( PlayerInfo < PlayerInfo) return SCM(playerid,-1,"LudaKuca| "SPLAVA"Ne mozete se portati do igraca koji je jaci od vas!");
if( PlayerInfo >= 1) return SCM(playerid,-1,"LudaKuca | "SPLAVA"Ne mozete se portati do igraca jer imate trazeni level!");
if(NaPubgEventu == 1) return SCM(playerid,-1,""CRVENA"Ne mozes koristiti '/goto' na pubgu si, da izadjes koristi /napustipubg!");
if( PlayerInfo >= 1) return SCM(playerid,-1,"LudaKuca | "SPLAVA"Ne mozete se portati do igraca koji ima trazeni level!");
if( PlayerInfo != 0) return SCM(playerid,-1,"LudaKuca | "SPLAVA"Ne mozete se portati do igraca jer ste zatvoreni!");
                        if( PlayerInfo != 0) return SCM(playerid,-1,"LudaKuca | "SPLAVA"Ne mozete se portati do igraca jer je zatvoren!");
if( PlayerInfo >= 1) return SCM(playerid,-1,"LudaKuca | "SPLAVA"Ne mozete se portati do igraca jer ste u waru!");
if( PlayerInfo >= 1) return SCM(playerid,-1,"LudaKuca | "SPLAVA"Ne mozete se portati do igraca jer je u waru!");
if(PlayerInfo > -1) return SCM(playerid,-1,"(( LudaKuca )) | "CRVENA"Ne mozes koristiti ovu komandu u eventu, /napustievent da izadjes !");
if(giveplayerid == playerid) return SCM(playerid, -1, "Ne mozes se portati do samog sebe!");
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerPos(giveplayerid, plx, ply, plz);
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, plx, ply+4, plz);
}
else
{
SetPlayerPos(playerid,plx,ply+2, plz);
}
SetPlayerInterior(playerid, GetPlayerInterior(giveplayerid));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(giveplayerid));
format(string, sizeof(string),""PLAVA".:: "BELA"LudaKuca "PLAVA"::.  "BELA"Teleportovao si se do igraca %s.",GetName(giveplayerid));
SCM(playerid, -1, string);
new arank;
if(PlayerInfo == 1) { arank = "Admin Level 1"; }
else if(PlayerInfo == 2) { arank = "Admin Level 2"; }
else if(PlayerInfo == 3) { arank = "Admin Level 3"; }
else if(PlayerInfo == 4) { arank = "Admin Level 4"; }
else if(PlayerInfo == 5) { arank = "Admin Level 5 (Head-Admin)"; }
else if(PlayerInfo == 6) { arank = "Admin Level 6 (Direktor)"; }
else if(PlayerInfo == 1) { arank = "GameMaster Level 1"; }
else if(PlayerInfo == 2) { arank = "GameMaster Level 2"; }
else if(PlayerInfo == 3) { arank = "GameMaster Level 3"; }
else if(PlayerInfo == 1) { arank = "Promoter"; }
else if(PlayerInfo == 1) { arank = "Vip Level 1"; }
else if(PlayerInfo == 2) { arank = "Vip Level 2"; }
else if(PlayerInfo == 3) { arank = "Vip Level 3"; }
else if(PlayerInfo == 4) { arank = "Vip Level 4"; }
else if(PlayerInfo == 5) { arank = "Premium"; }
format(string, sizeof(string),""PLAVA".:: "BELA"LudaKuca "PLAVA"::.  "BELA"%s %s se teleportovao do tebe.",arank, GetName(playerid));
SCM(giveplayerid, -1, string);
}
else SCM(playerid, -1,""CRVENA"LudaKuca Pomoc | "BELA"/goto [ID/Nick]");
}
else SCM(playerid, -1,""PLAVA".:: "BELA"LudaKuca "PLAVA"::.  "BELA"Samo Admini & GM !");
return 1;
}

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava