no message

This commit is contained in:
Felix Geyer 2004-02-15 02:29:51 +00:00
parent 6eb236f8b7
commit 21d870c57a
15 changed files with 997 additions and 245 deletions

View File

@ -0,0 +1,96 @@
/* Vexd Utility backwards compatibility
*
* (c) 2004, the AMX Mod X Development Team
*
* This file is provided as is (no warranties).
*/
#include <engine>
stock Entvars_Get_Int(iIndex, iVariable)
return entity_get_int(iIndex, iVariable)
stock Entvars_Set_Int(iIndex, iVariable, iNewValue)
return entity_set_int(iIndex, iVariable, iNewValue)
stock Float:Entvars_Get_Float(iIndex, iVariable)
return entity_get_float(iIndex, iVariable)
stock Entvars_Set_Float(iIndex, iVariable, Float:fNewValue)
return entity_set_float(iIndex, iVariable, fNewValue)
stock Entvars_Get_Vector(iIndex, iVariable, Float:vRetVector[3])
return entity_get_vector(iIndex, iVariable, vRetVector)
stock Entvars_Set_Vector(iIndex, iVariable, Float:vNewVector[3])
return entity_set_vector(iIndex, iVariable, vNewVector)
stock Entvars_Get_Edict(iIndex, iVariable)
return entity_get_edict(iIndex, iVariable)
stock Entvars_Set_Edict(iIndex, iVariable, iNewIndex)
return entity_set_edict(iIndex, iVariable, iNewIndex)
stock Entvars_Get_String(iIndex, iVariable, szReturnValue[], iReturnLen)
return entity_get_string(iIndex, iVariable, szReturnValue, iReturnLen)
stock Entvars_Set_String(iIndex, iVariable, szNewValue[])
return entity_set_string(iIndex, iVariable, szNewValue)
stock Entvars_Get_Byte(iIndex, iVariable)
return entity_get_byte(iIndex, iVariable)
stock Entvars_Set_Byte(iIndex, iVariable, iNewValue)
return entity_set_byte(iIndex, iVariable, iNewValue)
stock CreateEntity(szClassname[])
return create_entity(szClassname[])
stock ENT_SetModel(iIndex, szModel[])
return entity_set_model(iIndex, szModel)
stock ENT_SetOrigin(iIndex, Float:fNewOrigin[3])
return entity_set_origin(iIndex, fNewOrigin)
stock FindEntity(iIndex, szValue[])
return find_entity(iIndex, szValue)
stock RemoveEntity(iIndex)
return remove_entity(iIndex)
stock TraceLn(iIgnoreEnt, Float:fStart[3], Float:fEnd[3], Float:vReturn[3])
return trace_line(iIgnoreEnt, fStart, fEnd, vReturn)
stock TraceNormal(iIgnoreEnt, Float:fStart[3], Float:fEnd[3], Float:vReturn[3])
return trace_normal(iIgnoreEnt, fStart, fEnd, vReturn)
stock VecToAngles(Float:fVector[3], Float:vReturn[3])
return vector_to_angle(fVector, vReturn)
stock Float:VecLength(Float:vVector[3])
return vector_length(vVector)
stock Float:VecDist(Float:vVector[3], Float:vVector2[3])
return vector_distance(vVector, vVector2)
stock MessageBlock(iMessage, iMessageFlags)
return set_msg_block(iMessage, iMessageFlags)
stock GetMessageBlock(iMessage)
return get_msg_block(iMessage)
stock Float:HLTime()
return halflife_time()
stock FakeTouch(iToucher, iTouched)
return fake_touch(iToucher, iTouched)
stock AttachView(iIndex, iTargetIndex)
return attach_view(iIndex, iTargetIndex)
stock SetView(iIndex, ViewType)
return set_view(iIndex, ViewType)
forward vexd_pfntouch(pToucher, pTouched)
forward ServerFrame()

View File

@ -1,12 +1,12 @@
/* AMX Mod X /* AMX Mod X
* *
* (c) 2002-2004, OLO * (c) 2002-2004, OLO
* modified by BAILOPAN, Manip, PM, SniperBeamer * modified by the AMX Mod X Development Team
* *
* This file is provided as is (no warranties). * This file is provided as is (no warranties).
*/ */
// Uncomment if you are not using Steam /* Uncomment if you are not using Steam */
//#define NO_STEAM //#define NO_STEAM
#define ADMIN_IMMUNITY (1<<0) /* flag "a" */ #define ADMIN_IMMUNITY (1<<0) /* flag "a" */
@ -161,7 +161,7 @@ enum {
/* Render for set_user_rendering() */ /* Render for set_user_rendering() */
enum { enum {
kRenderNormal, /* src */ kRenderNormal = 0, /* src */
kRenderTransColor, /* c*a+dest*(1-a) */ kRenderTransColor, /* c*a+dest*(1-a) */
kRenderTransTexture, /* src*a+dest*(1-a) */ kRenderTransTexture, /* src*a+dest*(1-a) */
kRenderGlow, /* src*a+dest -- No Z buffer checks */ kRenderGlow, /* src*a+dest -- No Z buffer checks */
@ -194,6 +194,7 @@ enum {
kRenderFxClampMinScale, /* Keep this sprite from getting very small (SPRITES only!) */ kRenderFxClampMinScale, /* Keep this sprite from getting very small (SPRITES only!) */
} }
/* Type for force_unmodified() */
enum { enum {
force_exactfile = 0, /* File on client must exactly match server's file */ force_exactfile = 0, /* File on client must exactly match server's file */
force_model_samebounds, /* For model files only, the geometry must fit in the same bbox */ force_model_samebounds, /* For model files only, the geometry must fit in the same bbox */

View File

@ -1,23 +1,23 @@
/* AMX Mod X misc. /* AMX Mod X misc.
* *
* (c) 2002-2004, OLO * (c) 2002-2004, OLO
* modified by BAILOPAN, Manip, PM, SniperBeamer * modified by the AMX Mod X Development Team
* *
* This file is provided as is (no warranties). * This file is provided as is (no warranties).
*/ */
stock bool:cmd_access(id,level,cid,num) { stock cmd_access(id,level,cid,num) {
if ( ((get_user_flags(id)&level)!=level) && (id!=(is_dedicated_server()?0:1)) ) { if ( ((get_user_flags(id)&level)!=level) && (id!=(is_dedicated_server()?0:1)) ) {
console_print(id,"You have no access to that command") console_print(id,"You have no access to that command")
return false return 0
} }
if (read_argc() < num) { if (read_argc() < num) {
new hcmd[32], hinfo[128], hflag new hcmd[32], hinfo[128], hflag
get_concmd(cid,hcmd,31,hflag,hinfo,127,level) get_concmd(cid,hcmd,31,hflag,hinfo,127,level)
console_print(id,"Usage: %s %s",hcmd,hinfo) console_print(id,"Usage: %s %s",hcmd,hinfo)
return false return 0
} }
return true return 1
} }
stock access(id,level) stock access(id,level)
@ -27,8 +27,7 @@ stock access(id,level)
* 1 - obey immunity * 1 - obey immunity
* 2 - allow yourself * 2 - allow yourself
* 4 - must be alive * 4 - must be alive
* 8 - can't be bot * 8 - can't be bot */
*/
stock cmd_target(id,const arg[],flags = 1) { stock cmd_target(id,const arg[],flags = 1) {
new player = find_player("bl",arg) new player = find_player("bl",arg)
if (player) { if (player) {

View File

@ -1,7 +1,7 @@
/* AMX Mod X functions /* AMX Mod X functions
* *
* (c) 2002-2004, OLO * (c) 2002-2004, OLO
* modified by BAILOPAN, Manip, PM, SniperBeamer * modified by the AMX Mod X Development Team
* *
* This file is provided as is (no warranties). * This file is provided as is (no warranties).
*/ */
@ -115,8 +115,7 @@ native register_event(const event[],const function[],const flags[],cond[]="", ..
* "1=say" * "1=say"
* "3=Terrorists_Win" * "3=Terrorists_Win"
* "1=entered the game" * "1=entered the game"
* "0=Server cvar" * "0=Server cvar" */
*/
native register_logevent(const function[], argsnum, ... ); native register_logevent(const function[], argsnum, ... );
/* Sets format for hudmessage. */ /* Sets format for hudmessage. */
@ -446,8 +445,8 @@ native get_srvcmd(index,server_cmd[],len1,&flags, info[],len2, flag);
native get_srvcmdsnum(flag); native get_srvcmdsnum(flag);
/* Gets info about console command. If id is set to 0, /* Gets info about console command. If id is set to 0,
then function returns only server cmds, if positive then * then function returns only server cmds, if positive then
returns only client cmds. in other case returns all console commands. */ * returns only client cmds. in other case returns all console commands. */
native get_concmd(index,cmd[],len1,&flags, info[],len2, flag, id = -1); native get_concmd(index,cmd[],len1,&flags, info[],len2, flag, id = -1);
/* Returns number of registered console commands. */ /* Returns number of registered console commands. */

View File

@ -1,7 +1,7 @@
/* CS Stats functions /* CS Stats functions
* *
* (c) 2002-2004, OLO * (c) 2002-2004, OLO
* modified by BAILOPAN, Manip, PM, SniperBeamer * modified by the AMX Mod X Development Team
* *
* This file is provided as is (no warranties). * This file is provided as is (no warranties).
*/ */

163
plugins/include/engine.inc Executable file
View File

@ -0,0 +1,163 @@
/* Engine
*
* (c) 2004, the AMX Mod X Development Team
* thanks to Vexd
*
* This file is provided as is (no warranties).
*/
#include <engine_const>
#include <engine_stocks>
/* This is a highly experimental command that will directly hook a message in the engine!
* You can overwrite the message before anything happens and either let the message continue
* or fully block it. Here is how it works:
* If you hook a message, the message is stored but not sent. You have the opportunity to
* not only execute code, but to get/set the contents of the message, before you choose to
* either block it or let it go on its way. The hooked function will be passed a msg_id. */
native register_message(iMsgId, szFunction[]);
/* The get/set _msg commands will utterly fail if used outside a hooked message scope.
* They should never, NEVER, EVER be used unless inside a registered message function.
* There are eight different ways of sending a message, five are ints, two are floats, and one is string.
* These are denoted by iArgType. msg_tid is the message you are hooking. argn is the number
* of the argument. Exceeding the bounds of 1 to get_msg_args() is a bad idea. */
/* Gets number of arguments that were passed to this message */
native get_msg_args(msg_id);
/* Gets the argument type of argument argn */
native get_msg_argtype(msg_id, argn);
/* Gets the value of argn. */
native get_msg_arg_int(msg_id, argn);
native Float:get_msg_arg_float(msg_id, argn);
native get_msg_arg_string(msg_id, argn, szReturn[], iLength);
/* sets the value of argn. */
native set_msg_arg_int(msg_id, argn, argtype, iValue);
native set_msg_arg_float(msg_id, argn, argtype, Float:fValue);
native set_msg_arg_string(msg_id, argn, szString[]);
/* Note, the offsets are passed as linux values, not windows values.
* Although the engine module will automatically calculate the difference,
* you must pass with the +5 linux offset (e.g. if 230 on windows, pass 235 no matter what) */
/* Gets pvPrivateData offset. */
native get_offset(id, offset);
native Float:get_offset_float(id, offset);
native get_offset_short(id, offset);
/* sets pvPrivateData offset. */
native set_offset(id, offset, value);
native set_offset_float(id, offset, Float:value);
native set_offset_short(id, offset);
/* Precaches any file. */
native precache_generic(szFile[]);
/* Sets/gets things in an entities Entvars Struct. */
native entity_get_int(iIndex, iKey);
native entity_set_int(iIndex, iKey, iVal);
native Float:entity_get_float(iIndex, iKey);
native entity_set_float(iIndex, iKey, Float:iVal);
native entity_get_vector(iIndex, iKey, Float:vRetVector[3]);
native entity_set_vector(iIndex, iKey, Float:vNewVector[3]);
native entity_get_edict(iIndex, iKey);
native entity_set_edict(iIndex, iKey, iNewIndex);
native entity_get_string(iIndex, iKey, szReturn[], iRetLen);
native entity_set_string(iIndex, iKey, szNewVal[]);
native entity_get_byte(iIndex, iKey);
native entity_set_byte(iIndex, iKey, iVal);
/* Creates an entity, will return the index of the created entity. ClassName must be valid. */
native create_entity(szClassname[]);
/* Finds an entity in the world, will return -1 if nothing is found */
native find_entity(iIndex, szClass[]);
native find_ent_by_owner(iIndex, szClass[], iOwner);
native find_ent_by_target(iIndex, szClass[]);
native find_ent_by_tname(iIndex, szClass[]);
native find_ent_by_model(iIndex, szClass[], szModel[]);
/* Is entity valid? */
native is_valid_ent(iIndex);
/* Proper origin setting, keeps updated with Half-Life engine. */
native entity_set_origin(iIndex, Float:fNewOrigin[3]);
/* Sets the model of an Entity. */
native entity_set_model(iIndex, szModel[]);
/* Remove an entity from the world. */
native remove_entity(iIndex);
/* Return current number of entities in the map */
native entity_count();
/* Simulate two entities colliding/touching. */
native fake_touch(iToucher, iTouched);
/* Dispatch a KeyValuePair, used for initalizing entities when a map spawns them. */
native DispatchKeyValue(iIndex, szKey[], szValue[]);
/* Runs the GameDLL's DispatchSpawn for an entity, I think it's used with DispatchKeyValue. */
native DispatchSpawn(iIndex);
/* Hurts/Kills players in a sphere, like an explosion, Multiplier determines damage. */
native RadiusDamage(Float:fExplodeAt[3], iDamageMultiplier, iRadiusMultiplier);
/* Gives you a velocity in the direction a player is looking, iVelocity is the multiplier. */
native VelocityByAim(iIndex, iVelocity, Float:vRetValue[3]);
/* Will return the contents of a point (inside map? in sky? outside map? etc.). */
native PointContents(Float:fCheckAt[3]);
/* Trace a line from Start(X, Y, Z) to End(X, Y, Z), will return the point hit in vReturn[3]
* and an entity index if an entity is hit. */
native trace_line(iIgnoreEnt, Float:fStart[3], Float:fEnd[3], Float:vReturn[3]);
/* Traces a line, and returns the normal to the plane hit in vReturn.
* Returns 0 if theres no normal. */
native trace_normal(iIgnoreEnt, Float:fStart[3], Float:fEnd[3], Float:vReturn[3]);
/* Changes a Vector to an Angle vector. */
native vector_to_angle(Float:fVector[3], Float:vReturn[3]);
/* Gets the length of a vector (float[3]). */
native Float:vector_length(Float:vVector[3]);
/* Gets the distance between 2 vectors (float[3]). */
native Float:vector_distance(Float:vVector[3], Float:vVector2[3]);
/* Gets the ID of a grenade. */
native get_grenade_id(id, model[], len, grenadeid = 0);
/* Gets gpGlobals->time from Half-Life */
native Float:halflife_time();
/* Sets map lighting, #OFF to disable. */
native set_lights(const Lighting[]);
// Sets/Gets what engine messages are blocked. */
native set_msg_block(iMessage, iMessageFlags);
native get_msg_block(iMessage);
/* Sets Player's View to entity iTargetIndex. */
native attach_view(iIndex, iTargetIndex);
/* Sets Player's View Mode. */
native set_view(iIndex, ViewType);
/* Called when 2 entities touch. */
forward pfn_touch(ptr, ptd);
/* Called once every server frame. May cause lag. */
forward server_frame();
/* Called when a client types kill in console. */
forward client_kill(id);
/* Forward for PreThink()/PostThink() on a player. */
forward client_PreThink(id);
forward client_PostThink(id);

305
plugins/include/engine_const.inc Executable file
View File

@ -0,0 +1,305 @@
/* Engine Constants
*
* (c) 2004, by the AMX Mod X Development Team
*
* This file is provided as is (no warranties).
*/
#define SPEAK_NORMAL 0
#define SPEAK_MUTED 1
#define SPEAK_ALL 2
#define SPEAK_LISTENALL 4
#define CAMERA_NONE 0
#define CAMERA_3RDPERSON 1
#define CAMERA_UPLEFT 2
#define CAMERA_TOPDOWN 3
#define BLOCK_NOT 0
#define BLOCK_ONCE 1
#define BLOCK_SET 2
enum {
ARG_BYTE = 1, /* int */
ARG_CHAR, /* int */
ARG_SHORT, /* int */
ARG_LONG, /* int */
ARG_ANGLE, /* float */
ARG_COORD, /* float */
ARG_STRING, /* string */
ARG_ENTITY, /* int */
}
/* Int */
enum {
EV_INT_gamestate = 0,
EV_INT_oldbuttons,
EV_INT_groupinfo,
EV_INT_iuser1,
EV_INT_iuser2,
EV_INT_iuser3,
EV_INT_iuser4,
EV_INT_weaponanim,
EV_INT_pushmsec,
EV_INT_bInDuck,
EV_INT_flTimeStepSound,
EV_INT_flSwimTime,
EV_INT_flDuckTime,
EV_INT_iStepLeft,
EV_INT_movetype,
EV_INT_solid,
EV_INT_skin,
EV_INT_body,
EV_INT_effects,
EV_INT_light_level,
EV_INT_sequence,
EV_INT_gaitsequence,
EV_INT_modelindex,
EV_INT_playerclass,
EV_INT_waterlevel,
EV_INT_watertype,
EV_INT_spawnflags,
EV_INT_flags,
EV_INT_colormap,
EV_INT_team,
EV_INT_fixangle,
EV_INT_weapons,
EV_INT_rendermode,
EV_INT_renderfx,
EV_INT_button,
EV_INT_impulse,
EV_INT_deadflag,
}
/* Float */
enum {
EV_FL_impacttime = 0,
EV_FL_starttime,
EV_FL_idealpitch,
EV_FL_pitch_speed,
EV_FL_ideal_yaw,
EV_FL_yaw_speed,
EV_FL_ltime,
EV_FL_nextthink,
EV_FL_gravity,
EV_FL_friction,
EV_FL_frame,
EV_FL_animtime,
EV_FL_framerate,
EV_FL_health,
EV_FL_frags,
EV_FL_takedamage,
EV_FL_max_health,
EV_FL_teleport_time,
EV_FL_armortype,
EV_FL_armorvalue,
EV_FL_dmg_take,
EV_FL_dmg_save,
EV_FL_dmg,
EV_FL_dmgtime,
EV_FL_speed,
EV_FL_air_finished,
EV_FL_pain_finished,
EV_FL_radsuit_finished,
EV_FL_scale,
EV_FL_renderamt,
EV_FL_maxspeed,
EV_FL_fov,
EV_FL_flFallVelocity,
EV_FL_fuser1,
EV_FL_fuser2,
EV_FL_fuser3,
EV_FL_fuser4,
}
/* Vector */
enum {
EV_VEC_origin = 0,
EV_VEC_oldorigin,
EV_VEC_velocity,
EV_VEC_basevelocity,
EV_VEC_clbasevelocity,
EV_VEC_movedir,
EV_VEC_angles,
EV_VEC_avelocity,
EV_VEC_punchangle,
EV_VEC_v_angle,
EV_VEC_endpos,
EV_VEC_startpos,
EV_VEC_absmin,
EV_VEC_absmax,
EV_VEC_mins,
EV_VEC_maxs,
EV_VEC_size,
EV_VEC_rendercolor,
EV_VEC_view_ofs,
EV_VEC_vuser1,
EV_VEC_vuser2,
EV_VEC_vuser3,
EV_VEC_vuser4,
}
/* Edict */
enum {
EV_ENT_chain = 0,
EV_ENT_dmg_inflictor,
EV_ENT_enemy,
EV_ENT_aiment,
EV_ENT_owner,
EV_ENT_groundentity,
EV_ENT_pContainingEntity,
EV_ENT_euser1,
EV_ENT_euser2,
EV_ENT_euser3,
EV_ENT_euser4,
}
/* String */
enum {
EV_SZ_classname = 0,
EV_SZ_globalname,
EV_SZ_model,
EV_SZ_target,
EV_SZ_targetname,
EV_SZ_netname,
EV_SZ_message,
EV_SZ_noise,
EV_SZ_noise1,
EV_SZ_noise2,
EV_SZ_noise3,
EV_SZ_viewmodel,
EV_SZ_weaponmodel,
}
/* Byte */
enum {
EV_BYTE_controller1 = 0,
EV_BYTE_controller2,
EV_BYTE_controller3,
EV_BYTE_controller4,
EV_BYTE_blending1,
EV_BYTE_blending2,
}
#define IN_ATTACK (1<<0)
#define IN_JUMP (1<<1)
#define IN_DUCK (1<<2)
#define IN_FORWARD (1<<3)
#define IN_BACK (1<<4)
#define IN_USE (1<<5)
#define IN_CANCEL (1<<6)
#define IN_LEFT (1<<7)
#define IN_RIGHT (1<<8)
#define IN_MOVELEFT (1<<9)
#define IN_MOVERIGHT (1<<10)
#define IN_ATTACK2 (1<<11)
#define IN_RUN (1<<12)
#define IN_RELOAD (1<<13)
#define IN_ALT1 (1<<14)
#define IN_SCORE (1<<15)
#define FL_FLY (1<<0) /* Changes the SV_Movestep() behavior to not need to be on ground */
#define FL_SWIM (1<<1) /* Changes the SV_Movestep() behavior to not need to be on ground (but stay in water) */
#define FL_CONVEYOR (1<<2)
#define FL_CLIENT (1<<3)
#define FL_INWATER (1<<4)
#define FL_MONSTER (1<<5)
#define FL_GODMODE (1<<6)
#define FL_NOTARGET (1<<7)
#define FL_SKIPLOCALHOST (1<<8) /* Don't send entity to local host, it's predicting this entity itself */
#define FL_ONGROUND (1<<9) /* At rest / on the ground */
#define FL_PARTIALGROUND (1<<10) /* not all corners are valid */
#define FL_WATERJUMP (1<<11) /* player jumping out of water */
#define FL_FROZEN (1<<12) /* Player is frozen for 3rd person camera */
#define FL_FAKECLIENT (1<<13) /* JAC: fake client, simulated server side; don't send network messages to them */
#define FL_DUCKING (1<<14) /* Player flag -- Player is fully crouched */
#define FL_FLOAT (1<<15) /* Apply floating force to this entity when in water */
#define FL_GRAPHED (1<<16) /* worldgraph has this ent listed as something that blocks a connection */
#define FL_IMMUNE_WATER (1<<17)
#define FL_IMMUNE_SLIME (1<<18)
#define FL_IMMUNE_LAVA (1<<19)
#define FL_PROXY (1<<20) /* This is a spectator proxy */
#define FL_ALWAYSTHINK (1<<21) /* Brush model flag -- call think every frame regardless of nextthink - ltime (for constantly changing velocity/path) */
#define FL_BASEVELOCITY (1<<22) /* Base velocity has been applied this frame (used to convert base velocity into momentum) */
#define FL_MONSTERCLIP (1<<23) /* Only collide in with monsters who have FL_MONSTERCLIP set */
#define FL_ONTRAIN (1<<24) /* Player is _controlling_ a train, so movement commands should be ignored on client during prediction. */
#define FL_WORLDBRUSH (1<<25) /* Not moveable/removeable brush entity (really part of the world, but represented as an entity for transparency or something) */
#define FL_SPECTATOR (1<<26) /* This client is a spectator, don't run touch functions, etc. */
#define FL_CUSTOMENTITY (1<<29) /* This is a custom entity */
#define FL_KILLME (1<<30) /* This entity is marked for death -- This allows the engine to kill ents at the appropriate time */
#define FL_DORMANT (1<<31) /* Entity is dormant, no updates to client */
#define SOLID_NOT 0 /* no interaction with other objects */
#define SOLID_TRIGGER 1 /* touch on edge, but not blocking */
#define SOLID_BBOX 2 /* touch on edge, block */
#define SOLID_SLIDEBOX 3 /* touch on edge, but not an onground */
#define SOLID_BSP 4 /* bsp clip, touch on edge, block */
#define MOVETYPE_NONE 0 /* never moves */
#define MOVETYPE_ANGLENOCLIP 1
#define MOVETYPE_ANGLECLIP 2
#define MOVETYPE_WALK 3 /* Player only - moving on the ground */
#define MOVETYPE_STEP 4 /* gravity, special edge handling -- monsters use this */
#define MOVETYPE_FLY 5 /* No gravity, but still collides with stuff */
#define MOVETYPE_TOSS 6 /* gravity/collisions */
#define MOVETYPE_PUSH 7 /* no clip to world, push and crush */
#define MOVETYPE_NOCLIP 8 /* No gravity, no collisions, still do velocity/avelocity */
#define MOVETYPE_FLYMISSILE 9 /* extra size to monsters */
#define MOVETYPE_BOUNCE 10 /* Just like Toss, but reflect velocity when contacting surfaces */
#define MOVETYPE_BOUNCEMISSILE 11 /* bounce w/o gravity */
#define MOVETYPE_FOLLOW 12 /* track movement of aiment */
#define MOVETYPE_PUSHSTEP 13 /* BSP model that needs physics/world collisions (uses nearest hull for world collision) */
#define CONTENTS_EMPTY -1
#define CONTENTS_SOLID -2
#define CONTENTS_WATER -3
#define CONTENTS_SLIME -4
#define CONTENTS_LAVA -5
#define CONTENTS_SKY -6
#define CONTENTS_ORIGIN -7 /* removed at csg time */
#define CONTENTS_CLIP -8 /* changed to contents_solid */
#define CONTENTS_CURRENT_0 -9
#define CONTENTS_CURRENT_90 -10
#define CONTENTS_CURRENT_180 -11
#define CONTENTS_CURRENT_270 -12
#define CONTENTS_CURRENT_UP -13
#define CONTENTS_CURRENT_DOWN -14
#define CONTENTS_TRANSLUCENT -15
#define CONTENTS_LADDER -16
#define DMG_GENERIC 0 /* generic damage was done */
#define DMG_CRUSH (1<<0) /* crushed by falling or moving object */
#define DMG_BULLET (1<<1) /* shot */
#define DMG_SLASH (1<<2) /* cut, clawed, stabbed */
#define DMG_BURN (1<<3) /* heat burned */
#define DMG_FREEZE (1<<4) /* frozen */
#define DMG_FALL (1<<5) /* fell too far */
#define DMG_BLAST (1<<6) /* explosive blast damage */
#define DMG_CLUB (1<<7) /* crowbar, punch, headbutt */
#define DMG_SHOCK (1<<8) /* electric shock */
#define DMG_SONIC (1<<9) /* sound pulse shockwave */
#define DMG_ENERGYBEAM (1<<10) /* laser or other high energy beam */
#define DMG_NEVERGIB (1<<12) /* with this bit OR'd in, no damage type will be able to gib victims upon death */
#define DMG_ALWAYSGIB (1<<13) /* with this bit OR'd in, any damage type can be made to gib victims upon death */
#define DMG_DROWN (1<<14) /* Drowning */
/* time-based damage */
#define DMG_TIMEBASED (~(0x3fff)) /* mask for time-based damage */
/* TF Additions */
#define DMG_PARALYZE (1<<15) /* slows affected creature down */
#define DMG_NERVEGAS (1<<16) /* nerve toxins, very bad */
#define DMG_POISON (1<<17) /* blood poisioning */
#define DMG_RADIATION (1<<18) /* radiation exposure */
#define DMG_DROWNRECOVER (1<<19) /* drowning recovery */
#define DMG_ACID (1<<20) /* toxic chemicals or acid burns */
#define DMG_SLOWBURN (1<<21) /* in an oven */
#define DMG_SLOWFREEZE (1<<22) /* in a subzero freezer */
#define DMG_MORTAR (1<<23) /* Hit by air raid (done to distinguish grenade from mortar) */
#define EF_BRIGHTFIELD 1 /* swirling cloud of particles */
#define EF_MUZZLEFLASH 2 /* single frame ELIGHT on entity attachment 0 */
#define EF_BRIGHTLIGHT 4 /* DLIGHT centered at entity origin */
#define EF_DIMLIGHT 8 /* player flashlight */
#define EF_INVLIGHT 16 /* get lighting from ceiling */
#define EF_NOINTERP 32 /* don't interpolate the next frame */
#define EF_LIGHT 64 /* rocket flare glow sprite */
#define EF_NODRAW 128 /* don't draw entity */

182
plugins/include/engine_stocks.inc Executable file
View File

@ -0,0 +1,182 @@
/* Engine Stocks
*
* (c) 2004, AssKicR, Freecode & T(+)rget
* modified by the AMX Mod X Development Team
*
* This file is provided as is (no warranties).
*/
/* Changes an integer vec to a floating vec */
stock IVecFVec(IVec[3], Float:FVec[3])
{
FVec[0] = float(IVec[0])
FVec[1] = float(IVec[1])
FVec[2] = float(IVec[2])
return 1
}
/* Changes a float vec to an integer vec */
stock FVecIVec(Float:FVec[3], IVec[3])
{
IVec[0] = floatround(FVec[0])
IVec[1] = floatround(FVec[1])
IVec[2] = floatround(FVec[2])
return 1
}
/* Get the Button(s) user is pressing */
stock get_user_button(id)
return entity_get_int(id, EV_INT_button)
stock get_user_oldbutton(id)
return entity_get_int(id, EV_INT_oldbuttons)
/* Get flags an entity is flagged with */
stock get_entity_flags(ent)
return entity_get_int(ent, EV_INT_flags)
/* Get the distance between two entities */
stock get_entity_distance(ent1, ent2)
{
new Float:orig1[3], Float:orig2[3], origin1[3], origin2[3]
entity_get_vector(ent1, EV_VEC_origin, orig1)
for(new a = 0; a < 3; a++)
origin1[a] = floatround(orig1[a])
entity_get_vector(ent2, EV_VEC_origin, orig2)
for(new b = 0; b < 3; b++)
origin2[b] = floatround(orig2[b])
return get_distance(origin1, origin2)
}
/* Get grenade thrown by this user */
stock get_grenade(id)
{
new iGrenade = find_entity(-1, "grenade")
while(iGrenade > 0)
{
if(entity_get_edict(iGrenade, EV_ENT_owner) == id)
return iGrenade
iGrenade = find_entity(iGrenade, "grenade")
}
return 0
}
/* Get origin of a brush entity */
stock get_brush_entity_origin(ent, Float:orig[3])
{
new Float:Min[3], Float:Max[3]
entity_get_vector(ent, EV_VEC_mins, Min)
entity_get_vector(ent, EV_VEC_maxs, Max)
for(new a = 0; a < 3; a++)
orig[a] = (Min[a] + Max[a]) / 2
return orig[0] && orig[1] && orig[2]
}
/* Remove entity by name */
stock remove_entity_name(eName[])
{
new iEntity = FindEntity(-1, eName)
while (iEntity > 0)
{
remove_entity(iEntity)
iEntity = find_entity(-1, eName)
}
return 1
}
/* Get the contents of the point a user is aiming at */
stock ViewContents(id)
{
new origin[3],Float:Orig[3]
get_user_origin( id, origin, 3 )
for(new a = 0; a < 3; a++)
Orig[a] = float(origin[a])
return PointContents( Orig )
}
stock get_speed(ent)
{
new Float:Vel[3], rVel[3]
entity_get_vector(ent, EV_VEC_velocity, Vel)
for(new i = 0; i < 3; i++)
rVel[i] = floatround(Vel[i])
return sqroot(rVel[0] * rVel[0] + rVel[1] * rVel[1] + rVel[2] * rVel[2])
}
/* Creates a death message. */
stock make_deathmsg(killer,victim,headshot,weapon[])
{
message_begin(MSG_ALL,get_user_msgid("DeathMsg"),{0,0,0},0)
write_byte( killer )
write_byte( victim )
write_byte( headshot )
write_string( weapon[] )
message_end()
return 1
}
/* Kills a user without a message. */
stock user_silentkill(index)
{
set_msg_block(get_user_msgid("DeathMsg"),BLOCK_ONCE)
user_kill(index,1)
return 1
}
/* Set endering of an entity */
stock set_rendering(index,fx=kRenderFxNone, r=255,g=255,b=255, render=kRenderNormal,amount=16)
{
Entvars_Set_Int(index,EV_INT_renderfx,fx)
new Float:RenderColor[3]
RenderColor[0] = float(r)
RenderColor[1] = float(g)
RenderColor[2] = float(b)
Entvars_Set_Vector(index,EV_VEC_rendercolor,RenderColor)
Entvars_Set_Int(index,EV_INT_rendermode,render)
Entvars_Set_Float(index,EV_FL_renderamt,float(amount))
return 1
}
/* Set flags on an entity */
stock set_entity_flags(ent,flag,onoff)
{
if ((Entvars_Get_Int(ent,EV_INT_flags)&flag) > 0)
{
if (onoff == 1)
{
return 2
}
else
{
Entvars_Set_Int(ent,EV_INT_flags,Entvars_Get_Int(ent,EV_INT_flags)-flag)
return 1
}
}
else
{
if (onoff == 0)
{
return 2
}
else
{
Entvars_Set_Int(ent,EV_INT_flags,Entvars_Get_Int(ent,EV_INT_flags)+flag)
return 1
}
}
return 0
}

View File

@ -1,7 +1,7 @@
/* Files functions /* Files functions
* *
* (c) 2002-2004, OLO * (c) 2002-2004, OLO
* modified by BAILOPAN, Manip, PM, SniperBeamer * modified by the AMX Mod X Development Team
* *
* This file is provided as is (no warranties). * This file is provided as is (no warranties).
*/ */
@ -24,7 +24,7 @@ native delete_file(const file[]);
native file_exists(const file[]); native file_exists(const file[]);
/* Returns a file size in bytes if flag is set to 0. /* Returns a file size in bytes if flag is set to 0.
When flag is set to 1 returns number of lines in the file, * When flag is set to 1 returns number of lines in the file,
and when flags is 2, function returns 1 if the file ends * and when flags is 2, function returns 1 if the file ends
with line feed. If file doesn't exist returns -1.*/ * with line feed. If file doesn't exist returns -1. */
native file_size(const file[], flag=0); native file_size(const file[], flag=0);

View File

@ -1,31 +1,23 @@
/* Fun functions /* Fun functions
* *
* (c) 2002-2004, OLO * (c) 2004, the AMX Mod X Development Team
* modified by BAILOPAN, Manip, PM, SniperBeamer
* *
* This file is provided as is (no warranties). * This file is provided as is (no warranties).
*/ */
/* Sets who can listen who. Function returns 0 /* (untested) Returns 1 if receiver hears sender via voice communication. */
* if for some reasons this setting can't be done. */ native get_client_listen(receiver, sender);
native set_user_listening(receiver,sender,listen);
/* Returns 1 if receiver hears sender via voice communication. */ /* (untested) Sets who can listen who. Function returns 0 if for some reasons this setting can't be done. */
native get_user_listening(receiver,sender); native set_client_listen(receiver, sender, listen);
/* Sets player godmode. If you want to disable godmode set only first parameter. */ /* Sets player godmode. If you want to disable godmode set only first parameter. */
native set_user_godmode(index, godmode = 0); native set_user_godmode(index, godmode = 0);
/* Returns 1 if godmode is set. */ /* (untested) Returns 1 if godmode is set. */
native get_user_godmode(index); native get_user_godmode(index);
/* Sets player noclip. If you want to disable noclip set only first parameter. */ /* Sets player frags. Doesn't autoupdate scoreboard, as Olo's version didn't. Fix? */
native set_user_noclip(index,noclip = 0);
/* Returns 1 if noclip is set. */
native get_user_noclip(index);
/* Sets player frags. */
native set_user_frags(index, frags); native set_user_frags(index, frags);
/* Sets player armor. */ /* Sets player armor. */
@ -45,7 +37,8 @@ native set_user_rendering(index,fx = kRenderFxNone, r=255,g=255,b=255, render =
* is announced with proper message to all players. */ * is announced with proper message to all players. */
native give_item(index, const item[]); native give_item(index, const item[]);
/* Sets hit zones for player. This event is announced /* (not yet implemented, don't know how to use native)
* Sets hit zones for player. This event is announced
* with proper message to all players. * with proper message to all players.
* Parts of body are as bits: * Parts of body are as bits:
* 2 - head * 2 - head
@ -55,14 +48,18 @@ native give_item(index,const item[]);
* 32 - right arm * 32 - right arm
* 64 - left leg * 64 - left leg
* 128 - right leg */ * 128 - right leg */
native set_user_hitzones(index=0,target=0,body=255); native set_hitzones(body = 255);
/* Returns hit zones for player. */ /* backwards compatibility */
native get_user_hitzones(index,target); stock set_user_hitzones(index=0,target=0,body=255)
return set_hitzones(body)
/* Makes that player spawns. This event is announced /* Get current hitzones. */
* with proper message to all players. */ native get_hitzones();
native user_spawn(index);
/* backwards compatibility */
stock get_user_hitzones(index,target)
return get_hitzones()
/* Sets users max. speed. */ /* Sets users max. speed. */
native set_user_maxspeed(index, Float:speed = -1.0); native set_user_maxspeed(index, Float:speed = -1.0);
@ -74,10 +71,20 @@ native Float:get_user_maxspeed(index);
native set_user_gravity(index, Float:gravity = 1.0); native set_user_gravity(index, Float:gravity = 1.0);
/* Returns users gravity. */ /* Returns users gravity. */
native Float:get_user_gravity(index); native get_user_gravity(index);
/* Gives money to user. */ /* Gives money to user. */
native set_user_money(index, money, flash = 1); native set_user_money(index, money, flash = 1);
/* Returns users money. */ /* Returns users money. */
native get_user_money(index); native get_user_money(index);
/* Spawns entity. */
native spawn(index);
/* backwards compatibility */
stock user_spawn(index)
return spawn(index)
/* CS: Set deaths(should be removed to CS module later) (doesn't update info right away? fix later?) */
native set_user_deaths_cs(index, newdeaths);

View File

@ -1,7 +1,7 @@
/* MySQL functions /* MySQL functions
* *
* (c) Copyright 2002-2004, dJeyL * (c) Copyright 2002-2004, dJeyL
* modified by BAILOPAN, Manip, PM, SniperBeamer * modified by the AMX Mod X Development Team
* *
* This file is provided as is (no warranties). * This file is provided as is (no warranties).
*/ */

View File

@ -1,7 +1,7 @@
/* Strings manipulation /* Strings manipulation
* *
* (c) 2002-2004, OLO * (c) 2002-2004, OLO
* modified by BAILOPAN, Manip, PM, SniperBeamer * modified by the AMX Mod X Development Team
* *
* This file is provided as is (no warranties). * This file is provided as is (no warranties).
*/ */

View File

@ -1,7 +1,7 @@
/* Vault /* Vault
* *
* (c) 2002-2004, OLO * (c) 2002-2004, OLO
* modified by BAILOPAN, Manip, PM, SniperBeamer * modified by the AMX Mod X Development Team
* *
* This file is provided as is (no warranties). * This file is provided as is (no warranties).
*/ */