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: GoldTec - 2015. Április 02. - 13:08:28

Cím: Végtelen nitro minden járműbe!
Írta: GoldTec - 2015. Április 02. - 13:08:28
van egy kódom:
    if (strcmp(\"/nitro\", cmdtext, true, 10) == 0)
{
if(!IsPlayerInAnyVehicle(playerid))
    return SendClientMessage(playerid, 0xFF4040FF, \"Nem ülsz járműben!\");
    new vid = GetPlayerVehicleID(playerid);
       if(!IsVehicleSkinCompatible_TF(GetVehicleModel(vid)))
           return SendClientMessage(playerid, 0xFF4040FF, \"Ebbe a járműbe nem lehet nitrót szerelni!\");
AddVehicleComponent(vid, 1010);
Timers[playerid] = SetTimerEx(\"Nitro\", 20000, true, \"i\", playerid);
return SendClientMessage(playerid, 0x40FF40FF, \"Mostantól végtelen nitród van!\");
}

 
 a gond az hogy rengeteg autóba nem teszi be a nitrót, hogyan lehet megoldani, hogy minden járműbe tegyen?
Cím: Végtelen nitro minden járműbe!
Írta: Kovacs_Richard - 2015. Április 02. - 13:19:35
ez a kód egy idő után eléggé letudja terhelni a szervert...
ha felmegyek egy flooder progival és 20.000x beírom a /nitro parancsot akkor 20.000 timer indul el...
a helyedben gomb nyomásra raknám a timert és amikor felengedi a gombot/kilép akkor KillTimer-el leállítanám...
 
Idézetet írta: GoldTec date=1427972908\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"53574\" data-ipsquote-contentclass=\"forums_Topic
a gond az hogy rengeteg autóba nem teszi be a nitrót, hogyan lehet megoldani, hogy minden járműbe tegyen?
 
\"Ebbe a járműbe nem lehet nitrót szerelni!\" üzenetet írja, vagy csak simán nem rakja bele?
Cím: Végtelen nitro minden járműbe!
Írta: GoldTec - 2015. Április 02. - 13:28:45
kiírja az üzenetet
Cím: Végtelen nitro minden járműbe!
Írta: Kovacs_Richard - 2015. Április 02. - 13:40:37
IsVehicleSkinCompatible_TF
ez a függvényt vizsgáld meg, mert az ebben levő ellenőrzés miatt tér vissza false értékkel és azért írja ki az üzenetet
Cím: Végtelen nitro minden járműbe!
Írta: GoldTec - 2015. Április 02. - 13:47:47
igen azóta arra már rájöttem hogy kell beállítani hogy billentyűnyomásra induljoon te timerre?
Cím: Végtelen nitro minden járműbe!
Írta: Kovacs_Richard - 2015. Április 02. - 14:16:34
http://wiki.sa-mp.com/wiki/OnPlayerKeyStateChange
Cím: Végtelen nitro minden járműbe!
Írta: GoldTec - 2015. Április 02. - 14:27:01
ebből semmit ne fogtam fel :D
Cím: Végtelen nitro minden járműbe!
Írta: Kovacs_Richard - 2015. Április 02. - 14:34:57
az volt a kérdés, hogy hogyan kell azt megcsinálni, hogy gombra induljon a timer nem?
ez a CallBack fut le amikor a játékos lenyom/felenged egy/több gombot...
Cím: Végtelen nitro minden járműbe!
Írta: Kyosuke_Hiroshi - 2015. Április 02. - 14:59:36

#define HOLDING(%0) ((newkeys & (%0)) == (%0))
#define RELEASED(%0) (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
public OnPlayerKeyStateChange( playerid, newkeys, oldkeys )
{
    if ( HOLDING( KEY_FIRE ) && GetPlayerState( playerid ) == PLAYER_STATE_DRIVER )
    {
AddVehicleComponent( GetPlayerVehicleID( playerid ), 1010 );
    }
    if (  RELEASED( KEY_FIRE ) && GetPlayerState( playerid ) == PLAYER_STATE_DRIVER )
    {
  RemoveVehicleComponent( GetPlayerVehicleID( playerid ), 1010 );
    }
    return 1;
}

 
tessék ez menni fog... ezt akarták elmagyarázni..
Cím: Végtelen nitro minden járműbe!
Írta: Kovacs_Richard - 2015. Április 02. - 15:04:17
Idézetet írta: Kyosuke_Hiroshi date=1427979576\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"53574\" data-ipsquote-contentclass=\"forums_Topic


#define HOLDING(%0) ((newkeys & (%0)) == (%0))
#define RELEASED(%0) (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
public OnPlayerKeyStateChange( playerid, newkeys, oldkeys )
{
    if ( HOLDING( KEY_FIRE ) && GetPlayerState( playerid ) == PLAYER_STATE_DRIVER )
    {
AddVehicleComponent( GetPlayerVehicleID( playerid ), 1010 );
    }
    if (  RELEASED( KEY_FIRE ) && GetPlayerState( playerid ) == PLAYER_STATE_DRIVER )
    {
  RemoveVehicleComponent( GetPlayerVehicleID( playerid ), 1010 );
    }
    return 1;
}

 
tessék ez menni fog... ezt akarták elmagyarázni..
 
nem egészen...én az időzítőt mondtam, hogy rakja ide :) mert akkor ameddig nyomja addig használjon nitrót :)
Cím: Végtelen nitro minden járműbe!
Írta: Kyosuke_Hiroshi - 2015. Április 02. - 15:07:38
Idézetet írta: Kovacs_Richard date=1427979857\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"53574\" data-ipsquote-contentclass=\"forums_Topic


 

#define HOLDING(%0) ((newkeys & (%0)) == (%0))
#define RELEASED(%0) (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
public OnPlayerKeyStateChange( playerid, newkeys, oldkeys )
{
    if ( HOLDING( KEY_FIRE ) && GetPlayerState( playerid ) == PLAYER_STATE_DRIVER )
    {
AddVehicleComponent( GetPlayerVehicleID( playerid ), 1010 );
    }
    if (  RELEASED( KEY_FIRE ) && GetPlayerState( playerid ) == PLAYER_STATE_DRIVER )
    {
  RemoveVehicleComponent( GetPlayerVehicleID( playerid ), 1010 );
    }
    return 1;
}

 
tessék ez menni fog... ezt akarták elmagyarázni..
 
nem egészen...én az időzítőt mondtam, hogy rakja ide :) mert akkor ameddig nyomja addig használjon nitrót :)
 
[/quote]
a kód működik szóval...
Cím: Végtelen nitro minden járműbe!
Írta: Kovacs_Richard - 2015. Április 02. - 15:38:09
Idézetet írta: Kyosuke_Hiroshi date=1427980058\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"53574\" data-ipsquote-contentclass=\"forums_Topic


 

 

#define HOLDING(%0) ((newkeys & (%0)) == (%0))
#define RELEASED(%0) (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
public OnPlayerKeyStateChange( playerid, newkeys, oldkeys )
{
    if ( HOLDING( KEY_FIRE ) && GetPlayerState( playerid ) == PLAYER_STATE_DRIVER )
    {
AddVehicleComponent( GetPlayerVehicleID( playerid ), 1010 );
    }
    if (  RELEASED( KEY_FIRE ) && GetPlayerState( playerid ) == PLAYER_STATE_DRIVER )
    {
  RemoveVehicleComponent( GetPlayerVehicleID( playerid ), 1010 );
    }
    return 1;
}

 
tessék ez menni fog... ezt akarták elmagyarázni..
 
nem egészen...én az időzítőt mondtam, hogy rakja ide :) mert akkor ameddig nyomja addig használjon nitrót :)
 
[/quote]
a kód működik szóval...
 
[/quote]
de ha nyomva tartja a gombot nem lesz végtelen nitró, ahhoz fel kell engednie és újra megnyomni :)
de remélhetőleg ennyi alapján már betudja rakni az időzítőt :)
Cím: Végtelen nitro minden járműbe!
Írta: GoldTec - 2015. Április 02. - 18:17:29
nem egészen értem igazából ezért kértem valakitől skype-os segítséget hogy bővebben tudjon segíteni