AMX MOD X
Среда, 24.04.2024, 04:59:28



Приветствую Вас Гость | RSS
[ Главная ] [ Anti Team Attacker - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Плагины » Готовые плагины » Anti Team Attacker (Больше по своим стрелять не будут!)
Anti Team Attacker
JohnJДата: Среда, 15.11.2006, 21:42:22 | Сообщение # 1
Лейтенант
Группа: Скриптеры
Сообщений: 65
Репутация: 4
Статус: Не в сети
AntiTeamAttacker - плагин, отбивающий охоту стрелять по своим: все жизни, которые игрок отнимает у своих, у них восстанавливаются (если они выжили) и отнимаются у атакующего.

Плагин работает на сервере AmxModX v1.60
Если у вас другой - скажите, постараюсь переделать.
<csamxmodx> - папка, в которую установлен amxmodx

Для установки АнтиТимАттакер надо:
1) скопировать файл antiteamattacker.amxx в папку <csamxmodx>\plugins
2) в файле <csamxmodx>\configs\plugins.ini добавить в конце две строки:
; JohnJ plugins
antiteamattacker.amxx ; отучает стрелять по своим

файл antiteamattacker.sma - исходник (если недоверяете откомпилированной версии)

Автор: JohnJ

команды плагина:
amx_friendlyfire (0/1) вкл/выкл эффект плагина
например:
amx_friendlyfire 0 плагин включается (запрет стрелять по своим)
amx_friendlyfire 1 плагин выключается (можно стрелять по своим)

принимаю пожелания, предложения и критику smile

P.S.: Распростаняется бесплатно. Можете использовать по своему усмотрению.
У меня на сервере работает всегда и все только рады smile

Прикрепления: 70560432.sma (0.7 Kb)
 
AlModДата: Четверг, 16.11.2006, 12:22:00 | Сообщение # 2
Сонный кодер
Группа: Админы
Сообщений: 600
Репутация: 27
Статус: Не в сети
Не рационально. Думаю, необходимо доработать. angry

Во-первых. Есть системная команда "mp_friendlyfire"
Во-вторых. Акак насчет хедшота? Например с дробаша или АВП?

Надо в момент убийства определять координату игрока, спавнить его, убрать смерть из скореборда, и установить оригин в те координаты
Code

get_user_origin(id, origin)
set_task(0.01,"spawn(id)")
set_user_death(id,get_user_death(id)-1) // Ну наподобие, точной ф-иинепомню
set_user_origin(id, origin)


 
JohnJДата: Суббота, 18.11.2006, 21:12:35 | Сообщение # 3
Лейтенант
Группа: Скриптеры
Сообщений: 65
Репутация: 4
Статус: Не в сети
Нет, цель этого плагина не продублировать команду mp_friendlyfire, а отучить "нехороших игроков" стерлять по своим от балды, просто так или по ошибке. Но это не значит что они их не могут убить. Могут убить с авп в голову, это ты верно заметил, но от этого умрут сами (отнимут у себя столько же жизней, сколько у него), и в следующем раунде умрут за убийство своего (в зависимости от настроек сервера). Если сделать как ты советуешь, то плагин будет почти-что аналогом mp_friendlyfire и тогда действительна будет нерациональна. Убить своего могут и гранатой и обычным попаданием, если тот был ранен. Но будут стараться этого не делать, так как поплатятся за это своими hp. Особенно смешно смотреть как недавно начавшие играть в кс бегают, начинают стрелять в своего, видят что у них отнимаются жизни, думают что он их в ответ атакует, начинают стрелять ещё метче smile и умирают... когда их жизни кончаются... атакованный же остаётся со своими 100 hp (если до этого было столько же) и радуется что он не пострадал по вине другого. Умерший в свою очередь поймёт, что своих стрелять нельзя. ) В общем, рекомендую.
За критику спасибо, люблю её принимать всегда. Если ты хочешь переделать этот плагин, я не против, но те цели которые я ставил, я достиг.
 
AlModДата: Воскресенье, 19.11.2006, 07:16:58 | Сообщение # 4
Сонный кодер
Группа: Админы
Сообщений: 600
Репутация: 27
Статус: Не в сети
Вау... Мега-отписал smile

Последняя придирка biggrin Слышал про АТАС ? Там что-то наподобие


 
JohnJДата: Вторник, 21.11.2006, 03:37:33 | Сообщение # 5
Лейтенант
Группа: Скриптеры
Сообщений: 65
Репутация: 4
Статус: Не в сети
про АТАС слышал, но то, что там есть подобное не знал ) я думал там только наказания? Надо будет посмотреть... )
 
AlModДата: Вторник, 21.11.2006, 06:43:09 | Сообщение # 6
Сонный кодер
Группа: Админы
Сообщений: 600
Репутация: 27
Статус: Не в сети
там есть cvar наподобие atac_mirror_damage 1 - оч хорошо работает против тупых ботов которые криво кидают грены smile

 
VENДата: Вторник, 21.11.2006, 15:54:55 | Сообщение # 7
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
АТАС сильно "наворочен", поэтому в свое время написал пару простых анти-TK/TA плагинов для своих нужд.

Например, "Redirect Bullet on TA" - "перенаправляет" пулю обратно в атакующего товарища.
Использую данный плагин с опцией REDIRECT_TO HIT_HEAD, что довольно эффективно, т.к. наказывает и ощутимым уроном и дизориентацией при отсутсвии шлема.

Написал данный плагин после того, как на сервере появились личности, которые убивая товарища, не страшились наказания (slay и т.п.) и делали быстрый реконнект. Т.к. основная задача таких вандалов была убить товарища любой ценой, пришлось "перенаправлять" пулю, чтобы уберечь потенциальную жертву и наказать злоумышленника. С гранатами и ножом приходилось не так туго как, например, с автоматом или пулеметом. Данный плагин быстро отучил товарищей от вышеописанных выходок. Надо сказать, что плагин наподобии AntiTeamAttacker им был бы не так страшен.

Прикрепления: 84879976.sma (1.0 Kb)


Сообщение отредактировал VEN - Вторник, 21.11.2006, 16:12:25
 
JohnJДата: Вторник, 21.11.2006, 16:08:24 | Сообщение # 8
Лейтенант
Группа: Скриптеры
Сообщений: 65
Репутация: 4
Статус: Не в сети
Видимо на вашем сервере больше крайностей, чем на нашем smile У вас бы не испугались этого плагина, зато есть и супер программист который смог "развернуть пулю" smile я вот даже не представляю как это можно сделать правильно... только всякими уловками там...
В нашей сети мой плагин отучил стрелять по своим (по-крайней мере намеренно).
Но ещё раз повторюсь, я писал его не для того, чтобы исключить возможность убийства своих, а именно для того, чтобы "для прикола" по своим не стреляли... или "чтобы отошёл"...
 
VENДата: Вторник, 21.11.2006, 16:19:55 | Сообщение # 9
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Хочу сказать, что не пытаюсь сравнивать эти плагины - верно подмечено, каждый хорош при определенных обстоятельствах. Например, на более "цивилизованном" сервере у меня вообще не стоит никаких mirror/redirect damage плагинов, просто Slay/Forgive on TK.

Исходный код "Redirect Bullet on TA" я прикрепил в своем предыдущем посте.
Все довольно просто - "ловим" TraceLine, пара проверок, пара изменений в структуре перехваченных данных, и товарищ получает свою же пулю. :]

Сообщение отредактировал VEN - Вторник, 21.11.2006, 16:31:50
 
JohnJДата: Вторник, 21.11.2006, 16:36:57 | Сообщение # 10
Лейтенант
Группа: Скриптеры
Сообщений: 65
Репутация: 4
Статус: Не в сети
Спасибо smile
 
VENДата: Вторник, 21.11.2006, 16:46:35 | Сообщение # 11
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Прочитал исходный код "Anti Team Attacker".

Рекомендую добавить
Code
#include <csx>

Это позволит обладателям AMXX v1.75+ автоматически включать отключенный csx модуль при попытке загрузить данный плагин.

Code
new friendlyfirecan = get_cvar_float(FFCAN)

friendlyfirecan - целочисленная переменная
get_cvar_float - возвращает дробное число
В итоге получаем tag mismatch warning.
Правильней было бы использовать get_cvar_num, т.к. friendlyfire имеет "булевый смысл", поэтому float тут не требуется.

 
JohnJДата: Вторник, 21.11.2006, 16:52:43 | Сообщение # 12
Лейтенант
Группа: Скриптеры
Сообщений: 65
Репутация: 4
Статус: Не в сети
про float: огромное спасибо! сам себе удивляюсь как это я так умудрился smile уже исправил.
про csx: не ставил ещё новый amxx, до сих пор пользуюсь 1.6, так как там есть справка в формате chm. И не использовал ни разу csx (или просто не помню)... Сейчас посмотрел... оказывается там client_damage прописана процедура? даже не знал smile пропишу...


Сообщение отредактировал JohnJ - Вторник, 21.11.2006, 16:54:39
 
VENДата: Вторник, 21.11.2006, 17:18:53 | Сообщение # 13
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Да, client_damage - csx функция, а не выдает "error 017: undefined symbol "client_damage" при "невложенном" csx.inc потому как функция, собвственно, forward типа, не вызывается непосредственно из кода, поэтому компилятор не может определить "недостачу".

Quote
не ставил ещё новый amxx, до сих пор пользуюсь 1.6, так как там есть справка в формате chm
Справка для кодера не важна. Я, например, читаю комментарии в "инклудах" - практически тот же function reference. А как устанавливать/удалять/компилировать плагины нужно только начинающему AMXX кодеру.

Сообщение отредактировал VEN - Вторник, 21.11.2006, 17:20:25
 
slogicДата: Вторник, 21.11.2006, 21:22:20 | Сообщение # 14
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Про friendlyfire. Вообще-то mp_friendlyfire существует не для всех модов. Я пишу пллагины под AMX MOD, так вот там есть vexdum модуль, в котором объявлена своя переменна sv_friendlyfire, которая делает подержку реджима FF более универсальной. Я сделал поиск по бинарникам AMX X, и оказалось, что она объявляется в модуле engine_amxx.dll. Так что осталось проверить состояние sv_friendlyfire при активации mp_friendlyfire (т.е. проверить, синхронизируются ли они).

В любом случае однозначное назначение sv_friendlyfire - корректный расчет повреждений при использовании соотв. фукнций модуля.

ЗЫ. Походу не синхронизируются.

 
AMX Mod X Форум » Плагины » Готовые плагины » Anti Team Attacker (Больше по своим стрелять не будут!)
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024