[Pomoc] Padanje servera, greške u ondialogresponse


Započeo Брат Јоле, Jun 14, 2014, 16:06:09 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

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);
					  	...
Poslednja Izmena: Jun 14, 2014, 16:09:26 POSLE PODNE od Брат Јоле


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..
Poslednja Izmena: Jun 14, 2014, 16:10:30 POSLE PODNE od Брат Јоле

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.
Poslednja Izmena: Jun 14, 2014, 16:12:27 POSLE PODNE od [SF]C++
69

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?
Poslednja Izmena: Jun 14, 2014, 16:14:53 POSLE PODNE od Брат Јоле

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.
69

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
Poslednja Izmena: Jun 14, 2014, 17:52:17 POSLE PODNE od Брат Јоле