tonline_kms65_1
Участник
- Сообщения
- 565
- Реакции
- 225
Здравствуйте все.
Такой вопрос, вот эта ф-я SDKHook(ent, SDKHook_OnTakeDamage, OnTakeDamageEnt);
Я эту функцию запускаю в блоке создания ENT.
По идее у attacker id должно быть больше игроков (attacker == атакующее ENT(не игрок!)). Ироки Дрона не трогают вообще.
Или понятнее, у меня один Дрон атакует другово, С самой атакой все нормально, но у Дронов есть функция, как бы огрызания от стрельбы в него своими. Если член его команды стреляет в своего Дрона, он стреляет в ответ.
Я пытаюсь получить attacker - но атакер, это всегда id игрока создавшего этого Дрона, получается атакуемый Дрон стреляет в ответ, но стеляет в игрока, который создал атакующего Дрона (батю), а не в самого атакующего его Дрона.
Если посмотреть саму ф-ю:
Вроде всё должно работать так как нужно, но результат всегда такой:
Attaker 1
Attaker 1
Attaker 1
Attaker 1
Attaker 1
Attaker 1
Attaker 1
и т.д.
Хоть на локальном сервере, хоть на выделенном.
Что то я видимо делаю не так до применения этой ф-ции.
Почему так происходит? Как мне получить id непосредственно наносящей ущерб entity.
Такой вопрос, вот эта ф-я SDKHook(ent, SDKHook_OnTakeDamage, OnTakeDamageEnt);
Я эту функцию запускаю в блоке создания ENT.
PHP:
public Action:OnTakeDamageDrone(ent, &attacker, &inflictor, &Float:damage, &damagetype){
if(!IsValidEntity(ent) || !IsValidClient(attacker)) return;
PrintToChatAll("Attaker %i", attacker);
......
....
..
По идее у attacker id должно быть больше игроков (attacker == атакующее ENT(не игрок!)). Ироки Дрона не трогают вообще.
Или понятнее, у меня один Дрон атакует другово, С самой атакой все нормально, но у Дронов есть функция, как бы огрызания от стрельбы в него своими. Если член его команды стреляет в своего Дрона, он стреляет в ответ.
Я пытаюсь получить attacker - но атакер, это всегда id игрока создавшего этого Дрона, получается атакуемый Дрон стреляет в ответ, но стеляет в игрока, который создал атакующего Дрона (батю), а не в самого атакующего его Дрона.
Если посмотреть саму ф-ю:
PHP:
/**
* @brief Applies damage to an entity
* @note Force application is dependent on game and damage type(s)
* @param entity Entity index taking damage
* @param inflictor Inflictor entity index
* @param attacker Attacker entity index
* @param damage Amount of damage
* @param damageType Bitfield of damage types
* @param weapon Weapon index (orangebox and later) or -1 for unspecified
* @param damageForce Velocity of damage force
* @param damagePosition Origin of damage
* @noreturn
*/
native SDKHooks_TakeDamage(entity, inflictor, attacker, Float:damage, damageType=DMG_GENERIC, weapon=-1, const Float:damageForce[3]=NULL_VECTOR, const Float:damagePosition[3]=NULL_VECTOR);
*/
Attaker 1
Attaker 1
Attaker 1
Attaker 1
Attaker 1
Attaker 1
Attaker 1
и т.д.
Хоть на локальном сервере, хоть на выделенном.
Что то я видимо делаю не так до применения этой ф-ции.
Почему так происходит? Как мне получить id непосредственно наносящей ущерб entity.
Последнее редактирование: