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

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

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

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

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

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

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

Ищу плагин unstuck

, say /unstuck [РЕШЕНО]
Статус пользователя LaFA
сообщение 19.7.2015, 15:03
Сообщение #1


Стаж: 14 лет

Сообщений: 4505
Благодарностей: 3256
Полезность: 793

Стоит модуль прозрачности от s1lent, нужен рабочий autounstuck или say /unstuck. Поиском пользовался, мало что это дало..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя coca-cola :)
сообщение 19.7.2015, 15:19
Сообщение #2


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

Стаж: 10 лет
Город: Москва

Сообщений: 1306
Благодарностей: 1031
Полезность: 1247

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

Код:
#include <amxmodx>
#include <fun>
#include <fakemeta>

#define is_client(%0) (0 < (%0) <= max_players)

new stuck[33], cvar[3], max_players

new const Float:size[][3] = {
{0.0, 0.0, 1.0}, {0.0, 0.0, -1.0}, {0.0, 1.0, 0.0}, {0.0, -1.0, 0.0}, {1.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},
{0.0, 0.0, 2.0}, {0.0, 0.0, -2.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}, {-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, 0.0, 3.0}, {0.0, 0.0, -3.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}, {-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, 0.0, 4.0}, {0.0, 0.0, -4.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}, {-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, 0.0, 5.0}, {0.0, 0.0, -5.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}, {-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("Automatic Unstuck","1.5","NL)Ramon(NL")
cvar[0] = register_cvar("amx_autounstuck","1")
cvar[1] = register_cvar("amx_autounstuckeffects","1")
cvar[2] = register_cvar("amx_autounstuckwait","5")
set_task(0.1,"checkstuck",0,"",0,"b")
max_players = global_get(glb_maxClients);
}

public checkstuck() {
if(get_pcvar_num(cvar[0]) >= 1) {
static players[32], pnum, player
get_players(players, pnum)
static Float:origin[3]
static Float:mins[3], hull
static Float:vec[3]
static o,i
for(i=0; i<pnum; i++){
player = players[i]
if (is_user_alive(player)) {
pev(player, pev_origin, origin)
hull = pev(player, pev_flags) & FL_DUCKING ? HULL_HEAD : HULL_HUMAN
if (!get_user_noclip(player) && !(pev(player, pev_solid) & SOLID_NOT) && !is_hull_vacant(origin, hull,player)) {
++stuck[player]
if(stuck[player] >= get_pcvar_num(cvar[2])) {
pev(player, pev_mins, mins)
vec[2] = origin[2]
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_hull_vacant(vec, hull,player)) {
engfunc(EngFunc_SetOrigin, player, vec)
effects(player)
set_pev(player,pev_velocity,{0.0,0.0,0.0})
o = sizeof size
}
}
}
}
else
{
stuck[player] = 0
}
}
}
}
}

stock bool:is_hull_vacant(const Float:origin[3], hull,id) {
static tr;
engfunc(EngFunc_TraceHull, origin, origin, 0, hull, id, tr)

if (is_client(get_tr2 (tr, TR_pHit)) || get_tr2(tr, TR_InOpen) && !get_tr2(tr, TR_StartSolid) || !get_tr2(tr, TR_AllSolid)) {
return true
}

return false
}

public effects(id) {
if(get_pcvar_num(cvar[1])) {
message_begin(MSG_ONE_UNRELIABLE,105,{0,0,0},id )
write_short(1<<10) // fade lasts this long duration
write_short(1<<10) // fade lasts this long hold time
write_short(1<<1) // fade type (in / out)
write_byte(20) // fade red
write_byte(255) // fade green
write_byte(255) // fade blue
write_byte(255) // fade alpha
message_end()
client_cmd(id,"spk fvox/blip.wav")
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Djeki
сообщение 19.7.2015, 15:43
Сообщение #3


Стаж: 8 лет 9 месяцев

Сообщений: 210
Благодарностей: 9
Полезность: 44

А что дает данный плагин ?)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя LaFA
сообщение 20.7.2015, 2:42
Сообщение #4


Стаж: 14 лет

Сообщений: 4505
Благодарностей: 3256
Полезность: 793

bakssoldier, стандартный унстак не подходит, с данным модулем он работает некорректно, постоянно срабатывает когда игроки в друг друге..
Проблему решил, но тот кто помог, попросил плагин никому не давать :(
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Todopoderoso
сообщение 12.3.2017, 7:21
Сообщение #5
Стаж: 10 лет

Сообщений: 685
Благодарностей: 299
Полезность: 579

Да такая же проблема, а я думал баг новый. Но на semiclip hlds такого не было. После перехода на rehlds - resemiclip, появилось тоже самое, писал репорт на d-s но чет как-то всем пофиг. Никто не поделится рабочим плагином?
LaFA, у кого хоть брал скажи)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SonGKRD
сообщение 12.3.2017, 13:35
Сообщение #6


Стаж: 8 лет 7 месяцев

Сообщений: 91
Благодарностей: 22
Полезность: 61

Не проверял
Cкрытый текст

Код:

#include <amxmodx>
#include <fun>
#include <fakemeta>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif
// ^1 - Цвет чата
// ^3 - Цвет команд (Красный, Синий, Белый если в спектрах)
// ^4 - Зеленый
new const Float:size[][3] = {
{0.0, 0.0, 1.0}, {0.0, 0.0, -1.0}, {0.0, 1.0, 0.0}, {0.0, -1.0, 0.0}, {1.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},
{0.0, 0.0, 2.0}, {0.0, 0.0, -2.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}, {-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, 0.0, 3.0}, {0.0, 0.0, -3.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}, {-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, 0.0, 4.0}, {0.0, 0.0, -4.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}, {-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, 0.0, 5.0}, {0.0, 0.0, -5.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}, {-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("Automatic Unstuck","1.5","NL)Ramon(NL")
register_clcmd("say /stuck","checkstuck")
register_clcmd("stuck","checkstuck")
}
public checkstuck(id)
{
static Float:origin[3]
static Float:mins[3], hull
static Float:vec[3]
static o

if (!is_user_alive(id))
return

pev(id, pev_origin, origin)
hull = pev(id, pev_flags) & FL_DUCKING ? HULL_HEAD : HULL_HUMAN
if (!is_hull_vacant(origin, hull,id) && !get_user_noclip(id) && !(pev(id,pev_solid) & SOLID_NOT))
{

pev(id, pev_mins, mins)
vec[2] = origin[2]
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_hull_vacant(vec, hull,id)) {
engfunc(EngFunc_SetOrigin, id, vec)
client_print_color(id, print_chat, "^4[Stuck] ^1Вы ^3застряли и были перемещены")
client_cmd(id,"spk fvox/blip.wav")
set_pev(id,pev_velocity,{0.0,0.0,0.0})
o = sizeof size
}
}
} else {
client_print_color(id, print_chat, "^4[Stuck] ^1Вы ^3не застряли")
}
}
stock bool:is_hull_vacant(const Float:origin[3], hull,id)
{
static tr
engfunc(EngFunc_TraceHull, origin, origin, 0, hull, id, tr)
if (!get_tr2(tr, TR_StartSolid) || !get_tr2(tr, TR_AllSolid))
return true

return false
}

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 12.3.2017, 13:40
Сообщение #7


Стаж: 9 лет

Сообщений: 2234
Благодарностей: 1341
Полезность: 836

//дел

Отредактировал: ssx, - 12.3.2017, 14:49


[CS 1.6 Public] 78.152.169.100:27014
[CS 1.6 DM FFA] 78.152.169.100:27015
[CS 1.6 DM AIM] 78.152.169.100:27017
[Half-Life DM FFA] 78.152.169.100:27016
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BlackSignature
сообщение 13.3.2017, 6:03
Сообщение #8


Стаж: 13 лет
Город: Москва

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

Присоединяюсь, тоже давно ищу решение данной проблемы, и до сих пор так его и не нашёл. Неужели его не существует? Проблема ведь должна быть актуальной для большого кол-ва администраторов...

Беда либо в
Код
!(pev(player, pev_solid) & SOLID_NOT)
, либо в
Код
!is_hull_vacant(origin, hull,player))
.
Т.е. на semiclip'е всё нормально определяло, а на resemiclip не срабатывает.

З.Ы. Код из поста SonGKRD это не автоматический анстак, а ручной. Нужен именно ручной (вы же знаете игроков... им хоть каждые 10 сек DHUD'ом лупи по центру про /stuck, они всё равно не поймут что и как).


Написание и правка плагинов, услуги гаранта
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BlackSignature
сообщение 13.3.2017, 6:05
Сообщение #9


Стаж: 13 лет
Город: Москва

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

* Оговорился. Нужен не ручной, а автоматический. Поделитесь пожалуйста, если у кого есть...


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