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

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

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

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

Unreal Spawn Fixer

, Неограниченное количество спавн точек на любой карте
Статус пользователя karaulov
сообщение 27.12.2021, 16:41
Сообщение #1


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Плагин
Unreal Spawn Fixer

Назначение
Игнорирует количество спавн точек, то есть поставили и забыли про проблемы со спавнами, можно играть даже на карте где 1 спавн точка. (Half life и т.п)

Версия 1.1

1.1
Исправлена опечатка в коде

Требования:
Semiclip (или Resemiclip). Если нет то включается внутренний.

Исходный код:
Код:

#include <amxmodx>
#include <reapi>
#include <fakemeta>

#define USE_OWN_SEMICLIP_IF_NOT_FOUND

#define PLUGIN "Unreal Spawn Fixer"

#define AUTHOR "karaulov"

new maxplayers = 32;

public plugin_init()
{
new VERSION[64] = "1.1";
register_plugin(PLUGIN, VERSION, AUTHOR);

RegisterHookChain(RG_CSGameRules_RestartRound, "RestartRound_Pre", false);
RegisterHookChain(RG_CSGameRules_RestartRound, "RestartRound_Post", true);

if (cvar_exists("resemiclip_version"))
{
add(VERSION,charsmax(VERSION),"_resemiclip");
server_cmd("semiclip_option semiclip 1");
server_cmd("semiclip_option time 0");
}
else if (cvar_exists("team_semiclip_version"))
{
add(VERSION,charsmax(VERSION),"_team_semiclip");
set_cvar_num("semiclip",1);
set_cvar_num("semiclip_block_team",0);
set_cvar_num("semiclip_duration",0);
}
else
{
add(VERSION,charsmax(VERSION),"_semiclip");
#if defined USE_OWN_SEMICLIP_IF_NOT_FOUND
register_forward(FM_PlayerPreThink, "preThink");
register_forward(FM_PlayerPostThink, "postThink");
register_forward(FM_AddToFullPack, "addToFullPack", 1);
maxplayers = get_maxplayers();
#endif
}

register_cvar("unreal_spawn_fixer", VERSION, FCVAR_SERVER | FCVAR_SPONLY);

set_member_game(m_bLevelInitialized,true);
set_member_game(m_iSpawnPointCount_CT,32);
set_member_game(m_iSpawnPointCount_Terrorist,32);

set_cvar_float("mp_respawn_immunitytime",1.0);
set_cvar_num("mp_respawn_immunity_force_unset",0);
set_cvar_num("mp_kill_filled_spawn",0);
}

public RestartRound_Pre()
{
if (cvar_exists("resemiclip_version"))
{
server_cmd("semiclip_option semiclip 1");
server_cmd("semiclip_option time 0");
}
else if (cvar_exists("team_semiclip_version"))
{
set_cvar_num("semiclip",1);
set_cvar_num("semiclip_block_team",0);
set_cvar_num("semiclip_duration",0);
}

set_cvar_float("mp_respawn_immunitytime",1.0);
set_cvar_num("mp_respawn_immunity_force_unset",0);
set_cvar_num("mp_kill_filled_spawn",0);
}

public RestartRound_Post()
{
set_member_game(m_bLevelInitialized,true);
set_member_game(m_iSpawnPointCount_CT,32);
set_member_game(m_iSpawnPointCount_Terrorist,32);
}


//AUTHOR "skyjur"
new bool:plrSolid[33]
new bool:plrRestore[33]
new plrTeam[33]

public addToFullPack(es, e, ent, host, hostflags, player, pSet)
{
if(player)
{
if(plrSolid[host] && plrSolid[ent] && plrTeam[host] == plrTeam[ent])
{
set_es(es, ES_Solid, SOLID_NOT)
set_es(es, ES_RenderMode, kRenderTransAlpha)
set_es(es, ES_RenderAmt, 230)
}
}
}

FirstThink()
{
for(new i = 1; i <= maxplayers; i++)
{
if(!is_user_alive(i))
{
plrSolid[i] = false
continue
}

plrTeam[i] = get_user_team(i)
plrSolid[i] = get_entvar(i, var_solid) == SOLID_SLIDEBOX ? true : false
}
}

public preThink(id)
{
static i, LastThink

if(LastThink > id)
{
FirstThink()
}
LastThink = id


if(!plrSolid[id]) return

for(i = 1; i <= maxplayers; i++)
{
if(!plrSolid[i] || id == i) continue

if(plrTeam[i] == plrTeam[id])
{
set_entvar(i, var_solid, SOLID_NOT)
plrRestore[i] = true
}
}
}

public postThink(id)
{
static i

for(i = 1; i <= maxplayers; i++)
{
if(plrRestore[i])
{
set_entvar(i, var_solid, SOLID_SLIDEBOX)
plrRestore[i] = false
}
}
}


Отредактировал: karaulov, - 28.12.2021, 5:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 4 раз
   Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 1.1.2022, 20:01
Сообщение #2


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

Стаж: 13 лет

Сообщений: 2458
Благодарностей: 1482
Полезность: 772

HostGame.cf
Поставил утром на 2 сервера, на обоих вылезли интересные баги.

1. При написании в чат цифры 2 она не отображается, в никах тоже двойка начинает пропускаться.
2. При наведении прицела на своих не отображаются ники. На втором сервере ИНОГДА отображаются, иногда нет.

Какое отношение этот плагин имеет к чату - не имею понятия!
Поставил в начало списка.


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 1.1.2022, 21:51
Сообщение #3


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Metal Messiah, ага очень странно))

в плагине ничего нет кроме установки нескольких переменных.

Возможно конфликт с другими плагинами которые делают спавны.

Разницы куда его вписывать нет, можно и в конец списка.



На серверах имеется resemiclip или semiclip ?
Версии Reapi/Rehlds/Regamedll последние на всех?


Отредактировал: karaulov, - 1.1.2022, 22:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 1.1.2022, 23:40
Сообщение #4


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

Стаж: 13 лет

Сообщений: 2458
Благодарностей: 1482
Полезность: 772

HostGame.cf
С цифрой 2 я разобрался, причина была в моем компе (20-е сутки без перезагрузки). Интересный такой артефакт, копия сборки для захода на левые сервера лежит рядом в соседней папке - на ней глюка не было.

Других плагинов по спавнам нет и никогда не было, решил воспользоваться потому что код в целом понравился.
USE_OWN_SEMICLIP_IF_NOT_FOUND я не убирал, то есть от наличия semiclip тоже по идее ничего не зависит.
На одном серве ReSemiClip есть, на другом его нет. Там где нет ники на прицеле не высвечиваются вообще, там где есть - не высвечивалось эпизодически. Анимация (цвет / прозрачность) модельки напрягает фанатов классики без левых модов, думаю время уменьшить.


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя karaulov
сообщение 2.1.2022, 6:31
Сообщение #5


Стаж: 15 лет

Сообщений: 1077
Благодарностей: 435
Полезность: 465

Metal Messiah,

Если на сервере нет Resemiclip и простого Semiclip то включается встроенный. Но на счет встроенного я не так уверен, так как тестировал его на локалке.
Возможно из-за него неполадки, тогда надо поставить Team Semiclip/Resemiclip и проблем не будет.

И на всякий можно вообще отрубить его комментом USE_OWN_SEMICLIP_IF_NOT_FOUND. (если на сервере точно есть какой-то Semiclip который не определяется плагином)

На сервере данный плагин стоял около 3х-4х лет без проблем, только код в уменьшенном виде был. (без поддержки простого semiclip и встроенного)

Плагин изменяет количество спавн точек, и активирует semiclip если он установлен на сервер, больше никаких посторонних действий не выполняет и
остальные настройки semiclip не трогает (Если была анимация исчезновения и т.п, она останется)

Что бы этот плагин точно не мешал никаким другим плагинам можно его в самый конец списка закинуть.

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