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

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

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

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

Weapon USE Pickup

Статус пользователя NightFury406
сообщение 7.10.2018, 14:07
Сообщение #1
Стаж: 8 лет 2 месяца

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

Поднимает оружие при наведении прицела и нажатии кнопки E (аналог CS GO)
Так же выкидывает старое оружие если поднимаешь новое на E
Код:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <reapi>

#define DISTANCE 80.0
#define COLOR 75, 0, 255

#define PDATA_VALID 2
#define is_entity(%0) (pev_valid(%0) == PDATA_VALID)

new Float:g_Hud[33], g_Entity[33]

public plugin_init()
{
register_plugin("Weapon USE Pickup", "1.0", "406")
register_forward(FM_AddToFullPack, "fm_AddToFullPackPost", 1)
register_forward(FM_ClientDisconnect, "fm_ClientDisconnectPre")
RegisterHookChain(RG_CBasePlayer_PreThink, "rg_CBasePlayerPreThink")
}

public fm_ClientDisconnectPre(player) g_Entity[player] = 0

public fm_AddToFullPackPost(es_handle, e, entity, host)
{
if(!is_user_alive(host) || host == entity || g_Entity[host] != entity) return FMRES_IGNORED
set_es(es_handle, ES_RenderMode, kRenderNormal)
set_es(es_handle, ES_RenderFx, kRenderFxGlowShell)
set_es(es_handle, ES_RenderAmt, 16)
set_es(es_handle, ES_RenderColor, {COLOR})
return FMRES_IGNORED
}

public rg_CBasePlayerPreThink(player)
{
if(!is_user_alive(player)) return HC_CONTINUE
new Float:vOrigin[3], Float:vAngle[3], entity = FM_NULLENT
ExecuteHam(Ham_Player_GetGunPosition, player, vOrigin)
pev(player, pev_v_angle, vAngle)
angle_vector(vAngle, ANGLEVECTOR_FORWARD, vAngle)
vAngle[0] = vAngle[0] * DISTANCE + vOrigin[0]
vAngle[1] = vAngle[1] * DISTANCE + vOrigin[1]
vAngle[2] = vAngle[2] * DISTANCE + vOrigin[2]
engfunc(EngFunc_TraceLine, vOrigin, vAngle, DONT_IGNORE_MONSTERS, player, 0)
get_tr2(0, TR_vecEndPos, vOrigin)
while((entity = engfunc(EngFunc_FindEntityInSphere, entity, vOrigin, 0.5)))
{
if(is_entity(entity) && FClassnameIs(entity, "weaponbox"))
{
if(g_Hud[player] <= get_gametime())
{
set_hudmessage(COLOR, -1.0, 0.7, 2, 0.0, 1.0, 0.02, 0.5)
show_hudmessage(player, "Press USE to pick up")
g_Hud[player] = get_gametime() + 120.0
}
if(pev(entity, pev_flags) & FL_ONGROUND)
{
g_Entity[player] = entity
if(get_member(player, m_afButtonPressed) & IN_USE)
{
if(is_entity(get_member(entity, m_WeaponBox_rgpPlayerItems, PRIMARY_WEAPON_SLOT)))
rg_drop_items_by_slot(player, PRIMARY_WEAPON_SLOT)
else if(is_entity(get_member(entity, m_WeaponBox_rgpPlayerItems, PISTOL_SLOT)))
rg_drop_items_by_slot(player, PISTOL_SLOT)
dllfunc(DLLFunc_Touch, entity, player)
}
}
return HC_CONTINUE
}
}
g_Entity[player] = 0
return HC_CONTINUE
}

Прикрепленные файлы:
Прикрепленный файл  weapon_use_pickup.sma ( 2,38 килобайт ) Кол-во скачиваний: 60
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя bratok007
сообщение 28.1.2019, 14:42
Сообщение #2


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

Сообщений: 72
Благодарностей: 33
Полезность: 287

Как сделать так, чтоб не бралось оружие автоматически когда наступаешь на него?


Легендарный проект "Counter-Strike 1.6 DeathMatch Пушки и Лазеры" серверов - legproj.ru
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: