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

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

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

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

> Правила раздела

Перед созданием новой темы убедитесь, не искал ли кто-нибудь подобный плагин до вас, для этого следует воспользоваться поиском.

Все вновь созданные темы, с названием типа "Помогите найти", "А что это за плагин", "Ищу плагин", "Нужен плагин", "Подскажите пожалуйста название плагина" - будут удалены.
При создании темы постарайтесь максимально понятно сформулировать её заголовок так, чтобы он соответствовал функциям плагина который Вы ищите. В том случае, если Вам не удается сформулировать мысль и правильно расписать всё в теме, воспользуйтесь графическим редактором, к примеру Paint, что бы примерно изобразить функции нужного Вам плагина.

antiblocker

ops244
сообщение 28.9.2013, 6:50
Сообщение #1
Стаж: 15 лет

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

Ребят, есть-ли плагин, который первые 5 сек. даёт проходить через своих игроков?
пару качал, но они с багом (одного игрока иногда не видно)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя winzh1
сообщение 28.9.2013, 7:41
Сообщение #2


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Попробуйте этот
Код:
#include <amxmodx>
#include <fakemeta>

#define TASKID 367280

new bool:g_bSolid[33]
new bool:g_bHasSemiclip[33]
new Float:g_fOrigin[33][3]

new g_Time
new g_Work

new const Float:size[][3] =
{
{0.0, 1.0, 0.0}, {0.0, -1.0, 0.0}, {1.0, 0.0, 0.0}, {-1.0, 0.0, 0.0}, {0.0, 0.0, 1.0}, {0.0, 0.0, -1.0}, {-1.0, 1.0, 1.0}, {1.0, 1.0, 1.0}, {1.0, -1.0, 1.0}, {1.0, 1.0, -1.0}, {-1.0, -1.0, 1.0}, {1.0, -1.0, -1.0}, {-1.0, 1.0, -1.0}, {-1.0, -1.0, -1.0},
{0.0, 2.0, 0.0}, {0.0, -2.0, 0.0}, {2.0, 0.0, 0.0}, {-2.0, 0.0, 0.0}, {0.0, 0.0, 2.0}, {0.0, 0.0, -2.0}, {-2.0, 2.0, 2.0}, {2.0, 2.0, 2.0}, {2.0, -2.0, 2.0}, {2.0, 2.0, -2.0}, {-2.0, -2.0, 2.0}, {2.0, -2.0, -2.0}, {-2.0, 2.0, -2.0}, {-2.0, -2.0, -2.0},
{0.0, 3.0, 0.0}, {0.0, -3.0, 0.0}, {3.0, 0.0, 0.0}, {-3.0, 0.0, 0.0}, {0.0, 0.0, 3.0}, {0.0, 0.0, -3.0}, {-3.0, 3.0, 3.0}, {3.0, 3.0, 3.0}, {3.0, -3.0, 3.0}, {3.0, 3.0, -3.0}, {-3.0, -3.0, 3.0}, {3.0, -3.0, -3.0}, {-3.0, 3.0, -3.0}, {-3.0, -3.0, -3.0},
{0.0, 4.0, 0.0}, {0.0, -4.0, 0.0}, {4.0, 0.0, 0.0}, {-4.0, 0.0, 0.0}, {0.0, 0.0, 4.0}, {0.0, 0.0, -4.0}, {-4.0, 4.0, 4.0}, {4.0, 4.0, 4.0}, {4.0, -4.0, 4.0}, {4.0, 4.0, -4.0}, {-4.0, -4.0, 4.0}, {4.0, -4.0, -4.0}, {-4.0, 4.0, -4.0}, {-4.0, -4.0, -4.0},
{0.0, 5.0, 0.0}, {0.0, -5.0, 0.0}, {5.0, 0.0, 0.0}, {-5.0, 0.0, 0.0}, {0.0, 0.0, 5.0}, {0.0, 0.0, -5.0}, {-5.0, 5.0, 5.0}, {5.0, 5.0, 5.0}, {5.0, -5.0, 5.0}, {5.0, 5.0, -5.0}, {-5.0, -5.0, 5.0}, {5.0, -5.0, -5.0}, {-5.0, 5.0, -5.0}, {-5.0, -5.0, -5.0}
}

public plugin_init()
{
register_plugin("AntiBlock", "1.2", "pic")

g_Time = register_cvar("antiblock_time", "5.0")

register_forward(FM_PlayerPreThink, "fwdPlayerPreThink")
register_forward(FM_PlayerPostThink, "fwdPlayerPostThink")
register_forward(FM_AddToFullPack, "fwdAddToFullPack_Post", 1)

register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
}

public event_round_start()
{
if (task_exists(TASKID))
remove_task(TASKID)

g_Work = true
set_task(get_pcvar_float(g_Time), "reset_state", TASKID)
}

public reset_state()
{
g_Work = false
checkstuck
}

public checkstuck()
{
static players[32], num, player
get_players(players, num, "ach")
static Float:origin[3]
static Float:mins[3]
static Float:vec[3]
static o,i
for(i=0; i<num; i++)
{
player = players[i]
pev(player, pev_origin, origin)
if (!is_hull_vacant(origin, player))
{
pev(player, pev_mins, mins)
for (o=0; o < sizeof size; ++o)
{
vec[0] = origin[0] - mins[0] * size[o][0]
vec[1] = origin[1] - mins[1] * size[o][1]
vec[2] = origin[2] - mins[2] * size[o][2]
if (is_user_alive(player) && is_hull_vacant(vec, player))
{
engfunc(EngFunc_SetOrigin, player, vec)
o = sizeof size
}
}
}
}
}

public fwdPlayerPreThink(plr)
{
if(!g_Work)
return FMRES_IGNORED

static i, players[32], num, player, last_think
get_players(players, num, "ach")

if(last_think > plr)
{
for(i=0; i<num; i++)
{
player = players[i]
if(is_user_alive(player))
{
g_bSolid[player] = pev(player, pev_solid) == SOLID_SLIDEBOX ? true : false
pev(player, pev_origin, g_fOrigin[player])
}
else
g_bSolid[player] = false
}
}
last_think = plr
if(g_bSolid[plr])
{
for(i=0; i<num; i++)
{
player = players[i]
if(g_bSolid[player] && player != plr && get_user_team(player) == get_user_team(plr))
{
set_pev(player, pev_solid, SOLID_NOT)
g_bHasSemiclip[player] = true
}
}
}
return FMRES_IGNORED
}

public fwdPlayerPostThink(plr)
{
if(!g_Work)
return

static i, players[32], num, player
get_players(players, num, "ach")

for(i=0; i<num; i++)
{
player = players[i]
if(g_bHasSemiclip[player])
{
set_pev(player, pev_solid, SOLID_SLIDEBOX)
g_bHasSemiclip[player] = false
}
}
}

public fwdAddToFullPack_Post(es_handle, e, ent, host, hostflags, player, pset)
{
if(player && g_Work)
{
if(g_bSolid[host] && g_bSolid[ent])
set_es(es_handle, ES_Solid, SOLID_NOT)
}
return FMRES_IGNORED
}

public plugin_end()
{
if(task_exists(TASKID))
remove_task(TASKID)

g_Work = false
}

stock bool:is_hull_vacant(const Float:origin[3],id)
{
static tr
engfunc(EngFunc_TraceHull, origin, origin, 0, pev(id, pev_flags) & FL_DUCKING ? HULL_HEAD : HULL_HUMAN, id, tr)
if (!get_tr2(tr, TR_StartSolid) && !get_tr2(tr, TR_AllSolid) && get_tr2(tr, TR_InOpen))
return true

return false
}


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
ops244
сообщение 28.9.2013, 7:48
Сообщение #3
Стаж: 15 лет

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

ща затестим paf.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Templar
сообщение 28.9.2013, 8:12
Сообщение #4
Иконка группы

Стаж: 18 лет

Сообщений: 2680
Благодарностей: 978
Полезность: 860

Меценат Меценат

А если в друг друге застревают автоматом выкидывает или самому на пробел жать? У меня просто стоит но иногда баг бывает что не могут вылезти с друг друга )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя winzh1
сообщение 28.9.2013, 8:18
Сообщение #5


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Цитата(Templar @ 28.9.2013, 13:12) *
А если в друг друге застревают автоматом выкидывает или самому на пробел жать? У меня просто стоит но иногда баг бывает что не могут вылезти с друг друга )

Можно тут подробнее почитать
Скрытый текст
http://amxmodx.su/forum/viewtopic.php?f=5&t=2371


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SpokounbIu
сообщение 28.9.2013, 9:21
Сообщение #6
Стаж: 12 лет

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

#include <amxmodx>
#include <fakemeta>

#define PLUGIN_NAME "Anti Blocker"
#define PLUGIN_VERSION "0.1"
#define PLUGIN_AUTHOR "No"

#define SC_TASKID 38800

new bool:g_antiblock = false
new pcv_antiblock
new pcv_antiblock_time
new g_duration[33]

public plugin_init ( )
{
register_plugin ( PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR )
register_forward ( FM_StartFrame, "fm_startframe" )
register_logevent ( "event_round_start", 2, "0=World triggered", "1=Round_Start" )

pcv_antiblock = register_cvar ( "mindtrek_antiblock", "1" )
pcv_antiblock_time = register_cvar ( "mindtrek_antiblock_time", "5" )
}

public fm_startframe ( )
{
if ( !g_antiblock ) return FMRES_IGNORED

static players[32], num, i, player

get_players ( players, num, "ach" )

for ( i = 0; i < num; i++ )
{
player = players[i]

if ( is_semiclip ( player ) )
{
if ( is_solid ( player ) )
set_notsolid ( player )
}
else
{
if ( !is_solid ( player ) )
set_solid ( player )
}
}

return FMRES_IGNORED
}

bool:is_semiclip ( id )
{
static players[32], num, i, target, team
/*
switch ( get_user_team ( id ) )
{
case 1:
get_players ( players, num, "ach", "T" )

case 2:
get_players ( players, num, "ach", "CT" )

default:
return false
}
*/
static Float:player_origin[3], Float:player_origin_z[3]
static Float:target_origin[3], Float:target_origin_z[3]

pev ( id, pev_origin, player_origin )

player_origin_z[2] = player_origin[2]
player_origin[2] = 0.0

get_players ( players, num, "ach" )
team = get_user_team ( id )

for ( i = 0; i < num; i++ )
{
target = players[i]

if ( id == target || team != get_user_team ( target ) ) continue

pev ( target, pev_origin, target_origin )

target_origin_z[2] = target_origin[2]
target_origin[2] = 0.0

if ( ( vector_distance ( player_origin, target_origin ) < 60 && vector_distance ( player_origin_z, target_origin_z ) < 90 ) )
return true
}

return false
}

bool:is_solid ( id )
{
if ( pev ( id, pev_solid ) == SOLID_BBOX )
return true

return false
}

set_solid ( id )
{
if ( is_user_alive ( id ) )
{
use_rendering ( id )
set_pev ( id, pev_solid, SOLID_BBOX )
}
}

set_notsolid ( id )
{
if ( is_user_alive ( id ) )
{
use_rendering ( id, kRenderFxPulseSlow, 0, 0, 0, kRenderTransTexture, 200 )
set_pev ( id, pev_solid, SOLID_NOT )
}
}

stock use_rendering ( index, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16 )
{
set_pev ( index, pev_renderfx, fx )

new Float:RenderColor[3]

RenderColor[0] = float ( r )
RenderColor[1] = float ( g )
RenderColor[2] = float ( b )

set_pev ( index, pev_rendercolor, RenderColor )
set_pev ( index, pev_rendermode, render )
set_pev ( index, pev_renderamt, float ( amount ) )
}

public event_round_start ( )
{
if ( task_exists ( SC_TASKID ) )
remove_task ( SC_TASKID )

if ( get_pcvar_num ( pcv_antiblock ) )
g_antiblock = true

set_task ( get_pcvar_float ( pcv_antiblock_time ), "task_sc_end", SC_TASKID )

return PLUGIN_CONTINUE
}

public task_sc_end ( )
{
g_antiblock = false

static players[32], num, i, player

get_players ( players, num, "ach" )

for ( i = 0; i < num; i++ )
{
player = players[i]

if ( !is_solid ( player ) )
{
g_duration[player] = 0
set_task ( 0.2, "task_sc_wait", player )
}
}

return PLUGIN_CONTINUE
}

public task_sc_wait ( id )
{
if ( task_exists ( id ) )
remove_task ( id )

if ( is_semiclip ( id ) )
{
if ( ++g_duration[id] > 20 )
user_slap ( id, 0 )

set_task ( 0.2, "task_sc_wait", id )
}

else
set_solid ( id )

return PLUGIN_CONTINUE
}

public plugin_end ( )
{
if ( task_exists ( SC_TASKID ) )
remove_task ( SC_TASKID )

g_antiblock = false

for ( new i = 1; i < 33; i++ )
if ( task_exists ( i ) )
remove_task ( i )

return PLUGIN_CONTINUE
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: