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: Grant_Hawkins - 2012. december 28. - 08:49:33

Cím: Örök Nitro!
Írta: Grant_Hawkins - 2012. december 28. - 08:49:33
Üdv mindenkinek!
Abban kérem a segítségeteket hogy hogyan lehet azt megcsinálni hogy egy gombnyomásra be kapcsoljon a nitro és addig menyen amíg meg nem nyomjuk újra.!
Nagyon nagyon meg köszönném hogyha meg írnátok nekem.
És hogyha valaki veszi erre a fáradságot akkor légyszíves jobb klikkre kapcsolja ki/be a nitro.
Megy a + a segítségért.
Cím: Örök Nitro!
Írta: xSkillZ7x - 2012. december 28. - 09:08:29
Hát ez az örök nitró két féle lehet.Van egy egyszerûbb, viszont akkor mindig perceg, ameddig el nem engeded, vagy van egy olyan hogy ameddig tartod, addig megy, és akkor csak 10 másodpercenként perceg.Most csak az utóbbit írom le.A másodikat én írtam a szerveremnek de megosztom veled.Am simán átírhatod jobblickre, mert nekem úgy van hogy ha elengeded akkor megáll.Persze egyes dolgokat én is vettem innen onnan :P.
 

#include <a_samp>
#define PRESSED(%0) \\
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#define RELEASED(%0) \\
(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
new NosTimer;
forward GiveNos(playerid);
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(PRESSED(KEY_FIRE))
{
        if(IsPlayerInAnyVehicle(playerid))
    {
       if(!IsPlayerInInvalidNosVehicle(playerid,GetPlayerVehicleID(playerid)))
        {
            AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
   NosTimer = SetTimerEx(\"GiveNos\",10000,0,\"i\",playerid);
}
    }
    }
    else if(RELEASED(KEY_FIRE))
    {
   KillTimer(NosTimer);
            RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1010);
   return 1;
}
return 0;
}
stock IsPlayerInInvalidNosVehicle(playerid,vehicleid)
{
    #define MAX_INVALID_NOS_VEHICLES 32
    new InvalidNosVehicles[MAX_INVALID_NOS_VEHICLES] =
    {
581,523,462,521,463,522,461,448,468,586,
509,481,510,472,473,493,595,484,430,453,
452,446,454,590,569,537,538,570,449,444,
556,557
    };
    vehicleid = GetPlayerVehicleID(playerid);
    if(IsPlayerInVehicle(playerid,vehicleid))
    {
for(new i = 0; i < MAX_INVALID_NOS_VEHICLES; i++)
{
       if(GetVehicleModel(vehicleid) == InvalidNosVehicles)
       {
           return 1;
       }
}
    }
    return 0;
}
public GiveNos(playerid) {
AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
}

 
Remélem mûködik nem teszteltem, csak kimásoltam a modomból és nem tudom mindent kiszedtem de compileoztam és megy.
Am ha jobb clickel akarod elzárni a nitrót, akkor:
 

}
    else if(REALEASED(128))
    {
   KillTimer(NosTimer);
            RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1010);
   return 1;
}
Cím: Örök Nitro!
Írta: Grant_Hawkins - 2012. december 28. - 09:20:40
Köszönöm