Skip to content

Commit 8ed55bd

Browse files
committed
Impl w model for thrown grenade
1 parent 89e18e4 commit 8ed55bd

2 files changed

Lines changed: 12 additions & 4 deletions

File tree

amxmodx/scripting/Cwapi/Core/CWeapons/Hooks.inc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ public Hook_PlayerThrowGrenade_Post(const playerIndex, const grenadeItemIndex, F
135135

136136
new grenadeEntityIndex = GetHookChainReturn(ATYPE_INTEGER);
137137
set_entvar(grenadeEntityIndex, var_impulse, CWeapons_GetImpulse(weaponIndex));
138+
set_entvar(grenadeEntityIndex, var_model, weaponObject[CWeapon_Grenade_Model]);
139+
set_entvar(grenadeEntityIndex, var_modelindex, weaponObject[CWeapon_Grenade_ModelIndex]);
138140

139141
Dbg_Log("Hook_PlayerThrowGrenade_Post(%n, %d): grenadeEntityIndex = %d.", playerIndex, grenadeItemIndex, grenadeEntityIndex);
140142
Dbg_Log("Hook_PlayerThrowGrenade_Post(%n, %d): Set impulse = %d (%d).", playerIndex, grenadeItemIndex, CWeapons_GetImpulse(weaponIndex), weaponIndex);

amxmodx/scripting/Cwapi/Core/CustomWeapons.inc

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ enum _:S_CustomWeapon {
4343
Float:CWeapon_DeployTime,
4444
Float:CWeapon_ReloadTime,
4545
bool:CWeapon_Grenade_PreventFITH,
46+
CWeapon_Grenade_Model[PLATFORM_MAX_PATH],
47+
CWeapon_Grenade_ModelIndex,
4648
Float:CWeapon_MaxWalkSpeed,
4749

4850
// Float:CWeapon_PrimaryAttackRate,
@@ -409,15 +411,19 @@ T_CustomWeapon:CWeapons_LoadFromJson(const JSON:weaponJson, const weaponName[])
409411
WeaponData[CWeapon_ReloadTime] = PCSingle_ObjFloat(weaponJson, "ReloadTime", -1.0);
410412
WeaponData[CWeapon_MaxWalkSpeed] = PCSingle_ObjFloat(weaponJson, "MaxWalkSpeed", -1.0);
411413

412-
if (IsWeaponGrenade(WeaponData[CWeapon_ReferenceId])) {
413-
WeaponData[CWeapon_Grenade_PreventFITH] = PCSingle_ObjBool(weaponJson, "Grenade.PreventFITH", false, .dotNot = true);
414-
}
415-
416414
new Models[S_CWeapon_Models];
417415
PCSingle_ObjModel(weaponJson, "Models.View", Models[CWeapon_Model_View], charsmax(Models[CWeapon_Model_View]), .dotNot = true);
418416
PCSingle_ObjModel(weaponJson, "Models.Player", Models[CWeapon_Model_Player], charsmax(Models[CWeapon_Model_Player]), .dotNot = true);
419417
PCSingle_ObjModel(weaponJson, "Models.World", Models[CWeapon_Model_World], charsmax(Models[CWeapon_Model_World]), .dotNot = true);
420418
WeaponData[CWeapon_Models] = Models;
419+
420+
if (IsWeaponGrenade(WeaponData[CWeapon_ReferenceId])) {
421+
WeaponData[CWeapon_Grenade_PreventFITH] = PCSingle_ObjBool(weaponJson, "Grenade.PreventFITH", false, .dotNot = true);
422+
PCSingle_ObjModel(weaponJson, "Grenade.Model", WeaponData[CWeapon_Grenade_Model], charsmax(WeaponData[CWeapon_Grenade_Model]), Models[CWeapon_Model_World], .dotNot = true);
423+
if (WeaponData[CWeapon_Grenade_Model][0] != EOS) {
424+
WeaponData[CWeapon_Grenade_ModelIndex] = precache_model(WeaponData[CWeapon_Grenade_Model]);
425+
}
426+
}
421427

422428
CWeapons__ReadSounds(weaponJson, WeaponData);
423429

0 commit comments

Comments
 (0)