SA-MP Forums Archive
need help zcmd and sscanf /veh [ name ] +rep - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: need help zcmd and sscanf /veh [ name ] +rep (/showthread.php?tid=335064)



need help zcmd and sscanf /veh [ name ] +rep - RicaNiel - 17.04.2012

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));
}



Re: need help zcmd and sscanf /veh [ name ] +rep - sampmark05 - 17.04.2012

Код:
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;
}



Re: need help zcmd and sscanf /veh [ name ] +rep - ViniBorn - 17.04.2012

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



Re: need help zcmd and sscanf /veh [ name ] +rep - RicaNiel - 17.04.2012

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


Re: need help zcmd and sscanf /veh [ name ] +rep - RollTi - 17.04.2012

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 ]");



Re: need help zcmd and sscanf /veh [ name ] +rep - RicaNiel - 17.04.2012

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


Re: need help zcmd and sscanf /veh [ name ] +rep - aRoach - 17.04.2012

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...