-
Hello
Valaki letudná nekem írni, hogy meglehet-e oldani azt hogy belehessen szállni az rc jármûbe
És ki is lehessen.
Kösz
-
meglehet..
PutPlayerInvehicle :D
szerk: link . http://wiki.sa-mp.com/wiki/PutPlayerInVehicle
és a kiszáláshoz
http://wiki.sa-mp.com/wiki/RemovePlayerFromVehicle
-
Vmi baj van vele.. nem száll ki, de eddig megvan:
if(IsPlayerInAnyVehicle(playerid))
{
if(GetVehicleModel(vehicleid) == 432 || GetVehicleModel(vehicleid) == 425 || GetVehicleModel(vehicleid) == 447 || GetVehicleModel(vehicleid) == 520 || GetVehicleModel(vehicleid) == 464 || GetVehicleModel(vehicleid) == 564)
{
RemovePlayerFromVehicle(playerid);
}
-
lemaradt egy } jel
-
De nem avval van a baj
Ki se száll
-
Hát.. Hova raktad be?
OnPlayerKeyStateChange alá rakd.. azon belül meg.. 1 pill
szerk:
globálisan
#define PRESSED(%0) \\
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){
if(PRESSED( KEY_ACTION) ){
if(IsPlayerInAnyVehicle(playerid)){
if(GetVehicleModel(vehicleid) == 432 || GetVehicleModel(vehicleid) == 425 || GetVehicleModel(vehicleid) == 447 || GetVehicleModel(vehicleid) == 520 || GetVehicleModel(vehicleid) == 464 || GetVehicleModel(vehicleid) == 564){
RemovePlayerFromVehicle(playerid);
}
}
}
}
Remélem jolesz.
-
OFF:
De **** nem lehet kijelölni....
-
Mit?
-
Na betudtam rakni, de nem mükõdik..:S
OFF: 2 fajta modon is megprobáltam de nem száll be az rc jármûbe
-
Elég primitív megoldás, de hirtelen ez jutott eszembe. Lehet nem fog mûködni, akkor esetleg próbáld meg az IsPlayerInRangeOfPoint függvény \'distance\' paraméterének növelését.
public OnPlayerKeyStateChange( playerid, newkeys ) {
if( newkeys & KEY_ACTION ) {
if( GetPlayerState( playerid ) == PLAYER_STATE_ONFOOT ) {
new Float: vehPos[ 3 ];
for( new x = 0; x < MAX_VEHICLES; ++x ) {
if( GetVehicleModel( x ) == 432 || GetVehicleModel( x ) == 425 || GetVehicleModel( x ) == 447 || GetVehicleModel( x ) == 520 || GetVehicleModel( x ) == 464 || GetVehicleModel( x ) == 564 ) {
GetVehiclePos( x, vehPos[ 0 ], vehPos[ 1 ], vehPos[ 2 ] );
if( IsPlayerInRangeOfPoint( playerid, 1.0, vehPos[ 0 ], vehPos[ 1 ], vehPos[ 2 ] ) ) {
PutPlayerInVehicle( playerid, x, 0 );
break;
}
}
}
} else if( GetPlayerState( playerid ) == PLAYER_STATE_DRIVER ) {
if( GetVehicleModel( GetPlayerVehicleID( playerid ) ) == 432 || GetVehicleModel( GetPlayerVehicleID( playerid ) ) == 425 || GetVehicleModel( GetPlayerVehicleID( playerid ) ) == 447 || GetVehicleModel( GetPlayerVehicleID( playerid ) ) == 520 || GetVehicleModel( GetPlayerVehicleID( playerid ) ) == 464 || GetVehicleModel( GetPlayerVehicleID( playerid ) ) == 564 ) {
RemovePlayerFromVehicle( playerid );
}
}
}
return 1;
}
-
Egy jó megoldás:
Csak meglehet oldani hogy az enterrel szálljon be?
#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
if(newkeys == KEY_ACTION ){
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) == 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){
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 model = GetVehicleModel(vehicleid);
switch(model){
case RC_GOBLIN, RC_BARON, RC_BANDIT, RC_RAIDER, RC_MINITANK: return 1;
default: return 0;
}
return 0;
}