[HELP] Crash After Die
#1

Game Crash after Die on my script.

Die and then the screen calm
and game crash

* Writing may be wrong? Because I am a People Thai.
Reply
#2

Did your server crash, or your client.
If server, try to find out what's wrong with OnPlayerDeath, and debug it.
Reply
#3

I had same problem, check can you go through street lights and other objects and check does Burger Shot, Well Stacked Pizza and Casinos crash too. If they crash also, check your filterscripts and gamemode code has it over 150 CreateObject's
Reply
#4

I use CreateStreamedObject.

////////////////////////////////////

Some Crash.
And some do not Crash.
Reply
#5

Quote:
Originally Posted by Andom
Did your server crash, or your client.
If server, try to find out what's wrong with OnPlayerDeath, and debug it.
my OnPlayerDeath

pawn Код:
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, "Drive-By Kill, การกะทำนี้ผิดกฏของเซิฟเวอร์กรุณาอย่าทำอีก!");
            return 1;
        }
    }
    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));
                    SafeGivePlayerMoney(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 = ScriptMoney[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)
            {
                SafeGivePlayerMoney(playerid, -slice);
            }
            else
            {
                slice = slice+500;
            }
            SafeGivePlayerMoney(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, "ฆาตกร");
            }
            else if (((gTeam[killerid]) == 3) && reason == 49)
            {
                SetPlayerCriminal(killerid,255, "ฆ่าแล้วหนี");
            }
        }
    }
    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);
                PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
            }
            else
            {
                //format(string,128,".: %s murdered Officer %s (%s) :.",killer,name,deathreason);
          }
            if (gTeam[killerid] == 3 || gTeam[killerid] == 12)
            {
              WantedPoints[killerid] += 2; //+ 2 wanted points
                if(reason != 49)
                {
                    SetPlayerCriminal(killerid,255, "ฆาตกร");
                }
                else if (reason == 49)
                {
                    SetPlayerCriminal(killerid,255, "ฆ่าแล้วหนี");
                }
            }
            if (gTeam[killerid] == 5 || gTeam[killerid] == 10)
            {
                if(gTeam[playerid] != 5 || gTeam[playerid] != 10 && reason != 49)
                {
                    WantedPoints[killerid] += 2; //+ 2 wanted points
                    SetPlayerCriminal(killerid,255, "ฆาตกร");
                }
                else if (gTeam[playerid] != 5 || gTeam[playerid] != 10 && reason == 49)
                {
                    WantedPoints[killerid] += 2; //+ 2 wanted points
                    SetPlayerCriminal(killerid,255, "ฆ่าแล้วหนี");
                }
            }
            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);
                    PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
                }
            }
            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, "ฆาตกร");
            }
            else if (((gTeam[killerid]) >= 3 || (gTeam[killerid]) == 1) && reason == 49)
            {
                SetPlayerCriminal(killerid,255, "ฆ่าแล้วหนี");
            }
          //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);
                PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
            }
            else if ((gTeam[killerid]) == 1)//med kill civ
            {
                //format(string,128,".: Paramedic %s murdered %s (%s) and was sued for $%d :.",killer,name,deathreason);
                PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
            }
            else
            {
                //format(string,128,".: %s murdered %s (%s) :.",killer,name,deathreason);
          }
            if (((gTeam[killerid]) == 4) && reason != 49)
            {
                SetPlayerCriminal(killerid,255, "ฆาตกร");
            }
            else if (((gTeam[killerid]) == 3) && reason == 49)
            {
                SetPlayerCriminal(killerid,255, "ฆ่าแล้วหนี");
            }
          //BroadCast(COLOR_RED, string);
        }
    }
    if (victimteam >= 3 && WantedPoints[playerid] > 0 && killerteam == 2)
    {
      SetPlayerFree(playerid,killerid, "Got Killer");
    }
    killerid = INVALID_PLAYER_ID;
    SetPlayerColor(playerid,COLOR_GRAD2);
    return 1;
}
Reply
#6

what platform do you use, Winxp - vista - or any linux?
Reply
#7

I use Windows Xp Service Pack 2
Reply
#8

All things like this: SetPlayerCriminal(killerid,255, "ฆ่าแล้วหนี"); will cause crash, because the SetPlayerCriminal is bugged @ xp, (this is pen1ls or GF right?) at least it is @ me
Reply
#9

if u are using objects you should use a streamer, if u already have a streamer try to see what's wrong with it or use another one
Reply
#10

Simply go to GF topic instaed.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)