Русское сообщество по скриптингу

Не проходит урон по entity из оружия

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Не проходит урон по entity из оружия

Сообщение boogaga » 19 апр 2017, 19:40

Создаю entity так:

Код: Выделить всё
new ent = create_entity("info_target");
    
if(!is_valid_ent(ent))
    return;

entity_set_string(ent, EV_SZ_classname, "My_ent")
entity_set_model(ent, "models/my_model.mdl")
    
entity_set_float
(ent, EV_FL_health, 1500.0)
entity_set_float(ent, EV_FL_takedamage, DAMAGE_AIM)
entity_set_int(ent, EV_INT_solid, SOLID_BBOX)

entity_set_size(ent, Float:{ -18.0, -18.0, -18.0 }, Float:{ 18.0, 18.0, 80.0 } );
entity_set_origin(ent, Origin)
    
set_pev
(ent, pev_nextthink, get_gametime() + 3.0)
    
drop_to_floor
(ent

Потом отлавливаю урон по моему объекту:

Код: Выделить всё
RegisterHam(Ham_TakeDamage, "info_target", "Entity_TakeDamage_Post", 1

Код: Выделить всё
public Entity_TakeDamage_Post(victim, inflicator, attacker, Float:damage, damage_type)
{
    if(!is_valid_ent(victim)) 
        return HAM_IGNORED
    
    if
(pev(victim, pev_deadflag) == DEAD_DYING)
        return HAM_IGNORED
    
    if
(!is_user_connected(attacker))
        return HAM_IGNORED
    
    new szClassName
[32]
    entity_get_string(victim, EV_SZ_classname, szClassName, charsmax(szClassName))

    if(equal(szClassName, "My_ent")) 
    
{
        if(pev(victim,pev_health) > 0)
        {
            HP = pev(victim,pev_health) * 100.0 / 1500.0
            client_print
(attacker,print_center,"Здоровье: %0.1f%%",HP)
        }
    }
    
    return HAM_IGNORED

Проблема в том, что урон проходит лишь от ударов ножом, почему я не могу нанести урон огнестрельным оружием?
Аватара пользователя
boogaga
 
Сообщения: 32
Зарегистрирован: 19 дек 2016, 17:56
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Re: Не проходит урон по entity из оружия

Сообщение boogaga » 10 май 2017, 22:36

UP~
Аватара пользователя
boogaga
 
Сообщения: 32
Зарегистрирован: 19 дек 2016, 17:56
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Re: Не проходит урон по entity из оружия

Сообщение Dart_Begep » 11 май 2017, 00:28

Установи и movetype. Например так:
Код: Выделить всё
    new ent = create_entity("info_target");
        
    if
(!is_valid_ent(ent))
        return;

    entity_set_string(ent, EV_SZ_classname, "My_ent")
    entity_set_model(ent, "models/my_model.mdl")
        
    entity_set_float
(ent, EV_FL_health, 1500.0)
    entity_set_float(ent, EV_FL_takedamage, DAMAGE_AIM)
    entity_set_int(ent, EV_INT_solid, SOLID_BBOX)
    entity_set_int(ent, EV_INT_movetype, MOVETYPE_FLY) // Если надо, чтобы entity не падала. Либо поставь MOVETYPE_TOSS

    entity_set_size(ent, Float:{ -18.0, -18.0, -18.0 }, Float:{ 18.0, 18.0, 80.0 } );
    entity_set_origin(ent, Origin)
        
    set_pev
(ent, pev_nextthink, get_gametime() + 3.0)
        
    drop_to_floor
(ent

У меня без проблем работает в таком варианте.
Аватара пользователя
Dart_Begep
 
Сообщения: 131
Зарегистрирован: 19 апр 2017, 22:29
Благодарил (а): 11 раз.
Поблагодарили: 27 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
Php
JavaScript


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7