#define MAX_GIVEN_VEHICLES 100 // How many vehicles can admin spawn
new vehArray[MAX_VEHICLES]; // Array used for 'deletecars'
new Vehicles; // Integer holding how many cars has been spawned
new ppveh[MAX_PLAYERS]; // For /givecar
COMMAND:givecar(playerid, params[])
{
if(!IsPlayerAdmin(playerid))
{
return 0; // Return 0, so that if player is not RCON admin he will get Unknown Command message.
}
new forplayer, carid;
if(sscanf(params, "ui", forplayer, carid))
{
SendClientMessage(playerid, 0xFFFFFFFF, "error: Type /givecar [id/PartOfName] [CarId]");
return 1;
}
if(carid < 400 || carid > 611)
{
SendClientMessage(playerid, 0xFFFFFFFF, "error: Wrong vehicle id.");
return 1;
}
if(forplayer == INVALID_PLAYER_ID || !IsPlayerConnecter(playerid))
{
SendClientMessage(playerid, 0xFFFFFFFF, "error: This player is not connected.");
return 1;
}
if(vehicles > MAX_GIVEN_VEHICLES)
{
SendClientMessage(playerid, 0xFFFFFFFF, "error: You cant spawn anymore vehicles.");
return 1;
}
new
Float:Pos[4]
;
GetPlayerPos(forplayer, Pos[0], Pos[1], Pos[2]);
GetPlayerFacingAngle(forplayer, Pos[3]);
if(IsPlayerInAnyVehicle(forplayer)){ .
new tmp_vid;
tmp_vid = GetPlayerVehicleID(forplayer);
if(ppveh[forplayer] == tmp_vid) // if player is in vehicle which has been given to him by admin (using /givecar command, ofc)
{
RemovePlayerFromVehicle(forplayer);
DestroyVehicle(tmp_vid);
Vehicles--;
}
else // if not.. respawn vehicle.
{
RemovePlayerFromVehicle(forplayer);
SetVehicleToRespawn(tmp_vid);
}
}
ppveh[forplayer] = CreateVehicle(carid, Pos[0], Pos[1], Pos[2], Pos[3], -1, -1, -1);
PutPlayerInVehicle(playerid, ppveh[forplayer], 0);
new tmp_vid;
GetPlayerVehicleID(tmp_vid);
vehArray[tmp_vid] = 1;
Vehicles++;
return 1;
}
COMMAND:deletecars(playerid, params[])
{
if(!IsPlayerAdmin(playerid))
{
return 0; // Return 0, so that if player is not RCON admin he will get Unknown Command message.
}
for(new i = 0; i != MAX_VEHICLES; i++)
{
if(vehArray[i] == 1)
{
if(IsPlayerInVehicle(playerid, i){
RemovePlayerFromVehicle(playerid);
}
DestroyVehicle(i);
}
return 1;
}
Are you asking for help, or for making script for you?
It makes difference. Altought I shouldn't, I decided to make very simple script, which should work as you wrote in your post. I don't know if it's working as I havent tested it. Enjoy. pawn Код:
Greetz, LetsOWN |
CMD:givecar(playerid,params[])
{
new carid;
new id;
new Float:X, Float:Y, Float:Z, Float:angle;
new string[160];
if(gPlayerInfo[playerid][PLAYER_LEVEL] < 1) return SendClientMessage(playerid, COLOR_RED, "You are Not Allowed To Use This Command!");
if(sscanf(params,"ud",id, carid)) return SendClientMessage(playerid,COLOR_ORANGE,"Usage: /givecar [playerid] [carid]");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COLOR_RED, "ERROR: This Player is Not Connected!");
if(carid < 400 || carid > 611) return SendClientMessage(playerid, COLOR_RED, "ERROR: Invalid Vehicle Model!");
GetPlayerPos(id, X, Y, Z);
GetPlayerFacingAngle(id, angle);
CreateVehicle(carid, X, Y, Z, angle, 0, 1, 60);
PutPlayerInVehicle(id, carid, 0);
format(string, sizeof(string), "[INFO]: Administrator %s Has Spawned a Vehicles id %d To %s.", GetName(playerid), carid, GetName(id));
SendClientMessageToAll(COLOR_PURPLE, string);
return 1;
}
dcmd_deletecar(playerid, params[])
{
if(!IsPlayerLAdmin(playerid)) return 0; // change it with your own admin variable
new vehid;
if(sscanf(params, "d", vehid))
{
if(Dead[playerid] == 1) return SendClientMessage(playerid, COLOR_RED, "You Cannot Use This Command When Dead.");
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "You Must Be In A Vehicle To Use This Command.");
DestroyVehicle(GetPlayerVehicleID(playerid));
new str[128];
format(str, sizeof str, "[ADMIN] %s has used the command DELETECAR", PlayerName(playerid));
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerLAdmin(i)) SendClientMessage(i, 0x375FFFFF, str); // here too
}
return 1;
}
else if(!sscanf(params, "d", vehid))
{
if(!IsValidVehicle(vehid)) return SendClientMessage(playerid, COLOR_RED, "This vehicle doesn't exist in the server.");
DestroyVehicle(vehid);
new str[128];
format(str, sizeof str, "[ADMIN] %s has used the command DELETECAR", PlayerName(playerid));
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerLAdmin(i)) SendClientMessage(i, 0x375FFFFF, str); // here too
}
return 1;
}
return 1;
}