Hey,
ich habe Probleme mit dem OnPlayerDeath Callback.
Ich wollte nämlich an die Sanitäter eine Nachricht senden (und auch wenn ein Polizist einen Verbrecher tötet) sobald jemand stirbt.
Das Problem ist, dieser Teil wird nicht angezeigt.
C
public OnPlayerDeath(playerid, killerid, reason)
{
new string[128], Float:pos[3];
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
Spieler[playerid][pTot] = 1;
Spieler[playerid][pTotUnix] = 120;
Spieler[playerid][pTotX] = pos[0];
Spieler[playerid][pTotY] = pos[1];
Spieler[playerid][pTotZ] = pos[2];
Spieler[playerid][pTotWorld] = GetPlayerVirtualWorld(playerid);
CreateToten(playerid);
SetMoney(playerid,Spieler[playerid][pMoney]+100);
Spieler[playerid][pSpawned] = false;
Spieler[playerid][pDuty] = false;
if(pCurrentCall[playerid] != -1){
if(IsPlayerConnected(pCurrentCall[playerid]) && Spieler[pCurrentCall[playerid]][pLoggedIn]){
SendClientMessage(pCurrentCall[playerid], COLOR_GREY, "** Die Verbindung wurde unterbrochen ...");
pPhoning[pCurrentCall[playerid]] = 0;
pPayGuthaben[playerid] = 0;
pPayGuthaben[pCurrentCall[playerid]] = 0;
pCurrentCall[pCurrentCall[playerid]] = -1;
pCurrentCall[playerid] = -1;
pPhoning[playerid] = 0;
}
}
pPhoning[playerid] = 0;
pPayGuthaben[playerid] = 0;
pPayGuthaben[pCurrentCall[playerid]] = 0;
pCurrentCall[playerid] = -1;
if(Spieler[playerid][pJailed] == 1)
{
Spieler[playerid][pTot] = 0;
Spieler[playerid][pTotUnix] = 0;
return 1;
}
if(killerid != INVALID_PLAYER_ID)
{
Spieler[killerid][pKills] ++;
Spieler[playerid][pDeaths] ++;
new ort[36];
GetPlayer2DZone(playerid, ort, 36);
format(string, sizeof(string), "* %s ist in %s gestorben. Zum Orten tippe /revivefind %d!", GetName(playerid), ort, playerid);
SendFraktionMessage(3, COLOR_YELLOW, string);
if(Spieler[killerid][pFraktion] == 1)
{
if(Spieler[playerid][pWanteds] > 0)
{
Spieler[playerid][pTot] = 0;
Spieler[playerid][pTotX] = 0.0;
Spieler[playerid][pTotY] = 0.0;
Spieler[playerid][pTotZ] = 0.0;
Spieler[playerid][pTotUnix] = 0;
Spieler[playerid][pTotWorld] = 0;
GameTextForPlayer(killerid, "~w~Gesuchten ~g~verhaftet", 3000, 6);
if(Spieler[killerid][pFraktion] == 1)format(string, sizeof(string), "HQ: Officer %s hat %s verhaftet, erschossen, over.", GetName(killerid), GetName(playerid));
SendFraktionMessage(1, COLOR_COP_MELDUNG, string);
Spieler[playerid][pJailed] = 1;
Spieler[playerid][pJailTime] = 240*Spieler[playerid][pWanteds];
Spieler[playerid][pWanteds] = 0;
UpdateWantedTD(playerid);
Spieler[playerid][pDeaths] ++;
Spieler[playerid][pJailVisits] ++;
return 1;
}
}
}
return 1;
}
Alles anzeigen
Unten ab "if(killerid != INVALID_PLAYER_ID)" da passiert rein garnichts.
Danke schonmal