#include <a_samp> #include <sscanf2> #include <zcmd> new vehicle_spawn[MAX_PLAYERS]; // Create a variable to give only a vehicle to the user new NameVehicles[][] = // Name the all vehicles { "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic","Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick", "Boxville", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune", "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratium", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club", "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car", "Police Car", "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville", "Tiller", "Utility Trailer" }; stock CreateVehicleEx(playerid, modelid) // With this feature we can create vehicles in all our indent usage CreateVehicleEx(playerid, modelid); { new Float:pos[4]; // Create float 4 slots to obtain pos_x, pos_y, pos_z and GetVehicleZangle If you are in a vehicle the user. if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) // obtain getplayerstate (if this driver).. { GetVehiclePos(GetPlayerVehicleID(playerid), pos[0], pos[1], pos[2]); // Obtain position in the floats. GetVehicleZAngle(GetPlayerVehicleID(playerid), pos[3]); // obtan angle vehicle. DestroyVehicle(GetPlayerVehicleID(playerid)); // Destroy last vehicle created and continue function. } else // if not this driver.. { GetPlayerPos(playerid, pos[0], pos[1], pos[2]); // obtain position in the floats. GetPlayerFacingAngle(playerid, pos[3]); // obtain angle playerid and continue function.. } if(vehicle_spawn[playerid] != 0) DestroyVehicle(vehicle_spawn[playerid]); // if variable is greater than 0 destroy the last vehicle created. vehicle_spawn[playerid] = CreateVehicle(modelid, pos[0], pos[1], pos[2], pos[3], -1, -1, 60); // Create vehicle in pos obtain the floats. LinkVehicleToInterior(vehicle_spawn[playerid], GetPlayerInterior(playerid)); // Changes inside the vehicle to which the user is located. SetVehicleVirtualWorld(vehicle_spawn[playerid], GetPlayerVirtualWorld(playerid)); // Change the world the vehicle spawn to which you will find a player PutPlayerInVehicle(playerid, vehicle_spawn[playerid], 0); // The playerid enters the vehicle and driver. SetVehicleZAngle(vehicle_spawn[playerid], pos[3]); // Set angle te obtain float. return true; } command(veh, playerid, params[]) { if(IsNumeric(params)) // if is numeric params. { if(sscanf(params, "i", params[0])) return SendClientMessage(playerid, -1, "usage: /veh <name/modelid>."); if(params[0] < 400 || params[0] > 611) return SendClientMessage(playerid, -1, "modelid invalid, usage: /veh <modelid 400-611>."); CreateVehicleEx(playerid, params[0]); } else // not is numeric { new name_vehicle[30], i_create_vehicle; if(sscanf(params, "s[30]", name_vehicle)) return SendClientMessage(playerid, -1, "usage: /veh <name/modelid>."); i_create_vehicle = GetModelVehicle(name_vehicle); if(i_create_vehicle < 400 || i_create_vehicle > 611) return SendClientMessage(playerid, -1, "name invalid, usage: /veh <name correct>."); CreateVehicleEx(playerid, i_create_vehicle); } return true; } stock IsNumeric(const string[]) // function comprobate is numeric { for (new i = 0, j = strlen(string); i < j; i++) { if (string[i] > '9' || string[i] < '0') return 0; } return true; } stock GetModelVehicle(vname[]) // fuction getmodelvehicle in the names { for(new i = 0; i < 211; i++) { if(strfind(NameVehicles[i], vname, true) != -1) return i + 400; } return false; }
CMD:v(playerid,params[])
{
new String[200];
new Float:x, Float:y, Float:z;
if(!IsNumeric(params)) return SendClienMessage(playerid, -1, "use only numbers");
new vehiclee = GetModelVehicle(params);
if(!strlen(params)) return SendClientMessage(playerid, -1, "[USAGE] /v (Car Name)");
if(vehiclee < 400 || vehiclee > 611) return SendClientMessage(playerid, -1, "[ERROR] That vehicle name does not exist in our database.");
new Float:a;
GetPlayerFacingAngle(playerid, a);
GetPlayerPos(playerid, x, y, z);
new mrand =random(200);
new frand =random(200);
new PlayersVehicle = CreateVehicle(vehiclee, x+2, y+2, z, a+90, mrand, frand, -1);
LinkVehicleToInterior(PlayersVehicle, GetPlayerInterior(playerid));
format(String, sizeof(String), "[VEHICLE] You have spawned a vehicle. [Vehicle: %s]", NameVehicles[vehiclee - 400]);
SendClientMessage(playerid, -1, String);
return 1;
}
CMD:vcolor(playerid,params[])
{
new String[200];
new x, y;
new vid = GetPlayerVehicleID(playerid);
if(sscanf(params, "ii", x,y))
{
SendClientMessage(playerid, -1, "[USAGE] /vcolor (0-255) (0-255)");
return 1;
}
if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "[ERROR] You must be in a vehicle to use this command.");
ChangeVehicleColor(vid,x, y);
format(String, sizeof(String), "[VEHICLE] You have set your vehicle color to [%d] and[%d]", x, y);
SendClientMessage(playerid, -1, String);
return 1;
}
command(veh, playerid, params[]) {
new
vehicleid[30];
if(sscanf(params, "s[30]", vehicleid)) {
return SendClientMessage(playerid, -1, "usage: /veh <name/modelid>");
}
new
carid;
if(IsNumeric(vehicleid)) {
carid = strval(vehicleid);
}
else {
carid = GetVehicleModelID(vehicleid);
}
if(carid < 400 || carid > 611) {
return SendClientMessage(playerid, -1, "error: The vehicle ID/Name you specified is invalid.");
}
CreateVehicleEx(playerid, carid);
return true;
}
When i type the cmd in /veh 560 it says that names not in the database? but thats the sultan vehicle id...
|
stock GetModelVehicleFromID(vname[]) //NOTE THAT you have to add "FromID" to the stock in the command because i renamed it
{
for(new i = 0; i < 211; i++)
{
if(strfind(NameVehicles[i], vname, true) != -1)
return i + 400;
}
return -1;
}
command(veh, playerid, params[]) {
new
vehicleid[30];
if(sscanf(params, "s[30]", vehicleid)) {
return SendClientMessage(playerid, -1, "usage: /veh <name/modelid>");
}
if((vehicleid[0] = GetVehicleModelByName(model)) == 0) {
return SendClientMessage(playerid, -1, "error: invalid model id.");
}
CreateVehicleEx(playerid, vehicleid);
return true;
}
GetVehicleModelByName(const name[])
{
if (IsNumeric(name) && (strval(name) >= 400 && strval(name) <= 611))
return strval(name);
for (new i = 0; i < sizeof(NameVehicles); i ++)
{
if (strfind(NameVehicles[i], name, true) != -1)
{
return i + 400;
}
}
return 0;
}