OnPlayerDeath wird nicht ausgeführt.

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo
    Ich habe ein Problem, bei mir wird OnPlayerDeath nicht ausgeführt.
    Das heisst, wenn ich sterbe Spawne ich direkt sofort wieder.
    Aber ich habe eigentlich nichts daran gemacht. Er soll eigentlich auf den Boden Tod liegen, doch es klappt nicht.
    Kann mir da vielleicht einer Helfen ?


    Immer wenn ich mich selber umbringe durch.
    - Wenn ich vom Hochhaus springe
    - Wenn ich mich Acmd kille
    - Wenn ich verhungere


    Wenn andere mich kilen liege ich auf den Boden.


    public OnPlayerDeath(playerid,killerid,reason)
    {
    new string[128];
    if(IsPlayerNPC(playerid))return 1;
    if(PlayerInfo[playerid][pTot]==0)
    {
    Todgrund[playerid]=reason;
    }
    wurdespawnt[playerid]=0;
    stoptPlayerTragen(playerid);
    IntEnforcer[playerid]=0;
    IntCargo[playerid]=0;
    if(PlayerInfo[playerid][pLevel]==1)
    {
    wurdespawnt[playerid]=1;
    }
    if(killerid!=INVALID_PLAYER_ID)
    {
    if(AdminDuty[playerid]==1)
    {
    format(string,sizeof(string),"Du wurdest im Adminduty von %s getötet.",SpielerName(killerid));
    SendClientMessage(playerid,0xFF0000AA,string);
    return 1;
    }
    if(reason==38)
    {
    if(GetVehicleModel(GetPlayerVehicleID(killerid))!=425)
    {
    if(PlayerInfo[playerid][pAdmin]<=0)
    {
    if(GetPlayerScore(playerid)==1)return 1;
    if(GetPlayerWeapon(killerid)!=38)
    {
    new nachricht[128];
    format(nachricht,sizeof(nachricht),"AdmCmd: %s wurde vom Anti-Cheatsystem gebannt. Grund: %s",SpielerName(playerid),"Fakekill.");
    SendClientMessageToAll(0xAA3333AA,nachricht);
    ShowPlayerDialog(playerid,DIALOG_INFO,DIALOG_STYLE_MSGBOX,"Hinweis des Adminteams","Du wurdest wegen Cheaten gebannt!\n\nEinspruch hiergegen kannst du im HelpTool einlegen.","OK","");
    Kick(playerid);
    return 1;
    }
    new nachricht[128];
    format(nachricht,sizeof(nachricht),"AdmCmd: %s wurde vom Anti-Cheatsystem gebannt. Grund: %s",SpielerName(killerid),"Minigun.");
    SendClientMessageToAll(0xAA3333AA,nachricht);
    ShowPlayerDialog(killerid,DIALOG_INFO,DIALOG_STYLE_MSGBOX,"Hinweis des Adminteams","Du wurdest wegen Cheaten gebannt!\n\nEinspruch hiergegen kannst du im HelpTool einlegen.","OK","");
    Kick(killerid);
    return 1;
    }
    }
    }
    if(GetPlayerScore(killerid)<3)
    {
    if(reason!=0&&reason!=49&&reason!=50&&reason!=54)
    {
    if(PlayerInfo[playerid][pGunLic]==0){
    new nachricht[128];
    format(nachricht,sizeof(nachricht),"AdmCmd: %s wurde vom Anti-Cheatsystem gebannt. Grund: %s",SpielerName(killerid),"Mord mit Waffe ohne Waffenschein.");
    SendClientMessageToAll(0xAA3333AA,nachricht);
    ShowPlayerDialog(killerid,DIALOG_INFO,DIALOG_STYLE_MSGBOX,"Hinweis des Adminteams","Du wurdest wegen Cheaten gebannt!\n\nEinspruch hiergegen kannst du im HelpTool einlegen.","OK","");
    Kick(killerid);
    return 1;
    }
    }
    if(PlayerInfo[killerid][pJailed]>0)
    {
    new minuten=30;
    SetPVarInt(killerid,"kdm_count",0);
    PlayerInfo[killerid][pPrison]=1;
    PlayerInfo[killerid][pPrisontime]+=minuten;
    format(string,sizeof(string),"[AKDM]: %s wurde für %d Minuten in die Besserungsanstalt geschickt. Grund: %s",SpielerName(killerid),minuten,"KDM");
    SendClientMessageToAll(0xAA3333AA,string);
    SendClientMessage(killerid,COLOR_WHITE,"/prisontime um Zeit nachzusehen");
    SetPlayerPos(killerid,prisonspawn);
    ResetPlayerWeapons(killerid);
    SetPlayerInterior(killerid,0);
    SetPlayerVirtualWorld(killerid,0);
    format(string,sizeof(string),"Du wurdest ins Prison gesteckt.\nGrund hierfür ist:\n%s.\n\nBitte lese dir die Regeln auf unserer Website durch um\nweitere Regelverstöße zu vermeiden. Solltest du meinen\ndas diese Strafe nicht berechtigt ist wende dich bitte an\nden Admin der dir diese gab.","Knast DM");
    ShowPlayerDialog(killerid,DIALOG_INFO,DIALOG_STYLE_MSGBOX,"Hinweis des Adminteams",string,"OK","");
    format(string,sizeof(string),"[AKDM]: %s wurde für %d Stunde gebannt. Grund: %s",SpielerName(killerid),1,"KDM");
    SendClientMessageToAll(0xAA3333AA,string);
    format(string,sizeof(string),"Du wurdest temporär gebannt.\nGrund hierfür ist:\n%s\n\nBitte lese dir die Regeln auf unserer Website durch um\nweitere Regelverstöße zu vermeiden. Solltest du meinen\ndas diese Strafe nicht berechtigt ist wende dich bitte an\nden Admin der dir diese gab oder an das HelpTool.","Knast DM");
    ShowPlayerDialog(killerid,DIALOG_INFO,DIALOG_STYLE_MSGBOX,"Hinweis des Adminteams",string,"OK","");
    Kick(killerid);
    return 1;
    }
    if(IsPlayerInFrac(playerid,4)&&OnDuty[playerid]==1)
    {
    format(string,sizeof(string),"%s hat einen Medic im Dienst (%s) getötet. Bitte hinporten und Sachverhalt klären.",SpielerName(killerid),SpielerName(playerid));
    ABroadCast(0x2a77a1AA,string,1);
    SendClientMessage(killerid,0xFF0000AA,"Du hast einen Medic gekillt, daher wurde eine Nachricht an das Adminteam geschickt.");
    }
    if(GetPlayerScore(killerid)<3||GetPlayerScore(playerid)<3)
    {
    format(string,sizeof(string),"%s (Level %i) wurde von %s (Level %i) getötet. Bitte hinporten und Sachverhalt klären.",SpielerName(playerid),GetPlayerScore(playerid),SpielerName(killerid),GetPlayerScore(killerid));
    ABroadCast(0x2a77a1AA,string,1);
    SendClientMessage(killerid,0xFF0000AA,"Du hast einen Level 1er/als Level 1er gekillt, daher wurde eine Nachricht an das Adminteam geschickt.");
    }
    if(PlayerInfo[killerid][pPrison]>0)
    {
    if(PlayerInfo[playerid][pPrison]>0)
    {
    SendClientMessage(killerid,0xFF0000AA,"Da du jemanden im Prison getötet hast, verlängert sich dein Aufenthalt um 1 Minute.");
    PlayerInfo[killerid][pPrisontime]++;
    }
    }
    if(PlayerInfo[playerid][pTot]==1)return 1;
    if(GetPlayerScore(killerid)>=3)
    {
    if(OnDuty[playerid]==1)
    {
    if(IsPlayerInFrac(playerid,1)||IsPlayerInFrac(playerid,2)||IsPlayerInFrac(playerid,3)||IsPlayerInFrac(playerid,7)||IsPlayerInFrac(playerid,19)||IsPlayerInFrac(playerid,24))
    {
    if(OnDuty[killerid]==0)
    {
    if(!IsPlayerInFrac(killerid,8))
    {
    if(GetPVarInt(killerid,"maske")==0)
    {
    new rnd=random(2);
    if(rnd==0)
    {
    if(WantedLevel[killerid]<69)
    {
    new wps=30;
    new grund[64]="Beamtenmord";
    WantedLevel[killerid]+=wps;
    if(WantedLevel[killerid]>69){WantedLevel[killerid]=69;}
    format(string,sizeof(string),"Wantedpunkte: %i Gesamt: %i Reporter: %s Grund: %s",wps,WantedLevel[killerid],SpielerName(playerid),grund);
    SendClientMessage(killerid,0xFF0000AA,string);
    format(string,sizeof(string),"<<Gesuchter: %s Wantedpunkte: %i Gesamt: %i Reporter: %s Grund: %s>>",SpielerName(killerid),wps,WantedLevel[killerid],SpielerName(playerid),grund);
    for (new i = 0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInFrac(i,1)&&!IsPlayerInFrac(i,2)&&!IsPlayerInFrac(i,3)&&!IsPlayerInFrac(i,7)&&!IsPlayerInFrac(i,24))continue;
    SendClientMessage(i,0xFF0000AA,string);
    }
    PlayCrimeReportForPlayer(killerid,playerid,22);
    }
    }
    }
    }
    }
    }
    }
    }
    if(IsPlayerInFrac(killerid,8))
    {
    if(PlayerInfo[playerid][contract]!=0&&GetPVarInt(killerid,"contracted")==playerid)
    {
    GivePlayerMoney(killerid,PlayerInfo[playerid][contract]);
    format(string,sizeof(string),"<< Hitman %s hat den Auftrag an %s ausgeführt, Gehalt: %i$ >>",SpielerName(killerid),SpielerName(playerid),PlayerInfo[playerid][contract]);
    PlayerInfo[playerid][contract]=0;
    SetPVarInt(killerid,"contracted",-1);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInFrac(i,8))continue;
    SendClientMessage(i,0x0000B9FF,string);
    }
    }
    }
    WeaponDrop(playerid);
    SendClientMessage(playerid,0xB00000FF,"Du bist gestorben.");
    SendClientMessage(killerid,0xFF0000AA, "Du hast ein Verbrechen begangen: Mord.");
    SetPVarInt(playerid,"murder",killerid);
    if(IsPlayerInFrac(killerid,8)||IsPlayerInFrac(killerid,20))
    {
    SetPVarInt(killerid,"Mörder",1);
    SetPVarInt(killerid,"Killt",playerid);
    }
    if(GetPlayerWantedLevel(playerid)>=1)
    {
    if(OnDuty[killerid]==1)
    {
    if(WantedLevel[playerid]>=61)
    {
    new knastzeit;
    knastzeit=90;
    if(IsPlayerInFrac(killerid,1)||IsPlayerInFrac(killerid,2)||IsPlayerInFrac(killerid,3))
    {
    GivePlayerMoney(playerid,GetPlayerWantedLevel(playerid)*100*-1);
    format(string,sizeof(string),"Du wurdest vom Staatsbeamten %s getötet",SpielerName(killerid));
    SendClientMessage(playerid,0x33AA33AA,string);
    new allstring[128];
    format(allstring,sizeof(allstring)," ..::Staatsbeamter %s hat den Gesuchten %s getötet::..",SpielerName(killerid),SpielerName(playerid));
    SendClientMessageToAll(0xFF0000AA,allstring);
    GivePlayerMoney(killerid,GetPlayerWantedLevel(playerid)*100);
    PlayerInfo[playerid][pJailed]=2;
    PlayerInfo[playerid][pJailTime]=knastzeit;
    format(string,sizeof(string),"Du wurdest für %i Minuten eingesperrt. Restzeit: /jailtime Brot essen: /eatbrot",PlayerInfo[playerid][pJailTime]);
    SendClientMessage(playerid,0xFF0000AA,string);
    SetPlayerWantedLevel(playerid,0);
    WantedLevel[playerid]=0;
    PlayerInfo[playerid][C4]=0;
    PlayerInfo[playerid][pLSD]=0;
    PlayerInfo[playerid][pKoks]=0;
    PlayerInfo[playerid][pHanf]=0;
    PlayerInfo[playerid][pMats]=0;
    ResetPlayerWeapons(playerid);
    wurdespawnt[playerid]=1;
    }
    }
    else if(GetPlayerWantedLevel(playerid)>=2&&WantedLevel[playerid]<61)
    {
    if(IsPlayerInFrac(killerid,1)||IsPlayerInFrac(killerid,2))
    {
    GivePlayerMoney(playerid,GetPlayerWantedLevel(playerid)*100*-1);
    format(string,sizeof(string),"Du wurdest von Staatsbeamten %s getötet",SpielerName(killerid));
    SendClientMessage(playerid,0x33AA33AA,string);
    new allstring[128];
    format(allstring,sizeof(allstring)," ..::Staatsbeamter %s hat den Gesuchten %s getötet::..",SpielerName(killerid),SpielerName(playerid));
    SendClientMessageToAll(0xFF0000AA,allstring);
    GivePlayerMoney(killerid,GetPlayerWantedLevel(playerid)*100);if(WantedLevel[playerid]<40)
    {
    PlayerInfo[playerid][pJailTime]=floatround(WantedLevel[playerid]*0.75,floatround_ceil);
    }
    if(WantedLevel[playerid]>=40)
    {
    PlayerInfo[playerid][pJailTime]=floatround(WantedLevel[playerid]*1,floatround_ceil);
    }
    format(string,sizeof(string),"Du wurdest für %i Minuten eingesperrt. Restzeit: /jailtime Brot essen: /eatbrot",PlayerInfo[playerid][pJailTime]);
    SendClientMessage(playerid,0xFF0000AA,string);
    PlayerInfo[playerid][pJailed]=1;
    SetPlayerWantedLevel(playerid,0);
    WantedLevel[playerid]=0;
    PlayerInfo[playerid][C4]=0;
    PlayerInfo[playerid][pLSD]=0;
    PlayerInfo[playerid][pKoks]=0;
    PlayerInfo[playerid][pHanf]=0;
    PlayerInfo[playerid][pMats]=0;
    ResetPlayerWeapons(playerid);
    }
    else if(IsPlayerInFrac(killerid,3))
    {
    GivePlayerMoney(playerid,GetPlayerWantedLevel(playerid)*100*-1);
    format(string,sizeof(string),"Du wurdest vom Soldat %s getötet",SpielerName(killerid));
    SendClientMessage(playerid,0x33AA33AA,string);
    new allstring[128];
    format(allstring,sizeof(allstring)," ..::Soldat %s hat den Gesuchten %s getötet::..",SpielerName(killerid),SpielerName(playerid));
    SendClientMessageToAll(0xFF0000AA,allstring);
    GivePlayerMoney(killerid,GetPlayerWantedLevel(playerid)*100);
    if(WantedLevel[playerid]<40)
    {
    PlayerInfo[playerid][pJailTime]=floatround(WantedLevel[playerid]*0.75,floatround_ceil);
    }
    if(WantedLevel[playerid]>=40)
    {
    PlayerInfo[playerid][pJailTime]=floatround(WantedLevel[playerid]*1,floatround_ceil);
    }
    format(string,sizeof(string),"Du wurdest für %i Minuten eingesperrt. Restzeit: /jailtime Brot essen: /eatbrot",PlayerInfo[playerid][pJailTime]);
    SendClientMessage(playerid,0xFF0000AA,string);
    PlayerInfo[playerid][pJailed]=1;
    SetPlayerWantedLevel(playerid,0);
    WantedLevel[playerid]=0;
    PlayerInfo[playerid][C4]=0;
    PlayerInfo[playerid][pLSD]=0;
    PlayerInfo[playerid][pKoks]=0;
    PlayerInfo[playerid][pHanf]=0;
    PlayerInfo[playerid][pMats]=0;
    ResetPlayerWeapons(playerid);
    }
    }
    }
    }
    }

    if(IsPlayerInAnyVehicle(playerid))
    {
    if(IsPlayerInFrac(playerid,4))
    {
    new vehicleid=GetPlayerVehicleID(playerid);
    if(GetVehicleModel(vehicleid)==416||GetVehicleModel(vehicleid)==563)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInAnyVehicle(i))continue;
    if(GetPVarInt(i,"verladen")==0)continue;
    if(GetPlayerVehicleID(i)!=vehicleid)continue;
    RemovePlayerFromVehicle(i);
    SetPVarInt(i,"verladen",0);
    }
    }
    }
    }
    playerweisdasautokaputtist[playerid]=0;
    if(flugprufung[playerid]==1)
    {
    if(flugauto[playerid]!=0)
    {
    DestroyVehicle(flugauto[playerid]);
    flugauto[playerid]=0;
    }
    }
    new vehicleid = GetPlayerVehicleID(playerid);
    DisablePlayerCheckpoint(playerid);
    DisablePlayerRaceCheckpoint(playerid);
    if(schulung[playerid]==1)
    {
    schulung[playerid]=0;
    istkaputt[vehicleid]=0;
    SetVehicleToRespawn(vehicleid);
    }
    if(IsPlayerConnected(playerid))
    {
    if(wurdespawnt[playerid]==0)
    {
    new Float:xc,Float:yc,Float:zc;
    GetPlayerPos(playerid,xc,yc,zc);
    TotX[playerid]=xc;
    TotY[playerid]=yc;
    TotZ[playerid]=zc;
    totinterior[playerid]=GetPlayerInterior(playerid);
    totvirtual[playerid]=GetPlayerVirtualWorld(playerid);
    if(PlayerInfo[playerid][pTot]==0)
    {
    WeaponDrop(playerid);
    new zahl;
    zahl=random(4);
    if(PlayerInfo[playerid][pJailed]>0||PlayerInfo[playerid][pPrison]>0){zahl=1;}
    if(zahl==2||zahl==3)
    {
    if(PhoneOnline[playerid]==1&&!IsPlayerInFrac(playerid,20)&&GetPlayerInterior(playerid)==0)
    {
    format(string,sizeof(string),"Du bist auf den SOS-Knopf deines Handys gefallen. Ein Notruf wurde abgesetzt.");
    SendClientMessage(playerid,0x00CC33C0,string);
    format(string,sizeof(string),"%s hat einen Notruf abgesetzt. Gib /accept Medic ein um anzunehmen.",SpielerName(playerid));
    for (new i = 0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInFrac(i,4))
    {
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    }
    }
    willmedic[playerid]=1;
    }
    }
    }
    PlayerInfo[playerid][pTot]=1;
    }
    if(wurdespawnt[playerid]==1)
    {
    wurdespawnt[playerid]=0;
    }
    }
    }
    return 1;
    }

  • Dagegen kannst du nix machen jedoch wird nach OnPlayerDeath OnPlayerSpawn aufgerufen daher wäre es besser den spieler entweder danach zurück zu porten und zu freezen oder ihn ab einer bestimmten hp-anzahl dann zu freezen in dem du ein eigenes Healsystem machst und jeden in das Team 1 setzt da dadurch kannst du den verursachten schaden blocken und auch die Damage was eine Waffe verursacht einstellen.