Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

удар с ножа отловить правую кнопку

Статус пользователя Metal Messiah
сообщение 14.2.2014, 1:29
Сообщение #1


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
Приветствую!
По просьбам некоторых игроков правлю плагин.
Цитата
public client_damage(attacker, victim, damage, wpnindex, hitplace, TA)

Где отловить именно правую кнопку? Надо оставить с 1 удара на правой, с блек джеком и прикольными звуками, а левую не переопределять.
Идея смотртеть на damage (if damage> потолочное значение) - костыль, не предлагать

Что-то не смог найти готовый плагин на поковырять


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя neverminde
сообщение 14.2.2014, 1:34
Сообщение #2


Стаж: 15 лет

Сообщений: 1133
Благодарностей: 595
Полезность: 576

alliedmods
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя csnet
сообщение 14.2.2014, 1:54
Сообщение #3
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

либо if(get_user_button(id) & IN_ATTACK) если оружие то можно RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "fwd_Attack" , 1 );

выложи код, а то сиди да гадай что надо сделать, я бы юзнул оффсет , 146 или 147 кажется, проще и надежней

а все понял тебе надо в дамагере отловить атаку ножом правой кнопкой?

тогда только

Код:
 RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "fwd_Attack" , 1 );


public fwd_Attack(id) {
new id = pev(weapon,pev_owner)
client_print(id,3, "woohoo Im using secondary knife attack")
}


Отредактировал: csnet, - 14.2.2014, 2:04


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 14.2.2014, 2:03
Сообщение #4


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
А что код? вот и весь код:

Цитата
public client_damage(attacker, victim, damage, wpnindex, hitplace, TA)
{
new x1
x1=is_user_alive(victim)
if((attacker != victim)) //prevents killing self with knife from fall damage.
{
if(wpnindex == CSW_KNIFE && TA != 1)
{
...


не передается туда параметр attack1 или attact2 sad.gif

как тот код на alliedmods вообще пристроить к этому?


блин... не люблю через HAM переделывать
вижу проще все таки через if damage>некоторое_экспериментальное_значение

P.S. какие нафиг оффсеты? я простой плагин пишу а не плагин к metamod'у

Отредактировал: Metal Messiah, - 14.2.2014, 2:07


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 14.2.2014, 2:08
Сообщение #5
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

как раз лучше на HAM все, если урон от падений тогда if(dmgbits == DMG_FALL) return HAM_SUPERCEDE
и все в takedamage функции

в самом дамагере нельзя получить кнопку 1ю или 2ю.
но можно получить оффсетом last damage, последний нанесенный урон, если он 65, то это 2я кнопка.

ну или зарегить secondary attack чтобы наверняка хукнуть удар

зы оффсеты быстрее, и метамод тут не причем.
я бы посоветовал не изобретать лишнее и ограничиться if(get_user_weapon(attacker) == CSW_KNIFE && damage >= 65.0) {

100% гарантия что это нож и кнопка 2я

Отредактировал: csnet, - 14.2.2014, 2:12


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Safety1st
сообщение 14.2.2014, 2:21
Сообщение #6
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Ham юзать норм. Пример с AM не из вашей оперы.

Вместо кода csnet - такой (если модифицировать саму атаку не нужно):
Код:
const m_pPlayer = 41
const OFFSET_LINUX_WEAPON = 4
const PDATA_SAFE = 2

public plugin_init() {
// ...
RegisterHam( Ham_Weapon_SecondaryAttack, "weapon_knife", "fw_Knife_SecondaryAttack_Post", 1 )
}

public fw_Knife_SecondaryAttack_Post(knife) {
// Get knife owner
static id
if( pev_valid(knife) != PDATA_SAFE )
return HAM_IGNORED

id = get_pdata_cbase( knife, m_pPlayer, OFFSET_LINUX_WEAPON )
// ...
}


Хз, подойдёт ли это для решения вопроса...
Конечную задачу я не понял, дальше ничего не напишу.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя csnet
сообщение 14.2.2014, 4:05
Сообщение #7
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

Цитата
Надо оставить с 1 удара на правой, с блек джеком и прикольными звуками, а левую не переопределять.


если заблокировать mouse1 тогда просто return HAM_SUPERCEDE в Primary attack делаешь и все


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 14.2.2014, 11:44
Сообщение #8


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
Ладно, всем спасибо, буду экспериментировать.

Задача простая - из плагина cs_onehitknifekills (убийство с 1 ужара с ножа), который у меня переделанный с блек джеком и звуками, сделать так чтобы с 1 удара убивало только если правой кнопкой, а если левой то обычный урон, т.е. ничего не менять. А то много случайных убийств )))

Я человек ленивый, вставил в код && damage>49 в предположении что удар правой кнопкой всегда наносит 55 хп, а левой - наменого меньше. Обкатка показала что все работает как надо :)

Отредактировал: Metal Messiah, - 14.2.2014, 21:29


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 15.2.2014, 12:51
Сообщение #9
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Вот что удалось придумать похитрее:
Прикрепленный файл  knife_sec_attack_mod.sma ( 1,47 килобайт ) Кол-во скачиваний: 56

Если && damage>49 работает норм, то и не стоит усложнять.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: