CMD:v(playerid, params[])
{
if(PlayerInfo[playerid][Level] < 3 && !IsPlayerAdmin(playerid)) return 0;
new vname[32], colour1, colour2;
if(unformat(params, "s[32]I(-1)I(-1)", vname, colour1, colour2)) {
SendClientMessage(playerid, 0xFF0000FF, "USAGE: /v [ModelID/Name] (Colour 1) (Colour 2)");
return 1;
}
new modelid = strval(vname);
if(modelid > 611 || modelid < 400) {
modelid = GetVehicleModelIDFromName(vname);
if(modelid == INVALID_MODEL_ID) { // whatever GetVehicleModelIDFromName returns when no model is found
SendClientMessage(playerid, 0xFF0000FF, "Invalid Vehicle Model");
return 1;
}
}
new Float:px, Float:py, Float:pz, Float:prot;
if(IsPlayerInAnyVehicle(playerid)) {
GetVehiclePos(GetPlayerVehicleID(playerid), px, py, pz);
GetVehicleZAngle(GetPlayerVehicleID(playerid), prot);
} else {
GetPlayerPos(playerid, px, py, pz);
GetPlayerFacingAngle(playerid, prot);
}
new vid = CreateVehicle(modelid, px + 4*floatcos(prot + 90.0, degrees), py + 4*floatsin(prot + 90.0, degrees), pz, prot + 90, colour1, colour2, -1);
if(vid == INVALID_VEHICLE_ID) {
SendClientMessage(playerid, 0xFF0000FF, "Vehicle limit reached");
return 1;
}
if(vid >= sizeof(DynamicV)) {
SendClientMessage(playerid, 0xFF0000FF, "Unable to create vehicle");
DestroyVehicle(vid);
return 1;
}
LinkVehicleToInterior(vid, GetPlayerInterior(playerid));
SetVehicleVirtualWorld(vid, GetPlayerVirtualWorld(playerid));
DynamicV[vid] = 1;
new string[128];
format(string, sizeof(string), "%s successfully spawned. To destroy it, use /dc", GetVehicleName(vid));
SendClientMessage(playerid, 0xFFFFFFFF, string);
return 1;
}
CMD:v(playerid, params[])
{
if(PlayerInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid))
{
new car[ 64 ], vIsName, colour1[10], colour2[10], _colour1, _colour2, vehicle, Int, Float: Angle, Float: X,Float: Y,Float: Z, world;
if(sscanf(params, "szz", car, colour1, colour2)) return SendClientMessage(playerid, Red, "USAGE: /v [ModelID/Name] [Colour 1] [Colour 2] (Colours optional)");
{
GetPlayerPos(playerid, X, Y, Z); Int = GetPlayerInterior(playerid); world = GetPlayerVirtualWorld(playerid); GetPlayerFacingAngle(playerid,Angle);
if(!IsNumeric(car)) vIsName = GetVehicleModelIDFromName(car); else vIsName = strval(car);
if(vIsName < 400 || vIsName > 611) return SendClientMessage(playerid, Red, "Invalid Vehicle Model");
if(strlen(colour1) && IsNumeric(colour1)) _colour1 = strval(colour1); else _colour1 = random(126);
if(strlen(colour2) && IsNumeric(colour2)) _colour2 = strval(colour2); else _colour2 = random(126);
vehicle = CreateVehicle(vIsName, X+3, Y, Z, Angle, _colour1, _colour2, -1);
if(world > 0) return SetVehicleVirtualWorld(vehicle,world);
LinkVehicleToInterior(vehicle,Int);
DynamicV[vehicle] = 1;
format(string, sizeof(string), "%s successfully spawned. To destroy it, use /dc", GetVehicleName(vehicle));
return SendClientMessage(playerid,White,string);
}
} else return 0;
return 1;
}
Originally Posted by _❼_
The old one, I thought I'd start off with the original one, thought it might be easier to learn/implement?
|
new car[128], vIsName, colour1[128], colour2[128]
/v nrg 0000000000000000001 |
CMD:v(playerid, params[])
{
if(PlayerInfo[playerid][Level] < 3 && !IsPlayerAdmin(playerid)) return 0;
if(isnull(params)) {
SendClientMessage(playerid, 0xFF0000FF, "USAGE: /v [ModelID/Name] (Colour 1) (Colour 2)");
return 1;
}
new vname[128], colour1 = -1, colour2 = -1;
sscanf(params, "sii", vname, colour1, colour2);
new modelid = strval(vname);
if(modelid > 611 || modelid < 400) {
modelid = GetVehicleModelIDFromName(vname);
if(modelid == INVALID_MODEL_ID) { // whatever GetVehicleModelIDFromName returns when no model is found
SendClientMessage(playerid, 0xFF0000FF, "Invalid Vehicle Model");
return 1;
}
}
new Float:px, Float:py, Float:pz, Float:prot;
if(IsPlayerInAnyVehicle(playerid)) {
GetVehiclePos(GetPlayerVehicleID(playerid), px, py, pz);
GetVehicleZAngle(GetPlayerVehicleID(playerid), prot);
} else {
GetPlayerPos(playerid, px, py, pz);
GetPlayerFacingAngle(playerid, prot);
}
new vid = CreateVehicle(modelid, px + 4*floatcos(prot + 90.0, degrees), py + 4*floatsin(prot + 90.0, degrees), pz, prot + 90, colour1, colour2, -1);
if(vid == INVALID_VEHICLE_ID) {
SendClientMessage(playerid, 0xFF0000FF, "Vehicle limit reached");
return 1;
}
if(vid >= sizeof(DynamicV)) {
SendClientMessage(playerid, 0xFF0000FF, "Unable to create vehicle");
DestroyVehicle(vid);
return 1;
}
LinkVehicleToInterior(vid, GetPlayerInterior(playerid));
SetVehicleVirtualWorld(vid, GetPlayerVirtualWorld(playerid));
DynamicV[vid] = 1;
new string[128];
format(string, sizeof(string), "%s successfully spawned. To destroy it, use /dc", GetVehicleName(vid));
SendClientMessage(playerid, 0xFFFFFFFF, string);
return 1;
}
if(modelid > 611 || modelid < 400) {
GetVehicleModelIDFromName(vname[])
{
for(new i = 0; i < 211; i++)
{
if ( strfind(VehicleNames[i], vname, true) != -1 )
return i + 400;
}
return -1;
}
if(modelid == -1) { // whatever GetVehicleModelIDFromName returns when no model is found
SendClientMessage(playerid, 0xFF0000FF, "Invalid Vehicle Model");
return 1;
}
Originally Posted by _❼_
Ok, tested it all and ... it works \o/! Lol... omg I'm so relieved ... I can finally move on, with new knowledge aswell!
![]() Thanks to everyone who helped, and a special thanks to Dabombber for the final solution! :P |
Originally Posted by Freddo
Quote:
|