Участник
Пользователь
- Сообщения
- 1,041
- Реакции
- 206
- Предупреждения
- 1
- Помог
- 6 раз(а)
ImmortalAmxx, Делай обнову) хватит быть занятым
#include <AmxModX>
#include <ZombiePlague>
#include <ReApi>
const ZombieCount = 2; // Количество зомби, при котором функция не будут работать.
public plugin_init() {
RegisterHookChain(RG_CBasePlayer_TakeDamage, "CBasePlayer_TakeDamage", true);
}
public CBasePlayer_TakeDamage(iVictim, iInflictor, iAttacker, Float:flDamage, bitsDamageType) {
if(zp_get_zombie_count() >= ZombieCount)
// || zp_get_user_last_human(iVictim)
//а последнего человека нельзя с одного удара заразить? в описании это не указано
return;
if(zp_get_user_first_zombie(iAttacker)) {
rg_set_user_armor(iVictim, 0, ARMOR_NONE);
//ExecuteHamB(Ham_TakeDamage, iVictim, iInflictor, iAttacker, flDamage, bitsDamageType);
//если поствить плагин выше плагина мода, то в мод придёт значение pev_armorvalue = ARMOR_NONE, и будет заражение сразу,
//т.к. return HAM_SUPERCEDE там будет только при pev_armorvalue > 0
}
}
Не знал про такое. Спасибо за наводку.//ExecuteHamB(Ham_TakeDamage, iVictim, iInflictor, iAttacker, flDamage, bitsDamageType); //если поствить плагин выше плагина мода, то в мод придёт значение pev_armorvalue = ARMOR_NONE, и будет заражение сразу, //т.к. return HAM_SUPERCEDE там будет только при pev_armorvalue > 0
L 03/28/2023 - 05:52:31: [AMXX] Displaying debug trace (plugin "zp43_first_zombie_antiarmor.amxx", version "1.4")
L 03/28/2023 - 05:52:31: [AMXX] Run time error 3: stack error
#include <AmxModX>
#include <ZombiePlague>
#include <HamSandWich>
#include <ReApi>
const ZombieCount = 2; // Количество зомби, при котором функция не будет работать.
new bool:g_IsDamageHooked = false;
public plugin_init() {
register_plugin("[ZPA]: Anti-Armor", "1.4", "ImmortalAmxx");
RegisterHookChain(RG_CBasePlayer_TakeDamage, "CBasePlayer_TakeDamage", true);
}
public CBasePlayer_TakeDamage(iVictim, iInflictor, iAttacker, float:flDamage, bitsDamageType) {
if (!is_user_connected(iAttacker) || g_IsDamageHooked || !is_user_connected(iVictim) || zp_get_zombie_count() >= ZombieCount || zp_get_user_last_human(iVictim))
return;
if (zp_get_user_first_zombie(iAttacker)) {
g_IsDamageHooked = true;
rg_set_user_armor(iVictim, 0, ARMOR_NONE);
ExecuteHamB(Ham_TakeDamage, iVictim, iInflictor, iAttacker, flDamage, bitsDamageType);
g_IsDamageHooked = false;
}
}
--RegisterHookChain(RG_CBasePlayer_TakeDamage, "CBasePlayer_TakeDamage", true);
++RegisterHookChain(RG_CBasePlayer_TakeDamage, "CBasePlayer_TakeDamage");
--ExecuteHamB(Ham_TakeDamage, iVictim, iInflictor, iAttacker, flDamage, bitsDamageType);
Ну конечно, в хуке тейкдемедж вызывается тейкдемеджЧто-то часто появлялась ошибка:
Do u have maybe fix?RegisterHookChain(RG_CBasePlayer_TakeDamage, "CBasePlayer_TakeDamage", true);