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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Szkript kérések => A témát indította: ZSOLTI99 - 2012. December 12. - 20:00:44

Cím: Motor/engine
Írta: ZSOLTI99 - 2012. December 12. - 20:00:44
Hali all. Valaki tudna olyan scriptet adni vagy van a itt a fórumon olyan hogy a motort a SHIFT gombal keljen be indítani és le állítani.
köszönöm a válaszokat !
Cím: Motor/engine
Írta: takehun - 2012. December 12. - 22:02:03

#include <a_samp>
#define PRESSED(%0) \\
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
{
if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER)
{
            if(PRESSED(KEY_CROUCH))
            {
        new vehicleid = GetPlayerVehicleID(playerid);
       new engine,lights,alarm,doors,bonnet,boot,objective;
if(GetPVarInt(playerid, \"Engine\") == 1)
   {
           GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
                 SetVehicleParamsEx(vehicleid,true,lights,alarm,doors,bonnet,boot,objective);
                 SetPVarInt(playerid, \"Engine\", 0);
          }
          else if(GetPVarInt(playerid, \"Engine\") == 0)
          {
             GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
                 SetVehicleParamsEx(vehicleid,false,lights,alarm,doors,bonnet,boot,objective);
                 SetPVarInt(playerid, \"Engine\", 1);
          }
            }
}
return 1;
}

 
Azt hiszem a CROUCH az a shift...
Cím: Motor/engine
Írta: ZSOLTI99 - 2012. December 13. - 17:48:28
köszike

Dupla hozzászólás automatikusan összefûzve. ( 2012. December 13. - 21:03:32 )

ennek mért van az hogy ha be szállok a kamionba másodjára akkor már nem írja hogy be kell indítani a motort?
1x beszállok és akkor írja de már mikor másodjára szállok be akkor nem írja ki ??
 
#include <a_samp>
#pragma tabsize 0
#define FILTERSCRIPT
#define COLOR_GREEN 0x33AA33AA // szin definiálása
#define orange 0xFF8000FF
new bool: indito[MAX_PLAYERS]; // be van-e inditva a motor? állása:(1 vagy true - igen) , (0 vagy false - nem)
public OnFilterScriptInit()
{
   print(\"------------------------------------------\");
   print(\" Engine Script \");
   print(\"------------------------------------------\");
}
 
public OnPlayerStateChange(playerid, newstate, oldstate) //mikor beszáll a jármube
{
   if(newstate == PLAYER_STATE_DRIVER) // megnézi, hogy soför vagy csak utas
   {
      if(indito[playerid] == false) // ha indito false, szóval nincs beinditva,akkor ...
      {
         SendClientMessage ( playerid,  orange,\"Jármu beinditásához nyomd le egyszer ezt: SHIFT\"); // kiirja ezt
         TogglePlayerControllable(playerid, false); //játékos ne birja elinditani a jármuvet
      }
   }
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) // billentyulenyomást nézi a függvény
{
    if(IsPlayerInAnyVehicle(playerid)) //megnézzük, hogy jármuben van-e?
   {
      if(newkeys & 32 && indito[playerid] == false){       //itt kell kicserélni a számot, hogy melyik billentyuvel induljon el a jármu
                                                          //ha a megadott billentyut nyomta le és nincs elinditva a jármu,akkor...
           SendClientMessage ( playerid,  COLOR_GREEN,\"Sikeresen beíndittotad a jármuvedet!\"); // kiirja ezt
         TogglePlayerControllable(playerid, true); // mostmár birja vezetni
         indito[playerid] = true; // inditot engedélyezzük
          return 1;
      }
   }
   return 0;
}
public OnPlayerExitVehicle(playerid, vehicleid) return indito[playerid] = true; // mikor kiszál
Cím: Motor/engine
Írta: Skeleton - 2012. December 14. - 18:53:02
Ez a függvény alá kell beírni:
public OnPlayerStateChange(playerid, newstate, oldstate) //mikor beszáll a jármube
{

 
Ezt írd be a jel után:


SendClientMessage ( playerid,  orange,\"Jármu beinditásához nyomd le egyszer ezt: SHIFT\"); // kiirja ezt

 

Remélem, jó lesz!!
Cím: Motor/engine
Írta: ZSOLTI99 - 2012. December 14. - 19:25:31
de az ott van ezt most nem értem bele zavarodtam hogy van?
Cím: Motor/engine
Írta: Casamiro - 2012. December 14. - 21:30:51
public OnPlayerExitVehicle(playerid, vehicleid) return indito[playerid] = false; // mikor kiszál
Cím: Motor/engine
Írta: takehun - 2012. December 14. - 22:07:09
Szerintem érdemesebb a motor indításhoz kapcsolni a bool-t. Amit írtam példához tehát:
 
#include <a_samp>
#define FILTERSCRIPT
#pragma tabsize 0
#define PRESSED(%0) \\
        (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#define COLOR_GREEN 0x33AA33AA
#define orange 0xFF8000FF
new bool:indito[MAX_VEHICLES];
public OnPlayerStateChange(playerid, newstate, oldstate)
{
        new vehicleid = GetPlayerVehicleID(playerid);
if(newstate == PLAYER_STATE_DRIVER)
{
if(indito[vehicleid] == false) //ha az indító [azaz a motor] ki van kapcsolva
{
         SendClientMessage ( playerid,  orange,\"Jármu beinditásához nyomd le egyszer ezt: SHIFT\");
}
}
return 1;
}
public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
{
if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER)
{
            if(PRESSED(KEY_CROUCH))
            {
       new vehicleid = GetPlayerVehicleID(playerid);
       new engine,lights,alarm,doors,bonnet,boot,objective;
if(GetPVarInt(playerid, \"Engine\") == 0) //ha a motor ki van kapcsolva
   {
           GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
                 SetVehicleParamsEx(vehicleid,true,lights,alarm,doors,bonnet,boot,objective);
                 SetPVarInt(playerid, \"Engine\", 1); //bekapcsoljuk a motort
                        indito[vehicleid] = true; //bekapcsoljuk az indítót
                 SendClientMessage ( playerid,  COLOR_GREEN,\"Sikeresen beíndittotad a jármuvedet!\");
          }
          else if(GetPVarInt(playerid, \"Engine\") == 1) //ha a motor be van kapcsolva
          {
             GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
                 SetVehicleParamsEx(vehicleid,false,lights,alarm,doors,bonnet,boot,objective);
                 SetPVarInt(playerid, \"Engine\", 0); //kikapcsoljuk a motort
                        indito[vehicleid] = false; //kikapcsoljuk az indítót
            }
    }
}
return 1;
}
Cím: Motor/engine
Írta: ZSOLTI99 - 2012. December 15. - 12:56:54
help pls beszállok és indul nem is kell meg nyomni a SHIFT gombot