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

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

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

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

2 страниц V   1 2

Отлов убийства с зумом или без [AWP]

Статус пользователя Bloo
сообщение 24.10.2014, 20:56
Сообщение #1


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Знающие люди, подскажите, возможно ли отловить как был сделан последний выстрел (убийство) с AWP, с зумом или без, и можно ли определить кол-во времени которое был включен зум перед убийством.
Хотелось бы сделать некое достижение для AWP сервера (типа как мультикилл и т.д.), No Zoom/Fast Zoom.
Заранее спасибо за ответ.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
shel
сообщение 24.10.2014, 21:03
Сообщение #2
Стаж: 12 лет

Сообщений: 79
Благодарностей: 7
Полезность: 0

Код:

new inzoomZ[33]
static weapon;
weapon = get_user_weapon( id );
inzoomZ[id] = (pev( id, pev_button) & IN_ATTACK && (weapon == CSW_AWP) && cs_get_user_zoom( id ) == CS_SET_NO_ZOOM) ? true : false;
return FMRES_IGNORED;


в пресинке
P.s тег pawn некорректен

Отредактировал: shel, - 24.10.2014, 21:10
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 24.10.2014, 21:11
Сообщение #3


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

shel, я бы с радостью попробовал, если бы знал как код применить)
Можно сделать отдельным плагином с выводом в лог события дабы определить работоспособность? Буду весьма благодарен. Да и за это спасибо.
ps.gif вроде как все верно отображает (PAWN)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
shel
сообщение 24.10.2014, 21:19
Сообщение #4
Стаж: 12 лет

Сообщений: 79
Благодарностей: 7
Полезность: 0

Код:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

new inzoomZ[33]

public plugin_init()
{
register_forward( FM_PlayerPreThink, "fw_prethink" );
RegisterHam( Ham_Killed, "player", "ham_killed" );
}
public fw_prethink( id )
{
if( !is_user_alive( id ) )
return FMRES_IGNORED;
static weapon;
weapon = get_user_weapon( id );
inzoomZ[ id ] = ( pev( id, pev_button ) & IN_ATTACK && ( weapon == CSW_AWP) && cs_get_user_zoom( id ) == CS_SET_NO_ZOOM ) ? true : false;
return FMRES_IGNORED;
}

public ham_killed( victim, killer, corpse)
{
if(!inzoomZ[killer])
return HAM_IGNORED;

client_print(id,print_chat,"Посан убил авп'ом с зумом")
client_print(id,print_notify,"Посан убил авп'ом с зумом")
}

вот с corpse не имел делов хз че это вообще

Отредактировал: shel, - 24.10.2014, 21:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 24.10.2014, 21:23
Сообщение #5


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

shel, спасибо большое. Проверю, отпишусь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
shel
сообщение 24.10.2014, 21:29
Сообщение #6
Стаж: 12 лет

Сообщений: 79
Благодарностей: 7
Полезность: 0

Скрытый текст
Цитата
сасибо

еще 1, на зм моде такой же человечик есть

Код:
client_print(id,print_chat,"Посан убил авп'ом с зумом")
client_print(id,print_notify,"Посан убил авп'ом с зумом")

=======>
Код:
client_print(killer,print_chat,"Посан убил авп'ом с зумом")
client_print(killer,print_notify,"Посан убил авп'ом с зумом")

и в конец ham_killed
Код:
return HAM_IGNORED;

Вариант не рабочий что-то ничего не показывает...

UPD проверь этот
Код:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

new inzoomZ[33]

public plugin_init()
{
register_forward( FM_PlayerPreThink, "fw_prethink" );
RegisterHam( Ham_Killed, "player", "ham_killed" );
}
public fw_prethink( id )
{
if( !is_user_alive( id ) )
return FMRES_IGNORED;
static weapon;
weapon = get_user_weapon( id );
inzoomZ[ id ] = ( pev( id, pev_button ) & IN_ATTACK && (weapon == CSW_AWP) && ((cs_get_user_zoom( id ) == CS_SET_FIRST_ZOOM ) || (cs_get_user_zoom( id ) == CS_SET_SECOND_ZOOM ))) ? true : false;
return FMRES_IGNORED;
}

public ham_killed( victim, killer, corpse)
{
if(!inzoomZ[killer])
return HAM_IGNORED;

client_print(killer,print_chat,"Посан убил авп'ом с зумом")
client_print(killer,print_notify,"Посан убил авп'ом с зумом")
return HAM_IGNORED;
}


Отредактировал: shel, - 24.10.2014, 22:14
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
shel
сообщение 24.10.2014, 22:17
Сообщение #7
Стаж: 12 лет

Сообщений: 79
Благодарностей: 7
Полезность: 0

Вариант #2 рабочий только что проверил
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 25.10.2014, 0:27
Сообщение #8


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

Не зачем в пресинке проверять, сразу пихаете в пре киллед cs_get_user_zoom у киллера.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 4 раз
   + Цитировать сообщение
Статус пользователя csnet
сообщение 25.10.2014, 2:46
Сообщение #9
Стаж: 12 лет

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

верно.

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


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
shel
сообщение 25.10.2014, 5:00
Сообщение #10
Стаж: 12 лет

Сообщений: 79
Благодарностей: 7
Полезность: 0

Цитата(Andrei @ 25.10.2014, 2:27) *
Не зачем в пресинке проверять, сразу пихаете в пре киллед cs_get_user_zoom у киллера.

главное работает. Bos есть данные о нагрузке?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 25.10.2014, 7:31
Сообщение #11
Стаж: 12 лет

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

а что тут понимать то
prethink вызывается для каждого игрока 100раз в сек

а он предложил ham_killed где 1 раз в минуту в среднем убийство.
есть разница?


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


Стаж: 12 лет

Сообщений: 1417
Благодарностей: 705
Полезность: 349


Какой смысл вывод

а собщения о том что убил с зумом


Создание и редактирование карт ($) - vk.com/id476857873
Настройка и техническое обслуживание ваших игровых серверов - vk.com/id476857873
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя KaJIbIBaH
сообщение 25.10.2014, 9:26
Сообщение #13


Стаж: 19 лет

Сообщений: 151
Благодарностей: 142
Полезность: 929

Цитата(r1nk0 @ 25.10.2014, 10:29) *
Какой смысл вывод

а собщения о том что убил с зумом

например, если кто-то попал без зума через всю длину (на dd2) 10 раз подряд в голову - вероятно, он "PRO" и его стоит как-то поощрить за это...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nebo
сообщение 25.10.2014, 9:27
Сообщение #14


Стаж: 13 лет
Город: Казань

Сообщений: 3181
Благодарностей: 1015
Полезность: 701

ага, баном.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 25.10.2014, 9:52
Сообщение #15


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

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Цитата(r1nk0 @ 25.10.2014, 8:29) *
Какой смысл вывод

а собщения о том что убил с зумом

Какой смысл несет этот пост?
Человеку понадобилось - он попросил.


Гнилой фашистской нечисти
Загоним пулю в лоб,
Отродью человечества
Сколотим крепкий гроб!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 25.10.2014, 12:20
Сообщение #16


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

r1nk0, да никакого в этом смысла нет. Просто делаю сервер AWP Only, думал как там можно оживить игру, добавить каких нибудь плюх. Раз сервер AWP думаю на него и упор делать нужно. Пока думал сделать просто объявление No Zoom/Fast Zoom, так же как Double Kill в miscstats.
shel, спасибо сегодня поставлю проверю, хотя уже проверять думаю не нужно, раз говорите что работает как надо.
Таким же методом можно определить Fast Zoom? Например посчитать сколько миллисекунд был включен zoom перед убийством? Можно вообще такое отловить?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
shel
сообщение 25.10.2014, 12:44
Сообщение #17
Стаж: 12 лет

Сообщений: 79
Благодарностей: 7
Полезность: 0

Код:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

new inzoomZ[33]
new fastzoom[33]

public plugin_init()
{
register_forward( FM_PlayerPreThink, "fw_prethink" );
RegisterHam( Ham_Killed, "player", "ham_killed" );
}
public fw_prethink( id )
{
if( !is_user_alive( id ) )
return FMRES_IGNORED;
static weapon;
weapon = get_user_weapon( id );
fastzoom[id] = ( key & IN_ATTACK && key & IN_ATTACK2 && gun == CSW_AWP && cs_get_user_zoom(id) == CS_SET_FIRST_ZOOM)
inzoomZ[ id ] = ( pev( id, pev_button ) & IN_ATTACK && (weapon == CSW_AWP) && ((cs_get_user_zoom( id ) == CS_SET_FIRST_ZOOM ) || (cs_get_user_zoom( id ) == CS_SET_SECOND_ZOOM ))) ? true : false;
return FMRES_IGNORED;
}

public ham_killed( victim, killer, corpse)
{
if(!inzoomZ[killer] || !fastzoom[killer])
return HAM_IGNORED;
if(fastzoom[killer]){
client_print(0, print_chat,"Посан замутил фастзум")
}
else if(inzoomZ[killer]){
client_print(killer,print_chat,"Посан убил авп'ом с зумом")
client_print(killer,print_notify,"Посан убил авп'ом с зумом")
}
return HAM_IGNORED;
}


к коду выше добавь
#define key pev(id, pev_button)

#define gun get_user_weapon(id)
легче код ниже юзать ибо я сам уже путаюсь
Код:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

new inzoomZ[33]
new fastzoom[33]

public plugin_init()
{
register_forward( FM_PlayerPreThink, "fw_prethink" );
RegisterHam( Ham_Killed, "player", "ham_killed" );
}
public fw_prethink( id )
{
if( !is_user_alive( id ) )
return FMRES_IGNORED;
static weapon;
weapon = get_user_weapon( id );
fastzoom[id] = ( pev( id, pev_button ) & IN_ATTACK && pev( id, pev_button ) & IN_ATTACK2 && weapon == CSW_AWP && cs_get_user_zoom(id) == CS_SET_FIRST_ZOOM)
inzoomZ[ id ] = ( pev( id, pev_button ) & IN_ATTACK && (weapon == CSW_AWP) && ((cs_get_user_zoom( id ) == CS_SET_FIRST_ZOOM ) || (cs_get_user_zoom( id ) == CS_SET_SECOND_ZOOM ))) ? true : false;
return FMRES_IGNORED;
}

public ham_killed( victim, killer, corpse)
{
if(!inzoomZ[killer] || !fastzoom[killer])
return HAM_IGNORED;
if(fastzoom[killer]){
client_print(0, print_chat,"Посан замутил фастзум")
}
else if(inzoomZ[killer]){
client_print(killer,print_chat,"Посан убил авп'ом с зумом")
client_print(killer,print_notify,"Посан убил авп'ом с зумом")
}
return HAM_IGNORED;
}


P.s почему не могу редактировать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 25.10.2014, 13:07
Сообщение #18


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

shel, 5 минут сейчас на редактирование дается. Смотрю, смотрю и никак не пойму как определяется фастзум? Я про логику а не реализацию кода.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 25.10.2014, 14:41
Сообщение #19
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(Bloo @ 25.10.2014, 13:07) *
Смотрю, смотрю и никак не пойму как определяется фастзум? Я про логику а не реализацию кода.

Как я понял, если во время выстрела нажата +attack2 - код считает выстрел фастзумом
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
shel
сообщение 25.10.2014, 15:08
Сообщение #20
Стаж: 12 лет

Сообщений: 79
Благодарностей: 7
Полезность: 0

Цитата(Bloo @ 25.10.2014, 15:07) *
shel, 5 минут сейчас на редактирование дается. Смотрю, смотрю и никак не пойму как определяется фастзум? Я про логику а не реализацию кода.

(id, pev_button ) & IN_ATTACK && pev( id, pev_button ) & IN_ATTACK2
нажата пкм одновременно с лкм +attack +attack2
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: