Hallo,
irgendwie buggt mein OnPlayerDeath seit dem ich die If Abfrage bei den Wanteds gemacht habe, ob killerid ein Cop ist und ob Playerid ein Cop ist(wenn Killerid cop ist bekommt man keine Wanteds und wenn Playerid cop ist bekommt Killerid(falls kein cop) 5 Wanteds und wenn nicht nur 3)
Jedoch egal ob ich Wanteds habe oder nicht, ich sterbe einfach ganz normal und komme dann an die Position an der ich mich ausgeloggt habe.
Eigentlich soll es ja so sein, dass wenn ich in der Nähe eines Cops Sterbe mit Wanteds ich in den Knast komme, falls ich keine habe oder kein Cop in der Nähe ist ich dann am Friedhof spawne.
Mein OnPlayerDeath
public OnPlayerDeath(playerid, killerid, reason)
{
//________________ Definierungen ______________________
new stringz[128],die[128],wtd[128],string[128];
SpielerInfo[playerid][pTode] +=1;
if(killerid != INVALID_PLAYER_ID) SpielerInfo[killerid][pKills] +=1;
SpielerInfo[playerid][pDuty] = 0;
//________________ Wanted-System ______________________
if(SpielerInfo[playerid][pTeam] == 1 && SpielerInfo[killerid][pTeam] != 1)
{
SpielerInfo[killerid][pWanteds] += 5;
SetPlayerWantedLevel(killerid, (SpielerInfo[killerid][pWanteds]/5) + 1);
SpielerInfo[killerid][pSterne] = SpielerInfo[killerid][pWanteds]/5 + 1;
SpielerInfo[killerid][pVerbrechen] += 5;
format(wtd,sizeof(wtd),"%s hat ein Verbrechen begangen: Polizeimord. Anzahl: 5 | Zeuge: %s.",SpielerName(killerid),SpielerName(playerid));
SendFraktionMessage(1, cop, wtd);
format(string,sizeof(string),"Du hast ein Verbrechen begangen: Polizeimord. Anzahl: 5 | Zeuge: %s.",SpielerName(playerid));
SendClientMessage(killerid,info,string);
format(string,sizeof(string), "Aktuelles Wanted: %i",SpielerInfo[killerid][pWanteds]);
SendClientMessage(killerid,info,string);
}
else if(SpielerInfo[playerid][pTeam] != 1 && SpielerInfo[killerid][pTeam] != 1)
{
SpielerInfo[killerid][pWanteds] += 3;
SetPlayerWantedLevel(killerid, (SpielerInfo[killerid][pWanteds]/5) + 1);
SpielerInfo[killerid][pSterne] = SpielerInfo[killerid][pWanteds]/5 + 1;
SpielerInfo[killerid][pVerbrechen] += 3;
format(wtd,sizeof(wtd),"%s hat ein Verbrechen begangen: Zivimord. Anzahl: 3 | Zeuge: %s.",SpielerName(killerid),SpielerName(playerid));
SendFraktionMessage(1, cop, wtd);
format(string,sizeof(string),"Du hast ein Verbrechen begangen: Zivimord. Anzahl: 3 | Zeuge: %s.",SpielerName(playerid));
SendClientMessage(killerid,info,string);
format(string,sizeof(string), "Aktuelles Wanted: %i",SpielerInfo[killerid][pWanteds]);
SendClientMessage(killerid,info,string);
}
//________________ Tot_System ______________________
if(SpielerInfo[playerid][pWanteds] > 0 && teaminrangeofpoint(playerid, 1))
{
new wstring[128];
format(wstring, sizeof(wstring), "%s wurde Verhaftet! Grund: Tot.",SpielerName(playerid));
SendClientMessageToAll(info, wstring);
print(wstring);
new time = SpielerInfo[playerid][pWanteds] * 120;
SpielerInfo[playerid][pKnastzeitBis] = gettime() + time;
SpielerInfo[playerid][pKnastzeit] = time;
SpielerInfo[playerid][pKnast] = 1;
SpielerInfo[playerid][wTot] += 1;
SpielerInfo[playerid][pInhaftiert] += 1;
SpielerInfo[playerid][pWanteds] = 0;
SpielerInfo[playerid][pSterne] = 0;
SpielerInfo[playerid][kSkin] = 62;
SetPlayerWantedLevel(playerid, 0);
}
else if(SpielerInfo[playerid][pTot] == 0) {
SpielerInfo[playerid][pTot] = 1;
tzeit[playerid] = 120;
GetPlayerPos(playerid,tx[playerid],ty[playerid],tz[playerid]);
toticon[playerid] = CreatePickup(1254,1,tx[playerid],ty[playerid],tz[playerid],-1);
format(stringz, sizeof(stringz), "%s", SpielerName(playerid));
totlabel = Create3DTextLabel(stringz,0xFF0000FF, tx[playerid], ty[playerid], tz[playerid], 32.0, 0);
format(die,sizeof(die),"%s ist gestorben! Er braucht dringend einen Arzt.",SpielerName(playerid));
SendFraktionMessage(2, medic, die);
SpielerInfo[playerid][pTotskin] = 162;
}
//________________ Tot-Ende ______________________
TextDrawHideForPlayer(playerid,txtTimeDisp);
return 1;
}
{
//________________ Definierungen ______________________
new stringz[128],die[128],wtd[128],string[128];
SpielerInfo[playerid][pTode] +=1;
if(killerid != INVALID_PLAYER_ID) SpielerInfo[killerid][pKills] +=1;
SpielerInfo[playerid][pDuty] = 0;
//________________ Wanted-System ______________________
if(SpielerInfo[playerid][pTeam] == 1 && SpielerInfo[killerid][pTeam] != 1)
{
SpielerInfo[killerid][pWanteds] += 5;
SetPlayerWantedLevel(killerid, (SpielerInfo[killerid][pWanteds]/5) + 1);
SpielerInfo[killerid][pSterne] = SpielerInfo[killerid][pWanteds]/5 + 1;
SpielerInfo[killerid][pVerbrechen] += 5;
format(wtd,sizeof(wtd),"%s hat ein Verbrechen begangen: Polizeimord. Anzahl: 5 | Zeuge: %s.",SpielerName(killerid),SpielerName(playerid));
SendFraktionMessage(1, cop, wtd);
format(string,sizeof(string),"Du hast ein Verbrechen begangen: Polizeimord. Anzahl: 5 | Zeuge: %s.",SpielerName(playerid));
SendClientMessage(killerid,info,string);
format(string,sizeof(string), "Aktuelles Wanted: %i",SpielerInfo[killerid][pWanteds]);
SendClientMessage(killerid,info,string);
}
else if(SpielerInfo[playerid][pTeam] != 1 && SpielerInfo[killerid][pTeam] != 1)
{
SpielerInfo[killerid][pWanteds] += 3;
SetPlayerWantedLevel(killerid, (SpielerInfo[killerid][pWanteds]/5) + 1);
SpielerInfo[killerid][pSterne] = SpielerInfo[killerid][pWanteds]/5 + 1;
SpielerInfo[killerid][pVerbrechen] += 3;
format(wtd,sizeof(wtd),"%s hat ein Verbrechen begangen: Zivimord. Anzahl: 3 | Zeuge: %s.",SpielerName(killerid),SpielerName(playerid));
SendFraktionMessage(1, cop, wtd);
format(string,sizeof(string),"Du hast ein Verbrechen begangen: Zivimord. Anzahl: 3 | Zeuge: %s.",SpielerName(playerid));
SendClientMessage(killerid,info,string);
format(string,sizeof(string), "Aktuelles Wanted: %i",SpielerInfo[killerid][pWanteds]);
SendClientMessage(killerid,info,string);
}
//________________ Tot_System ______________________
if(SpielerInfo[playerid][pWanteds] > 0 && teaminrangeofpoint(playerid, 1))
{
new wstring[128];
format(wstring, sizeof(wstring), "%s wurde Verhaftet! Grund: Tot.",SpielerName(playerid));
SendClientMessageToAll(info, wstring);
print(wstring);
new time = SpielerInfo[playerid][pWanteds] * 120;
SpielerInfo[playerid][pKnastzeitBis] = gettime() + time;
SpielerInfo[playerid][pKnastzeit] = time;
SpielerInfo[playerid][pKnast] = 1;
SpielerInfo[playerid][wTot] += 1;
SpielerInfo[playerid][pInhaftiert] += 1;
SpielerInfo[playerid][pWanteds] = 0;
SpielerInfo[playerid][pSterne] = 0;
SpielerInfo[playerid][kSkin] = 62;
SetPlayerWantedLevel(playerid, 0);
}
else if(SpielerInfo[playerid][pTot] == 0) {
SpielerInfo[playerid][pTot] = 1;
tzeit[playerid] = 120;
GetPlayerPos(playerid,tx[playerid],ty[playerid],tz[playerid]);
toticon[playerid] = CreatePickup(1254,1,tx[playerid],ty[playerid],tz[playerid],-1);
format(stringz, sizeof(stringz), "%s", SpielerName(playerid));
totlabel = Create3DTextLabel(stringz,0xFF0000FF, tx[playerid], ty[playerid], tz[playerid], 32.0, 0);
format(die,sizeof(die),"%s ist gestorben! Er braucht dringend einen Arzt.",SpielerName(playerid));
SendFraktionMessage(2, medic, die);
SpielerInfo[playerid][pTotskin] = 162;
}
//________________ Tot-Ende ______________________
TextDrawHideForPlayer(playerid,txtTimeDisp);
return 1;
}
OnPlayerSpawn
public OnPlayerSpawn(playerid)
{
//________________ Knast-Tot-Spawn ______________________
if(SpielerInfo[playerid][pKnast] == 1)
{
SpielerInfo[playerid][pKnastzeitBis] = gettime() + SpielerInfo[playerid][pKnastzeit]; //Damit die 500 Sekunden wieder drauf sind.
SetPlayerSkin(playerid, SpielerInfo[playerid][kSkin]);
SetPlayerWantedLevel(playerid, 0);
SpielerInfo[playerid][pSterne] = 0;
SetPlayerInterior(playerid, 3);
SetPlayerPos(playerid,198.0428,161.8516,1003.0300);
SendClientMessage(playerid, info, "Du musst zurück in den Knast!");
}
else if(SpielerInfo[playerid][pTot] == 1)
{
SetPlayerPos(playerid,-2719.6924,-318.3633,7.8438);
SetPlayerVirtualWorld(playerid,playerid+1);
SetPlayerHealth(playerid,10000000000);
SetPlayerSkin(playerid, SpielerInfo[playerid][pTotskin]);
SetPlayerWeather(playerid, 8);
tzeit[playerid] = 180;
SendClientMessage(playerid,info,"Du bist gestorben. Warte 2 Minuten oder warte, bis ein Arzt dich reanimiert.");
timer[playerid] = SetTimerEx("tottimer",888,true,"i",playerid);
SetPlayerWantedLevel(playerid, SpielerInfo[playerid][pSterne]);
}
else {
SetPlayerSkin(playerid, SpielerInfo[playerid][pSkin]);
SetPlayerPos(playerid,SpielerInfo[playerid][xKord],SpielerInfo[playerid][yKord],SpielerInfo[playerid][zKord]);
SetPlayerInterior(playerid,SpielerInfo[playerid][pInterior]);
SetPlayerWantedLevel(playerid, SpielerInfo[playerid][pSterne]); }
{
//________________ Knast-Tot-Spawn ______________________
if(SpielerInfo[playerid][pKnast] == 1)
{
SpielerInfo[playerid][pKnastzeitBis] = gettime() + SpielerInfo[playerid][pKnastzeit]; //Damit die 500 Sekunden wieder drauf sind.
SetPlayerSkin(playerid, SpielerInfo[playerid][kSkin]);
SetPlayerWantedLevel(playerid, 0);
SpielerInfo[playerid][pSterne] = 0;
SetPlayerInterior(playerid, 3);
SetPlayerPos(playerid,198.0428,161.8516,1003.0300);
SendClientMessage(playerid, info, "Du musst zurück in den Knast!");
}
else if(SpielerInfo[playerid][pTot] == 1)
{
SetPlayerPos(playerid,-2719.6924,-318.3633,7.8438);
SetPlayerVirtualWorld(playerid,playerid+1);
SetPlayerHealth(playerid,10000000000);
SetPlayerSkin(playerid, SpielerInfo[playerid][pTotskin]);
SetPlayerWeather(playerid, 8);
tzeit[playerid] = 180;
SendClientMessage(playerid,info,"Du bist gestorben. Warte 2 Minuten oder warte, bis ein Arzt dich reanimiert.");
timer[playerid] = SetTimerEx("tottimer",888,true,"i",playerid);
SetPlayerWantedLevel(playerid, SpielerInfo[playerid][pSterne]);
}
else {
SetPlayerSkin(playerid, SpielerInfo[playerid][pSkin]);
SetPlayerPos(playerid,SpielerInfo[playerid][xKord],SpielerInfo[playerid][yKord],SpielerInfo[playerid][zKord]);
SetPlayerInterior(playerid,SpielerInfo[playerid][pInterior]);
SetPlayerWantedLevel(playerid, SpielerInfo[playerid][pSterne]); }
Auf anweisung von Jeffry: ein eigenes Thread erstellt.
Mit freundlichen Grüßen