Raised This Month: $51 Target: $400
 12% 

Taille du model


  
 
 
Thread Tools Display Modes
Author Message
eXtrem
Member
Join Date: Jul 2011
Old 01-12-2012 , 08:11   Taille du model
#1

Bonjour !

Je voudrais savoir de quelle manière changer la taille du hitbox d'un joueur ?

J'ai essayé avec FM_SetSize
Quote:
Originally Posted by bboygrun View Post
Yes you can, try with FM_SetSize.
en utilisant la native citée juste en dessous

PHP Code:
engfuncEngFunc_SetSizeiEntFloat:flMins], Float:flMaxs] ) 
J'ai donc ouvert un model très large (une voiture) dans Jed's HLMV et j'ai fais Options -> Dump Model Info.

J'ai donc ceci :

Code:
Hitbox 1 Bounding Box Min: -105.639999 -44.060001 -26.030001
Hitbox 1 Bounding Box Max: 81.330002 39.389999 39.009998
J'ai mis ces valeurs dans flMins et flMaxs respectivement.

Seulement, la taille du hitbox reste toujours la même.

PS : J'ai testé sur un bot et je lui ai attribué le model avec Players Models.

Y aurait-il une autre native ?

Merci beaucoup d'avance !

Edit :

J'ai vu des threads parlant de "SET MODELINDEX OFFSET" dans le fichier config du zombieplague, ça règlerait la taille du hitbox selon le model. J'ai chercher dans cs_players_models_api.sma (qui est le seul plugin pour les models dans le mod) et je n'ai pas trouvé ce qui règlerait ceci.

Last edited by eXtrem; 01-12-2012 at 08:28.
eXtrem is offline
Devil259
Veteran Member
Join Date: Dec 2009
Location: France (59)
Old 01-12-2012 , 11:21   Re: Taille du hitbox
#2

Quote:
Originally Posted by eXtrem View Post
Je voudrais savoir de quelle manière changer la taille du hitbox d'un joueur ?
C'est ce que je veux aussi.

Quote:
Originally Posted by eXtrem View Post
J'ai donc ouvert un model très large (une voiture) dans Jed's HLMV et j'ai fais Options -> Dump Model Info.
Intéressant !
__________________
You can do anything you set your mind to, man.


Last edited by Devil259; 01-12-2012 at 11:21.
Devil259 is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 01-12-2012 , 11:41   Re: Taille du hitbox
#3

Mettre à jour l'offset joueur 491 - g_ulModelIndexPlayer (via set_pdata_int) avec la valeur retournée par precache_model
__________________
- tired and retired -

- my plugins -
ConnorMcLeod is offline
Devil259
Veteran Member
Join Date: Dec 2009
Location: France (59)
Old 01-12-2012 , 12:41   Re: Taille du hitbox
#4

J'ai fais ça et ça ne fonctionne pas :

Code:
#include < amxmodx > #include < cstrike > #include < fakemeta > const g_ulModelIndexPlayer = 491 new const MODEL[ ] = "car" new g_iModel public plugin_init( ) {     register_forward( FM_SetSize , "ModelsSetSizes" ) } public plugin_precache( ) {     new szFileToPrecache[ 128 ]     formatex( szFileToPrecache , charsmax( szFileToPrecache ) , "models/player/%s/%s.mdl" , MODEL , MODEL )         g_iModel = precache_model( szFileToPrecache ) } public ModelsSetSizes( iEnt /*, const Float:flMins[ 3 ] , const Float:flMaxs[ 3 ] */) {     engfunc( EngFunc_SetSize, iEnt, Float:{-80.0, -40.0, -40.0} , Float:{80.0, 40.0, 40.0} )     cs_set_user_model( iEnt , MODEL )     set_pdata_int( iEnt , g_ulModelIndexPlayer , g_iModel )         return FMRES_IGNORED }

Le model se met bien, mais le hitbox reste le même. De plus, lorsque le model est large, on passe à travers le model dû au hitbox mal réglé.
__________________
You can do anything you set your mind to, man.


Last edited by Devil259; 01-12-2012 at 13:09.
Devil259 is offline
eXtrem
Member
Join Date: Jul 2011
Old 01-12-2012 , 13:09   Re: Taille du hitbox
#5

J'ai le même résultat, et n'ai pas encore trouvé de solution à ce problème.

Last edited by eXtrem; 01-12-2012 at 13:10.
eXtrem is offline
Devil259
Veteran Member
Join Date: Dec 2009
Location: France (59)
Old 01-13-2012 , 01:48   Re: Taille du hitbox
#6

Quand est appelé FM_SetSize, au faite ?
__________________
You can do anything you set your mind to, man.

Devil259 is offline
eXtrem
Member
Join Date: Jul 2011
Old 01-13-2012 , 15:02   Re: Taille du hitbox
#7

FM_SetSize est appelé +-20 fois (je n'ai pas compter) chaque début de round.

Il me manquait en faite la constante g_ulIndexPlayer (je lui ai donné ce nom) qui sert à indiqué qu'il faut réglé la constante g_ulModelIndexPlayer sur la valeur que retourne le precache du model, avec le paramètre 5 (= joueur), et non pas 4 (= arme), comme j'ai pu voir quelque part.

J'ai donc fait ceci :

PHP Code:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>

new const Version[] = "0.0.1"

const g_ulModelIndexPlayer 491
const g_ulIndexPlayer 5

new const MODEL[] = "car"

new g_iModel

public plugin_init()
{
    
register_plugin"Resize model and hitbox"Version"eXtrem" )
    
register_forwardFM_SetSize"fwModelSize" )
}

public 
plugin_precache()
{
    new 
szFileToPrecache[1024]
    
formatexszFileToPrecachecharsmaxszFileToPrecache ), "models/player/%s/%s.mdl"MODELMODEL )
    
    
g_iModel engfuncEngFunc_PrecacheModelszFileToPrecache )
}

public 
fwModelSizeiEnt )
{
    if( 
is_user_aliveiEnt ) && ( CS_TEAM_T <= cs_get_user_teamiEnt ) <= CS_TEAM_CT ) )
    {
        new 
szCurrentModel[16]
        
cs_get_user_modeliEntszCurrentModelcharsmaxszCurrentModel ) )
        
        if( !
equalszCurrentModelMODEL ) )
        {
            
cs_set_user_modeliEntMODEL // j'ai testé de mettre le model avec la fonction fakemeta (engfunc(EngFunc_SetClientKeyValue, id, engfunc(EngFunc_GetInfoKeyBuffer, id), "model", MODEL)) et le model ne s'est pas appliqué
            
engfuncEngFunc_SetSizeiEntFloat:{-105.639999, -44.060001, -26.030001}, Float:{81.33000239.38999939.009998} )
            
set_pdata_intiEntg_ulModelIndexPlayerg_iModelg_ulIndexPlayer)
        }
    }

Donc le hitbox est superbement bien réglé, par contre, je crois qu'il n'est plus possible de viser la tête (j'ai pas testé partout), mais de toute façon ce n'est pas un problème dans mon cas.
Néanmoins, le model reste toujours traversable lorsque il est trop grand. Comment fait pour qu'il ne soit plus traversable (qu'il soit solide, en l'occurence) ?

Last edited by eXtrem; 01-13-2012 at 15:04.
eXtrem is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 01-13-2012 , 17:30   Re: Taille du hitbox
#8

Tu n'as pas besoin de régler l'offset à chaque fois que SetSize est appelé.
Quand SetSize est appelé et qu'il s'agit d'un joueur, règle la size que tu souhaites en envoyant ton propre EngFunc_SetSize, et retourne FMRES_SUPERCEDE

Tu n'as rien besoin de faire d'autre dans ce forward.

Pour le model, je te conseille de regarder mon plugin Player Models, tu y trouveras un moyen plus propre que cs_set_user_model pour définir un model de joueur.


const g_ulIndexPlayer = 5
Ceci est valable pour tous les offsets joueurs, et c'est la valeur par défaut si tu ne passe pas d'argument, on la voit aussi appelée EXTRAOFFSET ou XTRA_OFS_PLAYER ou encore XO_PLAYER.


Enfin, n'oublie pas que les joueurs ayant cl_minmodels 1 ne verront pas les models customs, je te conseille de boucler un query_client_cvar, tu le renvoies dans chaque callback.


Edit : tu trouveras peut etre également ce qu'il te faut là : http://forums.alliedmods.net/showthread.php?t=171845
__________________
- tired and retired -

- my plugins -

Last edited by ConnorMcLeod; 01-13-2012 at 17:34.
ConnorMcLeod is offline
eXtrem
Member
Join Date: Jul 2011
Old 01-13-2012 , 18:32   Re: Taille du hitbox
#9

Quote:
Originally Posted by ConnorMcLeod View Post
Tu n'as pas besoin de régler l'offset à chaque fois que SetSize est appelé.
Quand SetSize est appelé et qu'il s'agit d'un joueur, règle la size que tu souhaites en envoyant ton propre EngFunc_SetSize, et retourne FMRES_SUPERCEDE
C'est ce que j'ai fais, ça ne fonctionne pas. Le model reste "traversable" sur les côtés (dans mon cas). De plus, j'ai remarqué que lorsque le joueur saute et qu'on est à côté, on est bloqué, on ne peut plus bouger.

PHP Code:
public fwModelSizeiEnt )
{
    if( 
is_user_aliveiEnt ) && ( CS_TEAM_T <= cs_get_user_teamiEnt ) <= CS_TEAM_CT ) )
    {
        
engfuncEngFunc_SetSize iEnt Float:{-105.639999, -44.060001, -26.030001}, Float:{81.33000239.38999939.009998} )
       
        return 
FMRES_SUPERCEDE
    
}

    return 
FMRES_IGNORED

Quote:
Originally Posted by ConnorMcLeod View Post
Pour le model, je te conseille de regarder mon plugin Player Models, tu y trouveras un moyen plus propre que cs_set_user_model pour définir un model de joueur.
J'ai déjà vu, tu utilises get_user_info avec "model". J'avais test, mais ça ne marchait pas. Néanmoins l'erreur ne venait pas de là mais d'autre part qui faisait que le model ne se mettait pas.

J'ai utilisé cs_set_user_model( ) pour pouvoir testé rapidement puisque j'étais sûr de bien l'utiliser.

Quote:
Originally Posted by ConnorMcLeod View Post
const g_ulIndexPlayer = 5
Ceci est valable pour tous les offsets joueurs, et c'est la valeur par défaut si tu ne passe pas d'argument, on la voit aussi appelée EXTRAOFFSET ou XTRA_OFS_PLAYER ou encore XO_PLAYER.
Ah, c'est celle ça cette fameuse constante XO_PLAYER que je vois partout.

Quote:
Originally Posted by ConnorMcLeod View Post
Enfin, n'oublie pas que les joueurs ayant cl_minmodels 1 ne verront pas les models customs, je te conseille de boucler un query_client_cvar, tu le renvoies dans chaque callback.
J'avais déjà prévu le coup.


Quote:
Originally Posted by ConnorMcLeod View Post
Edit : tu trouveras peut etre également ce qu'il te faut là : http://forums.alliedmods.net/showthread.php?t=171845
Je me suis basé de quelque truc de celui-ci pour faire mon code.

PS : J'ai essayé de mettre le model à un joueur dans FM_SetClientKeyValue mais ça ne fonctionnait pas, j'ai dû mal modifier. Je l'ai mis dans Ham_Spawn, ça devrait suffire en attendant de trouver une solution.

Mon code entier :

PHP Code:
#include < amxmodx >
#include < cstrike >
#include < fakemeta >
#include < hamsandwich >

new const Version[] = "0.0.1"

const g_ulModelIndexPlayer 491
const XO_PLAYER 5

new const MODEL[] = "car"

new g_iModel

public plugin_init( )
{
    
register_plugin"Resize model and hitbox"Version"eXtrem" )
    
register_forwardFM_SetSize"fwModelSize" )
    
RegisterHamHam_Spawn"player""fwSpawnPost"// testé avec FM_Spawn en vérifiant que l'entité est "player", ne fonctionne pas
}

public 
plugin_precache( )
{
    new 
szFileToPrecache1024 ]
    
formatexszFileToPrecachecharsmaxszFileToPrecache ), "models/player/%s/%s.mdl"MODELMODEL )
    
    
g_iModel engfuncEngFunc_PrecacheModelszFileToPrecache )
}

public 
fwModelSizeiEnt )
{
    if( 
is_user_aliveiEnt ) && ( CS_TEAM_T <= cs_get_user_teamiEnt ) <= CS_TEAM_CT ) )
    {
        
engfuncEngFunc_SetSizeiEntFloat:{-105.639999, -44.060001, -26.030001}, Float:{81.33000239.38999939.009998} ) // je met la taille du model récupéré via jed's hlmv
        
        
return FMRES_SUPERCEDE // supercede, comme tu m'as dis
    
}
    
    return 
FMRES_IGNORED
}

public 
fwSpawnPostid )
{
    if( 
is_user_aliveid ) )
    {
        
//set_user_info( id , "model" , MODEL ) // -> je viens de test, ça laisse le skin ct d'origine, avec un gros bug
        
        
cs_set_user_modelid MODEL // en attendant ...
        
set_pdata_intidg_ulModelIndexPlayerg_iModelXO_PLAYER )
    }

Ai-je fais quelque chose de travers ?

Last edited by eXtrem; 01-13-2012 at 18:32.
eXtrem is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 01-13-2012 , 19:40   Re: Taille du hitbox
#10

Je m'étais amusé à faire un truc dans ce genre aussi, tu peux tester, par contre je n'avais rien fait sur les hitboxes.
Le truc c'est de mettre un model sur une entité et non sur le joueur, et de rendre le joueur transparent :

Les fichiers sont des fichiers par défaut.

PHP Code:
/*    Formatright © 2010, ConnorMcLeod

    This plugin is free software;
    you can redistribute it and/or modify it under the terms of the
    GNU General Public License as published by the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this plugin; if not, write to the
    Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.
*/

#include <amxmodx>
#include <amxmisc>

#include <engine>
#include <fakemeta>

#include <hamsandwich>

#include <fun>

#include <cstrike>

#define VERSION "0.0.1"
#define PLUGIN "ForkLift"

new const g_szModel[] = "models/forklift.mdl"
new const g_szSound[] =  "ambience/truck1.wav" // "ambience/crtnoise.wav" // 
new const g_szKlaxon[] = "items/airtank1.wav"  // "buttons/button10.wav" // 

#define THINK_DELAY 0.01

new const g_szClassName[] = "func_tracktrain"

#define MAX_PLAYERS        32

#define XO_PLAYER        5
#define m_bNotKilled    113

#define Ham_Player_ResetMaxSpeed Ham_Item_PreFrame

new g_iForkLift[MAX_PLAYERS+1]

#define FIRST_PLAYER_ID    1
new g_iMaxPlayers
#define IsPlayer(%1)    ( FIRST_PLAYER_ID <= %1 <= g_iMaxPlayers )

enum {
    
dummy,
    
drive,
    
drive2,
    
jockey,
    
iddle2,
    
patha,
    
pathb
}

public 
plugin_init()
{
    
register_plugin(PLUGINVERSION"ConnorMcLeod")
    
register_event("HLTV""Event_HLTV_New_Round""a""1=0""2=0")
    
//RegisterHam(Ham_Spawn, "player", "CBasePlayer_Spawn", 1)
    
RegisterHam(Ham_Killed"player""CBasePlayer_Killed"1)
    
register_forward(FM_AddToFullPack"AddToFullPack"1)
    
register_forward(FM_UpdateClientData"UpdateClientData"1)
    
register_forward(FM_EmitSound"EmitSound")
    
RegisterHam(Ham_Player_ResetMaxSpeed"player""CBasePlayer_ResetMaxSpeed_Post"true)
    
register_think(g_szClassName"ForkLift_Think")
    
register_touch(g_szClassName"player""ForkLift_Touch")
    
RegisterHam(Ham_Touch"weaponbox""WeaponTouch")
    
RegisterHam(Ham_Touch"armoury_entity""WeaponTouch")
    
RegisterHam(Ham_Touch"weapon_shield""WeaponTouch")
    
g_iMaxPlayers get_maxplayers()

    
register_concmd("amx_forklift""ConCmd_ForkLift"ADMIN_RCON)
}

public 
Event_HLTV_New_Round()
{
    for(new 
id=1id<=g_iMaxPlayersid++)
    {
        
ResetPlayer(id)
    }
}

public 
CBasePlayer_Killedid )
{
    
ResetPlayer(id)
}

ResetPlayer(id)
{
    new 
iEnt g_iForkLift[id]
    if( 
iEnt )
    {
        
remove_entity(iEnt)
        
g_iForkLift[id] = 0
        
if( is_user_connected(id) )
        {
            
set_view(idCAMERA_NONE)
            
set_user_footsteps(id0)
            
set_user_godmode(id0)
            
emit_sound(idCHAN_AUTOg_szSoundVOL_NORMATTN_NORMSND_STOPPITCH_NORM)
            
set_pdata_int(idm_bNotKilled0XO_PLAYER)
        }
    }
}

public 
WeaponTouch(iEntid)
{
    if( 
is_user_alive(id) && g_iForkLift[id] )
    {
        return 
HAM_SUPERCEDE
    
}
    return 
HAM_IGNORED
}

public 
plugin_precache()
{
    
precache_model(g_szModel)
    
precache_model("models/rpgrocket.mdl"// set_view
    
precache_sound(g_szSound)
    
precache_sound(g_szKlaxon)
}

stock GetForkLiftOwneriEnt )
{
    for(new 
id=1id<=g_iMaxPlayersid++)
    {
        if( 
g_iForkLift[id] == iEnt )
        {
            return 
id
        
}
    }
    return 
0
}

public 
ForkLift_ThinkiEnt )
{
    new 
id GetForkLiftOwneriEnt )
    if( 
IsPlayer(id) && is_user_alive(id) )
    {
        new 
Float:fVecVelocity[3], iSequence pev(iEntpev_sequence)
        
pev(idpev_velocityfVecVelocity)
        if( 
vector_length(fVecVelocity) > 50.0 )
        {
            if( 
iSequence != drive )
            {
                
set_pev(iEntpev_sequencedrive)
                
set_pev(iEntpev_frame0.0)
                
set_pev(iEntpev_framerate1.0)
            }
        }
        else if( 
iSequence != iddle2 )
        {
            
set_pev(iEntpev_sequenceiddle2)
            
set_pev(iEntpev_frame0.0)
            
set_pev(iEntpev_framerate1.0)
        }
    }
    
set_pev(iEntpev_nextthinkget_gametime() + THINK_DELAY)
}

public 
ConCmd_ForkLift(idlvlcid)
{
    if( 
cmd_access(idlvlcid2) )
    {
        new 
iPlayers[32], iNumiPlayer GetTargets(idiPlayersiNumCMDTARGET_ALLOW_SELF|CMDTARGET_ONLY_ALIVE)
        if( 
iPlayer )
        {
            
GiveForkLift(iPlayer)
        }
        else if( 
iNum )
        {
            for(--
iNumiNum>=0iNum--)
            {
                
GiveForkLift(iPlayers[iNum])
            }
        }
    }
    return 
PLUGIN_HANDLED
}
/*        new szTarget[32]
        read_argv(1, szTarget, charsmax(szTarget))
        new iPlayer = cmd_target(id, szTarget, CMDTARGET_ALLOW_SELF|CMDTARGET_ONLY_ALIVE)
        if( iPlayer )
        {
            GiveForkLift(iPlayer)
        }
        else if( szTarget[0] == '@' )
        {
            new iNum, iPlayers[32]
            get_players(iPlayers, iNum)
            new CsTeams:iTeam
            switch( szTarget[1] )
            {
                case 't', 'T':iTeam = CS_TEAM_T
                case 'c', 'C':iTeam = CS_TEAM_CT
                case 'a', 'A':iTeam = CS_TEAM_T|CS_TEAM_CT
                default:return PLUGIN_HANDLED
            }
            for(--iNum; iNum>=0; iNum--)
            {
                iPlayer = iPlayers[iNum]
                if( iTeam & cs_get_user_team(iPlayer) )
                {
                    GiveForkLift( iPlayer )
                }
            }
        }
    }
    return PLUGIN_HANDLED
}*/

GetTargets(idiPlayers[32], &iNumiFlags=CMDTARGET_OBEY_IMMUNITY)
{
    new 
szTarget[32]
    
read_argv(1szTargetcharsmax(szTarget))
    new 
iPlayer cmd_target(idszTargetiFlags)
    if( 
iPlayer )
    {
        return 
iPlayer
    
}
    else if( 
szTarget[0] == '@' )
    {
        new 
CsTeams:iTeam
        
switch( szTarget[1] )
        {
            case 
't''T'iTeam CS_TEAM_T
            
case 'c''C'iTeam CS_TEAM_CT
            
case 'a''A'iTeam CS_TEAM_UNASSIGNED
            
case 's''S'iTeam CS_TEAM_SPECTATOR
            
default:return -1
        
}
        new 
szFlags[3], n
        
if( iFlags CMDTARGET_ONLY_ALIVE )
        {
            
szFlags[n++] = 'a'
            
szFlags[n++] = 'h'
        
}
        if( 
iFlags CMDTARGET_NO_BOTS )
        {
            
szFlags[n++] = 'c'
        
}
        
get_players(iPlayersiNumszFlags)
        for(new 
ii<iNumi++)
        {
            
iPlayer iPlayers[i]
            if(    (
iFlags CMDTARGET_OBEY_IMMUNITY && get_user_flags(iPlayer) & ADMIN_IMMUNITY)
            ||    !(
iTeam == CS_TEAM_UNASSIGNED || cs_get_user_team(iPlayer) == iTeam)    )
            {
                
iPlayers[i--] = iPlayers[--iNum]
                continue
            }
        }
        return 
0
    
}
    return -
1
}

public 
ForkLift_Touch(iEntid)
{
    if( 
is_user_alive(id) && !g_iForkLift[id] )
    {
        new 
iOwner GetForkLiftOwner(iEnt)
        
ExecuteHam(Ham_TakeDamageidiEntiOwner200.0DMG_CRUSH)
    }
}

GiveForkLift(id)
{
    new 
iEnt create_entity("info_target"// func_vehicle ?
    
set_pev(iEntpev_classnameg_szClassName)
    
set_pev(iEntpev_ownerid)
    
set_pev(iEntpev_movetypeMOVETYPE_FOLLOW)
    
set_pev(iEntpev_aimentid)
    
engfunc(EngFunc_SetModeliEntg_szModel)
    
set_pev(iEntpev_sequenceiddle2)
    
set_pev(iEntpev_frame0.0)
    
set_pev(iEntpev_framerate1.0)
    
engfunc(EngFunc_SetSizeiEnt, {-36.0,-72.0,0.0}, {36.072.096.0})
    
set_pev(iEntpev_solidSOLID_TRIGGER)
    
emit_sound(idCHAN_AUTOg_szSoundVOL_NORMATTN_NORM0PITCH_NORM)
    
set_pev(iEntpev_nextthinkget_gametime() + THINK_DELAY)

    
g_iForkLift[id] = iEnt

    
if( user_has_weapon(idCSW_C4) )
    {
        
engclient_cmd(id"drop""weapon_c4")
    }
    
strip_user_weapons(id)
    
set_pdata_int(id1160)
    
set_view(idCAMERA_3RDPERSON)
    
set_user_godmode(id1)
    
set_user_footsteps(id1)
    
set_user_rendering(id_000kRenderTransAlpha0)
    
set_pev(idpev_maxspeed320.0)
}

public 
CBasePlayer_ResetMaxSpeed_Postid )
{
    if( 
g_iForkLift[id] && is_user_alive(id) && get_user_maxspeed(id) != 1.0 )
    {
        
set_pev(idpev_maxspeed320.0)
    }
}

public 
CBasePlayer_Spawnid )
{
    if( 
is_user_alive(id) )
    {
        
emit_sound(idCHAN_AUTOg_szSoundVOL_NORMATTN_NORMSND_STOPPITCH_NORM)
        if( !
user_has_weapon(idCSW_KNIFE) )
        {
            
give_item(id"weapon_knife")
        }
    }
}

public 
AddToFullPack(eseiEntidhostflagsplayerpSet)
{
    if( 
player && get_orig_retval() && g_iForkLift[iEnt] )
    {
        if( 
iEnt != id )
        {
            new 
Float:fVecOrigin[3]
            
get_es(esES_OriginfVecOrigin)
            
fVecOrigin[2] -= get_es(esES_eFlags) & FL_DUCKING 16.0 34.0
            set_es
(esES_OriginfVecOrigin)
            
set_es(esES_RenderModekRenderTransColor)
        }
        
set_es(esES_RenderAmt0)
    }
}

public 
UpdateClientData(idsendweaponscd)
{
    if( 
g_iForkLift[id] )
    {
        new 
Float:fVecOrigin[3]
        
get_cd(cdCD_OriginfVecOrigin)
        
fVecOrigin[2] -= get_cd(cdCD_Flags) & FL_DUCKING 16.0 34.0
        set_cd
(cdCD_OriginfVecOrigin)
    }
}

public 
EmitSound(idiChannelszSample[], Float:flVolumeFloat:flAttenuationiFlagsiPitch)
{
    if( 
IsPlayer(id) && g_iForkLift[id] )
    {
        if( 
equal(szSample"common/wpn_denyselect.wav") )
        {
            
emit_sound(idiChannelg_szKlaxonflVolumeflAttenuationiFlagsiPitch)
            new 
iEnt g_iForkLift[id]
            if( 
pev(iEntpev_sequence) == jockey )
            {
                
set_pev(iEntpev_sequencedrive)
                
set_pev(iEntpev_nextthinkget_gametime() + THINK_DELAY)
            }
            else
            {
                
set_pev(iEntpev_sequencejockey)
                
set_pev(iEntpev_nextthinkget_gametime() + 10.0)
            }
            
set_pev(iEntpev_frame0.0)
            
set_pev(iEntpev_framerate1.0)
        }
        return 
FMRES_SUPERCEDE
    
}
    return 
FMRES_IGNORED

__________________
- tired and retired -

- my plugins -
ConnorMcLeod is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 18:27.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode