Expanded ESF entries (they had the Linux binary in a retarded location).
Added vanilla HLDM support. Fixed a weird crash when compiled in release build for Linux. Expanded HamFilter error messages a tad.
This commit is contained in:
parent
d38d2f56e1
commit
504ddb4c2f
|
@ -48,12 +48,14 @@ else
|
||||||
OPT_FLAGS = $(SANE_OPT_FLAGS)
|
OPT_FLAGS = $(SANE_OPT_FLAGS)
|
||||||
endif
|
endif
|
||||||
ifeq "$(GCC_VERSION)" "4"
|
ifeq "$(GCC_VERSION)" "4"
|
||||||
OPT_FLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
|
# OPT_FLAGS += -fvisibility=hidden
|
||||||
|
#-fvisibility-inlines-hidden
|
||||||
|
OPT_FLAGS += -g -ggdb3
|
||||||
endif
|
endif
|
||||||
CFLAGS = $(OPT_FLAGS)
|
CFLAGS = $(OPT_FLAGS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CFLAGS += -fPIC -Wall -Wno-non-virtual-dtor -fno-exceptions -DHAVE_STDINT_H -fno-rtti
|
CFLAGS += -fPIC -Wall -Wno-non-virtual-dtor -fno-exceptions -DHAVE_STDINT_H -fno-rtti -Werror
|
||||||
|
|
||||||
BINARY = $(NAME)_$(BIN_SUFFIX)
|
BINARY = $(NAME)_$(BIN_SUFFIX)
|
||||||
CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
|
CFLAGS += -DPAWN_CELL_SIZE=32 -DJIT -DASM32
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include "hook.h"
|
#include "hook.h"
|
||||||
#include "ham_const.h"
|
#include "ham_const.h"
|
||||||
#include "hooklist.h"
|
#include "hooklist.h"
|
||||||
|
#include "offsets.h"
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
edict_t *NEW_FirstEdict;
|
edict_t *NEW_FirstEdict;
|
||||||
|
@ -27,10 +28,25 @@ void OnAmxxAttach(void)
|
||||||
assert(strcmp(hooklist[Ham_NS_UpdateOnRemove].name, "ns_updateonremove")==0);
|
assert(strcmp(hooklist[Ham_NS_UpdateOnRemove].name, "ns_updateonremove")==0);
|
||||||
|
|
||||||
if (ReadConfig() > 0)
|
if (ReadConfig() > 0)
|
||||||
|
{
|
||||||
|
if (Offsets.IsValid())
|
||||||
{
|
{
|
||||||
MF_AddNatives(RegisterNatives);
|
MF_AddNatives(RegisterNatives);
|
||||||
MF_AddNatives(ReturnNatives);
|
MF_AddNatives(ReturnNatives);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
#ifdef _WIN32
|
||||||
|
MF_Log("Error: pev and base not set for section \"%s windows\", cannot register natives.", MF_GetModname());
|
||||||
|
#elif defined __linux__
|
||||||
|
MF_Log("Error: pev and base not set for section \"%s linux\", cannot register natives.", MF_GetModname());
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MF_Log("Error: Cannot read config file, natives not registered!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HamCommand(void);
|
void HamCommand(void);
|
||||||
|
|
|
@ -277,6 +277,29 @@ cell Call_Int_Entvar_Entvar_Float_Int(AMX *amx, cell *params)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cell Call_Int_Entvar_Entvar_Float_Float_Int(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
SETUP(5);
|
||||||
|
|
||||||
|
int id3=*MF_GetAmxAddr(amx, params[3]);
|
||||||
|
int id4=*MF_GetAmxAddr(amx, params[4]);
|
||||||
|
float f5=amx_ctof2(*MF_GetAmxAddr(amx, params[5]));
|
||||||
|
float f6=amx_ctof2(*MF_GetAmxAddr(amx, params[6]));
|
||||||
|
int i7=*MF_GetAmxAddr(amx, params[7]);
|
||||||
|
|
||||||
|
CHECK_ENTITY(id3);
|
||||||
|
CHECK_ENTITY(id4);
|
||||||
|
|
||||||
|
entvars_t *ev3=&(INDEXENT_NEW(id3)->v);
|
||||||
|
entvars_t *ev4=&(INDEXENT_NEW(id4)->v);
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
return reinterpret_cast<int (__fastcall *)(void *, int, entvars_t *, entvars_t *, float, float, int)>(__func)(pv, 0, ev3, ev4, f5, f6, i7);
|
||||||
|
#elif defined __linux__
|
||||||
|
return reinterpret_cast<int (*)(void *, entvars_t *, entvars_t *, float, float, int)>(__func)(pv, ev3, ev4, f5, f6, i7);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
cell Call_Void_Int(AMX *amx, cell *params)
|
cell Call_Void_Int(AMX *amx, cell *params)
|
||||||
{
|
{
|
||||||
SETUP(1);
|
SETUP(1);
|
||||||
|
|
|
@ -26,6 +26,8 @@ cell Call_Int_Entvar(AMX *amx, cell *params);
|
||||||
|
|
||||||
cell Call_Int_Entvar_Entvar_Float_Int(AMX *amx, cell *params);
|
cell Call_Int_Entvar_Entvar_Float_Int(AMX *amx, cell *params);
|
||||||
|
|
||||||
|
cell Call_Int_Entvar_Entvar_Float_Float_Int(AMX *amx, cell *params);
|
||||||
|
|
||||||
cell Call_Void_Int(AMX *amx, cell *params);
|
cell Call_Void_Int(AMX *amx, cell *params);
|
||||||
|
|
||||||
cell Call_Void_Cbase_Cbase_Int_Float(AMX *amx, cell *params);
|
cell Call_Void_Cbase_Cbase_Int_Float(AMX *amx, cell *params);
|
||||||
|
|
|
@ -42,7 +42,6 @@
|
||||||
|
|
||||||
@mirror cstrike czero
|
@mirror cstrike czero
|
||||||
@mirror ns nsp
|
@mirror ns nsp
|
||||||
@mirror esf esf_openbeta
|
|
||||||
|
|
||||||
; TODO: check these - all are estimates
|
; TODO: check these - all are estimates
|
||||||
@section cstrike linux
|
@section cstrike linux
|
||||||
|
@ -1146,11 +1145,604 @@
|
||||||
use 46
|
use 46
|
||||||
@end
|
@end
|
||||||
|
|
||||||
; ESF also has no linux binaries.
|
|
||||||
@section esf windows
|
@section esf windows
|
||||||
pev 4
|
pev 4
|
||||||
base 0x0
|
base 0x0
|
||||||
|
|
||||||
takedamage 12
|
spawn 0
|
||||||
use 46
|
precache 1
|
||||||
|
keyvalue 2
|
||||||
|
objectcaps 5
|
||||||
|
activate 6
|
||||||
|
setobjectcollisionbox 7
|
||||||
|
classify 8
|
||||||
|
deathnotice 9
|
||||||
|
traceattack 10
|
||||||
|
takedamage 11
|
||||||
|
takehealth 12
|
||||||
|
killed 13
|
||||||
|
bloodcolor 14
|
||||||
|
tracebleed 15
|
||||||
|
istriggered 16
|
||||||
|
mymonsterpointer 17
|
||||||
|
mysquadmonsterpointer 18
|
||||||
|
gettogglestate 19
|
||||||
|
addpoints 20
|
||||||
|
addpointstoteam 21
|
||||||
|
addplayeritem 22
|
||||||
|
removeplayeritem 23
|
||||||
|
getdelay 24
|
||||||
|
ismoving 25
|
||||||
|
overridereset 26
|
||||||
|
damagedecal 27
|
||||||
|
settogglestate 28
|
||||||
|
startsneaking 29
|
||||||
|
stopsneaking 30
|
||||||
|
oncontrols 31
|
||||||
|
issneaking 32
|
||||||
|
isalive 33
|
||||||
|
isbspmodel 34
|
||||||
|
reflectgauss 35
|
||||||
|
hastarget 36
|
||||||
|
isinworld 37
|
||||||
|
isplayer 38
|
||||||
|
isnetclient 39
|
||||||
|
teamid 40
|
||||||
|
getnexttarget 41
|
||||||
|
think 42
|
||||||
|
touch 43
|
||||||
|
use 44
|
||||||
|
blocked 45
|
||||||
|
respawn 46
|
||||||
|
updateowner 47
|
||||||
|
fbecomeprone 48
|
||||||
|
center 49
|
||||||
|
eyeposition 50
|
||||||
|
earposition 51
|
||||||
|
bodytarget 52
|
||||||
|
illumination 53
|
||||||
|
fvisible 54
|
||||||
|
fvecvisible 55
|
||||||
|
|
||||||
|
player_jump 124
|
||||||
|
player_prethink 125
|
||||||
|
player_postthink 126
|
||||||
|
player_getgunposition 118
|
||||||
|
player_shouldfadeondeath 59
|
||||||
|
player_impulsecommands 128
|
||||||
|
player_updateclientdata 127
|
||||||
|
|
||||||
|
item_addtoplayer 57
|
||||||
|
item_addduplicate 58
|
||||||
|
item_getiteminfo 59
|
||||||
|
item_candeploy 60
|
||||||
|
item_deploy 61
|
||||||
|
item_canholster 62
|
||||||
|
item_holster 63
|
||||||
|
item_updateiteminfo 64
|
||||||
|
item_preframe 65
|
||||||
|
item_postframe 66
|
||||||
|
item_drop 67
|
||||||
|
item_kill 68
|
||||||
|
item_attachtoplayer 69
|
||||||
|
item_primaryammoindex 70
|
||||||
|
item_secondaryammoindex 71
|
||||||
|
item_updateclientdata 72
|
||||||
|
item_getweaponptr 73
|
||||||
|
item_itemslot 74
|
||||||
|
|
||||||
|
weapon_playemptysound 75
|
||||||
|
weapon_resetemptysound 76
|
||||||
|
weapon_sendweaponanim 77
|
||||||
|
weapon_primaryattack 78
|
||||||
|
weapon_secondaryattack 79
|
||||||
|
weapon_weaponidle 80
|
||||||
|
weapon_retireweapon 81
|
||||||
|
weapon_shouldweaponidle 82
|
||||||
|
weapon_usedecrement 83
|
||||||
|
@end
|
||||||
|
@section esf linux
|
||||||
|
pev 0
|
||||||
|
base 0x60
|
||||||
|
|
||||||
|
spawn 2
|
||||||
|
precache 3
|
||||||
|
keyvalue 4
|
||||||
|
objectcaps 7
|
||||||
|
activate 8
|
||||||
|
setobjectcollisionbox 9
|
||||||
|
classify 10
|
||||||
|
deathnotice 11
|
||||||
|
traceattack 12
|
||||||
|
takedamage 13
|
||||||
|
takehealth 14
|
||||||
|
killed 15
|
||||||
|
bloodcolor 16
|
||||||
|
tracebleed 17
|
||||||
|
istriggered 18
|
||||||
|
mymonsterpointer 19
|
||||||
|
mysquadmonsterpointer 20
|
||||||
|
gettogglestate 21
|
||||||
|
addpoints 22
|
||||||
|
addpointstoteam 23
|
||||||
|
addplayeritem 24
|
||||||
|
removeplayeritem 25
|
||||||
|
getdelay 26
|
||||||
|
ismoving 27
|
||||||
|
overridereset 28
|
||||||
|
damagedecal 29
|
||||||
|
settogglestate 30
|
||||||
|
startsneaking 31
|
||||||
|
stopsneaking 32
|
||||||
|
oncontrols 33
|
||||||
|
issneaking 34
|
||||||
|
isalive 35
|
||||||
|
isbspmodel 36
|
||||||
|
reflectgauss 37
|
||||||
|
hastarget 38
|
||||||
|
isinworld 39
|
||||||
|
isplayer 40
|
||||||
|
isnetclient 41
|
||||||
|
teamid 42
|
||||||
|
getnexttarget 43
|
||||||
|
think 44
|
||||||
|
touch 45
|
||||||
|
use 46
|
||||||
|
blocked 47
|
||||||
|
respawn 48
|
||||||
|
updateowner 49
|
||||||
|
fbecomeprone 50
|
||||||
|
center 51
|
||||||
|
eyeposition 52
|
||||||
|
earposition 53
|
||||||
|
bodytarget 54
|
||||||
|
illumination 55
|
||||||
|
fvisible 56
|
||||||
|
fvecvisible 57
|
||||||
|
|
||||||
|
player_jump 126
|
||||||
|
player_prethink 127
|
||||||
|
player_postthink 128
|
||||||
|
player_getgunposition 120
|
||||||
|
player_shouldfadeondeath 61
|
||||||
|
player_impulsecommands 130
|
||||||
|
player_updateclientdata 129
|
||||||
|
|
||||||
|
item_addtoplayer 59
|
||||||
|
item_addduplicate 60
|
||||||
|
item_getiteminfo 61
|
||||||
|
item_candeploy 62
|
||||||
|
item_deploy 63
|
||||||
|
item_canholster 64
|
||||||
|
item_holster 65
|
||||||
|
item_updateiteminfo 66
|
||||||
|
item_preframe 67
|
||||||
|
item_postframe 68
|
||||||
|
item_drop 69
|
||||||
|
item_kill 70
|
||||||
|
item_attachtoplayer 71
|
||||||
|
item_primaryammoindex 72
|
||||||
|
item_secondaryammoindex 73
|
||||||
|
item_updateclientdata 74
|
||||||
|
item_getweaponptr 75
|
||||||
|
item_itemslot 76
|
||||||
|
|
||||||
|
weapon_playemptysound 77
|
||||||
|
weapon_resetemptysound 78
|
||||||
|
weapon_sendweaponanim 79
|
||||||
|
weapon_primaryattack 80
|
||||||
|
weapon_secondaryattack 81
|
||||||
|
weapon_weaponidle 82
|
||||||
|
weapon_retireweapon 83
|
||||||
|
weapon_shouldweaponidle 84
|
||||||
|
weapon_usedecrement 85
|
||||||
|
@end
|
||||||
|
|
||||||
|
; ESF Open Beta is built with GCC 3.x, and the VTable was slightly changed
|
||||||
|
@section esf_openbeta linux
|
||||||
|
pev 4
|
||||||
|
base 0x0
|
||||||
|
|
||||||
|
spawn 0
|
||||||
|
precache 1
|
||||||
|
keyvalue 2
|
||||||
|
objectcaps 5
|
||||||
|
activate 6
|
||||||
|
setobjectcollisionbox 7
|
||||||
|
classify 8
|
||||||
|
deathnotice 9
|
||||||
|
traceattack 10
|
||||||
|
takedamage 11
|
||||||
|
takehealth 13
|
||||||
|
killed 14
|
||||||
|
bloodcolor 15
|
||||||
|
tracebleed 16
|
||||||
|
istriggered 17
|
||||||
|
mymonsterpointer 18
|
||||||
|
mysquadmonsterpointer 19
|
||||||
|
gettogglestate 20
|
||||||
|
addpoints 21
|
||||||
|
addpointstoteam 22
|
||||||
|
addplayeritem 23
|
||||||
|
removeplayeritem 24
|
||||||
|
getdelay 25
|
||||||
|
ismoving 26
|
||||||
|
overridereset 27
|
||||||
|
damagedecal 28
|
||||||
|
settogglestate 29
|
||||||
|
startsneaking 30
|
||||||
|
stopsneaking 31
|
||||||
|
oncontrols 32
|
||||||
|
issneaking 33
|
||||||
|
isalive 34
|
||||||
|
isbspmodel 35
|
||||||
|
reflectgauss 36
|
||||||
|
hastarget 37
|
||||||
|
isinworld 38
|
||||||
|
isplayer 39
|
||||||
|
isnetclient 41
|
||||||
|
teamid 42
|
||||||
|
getnexttarget 43
|
||||||
|
think 44
|
||||||
|
touch 45
|
||||||
|
use 46
|
||||||
|
blocked 47
|
||||||
|
respawn 48
|
||||||
|
updateowner 49
|
||||||
|
fbecomeprone 50
|
||||||
|
center 51
|
||||||
|
eyeposition 52
|
||||||
|
earposition 53
|
||||||
|
bodytarget 54
|
||||||
|
illumination 55
|
||||||
|
fvisible 56
|
||||||
|
fvecvisible 57
|
||||||
|
|
||||||
|
player_jump 131
|
||||||
|
player_prethink 132
|
||||||
|
player_postthink 133
|
||||||
|
player_getgunposition 120
|
||||||
|
player_shouldfadeondeath 61
|
||||||
|
player_impulsecommands 135
|
||||||
|
player_updateclientdata 134
|
||||||
|
|
||||||
|
item_addtoplayer 59
|
||||||
|
item_addduplicate 60
|
||||||
|
item_getiteminfo 61
|
||||||
|
item_candeploy 62
|
||||||
|
item_deploy 63
|
||||||
|
item_canholster 64
|
||||||
|
item_holster 65
|
||||||
|
item_updateiteminfo 66
|
||||||
|
item_preframe 67
|
||||||
|
item_postframe 68
|
||||||
|
item_drop 69
|
||||||
|
item_kill 70
|
||||||
|
item_attachtoplayer 71
|
||||||
|
item_primaryammoindex 72
|
||||||
|
item_secondaryammoindex 73
|
||||||
|
item_updateclientdata 74
|
||||||
|
item_getweaponptr 75
|
||||||
|
item_itemslot 76
|
||||||
|
|
||||||
|
weapon_playemptysound 77
|
||||||
|
weapon_resetemptysound 78
|
||||||
|
weapon_sendweaponanim 79
|
||||||
|
weapon_primaryattack 80
|
||||||
|
weapon_secondaryattack 81
|
||||||
|
weapon_weaponidle 82
|
||||||
|
weapon_retireweapon 83
|
||||||
|
weapon_shouldweaponidle 84
|
||||||
|
weapon_usedecrement 85
|
||||||
|
|
||||||
|
esf_isenvmodel 40
|
||||||
|
esf_takedamage2 12
|
||||||
|
|
||||||
|
@end
|
||||||
|
@section esf_openbeta windows
|
||||||
|
pev 4
|
||||||
|
base 0x0
|
||||||
|
|
||||||
|
spawn 0
|
||||||
|
precache 1
|
||||||
|
keyvalue 2
|
||||||
|
objectcaps 5
|
||||||
|
activate 6
|
||||||
|
setobjectcollisionbox 7
|
||||||
|
classify 8
|
||||||
|
deathnotice 9
|
||||||
|
traceattack 10
|
||||||
|
takedamage 11
|
||||||
|
takehealth 13
|
||||||
|
killed 14
|
||||||
|
bloodcolor 15
|
||||||
|
tracebleed 16
|
||||||
|
istriggered 17
|
||||||
|
mymonsterpointer 18
|
||||||
|
mysquadmonsterpointer 19
|
||||||
|
gettogglestate 20
|
||||||
|
addpoints 21
|
||||||
|
addpointstoteam 22
|
||||||
|
addplayeritem 23
|
||||||
|
removeplayeritem 24
|
||||||
|
getdelay 25
|
||||||
|
ismoving 26
|
||||||
|
overridereset 27
|
||||||
|
damagedecal 28
|
||||||
|
settogglestate 29
|
||||||
|
startsneaking 30
|
||||||
|
stopsneaking 31
|
||||||
|
oncontrols 32
|
||||||
|
issneaking 33
|
||||||
|
isalive 34
|
||||||
|
isbspmodel 35
|
||||||
|
reflectgauss 36
|
||||||
|
hastarget 37
|
||||||
|
isinworld 38
|
||||||
|
isplayer 39
|
||||||
|
isnetclient 41
|
||||||
|
teamid 42
|
||||||
|
getnexttarget 43
|
||||||
|
think 44
|
||||||
|
touch 45
|
||||||
|
use 46
|
||||||
|
blocked 47
|
||||||
|
respawn 48
|
||||||
|
updateowner 49
|
||||||
|
fbecomeprone 50
|
||||||
|
center 51
|
||||||
|
eyeposition 52
|
||||||
|
earposition 53
|
||||||
|
bodytarget 54
|
||||||
|
illumination 55
|
||||||
|
fvisible 56
|
||||||
|
fvecvisible 57
|
||||||
|
|
||||||
|
player_jump 131
|
||||||
|
player_prethink 132
|
||||||
|
player_postthink 133
|
||||||
|
player_getgunposition 120
|
||||||
|
player_shouldfadeondeath 61
|
||||||
|
player_impulsecommands 135
|
||||||
|
player_updateclientdata 134
|
||||||
|
|
||||||
|
item_addtoplayer 59
|
||||||
|
item_addduplicate 60
|
||||||
|
item_getiteminfo 61
|
||||||
|
item_candeploy 62
|
||||||
|
item_deploy 63
|
||||||
|
item_canholster 64
|
||||||
|
item_holster 65
|
||||||
|
item_updateiteminfo 66
|
||||||
|
item_preframe 67
|
||||||
|
item_postframe 68
|
||||||
|
item_drop 69
|
||||||
|
item_kill 70
|
||||||
|
item_attachtoplayer 71
|
||||||
|
item_primaryammoindex 72
|
||||||
|
item_secondaryammoindex 73
|
||||||
|
item_updateclientdata 74
|
||||||
|
item_getweaponptr 75
|
||||||
|
item_itemslot 76
|
||||||
|
|
||||||
|
weapon_playemptysound 77
|
||||||
|
weapon_resetemptysound 78
|
||||||
|
weapon_sendweaponanim 79
|
||||||
|
weapon_primaryattack 80
|
||||||
|
weapon_secondaryattack 81
|
||||||
|
weapon_weaponidle 82
|
||||||
|
weapon_retireweapon 83
|
||||||
|
weapon_shouldweaponidle 84
|
||||||
|
weapon_usedecrement 85
|
||||||
|
|
||||||
|
esf_isenvmodel 40
|
||||||
|
esf_takedamage2 12
|
||||||
|
|
||||||
|
@end
|
||||||
|
@section valve linux
|
||||||
|
pev 0
|
||||||
|
base 0x60
|
||||||
|
|
||||||
|
spawn 2
|
||||||
|
precache 3
|
||||||
|
keyvalue 4
|
||||||
|
objectcaps 7
|
||||||
|
activate 8
|
||||||
|
setobjectcollisionbox 9
|
||||||
|
classify 10
|
||||||
|
deathnotice 11
|
||||||
|
traceattack 12
|
||||||
|
takedamage 13
|
||||||
|
takehealth 14
|
||||||
|
killed 15
|
||||||
|
bloodcolor 16
|
||||||
|
tracebleed 17
|
||||||
|
istriggered 18
|
||||||
|
mymonsterpointer 19
|
||||||
|
mysquadmonsterpointer 20
|
||||||
|
gettogglestate 21
|
||||||
|
addpoints 22
|
||||||
|
addpointstoteam 23
|
||||||
|
addplayeritem 24
|
||||||
|
removeplayeritem 25
|
||||||
|
giveammo 26
|
||||||
|
getdelay 27
|
||||||
|
ismoving 28
|
||||||
|
overridereset 29
|
||||||
|
damagedecal 30
|
||||||
|
settogglestate 31
|
||||||
|
startsneaking 32
|
||||||
|
stopsneaking 33
|
||||||
|
oncontrols 34
|
||||||
|
issneaking 35
|
||||||
|
isalive 36
|
||||||
|
isbspmodel 37
|
||||||
|
reflectgauss 38
|
||||||
|
hastarget 39
|
||||||
|
isinworld 40
|
||||||
|
isplayer 41
|
||||||
|
isnetclient 42
|
||||||
|
teamid 43
|
||||||
|
getnexttarget 44
|
||||||
|
think 45
|
||||||
|
touch 46
|
||||||
|
use 47
|
||||||
|
blocked 48
|
||||||
|
respawn 49
|
||||||
|
updateowner 50
|
||||||
|
fbecomeprone 51
|
||||||
|
center 52
|
||||||
|
eyeposition 53
|
||||||
|
earposition 54
|
||||||
|
bodytarget 55
|
||||||
|
illumination 56
|
||||||
|
fvisible 57
|
||||||
|
fvecvisible 58
|
||||||
|
|
||||||
|
player_jump 127
|
||||||
|
player_duck 128
|
||||||
|
player_prethink 129
|
||||||
|
player_postthink 130
|
||||||
|
player_getgunposition 121
|
||||||
|
player_shouldfadeondeath 62
|
||||||
|
player_impulsecommands 132
|
||||||
|
player_updateclientdata 131
|
||||||
|
|
||||||
|
item_addtoplayer 60
|
||||||
|
item_addduplicate 61
|
||||||
|
item_getiteminfo 62
|
||||||
|
item_candeploy 63
|
||||||
|
item_deploy 64
|
||||||
|
item_canholster 65
|
||||||
|
item_holster 66
|
||||||
|
item_updateiteminfo 67
|
||||||
|
item_preframe 68
|
||||||
|
item_postframe 69
|
||||||
|
item_drop 70
|
||||||
|
item_kill 71
|
||||||
|
item_attachtoplayer 72
|
||||||
|
item_primaryammoindex 73
|
||||||
|
item_secondaryammoindex 74
|
||||||
|
item_updateclientdata 75
|
||||||
|
item_getweaponptr 76
|
||||||
|
item_itemslot 77
|
||||||
|
|
||||||
|
weapon_extractammo 78
|
||||||
|
weapon_extractclipammo 79
|
||||||
|
weapon_addweapon 80
|
||||||
|
weapon_playemptysound 81
|
||||||
|
weapon_resetemptysound 82
|
||||||
|
weapon_sendweaponanim 83
|
||||||
|
weapon_isusable 84
|
||||||
|
weapon_primaryattack 85
|
||||||
|
weapon_secondaryattack 86
|
||||||
|
weapon_reload 87
|
||||||
|
weapon_weaponidle 88
|
||||||
|
weapon_retireweapon 89
|
||||||
|
weapon_shouldweaponidle 90
|
||||||
|
weapon_usedecrement 91
|
||||||
|
@end
|
||||||
|
@section valve windows
|
||||||
|
pev 4
|
||||||
|
base 0x0
|
||||||
|
|
||||||
|
spawn 0
|
||||||
|
precache 1
|
||||||
|
keyvalue 2
|
||||||
|
objectcaps 5
|
||||||
|
activate 6
|
||||||
|
setobjectcollisionbox 7
|
||||||
|
classify 8
|
||||||
|
deathnotice 9
|
||||||
|
traceattack 10
|
||||||
|
takedamage 11
|
||||||
|
takehealth 12
|
||||||
|
killed 13
|
||||||
|
bloodcolor 14
|
||||||
|
tracebleed 15
|
||||||
|
istriggered 16
|
||||||
|
mymonsterpointer 17
|
||||||
|
mysquadmonsterpointer 18
|
||||||
|
gettogglestate 19
|
||||||
|
addpoints 20
|
||||||
|
addpointstoteam 21
|
||||||
|
addplayeritem 22
|
||||||
|
removeplayeritem 23
|
||||||
|
giveammo 24
|
||||||
|
getdelay 25
|
||||||
|
ismoving 26
|
||||||
|
overridereset 27
|
||||||
|
damagedecal 28
|
||||||
|
settogglestate 29
|
||||||
|
startsneaking 30
|
||||||
|
stopsneaking 31
|
||||||
|
oncontrols 32
|
||||||
|
issneaking 33
|
||||||
|
isalive 34
|
||||||
|
isbspmodel 35
|
||||||
|
reflectgauss 36
|
||||||
|
hastarget 37
|
||||||
|
isinworld 38
|
||||||
|
isplayer 39
|
||||||
|
isnetclient 40
|
||||||
|
teamid 41
|
||||||
|
getnexttarget 42
|
||||||
|
think 43
|
||||||
|
touch 44
|
||||||
|
use 45
|
||||||
|
blocked 46
|
||||||
|
respawn 47
|
||||||
|
updateowner 48
|
||||||
|
fbecomeprone 49
|
||||||
|
center 50
|
||||||
|
eyeposition 51
|
||||||
|
earposition 52
|
||||||
|
bodytarget 53
|
||||||
|
illumination 54
|
||||||
|
fvisible 55
|
||||||
|
fvecvisible 56
|
||||||
|
|
||||||
|
player_jump 125
|
||||||
|
player_duck 126
|
||||||
|
player_prethink 127
|
||||||
|
player_postthink 128
|
||||||
|
player_getgunposition 119
|
||||||
|
player_shouldfadeondeath 60
|
||||||
|
player_impulsecommands 130
|
||||||
|
player_updateclientdata 129
|
||||||
|
|
||||||
|
item_addtoplayer 58
|
||||||
|
item_addduplicate 59
|
||||||
|
item_getiteminfo 60
|
||||||
|
item_candeploy 61
|
||||||
|
item_deploy 62
|
||||||
|
item_canholster 63
|
||||||
|
item_holster 64
|
||||||
|
item_updateiteminfo 65
|
||||||
|
item_preframe 66
|
||||||
|
item_postframe 67
|
||||||
|
item_drop 68
|
||||||
|
item_kill 69
|
||||||
|
item_attachtoplayer 70
|
||||||
|
item_primaryammoindex 71
|
||||||
|
item_secondaryammoindex 72
|
||||||
|
item_updateclientdata 73
|
||||||
|
item_getweaponptr 74
|
||||||
|
item_itemslot 75
|
||||||
|
|
||||||
|
weapon_extractammo 76
|
||||||
|
weapon_extractclipammo 77
|
||||||
|
weapon_addweapon 78
|
||||||
|
weapon_playemptysound 79
|
||||||
|
weapon_resetemptysound 80
|
||||||
|
weapon_sendweaponanim 81
|
||||||
|
weapon_isusable 82
|
||||||
|
weapon_primaryattack 83
|
||||||
|
weapon_secondaryattack 84
|
||||||
|
weapon_reload 85
|
||||||
|
weapon_weaponidle 86
|
||||||
|
weapon_retireweapon 87
|
||||||
|
weapon_shouldweaponidle 88
|
||||||
|
weapon_usedecrement 89
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -136,6 +136,9 @@ enum
|
||||||
Ham_TFC_TakeConcussionBlast,
|
Ham_TFC_TakeConcussionBlast,
|
||||||
Ham_TFC_Concuss,
|
Ham_TFC_Concuss,
|
||||||
|
|
||||||
|
Ham_ESF_IsEnvModel, // Only valid in ESF Open Beta
|
||||||
|
Ham_ESF_TakeDamage2, // Only valid in ESF Open Beta
|
||||||
|
|
||||||
Ham_NS_GetPointValue,
|
Ham_NS_GetPointValue,
|
||||||
Ham_NS_AwardKill,
|
Ham_NS_AwardKill,
|
||||||
Ham_NS_ResetEntity,
|
Ham_NS_ResetEntity,
|
||||||
|
|
|
@ -6,11 +6,15 @@
|
||||||
#include "NEW_Util.h"
|
#include "NEW_Util.h"
|
||||||
|
|
||||||
#define CHECK_FUNCTION(x) \
|
#define CHECK_FUNCTION(x) \
|
||||||
if (x < 0 || x > HAM_LAST_ENTRY_DONT_USE_ME_LOL) { \
|
if (x < 0 || x >= HAM_LAST_ENTRY_DONT_USE_ME_LOL) { \
|
||||||
FailPlugin(amx, x, HAM_INVALID_FUNC, "Function out of bounds."); \
|
char msg[1024]; \
|
||||||
|
snprintf(msg, sizeof(msg)-1, "Function out of bounds. Got: %d Max: %d",x, HAM_LAST_ENTRY_DONT_USE_ME_LOL - 1); \
|
||||||
|
FailPlugin(amx, x, HAM_INVALID_FUNC, msg); \
|
||||||
return 0; \
|
return 0; \
|
||||||
} else if (hooklist[x].isset == 0) { \
|
} else if (hooklist[x].isset == 0) { \
|
||||||
FailPlugin(amx, x, HAM_FUNC_NOT_CONFIGURED, "Function not configured in hamdata.ini"); \
|
char msg[1024]; \
|
||||||
|
snprintf(msg, sizeof(msg)-1, "Function %s is not configured in hamdata.ini.",hooklist[x].name); \
|
||||||
|
FailPlugin(amx, x, HAM_FUNC_NOT_CONFIGURED, msg); \
|
||||||
return 0; \
|
return 0; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -450,7 +450,6 @@ int Hook_Int_Entvar(Hook *hook, void *pthis, entvars_t *ev1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Takedamage
|
|
||||||
int Hook_Int_Entvar_Entvar_Float_Int(Hook *hook, void *pthis, entvars_t *inflictor, entvars_t *attacker, float damage, int damagebits)
|
int Hook_Int_Entvar_Entvar_Float_Int(Hook *hook, void *pthis, entvars_t *inflictor, entvars_t *attacker, float damage, int damagebits)
|
||||||
{
|
{
|
||||||
int ret=0;
|
int ret=0;
|
||||||
|
@ -485,6 +484,41 @@ int Hook_Int_Entvar_Entvar_Float_Int(Hook *hook, void *pthis, entvars_t *inflict
|
||||||
CHECK_RETURN()
|
CHECK_RETURN()
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
int Hook_Int_Entvar_Entvar_Float_Float_Int(Hook *hook, void *pthis, entvars_t *inflictor, entvars_t *attacker, float damage, float unknown, int damagebits)
|
||||||
|
{
|
||||||
|
int ret=0;
|
||||||
|
int origret=0;
|
||||||
|
PUSH_INT()
|
||||||
|
int iInflictor=EntvarToIndex(inflictor);
|
||||||
|
int iAttacker=EntvarToIndex(attacker);
|
||||||
|
|
||||||
|
MAKE_VECTOR()
|
||||||
|
P_ENTVAR(inflictor, iInflictor)
|
||||||
|
P_ENTVAR(attacker, iAttacker)
|
||||||
|
P_FLOAT(damage)
|
||||||
|
P_FLOAT(unknown)
|
||||||
|
P_INT(damagebits)
|
||||||
|
|
||||||
|
PRE_START()
|
||||||
|
,iInflictor, iAttacker, damage, unknown, damagebits
|
||||||
|
PRE_END()
|
||||||
|
|
||||||
|
|
||||||
|
#if defined _WIN32
|
||||||
|
origret=reinterpret_cast<int (__fastcall*)(void*, int, entvars_t *, entvars_t *, float, float, int)>(hook->func)(pthis, 0, inflictor, attacker, damage, unknown, damagebits);
|
||||||
|
#elif defined __linux__
|
||||||
|
origret=reinterpret_cast<int (*)(void*, entvars_t *, entvars_t *, float, float, int)>(hook->func)(pthis, inflictor, attacker, damage, unknown, damagebits);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
POST_START()
|
||||||
|
,iInflictor, iAttacker, damage, unknown, damagebits
|
||||||
|
POST_END()
|
||||||
|
|
||||||
|
KILL_VECTOR()
|
||||||
|
POP()
|
||||||
|
CHECK_RETURN()
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
void Hook_Void_Int(Hook *hook, void *pthis, int i1)
|
void Hook_Void_Int(Hook *hook, void *pthis, int i1)
|
||||||
{
|
{
|
||||||
|
@ -675,7 +709,7 @@ void Hook_Vector_Void(Hook *hook, Vector *out, void *pthis)
|
||||||
#if defined _WIN32
|
#if defined _WIN32
|
||||||
reinterpret_cast<void (__fastcall*)(void*, int, Vector *)>(hook->func)(pthis, 0, &origret);
|
reinterpret_cast<void (__fastcall*)(void*, int, Vector *)>(hook->func)(pthis, 0, &origret);
|
||||||
#elif defined __linux__
|
#elif defined __linux__
|
||||||
reinterpret_cast<void (*)(Vector *, void*)>(hook->func)(&origret, pthis);
|
origret=reinterpret_cast<Vector (*)(void *)>(hook->func)(pthis);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
POST_START()
|
POST_START()
|
||||||
|
@ -711,7 +745,7 @@ void Hook_Vector_pVector(Hook *hook, Vector *out, void *pthis, Vector *v1)
|
||||||
#if defined _WIN32
|
#if defined _WIN32
|
||||||
reinterpret_cast<void (__fastcall*)(void*, int, Vector *, Vector *)>(hook->func)(pthis, 0, &origret, v1);
|
reinterpret_cast<void (__fastcall*)(void*, int, Vector *, Vector *)>(hook->func)(pthis, 0, &origret, v1);
|
||||||
#elif defined __linux__
|
#elif defined __linux__
|
||||||
reinterpret_cast<void (*)(Vector *, void*, Vector *)>(hook->func)(&origret, pthis, v1);
|
origret=reinterpret_cast<Vector (*)(void*, Vector *)>(hook->func)(pthis, v1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
POST_START()
|
POST_START()
|
||||||
|
|
|
@ -59,6 +59,13 @@ int Hook_Int_Entvar_Entvar_Float_Int(Hook *hook, void *pthis,
|
||||||
entvars_t *attacker, float damage,
|
entvars_t *attacker, float damage,
|
||||||
int damagebits);
|
int damagebits);
|
||||||
|
|
||||||
|
const bool RT_Int_Entvar_Entvar_Float_Float_Int = false;
|
||||||
|
const int PC_Int_Entvar_Entvar_Float_Float_Int = 5;
|
||||||
|
int Hook_Int_Entvar_Entvar_Float_Float_Int(Hook *hook, void *pthis,
|
||||||
|
entvars_t *inflictor,
|
||||||
|
entvars_t *attacker, float damage,
|
||||||
|
float unknown, int damagebits);
|
||||||
|
|
||||||
const bool RT_Void_Int = true;
|
const bool RT_Void_Int = true;
|
||||||
const int PC_Void_Int = 1;
|
const int PC_Void_Int = 1;
|
||||||
void Hook_Void_Int(Hook *hook, void *pthis, int i1);
|
void Hook_Void_Int(Hook *hook, void *pthis, int i1);
|
||||||
|
@ -91,7 +98,7 @@ void *Hook_Cbase_Void(Hook *hook, void *pthis);
|
||||||
|
|
||||||
// HACK: I'm too lazy to fix up trampoline generator to deal with
|
// HACK: I'm too lazy to fix up trampoline generator to deal with
|
||||||
// special return values. this is so much easier.
|
// special return values. this is so much easier.
|
||||||
const bool RT_Vector_Void = false;
|
const bool RT_Vector_Void = true;
|
||||||
const int PC_Vector_Void = 1;
|
const int PC_Vector_Void = 1;
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
void Hook_Vector_Void(Hook *hook, void *pthis, Vector *out);
|
void Hook_Vector_Void(Hook *hook, void *pthis, Vector *out);
|
||||||
|
|
|
@ -63,6 +63,11 @@ int Create_Int_Entvar_Entvar_Float_Int(AMX *amx, const char *func)
|
||||||
return MF_RegisterSPForwardByName(amx, func, FP_CELL, FP_CELL, FP_CELL, FP_FLOAT, FP_CELL, FP_DONE);
|
return MF_RegisterSPForwardByName(amx, func, FP_CELL, FP_CELL, FP_CELL, FP_FLOAT, FP_CELL, FP_DONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Create_Int_Entvar_Entvar_Float_Float_Int(AMX *amx, const char *func)
|
||||||
|
{
|
||||||
|
return MF_RegisterSPForwardByName(amx, func, FP_CELL, FP_CELL, FP_CELL, FP_FLOAT, FP_CELL, FP_DONE);
|
||||||
|
}
|
||||||
|
|
||||||
int Create_Void_Int(AMX *amx, const char *func)
|
int Create_Void_Int(AMX *amx, const char *func)
|
||||||
{
|
{
|
||||||
return MF_RegisterSPForwardByName(amx, func, FP_CELL, FP_CELL, FP_DONE);
|
return MF_RegisterSPForwardByName(amx, func, FP_CELL, FP_CELL, FP_DONE);
|
||||||
|
|
|
@ -26,6 +26,8 @@ int Create_Int_Entvar(AMX *amx, const char *func);
|
||||||
|
|
||||||
int Create_Int_Entvar_Entvar_Float_Int(AMX *amx, const char *func);
|
int Create_Int_Entvar_Entvar_Float_Int(AMX *amx, const char *func);
|
||||||
|
|
||||||
|
int Create_Int_Entvar_Entvar_Float_Float_Int(AMX *amx, const char *func);
|
||||||
|
|
||||||
int Create_Void_Int(AMX *amx, const char *func);
|
int Create_Void_Int(AMX *amx, const char *func);
|
||||||
|
|
||||||
int Create_Void_Cbase_Cbase_Int_Float(AMX *amx, const char *func);
|
int Create_Void_Cbase_Cbase_Int_Float(AMX *amx, const char *func);
|
||||||
|
|
|
@ -163,6 +163,10 @@ hook_t hooklist[] =
|
||||||
{ V("tfc_takeconcussionblast", Void_Entvar_Float) },
|
{ V("tfc_takeconcussionblast", Void_Entvar_Float) },
|
||||||
{ V("tfc_concuss", Void_Entvar) },
|
{ V("tfc_concuss", Void_Entvar) },
|
||||||
|
|
||||||
|
/* Earth's Special Forces */
|
||||||
|
{ V("esf_isenvmodel", Int_Void) },
|
||||||
|
{ V("esf_takedamage2", Int_Entvar_Entvar_Float_Float_Int) },
|
||||||
|
|
||||||
/* Natural-Selection */
|
/* Natural-Selection */
|
||||||
{ V("ns_getpointvalue", Int_Void) },
|
{ V("ns_getpointvalue", Int_Void) },
|
||||||
{ V("ns_awardkill", Void_Entvar) },
|
{ V("ns_awardkill", Void_Entvar) },
|
||||||
|
|
|
@ -501,6 +501,9 @@ enum Ham
|
||||||
Ham_TFC_TakeConcussionBlast,
|
Ham_TFC_TakeConcussionBlast,
|
||||||
Ham_TFC_Concuss,
|
Ham_TFC_Concuss,
|
||||||
|
|
||||||
|
Ham_ESF_IsEnvModel, // Only valid in ESF Open Beta
|
||||||
|
Ham_ESF_TakeDamage2, // Only valid in ESF Open Beta
|
||||||
|
|
||||||
Ham_NS_GetPointValue,
|
Ham_NS_GetPointValue,
|
||||||
Ham_NS_AwardKill,
|
Ham_NS_AwardKill,
|
||||||
Ham_NS_ResetEntity,
|
Ham_NS_ResetEntity,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user