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

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

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

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

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

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

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

Плагин текстур

Статус пользователя Myltysik
сообщение 21.8.2016, 17:38
Сообщение #1
Стаж: 15 лет

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

Добрый вечер,подскажите название плагина,который изменяет вид оружия лежащего на земле,чтобы оно на половину не падло в текстуру. Вот пример.

Прикрепленные файлы:
Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
XyLiGaN
сообщение 21.8.2016, 17:47
Сообщение #2
Стаж: 13 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

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

Myltysik,
Lie Flat - Плагин делает положение выброшенного оружия (weaponbox) реалистичным.

Код:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <xs>

#define PLUGIN "Lie Flat"
#define VERSION "1.1"
#define AUTHOR "Nomexous"

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

RegisterHam(Ham_Touch,"weaponbox","fw_touch",1)
}

public fw_touch(weapon)
lie_flat(weapon)

lie_flat(ent)
{
if (pev(ent, pev_flags) & ~FL_ONGROUND) return

static Float:origin[3], Float:traceto[3], trace = 0, Float:fraction, Float:angles[3], Float:angles2[3]

pev(ent, pev_origin, origin)
pev(ent, pev_angles, angles)

xs_vec_sub(origin, Float:{0.0, 0.0, 10.0}, traceto)

engfunc(EngFunc_TraceLine, origin, traceto, IGNORE_MONSTERS, ent, trace)

get_tr2(trace, TR_flFraction, fraction)
if (fraction == 1.0) return

static Float:original_forward[3]
angle_vector(angles, ANGLEVECTOR_FORWARD, original_forward)

static Float:right[3], Float:up[3], Float:fwd[3]

get_tr2(trace, TR_vecPlaneNormal, up)

if (up[2] == 1.0) return

xs_vec_cross(original_forward, up, right)
xs_vec_cross(up, right, fwd)

vector_to_angle(fwd, angles)
vector_to_angle(right, angles2)

angles[2] = -1.0 * angles2[0]

set_pev(ent, pev_angles, angles)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
OneTime
сообщение 21.8.2016, 17:59
Сообщение #3
Стаж: 9 лет

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

Есть улучшенная версия, загуглите Lie Flat Optimized.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 21.8.2016, 18:16
Сообщение #4
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

Цитата(OneTime @ 21.8.2016, 19:59) *
Есть улучшенная версия, загуглите Lie Flat Optimized.


И чем она улучшена ? В коде выше, хам используется по класснейму, что сокращает количество вызовов практически до нуля.

В плагине Lie Flat автор совершенно не задумывался об оптимизации перехвата самого тача. Тупо кодил "Как по книжке". Увидел FM_Touch и влупил его, ещё equal с класснеймами напихал.

Отредактировал: SISA, - 21.8.2016, 18:16
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Myltysik
сообщение 21.8.2016, 18:26
Сообщение #5
Стаж: 15 лет

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

Спасибо) Не нашел,где ставить спасибку )))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
OneTime
сообщение 21.8.2016, 18:29
Сообщение #6
Стаж: 9 лет

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

SISA, ты бы плагин для начала посмотрел, о котором я говорю ubeysya.gif

Вообще выше модифицированная неизвестно кем версия, не оригинальный плагин, и это нигде не указано. Потому если сравнивать с ним – отличия будут интересны только скриптерам. Из видимых – в LFE только звук падения добавлен.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 21.8.2016, 18:36
Сообщение #7
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

Цитата(OneTime @ 21.8.2016, 20:29) *
SISA, ты бы плагин для начала посмотрел, о котором я говорю ubeysya.gif

Вообще выше модифицированная неизвестно кем версия, не оригинальный плагин, и это нигде не указано. Потому если сравнивать с ним – отличия будут интересны только скриптерам. Из видимых – в LFE только звук падения добавлен.


https://forums.alliedmods.net/showpost.php?...amp;postcount=1 а куда тут именно смотреть ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
OneTime
сообщение 21.8.2016, 18:38
Сообщение #8
Стаж: 9 лет

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

SISA, я не про оригинал же, он УГ smile.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 21.8.2016, 18:38
Сообщение #9
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

Цитата(OneTime @ 21.8.2016, 20:38) *
SISA, я не про оригинал же, он УГ smile.gif


Тогда надо было указывать автора измененного плагина smile.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
OneTime
сообщение 21.8.2016, 18:41
Сообщение #10
Стаж: 9 лет

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

Понимаешь, автор себя сам не указал в коде, потому и я не стал blush.gif
Учту на будущее, спасибо good.gif

Отредактировал: OneTime, - 21.8.2016, 18:42
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 22.8.2016, 1:12
Сообщение #11
Стаж: 13 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

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

OneTime, В этом Lie Flat Optimized, такая интересная бага есть)
Вообщем, если делаешь вот так.
Скрин
После чего, подходишь вплотную к бомбе или даже прыгаешь на неё, неважно, то она просто напросто не возьмётся никак)))))
До тех пор, пока она через пару сек сама не упадёт
Скрин
ps.gif На оружиях не проверял, но думаю там такая же фича)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя SISA
сообщение 22.8.2016, 1:49
Сообщение #12
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

XyLiGaN,

Потому, что надо копировать всю физику сброса оружия из КСС или КСГО (или откуда эта затея пошла), а не отдельный кусок. При касании наклонной плоскости с таким углом, item должен скатываться вниз и желательно с кручением. Короч в 1.6 такое проблематично замутить.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя sunrise
сообщение 22.8.2016, 5:34
Сообщение #13
Стаж: 9 лет 8 месяцев

Сообщений: 60
Благодарностей: 14
Полезность: 179

http://aghl.ru/forum/viewtopic.php?f=19&t=483


pick rylai pls
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя g0ldenman
сообщение 22.8.2016, 16:19
Сообщение #14


Стаж: 10 лет

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

Lie Flat говорят сильно нагружает сервер, фризы, лаги.... никто не скажет?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 22.8.2016, 16:33
Сообщение #15
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(g0ldenman @ 22.8.2016, 17:19) *
Lie Flat говорят сильно нагружает сервер, фризы, лаги.... никто не скажет?

Что мешает поставить и проверить?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя g0ldenman
сообщение 22.8.2016, 17:07
Сообщение #16


Стаж: 10 лет

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

это все скажут у кого он раньше стоял. постоянные подлагивания
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 22.8.2016, 18:24
Сообщение #17


Стаж: 12 лет

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

#define PLUGIN "Weapon Physics"
#define VERSION "2.1"
#define AUTHOR "Nomexous"

Использую его уже долгое время. Лагов и т д нету . Не видел ни разу что бы на склоне оружие было на половину в "земле" .

Исзходник с фиксом передвижения бомбы
Код:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <xs>

#if AMXX_VERSION_NUM < 180

#define HAM_IGNORED 1
#define HAM_HANDLED 2
#define Ham_Spawn Ham:0
#define Ham_TraceAttack Ham:8
#define Ham_TakeDamage Ham:9
#define Ham_Touch Ham:42

native HamHook:RegisterHam(Ham:function, const EntityClass[], const Callback[], Post=0)
native SetHamParamFloat(which, Float:value)
native DisableHamForward(HamHook:fwd)
native EnableHamForward(HamHook:fwd)

#else

#include <hamsandwich>

#endif

#define PLUGIN "Weapon Physics"
#define VERSION "2.1"
#define AUTHOR "Nomexous"

/*

Version 1.0
- Initial release.

Version 2.0
- Added. Ability to compile on amxmodx.org's online compiler.
- Added. Menu for enabling/disabling the plugin.
- Added. Ability for weapons to be moved when shot.
- Added. Sparks when weapon hits a wall while moving above a certain speed.
- Added. Hooking of custom classes.
- Fixed. Looping bounce sound when touching dead bodies in DoD.

Version 2.1
- Fixed. Custom item spawn debug message removed.
- Fixed. Non-visible entities no longer react to explosions (e.g. armoury_entities that have been picked up).
- Changed. Shooting of weapons now off by default.
- Added. Menu option for weapon clatter.

*/

#define BOUNCE "items/weapondrop1.wav"
#define RIC "debris/metal6.wav"

// Persistant items that don't disappear when picked up.
new const persistant[][] = { "armoury_entity" }

// Dropped items.
new const classes[][] = { "weaponbox", "item_thighpack", "weapon_shield" }

// The base is what the entity is created as, e.g. ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")).
// Put all of them here. Make sure that this custom entity can take damage, otherwise it won't work!
new const custom_base[][] = { "info_target" }
// What the entity's classname is changed to after it's created, e.g. set_pev(ent, pev_classname, "fakeweapon")
new const custom_classname[][] = { "fakeweapon" }

#define HOOK_COUNT 4 * (sizeof persistant + sizeof classes + sizeof custom_base)

new HamHook:hamhooks[HOOK_COUNT]
new traceline_fid = 0

new custom_count, shootweapons_pcvar, physics_pcvar, clatter_sound_pcvar

new Float:multiplier = 15.0

public plugin_precache()
{
custom_count = sizeof custom_classname
precache_sound(BOUNCE)
precache_sound(RIC)

physics_pcvar = register_cvar("weapon_physics_enabled", "1")
shootweapons_pcvar = register_cvar("weapon_physics_shoot_weapons", "1")
clatter_sound_pcvar = register_cvar("weapon_physics_weapons_clatter", "1")

do_ham_hooks()
}

public do_ham_hooks()
{
new count = 0

for (new i; i < sizeof persistant; i++)
{
hamhooks[count++] = RegisterHam(Ham_Spawn, persistant[i], "spawn_persistant_item", 1)
hamhooks[count++] = RegisterHam(Ham_Touch, persistant[i], "touch_item")
hamhooks[count++] = RegisterHam(Ham_TakeDamage, persistant[i], "damage_item")
hamhooks[count++] = RegisterHam(Ham_TraceAttack, persistant[i], "shoot_item")
}

for (new x; x < sizeof classes; x++)
{
hamhooks[count++] = RegisterHam(Ham_Spawn, classes[x], "spawn_item", 1)
hamhooks[count++] = RegisterHam(Ham_Touch, classes[x], "touch_item")
hamhooks[count++] = RegisterHam(Ham_TakeDamage, classes[x], "damage_item")
hamhooks[count++] = RegisterHam(Ham_TraceAttack, classes[x], "shoot_item")
}

for (new n; n < sizeof custom_base; n++)
{
hamhooks[count++] = RegisterHam(Ham_Spawn, custom_base[n], "spawn_custom_item", 1)
hamhooks[count++] = RegisterHam(Ham_Touch, custom_base[n], "touch_custom_item")
hamhooks[count++] = RegisterHam(Ham_TakeDamage, custom_base[n], "damage_custom_item")
hamhooks[count++] = RegisterHam(Ham_TraceAttack, custom_base[n], "shoot_item")
}
}

public update_hooks_and_forwards()
{
if (get_pcvar_num(physics_pcvar))
{
for (new i; i < sizeof hamhooks; i++)
{
EnableHamForward(hamhooks[i])
}
}
else
{
for (new i; i < sizeof hamhooks; i++)
{
DisableHamForward(hamhooks[i])
}
}

if (get_pcvar_num(shootweapons_pcvar) && get_pcvar_num(physics_pcvar) && !traceline_fid)
{
traceline_fid = register_forward(FM_TraceLine, "fw_traceline")
}

if ((!get_pcvar_num(shootweapons_pcvar) || !get_pcvar_num(physics_pcvar)) && traceline_fid)
{
unregister_forward(FM_TraceLine, traceline_fid)
traceline_fid = 0
}
}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_event("HLTV", "restart", "a", "1=0", "2=0")

update_hooks_and_forwards()

register_clcmd("amx_weapon_physics_menu", "conjure_menu", ADMIN_SLAY, "Shows weapon physics menu.")

// This multiplier controls how fast the grenade will propel items. Originally, I wanted it to just be proportional to
// the damage, but CZ and CS has different grenade strengths. Add your own here.
new mods[][] = { "cstrike", "czero" }
new Float:mult[] = { 22.0, 17.0 }

new modname[10]
get_modname(modname, 9)

for (new i; i < sizeof mods; i++)
{
if (equal(modname, mods[i]))
{
multiplier = mult[i]
}
}
}

public conjure_menu(id, level, cid)
{
if (cmd_access(id, level, cid, 1))
{
wpm(id)
}
return PLUGIN_HANDLED
}

public wpm(id)
{
static wpmenu

wpmenu = menu_create("Weapon Physics", "menu_h")

get_pcvar_num(physics_pcvar) ? menu_additem(wpmenu, "Weapon physics: \yEnabled", "1") : menu_additem(wpmenu, "Weapon phyics: \rDisabled", "1")
get_pcvar_num(shootweapons_pcvar) ? menu_additem(wpmenu, "Shoot weapons: \yEnabled", "2") : menu_additem(wpmenu, "Shoot weapons: \rDisabled", "2")
get_pcvar_num(clatter_sound_pcvar) ? menu_additem(wpmenu, "Weapons clatter: \yEnabled", "3") : menu_additem(wpmenu, "Weapons clatter: \rDisabled", "3")

menu_display(id, wpmenu, 0)
return PLUGIN_HANDLED
}

public menu_h(id, menu, item)
{
switch (item)
{
case 0:
{
set_pcvar_num(physics_pcvar, !get_pcvar_num(physics_pcvar))
}

case 1:
{
set_pcvar_num(shootweapons_pcvar, !get_pcvar_num(shootweapons_pcvar))
}

case 2:
{
set_pcvar_num(clatter_sound_pcvar, !get_pcvar_num(clatter_sound_pcvar))
}

default:
{
update_hooks_and_forwards()
menu_destroy(menu)
return PLUGIN_HANDLED
}
}

menu_destroy(menu)
wpm(id)
return PLUGIN_HANDLED
}

public restart()
{
for (new i; i < sizeof persistant; i++)
{
new o
while ((o = engfunc(EngFunc_FindEntityByString, o, "classname", persistant[i])))
{
static Float:origin[3], Float:angles[3]
pev(o, pev_vuser1, origin)
pev(o, pev_vuser2, angles)
set_pev(o, pev_angles, angles)
set_pev(o, pev_avelocity, Float:{0.0, 0.0, 0.0})
engfunc(EngFunc_SetOrigin, o, origin)
engfunc(EngFunc_DropToFloor, o)
}
}
}

public spawn_item(ent)
{
set_pev(ent, pev_movetype, MOVETYPE_BOUNCE)
set_pev(ent, pev_takedamage, DAMAGE_YES)
set_pev(ent, pev_health, 100.0)

return HAM_IGNORED
}

public spawn_persistant_item(ent)
{
set_pev(ent, pev_movetype, MOVETYPE_BOUNCE)
set_pev(ent, pev_takedamage, DAMAGE_YES)
set_pev(ent, pev_health, 100.0)

new Float:origin[3], Float:angles[3]
pev(ent, pev_origin, origin)
pev(ent, pev_angles, angles)
set_pev(ent, pev_vuser1, origin)
set_pev(ent, pev_vuser2, angles)

return HAM_IGNORED
}

public spawn_custom_item(ent)
{
if (is_custom_ent(ent))
{
return spawn_item(ent)
}
return HAM_IGNORED
}

public damage_item(ent, inflictor, attacker, Float:damage, damagebits)
{
if (pev(ent, pev_effects) & EF_NODRAW) return HAM_IGNORED

static Float:ent_v[3], Float:ent_o[3], Float:inflictor_o[3], Float:temp[3]
pev(ent, pev_velocity, ent_v)
pev(ent, pev_origin, ent_o)
pev(inflictor, pev_origin, inflictor_o)
xs_vec_sub(ent_o, inflictor_o, temp)
xs_vec_normalize(temp, temp)
xs_vec_mul_scalar(temp, damage, temp)
xs_vec_mul_scalar(temp, multiplier, temp)
xs_vec_add(ent_v, temp, ent_v)
set_pev(ent, pev_velocity, ent_v)

// Set a random yaw. I would've set random pitch and roll, but then the weapons don't land flat, even with my Lie Flat plugin.
static Float:av[3]
//av[0] = random_float(-1000.0, 1000.0)
av[1] = random_float(-1000.0, 1000.0)
//av[2] = random_float(-1000.0, 1000.0)
set_pev(ent, pev_avelocity, av)

SetHamParamFloat(4, 0.0)
return HAM_HANDLED
}

public damage_custom_item(ent, inflictor, attacker, Float:damage, damagebits)
{
if (is_custom_ent(ent))
{
static Float:ent_v[3], Float:ent_o[3], Float:inflictor_o[3], Float:temp[3]
pev(ent, pev_velocity, ent_v)
pev(ent, pev_origin, ent_o)
pev(inflictor, pev_origin, inflictor_o)
xs_vec_sub(ent_o, inflictor_o, temp)
xs_vec_normalize(temp, temp)
xs_vec_mul_scalar(temp, damage, temp)
xs_vec_mul_scalar(temp, multiplier, temp)
xs_vec_add(ent_v, temp, ent_v)
set_pev(ent, pev_velocity, ent_v)

// Set a random yaw. I would've set random pitch and roll, but then the weapons don't land flat, even with my Lie Flat plugin.
static Float:av[3]
av[1] = random_float(-1000.0, 1000.0)
set_pev(ent, pev_avelocity, av)

SetHamParamFloat(4, 0.0)
return HAM_HANDLED
}
return HAM_IGNORED
}

public touch_item(ent, touched)
{
if (pev(touched, pev_solid) < SOLID_BBOX)
return HAM_IGNORED

if (1 <= touched <= 32)
return HAM_IGNORED // Prevents bugginess when someone drops a gun (or in DoD, when a gun gets stuck inside a dead body).

static Float:v[3]
pev(ent, pev_velocity, v)

if (xs_vec_len(v) > 700.0)
{
static Float:origin[3]
pev(ent, pev_origin, origin)
origin[0] += random_float(-10.0, 10.0)
origin[1] += random_float(-10.0, 10.0)
origin[2] += random_float(-10.0, 10.0)
draw_spark(origin)
}

xs_vec_mul_scalar(v, 0.4, v)
set_pev(ent, pev_velocity, v)

if (get_pcvar_num(clatter_sound_pcvar))
{
engfunc(EngFunc_EmitSound, ent, CHAN_WEAPON, BOUNCE, 0.25, ATTN_STATIC, 0, PITCH_NORM)
}

return HAM_IGNORED
}

public touch_custom_item(ent, touched)
{
if (is_custom_ent(ent))
{
return touch_item(ent, touched)
}
return HAM_IGNORED
}

public shoot_item(ent, attacker, Float:damage, Float:direction[3], trace, damagebits)
{
new Model[ 32 ];
pev( ent, pev_model, Model, 31 );

if( containi( Model, "w_backpack" ) != -1)
return HAM_SUPERCEDE

else
{
static Float:endpoint[3]
get_tr2(trace, TR_vecEndPos, endpoint)
draw_spark(endpoint)

static Float:velocity[3]
pev(ent, pev_velocity, velocity)

xs_vec_mul_scalar(direction, damage, direction)
xs_vec_mul_scalar(direction, multiplier, direction)
xs_vec_add(direction, velocity, velocity)
set_pev(ent, pev_velocity, velocity)

engfunc(EngFunc_EmitSound, ent, CHAN_ITEM, RIC, 0.5, ATTN_STATIC, 0, PITCH_NORM)
return HAM_IGNORED
}
return HAM_IGNORED
}

public fw_traceline(Float:start[3], Float:end[3], conditions, id, trace)
{
// Spectators don't need to run this.
if (!is_user_alive(id)) return FMRES_IGNORED

// If we hit a player, don't bother searching for an item nearby.
if (is_user_alive(get_tr2(trace, TR_pHit))) return FMRES_IGNORED

static Float:endpt[3], tr = 0, i

get_tr2(trace, TR_vecEndPos, endpt)

i = 0

while ((i = engfunc(EngFunc_FindEntityInSphere, i, endpt, 20.0)))
{
if (is_shootable_ent(i))
{
engfunc(EngFunc_TraceModel, start, end, HULL_POINT, i, tr)

if (pev_valid(get_tr2(tr, TR_pHit)))
{
get_tr2(tr, TR_vecEndPos, endpt)
set_tr2(trace, TR_vecEndPos, endpt)

set_tr2(trace, TR_pHit, i)

return FMRES_IGNORED
}
}
}

return FMRES_IGNORED
}

public is_shootable_ent(ent)
{
static classname[32]
pev(ent, pev_classname, classname, 31)

for (new i; i < sizeof classes; i++)
{
if (equal(classname, classes[i]))
{
return true
}
}

for (new i; i < sizeof persistant; i++)
{
if (equal(classname, persistant[i]))
{
return true
}
}

for (new i; i < sizeof custom_classname; i++)
{
if (equal(classname, custom_classname[i]))
{
return true
}
}

return false
}

public is_custom_ent(ent)
{
static classname[40]
pev(ent, pev_classname, classname, 39)

for (new i; i < custom_count; i++)
{
if (equal(classname, custom_classname[i]))
{
return true
}
}

return false
}

stock draw_spark(Float:origin[3])
{
message_begin(MSG_ALL, SVC_TEMPENTITY)
write_byte(TE_SPARKS)
engfunc(EngFunc_WriteCoord, origin[0])
engfunc(EngFunc_WriteCoord, origin[1])
engfunc(EngFunc_WriteCoord, origin[2])
message_end()
}


Отредактировал: ssx, - 22.8.2016, 18:29


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 22.8.2016, 18:44
Сообщение #18
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

физика как раз не очень сложно реализуется, просто на картах нет свободных ентити, которыми можно был бы управлять. а создавать их каждый раз плагинами пфф.


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