CMD:alock(playerid, params[])
{
if( pInfo[playerid][pAdmin] < 1 )
return 0;
new vehicleid;
if( sscanf(params, "u", vehicleid ))
return SendUsageError( playerid, "/alock [Vehicle ID]" );
SendClientMessage(playerid, 0xBF60FFFF, "You have locked the doors on this vehicle");
for(new i=0; i < MAX_PLAYERS; i++)
{
if(i == playerid) continue;
SetVehicleParamsForPlayer(vehicleid, i, 0, 1);
}
return 1;
}
new spawnedcar;
stock CreateVehicleEx(playerid, modelid)
{
new
world = GetPlayerVirtualWorld(playerid),
interior = GetPlayerInterior(playerid),
Float:x, Float:y, Float:z, Float:a;
GetPlayerPos(playerid, x,y,z);
GetPlayerFacingAngle(playerid, a);
spawnedcar = CreateVehicle(modelid, x+3,y,z, a, -1, -1, -1);
LinkVehicleToInterior(spawnedcar, interior);
SetVehicleVirtualWorld(spawnedcar, world);
PutPlayerInVehicle(playerid, spawnedcar, 0);
SetPlayerInterior(playerid, interior);
return 1;
}
if( GetPlayerVehicleID( playerid ) != spawnedcar ) return Error(playerid, "You can only delete spawned vehicles");
DestroyVehicle(spawnedcar);
CMD:alock(playerid, params[])
{
if( pInfo[playerid][pAdmin] < 1 )
return 0;
new vehicleid;
if( sscanf(params, "u", vehicleid ))
return SendUsageError( playerid, "/alock [Vehicle ID]" );
if(!IsValidVehicle(vehicleid)) return 1; // Check if the veh exist
SendClientMessage(playerid, 0xBF60FFFF, "You have locked the doors on this vehicle");
static
engine,
lights,
alarm,
doors,
bonnet,
boot,
objective;
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vehicleid, engine, lights, alarm, 1, bonnet, boot, objective);
return 1;
}
new
spawnedcar[MAX_VEHICLES];
stock CreateVehicleEx(playerid, modelid)
{
new
world = GetPlayerVirtualWorld(playerid),
interior = GetPlayerInterior(playerid),
Float:x, Float:y, Float:z, Float:a,
vehicleid;
GetPlayerPos(playerid, x,y,z);
GetPlayerFacingAngle(playerid, a);
vehicleid = CreateVehicle(modelid, x+3,y,z, a, -1, -1, -1);
spawnedcar[vehicleid] = 1;
LinkVehicleToInterior(spawnedcar, interior);
SetVehicleVirtualWorld(spawnedcar, world);
PutPlayerInVehicle(playerid, spawnedcar, 0);
SetPlayerInterior(playerid, interior);
return 1;
}
if(spawnedcar[GetPlayerVehicleID(playerid)] != 1)
return Error(playerid, "You can only delete spawned vehicles");
CMD:respawncars(playerid, params[])
{
if( pInfo[playerid][pAdmin] < 3 )
return 0;
for(new i = 0; i < MAX_VEHICLES; i++)
{
if( spawnedcar[i] == 1)
{
DestroyVehicle(spawnedcar[i]);
spawnedcar[i] = 0;
}
SetVehicleToRespawn(i);
}
return 1;
}
// ** INCLUDES
#include <a_samp>
#include <sscanf>
#include <zcmd>
// ** NATIVES
// *** DEFAULT
native IsValidVehicle(vehicleid);
// ** VARIABLES
// *** GLOBAL VARIABLES
// **** VEHICLES
new bool:gvhLocked[MAX_VEHICLES] = false;
// ** MAIN
main()
{
print("Loaded \"lock_unlock_vehicle_doors.amx\".");
}
// ** CALLBACKS
public OnGameModeInit()
{
return 1;
}
public OnGameModeExit()
{
return 1;
}
// ** COMMANDS
CMD:lock(playerid, params[])
{
new vehicle_id;
if(sscanf(params, "i", vehicle_id))
{
SendClientMessage(playerid, -1, "Usage: /lock (vehicle id)");
}
else if(!IsValidVehicle(vehicle_id))
{
SendClientMessage(playerid, -1, "You have entered an invalid existent vehicle id.");
}
else if(gvhLocked[vehicle_id])
{
SendClientMessage(playerid, -1, "That vehicle's doors are already locked.");
}
else
{
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(vehicle_id, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vehicle_id, engine, lights, alarm, VEHICLE_PARAMS_ON, bonnet, boot, objective);
gvhLocked[vehicle_id] = true;
SendClientMessage(playerid, -1, "You have locked that vehicle's doors.");
}
return 1;
}
CMD:unlock(playerid, params[])
{
new vehicle_id;
if(sscanf(params, "i", vehicle_id))
{
SendClientMessage(playerid, -1, "Usage: /unlock (vehicle id)");
}
else if(!IsValidVehicle(vehicle_id))
{
SendClientMessage(playerid, -1, "You have entered an invalid existent vehicle id.");
}
else if(!gvhLocked[vehicle_id])
{
SendClientMessage(playerid, -1, "That vehicle's doors aren't locked.");
}
else
{
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(vehicle_id, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vehicle_id, engine, lights, alarm, VEHICLE_PARAMS_OFF, bonnet, boot, objective);
gvhLocked[vehicle_id] = false;
SendClientMessage(playerid, -1, "You have unlocked that vehicle's doors.");
}
return 1;
}
native IsValidVehicle(vehicleid);
CMD:respawncars(playerid, params[])
{
if(pInfo[playerid][pAdmin] < 3)
{
return 0;
}
for(new i = 1, j = GetVehiclePoolSize(); i <= j; i ++)
{
if(!IsValidVehicle(i))
{
continue;
}
if(spawnedcar[i])
{
DestroyVehicle(spawnedcar[i]);
spawnedcar[i] = 0;
}
else
{
SetVehicleToRespawn(i);
}
}
return 1;
}
CMD:alock(playerid, params[])
{
if( pInfo[playerid][pAdmin] < 1 )
return 0;
new vehicleid;
if( sscanf(params, "i", vehicleid ))
return SendUsageError( playerid, "/alock [Vehicle ID]" );
SendClientMessage(playerid, 0xBF60FFFF, "You have locked the doors on this vehicle");
for(new i=0; i < MAX_PLAYERS; i++)
{
if(i == playerid) continue;
SetVehicleParamsForPlayer(vehicleid, i, 0, 1);
}
return 1;
}
|
@SickAttack
For some reason, it doesn't delete the spawned vehicle but it only resets the variable back to 0. |
native IsValidVehicle(vehicleid);
CMD:respawncars(playerid, params[])
{
if(pInfo[playerid][pAdmin] < 3)
{
return 0;
}
for(new i = 1, j = GetVehiclePoolSize(); i <= j; i ++)
{
if(!IsValidVehicle(i))
{
continue;
}
if(spawnedcar[i])
{
DestroyVehicle(i);
spawnedcar[i] = 0;
}
else
{
SetVehicleToRespawn(i);
}
}
return 1;
}