Hallo,
hier mal ein weiteres Problem von mir: Ich bin dabei ein Sterbesystem zu schreiben. Folgendes sollte passieren:
Medic ist online: Der Spieler stirbt, wird zum Sterbepunkt zurückteleportiert, die Anim Crack wird auf ihn aktiviert, er ist unbeweglich und eine Nachricht an alle Medics wird gesendet. Dabei wird ein Timer gestartet, der nach 3 Minuten abläuft. Wenn er abläuft wird der Spieler zum Krankenhaus teleportiert und ihm werden 1,5k abgezogen. Wenn ihn allerdings ein Medic rechtzeitig mit /defi wiederbeleben kann, verliert er nur 500$.
Kein Medic ist online/afk: Der Spieler verliert 1000$ und wird zum Krankenhaus teleportiert (teleport ist noch nicht implementiert).
Hier das Problem: Man stirbt, Medic ist online und es passiert NICHTS.
public OnPlayerDeath(playerid, killerid, reason)
{
GetPlayerPos(playerid,Spieler[playerid][totx],Spieler[playerid][toty],Spieler[playerid][totz]);
gestorben[playerid] = true;
return 1;
}
// Unter OnPlayerSpawn
if(gestorben[playerid] == true)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(medic[i] == true)
{
SetPlayerPos(playerid, Spieler[playerid][totx], Spieler[playerid][toty], Spieler[playerid][totz]);
ApplyAnimation(playerid,"CRACK","crckdeth1",4.1,1,1,1,1,1);
TogglePlayerControllable(playerid, 0);
timer[playerid] = SetTimerEx("death", 180000, false, "is", playerid, name);
if(i != playerid)
{
format(path,sizeof(path),"%s ist schwer verletzt. Sofort zum Versorgen ausrücken.", name);
SendClientMessage(i, COLOR_RED, path);
SendClientMessage(playerid, COLOR_GREEN, "Du hattest einen schweren Unfall! Ein Krankenwagen wurde schon gerufen.");
}
else if (i == playerid || afk[i] == true)
{
SendClientMessage(playerid, COLOR_RED, "Es war kein Notarzt erreichbar, dir wurden 1000$ für die Behandlung abgezogen.");
ClearAnimations(playerid);
TogglePlayerControllable(playerid, 1);
gestorben[playerid] = false;
GivePlayerMoney(playerid,-1000);
KillTimer(timer[playerid]);
}
}
}
}
}
Ich hoffe ihr könnt mir helfen.
Mit freundl. Grüßen
Padarom