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

Блокирование урона,если в руке другое оружие  [Решено]

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

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

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

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

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

Re: Блокирование урона,если в руке другое оружие

Сообщение qwer001 » 27 фев 2017, 13:36

Спасибо.. всё работает. Урон не множится

Добавлено спустя 33 секунды:
щас посмотрю, что поменяли вы. Что бы к другим Пушкам применить
Аватара пользователя
qwer001
 
Сообщения: 19
Зарегистрирован: 15 фев 2014, 18:36
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Блокирование урона,если в руке другое оружие

Сообщение NEoMASTERR » 27 фев 2017, 13:39

Одну букву изменил, ExecuteHamB -> ExecuteHam

ExecuteHamB задействует все хуки функции, ExecuteHam нет

Добавлено спустя 1 минуту 17 секунд:
Т.е. после вызова
Код: Выделить всё
ExecuteHamB(Ham_TakeDamagea0pev(entpev_owner), float(get_pcvar_num(cvar_dmg_2)), DMG_GENERIC
вызывался обработчик Forward_TakeDamage, в ExecuteHam этот обработчик не вызывается
Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Блокирование урона,если в руке другое оружие

Сообщение qwer001 » 27 фев 2017, 13:42

А ещё подскажите как правильно сделать проверку.. на зомби?

Код: Выделить всё
if(pev(apev_takedamage) != DAMAGE_NO)
        {
            if(
is_user_alive(a)&&zp_get_user_zombie(a)
{
            
ExecuteHam(Ham_TakeDamagea0pev(entpev_owner), float(get_pcvar_num(cvar_dmg_2)), DMG_GENERIC)
          }
        }
    } 

Так всегда делал... вроде работало) а то щас людей убивает)
Последний раз редактировалось Subb98 27 фев 2017, 13:43, всего редактировалось 1 раз.
Причина: исходный код необходимо оформлять при помощи кнопки "Код / Исходник"
Аватара пользователя
qwer001
 
Сообщения: 19
Зарегистрирован: 15 фев 2014, 18:36
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Блокирование урона,если в руке другое оружие

Сообщение lop50956 » 27 фев 2017, 13:44

NEoMASTERR, ну вопервых т.к нет дамаге тайпа то тс быдлокодер.

Проверять в таком случае надо на гет юзер веапон.

А ваше Execute нужно с окончанием B, иначе его дамагер или то что использует для подсчета не засчитает урон с этого дерьма

Добавлено спустя 1 минуту 3 секунды:
и да
у него есть damagetype о котором я писал изначально

DMG_GENERIC, пускай исход ножей своих скинет
Аватара пользователя
lop50956
 
Сообщения: 178
Зарегистрирован: 29 ноя 2016, 00:36
Забанен
Благодарил (а): 18 раз.
Поблагодарили: 16 раз.
Опыт программирования: Больше трех лет
Языки программирования: Php

Re: Блокирование урона,если в руке другое оружие

Сообщение qwer001 » 27 фев 2017, 13:46

Исходник ножей
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
qwer001
 
Сообщения: 19
Зарегистрирован: 15 фев 2014, 18:36
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Блокирование урона,если в руке другое оружие

Сообщение NEoMASTERR » 27 фев 2017, 13:50

Код: Выделить всё
public Forward_TakeDamage(victim, inflictor, attacker, Float:damage, damagebits)
{
    if(victim != attacker && is_user_connected(attacker))
    {
        if(get_user_weapon(attacker) == CSW_BASE)
        {
            if(g_has_weapon[attacker] && (damagebits & DMG_BULLET))
                SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg))
        }
    }
}
 

Подсчёта урона я тут не вижу. Ясно, он не тут
Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Блокирование урона,если в руке другое оружие

Сообщение qwer001 » 27 фев 2017, 16:07

Код: Выделить всё
public Forward_TakeDamage(victim, inflictor, attacker, Float:damage, damagebits)
{
    if(victim != attacker && is_user_connected(attacker))
    {
        if (pev_valid(inflictor))
        {
            static classname[33]; pev(inflictor, pev_classname, classname, charsmax(classname))
            if (equal(classname, "block_missile")
                return HAM_IGNORED
        
}
        if(get_user_weapon(attacker) == CSW_BASE)
        {
            if(g_has_weapon[attacker] && (damagebits & DMG_BULLET))
                SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg))
        }
    }
    return HAM_HANDLED
}


При компиляции

return HAM_IGNORED
говорит тут ошибка error 001 expected token ">" but found "return"
Аватара пользователя
qwer001
 
Сообщения: 19
Зарегистрирован: 15 фев 2014, 18:36
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Блокирование урона,если в руке другое оружие

Сообщение Subb98 » 27 фев 2017, 16:12

qwer001,

Код: Выделить всё
if (equal(classname"block_missile"

>>

Код: Выделить всё
if (equal(classname"block_missile")) 
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Блокирование урона,если в руке другое оружие

Сообщение lop50956 » 27 фев 2017, 16:36



Ты реально не понимаешь что нужно сделать или дурачишься?

Добавлено спустя 1 минуту 20 секунд:
NEoMASTERR, подсчет урона может быть хоть в жопе мира. Но экзекьютхамБ позволит в жопе мира посчитать урон с этого плагина.(темболее у тс зомби плагуе, а там 100% есть хам тейкдамаг в основных плагинах)
Аватара пользователя
lop50956
 
Сообщения: 178
Зарегистрирован: 29 ноя 2016, 00:36
Забанен
Благодарил (а): 18 раз.
Поблагодарили: 16 раз.
Опыт программирования: Больше трех лет
Языки программирования: Php

Re: Блокирование урона,если в руке другое оружие

Сообщение NEoMASTERR » 27 фев 2017, 16:38

Я в курсе :-)
В основные плагины можно добавить нативы для урона
Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Пред.След.

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

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

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