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

ZP: убийство в голову с одного выстрела  [Решено]

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

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

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

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

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

ZP: убийство в голову с одного выстрела

Сообщение lexu5 » 06 авг 2017, 20:42

Всем привет, суть проблемы такова: авп при попадании в голову зомби должна разрывать его с одного выстрела, но что-то не так, все удачно компилируется, а на сервере при попадании в голову проходит простой урон

Код: Выделить всё
public Ham_TraceAttack_Player(iVictim, iAttacker, Float:fDamage, Float:fDeriction[3], iTraceHandle, iBitDamage)
{
    if(is_user_connected(iAttacker))
    {
        if(zp_get_user_zombie(iVictim) && !zp_get_user_zombie(iAttacker) && !zp_get_user_nemesis(iAttacker))
        {
            if(g_Energy[g_Ent]==100) 
            
{
                if(get_pdata_int(iVictim, m_LastHitGroup, linux_diff_player) == HIT_HEAD) ExecuteHamB(Ham_Killed, iVictim, iAttacker, 2)
            }
        }
    }


массив g_Energy отвечает за зарядку оружия, то бишь если значение 100, то появляется дополнительный урон:
Код: Выделить всё
public HookHam_Weapon_Frame(ent){
    if(!Is_CustomItem(ent))return HAM_IGNORED;
    static id;id=get_pdata_cbase(ent,pDataKey_iOwner,pData_Item);
    if(get_pdata_int(ent,pDataKey_iInReload,pData_Item)){
        static clip,ammotype,ammo,j
        clip
=get_pdata_int(ent,pDataKey_iClip,pData_Item);
        ammotype=pDataKey_ibpAmmo+get_pdata_int(ent,pDataKey_iPrimaryAmmoType,pData_Item);
        ammo=get_pdata_int(id,ammotype,pData_Player);
        j=min(weapon_ammo-clip,ammo);
        set_pdata_int(ent,pDataKey_iClip,clip+j,pData_Item);
        set_pdata_int(id,ammotype,ammo-j,pData_Player);
        set_pdata_int(ent,pDataKey_iInReload,0,pData_Item);
    }
    if(cs_get_user_zoom(id)==2||cs_get_user_zoom(id)==3) g_Energy[ent]=100 //решил не заморачиваться с зарядкой :D
    else g_Energy[ent]=1
    return HAM_IGNORED
;
Аватара пользователя
lexu5
 
Сообщения: 22
Зарегистрирован: 28 июл 2017, 14:44
Откуда: Санкт-Петербург
Благодарил (а): 2 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: ZP: убийство в голову с одного выстрела

Сообщение EvilCoder » 06 авг 2017, 21:04

Код: Выделить всё
user_kill(id,1); 
Не забывайте, что у вас есть возможность отправлять жалобы на сообщения, присланные вам от других пользователей в ЛС.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Принимаются заявки на вступление в группу Скриптеры
Аватара пользователя
EvilCoder
Администратор
 
Сообщения: 1960
Зарегистрирован: 20 апр 2010, 12:11
Благодарил (а): 44 раз.
Поблагодарили: 663 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: ZP: убийство в голову с одного выстрела  [Решено]

Сообщение lexu5 » 06 авг 2017, 21:36

А разве это, не одно и то же?
Код: Выделить всё
ExecuteHamB(Ham_Killed, iVictim, iAttacker, 2)


Добавлено спустя 14 минут 22 секунды:
Решено:
Код: Выделить всё
public HookHam_TakeDamage(victim,inflictor,attacker,Float:damage)<FireBulletsEnabled>

    if(
is_user_connected(attacker))
    {
        if(
zp_get_user_zombie(victim) && !zp_get_user_zombie(attacker) && !zp_get_user_nemesis(attacker))
        {
            if(
g_Energy[g_Ent]==100
            {
                if(
get_pdata_int(victimm_LastHitGrouplinux_diff_player) == HIT_HEADExecuteHamB(Ham_Killedvictimattacker2)
            }
        }
    }
    
SetHamParamFloat(4,damage*(weapon_damage*g_Energy[g_Ent])/15);
    return 
HAM_OVERRIDE;
Аватара пользователя
lexu5
 
Сообщения: 22
Зарегистрирован: 28 июл 2017, 14:44
Откуда: Санкт-Петербург
Благодарил (а): 2 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn


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

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

Сейчас этот форум просматривают: Google [Bot] и гости: 11