Players Crashing, any tactics to find out?
#1

Hi, my server has some bugs i think. Example is the annoying crashes, that comes random at players. Or a crash that always repate is if player dies in a vehicle. Then player crash too.

But the problem is finding out what is makeing those. Does somone have some tricks or things i shuld check in script that may make crash?

Would be very good to get them away. Thanks for all tips
Reply
#2

Copy & paste your OnPlayerDeath public.I have same situation,i fix it deleting something under OnPlayerDeath,but i don`t know what
you have under OnPlayerDeath,so...
Reply
#3

Loong :P

Код:
public OnPlayerDeath(playerid, killerid, reason)
{
	new name[MAX_PLAYER_NAME];
	new string[256];
	//new dmessage[128];
	//new deathreason[20];
	new playercash;
	new victimteam;
	new Float:px,Float:py,Float:pz;
	new killerteam;

	victimteam = gTeam[playerid];
	killerteam = gTeam[killerid];
	gPlayerSpawned[playerid] = 0;
	GetPlayerName(playerid, name, sizeof(name));
	PlayerInfo[playerid][pLocal] = 255;
	GetPlayerPos(playerid, px, py, pz);
	if(killerid != 255)
	{
		if(GetPlayerState(killerid) == 2)
		{
			SendClientMessage(killerid, COLOR_YELLOW, "DriveBy Kill, dont abuse it, On foot gets you $$$!");
			return 1;
		}
	}
	if(reason == 38)
	{
		new kstring[128];
		new kickname[MAX_PLAYER_NAME];
		if(IsPlayerConnected(killerid))
		{
			GetPlayerName(killerid, kickname, sizeof(kickname));
			format(string, 256, "AdmWarning: [%d]%s just killed a player with minigun, be sure he's not fake-killing.",killerid,kickname);
			ABroadCast(COLOR_YELLOW,string,1);
			printf("%s", kstring);
		}
	}
	if (gPlayerCheckpointStatus[playerid] > 4 && gPlayerCheckpointStatus[playerid] < 11)
	{
		DisablePlayerCheckpoint(playerid);
		gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
	}
	new caller = Mobile[playerid];
	if(caller != 255)
	{
		if(caller < 255)
		{
			SendClientMessage(caller, COLOR_GRAD2, "  The line just went dead....");
			CellTime[caller] = 0;
			CellTime[playerid] = 0;
			Mobile[caller] = 255;
		}
		Mobile[playerid] = 255;
		CellTime[playerid] = 0;
	}
	ClearCrime(playerid);
	if(PlayerPaintballing[playerid] != 0)
	{
	  PlayerPaintballKills[killerid] ++;
	  if(PlayerPaintballKills[killerid] > PaintballWinnerKills)
	  {
	    new killer[MAX_PLAYER_NAME];
	    PaintballWinner = killerid;
	    PaintballWinnerKills = PlayerPaintballKills[killerid];
	    GetPlayerName(killerid, killer, sizeof(killer));
	    for(new i = 0; i < MAX_PLAYERS; i++)
	    {
	      if(IsPlayerConnected(i))
	      {
	        if(PlayerPaintballing[i] != 0)
	        {
	          format(string, sizeof(string), "* %s is in the lead with %d Kills.",killer,PaintballWinnerKills);
						SendClientMessage(i, COLOR_WHITE, string);
	        }
	      }
	    }
	  }
	  return 1;
	}
	if(GettingCK[playerid] < 999 || OnCK[playerid] < 999)
	{
	  if(IsPlayerConnected(killerid))
	  {
	    if(GettingCK[killerid] < 999 || OnCK[playerid] < 999)
	    {
	      new killer[MAX_PLAYER_NAME];
	      new dier[MAX_PLAYER_NAME];
	      GetPlayerName(playerid, dier, sizeof(dier));
				GetPlayerName(killerid, killer, sizeof(killer));
	      format(string, sizeof(string), "* %s has performed a Character Kill on you, you aren't able to play with this Character anymore.",killer);
	      SendClientMessage(playerid, COLOR_LIGHTRED, string);
	      format(string, sizeof(string), "** %s has Character Killed %s **",killer,dier);
	      CKLog(string);
	      PlayerInfo[playerid][pCK] = 1;
	      if(GettingCK[playerid] < 999) { GettingCK[playerid] = 999; }
	      else if(OnCK[playerid] < 999) { OnCK[playerid] = 999; }
	      if(GettingCK[killerid] < 999) { GettingCK[killerid] = 999; }
	      else if(OnCK[killerid] < 999) { OnCK[killerid] = 999; }
	      KickPlayer[playerid] = 1;
	    }
	  }
	}
	if(PlayerInfo[playerid][pHeadValue] > 0)
	{
	  if(IsPlayerConnected(killerid))
	  {
		  if(gTeam[killerid] == 10 || PlayerInfo[killerid][pLeader] == 8)
		  {
		    if(GoChase[killerid] == playerid)
		    {
		      ConsumingMoney[killerid] = 1;
					new killer[MAX_PLAYER_NAME];
					GetPlayerName(killerid, killer, sizeof(killer));
					GivePlayerMoney(killerid, PlayerInfo[playerid][pHeadValue]);
					format(string,128,"<< Hitman %s has fulfilled the contract on %s and collected $%d >>",killer,name,PlayerInfo[playerid][pHeadValue]);
					SendFamilyMessage(8, COLOR_YELLOW, string);
					PlayerInfo[playerid][pHeadValue] = 0;
					GotHit[playerid] = 0;
					GetChased[playerid] = 999;
					GoChase[killerid] = 999;
				}
			}
		}
	}
	if(victimteam >= 4)
	{
	  if(IsPlayerConnected(killerid))
	  {
			//new killer[MAX_PLAYER_NAME];
			//GetPlayerName(killerid, killer, sizeof(killer));
			new slice = 100; //$100
			playercash = GetPlayerMoney(playerid);
			if(gTeam[killerid] != 2) { WantedPoints[killerid] += 2; } //+ 2 wanted points
			if(SafeTime[playerid] <= 0)
			{
				if(gTeam[killerid] != gTeam[playerid])
				{
					if(GetPlayerState(killerid) == 1)
					{
						PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills] + 2;
					}
					else
					{
						PlayerInfo[killerid][pKills]++;
					}
					PlayerInfo[playerid][pKills]--;
				}
			}
			/*if (strlen(deathreason) > 0)// patch
			{
				if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill) || gTeam[killerid] == gTeam[playerid])//med kill criminal
				{
					format(string, sizeof(string), ".: %s murdered %s. (%s) :.", killer, name, deathreason);
				}
				else
				{
					format(string, sizeof(string), ".: %s murdered %s. (%s) for $%d :.", killer, name, deathreason, slice);
				}

			}
			else
			{
				if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill || gTeam[killerid] == gTeam[playerid]))
				{
					format(string, sizeof(string), ".: %s murdered %s :.", killer, name);
				}
				else
				{
					format(string, sizeof(string), ".: %s murdered %s for $%d :.", killer, name, slice);
				}
			}*/
			if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill) || (gTeam[killerid] == gTeam[playerid] && gTeam[playerid] != 4))
			{
				slice = 0;
			}
			if (((gTeam[killerid]) != 4) && ((gTeam[killerid]) == gTeam[playerid]))//no team kill
			{
				slice = 0;
			}
			if (playercash > 0)
			{
				GivePlayerMoney(playerid, -slice);
			}
			else
			{
				slice = slice+500;
			}
			GivePlayerMoney(killerid, slice);
			//GameTextForPlayer(playerid, dmessage, 5000, 2);
			PlayerPlaySound(killerid, 1083, 0.0, 0.0, 0.0);
			if (((gTeam[killerid]) == 3) && reason != 49)
			{
				SetPlayerCriminal(killerid,255, "First Degree Murder");
			}
			else if (((gTeam[killerid]) == 3) && reason == 49)
			{
				SetPlayerCriminal(killerid,255, "Hit And Run");
			}
		}
	}
	else if (victimteam == 2)
	{
	  if(IsPlayerConnected(killerid))
	  {
			//new killer[MAX_PLAYER_NAME];
			//GetPlayerName(killerid, killer, sizeof(killer));
			// Cop kill
			PlayerInfo[playerid][pKills]--;
			if (gTeam[killerid] == 2)//cops kill cop
			{
				//format(string,128,".: Officer %s murdered Officer %s (%s) and was sued for $%d :.",killer,name,deathreason,suecost);
				PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
				GivePlayerMoney(killerid, -suecost);
				GivePlayerMoney(playerid, suecost+100);//+100pays hospital bill
			}
			else
			{
				//format(string,128,".: %s murdered Officer %s (%s) :.",killer,name,deathreason);
		  }
			if (gTeam[killerid] >= 3)
			{
			  WantedPoints[killerid] += 2; //+ 2 wanted points
				if(reason != 49)
				{
					SetPlayerCriminal(killerid,255, "First Degree Murder");
				}
				else if (reason == 49)
				{
					SetPlayerCriminal(killerid,255, "Hit And Run");
				}
			}
			if(gTeam[killerid] >= 5 && SafeTime[playerid] <= 0)
			{
				if(GetPlayerState(killerid) == 1)
				{
					PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills]+2;
				}
				else
				{
					PlayerInfo[killerid][pKills]++;
				}
				WantedPoints[killerid]+=2;
			}
			//BroadCast(COLOR_RED, string);
		}
	}
	else if (victimteam == 3)
	{
	  if(IsPlayerConnected(killerid))
	  {
			//new killer[MAX_PLAYER_NAME];
			//GetPlayerName(killerid, killer, sizeof(killer));
			// Civ kill
			if ((gTeam[killerid]) == 2)//cops kill civ
			{
			  if(WantedLevel[playerid] < 1)
			  {
					//format(string,128,".: Officer %s murdered %s (%s) and was sued for $%d :.",killer,name,deathreason,suecost);
					PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
					GivePlayerMoney(killerid, -suecost);
					GivePlayerMoney(playerid, suecost+100);//+100pays hospital bill
				}
			}
			else
			{
				//format(string,128,".: %s murdered %s (%s) :.",killer,name,deathreason);
				WantedPoints[killerid] += 2;
		  }
			if (((gTeam[killerid]) >= 3 || (gTeam[killerid]) == 1) && reason != 49)
			{
				SetPlayerCriminal(killerid,255, "First Degree Murder");
			}
			else if (((gTeam[killerid]) >= 3 || (gTeam[killerid]) == 1) && reason == 49)
			{
				SetPlayerCriminal(killerid,255, "Hit And Run");
			}
		  //BroadCast(COLOR_RED, string);
		}
	}
	else if (victimteam == 1)
	{
	  if(IsPlayerConnected(killerid))
	  {
			//new killer[MAX_PLAYER_NAME];
			//GetPlayerName(killerid, killer, sizeof(killer));
			// Civ kill
			if ((gTeam[killerid]) == 2)//cops kill civ
			{
				//format(string,128,".: Officer %s murdered Paramedic %s (%s) and was sued for $%d :.",killer,name,deathreason,suecost);
				PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
				GivePlayerMoney(killerid, -suecost);
				GivePlayerMoney(playerid, suecost+100);//+100pays hospital bill
			}
			else if ((gTeam[killerid]) == 1)//med kill civ
			{
				//format(string,128,".: Paramedic %s murdered %s (%s) and was sued for $%d :.",killer,name,deathreason,suecost);
				PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
				GivePlayerMoney(killerid, -suecost);
				GivePlayerMoney(playerid, suecost+100);//+100pays hospital bill
			}
			else
			{
				//format(string,128,".: %s murdered %s (%s) :.",killer,name,deathreason);
		  }
			if (((gTeam[killerid]) == 4) && reason != 49)
			{
				SetPlayerCriminal(killerid,255, "First Degree Murder");
			}
			else if (((gTeam[killerid]) == 3) && reason == 49)
			{
				SetPlayerCriminal(killerid,255, "Hit And Run");
			}
		  //BroadCast(COLOR_RED, string);
		}
	}
	if (victimteam >= 3 && WantedPoints[playerid] > 0 && killerteam == 2)
	{
	  SetPlayerFree(playerid,killerid, "Got Killed");
	}
	killerid = INVALID_PLAYER_ID;
	SetPlayerColor(playerid,COLOR_GRAD2);
	return 1;
}
Reply
#4

Is that PEN1:LS ?
Just delete
Код:
if(reason == 38)
	{
		new kstring[128];
		new kickname[MAX_PLAYER_NAME];
		if(IsPlayerConnected(killerid))
		{
			GetPlayerName(killerid, kickname, sizeof(kickname));
			format(string, 256, "AdmWarning: [%d]%s just killed a player with minigun, be sure he's not fake-killing.",killerid,kickname);
			ABroadCast(COLOR_YELLOW,string,1);
			printf("%s", kstring);
		}
	}
and everything will work fine,trust me. Better use some AntiCheat system.
Reply
#5

No its modified by me godfather O.o

I test it out
Reply
#6

Crashing,again?
Reply
#7

I havent tested. I removed it. And restarted. It can take some time before i know it crashes random or not. But i still crashes when in dieing in car.

I dont have players at my server, all left So i think i know answer about random crash tommrow
Reply
#8

That what luka said has dont do ANYTHING with crashing.. it is about objects... use ****** object streamer and you crashes will gone(but still always there will be crashes in samp )
Reply
#9

I use xObjects ( know its old, but didnt god the new one xStreamer aka xObjects2, to work)

But i can try to use ******. If its better?
Reply
#10

Quote:
Originally Posted by JoeBullet
That what luka said has dont do ANYTHING with crashing.. it is about objects... use ****** object streamer and you crashes will gone(but still always there will be crashes in samp )
@JoeBullet:
Aj nemoj pametovat,to se meni deљavalo,zvuči zbilja čudno,ali funkcionira.I ja sam mislio da to neće radit,al mi je netko rekao i radilo je ozbiljno na PEN1 a ovo je GF a to je zbilja vrlo slično.Nema veze s objektima ako mu crasha dok umire u autu.Jedino da ima problema sa spawnom,tj da nema određenu spawn poziciju nego onplayerrequestspawn pa da onda pokusava setplayerpos,onda moze doc do crasha.Ili moћda taj minigun anticheat se na krivi način provjerava,ali znam,imao sam taj problem,makno sam to i sve je radilo...

@Blt950:
Objects doesn`t have any connection with crash if players crashes when they died in car.Maybe you doesn`t have a class (spawn position) defined in AddPlayerClass,ex. you maybe call spawn on OnPlayerRequestSpawn and then use SetPlayerPos,there might be a problem (if u have that). Sorry for above text,i was talking with JoeBullet in Croatian language,i know him,so we are trying to help you,we better understand our language.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)