@Rayx3 müssen ja nicht 300 verschiedene sein
easy doing
#include <a_samp>
#include <sscanf2>
#include <YSI\y_bit>
#include <ocmd>
#define Admin 1
new BitArray:AdminPrison< MAX_PLAYERS >,
Checkpoint_Count[ MAX_PLAYERS ];
new Float: RandomPoints[][3] = {
{16.6533,-4.4106,3.1172},
{-5.1362,8.2907,3.1172},
{-16.5218,31.4184,3.1172},
{-7.9983,42.6634,3.1172}
};
public OnPlayerSpawn(playerid)
{
if(Bit_Get(AdminPrison, playerid))return SetPlayerPos(playerid,23.2298,-24.6682,3.1172);
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
new string[64];
if(Bit_Get(AdminPrison, playerid)){
Checkpoint_Count[playerid]--;
if(Checkpoint_Count[playerid] == 0){
SendClientMessage(playerid,-1,"Du hast nun deine Strafe absolviert!");
Bit_Vet(AdminPrison, playerid);
SpawnPlayer(playerid);
}else{
format(string,64,"Du musst noch %d Checkpointe ablaufen",Checkpoint_Count[playerid]);
SendClientMessage(playerid,-1,string);
new x = random(sizeof(RandomPoints));
SetPlayerCheckpoint(playerid,RandomPoints[x][0],RandomPoints[x][1],RandomPoints[x][2],2.0);
}
}
return 1;
}
ocmd:prison(playerid, params[])
{
new pID, num, string[90];
if(GetPlayerAdmin(playerid) < Admin)return SendClientMessage(playerid,-1,"Du bist dazu nicht berechtigt");
if(sscanf(params,"ud",pID,num))return SendClientMessage(playerid,-1,"Benutzung: /prison [ID] [Checkpoints]");
SetPlayerPos(playerid,23.2298,-24.6682,3.1172);
format(string,90,"Du wurdest von %s in das Adminprison gesteckt und musst nun %d checkpoints ablaufen",PlayerName(playerid),num);
SendClientMessage(pID,-1,string);
Checkpoint_Count[playerid] = num;
Bit_Let(AdminPrison, playerid);
new x = random(sizeof(RandomPoints));
SetPlayerCheckpoint(playerid,RandomPoints[x][0],RandomPoints[x][1],RandomPoints[x][2],2.0);
return 1;
}
stock PlayerName(player)
{
new pName[MAX_PLAYER_NAME];
return GetPlayerName(player,pName,MAX_PLAYER_NAME);
}
stock GetPlayerAdmin(playerid) return PlayerInfo[playerid][pAdmin]; // Definition des Adminlevels