Skripta koju koristim: NL
Detaljan opis problema: DeÅ¡ava se da server Äesto pada, skinuo sam crashdetect plugin, ubacio ga, compile sa -d3 parametrom i dobio sam gde je greÅ¡ka u server log fajlu. Ne znam kako bih to ispravio, taÄnije i ne primećujem greÅ¡ku nigde, iako kaže da je na toj liniji
Dio skripte: Ispod
Neke slike/video za lakse dobivanje pomoci(neobavezno):
ZnaÄi ovako, evo greÅ¡ki iz loga
[15:42:30] [debug] Server crashed while executing NLRP.amx
[15:42:30] [debug] AMX backtrace:
[15:42:30] [debug] #0 native format () [080d9b00] from samp03svr
[15:42:30] [debug] #1 00289164 in SCMF (playerid=0, color=-86, fstring[]=@0x02fe3024 "Dobrodosli na Detroit City Rol...", ... <2 arguments>) at C:\Users\Nikola\Desktop\Detroit City RP - v2.0J\gamemodes\NLRP.pwn:30378
[15:42:30] [debug] #2 003b80e4 in public OnDialogResponse (playerid=0, dialogid=318, response=1, listitem=-1, inputtext[]=@0x03076740 "šifra") at C:\Users\Nikola\Desktop\Detroit City RP - v2.0J\gamemodes\NLRP.pwn:56348
[15:42:30] [debug] Native backtrace:
[15:42:30] [debug] #0 f738d936 in _ZN10StackTraceC2EPv () from plugins/crashdetect.so
[15:42:30] [debug] #1 f7388f33 in _ZN11CrashDetect20PrintNativeBacktraceERSoPv () from plugins/crashdetect.so
[15:42:30] [debug] #2 f7389a62 in _ZN11CrashDetect20PrintNativeBacktraceEPv () from plugins/crashdetect.so
[15:42:30] [debug] #3 f7389f63 in _ZN11CrashDetect11OnExceptionEPv () from plugins/crashdetect.so
[15:42:30] [debug] #4 f738d63d in ?? () from plugins/crashdetect.so
[15:42:30] [debug] #5 f7705410 in ?? ()
[15:42:30] [debug] #6 080a3357 in ?? () from ./samp03svr
[15:42:30] [debug] #7 080d3899 in ?? () from ./samp03svr
[15:42:30] [debug] #8 080d9b40 in ?? () from ./samp03svr
[15:42:30] [debug] #9 08093f54 in ?? () from ./samp03svr
[15:42:30] [debug] #10 f73869f1 in _ZN11CrashDetect13DoAmxCallbackEiPiS0_ () from plugins/crashdetect.so
Dialog id 318 je dialog za login, a ovo što piše "šifra" je šifra od acca sa servera koju sam sklonio.
Linija 30378 je deo SCMF stocka, dok je linja 56348 u ondialogresponse baš deo u kome piše ovo "Dobrodosli na Detroit City Rol..." iz koda
Evo linija tih kodova ako neko ume prepoznati grešku pošto meni stvarno nije jasno, a server konstantno pada :(
stock SCMF(playerid,color,fstring[],{Float, _}:...)
{
new n=(numargs()-3)*4;
if(n)
{
new message[128],arg_start,arg_end;
#emit CONST.alt fstring
#emit LCTRL 5
#emit ADD
#emit STOR.S.pri arg_start
#emit LOAD.S.alt n
#emit ADD
#emit STOR.S.pri arg_end
do
{
#emit LOAD.I
#emit PUSH.pri
arg_end-=4;
#emit LOAD.S.pri arg_end
}
while(arg_end>arg_start);
#emit PUSH.S fstring
#emit PUSH.C 255
#emit PUSH.ADR message
n+=4*3;
#emit PUSH.S n
#emit SYSREQ.C format
30378. n+=4;
#emit LCTRL 4
#emit LOAD.S.alt n
#emit ADD
#emit SCTRL 4
return SCM(playerid,color,message);
}
else return SCM(playerid,color,fstring);
}
SCMF(playerid,BELA,"Dobrodosli na Detroit City RolePlay. | Sada je %d sati i %d minuta.", hour, minuite);
TakoÄ'e u kodu se pominje Å¡ifra (inputtext) evo i tog dela
if(dialogid == DIALOG_LOGIN)
{
if(!response) { Kicksaporukom(playerid); return 1; }
if(response)
{
KillTimer(poslije[playerid]);
if(strlen(inputtext))
{
if(!strcmp(inputtext, PlayerInfo[playerid][pSifra], false))
{
IgracLogovan[playerid] = 1;
///// KREIRANJE OWNERSHIPA
KreirajSkuter(playerid);
KreirajBiciklo(playerid);
KreirajVozilonovo(playerid)
KreirajLetjelicu(playerid);
KreirajDrugovozilo(playerid);
...
Ja mislim da nije problem u ovome sto si nam dao.
Stvarno mi nije jasno, to su te linije koje ispisuje log, i dok je upaljen crashdetect, svaki put kad se neko loguje i kad upiše šifru padne server..
Citat: Ð'раÑ, Јоле poslato Jun 14, 2014, 16:10:04 POSLE PODNE
Stvarno mi nije jasno, to su te linije koje ispisuje log, i dok je upaljen crashdetect, svaki put kad se neko loguje i kad upiše šifru padne server..
daj mi citav response za kucanje sifre.
Eo :D
if(response)
{
KillTimer(poslije[playerid]);
if(strlen(inputtext))
{
if(!strcmp(inputtext, PlayerInfo[playerid][pSifra], false))
{
IgracLogovan[playerid] = 1;
///// KREIRANJE OWNERSHIPA
KreirajSkuter(playerid);
KreirajBiciklo(playerid);
KreirajVozilonovo(playerid)
KreirajLetjelicu(playerid);
KreirajDrugovozilo(playerid);
//////
new stringnj[256];
new year, month,day;
getdate(year, month, day);
new hour,minuite;
gettime(hour,minuite);
FixHour(hour);
hour = shifthour;
new pip[24];
GetPlayerIp(playerid, pip, sizeof(pip));
format(stringnj, sizeof(stringnj), "%d.%d.%d | %d:%d | %s se konektovao na server | IP: %s\n",day,month,year,hour,minuite,GetPlayerNameEx(playerid),pip);
logovanjelog(stringnj);
ClearChatbox(playerid, 8);
GetPlayerName(playerid,sendername,sizeof(sendername));
ClearAnimations(playerid);
GivePlayerMoney (playerid,PlayerInfo[playerid][pNovac]);
SpawnPlayer(playerid);
imeigraca(playerid,sendername);
new asfgasg[256];
new playersip[64];
GetPlayerIp(playerid,playersip,sizeof(playersip));
format(asfgasg,sizeof(asfgasg),"%s",playersip);
strmid(PlayerInfo[playerid][pIP], asfgasg, 0, strlen(asfgasg), 255);
new stringv[128];
new stringa[128];
format(stringv, sizeof(stringv), "/Korisnici/Aktivnost/%s.ini", sendername);
if(!fexist(stringv))
{
dini_Create(stringv);
}
format(stringa,sizeof(stringa),"%d.%d.%d, %d:%d",day,month,year,hour,minuite);
dini_Set(stringv,"Login", stringa);
strmid(PlayerInfo[playerid][ZadnjiLogin], stringa, 0, strlen(stringa), 255);
foreach(Player, i)
{
if (PlayerInfo[i][pLogSpec] == 1)
{
new abc[256];
format(abc, sizeof(abc),"{FFFF00}[DC] Adm| {00C0FF}Igrac {FFFFFF}%s(%d) {00C0FF}se konektovao na server!",sendername,playerid);
SCM(i,WHITE,abc);
}
}
SCMF(playerid,BELA,"Dobrodosli na Detroit City RolePlay. | Sada je %d sati i %d minuta.", hour, minuite);
SCMF(playerid,BELA,"Vas nivo je %d i proveli ste %d sati igre na serveru",PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pOnlineVremena]);
SetPlayerColor(playerid,0xFFFFFFFF);
if (PlayerInfo[playerid][pAdmin] > 0)
{
SCMF(playerid,BELA,"{FFFF00}Logovan si kao Administrator %d", PlayerInfo[playerid][pAdmin]);
}
if (PlayerInfo[playerid][pGameXpert] > 0)
{
SCMF(playerid,BELA,"{FFFF00}Logovan si kao GameXpert {FFFF00}%d", PlayerInfo[playerid][pGameXpert]);
}
if(PlayerInfo[playerid][pLider] != 0)
{
PlayerInfo[playerid][pPodlider] = PlayerInfo[playerid][pLider];
}
if(PlayerInfo[playerid][pRank] == 5)
{
PlayerInfo[playerid][pPodlider] = PlayerInfo[playerid][pClan];
}
if(PlayerInfo[playerid][pKaznaOdOvo] == 1)
{
PlayerInfo[playerid][pZatvoren] = 1;
PlayerInfo[playerid][pZatvorenVremena] = 20*60;
PlayerInfo[playerid][pKaznaOdOvo] = 0;
SCM(playerid,WHITE,"[DC]: {FFFF00}Prebaceni ste u zatvor na 20 minuta!");
SCM(playerid,WHITE,"[DC]: {FFFF00}Otisli ste sa servera tazovani, sa potjerom, zavezani ili niste platili kaznu!");
}
}
else
{
new loginname[840];
new mesage2[128];
new mesage3[128];
GetPlayerName(playerid,loginname,sizeof(loginname));
format(mesage2, sizeof(mesage2), "{FFFF00}Pogrijesili ste lozinku korisnika {EA0C0C}%s",loginname);
format(mesage3, sizeof(mesage3), "\n{FFFF00} Imate %d pokusaja za logiranje!",gPlayerLogTries[playerid]);
format(loginname, 840," %s%s",mesage2,mesage3);
ShowPlayerDialog(playerid, DIALOG_LOGIN,DIALOG_STYLE_PASSWORD, "{EA0C0C}Pogresna sifra!!!", loginname, "Prijava", "Izadji");
new abc[256];
format(abc, sizeof(abc),"{FFFF00}[DC] Adm| {00C0FF}Igrac {FFFFFF}%s(%d) {00C0FF}je pogrijesio sifru pri logovanju na server!",loginname,playerid);
ABroadCast(COLOR_LIGHTRED,abc,1);
gPlayerLogTries[playerid]--;
if(gPlayerLogTries[playerid] == 0)
{
Kicksaporukom(playerid);
}
}
}
Pošto izbacuje error i kod ovog SCMFa, možda mi SCMF stock nije pravilno napisan?
scfm je uredu.
covjece stvarno lose kodiras uradi ispocetka logovanje tu mu samo proveri tacnost sifre i onda kad proveris pokrenes mu timer i citas vlasnistva a ne ovako.
Nisam ja to kodirao, kao što rekoh gore mod je NL, mogu da napravim tajmer tu i da prebacim sve ovo ostalo u njega, al ne verujem da će to rešiti stvar, evo sad ću probati
ÄŒim sam ugasio deo koda
SCMF(playerid,BELA,"Dobrodosli na Detroit City RolePlay. | Sada je %d sati i %d minuta.", hour, minuite);
SCMF(playerid,BELA,"Vas nivo je %d i proveli ste %d sati igre na serveru",PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pOnlineVremena]);
sve radi kako treba.. btw tajmer nije rešio prob
Može lock