Код:
public OnPlayerEnterVehicle(playerid,vehicleid,ispassenger)
{
new model = GetVehicleModel(vehicleid);
switch(model)
{
case 520,432,425,477,464,465,501,601,441 /*Change into your models*/ : {RemovePlayerFromVehicle(playerid); format(string,sizeof(string),"~r~ That is a forbidden vehicle ~r~",pname); GameTextForPlayer(playerid,string,12000,3); }
}
return 1;
}
Try this. Just add your models.
You just setted it so if the player is in any vehicle on update he will get banned.
You dont need that. Remove that.
This will detect if he/she also tp's into a vehicle. WIth OnPlayerUpdate it will lag the shit out.
I really wish people would do a bit more research before developing things so they can get a broad spectrum of the available libraries they could put to use... /endrant
pawn Код:
#include <foreach>
new
Iterator:AdminVehicle<MAX_VEHICLES>,
Iterator:AdminSpawnedVehicles<MAX_VEHICLES>;
CMD:acar(playerid, params[])
{
#pragma unused params
new id;
if(!IsCnRAdmin(playerid)) return UnknownCMD(playerid);
if(sscanf(params, "ii", id)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /acar (VehicleID)");
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 Not Be In A Vehicle To Use This Command.");
if(GetPlayerInterior(playerid) != 0) return SendClientMessage(playerid, COLOR_RED, "You Cannot Use This Command In An Interior.");
if(IsSpecing[playerid] == 1) return SendClientMessage(playerid, COLOR_RED, "You Cannot Use This Command When Spectating.");
if(id < 400 || id > 611) return SendClientMessage(playerid, COLOR_RED, "Invalid Vehicle ID. Vehicles Are Between 400 And 611.");
new Float:x, Float:y, Float:z, Float:angle;
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, angle);
Iter_Add(AdminVehicle, new vehid = CreateVehicle(id, x, y, z, angle, 0, 0, 30));
PutPlayerInVehicle(playerid, vehid, 0);
AdminCMD(playerid, "ACAR");
new log[128];
format(log, sizeof log, "Admin %s Has Spawned Himself A Car.", PlayerName(playerid));
LogToFile("acar", log);
return 1;
}
CMD:veh(playerid, params[])
{
if(isDead[playerid] == 1) return SendClientMessage(playerid, COLOR_RED, "You Cannot Use This Command When Dead.");
if(GetPlayerInterior(playerid) != 0) return SendClientMessage(playerid, COLOR_RED, "You Cannot Use This Command In An Interior.");
if(IsCaged[playerid] == 1) return SendClientMessage(playerid, COLOR_RED, "You Cannot Use This Command When Caged.");
new carName[32];
if(sscanf(params, "s[32]", carName)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /veh (Vehicle Name)");
if(BlockVeh == 1) return SendClientMessage(playerid, COLOR_RED, "This Command Is DISABLED.");
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "You Are Already In A Vehicle.");
if(ReturnVehicleID(carName) == INVALID_VEHICLE_ID) return SendClientMessage(playerid, COLOR_RED, "Invalid Vehicle Model.");
if(IsVehicleForbidden(ReturnVehicleID(carName)) && !IsCnRAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED, "You Must Be An Admin To Spawn This Vehicle.");
new Float:pPos[4], vid;
GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
GetPlayerFacingAngle(playerid, pPos[3]);
if(IsCnRAdmin(playerid)) Iter_Add(AdminSpawnedVehicles, vid = CreateVehicle(ReturnVehicleID(carName), pPos[0], pPos[1], pPos[2] + 1.00, pPos[3], 0, 0, 60));
else vid = CreateVehicle(ReturnVehicleID(carName), pPos[0], pPos[1], pPos[2] + 1.00, pPos[3], 0, 0, 60);
PutPlayerInVehicle(playerid, vid, 0);
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid)
{
if(!IsCnRAdmin(playerid)) if(Iter_Contains(AdminVehicle, vehicleid)) RemovePlayerFromVehicle(playerid, vehicleid);
else
{
if(Iter_Contains(AdminSpawnedVehicles, vehicleid)) RemovePlayerFromVehicle(playerid, vehicleid);
}
return 1;
}
Put both commands in the GM then. And yes, the /veh command will allow non-admins to spawn cars.