Dein System könnte so aussehen in etwa
#include <a_samp>
#include <sscanf2>
#include <pcmd>
new Float:DeadPoint[MAX_PLAYERS][3],
DeadPeople[MAX_PLAYERS] ={-1,...},
ReanimatedPlayer[MAX_PLAYERS]={-1,...},
Medic[MAX_PLAYERS];
CMD->medic(playerid,params[]){
extract params -> new player:pID;else return SendClientMessage(playerid,-1,"Benutze: /medic [playerid]");
Medic[pID] = 1;
return 1;
}
CMD->accept(playerid,params[]){
extract params -> new player:pID;else return SendClientMessage(playerid,-1,"Benutze: /accept [playerid]");
new i;
for(; i != MAX_PLAYERS; ++i){
if(DeadPeople[i] == pID){
SetPlayerCheckpoint(playerid,DeadPoint[i][0],DeadPoint[i][1],DeadPoint[i][2],1.0);
ReanimatedPlayer[playerid] = i;
return SendClientMessage(playerid,-1,"Du kannst ihn nun reanimieren");
}
}
SendClientMessage(playerid,-1,"Dieser Spieler ist nicht Tod");
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
GetPlayerPos(playerid,DeadPoint[playerid][0],DeadPoint[playerid][1],DeadPoint[playerid][2]);
DeadPeople[playerid] = playerid;
new i,str[30];
format(str,30,"Der Spieler mit der id %d ist verreckt!",playerid);
CreatePickup(1254, 1, DeadPoint[playerid][0],DeadPoint[playerid][1],DeadPoint[playerid][2], 0);
for(; i < MAX_PLAYERS; ++i)if(Medic[i])SendClientMessage(i,-1,str);
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(ReanimatedPlayer[playerid] != -1){
new i;
for(; i < MAX_PLAYERS; ++i){
if(IsPlayerInRangeOfPoint(playerid,2.0,DeadPoint[i][0],DeadPoint[i][1],DeadPoint[i][2]) && ReanimatedPlayer[playerid] == DeadPeople[i]){
DisablePlayerCheckpoint(playerid);
SetPlayerPos(ReanimatedPlayer[playerid],DeadPoint[i][0],DeadPoint[i][1],DeadPoint[i][2]);
DestroyPickup(pickupid);
DeadPeople[i] = -1;
ReanimatedPlayer[playerid] = -1;
DeadPoint[i][0] = 0.0;
DeadPoint[i][1] = 0.0;
DeadPoint[i][2] = 0.0;
return SendClientMessage(playerid,-1,"Du hast den Spieler reanimiert");
}
}
}
return 1;
}