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
*
* (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).
*/
// Uncomment if you are not using Steam
/* Uncomment if you are not using Steam */
//#define NO_STEAM
#define ADMIN_IMMUNITY (1<<0) /* flag "a" */
@ -161,7 +161,7 @@ enum {
/* Render for set_user_rendering() */
enum {
kRenderNormal, /* src */
kRenderNormal = 0, /* src */
kRenderTransColor, /* c*a+dest*(1-a) */
kRenderTransTexture, /* src*a+dest*(1-a) */
kRenderGlow, /* src*a+dest -- No Z buffer checks */
@ -194,6 +194,7 @@ enum {
kRenderFxClampMinScale, /* Keep this sprite from getting very small (SPRITES only!) */
}
/* Type for force_unmodified() */
enum {
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 */

View File

@ -1,23 +1,23 @@
/* AMX Mod X misc.
*
* (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).
*/
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)) ) {
console_print(id,"You have no access to that command")
return false
return 0
}
if (read_argc() < num) {
new hcmd[32], hinfo[128], hflag
get_concmd(cid,hcmd,31,hflag,hinfo,127,level)
console_print(id,"Usage: %s %s",hcmd,hinfo)
return false
return 0
}
return true
return 1
}
stock access(id,level)
@ -27,8 +27,7 @@ stock access(id,level)
* 1 - obey immunity
* 2 - allow yourself
* 4 - must be alive
* 8 - can't be bot
*/
* 8 - can't be bot */
stock cmd_target(id,const arg[],flags = 1) {
new player = find_player("bl",arg)
if (player) {

View File

@ -1,7 +1,7 @@
/* AMX Mod X functions
*
* (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).
*/
@ -115,8 +115,7 @@ native register_event(const event[],const function[],const flags[],cond[]="", ..
* "1=say"
* "3=Terrorists_Win"
* "1=entered the game"
* "0=Server cvar"
*/
* "0=Server cvar" */
native register_logevent(const function[], argsnum, ... );
/* Sets format for hudmessage. */
@ -446,8 +445,8 @@ native get_srvcmd(index,server_cmd[],len1,&flags, info[],len2, flag);
native get_srvcmdsnum(flag);
/* Gets info about console command. If id is set to 0,
then function returns only server cmds, if positive then
returns only client cmds. in other case returns all console commands. */
* then function returns only server cmds, if positive then
* returns only client cmds. in other case returns all console commands. */
native get_concmd(index,cmd[],len1,&flags, info[],len2, flag, id = -1);
/* Returns number of registered console commands. */

View File

@ -1,7 +1,7 @@
/* CS Stats functions
*
* (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).
*/

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
*
* (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).
*/
@ -24,7 +24,7 @@ native delete_file(const file[]);
native file_exists(const file[]);
/* 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,
and when flags is 2, function returns 1 if the file ends
with line feed. If file doesn't exist returns -1.*/
* 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
* with line feed. If file doesn't exist returns -1. */
native file_size(const file[], flag=0);

View File

@ -1,31 +1,23 @@
/* Fun functions
*
* (c) 2002-2004, OLO
* modified by BAILOPAN, Manip, PM, SniperBeamer
* (c) 2004, the AMX Mod X Development Team
*
* This file is provided as is (no warranties).
*/
/* Sets who can listen who. Function returns 0
* if for some reasons this setting can't be done. */
native set_user_listening(receiver,sender,listen);
/* (untested) Returns 1 if receiver hears sender via voice communication. */
native get_client_listen(receiver, sender);
/* Returns 1 if receiver hears sender via voice communication. */
native get_user_listening(receiver,sender);
/* (untested) Sets who can listen who. Function returns 0 if for some reasons this setting can't be done. */
native set_client_listen(receiver, sender, listen);
/* Sets player godmode. If you want to disable godmode set only first parameter. */
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);
/* Sets player noclip. If you want to disable noclip set only first parameter. */
native set_user_noclip(index,noclip = 0);
/* Returns 1 if noclip is set. */
native get_user_noclip(index);
/* Sets player frags. */
/* Sets player frags. Doesn't autoupdate scoreboard, as Olo's version didn't. Fix? */
native set_user_frags(index, frags);
/* 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. */
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.
* Parts of body are as bits:
* 2 - head
@ -55,14 +48,18 @@ native give_item(index,const item[]);
* 32 - right arm
* 64 - left leg
* 128 - right leg */
native set_user_hitzones(index=0,target=0,body=255);
native set_hitzones(body = 255);
/* Returns hit zones for player. */
native get_user_hitzones(index,target);
/* backwards compatibility */
stock set_user_hitzones(index=0,target=0,body=255)
return set_hitzones(body)
/* Makes that player spawns. This event is announced
* with proper message to all players. */
native user_spawn(index);
/* Get current hitzones. */
native get_hitzones();
/* backwards compatibility */
stock get_user_hitzones(index,target)
return get_hitzones()
/* Sets users max. speed. */
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);
/* Returns users gravity. */
native Float:get_user_gravity(index);
native get_user_gravity(index);
/* Gives money to user. */
native set_user_money(index, money, flash = 1);
/* Returns users money. */
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
*
* (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).
*/

View File

@ -1,7 +1,7 @@
/* Strings manipulation
*
* (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).
*/

View File

@ -1,7 +1,7 @@
/* Vault
*
* (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).
*/