13.12.2009, 10:46
[Tutorial]How to make RC vehicles enterable
As I have seen in many topics that many SAMP players asking about how to enter in RC vehicles or when they enter so how to get out from it .So i thought to make a tutorial for them .Thats a simple tutorial which you can use into your Filterscript or Gamemode.
now the car you want to enter,we have to define them .
So now we are ready to start our script .
First we want to know that on which key the player will enter in the vehicle . You can change it to your own choice.
Is that hard ? Not Really.
Saif
As I have seen in many topics that many SAMP players asking about how to enter in RC vehicles or when they enter so how to get out from it .So i thought to make a tutorial for them .Thats a simple tutorial which you can use into your Filterscript or Gamemode.
Код:
#include <a_samp>//its already present in every FS #pragma tabsize 0//if it is not present in the script so it may give you "loose indentation." or if your scripting is in correct sequence so no need to add it
Код:
#define RC_BANDIT 441
#define RC_BARON 464
#define RC_GOBLIN 501
#define RC_RAIDER 465
#define D_TRAM 449
#define RC_MINITANK 564
#define RC_CAM 594
First we want to know that on which key the player will enter in the vehicle . You can change it to your own choice.
Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == KEY_SECONDARY_ATTACK ){//the secondary attack key ,which you can change into your own choice
if(!IsPlayerInAnyVehicle(playerid)){ //checks the player if he/she is in the vehicle.
new Float:x, Float:y, Float:z, vehicle; //these Float gets the player position that where the player is present
GetPlayerPos(playerid, x, y, z );//gets player position
GetVehicleWithinDistance(playerid, x, y, z, 20.0, vehicle);//gets the player distance from the vehicle
if(IsVehicleRc(vehicle)){ //it checks the player vehicle is RC or not .
PutPlayerInVehicle(playerid, vehicle, 0);
}
}
else {
new vehicleID = GetPlayerVehicleID(playerid);
if(IsVehicleRc(vehicleID) || GetVehicleModel(vehicleID) == RC_CAM){
if(GetVehicleModel(vehicleID) != D_TRAM){
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
SetPlayerPos(playerid, x+0.5, y, z+1.0);
}
}
}
}
}
Код:
GetVehicleWithinDistance( playerid, Float:x1, Float:y1, Float:z1, Float:dist, &veh){//It should be in script other wise the GetVehicleWithInDistance will not work
for(new i = 1; i < MAX_VEHICLES; i++){
if(GetVehicleModel(i) > 0){
if(GetPlayerVehicleID(playerid) != i ){
new Float:x, Float:y, Float:z;
new Float:x2, Float:y2, Float:z2;
GetVehiclePos(i, x, y, z);
x2 = x1 - x; y2 = y1 - y; z2 = z1 - z;
new Float:vDist = (x2*x2+y2*y2+z2*z2);
if( vDist < dist){
veh = i;
dist = vDist;
}
}
}
}
}
Код:
IsVehicleRc( vehicleid ){//defines the RC vehicles.
new model = GetVehicleModel(vehicleid);
switch(model){
case RC_GOBLIN, RC_BARON, RC_BANDIT, RC_RAIDER, RC_MINITANK: return 1;
default: return 0;
}
return 0;
}
Saif


keep up the good work.