Hey,
aus irgendeinem Grund werden ClientMessages etc. bei OnPlayerDeath einfach nicht abgeschickt bzw. kommen nicht an.
Und TodesPickups werden auch nicht erstellt etc.
Quasi ist OnPlayerDeath komplett am Buggen...
Hier mein ganzer Code :
Code
public OnPlayerDeath(playerid, killerid, reason)
{
SetPVarInt(playerid, "ImHaus", -1);
spv(playerid,"Carrying",0);
spv(playerid,"Grabbed",0);
spv(playerid,"Cuffed",0);
//***************************************************************
//Tot-Position abfragen & speichern
new Float:ppos[3];
GetPlayerPos(playerid, ppos[0], ppos[1], ppos[2]);
pTotPos[playerid][0]=ppos[0];
pTotPos[playerid][1]=ppos[1];
pTotPos[playerid][2]=ppos[2];
//*************************************************************************
//Bank-System abbrechen (wenn) und Fahrschule ebenso
IstInBank[playerid]=false;
if(InFahrschule[playerid])
{
SetVehicleToRespawn(JobCar[playerid]);
JobCar[playerid]=INVALID_VEHICLE_ID;
FahrschulCP[playerid]=0;
InFahrschule[playerid]=false;
}
//************************************************************************
if(pInfo[playerid][HatContract]==1 && pInfo[killerid][fraktion]==10)
{
new str[128];
pInfo[playerid][HatContract]=0;
pInfo[playerid][ContractMoney]=0;
SendClientMessage(playerid, GELB, "Du wurdest von einem Auftragskiller getötet, da ein Kopfgeld auf dich ausgesetzt war. Bitte reiche keine Beschwerde ein.");
ac_GivePlayerMoney(killerid,GetPVarInt(playerid,"ContractMoney"));//Giving killer id money
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(pInfo[i][fraktion]==10)
{
format(str,sizeof(str),"<< Hitman %s hat den Auftrag ausgeführt und %s für %i$ getötet. >>",PlayerName(killerid),PlayerName(playerid),GetPVarInt(playerid,"ContractMoney"));
SendClientMessage(i, GELB, str);
}
}
}
//In Animation
if(InAnim[playerid]==1)
{
InAnim[playerid]=0;
StopLoopingAnim(playerid);
TextDrawHideForPlayer(playerid,txtAnimHelper);
}
if(pInfo[killerid][fraktion]==7 && pInfo[playerid][fraktion]==8)
{
GameTextForPlayer(killerid, "~g~GANGWARKILL",3000,4);
}
//Gang-War Kill System
for(new i=0; i<sizeof(GangZoneInfo); i++)
{
if(!IsPlayerInGangZone(killerid, i))continue;
if(!GangZoneInfo[i][inwar])continue;
for(new gw=0; gw<sizeof(GangWarInfo); gw++)
{
if(GangWarInfo[gw][zoneid]!=i)continue;
if(pInfo[killerid][fraktion]==GangWarInfo[gw][angreifer])GangWarInfo[gw][kills_angreifer]++;
else if(pInfo[killerid][fraktion]==GangZoneInfo[i][gzowner])GangWarInfo[gw][kills_owner]++;
GameTextForPlayer(killerid, "~g~GANGZONEKILL", 3000, 4);
GameTextForPlayer(playerid, "~r~GANGZONEKILL",3000, 4);
break;
}
break;
}
//Anrufen abbrechen
if(isAmTelen[playerid])
{
if(Call_Anrufer[playerid]!=-1)
{
if(PlayerOnline(Call_Anrufer[playerid]))
{
SendClientMessage(Call_Anrufer[playerid],GRAU,"Du hörst nur noch ein Rauschen am anderen Ende der Leitung...");
isAmTelen[Call_Anrufer[playerid]]=0;
Call_Anrufer[playerid]=-1;
}
}
else if(Call_Anrufen[playerid]!=-1)
{
if(PlayerOnline(Call_Anrufen[playerid]))
{
SendClientMessage(Call_Anrufen[playerid],GRAU,"Du hörst nur noch ein Rauschen am anderen Ende der Leitung...");
isAmTelen[Call_Anrufen[playerid]]=0;
Call_Anrufen[playerid]=-1;
pInfo[playerid][handykarte]-=gpv(playerid,"MussTeleZahlen");
}
}
isAmTelen[playerid]=0;
}
if(killerid!=INVALID_PLAYER_ID)
{
if(PlayerOnline(killerid))
{
if(pInfo[killerid][fraktion]==2 || pInfo[killerid][fraktion]==3)
{
if(Robber[playerid]==1)
{
Robber[playerid]=0;
BankIsRobbed=0;
BankRobbed=1;
new str[128];
format(str,sizeof(str),"* Der Bankräuber %s wurde vom Beamten %s getötet. Der Bankraub ist gescheitert.",PlayerName(playerid), PlayerName(killerid));
SendClientMessageToAll(HBLAU,str);
SetTimer("BankRobReset", 10800*1000, false);
}
}
}
}
if(Robber[playerid]==1)
{
Robber[playerid]=0;
BankIsRobbed=0;
BankRobbed=1;
new str[128];
format(str,sizeof(str),"* Der Bankräuber %s wurde getötet. Der Bankraub ist gescheitert.",PlayerName(playerid), PlayerName(killerid));
SendClientMessageToAll(HBLAU,str);
SetTimer("BankRobReset", 10800*1000, false);
}
/*
//Wanteds geben
if(PlayerOnline(killerid))
{
if(pInfo[killerid][fraktion]!=2 && pInfo[killerid][fraktion]!=3) SetPlayerWantedLevelEx(killerid, GetPlayerWantedLevel(killerid)+2);
if(pInfo[killerid][fraktion]!=2 && pInfo[killerid][fraktion]!=3) SendClientMessage(killerid, DROT, "Du hast ein Verbrechen begangen ( Mord ), Zeuge : Niemand");
new infostr[128];
format(infostr,sizeof(infostr),"Dein Wantedlevel: %d", wanteds[killerid]);
if(pInfo[killerid][fraktion]!=2 && pInfo[killerid][fraktion]!=3) SendClientMessage(killerid, GELB, infostr);
new meldung[128], zne[64];
GetPlayer3DZone(killerid, zne, sizeof(zne));
format(meldung,sizeof(meldung),"* Meldung: Verdächtiger %s, Verbrechen: Mord in %s.",PlayerName(killerid), zne);
for(new i=0; i<GetMaxPlayers(); i++)
{
if(!PlayerOnline(i))continue;
if(pInfo[i][fraktion]!=2 && pInfo[i][fraktion]!=3)continue;
if(pInfo[killerid][fraktion]!=2 && pInfo[killerid][fraktion]!=3) SendClientMessage(i, 0x8080FFFF, meldung);
}
}
*/
if(PlayerOnline(killerid))
{
new str[128];
format(str,sizeof(str),"Du hast %s getötet.",PlayerName(playerid));
if(killerid == playerid)
{
SendClientMessage(playerid, ROT, "Du hast Selbstmord begangen!");
}
SendClientMessage(killerid, 0x009B00FF, str);
}
if(PlayerOnline(playerid))
{
new str[128];
format(str,sizeof(str),"Du wurdest von %s getötet.",PlayerName(killerid));
SendClientMessage(playerid, 0xCC0000FF, str);
}
//Taxi Fahrer
if(IsTaxi[playerid]==1)
{
SetVehicleToRespawn(JobCar[playerid]);
Delete3DTextLabel(vehicle3Dtext[JobCar[playerid]]);
IsTaxi[playerid]=0;
TaxiKosten[playerid]=0;
TaxiSitz[playerid][0]=0;
TaxiSitz[playerid][1]=0;
TaxiSitz[playerid][2]=0;
Taxameter[playerid][0]=0;
Taxameter[playerid][1]=0;
Taxameter[playerid][2]=0;
TaxiSekunden[playerid][0]=0;
TaxiSekunden[playerid][1]=0;
TaxiSekunden[playerid][2]=0;
}
new basic_floats;
GetPlayerPos(playerid,x,y,z);
new str[230],Hour, Minute, Second,zeuge[10*MAX_PLAYER_NAME+20], zcount=0;
for(new i=0; i<GetMaxPlayers(); i++)
{
if(!PlayerOnline(i))continue;
if(!IsPlayerInRangeOfPoint(i,20.0,x,y,z))continue;
if(GetPlayerState(playerid)==PLAYER_STATE_SPECTATING)continue;
if(i==playerid || i==killerid)continue;
zcount++;
if(zcount<2)format(zeuge,sizeof(zeuge),"%s",PlayerName(i));
else format(zeuge,sizeof(zeuge),"%s / %s",zeuge, PlayerName(i));
}
gettime(Hour, Minute, Second);
format(str,sizeof(str),"† %s †\n%02d:%02d:%02d\nZeuge: %s", PlayerName(playerid),Hour, Minute, Second,zeuge);
if(killerid!=INVALID_PLAYER_ID && pInfo[killerid][fraktion]==2)format(str,sizeof(str),"† %s †\n%02d:%02d:%02d", PlayerName(playerid),Hour, Minute, Second,zeuge);
TotLabel[playerid]=Create3DTextLabel(str,WEIß,x,y,z,6.0, GetPlayerVirtualWorld(playerid),0);
TotPickup[playerid]=CreatePickup(1254,1,x,y,z,-1);
//Mode dem Killer hinzu setzen und wenn er wanteds hat, in den Knast.
//Und dem player die Tode hinzu setzen
if(killerid!=INVALID_PLAYER_ID && killerid != playerid && AdminDuty[killerid]==0)
{
pInfo[killerid][morde]++;
}
if(killerid!=INVALID_PLAYER_ID)
{
if(pInfo[killerid][fraktion]==2 || pInfo[killerid][fraktion]==3)
{
if(GetPlayerWantedLevel(playerid)!=0)
{
pInfo[playerid][inknast]=1;
pInfo[playerid][knasttime]=GetPlayerWantedLevel(playerid) * minprowanted;
pInfo[killerid][payday]+=1500;
FrakInfo[pInfo[playerid][fraktion]][kasse]-=1500;
ac_GivePlayerMoney(playerid, -GetPlayerWantedLevel(playerid)*1000);
SetPlayerWantedLevel(playerid,0);
}
}
}
pInfo[playerid][tode]++;
SendClientMessage(playerid, GELB, "Du hattest einen Unfall und wurdest behandelt!");
return 1;
}
Alles anzeigen
@Jeffry help me please