1 Отредактировано coolman (2011-12-19 07:23:43)

Тема: нельзя убить в голову!

Тут совместными усилиями сделали плагин, суть его в том, что в голову могут убивать только игроки с флагом А тоесть ADMIN_IMMUNITY думаю полезный для no_ucp, другими словами в голову будут позволено убивать только игрокам с установленным ucp

//==============================================================//
// ******************* //
// * Cvar Values * //
// ******************* //
// hs_mode 1 Blocks bots from shooting humans in the head //
// hs_mode 2 Blocks all headshots (Humans and bots) //
// hs_mode 3 Headshots Only (blocks all other hitzones) //
// hs_mode 4 Redirects all hitzones to the head //
//==============================================================//

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define IsPlayer(%1) (1<= %1 <= g_iMaxPlayers)
new mode, hitchest, knife, bool:gBotsRegistered, g_iMaxPlayers;

public plugin_init()
{
register_plugin("Headshot Modes", "1.3", "Doc Holiday");
RegisterHam(Ham_TraceAttack, "player", "HamTraceAttack");

mode = register_cvar("hs_mode", "2");
hitchest = register_cvar("hs_chest", "0");
knife = register_cvar("hs_knife", "1");
g_iMaxPlayers = get_maxplayers();
}

public client_authorized( id )
{
if( !gBotsRegistered && is_user_bot( id ) )
{
set_task( 0.1, "register_bots", id );
}
}

public register_bots( id )
{
if( !gBotsRegistered && is_user_connected( id ) )
{
RegisterHamFromEntity( Ham_TraceAttack, id, "HamTraceAttack");
gBotsRegistered = true;
}
}

public HamTraceAttack(Vic, Att, Float:dmg, Float:dir[3], traceresult, dmgbits)
{

if(!IsPlayer(Att) || !IsPlayer(Vic) || Vic == Att)
return HAM_IGNORED;

if(get_pcvar_num(knife))
{
if( get_user_weapon( Att ) == CSW_KNIFE )
return HAM_IGNORED;
}

switch(get_pcvar_num(mode))
{
case 1: // Blocks bots from shooting humans in the head
{
if(!is_user_bot(Vic) && is_user_bot(Att))
{
if(get_tr2(traceresult, TR_iHitgroup) == HIT_HEAD)
{
if(get_pcvar_num(hitchest))
{
set_tr2(traceresult, TR_iHitgroup, HIT_CHEST)
return HAM_HANDLED
}
else
{
return HAM_SUPERCEDE
}
}
}
}
case 2: // Blocks all headshots (Humans and bots)
{
if (get_user_flags(ADMIN_IMMUNITY))
{
return HAM_IGNORED;
}

if(get_tr2(traceresult, TR_iHitgroup) == HIT_HEAD)
{
if(get_pcvar_num(hitchest))
{
set_tr2(traceresult, TR_iHitgroup, HIT_CHEST)
return HAM_HANDLED
}
else
{
return HAM_SUPERCEDE
}
}
}
case 3: // Headshots Only (blocks all other hitzones)
{
if(get_tr2(traceresult, TR_iHitgroup) != HIT_HEAD)
{
return HAM_SUPERCEDE
}
}
case 4:
{
if(get_tr2(traceresult, TR_iHitgroup) != HIT_HEAD)
{
set_tr2(traceresult, TR_iHitgroup, HIT_HEAD)
return HAM_HANDLED
}
}
}
return HAM_IGNORED;
}

http://vipeburg.telenet.ru/
https://vk.com/vipeburgcs

2 Отредактировано LLI.T.A.L.K.E.R. (2011-12-27 01:08:18)

Re: нельзя убить в голову!

могут убивать только игроки с флагом А то есть ADMIN_IMMUNITY, другими словами только игрокам с установленным ucp

Это что же получается? Кто с ucp - все админы?

Ищите, спрашивайте include/ucp.inc, который Endi сам выдавал.

3

Re: нельзя убить в голову!

Тут есть и для hl1 и для hl2 ucp.inc http://ucp-anticheat.ru/native.html

4

Re: нельзя убить в голову!

Под какой это amxmod и нужен ли плагин noucp ?

5 Отредактировано coolman (2011-12-29 15:44:04)

Re: нельзя убить в голову!

LLI.T.A.L.K.E.R. пишет:

могут убивать только игроки с флагом А то есть ADMIN_IMMUNITY, другими словами только игрокам с установленным ucp

Это что же получается? Кто с ucp - все админы?

Ищите, спрашивайте include/ucp.inc, который Endi сам выдавал.

нет, тем кто у меня с ucp выдается флаг А и Б тоесть иммунитет на кик и бан и резервный слот, это защита от вотебан и и плагина АТАК + преимущество в голосованиях, а все игроки, которые играют с UCP у меня благоразумные, если что-то будет не так, то другие админы могут забанить тех, кто, даже с флагом А, но не других админов, вот такой вот каламбур :). Зато радости полные штаны у всех, игровой баланс как-то нормализовался :)))

А в данном плагине стоит ADMIN_IMMUNITY это флаг А

http://vipeburg.telenet.ru/
https://vk.com/vipeburgcs

6

Re: нельзя убить в голову!

Дай ответ на мой вопрос! И кинь в лс свою аську или скайп!

7

Re: нельзя убить в голову!

Вобщем плагин не работает!
Ставил этот http://c-s.net.ua/forum/topic33251.html
Затем No-UCP
Права раздает. Видает А флаг и всеравно все могут хед шоты давать!

8

Re: нельзя убить в голову!

Может здесь ошибка  if (get_user_flags(ADMIN_IMMUNITY)) ?
Может надо так if (get_user_flags(Att, ADMIN_IMMUNITY))  или так  if (get_user_flags(Att) & ADMIN_IMMUNITY ). Как правильно?

Драка за Флаг CSDM  http://flag-cs.ru

9

Re: нельзя убить в голову!

у меня работает

http://vipeburg.telenet.ru/
https://vk.com/vipeburgcs

10

Re: нельзя убить в голову!

У меня тоже работает, но я всё-таки подправил. А то не понятно для какого юзера она (функция get_user_flags) берет значения флагов. Для Vic или Att ? Или может вообще с потолка берет значения.

Драка за Флаг CSDM  http://flag-cs.ru

11

Re: нельзя убить в голову!

делись

http://vipeburg.telenet.ru/
https://vk.com/vipeburgcs

12

Re: нельзя убить в голову!

#include <amxmisc>
.........
    case 2: // Blocks all headshots
    {
      if (access(Att, ADMIN_IMMUNITY) || access(Att, ADMIN_LEVEL_G) || is_user_bot(Att))  //flag s = ADMIN_LEVEL_G
      {
        return HAM_IGNORED;
        ....
остальное без изменений

Драка за Флаг CSDM  http://flag-cs.ru

13 Отредактировано coolman (2012-01-09 10:49:22)

Re: нельзя убить в голову!

4ux пишет:

#include <amxmisc>
.........
    case 2: // Blocks all headshots
    {
      if (access(Att, ADMIN_IMMUNITY) || access(Att, ADMIN_LEVEL_G) || is_user_bot(Att))  //flag s = ADMIN_LEVEL_G
      {
        return HAM_IGNORED;
        ....
остальное без изменений

Ты забыл пояснить, а что это дает то, если и без этого работает, я не скриптер поэтому и хочу понять, зачем???
Но я всегда за улучшение!!!

http://vipeburg.telenet.ru/
https://vk.com/vipeburgcs

14

Re: нельзя убить в голову!

Ошибка компиляции:

//==============================================================//
// ******************* //
// * Cvar Values * //
// ******************* //
// hs_mode 1 Blocks bots from shooting humans in the head //
// hs_mode 2 Blocks all headshots (Humans and bots) //
// hs_mode 3 Headshots Only (blocks all other hitzones) //
// hs_mode 4 Redirects all hitzones to the head //
//==============================================================//

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define IsPlayer(%1) (1<= %1 <= g_iMaxPlayers)
new mode, hitchest, knife, bool:gBotsRegistered, g_iMaxPlayers;

public plugin_init()
{
register_plugin("Headshot Modes", "1.3", "Doc Holiday");
RegisterHam(Ham_TraceAttack, "player", "HamTraceAttack");

mode = register_cvar("hs_mode", "2");
hitchest = register_cvar("hs_chest", "0");
knife = register_cvar("hs_knife", "1");
g_iMaxPlayers = get_maxplayers();
}

public client_authorized( id )
{
if( !gBotsRegistered && is_user_bot( id ) )
{
set_task( 0.1, "register_bots", id );
}
}

public register_bots( id )
{
if( !gBotsRegistered && is_user_connected( id ) )
{
RegisterHamFromEntity( Ham_TraceAttack, id, "HamTraceAttack");
gBotsRegistered = true;
}
}

public HamTraceAttack(Vic, Att, Float:dmg, Float:dir[3], traceresult, dmgbits)
{

if(!IsPlayer(Att) || !IsPlayer(Vic) || Vic == Att)
return HAM_IGNORED;

if(get_pcvar_num(knife))
{
if( get_user_weapon( Att ) == CSW_KNIFE )
return HAM_IGNORED;
}

switch(get_pcvar_num(mode))
{
case 1: // Blocks bots from shooting humans in the head
{
if(!is_user_bot(Vic) && is_user_bot(Att))
{
if(get_tr2(traceresult, TR_iHitgroup) == HIT_HEAD)
{
if(get_pcvar_num(hitchest))
{
set_tr2(traceresult, TR_iHitgroup, HIT_CHEST)
return HAM_HANDLED
}
else
{
return HAM_SUPERCEDE
}
}
}
}
case 2: // Blocks all headshots 
{
if (access(Att, ADMIN_IMMUNITY) || access(Att, ADMIN_LEVEL_G) || is_user_bot(Att))  //flag s = ADMIN_LEVEL_G
{
return HAM_IGNORED;

}

if(get_tr2(traceresult, TR_iHitgroup) == HIT_HEAD)
{
if(get_pcvar_num(hitchest))
{
set_tr2(traceresult, TR_iHitgroup, HIT_CHEST)
return HAM_HANDLED
}
else
{
return HAM_SUPERCEDE
}
}
}
case 3: // Headshots Only (blocks all other hitzones)
{
if(get_tr2(traceresult, TR_iHitgroup) != HIT_HEAD)
{
return HAM_SUPERCEDE
}
}
case 4:
{
if(get_tr2(traceresult, TR_iHitgroup) != HIT_HEAD)
{
set_tr2(traceresult, TR_iHitgroup, HIT_HEAD)
return HAM_HANDLED
}
}
}
return HAM_IGNORED;
}

15

Re: нельзя убить в голову!

Axotnik пишет:

Ошибка компиляции:

вот вот, я и спросил, зачем? Мой вот компелится и работает вроде корректно!

http://vipeburg.telenet.ru/
https://vk.com/vipeburgcs

16

Re: нельзя убить в голову!

Твой не работает: это результат долгого теста! Все без исключений могут делать хед шоты! Тестироволось читом!

17

Re: нельзя убить в голову!

не знаю как читом, а вот без античита в голову попасть не могу, а с ним могут, чудеса :)

http://vipeburg.telenet.ru/
https://vk.com/vipeburgcs

18

Re: нельзя убить в голову!

Скинь в ЛС свой скайп!

19

Re: нельзя убить в голову!

Axotnik пишет:

Ошибка компиляции:

#include <amxmisc>  - это для кого писалось?

Драка за Флаг CSDM  http://flag-cs.ru

20

Re: нельзя убить в голову!

Точно! Спасибо!

21

Re: нельзя убить в голову!

If I'm not wrong, this's cheat way for admins without any tool
this's not fair
You want UCP anti-cheats with all your gamers but you also want cheat with them....
Look too sick -.-

My Homepage
[Clip] NK Style
My CS 1.6 videoclips collection

22

Re: нельзя убить в голову!

кто бы еще дописал что бы и  с ножа вообще нельзя было убить, а то при данном плагине с ножа можно убивать, в том числе и в голову.

http://vipeburg.telenet.ru/
https://vk.com/vipeburgcs

23

Re: нельзя убить в голову!

hs_knife", "1", >>>
hs_knife", "0",

24

Re: нельзя убить в голову!

Axotnik пишет:

hs_knife", "1", >>>
hs_knife", "0",

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

http://vipeburg.telenet.ru/
https://vk.com/vipeburgcs

25 Отредактировано coolman (2012-05-04 18:54:34)

Re: нельзя убить в голову!

чет поставил 0 вообще плагин правильно работать перестал хм

http://vipeburg.telenet.ru/
https://vk.com/vipeburgcs