SA-MP Forums

Go Back   SA-MP Forums > SA-MP Scripting and Plugins > Scripting Help

Reply
 
Thread Tools Display Modes
Old 17/04/2012, 12:45 AM   #1
RicaNiel
Huge Clucker
 
RicaNiel's Avatar
 
Join Date: Feb 2012
Location: Cebu City Philippines 6000
Posts: 259
Reputation: 14
Default need help zcmd and sscanf /veh [ name ] +rep

well guys the problem is it wont spaw a car


and i have a warning on my console here it is

Code:
[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 Code:
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));
}
__________________
I don't like someone pming me asking for fucking reputation
RicaNiel is offline   Reply With Quote
Old 17/04/2012, 12:51 AM   #2
sampmark05
Big Clucker
 
sampmark05's Avatar
 
Join Date: Dec 2011
Location: Philippines
Posts: 173
Reputation: 13
Default Re: need help zcmd and sscanf /veh [ name ] +rep

Code:
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;
}
__________________
If my post helped you, can you give me +1 reputation!
_______________________My Release_______________________

>I would be very happy if you'd Donate<
Click Here To Join!
sampmark05 is offline   Reply With Quote
Old 17/04/2012, 01:30 AM   #3
ViniBorn
High-roller
 
ViniBorn's Avatar
 
Join Date: Aug 2010
Location: Brasília
Posts: 4,576
Reputation: 570
Default Re: need help zcmd and sscanf /veh [ name ] +rep

pawn Code:
if(sscanf(command,"s",veh))
Try this
pawn Code:
if(sscanf(command,"s[50]",veh))
__________________
ViniBorn is online now   Reply With Quote
Old 17/04/2012, 04:31 AM   #4
RicaNiel
Huge Clucker
 
RicaNiel's Avatar
 
Join Date: Feb 2012
Location: Cebu City Philippines 6000
Posts: 259
Reputation: 14
Default Re: need help zcmd and sscanf /veh [ name ] +rep

it wont make the car
or spawn a vehicle it will only appear SERVER Unknown Command
__________________
I don't like someone pming me asking for fucking reputation
RicaNiel is offline   Reply With Quote
Old 17/04/2012, 05:54 AM   #5
RollTi
Huge Clucker
 
RollTi's Avatar
 
Join Date: Apr 2012
Location: Philippines
Posts: 231
Reputation: 36
Default Re: need help zcmd and sscanf /veh [ name ] +rep

You sure ZCMD use this?

pawn Code:
CMD:veh(playerid,command[])

NO, change it to

pawn Code:
CMD:veh(playerid, params[])

and also this

pawn Code:
new veh[50] = GetVehicleModelIDFromName(params);
if(sscanf(params,"s[50]",veh)) return SendClientMessage(playerid,C_WHITE,"/veh [ ID / Name ]");
__________________
if you notice me posting in topic that has 'REP+' i'm just want to help other people not to get reputation


New Release [INC]: roAFK - Efficient AFK System (Latest!)
RollTi is offline   Reply With Quote
Old 17/04/2012, 05:57 AM   #6
RicaNiel
Huge Clucker
 
RicaNiel's Avatar
 
Join Date: Feb 2012
Location: Cebu City Philippines 6000
Posts: 259
Reputation: 14
Default Re: need help zcmd and sscanf /veh [ name ] +rep

Quote:
Originally Posted by RollTi View Post
You sure ZCMD use this?

pawn Code:
CMD:veh(playerid,command[])

NO, change it to

pawn Code:
CMD:veh(playerid, params[])

and also this

pawn Code:
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
__________________
I don't like someone pming me asking for fucking reputation
RicaNiel is offline   Reply With Quote
Old 17/04/2012, 07:28 AM   #7
aRoach
Gangsta
 
aRoach's Avatar
 
Join Date: Mar 2011
Location: Bucharest, Romania
Posts: 527
Reputation: 83
Default Re: need help zcmd and sscanf /veh [ name ] +rep

Yes, you're right, the parameters can be whatever you want ( not numbers ) :
Code:
CMD:hey( p, prm[ ] )
The command Should Be:
pawn Code:
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 Code:
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...
__________________

Thanks to Zh3r0 for the Smudge Tutorial.

Last edited by aRoach; 17/04/2012 at 07:34 AM. Reason: Oups!
aRoach is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Tutorial] Using Zcmd and Sscanf Markx Tutorials 33 07/02/2012 04:18 PM
How to use zcmd without sscanf CrazyLess Scripting Help 6 04/10/2011 12:28 AM
zcmd&sscanf brightas Help Archive 1 04/02/2011 04:15 PM
Need help with sscanf + zcmd KotoK Help Archive 2 02/02/2011 06:47 PM
[Help]Zcmd & sscanf Dirty_bum Help Archive 3 28/10/2009 12:10 PM


All times are GMT. The time now is 07:32 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.