CMD: /givecar And /deletecars HELP
#1

Hello!

How can I make command like /givecar [part of car name/id] [playerid], so admins can spawn a vehicles and command like /deletecars, which delete all cars spawned with /givecar.

Thanks for your help
Reply
#2

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 Код:
#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;
}
There are also some differer ways to do such commands, but.. Figure them on your own :P

Greetz,
LetsOWN
Reply
#3

Quote:
Originally Posted by LetsOWN[PL]
Посмотреть сообщение
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 Код:
#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;
}
There are also some differer ways to do such commands, but.. Figure them on your own :P

Greetz,
LetsOWN
Thanks, I will test it.
Reply
#4

No no...I was asking for /givecar [car name/ id] [playerid] like: /givecar sultan 0...Anyway, thx.
Reply
#5

Well, I already have a command /givecar, but i need a command /deletecars...

Code:
PHP код:
CMD:givecar(playerid,params[])
{
    new 
carid;
    new 
id;
    new 
Float:XFloat:YFloat:ZFloat:angle;
    new 
string[160];
    if(
gPlayerInfo[playerid][PLAYER_LEVEL] < 1) return SendClientMessage(playeridCOLOR_RED"You are Not Allowed To Use This Command!");
    if(
sscanf(params,"ud",idcarid)) return SendClientMessage(playerid,COLOR_ORANGE,"Usage: /givecar [playerid] [carid]");
    if(!
IsPlayerConnected(id)) return SendClientMessage(playeridCOLOR_RED"ERROR: This Player is Not Connected!");
    if(
carid 400 || carid 611) return  SendClientMessage(playeridCOLOR_RED"ERROR: Invalid Vehicle Model!");
    
GetPlayerPos(idXYZ);
    
GetPlayerFacingAngle(idangle);
    
CreateVehicle(caridXYZangle0160);
    
PutPlayerInVehicle(idcarid0);
    
format(stringsizeof(string), "[INFO]: Administrator %s Has Spawned a Vehicles id %d To %s."GetName(playerid), caridGetName(id));
    
SendClientMessageToAll(COLOR_PURPLEstring);
    return 
1;

Reply
#6

Here you go:


pawn Код:
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;
}
Reply
#7

I think you guys don't understand me...I will explain...Well I want when an admin type /givecar [playerid] [car name or car id], then the selected vehicle spawn to id of a selcted player and all players can drive it...and when an admin type /deletecars, then all vehicles going to be deleted, which was spawned with /givecar not only one car, but all cars/bikes/trucks/boats...all vehicles. But not vehicles which are already in a gamemode.

If you know how to make this command, pls tell me or just make it...Thanks for your helps guys
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)