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

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

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

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

Semeclip урон по игроку в func_train

Статус пользователя Captain
сообщение 30.8.2017, 15:00
Сообщение #1
Стаж: 12 лет

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

Всем привет. Проблемка с semiclip. Не знаю как исправить. Когда несколько игроков едут в движущемся объекте, объект останавливается (если игроки встали плотно, в одну кучу) и у игроков начинается отниматься здоровье.

Cкрытый текст
Код:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

new bool:plrSolid[33]
new bool:plrRestore[33]
new plrTeam[33]

public plugin_init()
{
register_plugin("Semiclip", "1.31", "skyjur")
register_forward(FM_PlayerPreThink, "preThink")
register_forward(FM_PlayerPostThink, "postThink")
register_forward(FM_AddToFullPack, "addToFullPack", 1)
}

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, 255)
}
}
}

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

plrTeam[i] = get_user_team(i)
plrSolid[i] = pev(i, pev_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 <= get_maxplayers(); i++)
{
if(plrSolid[i] && id != i)
{
if(plrTeam[i] == plrTeam[id])
{
set_pev(i, pev_solid, SOLID_NOT)
plrRestore[i] = true
}
}
}
}

public postThink(id)
{
static i
static Float:gravity
for(i = 1; i <= get_maxplayers(); i++)
{
if(plrRestore[i])
{
pev(i, pev_gravity, gravity)
set_pev(i, pev_solid, SOLID_SLIDEBOX)
set_pev(i, pev_gravity, gravity)
plrRestore[i] = false
}
}
}


Код:
RegisterHam(Ham_Touch, "func_train", "Semiclip_Touched", 1)

public Semiclip_Touched(entity, id)
{
if(pev_valid(entity) && is_user_alive(id))
{
какой код нужен здесь, чтобы исправить мою проблему?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: