SA-MP Forums Archive
Crash when player die - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: Crash when player die (/showthread.php?tid=88877)



Crash when player die - Vibrate - 29.07.2009

I have a problem . When players die i crash. When they have wanted and die , they don't go to jail they crash.

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, "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;
}



Re: Crash when player die - pagie1111 - 29.07.2009

You have alot of stuff in there, overloading?


Re: Crash when player die - Vibrate - 29.07.2009

I think so. What should I do?


Re: Crash when player die - pagie1111 - 29.07.2009

change

Код:
new playercash;
new victimteam;
new Float:px,Float:py,Float:pz;
new killerteam;
to

Код:
new playercash, victimteam, Float:px, Float:py, Float:pz, killerteam;
see if that works


Re: Crash when player die - Vibrate - 29.07.2009

This does works.

Sorry for my BAD english




Re: Crash when player die - pagie1111 - 29.07.2009

so no more crashes?


Re: Crash when player die - Vibrate - 29.07.2009

first worked, but now dosen't work


Re: Crash when player die - pagie1111 - 29.07.2009

HMMMMM

theres a shit load of things in there that can overload... but i am unsure of how to fix :S


Re: Crash when player die - Vibrate - 29.07.2009

ok. Thank you. Someone?


Re: Crash when player die - Vibrate - 29.07.2009

Someone who can help me?