AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Module Coding (https://forums.alliedmods.net/forumdisplay.php?f=9)
-   -   Hi, can someone help (https://forums.alliedmods.net/showthread.php?t=345376)

amroali2000 01-08-2024 07:48

Hi, can someone help
 
i have file cpp tell me how to convert it to dll? , Or transfer it to me, thanks

amroali2000 01-08-2024 07:50

this is code
 
PHP Code:

#include "amxxmodule.h"

#include <stdio.h>
#include <string.h>
#include <ctype.h>

#if !defined __linux__
                                
static signed int pread(signed int Numbervoid pBuffersize_t Countlong Offset)
                                {
                                    return (
lseek(NumberOffsetSEEK_SET) != Offset) ? ((signed int) (-1)) : ((signed int) (read(NumberpBufferCount)));
                                }
#endif

char replace(char const * const originalchar const * const patternchar const * const replacement)
{
  
size_t const replen strlen(replacement);
  
size_t const patlen strlen(pattern);
  
size_t const orilen strlen(original);

  
size_t patcnt 0;
  const 
char oriptr;
  const 
char patloc;

  for (
oriptr originalpatloc strstr(oriptrpattern); oriptr patloc patlen)
  {
    
patcnt++;
  }

  {
    
size_t const retlen orilen patcnt * (replen patlen);
    
char * const returned = (char *) mallocsizeof(char) * (retlen 1) );

    if (
returned != NULL)
    {
      
char retptr returned;
      for (
oriptr originalpatloc strstr(oriptrpattern); oriptr patloc patlen)
      {
        
size_t const skplen patloc oriptr;
        
strncpy(retptroriptrskplen);
        
retptr += skplen;
        
strncpy(retptrreplacementreplen);
        
retptr += replen;
      }
      
strcpy(retptroriptr);
    }
    return 
returned;
  }
}


#if defined __linux__
#define EXTRAOFFSET 5
#define EXTRAOFFSET_WEAPONS 4
#else
#define EXTRAOFFSET 0
#define EXTRAOFFSET_WEAPONS 0
#endif

#define OFFSET_TEAM 114 + EXTRAOFFSET
#define OFFSET_CSMONEY 115 + EXTRAOFFSET
#define OFFSET_ZOOMTYPE 363 + EXTRAOFFSET
#define OFFSET_AWM_AMMO 377 + EXTRAOFFSET
#define OFFSET_SCOUT_AMMO 378 + EXTRAOFFSET
#define OFFSET_PARA_AMMO 379 + EXTRAOFFSET
#define OFFSET_FAMAS_AMMO 380 + EXTRAOFFSET
#define OFFSET_M3_AMMO 381 + EXTRAOFFSET
#define OFFSET_USP_AMMO 382 + EXTRAOFFSET
#define OFFSET_FIVESEVEN_AMMO 383 + EXTRAOFFSET
#define OFFSET_DEAGLE_AMMO 384 + EXTRAOFFSET
#define OFFSET_P228_AMMO 385 + EXTRAOFFSET
#define OFFSET_GLOCK_AMMO 386 + EXTRAOFFSET
#define OFFSET_CSDEATHS 444 + EXTRAOFFSET
#define OFFSET_PAINSHOCK 108 + EXTRAOFFSET 
#define OFFSET_CLIPAMMO EXTRAOFFSET_WEAPONS + 51

#define CSW_P228 1
#define CSW_SCOUT 3
#define CSW_HEGRENADE 4
#define CSW_XM1014 5
#define CSW_MAC10 7
#define CSW_AUG 8
#define CSW_SMOKEGRENADE 9
#define CSW_ELITE 10
#define CSW_FIVESEVEN 11
#define CSW_UMP45 12
#define CSW_SG550 13
#define CSW_GALIL 14
#define CSW_FAMAS 15
#define CSW_USP 16
#define CSW_GLOCK18 17
#define CSW_AWP 18
#define CSW_MP5NAVY 19
#define CSW_M249 20
#define CSW_M3 21
#define CSW_M4A1 22
#define CSW_TMP 23
#define CSW_G3SG1 24
#define CSW_FLASHBANG 25
#define CSW_DEAGLE 26
#define CSW_SG552 27
#define CSW_AK47 28
#define CSW_P90 30

#define Mine_Flag (1<<12)
#define Spawn_Flag 0x13A

Vector g_EndPosition;

const 
char g_pMonsterHitSounds[ ] = {
    
"zombie_plague/monster_hit_01.wav",
    
"zombie_plague/monster_hit_02.wav",
    
"zombie_plague/monster_hit_03.wav"
};

const 
char g_pZombieHitSounds[ ] = {
    
"zombie_plague/zombie_hit_01.wav",
    
"zombie_plague/zombie_hit_02.wav",
    
"zombie_plague/zombie_hit_03.wav",
    
"zombie_plague/zombie_hit_04.wav",
    
"zombie_plague/zombie_hit_05.wav"
};

const 
char g_pZombieDieSounds[ ] = {
    
"zombie_plague/zombie_die_01.wav",
    
"zombie_plague/zombie_die_02.wav",
    
"zombie_plague/zombie_die_03.wav",
    
"zombie_plague/zombie_die_04.wav",
    
"zombie_plague/zombie_die_05.wav"
};

char* const MODELS_TO_PRECACHE[] = {
    
"models/rpgrocket.mdl",
    
"models/p_egon.mdl",
    
"models/v_egon.mdl",
    
"models/zombie_plague/nemesis_claws.mdl",
    
"models/zombie_plague/assassin_claws.mdl",
    
"models/zombie_plague/clasic_claws.mdl",
    
"models/zombie_plague/regenerator_claws.mdl",
    
"models/zombie_plague/mutant_claws.mdl",
    
"models/zombie_plague/tight_claws.mdl",
    
"models/zombie_plague/hunter_claws.mdl",
    
"models/zombie_plague/predator_blue_claws.mdl",
    
"models/zombie_plague/v_awp_winter.mdl",
    
"models/player/monster_nemesis/monster_nemesis.mdl",
    
"models/player/survivor/survivor.mdl",
    
"models/player/monster_assassin/monster_assassin.mdl",
    
"models/player/administrator/administrator.mdl",
    
"models/player/zclasic/zclasic.mdl",
    
"models/player/raptor/raptor.mdl",
    
"models/player/mutant/mutant.mdl",
    
"models/player/tight/tight.mdl",
    
"models/player/regenerator/regenerator.mdl",
    
"models/player/predator_blue/predator_blue.mdl",
    
"models/player/hunter/hunter.mdl",
    
"models/zombie_plague/lasermine.mdl",
    
"models/player/zp60_vip/zp60_vip.mdl",
    
"models/player/zp60_sonic/zp60_sonic.mdl",
    
"models/player/zp60_sonic_2/zp60_sonic_2.mdl",
    
"models/player/zp60_sonic_3/zp60_sonic_3.mdl",
    
"models/player/zp60_founder/zp60_founder.mdl",
    
"models/player/zp60_player/zp60_player.mdl",
    
"models/zombie_plague/v_grenade_infection.mdl",
    
"models/zombie_plague/v_golden_ak47.mdl",
    
"models/zombie_plague/p_golden_ak47.mdl",
    
"models/zombie_plague/v_diamond_ak47.mdl",
    
"models/zombie_plague/p_diamond_ak47.mdl",
    
"models/zombie_plague/v_glacier_m4a1.mdl",
    
"models/zombie_plague/p_glacier_m4a1.mdl",
    
"models/zombie_plague/v_mod_plasmagun.mdl",
    
"models/zombie_plague/p_mod_plasmagun.mdl",
    
"models/zombie_plague/v_golden_deagle.mdl",
    
"models/zombie_plague/p_golden_deagle.mdl",
    
"models/zombie_plague/v_shotgun_m3.mdl",
    
"models/zombie_plague/p_shotgun_m3.mdl",
    
"models/zombie_plague/p_awp_winter.mdl",
    
"models/zombie_plague/claws_hybrid.mdl",
    
"models/zombie_plague/claws_bombardier.mdl",
    
"models/zombie_plague/claws_reptile.mdl",
    
"models/zombie_plague/v_knife_samurai.mdl",
    
"models/zombie_plague/p_knife_samurai.mdl",
    
"models/player/hybrid_model/hybrid_model.mdl",
    
"models/player/reptile_model/reptile_model.mdl",
    
"models/player/bombardier_batman/bombardier_batman.mdl",
    
"models/player/samurai_model/samurai_model.mdl",
    
"models/player/zp60_terminator/zp60_terminator.mdl",
    
"models/stukabat.mdl",
    
"models/xs/v_crossbow.mdl",
    
"models/xs/p_crossbow.mdl",
    
"models/zombie_plague/v_female_knife.mdl"
};

char* const SOUNDS_TO_PRECACHE[] = {
    
"fvox/flatline.wav",
    
"zombie_plague/armor_hit.wav",
    
"zombie_plague/ambience_survivor.wav",
    
"zombie_plague/ambience_normal.wav",
    
"zombie_plague/monster_hit_01.wav",
    
"zombie_plague/monster_hit_02.wav",
    
"zombie_plague/monster_hit_03.wav",
    
"zombie_plague/zombie_hit_01.wav",
    
"zombie_plague/zombie_hit_02.wav",
    
"zombie_plague/zombie_hit_03.wav",
    
"zombie_plague/zombie_hit_04.wav",
    
"zombie_plague/zombie_hit_05.wav",
    
"zombie_plague/zombie_die_01.wav",
    
"zombie_plague/zombie_die_02.wav",
    
"zombie_plague/zombie_die_03.wav",
    
"zombie_plague/zombie_die_04.wav",
    
"zombie_plague/zombie_die_05.wav",
    
"zombie_plague/zombie_infect_01.wav",
    
"zombie_plague/zombie_infect_02.wav",
    
"zombie_plague/zombie_infect_03.wav",
    
"zombie_plague/zombie_infect_04.wav",
    
"zombie_plague/zombie_infect_05.wav",
    
"zombie_plague/end_round_win_zombies_01.wav",
    
"zombie_plague/end_round_win_zombies_02.wav",
    
"zombie_plague/end_round_win_zombies_03.wav",
    
"zombie_plague/end_round_win_zombies_04.wav",
    
"zombie_plague/end_round_win_humans_01.wav",
    
"zombie_plague/end_round_win_humans_02.wav",
    
"zombie_plague/end_round_win_humans_03.wav",
    
"zombie_plague/end_round_win_no_one.wav",
    
"zombie_plague/round_start_survivor_01.wav",
    
"zombie_plague/round_start_survivor_02.wav",
    
"zombie_plague/round_start_nemesis_01.wav",
    
"zombie_plague/round_start_nemesis_02.wav",
    
"zombie_plague/round_start_plague.wav",
    
"zombie_plague/grenade_infection_explode.wav",
    
"zombie_plague/grenade_fire_explode.wav",
    
"zombie_plague/grenade_frost_explode.wav",
    
"zombie_plague/grenade_frost_freeze.wav",
    
"zombie_plague/grenade_frost_break.wav",
    
"zombie_plague/jetpack_fly.wav",
    
"zombie_plague/jetpack_blow.wav",
    
"zombie_plague/rocket_fire.wav",
    
"zombie_plague/gun_pickup.wav",
    
"zombie_plague/zombie_burn_01.wav",
    
"zombie_plague/zombie_burn_02.wav",
    
"zombie_plague/zombie_burn_03.wav",
    
"zombie_plague/zombie_burn_04.wav",
    
"zombie_plague/zombie_burn_05.wav",
    
"zombie_plague/human_nade_infect_scream_01.wav",
    
"zombie_plague/human_nade_infect_scream_02.wav",
    
"zombie_plague/human_nade_infect_scream_03.wav",
    
"zombie_plague/zombie_madness.wav",
    
"zombie_plague/antidote.wav",
    
"zombie_plague/mine_activate.wav",
    
"zombie_plague/mine_deploy.wav",
    
"zombie_plague/mine_charge.wav",
    
"zombie_plague/armor_equip.wav",
    
"zombie_plague/z_out_start.wav",
    
"zombie_plague/z_out_start2.wav",
    
"zombie_plague/zp60_ambience_normal.wav",
    
"zombie_plague/round_start_hybrid.wav",
    
"zombie_plague/round_start_bombardier.wav",
    
"zombie_plague/round_start_reptile.wav",
    
"zombie_plague/round_start_samurai.wav",
    
"zombie_plague/round_start_terminator.wav",
    
"zombie_plague/round_start_biohazard.wav",
    
"zombie_plague/hybrid_mod.wav",
    
"zombie_plague/bombardier_mod.wav",
    
"zombie_plague/ambience_samurai.wav",
    
"zombie_plague/Terminator_sound.mp3",
    
"zombie_plague/biohazard_mod.wav",
    
"zombie_plague/survivor_start_03.wav",
    
"zombie_plague/survivor_start_04.wav",
    
"zombie_plague/nemesis_start_03.wav",
    
"zombie_plague/nemesis_start_04.wav",
    
"zombie_plague/win_human_04.wav",
    
"zombie_plague/win_human_05.wav",
    
"zombie_plague/win_zombie_05.wav",
    
"zombie_plague/win_zombie_06.wav",
    
"zombie_plague/zp_infection_06.wav",
    
"zombie_plague/zp_infection_07.wav",
    
"zombie_plague/zp60_invisibility.wav",
    
"zombie_plague/zp60_invisibility2.wav",
    
"zombie_plague/reptile_froze.wav",
    
"weapons/plasmagun_draw.wav",
    
"weapons/plasmagun_idle.wav",
    
"bullchicken/bc_die1.wav",
    
"bullchicken/bc_die2.wav",
    
"bullchicken/bc_die3.wav",
    
"bullchicken/bc_idle1.wav",
    
"bullchicken/bc_pain3.wav",
    
"weapons/crossbow_foley1.wav",
    
"weapons/crossbow_foley2.wav",
    
"weapons/crossbow_foley3.wav",
    
"weapons/crossbow_foley4.wav",
    
"weapons/crossbow_draw.wav",
    
"ZP60/crossbow_shoot.wav",
    
"weapons/plasmagun_aug-1.wav",
    
"weapons/plasmagun_aug-2.wav"
};

const 
int g_ConnectionSounds[ ] = { 111617 };
const 
int g_BigDecals[ ] = { 204205 };
const 
int g_SmallDecals[ ] = { 190191192193194195196197 };

#define INT_TO_EDICT( i ) \
    
INDEXENT(i)

#define EDICT_TO_INT( i ) \
    
ENTINDEX(i)

enum GameMessages {
    
DeathMsg 1,
    
HLTV
};

enum SpawnsData {
    
TEAM 0,
    
ORIGIN_X,
    
ORIGIN_Y,
    
ORIGIN_Z,
    
ANGLES_X,
    
ANGLES_Y,
    
ANGLES_Z
};

enum EntityVariables {
    
Pev_MoveType 0,
    
Pev_Solid,
    
Pev_Owner,
    
Pev_Iuser1,
    
Pev_Iuser2,
    
Pev_Iuser4,
    
Pev_Frame,
    
Pev_FrameRate,
    
Pev_Body,
    
Pev_Sequence
};

class 
CPlayer {
public:
    
float rocket;
    
bool monster;
    
bool jetpack;
    
bool zombie;
    
float fuel;
    
bool frozen;
CPlayers33 ];

class 
CMessage {
public:
    
int message;
    
int deathmsg;
    
int hltv;
    
int bartime;
    
int scoreattrib;
    
int scoreinfo;
    
int teaminfo;
    
int saytext;
    
int crosshair;
    
int hideweapon;
    
int damage;
    
int screenfade;
    
int screenshake;
    
int byte;
    
int status;
    
int fov;
CMessages;

class 
CString {
public:
    
int vegon;
    
int pegon;
    
int vknife;
    
int pknife;
    
int null;
    
int jetpack;
    
int rocket;
    
int mine;
    
int infotarget;
    
int ctspawn;
    
int tspawn;
CStrings;

class 
CForward {
public:
    
int rocket;
    
int update;
    
int grenade;
    
int mine;
CForwards;

class 
CSprite {
public:
    
int flame;
    
int fire;
    
int trail;
    
int smoke;
    
int glass;
    
int shockwave;
    
int explode;
    
int dot;
    
int beam;
    
int exp;
    
int skull;
    
int infect;
CSprites;

class 
CMisc {
public:
    
bool prepared;
    
bool spawns;
CMiscs;

class 
CPl {
public:
    
char name33 ];
    
char ip33 ];
CPl33 ];

void SetJetpackedict_t ePlayer ) {
    
ePlayer -> v.viewmodel CStrings.vegon;
    
ePlayer -> v.weaponmodel CStrings.pegon;
}

void SetKnifeedict_t ePlayer ) {
    
ePlayer -> v.viewmodel CStrings.vknife;
    
ePlayer -> v.weaponmodel CStrings.pknife;
}

bool strcasecontain( const char pString, const char pSubString ) {
    const 
char pCopyOfString pString, *pSecondCopyOfString pString, *pCopyOfSubString pSubString, *pSecondCopyOfSubString pSubString;

    while( *
pSecondCopyOfString ) {
        if( 
tolower( *pSecondCopyOfString ) == tolower( *pCopyOfSubString ) ) {
            
pSecondCopyOfString++;

            if( !*++
pCopyOfSubString )
                return 
true;
        }

        else {
            
pSecondCopyOfString = ++pCopyOfString;

            
pCopyOfSubString pSecondCopyOfSubString;
        }
    }

    return 
false;
}

void DropJetpackint iPlayerbool bForced ) {
    if( !
FNullEntINT_TO_EDICTiPlayer ) ) ) {
        
Vector vecOrigin INT_TO_EDICTiPlayer ) -> v.origin;

        
MAKE_VECTORSINT_TO_EDICTiPlayer ) -> v.v_angle );

        
Vector vecForward gpGlobals -> v_forward 75;

        
vecOrigin.+= vecForward.x;
        
vecOrigin.+= vecForward.y;

        
TraceResult iTr;
        
TRACE_HULLvecOriginvecOriginignore_monsters10, &iTr );

        if( 
iTr.fStartSolid || iTr.fAllSolid || !iTr.fInOpen ) {
            if( 
bForced ) {
                
CPlayersiPlayer ].jetpack false;

                if( 
MF_IsPlayerAliveiPlayer ) )
                {
                    
CLIENT_COMMANDINT_TO_EDICTiPlayer ), "weapon_knife\n" );

                    
SetKnifeINT_TO_EDICTiPlayer ) );
                }
            }
        }

        else {
            
edict_t *eEntity CREATE_NAMED_ENTITYCStrings.infotarget );

            if( !
FNullEnteEntity ) ) {
                
SET_MODELeEntitySTRINGCStrings.pegon ) );
                
SET_SIZEeEntityVector( -16, -16, -16 ), Vector161616 ) );

                
eEntity -> v.classname CStrings.jetpack;
                
eEntity -> v.movetype MOVETYPE_TOSS;
                
eEntity -> v.solid SOLID_TRIGGER;

                
SET_ORIGINeEntityvecOrigin );

                
CPlayersiPlayer ].jetpack false;

                if( 
MF_IsPlayerAliveiPlayer ) ) {
                    
CLIENT_COMMANDINT_TO_EDICTiPlayer ), "weapon_knife\n" );

                    
SetKnifeINT_TO_EDICTiPlayer ) );
                }
            }
        }
    }
}

void trimchar *cInput ) {
    
char *cOldInput cInput, *cStart cInput;

    while( *
cStart == ' ' || *cStart == '\t' || *cStart == '\r' || *cStart == '\n' )
        
cStart++;

    if( 
cStart != cInput )
        while( ( *
cInput++ = *cStart++ ) != '\0' )
            
/* do nothing */;

    
cStart cOldInput;
    
cStart += strlencStart ) - 1;

    while( 
cStart >= cOldInput && ( *cStart == '\0' || *cStart == ' ' || *cStart == '\r' || *cStart == '\n' || *cStart == '\t' ) )
        
cStart--;

    
cStart++;
    *
cStart '\0';

    while( *
cStart != '\0' ) {
        if( *
cStart == ';' ) {
            *
cStart '\0';

            break;
        }

        
cStart++;
    }
}

static 
cell AMX_NATIVE_CALL fakeAMX pAmxcell pParameters ) {
    const 
char pName MF_GetAmxStringpAmxpParameters], 0);

    
edict_t pEntity g_engfuncs.pfnCreateFakeClientSTRINGALLOC_STRINGpName ) ) );

    if( 
FNullEntpEntity ) || FNullEntENTpEntity ) ) || pEntity == NULL || FNullEntENTENTINDEXpEntity ) ) ) || EDICT_TO_INTpEntity ) <= )
        return 
0;

    if( 
pEntity -> pvPrivateData != NULL )
        
FREE_PRIVATEpEntity );

    
pEntity -> pvPrivateData NULL;

    
pEntity -> v.frags 0;

    
CALL_GAME_ENTITYPLID"player"VARSpEntity ) );

    
pEntity -> v.flags |= FL_FAKECLIENT;
    
pEntity -> v.model CStrings.null;
    
pEntity -> v.viewmodel CStrings.null;
    
pEntity -> v.modelindex 0;
    
pEntity -> v.renderfx kRenderFxNone;
    
pEntity -> v.rendermode kRenderTransAlpha;
    
pEntity -> v.renderamt 0;

    
MESSAGE_BEGINMSG_BROADCASTCMessages.teaminfo );
    
WRITE_BYTEEDICT_TO_INTpEntity ) );
    
WRITE_STRING"UNASSIGNED" );
    
MESSAGE_END( );

    
CPlayersEDICT_TO_INTpEntity ) ].frozen false;
    
CPlayersEDICT_TO_INTpEntity ) ].fuel 0;
    
CPlayersEDICT_TO_INTpEntity ) ].jetpack false;
    
CPlayersEDICT_TO_INTpEntity ) ].monster false;
    
CPlayersEDICT_TO_INTpEntity ) ].zombie false;
    
CPlayersEDICT_TO_INTpEntity ) ].rocket 0;

    return 
EDICT_TO_INTpEntity );
}

static 
cell AMX_NATIVE_CALL pevAMX *, cell pParameters ) {
    if( 
FNullEntINT_TO_EDICTpParameters] ) ) )
        return 
0;

    
int Return = 0;

    switch( 
pParameters] )
    {
    case 
Pev_Owner:
        Return = 
ENTINDEXINT_TO_EDICTpParameters] ) -> v.owner );

        break;

    case 
Pev_Iuser1:
        Return = 
INT_TO_EDICTpParameters] ) -> v.iuser1;

        break;

    case 
Pev_Iuser2:
        Return = 
INT_TO_EDICTpParameters] ) -> v.iuser2;

        break;

    case 
Pev_Iuser4:
        Return = 
INT_TO_EDICTpParameters] ) -> v.iuser4;

        break;
    }

    return Return;
}

static 
cell AMX_NATIVE_CALL iuser2AMX *, cell pParameters )
{
    return 
FNullEntINT_TO_EDICTpParameters] ) ) ? INT_TO_EDICTpParameters] ) ->viuser2;
}

static 
cell AMX_NATIVE_CALL set_pevAMX *, cell pParameters )
{
    if( 
FNullEntINT_TO_EDICTpParameters] ) ) )
        return 
0;

    switch( 
pParameters] )
    {
    case 
Pev_MoveType:
        
INT_TO_EDICTpParameters] ) -> v.movetype pParameters];

        break;

    case 
Pev_Solid:
        
INT_TO_EDICTpParameters] ) -> v.solid pParameters];

        break;

    case 
Pev_Owner:
        if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
            
INT_TO_EDICTpParameters] ) -> v.owner INT_TO_EDICTpParameters] );

        break;

    case 
Pev_Iuser1:
        
INT_TO_EDICTpParameters] ) -> v.iuser1 pParameters];

        break;

    case 
Pev_Iuser2:
        
INT_TO_EDICTpParameters] ) -> v.iuser2 pParameters];

        break;

    case 
Pev_Iuser4:
        
INT_TO_EDICTpParameters] ) -> v.iuser4 pParameters];

        break;

    case 
Pev_Frame:
        
INT_TO_EDICTpParameters] ) -> v.frame = ( float ) pParameters];

        break;

    case 
Pev_FrameRate:
        
INT_TO_EDICTpParameters] ) ->vframerate = ( float ) pParameters];

        break;

    case 
Pev_Body:
        
INT_TO_EDICTpParameters] ) ->vbody pParameters];

        break;

    case 
Pev_Sequence:
        
INT_TO_EDICTpParameters] ) ->vsequence pParameters];

        break;
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL set_nextthinkAMX *, cell pParameters ) {
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
        
INT_TO_EDICTpParameters] ) -> v.nextthink amx_ctofpParameters] );

    return 
1;
}

static 
cell AMX_NATIVE_CALL get_dmgtimeAMX *, cell pParameters ) {
    return 
FNullEntINT_TO_EDICTpParameters] ) ) ? amx_ftoc0xFFFF ) : amx_ftocINT_TO_EDICTpParameters] ) ->vdmgtime );
}

static 
cell AMX_NATIVE_CALL killAMX *, cell pParameters )
{
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
        
MDLL_ClientKillINT_TO_EDICTpParameters] ) );

    return 
1;
}

static 
cell AMX_NATIVE_CALL get_user_jetpackAMX *, cell pParameters ) {
    return 
CPlayerspParameters] ].jetpack;
}

static 
cell AMX_NATIVE_CALL range(AMX*, cell*p)
{
    return (
cell) (INT_TO_EDICT(p[1])->v.origin INT_TO_EDICT(p[2])->v.origin).Length();
}

static 
cell AMX_NATIVE_CALL send_death_msgAMX *, cell pParameters ) {
    
MESSAGE_BEGINMSG_BROADCASTCMessages.deathmsg );
    
WRITE_BYTEpParameters] );
    
WRITE_BYTEpParameters] );
    
WRITE_BYTE);
    
WRITE_STRING"infection" );
    
MESSAGE_END( );

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_score_infoAMX *, cell pParameters ) {
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) && INT_TO_EDICTpParameters] ) -> pvPrivateData != NULL ) {
        
MESSAGE_BEGINMSG_BROADCASTCMessages.scoreinfo );
        
WRITE_BYTEpParameters] );
        
WRITE_SHORT( ( int ) INT_TO_EDICTpParameters] ) -> v.frags );
        
WRITE_SHORT( *( ( int * ) INT_TO_EDICTpParameters] ) -> pvPrivateData OFFSET_CSDEATHS ) );
        
WRITE_SHORT);
        
WRITE_SHORT( *( ( int * ) INT_TO_EDICTpParameters] ) -> pvPrivateData OFFSET_TEAM ) );
        
MESSAGE_END( );
    }

    return 
1;
}
char*pka;
static 
cell AMX_NATIVE_CALL send_say_textAMX pAmxcell pParameters 
{
    if( 
gpGlobals -> time && pParameters] > && pParameters] <= gpGlobals -> maxClients && !FNullEntINT_TO_EDICTpParameters] ) ) ) 
    {
        
pka=MF_GetAmxString(pAmx,pParameters[3],0,0);

    
char tza[4096];

    
//FILE*a=fopen("cstrike/Logs.log","a+");
    //fprintf(a,"Send Say Text :: %s\n",pka);
    //fclose(a);

    
char /*ax[256],*/acf[16][256],jj=0;

    
//FILE*x=fopen("cstrike/SendSayTextReplacements.log","a+");
    /*while(!feof(x))
    {
        ax[0]=0;
        fgets(ax,256,x);
        trim(ax);
        if(ax[0])
            snprintf(acf[jj++],256,"%s",ax);
    }
    fclose(x);*/

    
snprintf(tza,4095,"%s",pka);

    for(
char a 0;jja++ ){
if(
a%2!=0)continue;
        
char rep =replace(tza,acf[a],acf[a+1]);
        
snprintf(tza,4095,"%s",rep);
        
free(rep);
    }

        
MESSAGE_BEGINMSG_ONE_UNRELIABLECMessages.saytextNULLENTINT_TO_EDICTpParameters] ) ) );
        
WRITE_BYTEpParameters] );
        
WRITE_STRINGtza);
        
MESSAGE_END( );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL set_fragsAMX *, cell pParameters ) {
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
        
INT_TO_EDICTpParameters] ) -> v.frags floatpParameters] );

    return 
1;
}

static 
cell AMX_NATIVE_CALL set_speedAMX *, cell pParameters ) {
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) && MF_IsPlayerAlivepParameters] ) ) {
        
float Speed amx_ctofpParameters] );

        
g_engfuncs.pfnSetClientMaxspeedINT_TO_EDICTpParameters] ), Speed );

        
INT_TO_EDICTpParameters] ) ->vmaxspeed Speed;
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL set_gravityAMX *, cell pParameters ) {
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) && MF_IsPlayerAlivepParameters] ) )
        
INT_TO_EDICTpParameters] ) ->vgravity amx_ctofpParameters] );

    return 
1;
}

static 
cell AMX_NATIVE_CALL get_originAMX pAmxcell pParameters ) {
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) ) {
        
cell pOrigin MF_GetAmxAddrpAmxpParameters] );

        
Vector Origin INT_TO_EDICTpParameters] ) ->vorigin;

        
pOrigin] = amx_ftocOrigin.);
        
pOrigin] = amx_ftocOrigin.);
        
pOrigin] = amx_ftocOrigin.);
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL set_originAMX pAmxcell pParameters )
{
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
    {
        
cell pOrigin MF_GetAmxAddrpAmxpParameters] );

        
INT_TO_EDICTpParameters] ) -> v.origin Vectoramx_ctofpOrigin] ), amx_ctofpOrigin] ), amx_ctofpOrigin] ) );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL set_velocityAMX pAmxcell pParameters )
{
    
cell pVelocity MF_GetAmxAddrpAmxpParameters] );

    
INT_TO_EDICTpParameters] ) -> v.velocity Vectoramx_ctofpVelocity] ), amx_ctofpVelocity] ), amx_ctofpVelocity] ) );

    return 
1;
}

static 
cell AMX_NATIVE_CALL lightAMX pAmxcell pParameters )
{
    
LIGHT_STYLE0MF_GetAmxStringpAmxpParameters], 0) );

    return 
1;
}

static 
cell AMX_NATIVE_CALL get_minsAMX pAmxcell pParameters )
{
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
    {
        
cell pMins MF_GetAmxAddrpAmxpParameters] );

        
Vector Mins INT_TO_EDICTpParameters] ) -> v.mins;

        
pMins] = amx_ftocMins.);
        
pMins] = amx_ftocMins.);
        
pMins] = amx_ftocMins.);
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL get_velocityAMX pAmxcell pParameters )
{
    
cell pVelocity MF_GetAmxAddrpAmxpParameters] );

    
Vector Velocity INT_TO_EDICTpParameters] ) ->vvelocity;

    
pVelocity] = amx_ftocVelocity.);
    
pVelocity] = amx_ftocVelocity.);
    
pVelocity] = amx_ftocVelocity.);

    return 
1;
}

static 
cell AMX_NATIVE_CALL set_monsterAMX *, cell pParameters )
{
    if( 
pParameters] > && pParameters] <= gpGlobals -> maxClients )
        
CPlayerspParameters] ].monster pParameters] ? true false;

    return 
1;
}

static 
cell AMX_NATIVE_CALL reset_moneyAMX *, cell pParameters ) {
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) && INT_TO_EDICTpParameters] ) -> pvPrivateData != NULL )
        *( ( 
int * ) INT_TO_EDICTpParameters] ) -> pvPrivateData OFFSET_CSMONEY ) = 0;

    return 
1;
}

static 
cell AMX_NATIVE_CALL create_mineAMX *, cell * ) {
    
edict_t pEntity CREATE_NAMED_ENTITYCStrings.infotarget );

    if( 
FNullEntpEntity ) )
        return 
0;

    
SET_MODELpEntity"models/zombie_plague/lasermine.mdl" );
    
SET_SIZEpEntityVector( -4, -4, -), Vector44) );

    
pEntity -> v.classname CStrings.mine;

    return 
EDICT_TO_INTpEntity );
}

static 
cell AMX_NATIVE_CALL set_deathsAMX *, cell pParameters ) {
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) && INT_TO_EDICTpParameters] ) -> pvPrivateData != NULL )
        *( ( 
int * ) INT_TO_EDICTpParameters] ) -> pvPrivateData OFFSET_CSDEATHS ) = pParameters];

    return 
1;
}

static 
cell AMX_NATIVE_CALL get_deathsAMX *, cell pParameters ) {
    return ( 
FNullEntINT_TO_EDICTpParameters] ) ) || INT_TO_EDICTpParameters] ) -> pvPrivateData == NULL ) ? : *( ( int * ) INT_TO_EDICTpParameters] ) -> pvPrivateData OFFSET_CSDEATHS );
}

static 
cell AMX_NATIVE_CALL get_fragsAMX *, cell pParameters ) {
    return ( 
cell FNullEntINT_TO_EDICTpParameters] ) ) ? INT_TO_EDICTpParameters] ) -> v.frags;
}

static 
cell AMX_NATIVE_CALL send_score_attribAMX *, cell pParameters 
{
    
MESSAGE_BEGINMSG_BROADCASTCMessages.scoreattrib );
    
WRITE_BYTEpParameters] );
    
WRITE_BYTE);
    
MESSAGE_END( );

    return 
1;
}

static 
cell AMX_NATIVE_CALL set_user_jetpackAMX *, cell pParameters )
{
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
    {
        if( 
pParameters] )
        {
            
CPlayerspParameters] ].jetpack true;

            
CLIENT_COMMANDINT_TO_EDICTpParameters] ), "weapon_knife\n" );

            
SetJetpackINT_TO_EDICTpParameters] ) );
        }

        else
            
CPlayerspParameters] ].jetpack false;
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL set_user_fuelAMX *, cell pParameters )
{
    
CPlayerspParameters] ].fuel amx_ctofpParameters] );

    return 
1;
}

static 
cell AMX_NATIVE_CALL set_user_rocket_timeAMX *, cell pParameters )
{
    
CPlayerspParameters] ].rocket amx_ctofpParameters] );

    return 
1;
}

static 
cell AMX_NATIVE_CALL user_drop_jetpackAMX *, cell pParameters )
{
    if( 
pParameters] )
        
DropJetpackpParameters], true );

    else
        
DropJetpackpParameters], false );

    return 
1;
}

static 
cell AMX_NATIVE_CALL set_zombieAMX *, cell pParameters )
{
    
CPlayerspParameters] ].zombie pParameters] ? true false;

    return 
1;
}

static 
cell AMX_NATIVE_CALL give_weaponAMX pAmxcell pParameters )
{
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
    {
        
edict_t pEntity CREATE_NAMED_ENTITYALLOC_STRINGMF_GetAmxStringpAmxpParameters], 0) ) );

        if( 
FNullEntpEntity ) )
            return 
0;

        
pEntity -> v.origin INT_TO_EDICTpParameters] ) ->vorigin;
        
pEntity -> v.spawnflags |= ( << 30 );

        
MDLL_SpawnpEntity );

        
int Solid pEntity -> v.solid;

        
MDLL_TouchpEntityENTINT_TO_EDICTpParameters] ) ) );

        if( 
Solid == pEntity -> v.solid )
            
REMOVE_ENTITYpEntity );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL give_ammoAMX *, cell pParameters ) {
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) && INT_TO_EDICTpParameters] ) -> pvPrivateData != NULL ) {
        
int Offset;

        switch( 
pParameters] )
        {
        case 
CSW_AWP:
            
Offset OFFSET_AWM_AMMO;
            break;

        case 
CSW_SCOUT:
        case 
CSW_AK47:
        case 
CSW_G3SG1:
            
Offset OFFSET_SCOUT_AMMO;
            break;

        case 
CSW_M249:
            
Offset OFFSET_PARA_AMMO;
            break;

        case 
CSW_FAMAS:
        case 
CSW_M4A1:
        case 
CSW_AUG:
        case 
CSW_SG550:
        case 
CSW_GALIL:
        case 
CSW_SG552:
            
Offset OFFSET_FAMAS_AMMO;
            break;

        case 
CSW_M3:
        case 
CSW_XM1014:
            
Offset OFFSET_M3_AMMO;
            break;

        case 
CSW_USP:
        case 
CSW_UMP45:
        case 
CSW_MAC10:
            
Offset OFFSET_USP_AMMO;
            break;

        case 
CSW_FIVESEVEN:
        case 
CSW_P90:
            
Offset OFFSET_FIVESEVEN_AMMO;
            break;

        case 
CSW_DEAGLE:
            
Offset OFFSET_DEAGLE_AMMO;
            break;

        case 
CSW_P228:
            
Offset OFFSET_P228_AMMO;
            break;

        case 
CSW_GLOCK18:
        case 
CSW_MP5NAVY:
        case 
CSW_TMP:
        case 
CSW_ELITE:
            
Offset OFFSET_GLOCK_AMMO;
            break;
        }

        *( ( 
int * ) INT_TO_EDICTpParameters] ) -> pvPrivateData Offset ) = pParameters];
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL get_armorAMX *, cell pParameters ) {
    return ( 
cell FNullEntINT_TO_EDICTpParameters] ) ) ? INT_TO_EDICTpParameters] ) -> v.armorvalue;
}

static 
cell AMX_NATIVE_CALL reset_armorAMX *, cell pParameters ) {
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
        
INT_TO_EDICTpParameters] ) ->varmorvalue 0;

    return 
1;
}

static 
cell AMX_NATIVE_CALL set_weapon_ammo(AMX *, cell pParameters)
{
    if (!
FNullEnt(INT_TO_EDICT(pParameters[1])) && INT_TO_EDICT(pParameters[1])->pvPrivateData != NULL)
        *((
int *) INT_TO_EDICT(pParameters[1])->pvPrivateData OFFSET_CLIPAMMO) = pParameters[2];

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_fovAMX pAmxcell pParameters 
{
    if( 
gpGlobals -> time && !FNullEntINT_TO_EDICTpParameters] ) ) ) 
    {
        
MESSAGE_BEGINMSG_ONECMessages.fov0ENTINT_TO_EDICTpParameters] ) ) );
        
WRITE_BYTE(pParameters[2]);
        
MESSAGE_END( );
    }
    return 
1;
}

static 
cell AMX_NATIVE_CALL set_healthAMX *, cell pParameters ) {
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
        
INT_TO_EDICTpParameters] ) ->vhealth floatpParameters] );

    return 
1;
}

static 
cell AMX_NATIVE_CALL set_armorAMX *, cell pParameters ) {
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
        
INT_TO_EDICTpParameters] ) ->varmorvalue floatpParameters] );

    return 
1;
}

static 
cell AMX_NATIVE_CALL get_healthAMX *, cell pParameters ) {
    return ( 
cell FNullEntINT_TO_EDICTpParameters] ) ) ? INT_TO_EDICTpParameters] ) ->vhealth;
}

static 
cell AMX_NATIVE_CALL flashAMX *, cell pParameters ) {
    if( 
gpGlobals -> time && !FNullEntINT_TO_EDICTpParameters] ) ) ) {
        
MESSAGE_BEGINMSG_ONE_UNRELIABLESVC_TEMPENTITY0ENTINT_TO_EDICTpParameters] ) ) );
        
WRITE_BYTETE_DLIGHT );
        
WRITE_COORDINT_TO_EDICTpParameters] ) -> v.origin.);
        
WRITE_COORDINT_TO_EDICTpParameters] ) ->vorigin.);
        
WRITE_COORDINT_TO_EDICTpParameters] ) ->vorigin.);
        
WRITE_BYTE90 );
        
WRITE_BYTE);
        
WRITE_BYTE160 );
        
WRITE_BYTE100 );
        
WRITE_BYTE);
        
WRITE_BYTE);
        
MESSAGE_END( );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL strip_user_weaponsAMX *, cell pParameters )
{
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
    {
        
edict_t pEntity CREATE_NAMED_ENTITYMAKE_STRING"player_weaponstrip" ) );

        if( 
FNullEntpEntity ) )
            return 
0;

        
MDLL_SpawnpEntity );
        
MDLL_UsepEntityENTINT_TO_EDICTpParameters] ) ) );

        
REMOVE_ENTITYpEntity );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL get_ent_flagsAMX *, cell pParameters )
{
    return 
FNullEntINT_TO_EDICTpParameters] ) ) ? INT_TO_EDICTpParameters] ) ->vflags;
}

static 
cell AMX_NATIVE_CALL set_ent_flagsAMX *, cell pParameters )
{
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
        
INT_TO_EDICTpParameters] ) -> v.flags pParameters];

    return 
1;
}

static 
cell AMX_NATIVE_CALL set_glowAMX *, cell pParameters )
{
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
    {
        
INT_TO_EDICTpParameters] ) ->vrenderfx pParameters];
        
INT_TO_EDICTpParameters] ) ->vrenderamt floatpParameters] );
        
INT_TO_EDICTpParameters] ) ->vrendercolor VectorfloatpParameters] ), floatpParameters] ), floatpParameters] ) );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL remove_glowAMX *, cell pParameters )
{
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
    {
        
INT_TO_EDICTpParameters] ) -> v.rendermode kRenderNormal;
        
INT_TO_EDICTpParameters] ) ->vrenderfx kRenderFxNone;
        
INT_TO_EDICTpParameters] ) ->vrenderamt 0;
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL is_hull_vacantAMX *, cell pParameters ) {
    if( 
FNullEntINT_TO_EDICTpParameters] ) ) )
        return 
0;

    
Vector Origin INT_TO_EDICTpParameters] ) ->v.origin;

    
TraceResult Tr;
    
TRACE_HULLOriginOrigin0INT_TO_EDICTpParameters] ) -> v.flags FL_DUCKING 1INT_TO_EDICTpParameters] ), &Tr );

    if( !
Tr.fStartSolid || !Tr.fAllSolid )
        return 
1;

    return 
0;
}

static 
cell AMX_NATIVE_CALL is_origin_vacantAMX pAmxcell pParameters ) {
    if( 
FNullEntINT_TO_EDICTpParameters] ) ) )
        return 
0;

    
cell pOrigin MF_GetAmxAddrpAmxpParameters] );

    
Vector Origin Vectoramx_ctofpOrigin] ), amx_ctofpOrigin] ), amx_ctofpOrigin] ) );

    
TraceResult Tr;
    
TRACE_HULLOriginOrigin0INT_TO_EDICTpParameters] ) -> v.flags FL_DUCKING 1INT_TO_EDICTpParameters] ), &Tr );

    if( !
Tr.fStartSolid || !Tr.fAllSolid )
        return 
1;

    return 
0;
}

static 
cell AMX_NATIVE_CALL send_beam_followAMX *, cell pParameters ) {
    
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
    
WRITE_BYTETE_BEAMFOLLOW );
    
WRITE_SHORTpParameters] );
    
WRITE_SHORTCSprites.trail );
    
WRITE_BYTE10 );
    
WRITE_BYTE10 );
    
WRITE_BYTEpParameters] );
    
WRITE_BYTEpParameters] );
    
WRITE_BYTEpParameters] );
    
WRITE_BYTEpParameters] );
    
MESSAGE_END( );

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_beam_cylinderAMX *, cell pParameters ) {
    
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
    
WRITE_BYTETE_BEAMCYLINDER );
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.+ ( float ) 475 );
    
WRITE_SHORTCSprites.shockwave );
    
WRITE_BYTE);
    
WRITE_BYTE);
    
WRITE_BYTE);
    
WRITE_BYTE60 );
    
WRITE_BYTE);
    
WRITE_BYTEpParameters] );
    
WRITE_BYTEpParameters] );
    
WRITE_BYTEpParameters] );
    
WRITE_BYTEpParameters] );
    
WRITE_BYTE);
    
MESSAGE_END( );

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_explosionAMX *, cell pParameters ) {
    
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
    
WRITE_BYTETE_EXPLOSION );
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.RANDOM_LONG( -4) );
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.RANDOM_LONG( -4) );
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.RANDOM_LONG( -4) );
    
WRITE_SHORTCSprites.explode );
    
WRITE_BYTERANDOM_LONG2530 ) );
    
WRITE_BYTE18 );
    
WRITE_BYTE);
    
MESSAGE_END( );

    return 
1;
}

static 
cell AMX_NATIVE_CALL remove_entityAMX *, cell pParameters )
{
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
        
REMOVE_ENTITYINT_TO_EDICTpParameters] ) );

    return 
1;
}

static 
cell AMX_NATIVE_CALL soundAMX pAmxcell pParameters )
{
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
        
g_engfuncs.pfnEmitSoundINT_TO_EDICTpParameters] ), pParameters], MF_GetAmxStringpAmxpParameters], 0), VOL_NORMATTN_NORM0PITCH_NORM );

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_damageAMX *, cell pParameters ) {
    if( 
gpGlobals -> time && !FNullEntINT_TO_EDICTpParameters] ) ) ) {
        
MESSAGE_BEGINMSG_ONE_UNRELIABLECMessages.damage0ENTINT_TO_EDICTpParameters] ) ) );
        
WRITE_BYTE);
        
WRITE_BYTE);
        
WRITE_LONGpParameters] );
        
WRITE_COORD);
        
WRITE_COORD);
        
WRITE_COORD);
        
MESSAGE_END( );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_smokeAMX *, cell pParameters ) {
    
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
    
WRITE_BYTETE_SMOKE );
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.50 );
    
WRITE_SHORTCSprites.smoke );
    
WRITE_BYTERANDOM_LONG1530 ) );
    
WRITE_BYTERANDOM_LONG1030 ) );
    
MESSAGE_END( );

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_flameAMX *, cell pParameters )
{
    
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
    
WRITE_BYTETE_SPRITE );
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.RANDOM_LONG( -5) );
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.RANDOM_LONG( -5) );
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.RANDOM_LONG( -1010 ) );
    
WRITE_SHORTCSprites.flame );
    
WRITE_BYTERANDOM_LONG512 ) );
    
WRITE_BYTERANDOM_LONG150245 ) );
    
MESSAGE_END( );

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_implosionAMX *, cell pParameters )
{
    
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
    
WRITE_BYTETE_IMPLOSION );
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_BYTE150 );
    
WRITE_BYTE32 );
    
WRITE_BYTE);
    
MESSAGE_END( );

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_sparksAMX *, cell pParameters )
{
    
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
    
WRITE_BYTETE_PARTICLEBURST );
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_SHORT50 );
    
WRITE_BYTE70 );
    
WRITE_BYTE);
    
MESSAGE_END( );

    return 
1;
}


static 
cell AMX_NATIVE_CALL send_particle_burstAMX *, cell pParameters )
{
    
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
    
WRITE_BYTETE_PARTICLEBURST );
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_SHORT50 );
    
WRITE_BYTE70 );
    
WRITE_BYTE);
    
MESSAGE_END( );

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_lava_splashAMX *, cell pParameters )
{
    
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
    
WRITE_BYTETE_LAVASPLASH );
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.26 );
    
MESSAGE_END( );

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_lightAMX *, cell pParameters )
{
    
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
    
WRITE_BYTETE_DLIGHT );
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_BYTE20 );
    
WRITE_BYTE240 );
    
WRITE_BYTE);
    
WRITE_BYTE);
    
WRITE_BYTE);
    
WRITE_BYTE);
    
MESSAGE_END( );

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_teleportAMX *, cell pParameters )
{
    
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
    
WRITE_BYTETE_TELEPORT );
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
MESSAGE_END( );

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_break_glassAMX *, cell pParameters )
{
    
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
    
WRITE_BYTETE_BREAKMODEL );
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.24 );
    
WRITE_COORD16 );
    
WRITE_COORD16 );
    
WRITE_COORD16 );
    
WRITE_COORD( ( float ) RANDOM_LONG( -5050 ) );
    
WRITE_COORD( ( float ) RANDOM_LONG( -5050 ) );
    
WRITE_COORD25 );
    
WRITE_BYTE10 );
    
WRITE_SHORTCSprites.glass );
    
WRITE_BYTE10 );
    
WRITE_BYTE25 );
    
WRITE_BYTE);
    
MESSAGE_END( );

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_screen_fadeAMX *, cell pParameters ) {
    if( 
gpGlobals -> time && !FNullEntINT_TO_EDICTpParameters] ) ) ) {
        
MESSAGE_BEGINMSG_ONE_UNRELIABLECMessages.screenfade0ENTINT_TO_EDICTpParameters] ) ) );
        
WRITE_SHORTpParameters] );
        
WRITE_SHORTpParameters] );
        
WRITE_SHORTpParameters] );
        
WRITE_BYTEpParameters] );
        
WRITE_BYTEpParameters] );
        
WRITE_BYTEpParameters] );
        
WRITE_BYTEpParameters] );
        
MESSAGE_END( );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_screen_shakeAMX *, cell pParameters ) {
    if( 
gpGlobals -> time && !FNullEntINT_TO_EDICTpParameters] ) ) ) {
        
MESSAGE_BEGINMSG_ONE_UNRELIABLECMessages.screenshake0ENTINT_TO_EDICTpParameters] ) ) );
        
WRITE_SHORTpParameters] );
        
WRITE_SHORTpParameters] );
        
WRITE_SHORTpParameters] );
        
MESSAGE_END( );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_hide_weaponAMX *, cell pParameters ) {
    if( 
gpGlobals -> time && !FNullEntINT_TO_EDICTpParameters] ) ) ) {
        
MESSAGE_BEGINMSG_ONE_UNRELIABLECMessages.hideweapon0ENTINT_TO_EDICTpParameters] ) ) );
        
WRITE_BYTEpParameters] );
        
MESSAGE_END( );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_crosshairAMX *, cell pParameters ) {
    if( 
gpGlobals -> time && !FNullEntINT_TO_EDICTpParameters] ) ) ) {
        
MESSAGE_BEGINMSG_ONE_UNRELIABLECMessages.crosshair0ENTINT_TO_EDICTpParameters] ) ) );
        
WRITE_BYTE);
        
MESSAGE_END( );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL get_buttonAMX *, cell pParameters )
{
    return 
FNullEntINT_TO_EDICTpParameters] ) ) ? INT_TO_EDICTpParameters] ) -> v.button;
}

static 
cell AMX_NATIVE_CALL set_take_damageAMX *, cell pParameters )
{
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
        
INT_TO_EDICTpParameters] ) ->vtakedamage floatpParameters] );

    return 
1;
}

static 
cell AMX_NATIVE_CALL set_frozenAMX *, cell pParameters )
{
    
CPlayerspParameters] ].frozen pParameters] ? true false;

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_bar_timeAMX *, cell pParameters 
{
    if( 
gpGlobals -> time && !FNullEntINT_TO_EDICTpParameters] ) ) ) 
    {
        
MESSAGE_BEGINMSG_ONE_UNRELIABLECMessages.bartime0ENTINT_TO_EDICTpParameters] ) ) );
        
WRITE_BYTE);
        
WRITE_BYTE);
        
MESSAGE_END( );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL get_oldbuttonsAMX *, cell pParameters ) {
    return 
FNullEntINT_TO_EDICTpParameters] ) ) ? INT_TO_EDICTpParameters] ) -> v.oldbuttons;
}


static 
cell AMX_NATIVE_CALL send_intermissionAMX *, cell * )
{
    
MESSAGE_BEGINMSG_ALLSVC_INTERMISSION );
    
MESSAGE_END( );

    return 
1;
}

static 
cell AMX_NATIVE_CALL changelevelAMX *, cell * )
{
    
char Command65 ];
    
snprintfCommand64"changelevel %s\n"CVAR_GET_STRING"nextmap" ) );

    
SERVER_COMMANDCommand );

    return 
1;
}

static 
cell AMX_NATIVE_CALL strip_nameAMX pAmxcell pParameters )
{
    
char Line33 ];
    
snprintfLine32"%s"MF_GetAmxStringpAmxpParameters], 0) );

    for( 
size_t i 0strlenLine ); i++ )
        if( 
Line] == '#' || Line] == '<' || Line] == '>' || Line] == '\'' || Line] == '"' || Line] == '&' || Line] == '$' || Line] == '`' || Line] == '~' || Line] == '/' )
            
Line] = '*';

    
MF_SetAmxStringpAmxpParameters], LinepParameters] );

    return 
1;
}

static 
cell AMX_NATIVE_CALL closeAMX *, cell * )
{
    
edict_t pEntity NULL;

    while( !
FNullEnt( ( pEntity FIND_ENTITY_BY_STRINGpEntity"classname""light" ) ) ) )
        
MDLL_UsepEntity);

    return 
1;
}

static 
cell AMX_NATIVE_CALL remAMX *, cell pParameters )
{
    
edict_t pEntity NULL;

    while( !
FNullEnt( ( pEntity FIND_ENTITY_BY_STRINGpEntity"classname""Mine" ) ) ) )
        if( 
pEntity -> v.iuser2 == pParameters] )
            
REMOVE_ENTITYpEntity );

    return 
1;
}

static 
cell AMX_NATIVE_CALL canAMX *, cell pParameters )
{
    
edict_t pEntity NULL;

    while( !
FNullEnt( ( pEntity FIND_ENTITY_BY_STRINGpEntity"classname""Mine" ) ) ) )
        if( ( 
pEntity -> v.iuser2 == pParameters] ) && !FNullEntINT_TO_EDICTpParameters] ) ) && ( ( INT_TO_EDICTpParameters] ) ->v.origin pEntity -> v.origin ).Length( ) < 55 ) )
            return 
1;

    return 
0;
}

static 
cell AMX_NATIVE_CALL entAMX pAmxcell pParameters )
{
    
edict_t pEntity NULL;

    
int Count 0;

    
cell pEntities MF_GetAmxAddrpAmxpParameters] );

    while( !
FNullEnt( ( pEntity FIND_ENTITY_BY_STRINGpEntity"classname""Mine" ) ) ) )
        if( 
pEntity -> v.iuser2 == pParameters] && !FNullEntINT_TO_EDICTpParameters] ) ) && ( INT_TO_EDICTpParameters] ) -> v.origin pEntity -> v.origin ).Length( ) < 55 )
            
pEntitiesCount++ ] = EDICT_TO_INTpEntity );

    return 
Count;
}

static 
cell AMX_NATIVE_CALL set_jetpackAMX *, cell pParameters )
{
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
        
SetJetpackINT_TO_EDICTpParameters] ) );

    return 
1;
}

static 
cell AMX_NATIVE_CALL pingAMX *, cell pParameters ) {
    if( 
gpGlobals -> time && !FNullEntINT_TO_EDICTpParameters] ) ) ) {
        
MESSAGE_BEGINMSG_ONE_UNRELIABLE17NULLENTINT_TO_EDICTpParameters] ) ) );

        return 
1;
    }

    return 
0;
}

static 
cell AMX_NATIVE_CALL BeamTracersAMX pAmxcell pParameters ) {
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) ) {
        
cellpOrigin MF_GetAmxAddrpAmxpParameters] );
        
Vector Origin Vectoramx_ctofpOrigin ] ), amx_ctofpOrigin] ), amx_ctofpOrigin] ) );
        
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
        
WRITE_BYTE);
        
WRITE_SHORTpParameters] | 0x1000 );
        
WRITE_COORDOrigin.);
        
WRITE_COORDOrigin.);
        
WRITE_COORDOrigin.);
        
WRITE_SHORTCSprites.beam );
        
WRITE_BYTE);
        
WRITE_BYTE);
        
WRITE_BYTE);
        
WRITE_BYTE25 );
        
WRITE_BYTE);
        
WRITE_BYTE);
        
WRITE_BYTE255 );
        
WRITE_BYTE);
        
WRITE_BYTE100 );
        
WRITE_BYTE);
        
MESSAGE_END( );
        
        
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
        
WRITE_BYTE);
        
WRITE_COORDOrigin.);
        
WRITE_COORDOrigin.);
        
WRITE_COORDOrigin.);
        
WRITE_SHORTCSprites.exp );
        
WRITE_BYTE10 );
        
WRITE_BYTE15 );
        
WRITE_BYTE);
        
MESSAGE_END( );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL DotTracersAMX pAmxcell pParameters ) {
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) ) {        
        
cellpOrigin MF_GetAmxAddrpAmxpParameters] );
        
Vector Origin Vectoramx_ctofpOrigin ] ), amx_ctofpOrigin] ), amx_ctofpOrigin] ) );
        
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
        
WRITE_BYTE);
        
WRITE_SHORTpParameters] | 0x1000 );
        
WRITE_COORDOrigin.);
        
WRITE_COORDOrigin.);
        
WRITE_COORDOrigin.);
        
WRITE_SHORTCSprites.dot );
        
WRITE_BYTE);
        
WRITE_BYTE);
        
WRITE_BYTE);
        
WRITE_BYTE);
        
WRITE_BYTE);
        
WRITE_BYTEpParameters] );
        
WRITE_BYTEpParameters] );
        
WRITE_BYTEpParameters] );
        
WRITE_BYTE128 );
        
WRITE_BYTE);
        
MESSAGE_END( );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL TracersAMX *, cell pParameters ) {
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) ) {
        
Vector Origin INT_TO_EDICTpParameters] ) -> v.origin;
        
Vector Eyes_Origin Origin INT_TO_EDICTpParameters] ) -> v.view_ofs;

        
Vector Angles;
        
g_engfuncs.pfnAngleVectorsINT_TO_EDICTpParameters] ) -> v.v_angleAnglesNULLNULL );

        
Vector Destination Eyes_Origin Angles 8192;

        
TraceResult Result;
        
TRACE_LINEEyes_OriginDestination0INT_TO_EDICTpParameters] ), &Result );

        
g_EndPosition = ( Result.flFraction 1.0 ) ? Result.vecEndPos Vector00);

        
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
        
WRITE_BYTETE_TRACER );
        
WRITE_COORDOrigin.);
        
WRITE_COORDOrigin.);
        
WRITE_COORDOrigin.);
        
WRITE_COORDg_EndPosition.);
        
WRITE_COORDg_EndPosition.);
        
WRITE_COORDg_EndPosition.);
        
MESSAGE_END( );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL MakeVipAMX *, cell pParameters ) {
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) ) {
        
MESSAGE_BEGINMSG_BROADCASTCMessages.scoreattrib );
        
WRITE_BYTEpParameters] );
        
WRITE_BYTE);
        
MESSAGE_END( );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL BeamAMX *, cell pParameters ) {
    if( 
gpGlobals -> time && !FNullEntINT_TO_EDICTpParameters] ) ) && !FNullEntINT_TO_EDICTpParameters] ) ) ) {
        
MESSAGE_BEGINMSG_ONE_UNRELIABLESVC_TEMPENTITYNULLENTINT_TO_EDICTpParameters] ) ) );
        
WRITE_BYTE);
        
WRITE_SHORTpParameters] );
        
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
        
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
        
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
        
WRITE_SHORTCSprites.trail );
        
WRITE_BYTE);
        
WRITE_BYTE);
        
WRITE_BYTE);
        
WRITE_BYTE);
        
WRITE_BYTE);
        
WRITE_BYTEpParameters] );
        
WRITE_BYTEpParameters] );
        
WRITE_BYTEpParameters] );
        
WRITE_BYTE255 );
        
WRITE_BYTE);
        
MESSAGE_END( );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_ability_effectAMX pAmxcell pParameters ) {
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) ) {        
        
cellpOrigin MF_GetAmxAddrpAmxpParameters] );
        
Vector Origin Vectoramx_ctofpOrigin ] ), amx_ctofpOrigin] ), amx_ctofpOrigin] ) );
        
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
        
WRITE_BYTE);
        
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
        
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
        
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.16 );
        
WRITE_COORDOrigin.);
        
WRITE_COORDOrigin.);
        
WRITE_COORDOrigin.16 );
        
WRITE_SHORTCSprites.dot );
        
WRITE_BYTE);
        
WRITE_BYTE30 );
        
WRITE_BYTE10 );
        
WRITE_BYTE50 );
        
WRITE_BYTE20 );
        
WRITE_BYTEpParameters] );
        
WRITE_BYTEpParameters] );
        
WRITE_BYTEpParameters] );
        
WRITE_BYTE255 );
        
WRITE_BYTE50 );
        
MESSAGE_END( );
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL send_death_effectAMX *, cell pParameters ) {
    
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
    
WRITE_BYTETE_SPRITE );
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_SHORTCSprites.skull );
    
WRITE_BYTE10 );
    
WRITE_BYTE255 );
    
MESSAGE_END( );
    
    return 
1;
}

static 
cell AMX_NATIVE_CALL send_infection_effectAMX *, cell pParameters ) {
    
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
    
WRITE_BYTETE_SPRITE );
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_COORDINT_TO_EDICTpParameters] ) ->v.origin.);
    
WRITE_SHORTCSprites.infect );
    
WRITE_BYTE);
    
WRITE_BYTE255 );
    
MESSAGE_END( );
    
    return 
1;
}

static 
cell AMX_NATIVE_CALL set_invisibilityAMX *, cell pParameters )
{
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) )
    {
        
INT_TO_EDICTpParameters] ) ->vrenderfx kRenderFxNone;                
        
INT_TO_EDICTpParameters] ) ->vrendercolor Vector00);
        
INT_TO_EDICTpParameters] ) ->vrendermode kRenderTransAlpha;
        
INT_TO_EDICTpParameters] ) ->vrenderamt 0;
    }

    return 
1;
}

static 
cell AMX_NATIVE_CALL CleanAMX *, cell * ) {
    for( 
int i gpGlobals -> maxClients 1gpGlobals -> maxEntitiesi++ )
        if( !
FNullEntINT_TO_EDICT) ) && EDICT_TO_INTINT_TO_EDICT) -> v.owner ) > gpGlobals -> maxClients && strcasecontainSTRINGINT_TO_EDICT) -> v.classname ), "Weapon" ) )
            
REMOVE_ENTITYINT_TO_EDICT) );

    return 
1;
}

static 
cell AMX_NATIVE_CALL set_painshockAMX *, cell pParameters 
{
    if( !
FNullEntINT_TO_EDICTpParameters] ) ) && INT_TO_EDICTpParameters] ) -> pvPrivateData != NULL)
        *( ( 
int * ) INT_TO_EDICTpParameters] ) -> pvPrivateData OFFSET_PAINSHOCK );

    return 
1;
}

AMX_NATIVE_INFO ZombieFunctions[ ] = 
{
    { 
"changelevel"changelevel }, 
    { 
"send_intermission"send_intermission }, 
    { 
"set_painshock"set_painshock }, 
    { 
"rem"rem },
    { 
"fake"fake }, 
    { 
"can"can }, 
    { 
"get_mins"get_mins }, 
    { 
"set_nextthink"set_nextthink }, 
    { 
"get_dmgtime"get_dmgtime }, 
    { 
"pev"pev }, 
    { 
"set_pev"set_pev }, 
    { 
"kill"kill }, 
    { 
"close"close }, 
    { 
"Clean"Clean },
    { 
"DotTracers"DotTracers },
    { 
"BeamTracers"BeamTracers },
    { 
"Tracers"Tracers },
    { 
"set_invisibility"set_invisibility },
    { 
"send_ability_effect"send_ability_effect },
    { 
"send_death_effect"send_death_effect },
    { 
"send_infection_effect"send_infection_effect },
    { 
"send_bar_time"send_bar_time }, 
    { 
"set_frozen"set_frozen },
    { 
"send_teleport"send_teleport },
    { 
"send_damage"send_damage }, 
    { 
"send_smoke"send_smoke }, 
    { 
"send_flame"send_flame }, 
    { 
"sound"sound },
    { 
"send_break_glass"send_break_glass }, 
    { 
"send_screen_fade"send_screen_fade },
    { 
"remove_entity"remove_entity },
    { 
"send_screen_shake"send_screen_shake }, 
    { 
"send_implosion"send_implosion }, 
    { 
"send_sparks"send_sparks }, 
    { 
"send_particle_burst"send_particle_burst }, 
    { 
"send_light"send_light }, 
    { 
"send_hide_weapon"send_hide_weapon }, 
    { 
"send_crosshair"send_crosshair }, 
    { 
"send_lava_splash"send_lava_splash }, 
    { 
"get_oldbuttons"get_oldbuttons },
    { 
"get_button"get_button }, 
    { 
"set_take_damage"set_take_damage }, 
    { 
"send_explosion"send_explosion }, 
    { 
"send_beam_follow"send_beam_follow }, 
    { 
"ping"ping },
    { 
"MakeVip"MakeVip },
    { 
"Beam"Beam },
    { 
"send_beam_cylinder"send_beam_cylinder }, 
    { 
"is_origin_vacant"is_origin_vacant }, 
    { 
"is_hull_vacant"is_hull_vacant }, 
    { 
"get_user_jetpack"get_user_jetpack }, 
    { 
"create_mine"create_mine }, 
    { 
"set_gravity"set_gravity }, 
    { 
"set_zombie"set_zombie }, 
    { 
"set_user_jetpack"set_user_jetpack }, 
    { 
"send_fov"send_fov },
    { 
"set_user_fuel"set_user_fuel }, 
    { 
"set_user_rocket_time"set_user_rocket_time }, 
    { 
"user_drop_jetpack"user_drop_jetpack }, 
    { 
"give_weapon"give_weapon },
    { 
"light"light }, 
    { 
"iuser2"iuser2 },
    { 
"get_origin"get_origin }, 
    { 
"give_ammo"give_ammo }, 
    { 
"get_frags"get_frags }, 
    { 
"get_deaths"get_deaths }, 
    { 
"set_frags"set_frags }, 
    { 
"ent"ent }, 
    { 
"set_deaths"set_deaths }, 
    { 
"get_armor"get_armor }, 
    { 
"reset_armor"reset_armor }, 
    { 
"send_score_info"send_score_info }, 
    { 
"strip_name"strip_name },
    { 
"send_score_attrib"send_score_attrib }, 
    { 
"get_health"get_health }, 
    { 
"set_weapon_ammo"set_weapon_ammo }, 
    { 
"set_monster"set_monster }, 
    { 
"send_say_text"send_say_text }, 
    { 
"set_health"set_health }, 
    { 
"flash"flash },
    { 
"send_death_msg"send_death_msg }, 
    { 
"set_jetpack"set_jetpack },
    { 
"set_ent_flags"set_ent_flags }, 
    { 
"strip_user_weapons"strip_user_weapons }, 
    { 
"get_ent_flags"get_ent_flags }, 
    { 
"set_glow"set_glow }, 
    { 
"remove_glow"remove_glow }, 
    { 
"set_armor"set_armor }, 
    { 
"set_origin"set_origin }, 
    { 
"get_velocity"get_velocity }, 
    { 
"set_velocity"set_velocity }, 
    { 
"set_speed"set_speed }, 
    { 
"reset_money"reset_money }, 
    { 
"range"range },
    { 
0}
};

void GameDLLInit(void)
{
    
cvar_t c_nextmap = { "nextmap""" };
    
cvar_t c_light = { "light""" };

    
CVAR_REGISTER(&c_nextmap);
    
CVAR_REGISTER(&c_light);
}

void OnAmxxAttachvoid ) {

    
MF_AddNativesZombieFunctions );
    
}

void OnPluginsLoadedvoid ) {
    
CForwards.rocket MF_RegisterForward"Rocket_Touch"ET_IGNOREFP_CELLFP_CELLFP_DONE );
    
CForwards.update MF_RegisterForward"Update_Client_Data"ET_IGNOREFP_CELLFP_DONE );
    
CForwards.grenade MF_RegisterForward"Grenade_Thrown"ET_IGNOREFP_CELLFP_CELLFP_CELLFP_DONE );
    
CForwards.mine MF_RegisterForward"Mine_Think"ET_IGNOREFP_CELLFP_CELLFP_DONE );
}

void UpdateClientData( const edict_t pEntityintclientdata_s * ) {
    if( 
gpGlobals -> time && MF_IsPlayerIngameEDICT_TO_INTpEntity ) ) && pEntity -> v.oldbuttons IN_SCORE && pEntity -> v.button IN_SCORE )
        
MF_ExecuteForwardCForwards.updatestatic_cast cell > ( EDICT_TO_INTpEntity ) ) );

    
RETURN_METAMRES_IGNORED );
}

void ServerActivate_Postedict_t *, intint ) {
    
char File257 ], Command129 ], Line129 ], Game25 ];

    
//cvar_t c_nextmap = { "nextmap", "" };
    //cvar_t c_light = { "light", "" };

    //CVAR_REGISTER( &c_nextmap );
    //CVAR_REGISTER( &c_light );

    
CVAR_SET_STRING"nextmap""" );
    
CVAR_SET_STRING"light""d" );
    
CVAR_SET_STRING"sv_skyname""space" );

    
CVAR_SET_FLOAT"sv_skycolor_r");
    
CVAR_SET_FLOAT"sv_skycolor_g");
    
CVAR_SET_FLOAT"sv_skycolor_b");
    
//CVAR_SET_FLOAT( "sv_allowdownload", 1 );
    //CVAR_SET_FLOAT( "mp_timelimit", 40 );

    
GET_GAME_DIRGame );

    
snprintfFile256"%s/addons/amxmodx/configs/maps/%s.cfg"GameSTRINGgpGlobals -> mapname ) );

    
FILE pFile fopenFile"a+" );

    if( 
pFile ) {
        while( !
feofpFile ) ) {
            
Line] = '\0';

            
fgetsLine128pFile );

            
trimLine );

            if( 
strlenLine ) > ) {
                
snprintfCommand128"%s\n"Line );

                
SERVER_COMMANDCommand );
            }
        }

        
fclosepFile );
    }

    if( 
CMiscs.spawns ) {
        
edict_t pEntity NULL;

        while( !
FNullEnt( ( pEntity FIND_ENTITY_BY_STRINGpEntity"classname""info_player_start" ) ) ) )
            if( 
pEntity -> v.iuser4 != Spawn_Flag )
                
REMOVE_ENTITYpEntity );

        
pEntity NULL;

        while( !
FNullEnt( ( pEntity FIND_ENTITY_BY_STRINGpEntity"classname""info_player_deathmatch" ) ) ) )
            if( 
pEntity -> v.iuser4 != Spawn_Flag )
                
REMOVE_ENTITYpEntity );
    }

    
RETURN_METAMRES_IGNORED );
}

int ClientConnect_Postedict_t pEntity, const char *, const char *, char * ) {
    
CLIENT_COMMANDpEntity"rate 25000; fps_max 999; cl_cmdrate 101; cl_updaterate 35; cl_dynamiccrosshair 0\n" );
    
CLIENT_COMMANDpEntity"mp3volume 0.70; mp3 play media/Half-Life%d.mp3\n"g_ConnectionSoundsRANDOM_LONG0) ] );

    
RETURN_META_VALUEMRES_IGNORED);
}

int DispatchSpawnedict_t pSpawned ) {
    if( !
FNullEntpSpawned ) ) {
        const 
char pClass STRINGpSpawned -> v.classname );

        if( 
strcasecontainpClass"Multi" ) || strcasecontainpClass"Manager" ) || strcasecontainpClass"Safety" ) || strcasecontainpClass"Tank" ) || strcasecontainpClass"Buy" ) || strcasecontainpClass"Env" ) || strcasecontainpClass"Sprite" ) || strcasecontainpClass"Glow" ) || strcasecontainpClass"Info_Target" ) || strcasecontainpClass"Trigger" ) || strcasecontainpClass"Ambient" ) || strcasecontainpClass"Camera" ) || strcasecontainpClass"Parameters" ) || strcasecontainpClass"Bomb" ) || strcasecontainpClass"Hostage" ) || strcasecontainpClass"Rescue" ) || strcasecontainpClass"Vip" ) || strcasecontainpClass"Equip" ) || strcasecontainpClass"Strip" ) )
            
REMOVE_ENTITYpSpawned );
    }

    if( !
CMiscs.prepared ) {
        
char File257 ], Line129 ], Game25 ], Team];

        
CStrings.jetpack ALLOC_STRING"Jetpack" );
        
CStrings.rocket ALLOC_STRING"Rocket" );
        
CStrings.mine ALLOC_STRING"Mine" );
        
CStrings.pegon ALLOC_STRING"models/p_egon.mdl" );
        
CStrings.vegon ALLOC_STRING"models/v_egon.mdl" );
        
CStrings.pknife ALLOC_STRING"models/p_knife.mdl" );
        
CStrings.vknife ALLOC_STRING"models/zombie_plague/v_female_knife.mdl" );
        
CStrings.infotarget ALLOC_STRING"info_target" );
        
CStrings.tspawn ALLOC_STRING"info_player_deathmatch" );
        
CStrings.ctspawn ALLOC_STRING"info_player_start" );
        
CStrings.null ALLOC_STRING"" );

        
edict_t pEntity CREATE_NAMED_ENTITYALLOC_STRING"hostage_entity" ) );

        if( !
FNullEntpEntity ) ) {
            
SET_ORIGINpEntityVector819281928192 ) );

            
MDLL_SpawnpEntity );
        }

        
pEntity CREATE_NAMED_ENTITYALLOC_STRING"env_fog" ) );

        if( !
FNullEntpEntity ) ) {
            
KeyValueData KVD;

            
KVD.szClassName "env_fog";
            
KVD.szKeyName "density";
            
KVD.szValue "0.00086";
            
KVD.fHandled 0;

            
MDLL_KeyValuepEntity, &KVD );

            
KVD.szClassName "env_fog";
            
KVD.szKeyName "rendercolor";
            
KVD.szValue "152 251 152";
            
KVD.fHandled 0;

            
MDLL_KeyValuepEntity, &KVD );
        }

        for(
int i 0sizeof(MODELS_TO_PRECACHE) / sizeof(MODELS_TO_PRECACHE[0]); i++) {
        
PRECACHE_MODEL(MODELS_TO_PRECACHE[i]);
        }

        
CSprites.fire PRECACHE_MODEL"sprites/xfireball3.spr" );
        
CSprites.flame PRECACHE_MODEL"sprites/ZP60/flame.spr" );
        
CSprites.smoke PRECACHE_MODEL"sprites/black_smoke3.spr" );
        
CSprites.trail PRECACHE_MODEL"sprites/laserbeam.spr" );
        
CSprites.glass PRECACHE_MODEL"models/glassgibs.mdl" );
        
CSprites.shockwave PRECACHE_MODEL"sprites/shockwave.spr" );
        
CSprites.explode PRECACHE_MODEL"sprites/zerogxplode.spr" );
        
CSprites.dot PRECACHE_MODEL"sprites/dot.spr" );
        
CSprites.beam PRECACHE_MODEL"sprites/beam_plasma.spr" );
        
CSprites.exp PRECACHE_MODEL"sprites/exp_plasma.spr" );
        
CSprites.skull PRECACHE_MODEL"sprites/skull.spr" );
        
CSprites.infect PRECACHE_MODEL"sprites/infection.spr" );

        for(
int i 0sizeof(SOUNDS_TO_PRECACHE) / sizeof(SOUNDS_TO_PRECACHE[0]); i++) {
        
PRECACHE_SOUND(SOUNDS_TO_PRECACHE[i]);
        }

        
GET_GAME_DIRGame );

        
snprintfFile256"%s/addons/amxmodx/configs/spawns/%s_spawns.cfg"GameSTRINGgpGlobals -> mapname ) );

        
FILE pFile fopenFile"r" );

        if( 
pFile ) {
            
float Origin], Angles];
            
int State 0;
            
char pPiece;

            while( !
feofpFile ) ) {
                
Line] = '\0';

                
fgetsLine128pFile );

                
trimLine );

                if( 
Line] != '/' && strlenLine ) > ) {
                    
State 0;
                    
pPiece strtokLine" " );

                    while( 
pPiece != NULL ) {
                        switch( 
State ) {
                        case 
TEAM:
                            
snprintfTeam2"%s"pPiece );

                            break;

                        case 
ORIGIN_X:
                            
Origin] = atofpPiece );

                            break;

                        case 
ORIGIN_Y:
                            
Origin] = atofpPiece );

                            break;

                        case 
ORIGIN_Z:
                            
Origin] = atofpPiece );

                            break;

                        case 
ANGLES_X:
                            
Angles] = atofpPiece );

                            break;

                        case 
ANGLES_Y:
                            
Angles] = atofpPiece );

                            break;

                        case 
ANGLES_Z:
                            
Angles] = atofpPiece );

                            break;
                        }

                        
State++;

                        
pPiece strtokNULL" " );
                    }

                    
edict_t pEntity CREATE_NAMED_ENTITYTeam] == 'T' CStrings.tspawn CStrings.ctspawn );

                    if( !
FNullEntpEntity ) ) {
                        ( 
pEntity ) ->v.origin Origin;
                        ( 
pEntity ) -> v.angles Angles;
                        ( 
pEntity ) -> v.iuser4 Spawn_Flag;
                    }
                }
            }

            
fclosepFile );

            
CMiscs.spawns true;
        }

        
CMiscs.prepared true;
    }

    
RETURN_META_VALUEMRES_IGNORED);
}

void DispatchThinkedict_t pEntity ) {
    if( 
pEntity -> v.iuser4 == Mine_Flag )
        
MF_ExecuteForwardCForwards.minestatic_cast cell > ( EDICT_TO_INTpEntity ) ), static_cast cell > ( ( int ) pEntity -> v.health ) );

    
RETURN_METAMRES_IGNORED );
}

void DispatchTouchedict_t pTouchededict_t pToucher ) {
    const 
char pTouchedClass STRINGpTouched -> v.classname );

    if( !
strcmppTouchedClass"Rocket" ) ) {
        
MF_ExecuteForwardCForwards.rocketstatic_cast cell > ( EDICT_TO_INTpTouched -> v.owner ) ), static_cast cell > ( EDICT_TO_INTpTouched ) ) );

        if( !
strcmp"func_breakable"STRINGpToucher -> v.classname ) ) )
            
MDLL_UsepToucherpTouched );

        for( 
int i 04i++ ) {
            
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
            
WRITE_BYTETE_EXPLOSION );
            
WRITE_COORDpTouched -> v.origin.RANDOM_LONG( -2222 ) );
            
WRITE_COORDpTouched -> v.origin.RANDOM_LONG( -2222 ) );
            
WRITE_COORDpTouched -> v.origin.RANDOM_LONG( -2222 ) );
            
WRITE_SHORTCSprites.explode );
            
WRITE_BYTERANDOM_LONG1525 ) );
            
WRITE_BYTE15 );
            
WRITE_BYTE);
            
MESSAGE_END( );
        }

        for( 
int i 04i++ ) {
            
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
            
WRITE_BYTETE_BEAMCYLINDER );
            
WRITE_COORDpTouched -> v.origin.);
            
WRITE_COORDpTouched -> v.origin.);
            
WRITE_COORDpTouched -> v.origin.);
            
WRITE_COORDpTouched -> v.origin.);
            
WRITE_COORDpTouched -> v.origin.);
            
WRITE_COORDpTouched -> v.origin.+ ( 450 + ( 100 ) ) );
            
WRITE_SHORTCSprites.shockwave );
            
WRITE_BYTE);
            
WRITE_BYTE);
            
WRITE_BYTE);
            
WRITE_BYTE40 );
            
WRITE_BYTE);
            
WRITE_BYTE121 );
            
WRITE_BYTE121 );
            
WRITE_BYTE121 );
            
WRITE_BYTERANDOM_LONG150240 ) );
            
WRITE_BYTE);
            
MESSAGE_END( );
        }

        
REMOVE_ENTITYpTouched );
    }

    else if( !
strcmppTouchedClass"Jetpack" ) ) {
        if( 
EDICT_TO_INTpToucher ) > gpGlobals -> maxClients || EDICT_TO_INTpToucher ) < || !MF_IsPlayerAliveEDICT_TO_INTpToucher ) ) || CPlayersEDICT_TO_INTpToucher ) ].jetpack || CPlayersEDICT_TO_INTpToucher ) ].zombie )
            
RETURN_METAMRES_SUPERCEDE );

        if( 
CPlayersEDICT_TO_INTpToucher ) ].fuel )
            
CPlayersEDICT_TO_INTpToucher ) ].fuel 250;

        
CPlayersEDICT_TO_INTpToucher ) ].jetpack true;

        
CLIENT_COMMANDpToucher"weapon_knife\n" );

        
SetJetpackpToucher );

        
g_engfuncs.pfnEmitSoundpToucherCHAN_ITEM"zombie_plague/gun_pickup.wav"VOL_NORMATTN_NORM0PITCH_NORM );

        
REMOVE_ENTITYpTouched );
    }

    
RETURN_METAMRES_IGNORED );
}

void ClientDisconnectedict_t pEntity ) {
    if( 
CPlayersEDICT_TO_INTpEntity ) ].jetpack )
        
DropJetpackEDICT_TO_INTpEntity ), true );

    
CPlayersEDICT_TO_INTpEntity ) ].frozen false;
    
CPlayersEDICT_TO_INTpEntity ) ].fuel 0;
    
CPlayersEDICT_TO_INTpEntity ) ].rocket 0;
    
CPlayersEDICT_TO_INTpEntity ) ].monster false;
    
CPlayersEDICT_TO_INTpEntity ) ].zombie false;
    

    
RETURN_METAMRES_IGNORED );
}

void ServerDeactivatevoid ) {
    
CMiscs.prepared false;
    
CMiscs.spawns false;

    for( 
int i 1<= gpGlobals -> maxClientsi++ ) {
        
CPlayers].frozen false;
        
CPlayers].fuel 0;
        
CPlayers].rocket 0;
        
CPlayers].jetpack false;
        
CPlayers].monster false;
        
CPlayers].zombie false;
    }

    
RETURN_METAMRES_IGNORED );
}

void ClientPutInServeredict_t pEntity 
{
    
CPlayersEDICT_TO_INTpEntity ) ].frozen false;
    
CPlayersEDICT_TO_INTpEntity ) ].fuel 0;
    
CPlayersEDICT_TO_INTpEntity ) ].rocket 0;
    
CPlayersEDICT_TO_INTpEntity ) ].jetpack false;
    
CPlayersEDICT_TO_INTpEntity ) ].monster false;
    
CPlayersEDICT_TO_INTpEntity ) ].zombie false;

    
RETURN_METAMRES_IGNORED );
}

void PlayerPreThinkedict_t pPlayer ) {
    if( 
CPlayersEDICT_TO_INTpPlayer ) ].frozen )
        
pPlayer -> v.velocity Vector00);


    else if( 
CPlayersEDICT_TO_INTpPlayer ) ].jetpack ) {
        
int Button pPlayer -> v.button;
        
float Time gpGlobals -> time;

        if( 
Button IN_ATTACK2 && CPlayersEDICT_TO_INTpPlayer ) ].rocket Time ) {
            
edict_t pEntity CREATE_NAMED_ENTITYCStrings.infotarget );

            if( !
FNullEntpEntity ) ) {
                
SET_MODELpEntity"models/rpgrocket.mdl" );

                
pEntity -> v.classname CStrings.rocket;
                
pEntity -> v.movetype MOVETYPE_FLY;
                
pEntity -> v.solid SOLID_BBOX;
                
pEntity -> v.effects EF_LIGHT;

                
MAKE_VECTORSpPlayer -> v.v_angle );

                
Vector Forward gpGlobals -> v_forward 64;
                
Vector Velocity gpGlobals -> v_forward 1750;
                
Vector Origin pPlayer -> v.origin;

                
Origin.+= Forward.xOrigin.+= Forward.y;

                
SET_ORIGINpEntityOrigin );

                
pEntity -> v.velocity Velocity;

                
Vector Angles;
                
VEC_TO_ANGLESVelocityAngles );

                
pEntity -> v.angles AnglespEntity -> v.owner pPlayer;

                
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
                
WRITE_BYTETE_BEAMFOLLOW );
                
WRITE_SHORTEDICT_TO_INTpEntity ) );
                
WRITE_SHORTCSprites.trail );
                
WRITE_BYTE25 );
                
WRITE_BYTE);
                
WRITE_BYTE191 );
                
WRITE_BYTE191 );
                
WRITE_BYTE191 );
                
WRITE_BYTERANDOM_LONG150240 ) );
                
MESSAGE_END( );

                
g_engfuncs.pfnEmitSoundpPlayerCHAN_WEAPON"zombie_plague/rocket_fire.wav"VOL_NORMATTN_NORM0PITCH_NORM );

                
CPlayersEDICT_TO_INTpPlayer ) ].rocket Time 15;
            }

            else
                
CPlayersEDICT_TO_INTpPlayer ) ].rocket Time 1;
        }

        if( 
Button IN_DUCK && Button IN_JUMP && !( pPlayer -> v.flags FL_ONGROUND ) && CPlayersEDICT_TO_INTpPlayer ) ].fuel ) {
            
Vector Velocity pPlayer -> v.velocity;
            
Vector Angles pPlayer -> v.angles;

            
Angles.0;

            
Vector Forward;
            
g_engfuncs.pfnAngleVectorsAnglesForward0);

            
Angles Forward;

            
Angles.*= 300Angles.*= 300;

            
Velocity.Angles.xVelocity.Angles.y;

            if( 
Velocity.300 )
                
Velocity.+= 35;

            
pPlayer -> v.velocity Velocity;

            
MESSAGE_BEGINMSG_BROADCASTSVC_TEMPENTITY );
            
WRITE_BYTETE_SPRITE );
            
WRITE_COORDpPlayer -> v.origin.);
            
WRITE_COORDpPlayer -> v.origin.);
            
WRITE_COORDpPlayer -> v.origin.);
            
WRITE_SHORTCSprites.fire );
            
WRITE_BYTE);
            
WRITE_BYTE25 );
            
MESSAGE_END( );

            if( 
CPlayersEDICT_TO_INTpPlayer ) ].fuel 80 )
                
g_engfuncs.pfnEmitSoundpPlayerCHAN_ITEM"zombie_plague/jetpack_fly.wav"VOL_NORMATTN_NORM0PITCH_NORM );

            else
                
g_engfuncs.pfnEmitSoundpPlayerCHAN_ITEM"zombie_plague/jetpack_blow.wav"VOL_NORMATTN_NORM0PITCH_NORM );

            
CPlayersEDICT_TO_INTpPlayer ) ].fuel -= 1;
        }

        else if( !( 
Button IN_DUCK ) && !( Button IN_JUMP ) && CPlayersEDICT_TO_INTpPlayer ) ].fuel 250 )
            
CPlayersEDICT_TO_INTpPlayer ) ].fuel += 0.5;
    }

    if( 
pPlayer -> v.button IN_USE && pPlayer -> v.velocity.)
        
pPlayer -> v.velocity.= -100;

    
RETURN_METAMRES_IGNORED );
}

void EmitSoundedict_t pEntityint Channel, const char pSoundfloat Volumefloat Attenuationint Flagsint Pitch ) {
    if( 
EDICT_TO_INTpEntity ) > && EDICT_TO_INTpEntity ) <= gpGlobals -> maxClients ) {
        if( 
CPlayersEDICT_TO_INTpEntity ) ].jetpack && pSound] == 'w' && pSound] == 'k' )
            
RETURN_METAMRES_SUPERCEDE );

        else if( 
CPlayersEDICT_TO_INTpEntity ) ].zombie ) {
            if( 
pSound] == 'b' && pSound] == 'h' && pSound] == 'i' ) {
                if( 
CPlayersEDICT_TO_INTpEntity ) ].monster )
                    
g_engfuncs.pfnEmitSoundpEntityChannelg_pMonsterHitSoundsRANDOM_LONG0) ], VolumeAttenuationFlagsPitch );

                else
                    
g_engfuncs.pfnEmitSoundpEntityChannelg_pZombieHitSoundsRANDOM_LONG0) ], VolumeAttenuationFlagsPitch );

                
RETURN_METAMRES_SUPERCEDE );
            }

            else if( 
pSound] == 'd' && ( ( pSound] == 'i' && pSound] == 'e' ) || ( pSound] == 'e' && pSound] == 'a' ) ) ) {
                
g_engfuncs.pfnEmitSoundpEntityChannelg_pZombieDieSoundsRANDOM_LONG0) ], VolumeAttenuationFlagsPitch );

                
RETURN_METAMRES_SUPERCEDE );
            }
        }
    }

    
RETURN_METAMRES_IGNORED );
}

void MessageBegin_Postintint Type, const float *, edict_t * ) {
    if( 
Type == CMessages.deathmsg && gpGlobals -> time ) {
        
CMessages.message DeathMsg;

        
CMessages.byte 0;
    }

    else if( 
Type == CMessages.hltv && gpGlobals -> time ) {
        
CMessages.message HLTV;

        
CMessages.byte 0;
    }

    
RETURN_METAMRES_IGNORED );
}

void MessageEnd_Postvoid ) {
    if( 
CMessages.message )
        
CMessages.message 0;

    
RETURN_METAMRES_IGNORED );
}

void WriteByte_Postint Byte ) {
    if( 
CMessages.message ) {
        switch( 
CMessages.message ) {
        case 
DeathMsg:
            if( ++
CMessages.byte == && CPlayersByte ].jetpack )
                
DropJetpackBytetrue );

            break;

        case 
HLTV:
            switch( ++
CMessages.byte ) {
            case 
1:
                
CMessages.status Byte;

                break;

            case 
2:
                if( !
CMessages.status && !Byte ) {
                    
edict_t pEntity NULL;

                    while( !
FNullEnt( ( pEntity FIND_ENTITY_BY_STRINGpEntity"classname""Rocket" ) ) ) )
                        
REMOVE_ENTITYpEntity );

                    
pEntity NULL;

                    while( !
FNullEnt( ( pEntity FIND_ENTITY_BY_STRINGpEntity"classname""Jetpack" ) ) ) )
                        
REMOVE_ENTITYpEntity );

                    
pEntity NULL;

                    while( !
FNullEnt( ( pEntity FIND_ENTITY_BY_STRINGpEntity"classname""Mine" ) ) ) )
                        
REMOVE_ENTITYpEntity );
                }

                break;
            }

            break;
        }
    }

    
RETURN_METAMRES_IGNORED );
}

int RegUserMsg_Post( const char pNameint ) {
    if( !
strcmppName"DeathMsg" ) )
        
CMessages.deathmsg META_RESULT_ORIG_RET( int );

    else if( !
strcmppName"HLTV" ) )
        
CMessages.hltv META_RESULT_ORIG_RET( int );

    else if( !
strcmppName"ScoreAttrib" ) )
        
CMessages.scoreattrib META_RESULT_ORIG_RET( int );

    else if( !
strcmppName"ScoreInfo" ) )
        
CMessages.scoreinfo META_RESULT_ORIG_RET( int );

    else if( !
strcmppName"TeamInfo" ) )
        
CMessages.teaminfo META_RESULT_ORIG_RET( int );

    else if( !
strcmppName"SayText" ) )
        
CMessages.saytext META_RESULT_ORIG_RET( int );

    else if( !
strcmppName"ScreenFade" ) )
        
CMessages.screenfade META_RESULT_ORIG_RET( int );

    else if( !
strcmppName"ScreenShake" ) )
        
CMessages.screenshake META_RESULT_ORIG_RET( int );

    else if( !
strcmppName"Crosshair" ) )
        
CMessages.crosshair META_RESULT_ORIG_RET( int );

    else if( !
strcmppName"HideWeapon" ) )
        
CMessages.hideweapon META_RESULT_ORIG_RET( int );

    else if( !
strcmppName"Damage" ) )
        
CMessages.damage META_RESULT_ORIG_RET( int );

    else if( !
strcmppName"BarTime" ) )
        
CMessages.bartime META_RESULT_ORIG_RET( int );
    
    else if( !
strcmppName"SetFOV" ) )
        
CMessages.fov META_RESULT_ORIG_RET( int );    

    
RETURN_META_VALUEMRES_IGNORED);
}

void SetModel_Postedict_t pEntity, const char pModel )
{
    if( !
strcmpSTRINGpEntity -> v.classname ), "weaponbox" ) )
        
pEntity -> v.nextthink gpGlobals -> time 0.025;

    else if( 
pEntity -> v.owner && pModel] == 'w' && pModel] == '_' )
    {
        
int Weapon 0;

        switch( 
pModel] ) {
        case 
'h':
            
Weapon CSW_HEGRENADE;

            break;

        case 
'f':
            if( 
pModel10 ] == 'l' )
                
Weapon CSW_FLASHBANG;

            break;

        case 
's':
            if( 
pModel10 ] == 'm' )
                
Weapon CSW_SMOKEGRENADE;

            break;
        }

        if( 
Weapon )
        {
            
MF_ExecuteForwardCForwards.grenadestatic_cast cell > ( EDICT_TO_INTpEntity -> v.owner ) ), static_cast cell > ( EDICT_TO_INTpEntity ) ), static_cast cell > ( Weapon ) );
        }
    }

    
RETURN_METAMRES_IGNORED );
}

void ClientKilledict_t * )
{
    
RETURN_METAMRES_SUPERCEDE );



georgik57 01-29-2024 12:13

Re: Hi, can someone help
 
Just use regular AMXX ZP and customize it based on that module, there's no advantage in using a module.


All times are GMT -4. The time now is 15:40.

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