Szerző Téma: Nos Hiba  (Megtekintve 417 alkalommal)

Nos Hiba
« Dátum: 2012. Augusztus 06. - 13:02:52 »
0 Show voters
Hello mindenki.
Egy kis gondom akadt a Nitrommal.
Tudjatok azt szeretnem elerni ha megnyomom a nost,akkor menjen,ha elengedem akkor megalljon.
Van az a modszer is hogy mikor kocsiba vagy inditson el egy timert es az minden 1-2 masodpercben adjon uj nitrot.Azt nem akarom rakni,mert nagyon idegesit az a perceges,mikor mindig ad uj nitrot.
Van az a modszer is hogy ha megnyomja a gombot akkor adjon nost,es ha elengedi akkor vegye el.Evel nincs semmi gond,viszont hogy ha tobb mint 20-25 masodpercig nyomod a nitrot,akkor egy ido utan megall a nos es megint elkell engedd,illetve vissza nyomd a gombot.
Ezert csinaltam egy olyan cuccot, hogy ha nyomja a gombot,akkor minden 10 masodpercben csereli a nost,igy csak 10 masodpercenkent fog percegni egyet a nos.
Remelem ertitek.
Minden jol mukodik,viszont egy ido utan mar ossze vissza megy.Ossze vissza zakatol a nos hangja es meg rosszabb mint volt a legelsonel.
Ennek nem tudom az okat.
Leirom hogy csinaltam es remelem tudtok segiteni.
Bocsanat a bo magyarazatert. :S
Kezdjuk:
Az elejere
 

forward GiveNos(playerid);
new NosTimer;

 
Kesobb
 

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(PRESSED(KEY_FIRE))
{
        if(IsPlayerInAnyVehicle(playerid))
    {
       if(!IsPlayerInInvalidNosVehicle(playerid,GetPlayerVehicleID(playerid)))
        {
            AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
   NosTimer = SetTimer(\"GiveNos\",10000,true);
}
    }
    }
    else if(RELEASED(KEY_FIRE))
    {
   KillTimer(NosTimer);
                        RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1010);
 return 1;
}
return 0;
}

 
Majd:
 

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);
}

 
Mikor belepek es jatszok semmi gond nincs,viszont kesobb mar gond van vele.
Elore koszonom a segitsegeteket

Nos Hiba
« Válasz #1 Dátum: 2012. Augusztus 06. - 13:09:17 »
0 Show voters
Elsõ gond..
Nem játékosonkénti változót használsz, így csak ID 0nak lesz jó
Második gond
Nem SetTimerEx függvényt használsz, így ismét csak az ID 0nak lesz jó.
Harmadik gond
Szerintem nem lehet megoldani, hogy tovább menjen, el kell engedni, és újra megnyomni a nitró gombját.. A nitró hosszát a GTA szabta meg, nem tudod átállítani.

Nos Hiba
« Válasz #2 Dátum: 2012. Augusztus 06. - 13:11:50 »
0 Show voters
Probaltam SetTimerEx el is,ugysem megy.
Viszont hogy ha ha nyomom a nost,akkor el kene indulnia a timernek,ami 10 masodperc mulva uj nitrot ad,szoval az mar megint tele van.
Ha pedig elengeded a gombot,akkor egyszeruen megolje a timert.
SetTimerEx el is ugyanez a gond volt :(
Egy masik gondom is lenne.Mi az oka annak hogy ha CreateDynamicObjectet hasznalok,akkor azt irja hogy
 

error 017: undefined symbol \"CreateDynamicObject\"

 
Pedig tetejen ott van az hogy
 

#include <streamer>

 
server cfg.be benne van az hogy streamer.dll/
Plugin be van toltve.
0.3e s streamer is meg van.
Egy pawno van csak a gepen.(Volt tobb de mar csak egy van)
« Utoljára szerkesztve: 2012. Augusztus 06. - 13:15:18 írta xSkillZ7x »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal