need help zcmd and sscanf /veh [ name ] +rep
#1

well guys the problem is it wont spaw a car


and i have a warning on my console here it is

Код:
[17:48:14] Number of vehicle models: 0
[17:48:24] sscanf warning: Strings without a length are deprecated, please add a destination size.
[17:48:27] sscanf warning: Strings without a length are deprecated, please add a destination size.
[17:48:31] sscanf warning: Strings without a length are deprecated, please add a destination size.
[17:48:35]  
[17:48:35]  
[17:48:35] [part] Dan_DelaTorre has left the server (0:1)
here is my code

pawn Код:
new aVehicleNames[212][] =
{
    "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"
};


CMD:veh(playerid,command[])
{
    new veh[50] = GetVehicleModelIDFromName(command);
    if(sscanf(command,"s",veh)) return SendClientMessage(playerid,C_WHITE,"/veh [ ID / Name ]");
    if(veh < 400 || veh > 611 ) return SendClientMessage(playerid,C_RED,"[ Error ]:"CWHITE" Unknown Vehicle ");
    new Float:x,Float:y,Float:z,Float:a;
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid,a);
    CreateVehicle(veh,x,y,z,a,-1,-1,15);

    return 1;
}

stock GetVehicleModelIDFromName(vname[])
{
    for(new i = 0; i < 211; i++)
    {
        if(strfind(aVehicleNames[i], vname, true) != -1)
        return i + 400;
    }
    return -1;
}

stock GetXYInFrontOfPlayer(playerid, &Float:x2, &Float:y2, Float:distance)
{
    new Float:a;

    GetPlayerPos(playerid, x2, y2, a);
    GetPlayerFacingAngle(playerid, a);

    if(GetPlayerVehicleID(playerid))
    {
        GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
    }

    x2 += (distance * floatsin(-a, degrees));
    y2 += (distance * floatcos(-a, degrees));
}
Reply
#2

Код:
CMD:veh(playerid, params[]) {
	
		new
			iVehicle,
			iColors[2];

		if(sscanf(params, "iii", iVehicle, iColors[0], iColors[1])) {
			SendClientMessageEx(playerid, COLOR_WHITE, "USAGE: /veh [model ID] [color 1] [color 2]");
		}
		else if(!(400 <= iVehicle <= 611)) {
			SendClientMessageEx(playerid, COLOR_GRAD2, "Invalid model specified (model IDs start at 400, and end at 611).");
		}
		else if(!(0 <= iColors[0] <= 255 && 0 <= iColors[1] <= 255)) {
			SendClientMessageEx(playerid, COLOR_GRAD2, "Invalid colour specified (IDs start at 0, and end at 255).");
		}
		else for(new iIterator; iIterator < sizeof(CreatedCars); iIterator++) if(CreatedCars[iIterator] == INVALID_VEHICLE_ID) {

			new
				Float: fVehPos[4];

			GetPlayerPos(playerid, fVehPos[0], fVehPos[1], fVehPos[2]);
			GetPlayerFacingAngle(playerid, fVehPos[3]);
			CreatedCars[iIterator] = CreateVehicle(iVehicle, fVehPos[0], fVehPos[1], fVehPos[2], fVehPos[3], iColors[0], iColors[1], -1);
			VehicleFuel[CreatedCars[iIterator]] = 100.0;
			LinkVehicleToInterior(CreatedCars[iIterator], GetPlayerInterior(playerid));
			return SendClientMessageEx(playerid, COLOR_GREY, "Vehicle spawned!");
		}
	}
	else SendClientMessageEx(playerid, COLOR_GRAD1, "You are not authorized to use that command!");
	return 1;
}
Reply
#3

pawn Код:
if(sscanf(command,"s",veh))
Try this
pawn Код:
if(sscanf(command,"s[50]",veh))
Reply
#4

it wont make the car
or spawn a vehicle it will only appear SERVER Unknown Command
Reply
#5

You sure ZCMD use this?

pawn Код:
CMD:veh(playerid,command[])
NO, change it to

pawn Код:
CMD:veh(playerid, params[])
and also this

pawn Код:
new veh[50] = GetVehicleModelIDFromName(params);
if(sscanf(params,"s[50]",veh)) return SendClientMessage(playerid,C_WHITE,"/veh [ ID / Name ]");
Reply
#6

Quote:
Originally Posted by RollTi
Посмотреть сообщение
You sure ZCMD use this?

pawn Код:
CMD:veh(playerid,command[])
NO, change it to

pawn Код:
CMD:veh(playerid, params[])
and also this

pawn Код:
new veh[50] = GetVehicleModelIDFromName(params);
if(sscanf(params,"s[50]",veh)) return SendClientMessage(playerid,C_WHITE,"/veh [ ID / Name ]");
well its changeable on how the way you like
not just because all scripters use params and its allways params
you can make it all the way you like like cmd[] or etc
Reply
#7

Yes, you're right, the parameters can be whatever you want ( not numbers ) :
Код:
CMD:hey( p, prm[ ] )
The command Should Be:
pawn Код:
CMD:veh( playerid, params[ ] )
{
    new s_C[ 30 ], i_C[ 2 ];
    if( unformat( params, "s[30]D(-1)D(-1)", s_C, i_C[ 0 ], i_C[ 1 ] ) )        return SendClientMessageEx( playerid, COLOR_WHITE, "USAGE: /veh [model ID] [color 1] [color 2]" );
    if( IsPlayerInAnyVehicle( playerid ) )                                      return SendClientMessageEx( playerid, COLOR_WHITE, "ERROR: You are already in a vehicle." );
       
    new CarModel;
    if( IsNumeric( s_C ) )  CarModel = strval( s_C );
    else                    CarModel = GetVehicleModelIDFromName( s_C );
   
    if( CarModel < 400 || CarModel > 611 )                                      return SendClientMessageEx( playerid, COLOR_WHITE, "ERROR: Invalid vehicle model/name" );
   
    if( i_C[ 0 ] == -1 ) i_C[ 0 ] = random( 250 );
    if( i_C[ 1 ] == -1 ) i_C[ 1 ] = random( 250 );
   
    new Float: Pos[ 4 ];
    GetPlayerPos( playerid, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ] );
    GetPlayerFacingAngle( playerid, Pos[ 3 ] );
    CreatedCars[iIterator] = CreateVehicle( CarModel, Pos[ 0 ], Pos[ 1 ], Pos[ 2 ], Pos[ 3 ], i_C[ 0 ], i_C[ 1 ], -1 );
    VehicleFuel[ CreatedCars[ iIterator ] ] = 100.0;
    LinkVehicleToInterior( CreatedCars[ iIterator ], GetPlayerInterior( playerid ) );
   
    return( 1 );
}
Functions:
pawn Код:
IsNumeric( const string[ ] )
{
    for( new i = 0, j = strlen( string ); i != j; i ++ )
    {
        if( string[ i ] > '9' || string[ i ] < '0' ) return ( 0 );
    }
    return ( 1 );
}
EDIT: Modified the command...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)