Need help with crashes
#1

My server is suffering of HUGE crashes of players, they just turnign op random on lots of people, and i cant figure out what the problem is. So i'm looking for someone that has experience with crashes in their server, and may have fixed it in anyway. Cause i really need help
Reply
#2

When does the player crash ?
Reply
#3

I dont have a f*cking clue whats causing it, just random crashes, and mostly when someone joins, another person crashes. And sometimes mulitple people at the same time jsut random crash. All i know that its getting people out of my server.
Reply
#4

Do you have /veh command in your script ?
Reply
#5

Show your OnPlayerUpdate, OnPlayerSpawn, OnPlayerDeath and OnPlayerConnect
Reply
#6

Код:
public OnPlayerConnect(playerid)
{
 	SendDeathMessage(INVALID_PLAYER_ID,playerid,200);
	SendClientMessage(playerid,COLOR_RED, "If you don't have an account yet, use /register to create one.");
	//rules--------------------------------------------------------------------------
	TextDrawShowForPlayer(playerid, rules0);
	TextDrawShowForPlayer(playerid, rules1);
	TextDrawShowForPlayer(playerid, rules2);
//-------------------------------------------------------------------------------
  TextDrawShowForPlayer(playerid, Clock);
	SetPlayerColor(playerid, COLOR_GREY); // Set the player's color to inactive
	
	pInfo[playerid][pAdmin] = 0;
	pInfo[playerid][pDeaths] = 0;
	pInfo[playerid][pKills] = 0;
  LoggedIn[playerid] = 0;
  IsPlayerMuted[playerid] = 0;
  Bounty[playerid] = 0;
  	BountyKills[playerid] = 0;
  
	new PName[MAX_PLAYER_NAME], str[128];
	GetPlayerName(playerid, PName, MAX_PLAYER_NAME);

	if(!udb_Exists(PName))
 	{
 	  Registered[playerid] = 0;
		SystemMsg(playerid,"Type /register <password> to create an account");
	}
	else
	{
	  Registered[playerid] = 1;
		SystemMsg(playerid,"This nickname is registed! If you haven't registered this nickname please choose a different one!");
    SystemMsg(playerid,"Please login by typing /login <password>");
	}
	
  new second, minute, hour, day, month, year;
  	if(fsearch("KickedNames.txt", PName, true))
  {
	  SystemMessage(playerid, "Your name has been banned on this server.");
		gettime(hour, minute, second);
		getdate(year, month, day);
		format(str, sizeof(str), "Player %s tried to join server with banned name on %d/%d/%d at %d:%d:%d.", PName, month, day, year, hour, minute, second);
	  KickPlayer(playerid, "");
	}
	else if(IsServerLocked == true)
  {
	  SystemMessage(playerid, "  Server is currently locked down by Administrator.");
	  SystemMessage(playerid, "  Please try connecting later.");
	  KickPlayer(playerid, "");
  }

	return 1;

}

public OnPlayerDisconnect(playerid, reason)
{
  SendDeathMessage(INVALID_PLAYER_ID, playerid, 201);
  if(Registered[playerid])
	{
	  new playername[MAX_PLAYER_NAME];
	  GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
  	dUserSetINT(playername).("Money",GetPlayerMoney(playerid));
  	dUserSetINT(playername).("Kills",pInfo[playerid][pKills]);
  	dUserSetINT(playername).("Deaths",pInfo[playerid][pDeaths]);
  	dUserSetINT(playername).("Admin",pInfo[playerid][pAdmin]);
  	dUserSetINT(playername).("Wantedlvl",GetPlayerWantedLevel(playerid));
 	}
	return 1;
}
Код:
public OnPlayerSpawn(playerid)
{
	if(Killed[playerid] != -1)
	{
		TextDrawShowForPlayer (playerid, Textdraw0);
		TogglePlayerSpectating(playerid, true);
		SetTimerEx("StopSpeccing", 10000, false, "i", playerid);
		if(Killed[playerid] != INVALID_PLAYER_ID)
		{
			PlayerSpectatePlayer(playerid, Killed[playerid]);
			if (IsPlayerInAnyVehicle(Killed[playerid])) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(Killed[playerid]));
			gSpectateID[playerid] = Killed[playerid];
		}
		else
		{
		  new randid = GetRandomID();
			PlayerSpectatePlayer(playerid, randid);
			if (IsPlayerInAnyVehicle(randid)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(randid));
			gSpectateID[playerid] = randid;
		}
	}

	//turfs zone
	
	for(new i=0; i<MAX_ZONES; i++)
	{
	  GangZoneShowForPlayer(playerid, ZoneInfo[i][z_id], GetTeamColor(ZoneInfo[i][z_team]));
	  if(ZoneTakeOverTeam[i] != -1) GangZoneFlashForPlayer(playerid, ZoneInfo[i][z_id], GetTeamColor(ZoneTakeOverTeam[i]));
	}

	//hide spawn info
	TextDrawHideForPlayer(playerid, army0);
	TextDrawHideForPlayer(playerid, army1);
	TextDrawHideForPlayer(playerid, nang0);
	TextDrawHideForPlayer(playerid, nang1);
	TextDrawHideForPlayer(playerid, worker0);
	TextDrawHideForPlayer(playerid, worker1);
	TextDrawHideForPlayer(playerid, rich0);
	TextDrawHideForPlayer(playerid, rich1);
	TextDrawHideForPlayer(playerid, golfer0);
	TextDrawHideForPlayer(playerid, golfer1);
	TextDrawHideForPlayer(playerid, pilot0);
	TextDrawHideForPlayer(playerid, pilot1);
	TextDrawHideForPlayer(playerid, biker0);
	TextDrawHideForPlayer(playerid, biker1);
	TextDrawHideForPlayer(playerid, swat0);
	TextDrawHideForPlayer(playerid, swat1);
	TextDrawHideForPlayer(playerid, pimp0);
	TextDrawHideForPlayer(playerid, pimp1);
	TextDrawHideForPlayer(playerid, triad0);
	TextDrawHideForPlayer(playerid, triad1);
	TextDrawHideForPlayer(playerid, mechanic0);
	TextDrawHideForPlayer(playerid, mechanic1);
	TextDrawHideForPlayer(playerid, chicken0);
	TextDrawHideForPlayer(playerid, chicken1);
	TextDrawHideForPlayer(playerid, hick0);
	TextDrawHideForPlayer(playerid, hick1);
	TextDrawHideForPlayer(playerid, rules0);
	TextDrawHideForPlayer(playerid, rules1);
	TextDrawHideForPlayer(playerid, rules2);
	TextDrawHideForPlayer(playerid, medic0);
	TextDrawHideForPlayer(playerid, medic1);

	PlayerPlaySound(playerid, 1186, 0.0, 0.0, 0.0); //spawn sound

	if(gTeam[playerid] == TEAM_WORKER)
	{
	  GivePlayerWeapon(playerid, 16, 8);
		SetPlayerColor(playerid,COLOR_ORANGE); // Orange
	}
	else if(gTeam[playerid] == TEAM_PIMP)
	{
	  GivePlayerWeapon(playerid, 15, 1);
		SetPlayerColor(playerid,COLOR_DARKRED); // Red
	}
	else if(gTeam[playerid] == TEAM_GOLFER)
	{
	  GivePlayerWeapon(playerid, 45, 1);
		SetPlayerColor(playerid,COLOR_YELLOW); // Yellow
	}
	else if(gTeam[playerid] == TEAM_TRIAD)
	{
	  GivePlayerWeapon(playerid, 8, 1);
		SetPlayerColor(playerid,COLOR_PINK); // Pink
	}
	else if(gTeam[playerid] == TEAM_MECHANIC)
	{
	  GivePlayerWeapon(playerid, 24, 40);
		SetPlayerColor(playerid,COLOR_LIGHTBLUE); // LightBlue
	}
  else if(gTeam[playerid] == TEAM_BIKER)
	{
	  GivePlayerWeapon(playerid, 24, 40);
		SetPlayerColor(playerid,COLOR_BLUE); // Blue
	}
	else if(gTeam[playerid] == TEAM_MEDIC)
	{
	  GivePlayerWeapon(playerid, 4, 1);
		SetPlayerColor(playerid,COLOR_PURPLE); // Purple
	}
	else if(gTeam[playerid] == TEAM_SWAT)
	{
	  GivePlayerWeapon(playerid, 44, 1);
		SetPlayerColor(playerid,COLOR_DARKGREEN); // DarkGreen
	}
	else if(gTeam[playerid] == TEAM_HICK)
	{
	  GivePlayerWeapon(playerid, 6, 1);
		SetPlayerColor(playerid,COLOR_BROWN); // Brown
  }
	else if(gTeam[playerid] == TEAM_PILOT)
	{
	  GivePlayerWeapon(playerid, 46, 1);
		SetPlayerColor(playerid,COLOR_DARKGREY); // Grey good
  }
  else if(gTeam[playerid] == TEAM_TORENO)
	{
	  GivePlayerWeapon(playerid, 16, 8);
		SetPlayerColor(playerid,COLOR_BEGE); // Bege
	}
	else if(gTeam[playerid] == TEAM_NANG)
	{
	  GivePlayerWeapon(playerid, 16, 8);
	  SetPlayerColor(playerid,COLOR_RED); // lRed
  }
	else if(gTeam[playerid] == TEAM_CHICKEN)
	{
	  GivePlayerWeapon(playerid, 18, 8);
		SetPlayerColor(playerid,COLOR_DARKYELLOW); // DarkYellow
  }
	else if(gTeam[playerid] == TEAM_ARMY)
	{
	  GivePlayerWeapon(playerid, 16, 8);
		SetPlayerColor(playerid,COLOR_DARKGREEN); // DarkGreen
	}

	return 1;

}
Код:
public OnPlayerDeath(playerid, killerid, reason)
{
  SendDeathMessage(killerid,playerid,reason);
	Killed[playerid] = killerid;
	pInfo[playerid][pDeaths]++;
	DropPlayerWeapons(playerid);
 	if(killerid != INVALID_PLAYER_ID)
  	{
  	  pInfo[killerid][pKills]++;
  	if(gTeam[killerid] != gTeam[playerid])
		{
	    // Valid kill
	    new str[128];
	    SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
	    GivePlayerMoney(killerid, 1000);
	    if(IsPlayerJustice(playerid) && !IsPlayerJustice(killerid))
			{
			  BountyKills[killerid]++;
			  if(BountyKills[killerid] > 3)
			  {
			    if(BountyKills[killerid] == 4) Bounty[killerid] = 10000;
			    else Bounty[killerid] += 2500;
			    GetName(killerid, killername);
			    format(str, sizeof(str), "%s (%d) now has a bounty of $%d", killername, killerid, Bounty[killerid]);
			    SendClientMessageToAll(COLOR_YELLOW, str);
				}
			}
			if(Bounty[playerid] > 0)
			{
			  GetName(playerid, playername);
			  GivePlayerMoney(killerid, Bounty[playerid]);
			  format(str, sizeof(str), "You got $%d bounty reward for killing %s (%d)", Bounty[playerid], playername, playerid);
				SendClientMessageToAll(COLOR_YELLOW, str);
			}
		}
  	}
  	Bounty[playerid] = 0;
  	BountyKills[playerid] = 0;
  return 1;
}
I dont have on playerupdate
Reply
#7

12 hours
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)