GetVehicleWithinDistance( playerid, Float:x1, Float:y1, Float:z1, Float:dist, &veh)
{
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)
{
new vid= GetVehicleModel(vehicleid);
switch(vid)
{
case 441, 464, 501, 465, 449, 564, 594: return 1;
else return 0;
}
return 0;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == KEY_SECONDARY_ATTACK )
{
if(!IsPlayerInAnyVehicle(playerid))
{
new Float:x, Float:y, Float:z, vehicle;
GetPlayerPos(playerid, x, y, z );
GetVehicleWithinDistance(playerid, x, y, z, 20.0, vehicle);
if(IsVehicleRc(vehicle))
{
PutPlayerInVehicle(playerid, vehicle, 0);
}
}
else
{
new vehicleID = GetPlayerVehicleID(playerid);
if(IsVehicleRc(vehicleID) || GetVehicleModel(vehicleID) == 594)
{
if(GetVehicleModel(vehicleID) != 449)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
SetPlayerPos(playerid, x+0.5, y, z+1.0);
}
}
}
}
return 1;
}
Hát nem tudom, nem akarok jogtalanul vádaskodni, de én ezt találtam: www.forum.sa-mp.com/archive/index.php/t-125880.htmlhasonlíthat, mert tanulok, és más scriptekbõl :)
Itt az egyik válaszíró scriptje hasonlít erre szerintem
Akkor kérlek írd ki az eredeti készítõ nevét, vagy legalábbis a forrásokat!1. az eredeti készítõje én vagyok, az, hogy az ötletet egy másik script adta, attól ezt még én írtam.
GetVehicleWithinDistance( playerid, Float:x1, Float:y1, Float:z1, Float:dist, &veh)
{
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;
}
}
}
}
}
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)
{
new vid= GetVehicleModel(vehicleid);
switch(vid)
{
case 441, 464, 501, 465, 449, 564, 594: return 1;
else return 0;
}
return 0;
}
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;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == KEY_SECONDARY_ATTACK )
{
if(!IsPlayerInAnyVehicle(playerid))
{
new Float:x, Float:y, Float:z, vehicle;
GetPlayerPos(playerid, x, y, z );
GetVehicleWithinDistance(playerid, x, y, z, 20.0, vehicle);
if(IsVehicleRc(vehicle))
{
PutPlayerInVehicle(playerid, vehicle, 0);
}
}
else
{
new vehicleID = GetPlayerVehicleID(playerid);
if(IsVehicleRc(vehicleID) || GetVehicleModel(vehicleID) == 594)
{
if(GetVehicleModel(vehicleID) != 449)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
SetPlayerPos(playerid, x+0.5, y, z+1.0);
}
}
}
}
return 1;
}
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);
}
}
}
}
}
sziasztok. köztudott, hogy az rc illetve a villamos jármûvekbõl nem lehet kiszállni. ez a kód ezt segít kiküszöbölni.
készítõ:én
idõ: 3-4 perc + a teszt.