plugins/include/entity_prop_stocks.inc
author David Anderson <dvander@alliedmods.net>
Sun Jan 06 01:35:24 2008 +0000 (2008-01-06)
changeset 1834 74d7a2edeb49
parent 1828 0df571678652
child 1837 652038bb27e6
permissions -rw-r--r--
commited a new version of this file. suffice to say the massive inconsistencies and clear compiling bugs in this was disappointing
ferret99gt@1800
     1
/**
ferret99gt@1800
     2
 * vim: set ts=4 :
ferret99gt@1800
     3
 * =============================================================================
ferret99gt@1800
     4
 * SourceMod (C)2004-2007 AlliedModders LLC.  All rights reserved.
ferret99gt@1800
     5
 * =============================================================================
ferret99gt@1800
     6
 *
ferret99gt@1800
     7
 * This file is part of the SourceMod/SourcePawn SDK.
ferret99gt@1800
     8
 *
ferret99gt@1800
     9
 * This program is free software; you can redistribute it and/or modify it under
ferret99gt@1800
    10
 * the terms of the GNU General Public License, version 3.0, as published by the
ferret99gt@1800
    11
 * Free Software Foundation.
ferret99gt@1800
    12
 * 
ferret99gt@1800
    13
 * This program is distributed in the hope that it will be useful, but WITHOUT
ferret99gt@1800
    14
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
ferret99gt@1800
    15
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
ferret99gt@1800
    16
 * details.
ferret99gt@1800
    17
 *
ferret99gt@1800
    18
 * You should have received a copy of the GNU General Public License along with
ferret99gt@1800
    19
 * this program.  If not, see <http://www.gnu.org/licenses/>.
ferret99gt@1800
    20
 *
ferret99gt@1800
    21
 * As a special exception, AlliedModders LLC gives you permission to link the
ferret99gt@1800
    22
 * code of this program (as well as its derivative works) to "Half-Life 2," the
ferret99gt@1800
    23
 * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
ferret99gt@1800
    24
 * by the Valve Corporation.  You must obey the GNU General Public License in
ferret99gt@1800
    25
 * all respects for all other code used.  Additionally, AlliedModders LLC grants
ferret99gt@1800
    26
 * this exception to all derivative works.  AlliedModders LLC defines further
ferret99gt@1800
    27
 * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
ferret99gt@1800
    28
 * or <http://www.sourcemod.net/license.php>.
ferret99gt@1800
    29
 *
ferret99gt@1800
    30
 * Version: $Id$
ferret99gt@1800
    31
 */
ferret99gt@1800
    32
 
ferret99gt@1800
    33
#if defined _entity_prop_stocks_included
ferret99gt@1800
    34
 #endinput
ferret99gt@1800
    35
#endif
ferret99gt@1800
    36
#define _entity_prop_stocks_included
ferret99gt@1800
    37
ferret99gt@1800
    38
enum
ferret99gt@1800
    39
{
ferret99gt@1800
    40
	MOVETYPE_NONE = 0,			/** never moves */
ferret99gt@1800
    41
	MOVETYPE_ISOMETRIC,			/** For players */
ferret99gt@1800
    42
	MOVETYPE_WALK,				/** Player only - moving on the ground */
ferret99gt@1800
    43
	MOVETYPE_STEP,				/** gravity, special edge handling -- monsters use this */
ferret99gt@1800
    44
	MOVETYPE_FLY,				/** No gravity, but still collides with stuff */
ferret99gt@1800
    45
	MOVETYPE_FLYGRAVITY,			/** flies through the air + is affected by gravity */
ferret99gt@1800
    46
	MOVETYPE_VPHYSICS,			/** uses VPHYSICS for simulation */
ferret99gt@1800
    47
	MOVETYPE_PUSH,				/** no clip to world, push and crush */
ferret99gt@1800
    48
	MOVETYPE_NOCLIP,			/** No gravity, no collisions, still do velocity/avelocity */
ferret99gt@1800
    49
	MOVETYPE_LADDER,			/** Used by players only when going onto a ladder */
ferret99gt@1800
    50
	MOVETYPE_OBSERVER,			/** Observer movement, depends on player's observer mode */
ferret99gt@1800
    51
	MOVETYPE_CUSTOM,			/** Allows the entity to describe its own physics */
ferret99gt@1800
    52
};
ferret99gt@1800
    53
pred@1826
    54
#define IN_ATTACK		(1 << 0)
pred@1826
    55
#define IN_JUMP			(1 << 1)
pred@1826
    56
#define IN_DUCK			(1 << 2)
pred@1826
    57
#define IN_FORWARD		(1 << 3)
pred@1826
    58
#define IN_BACK			(1 << 4)
pred@1826
    59
#define IN_USE			(1 << 5)
pred@1826
    60
#define IN_CANCEL		(1 << 6)
pred@1826
    61
#define IN_LEFT			(1 << 7)
pred@1826
    62
#define IN_RIGHT		(1 << 8)
pred@1826
    63
#define IN_MOVELEFT		(1 << 9)
pred@1826
    64
#define IN_MOVERIGHT	(1 << 10)
pred@1826
    65
#define IN_ATTACK2		(1 << 11)
pred@1826
    66
#define IN_RUN			(1 << 12)
pred@1826
    67
#define IN_RELOAD		(1 << 13)
pred@1826
    68
#define IN_ALT1			(1 << 14)
pred@1826
    69
#define IN_ALT2			(1 << 15)
pred@1826
    70
#define IN_SCORE		(1 << 16)   // Used by client.dll for when scoreboard is held down
pred@1826
    71
#define IN_SPEED		(1 << 17)	// Player is holding the speed key
pred@1826
    72
#define IN_WALK			(1 << 18)	// Player holding walk key
pred@1826
    73
#define IN_ZOOM			(1 << 19)	// Zoom key for HUD zoom
pred@1826
    74
#define IN_WEAPON1		(1 << 20)	// weapon defines these bits
pred@1826
    75
#define IN_WEAPON2		(1 << 21)	// weapon defines these bits
pred@1826
    76
#define IN_BULLRUSH		(1 << 22)
pred@1826
    77
#define IN_GRENADE1		(1 << 23)	// grenade 1
pred@1826
    78
#define IN_GRENADE2		(1 << 24)	// grenade 2
pred@1826
    79
ferret99gt@1800
    80
/**
ferret99gt@1820
    81
 * Gets an entity's movetype.
ferret99gt@1820
    82
 *
dvander@1834
    83
 * @param entity	Entity index.
dvander@1834
    84
 * @return			Movetype, see enum above.
dvander@1834
    85
 * @error			Invalid entity index, or lack of mod compliance.
ferret99gt@1820
    86
 */
dvander@1834
    87
stock GetEntityMovetype(entity)
ferret99gt@1820
    88
{
dvander@1834
    89
	new offset = GetEntSendPropOffs(entity, "movetype");
dvander@1834
    90
	return GetEntData(entity, offset, 1);
ferret99gt@1820
    91
}
ferret99gt@1820
    92
ferret99gt@1820
    93
/**
ferret99gt@1820
    94
 * Sets an entity's movetype.
ferret99gt@1800
    95
 *
dvander@1834
    96
 * @param entity	Entity index.
dvander@1834
    97
 * @param mt		Movetype, see enum above.
ferret99gt@1800
    98
 * @noreturn
dvander@1834
    99
 * @error			Invalid entity index, or lack of mod compliance.
ferret99gt@1800
   100
 */
dvander@1834
   101
stock SetEntityMovetype(entity, mt)
ferret99gt@1800
   102
{
dvander@1834
   103
	new offset = GetEntSendPropOffs(entity, "movetype");
dvander@1834
   104
	SetEntData(entity, offset, mt, 1, true);
ferret99gt@1800
   105
}
ferret99gt@1800
   106
ferret99gt@1800
   107
/**
ferret99gt@1800
   108
 * Sets an entity's color.
ferret99gt@1800
   109
 *
dvander@1834
   110
 * @param entity	Entity index
ferret99gt@1800
   111
 * @param r 		Amount of red (0-255)
ferret99gt@1800
   112
 * @param g 		Amount of green (0-255)
ferret99gt@1800
   113
 * @param b 		Amount of blue (0-255)
ferret99gt@1800
   114
 * @param a 		Amount of alpha (0-255)
ferret99gt@1800
   115
 * @noreturn
dvander@1834
   116
 * @error			Invalid entity index, or lack of mod compliance.
ferret99gt@1800
   117
 */
dvander@1834
   118
stock SetEntityRenderColor(entity, r=255, g=255, b=255, a=255)
ferret99gt@1800
   119
{
dvander@1834
   120
	new offset = GetEntSendPropOffs(entity, "m_clrRender");
dvander@1834
   121
	SetEntData(entity, offset, r, 1, true);
dvander@1834
   122
	SetEntData(entity, offset + 1, g, 1, true);
dvander@1834
   123
	SetEntData(entity, offset + 2, b, 1, true);
dvander@1834
   124
	SetEntData(entity, offset + 3, a, 1, true);
ferret99gt@1820
   125
}
ferret99gt@1820
   126
ferret99gt@1820
   127
/**
ferret99gt@1820
   128
 * Gets an entity's gravity.
ferret99gt@1820
   129
 *
dvander@1834
   130
 * @param entity 	Entity index.
dvander@1834
   131
 * @return			Entity's m_flGravity value.
dvander@1834
   132
 * @error			Invalid entity index, or lack of mod compliance.
ferret99gt@1820
   133
 */
dvander@1834
   134
stock Float:GetEntityGravity(entity)
ferret99gt@1820
   135
{
dvander@1834
   136
	return GetEntPropFloat(entity, Prop_Data, "m_flGravity");
ferret99gt@1820
   137
}
ferret99gt@1820
   138
ferret99gt@1820
   139
/**
ferret99gt@1820
   140
 * Sets an entity's gravity.
ferret99gt@1820
   141
 *
dvander@1834
   142
 * @param entity	Entity index.
dvander@1834
   143
 * @param amount	Gravity to set (default = 800).
ferret99gt@1820
   144
 * @noreturn
dvander@1834
   145
 * @error			Invalid entity index, or lack of mod compliance.
ferret99gt@1820
   146
 */
dvander@1834
   147
stock SetEntityGravity(entity, Float:amount)
ferret99gt@1820
   148
{
dvander@1834
   149
	SetEntPropFloat(entity, Prop_Data, "m_flGravity", amount);
ferret99gt@1820
   150
}
ferret99gt@1820
   151
ferret99gt@1820
   152
/**
ferret99gt@1820
   153
 * Sets an entity's health
ferret99gt@1820
   154
 *
dvander@1834
   155
 * @param entity	Entity index.
dvander@1834
   156
 * @param amount	Health amount.
ferret99gt@1820
   157
 * @noreturn
dvander@1834
   158
 * @error			Invalid entity index, or lack of mod compliance.
ferret99gt@1820
   159
 */
dvander@1834
   160
stock SetEntityHealth(entity, amount)
ferret99gt@1820
   161
{
dvander@1834
   162
	SetEntProp(entity, Prop_Send, "m_iHealth", amount);
pred@1826
   163
}
pred@1826
   164
pred@1826
   165
/**
pred@1826
   166
 * Get's a users current pressed buttons
pred@1826
   167
 *
pred@1826
   168
 * @param client	Client index
pred@1826
   169
 * @return			Bitsum of buttons
dvander@1834
   170
 * @error			Invalid client index, client not in game, 
dvander@1834
   171
 *					or lack of mod compliance.
pred@1826
   172
 */
pred@1826
   173
stock GetClientButtons(client)
pred@1826
   174
{
dvander@1834
   175
	return GetEntProp(client, Prop_Data, "m_nButtons");
dvander@1834
   176
}
dvander@1834
   177