GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: herban - 2010. December 15. - 19:31:01

Cím: RC jármûvek
Írta: herban - 2010. December 15. - 19:31:01
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
Cím: RC jármûvek
Írta: Stray - 2010. December 15. - 19:33:16
meglehet..
PutPlayerInvehicle :D
szerk: link . http://wiki.sa-mp.com/wiki/PutPlayerInVehicle
és a kiszáláshoz
http://wiki.sa-mp.com/wiki/RemovePlayerFromVehicle
Cím: RC jármûvek
Írta: herban - 2010. December 15. - 19:47:26
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);
}
Cím: RC jármûvek
Írta: Stray - 2010. December 15. - 19:49:08
lemaradt egy } jel
Cím: RC jármûvek
Írta: herban - 2010. December 15. - 19:52:32
De nem avval van a baj
Ki se száll
Cím: RC jármûvek
Írta: Stray - 2010. December 15. - 19:53:59
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.
Cím: RC jármûvek
Írta: herban - 2010. December 15. - 20:12:16
OFF:
De **** nem lehet kijelölni....
Cím: RC jármûvek
Írta: Stray - 2010. December 15. - 20:14:24
Mit?
Cím: RC jármûvek
Írta: herban - 2010. December 15. - 21:00:13
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
Cím: RC jármûvek
Írta: ZeRo - 2010. December 15. - 21:09:47
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;
}
Cím: RC jármûvek
Írta: herban - 2010. December 16. - 16:02:09
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;
}