• 02 Mai 2025, 01:48:19


Auteur Sujet: crash apres la mort  (Lu 1271 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne robyn59

  • *
  • Tueur en série
  • Messages: 108
    • Voir le profil
crash apres la mort
« le: 09 Mai 2009, 21:15:41 »
Bonjour j'utilise un GM donc un amis ma passer et quand on meur , sa fait crash le jeu , d'où pourrait venir ce probleme ?

merci a ceux qui m'aiderons et bonne soiré

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : crash apres la mort
« Réponse #1 le: 09 Mai 2009, 21:32:10 »
Salut,

il serait sans doute plus facile de t'aider si tu donnais le code de ta callback OnPlayerDeath

par expérience personnelle, il est possible que si tu as trop d'objets , à mes débuts j'avais une malheureuse tendance a mourrir à la fin d'un stunt et je crashais au moins 1 fois sur 2

++Sim++





Hors ligne robyn59

  • *
  • Tueur en série
  • Messages: 108
    • Voir le profil
Re : crash apres la mort
« Réponse #2 le: 09 Mai 2009, 22:23:11 »
Desoler je debute dans le script donc j'ai trouver ceci mais il avait rien d'autre, je ne sait pas si ses bon
Citer
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;

   hospitalbill[playerid] = 1;
   pizzajob[playerid] = 0;
    cluckexit[playerid] = 0;
    burgerexit[playerid] = 0;
    storeexit[playerid] = 0;
    gPlayerUsingLoopingAnim[playerid] = 0;
   workingout[playerid] = 0;
   GivePlayerPCash(killerid,100);
      PlayerInfo[playerid][pSeatBelt] = 0;
   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, n'en abusé pas, ou vous serait à pied $$$!");
         return 1;
      }
   }

    if(drivingtest[playerid] == 1 && drivingtestcheck[playerid] > 0)
    {
    SendClientMessage(playerid,RED,"Vous ètes Mort");
    GameTextForPlayer(playerid, "~r~Mission Perdu", 5000, 3);
    drivingtest[playerid] = 0;
    drivingtestcheck[playerid] = 0;
    drivingtesttime[playerid] = 0;
    gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
    DisablePlayerCheckpoint(playerid);
    drivingtestfailed[playerid] = 1;
    }

    if(WantedLevel[playerid] > 0)
    {
    new dstring[128];
    new wanted = WantedLevel[playerid];
    new diecash = 0;
    while(WantedLevel[playerid] > 0)
    {
    diecash += 10;
    WantedLevel[playerid] --;
    }
    felon[playerid] = 0;
    format(dstring, sizeof(dstring), "Tu a perdu $%d pour mourir avec %d Recherché Points.", diecash, wanted);
    SendClientMessage(playerid, COLOR_YELLOW, dstring);
    GivePlayerPCash(playerid, - diecash);
    PlayerInfo[playerid][pWantedDeaths] += 1;
    }

   if(PlayerInfo[playerid][pHeadValue] >= 1 && PlayerInfo[killerid][pMember] == 8)
   {
   new sendername[MAX_PLAYER_NAME];
   new playermoney = PlayerInfo[playerid][pHeadValue];
   GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "Vous avez terminé votre contrat:%s et a reçu $%d", sendername , playermoney);
   SendClientMessage(killerid,COLOR_LIGHTBLUE,string);
   GivePlayerPCash(killerid,playermoney);
   GivePlayerPCash(playerid,-playermoney);
   PlayerInfo[playerid][pHeadValue] = 0;
   return 1;
   }

   if(PlayerInfo[killerid][pMember] != 1 && PlayerInfo[playerid][pMember] == 1)
   {
   WantedLevel[killerid] += 3;
   SetPlayerCriminal(killerid,255, "Meurtre d'un agent de police");
   felon[killerid] = 1;
   SetPlayerColor(killerid,0xFF800096);
   return 1;
   }

   if(PlayerInfo[killerid][pMember] != 1)
   {
   SetPlayerCriminal(killerid,255, "Meurtre au premier degré");
   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, "   La ligne est coupé....");
         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 != 0)
                   {
                       format(string, sizeof(string), "* %s est en tête avec %d Tue.",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 a joué un Caractère Tuent sur vous, vous n'êtes pas capables de  jouer avec ce Caractère.",killer);
               SendClientMessage(playerid, COLOR_LIGHTRED, string);
               format(string, sizeof(string), "** %s a tué le caractère de %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] == 1 || PlayerInfo[killerid][pLeader] == 8)
          {
              if(GoChase[killerid] == playerid)
              {
                  ConsumingMoney[killerid] = 1;
               new killer[MAX_PLAYER_NAME];
               GetPlayerName(killerid, killer, sizeof(killer));
               GivePlayerPCash(killerid, PlayerInfo[playerid][pHeadValue]);
               format(string,128,"<< Le Hitman %s a réalisé le contrat sur %s et s'est accumulé $%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 = GetPlayerPCash(playerid);
         if(PlayerInfo[killerid][pMember] != 1 ) { WantedLevel[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)
         {
            GivePlayerPCash(playerid, -slice);
         }
         else
         {
            slice = slice+500;
         }
         GivePlayerPCash(killerid, slice);
         //GameTextForPlayer(playerid, dmessage, 5000, 2);
         PlayerPlaySound(killerid, 1083, 0.0, 0.0, 0.0);
         if (reason == 49)
         {
            SetPlayerCriminal(killerid,255, "Coup et Fuite");
         }
      }
   }
   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);
            GivePlayerPCash(killerid, -suecost);
            GivePlayerPCash(playerid, suecost+100);//+100pays hospital bill
         }
         else
         {
            //format(string,128,".: %s murdered Officer %s (%s) :.",killer,name,deathreason);
          }
         if(gTeam[killerid] >= 5 && SafeTime[playerid] <= 0)
         {
            if(GetPlayerState(killerid) == 1)
            {
               PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills]+2;
            }
            else
            {
               PlayerInfo[killerid][pKills]++;
            }
            WantedLevel[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);
               GivePlayerPCash(killerid, -suecost);
               GivePlayerPCash(playerid, suecost+100);//+100pays hospital bill
            }
         }
         else
         {
            //format(string,128,".: %s murdered %s (%s) :.",killer,name,deathreason);
            WantedLevel[killerid] += 2;
          }
          //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);
            GivePlayerPCash(killerid, -suecost);
            GivePlayerPCash(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);
            GivePlayerPCash(killerid, -suecost);
            GivePlayerPCash(playerid, suecost+100);//+100pays hospital bill
         }
         else
         {
            //format(string,128,".: %s murdered %s (%s) :.",killer,name,deathreason);
          }
          //BroadCast(COLOR_RED, string);
      }
   }
   if (victimteam >= 3 && WantedLevel[playerid] > 0 && killerteam == 2)
   {
       SetPlayerFree(playerid,killerid, "Got Killed");
   }
   killerid = INVALID_PLAYER_ID;
   SetPlayerColor(playerid,COLOR_GRAD2);
   return 1;
}


Hors ligne ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : crash apres la mort
« Réponse #3 le: 10 Mai 2009, 12:10:27 »
Regarde si tu as dans OnGameModeInit des CreateObject, sa peut faire crasher si tu en as beaucoup.

Hors ligne robyn59

  • *
  • Tueur en série
  • Messages: 108
    • Voir le profil
Re : crash apres la mort
« Réponse #4 le: 10 Mai 2009, 16:46:36 »
non j'en ai meme pas 200

Hors ligne ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : crash apres la mort
« Réponse #5 le: 10 Mai 2009, 17:03:38 »
La limitte est d'environ 100-150 pour pas crasher.