enum leichen{
Float:l_x,
Float:l_y,
Float:l_z,
pickup,
Text3D:NamenLabel,
p_id,
bool:IstSpielerTot
}
new leichenInfo[MAX_PLAYERS][leichen];
new leiche[MAX_PLAYERS];
ocmd:corpse(playerid,params[])
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 442)return SendClientMessage(playerid,C_Error,"Du bist nicht im Leichenwagen!");
if(leiche[playerid] == 1) return SendClientMessage(playerid, C_Error, "Du hast bereits eine Leiche geladen. Bringe sie zuerst zum Friedhof.");
for(new i=0; i < MAX_PLAYERS; i++)
{
if(leichenInfo[i][IstSpielerTot] == true)
{
if(IsPlayerInRangeOfPoint(playerid,10.0,leichenInfo[i][l_x],leichenInfo[i][l_y],leichenInfo[i][l_z]))
{
DestroyPickup(leichenInfo[i][pickup]);
Delete3DTextLabel(leichenInfo[i][NamenLabel]);
SendClientMessage(playerid,C_Blau,"Du hast eine Leiche eingesammelt.");
SendClientMessage(playerid,C_Blau,"Fahre nun zum Friedhof, und geb dich Leiche dort ab.");
leiche[playerid]=1;
SetPlayerCheckpoint(playerid,927.4283,-1073.0220,24.2891,5.0);
leichenInfo[playerid][IstSpielerTot] = false;
return 1;
}
}
}
return SendClientMessage(playerid,C_Error,"Es ist keine Leiche in deiner Nähe!");
}
ocmd:findcorpse(playerid,params[])
{
GameTextForPlayer(playerid,"Leiche wird gesucht...",2000,3);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(leichenInfo[i][IstSpielerTot] == false) continue; // Arbeite normalerweise nicht mit continue. Alternative wäre: if(leichenInfo[i][IstSpielerTot] == true) und dann halt der untere Code
SetPlayerCheckpoint(playerid,leichenInfo[i][l_x],leichenInfo[i][l_y],leichenInfo[i][l_z],5.0);
SendClientMessage(playerid, C_Blau, "Du hast eine Leiche gefunden.");
return 1;
}
return SendClientMessage(playerid,C_Error,"Es sind keine Leichen in der Umgebung!");
}
ocmd:unloadcorpse(playerid,params[])
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 442)return SendClientMessage(playerid,C_Error,"Du bist nicht im Leichenwagen!");
if(leiche[playerid] ==0) return SendClientMessage(playerid, C_Error, "Du hast keine Leiche geladen!");
if(!IsPlayerInRangeOfPoint(playerid,7.0,927.4283,-1073.0220,24.2891))return SendClientMessage(playerid,C_Error,"Du bist nicht am Friedhof!");
if(leiche[playerid]==1)
{
SendClientMessage(playerid,C_Blau,"Du hast die Leiche erfolgreich abgeladen.");
giveplayermoney(playerid,600);
leiche[playerid]=0;
return 1;
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
new namenstring[200];
format(namenstring,sizeof(namenstring),"%s",getPlayerName(playerid));
GetPlayerPos(playerid,leichenInfo[playerid][l_x],leichenInfo[playerid][l_y],leichenInfo[playerid][l_z]);
leichenInfo[playerid][pickup] = CreatePickup(1254,1,leichenInfo[playerid][l_x],leichenInfo[playerid][l_y],leichenInfo[playerid][l_z],0);
leichenInfo[playerid][NamenLabel] = Create3DTextLabel(namenstring,C_Weiß,leichenInfo[playerid][l_x],leichenInfo[playerid][l_y],leichenInfo[playerid][l_z],10.0,0,0);
leichenInfo[playerid][IstSpielerTot] = true;
}
Probiers mal aus
Ist ungetestet und unkompiliert.