Участник
Пользователь
- Сообщения
- 65
- Реакции
- 5
- Помог
- 1 раз(а)
Nordic Warrior, Открою тебе тайну, если не обновить FASTDL то скачивает файлы по пол года с самого сервера и в папке появятся файлы с разрешением ztmp )))))
Готовится следующее обновление...ты не планируешь разнообразить количество моделей, с таким функционалом
давай грузи - осмотрим,что можно выбратьмогу все варианты модели скинуть
Добавлена одна модель бомбы саб-моделями
Всё осталось также по макросу
Код:
#define BOMB_BIG_SIZE // Закомментируйте,если хотите использовать стандартный размер Бомбы ( см. Скриншоты сравнений в описании ресурса )
Только теперь выбирается порядковый номер Боди из модели в плагине
Код:
#if defined BOMB_BIG_SIZE
set_pev(ent, pev_body, 0)
#else
set_pev(ent, pev_body, 1)
#endif
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#define PLUGIN_NAME "BOMB REAL TIMER"
#define PLUGIN_VERSION "3.0"
#define PLUGIN_AUTHOR "Vaqtincha | Flymic24"
#define BOMB_BIG_SIZE // Закомментируйте,если хотите использовать стандартный размер Бомбы
new const W_MODEL[] = "models/bomb_real_timer/w_c4.mdl"
new const V_MODEL[] = "models/bomb_real_timer/v_c4.mdl"
new const P_MODEL[] = "models/bomb_real_timer/p_c4.mdl"
#define fm_create_entity(%1) engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, %1))
#define fm_find_ent_by_class(%1,%2) engfunc(EngFunc_FindEntityByString, %1, "classname", %2)
new Float:g_flOrigin[3], Float:g_flAngles[3], g_fwdSetModel
const m_flC4Blow = 100;
const m_flNextBlink = 106;
public plugin_precache()
{
precache_model(V_MODEL)
precache_model(P_MODEL)
precache_model(W_MODEL)
}
public plugin_init()
{
if(fm_find_ent_by_class(FM_NULLENT, "info_bomb_target") || fm_find_ent_by_class(FM_NULLENT, "func_bomb_target"))
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
RegisterHam(Ham_Item_Deploy, "weapon_c4", "ItemDeploy_Post", 1)
RegisterHam(Ham_Think, "grenade", "C4_Think");
register_event("BarTime", "event_bomb_planting", "be", "1=3")
register_event("BarTime", "event_bomb_defusing", "be", "1=5", "1=10")
register_logevent("logevent_round_end",2,"1=Round_End")
register_logevent("logevent_bomb_defused",3,"2=Defused_The_Bomb")
register_logevent("logevent_bomb_planted",3,"2=Planted_The_Bomb")
}
}
public C4_Think(ent)
{
new szModel[64];
pev(ent, pev_model, szModel, charsmax(szModel))
if(!equali(szModel, W_MODEL))
return;
new iSkin = 60 - floatround(get_pdata_float(ent, m_flC4Blow) - get_gametime());
set_pev(ent, pev_skin, iSkin);
}
public event_bomb_planting()
g_fwdSetModel = register_forward(FM_SetModel, "fw_SetModel", 0)
public logevent_bomb_planted()
{
new id = get_loguser_index()
if(is_user_connected(id))
{
new Float:flAngles[3], ent
pev(id, pev_v_angle, flAngles)
ent = fm_find_ent_by_model(FM_NULLENT, "grenade", W_MODEL)
if(pev_valid(ent))
{
flAngles[0]=0.0
flAngles[1]+=90.0
set_pev(ent, pev_angles, flAngles)
set_pdata_float(ent, m_flNextBlink, 9999.9)
}
}
}
public event_bomb_defusing()
{
new ent = fm_find_ent_by_model(FM_NULLENT, "grenade", W_MODEL)
if(pev_valid(ent))
{
pev(ent, pev_origin, g_flOrigin)
pev(ent, pev_angles, g_flAngles)
}
}
public logevent_bomb_defused()
{
new ent = fm_create_entity("grenade")
if(!pev_valid(ent))
return;
set_pev(ent, pev_origin, g_flOrigin)
set_pev(ent, pev_angles, g_flAngles)
dllfunc(DLLFunc_Spawn, ent)
engfunc(EngFunc_SetModel, ent, W_MODEL)
#if defined BOMB_BIG_SIZE
set_pev(ent, pev_body, 0)
#else
set_pev(ent, pev_body, 1)
#endif
set_pev(ent, pev_skin, 61)
set_pev(ent, pev_movetype, MOVETYPE_NONE)
set_pev(ent, pev_solid, SOLID_NOT)
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
}
public ItemDeploy_Post(wEnt)
{
new id = get_pdata_cbase(wEnt, 41/* m_pPlayer */, .linuxdiff = 4)
if(id > 0)
{
set_pev(id, pev_viewmodel2, V_MODEL)
set_pev(id, pev_weaponmodel2, P_MODEL)
}
}
public fw_SetModel(ent, const model[])
{
if(!pev_valid(ent) || !equal(model, "models/w_c4.mdl"))
return FMRES_IGNORED
engfunc(EngFunc_SetModel, ent, W_MODEL)
#if defined BOMB_BIG_SIZE
set_pev(ent, pev_body, 0)
#else
set_pev(ent, pev_body, 1)
#endif
set_pev(ent, pev_skin, 0)
return FMRES_SUPERCEDE
}
public logevent_round_end()
{
if(g_fwdSetModel)
unregister_forward(FM_SetModel, g_fwdSetModel, 0)
}
stock get_loguser_index()
{
static loguser[80], name[32]
read_logargv(0, loguser, charsmax(loguser))
parse_loguser(loguser, name, charsmax(name))
return get_user_index(name)
}
stock fm_find_ent_by_model(index, const classname[], const model[])
{
new ent = index, mdl[72]
while((ent = fm_find_ent_by_class(ent, classname)))
{
pev(ent, pev_model, mdl, charsmax(mdl))
if(equal(mdl, model))
return ent
}
return 0
}
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#define PLUGIN_NAME "BOMB REAL TIMER"
#define PLUGIN_VERSION "4.1"
#define PLUGIN_AUTHOR "Vaqtincha | Flymic24 | MayroN"
#define BOMB_ANIMATION // Закомментируйте,если не хотите использовать Анимацию Бомбы после розминирования
#define BACKPACK_ACTIVE // Закомментируйте,если не хотите использовать Кастомную пачку бомбы на земле
#define LED_GLOW // Закомментируйте,если хотите включить стандартное мигание Бомбы
new const V_MODEL[] = "models/bomb_real_timer/v_c4.mdl"
new const P_MODEL[] = "models/bomb_real_timer/p_c4.mdl"
new const W_MODEL[] = "models/bomb_real_timer/w_c4.mdl"
#if defined BACKPACK_ACTIVE
new const BACKPACK[] = "models/bomb_real_timer/w_backpack.mdl"
#endif
#define fm_create_entity(%1) engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, %1))
#define fm_find_ent_by_class(%1,%2) engfunc(EngFunc_FindEntityByString, %1, "classname", %2)
new Float:g_flOrigin[3], Float:g_flAngles[3], g_fwdSetModel
const m_flC4Blow = 100;
#if defined LED_GLOW
const m_flNextBlink = 106;
#endif
public plugin_precache()
{
precache_model(V_MODEL)
precache_model(P_MODEL)
precache_model(W_MODEL)
#if defined BACKPACK_ACTIVE
precache_model(BACKPACK)
#endif
}
public plugin_init()
{
if(fm_find_ent_by_class(FM_NULLENT, "info_bomb_target") || fm_find_ent_by_class(FM_NULLENT, "func_bomb_target"))
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
register_forward(FM_SetModel, "fw_SetModel", 1);
RegisterHam(Ham_Item_Deploy, "weapon_c4", "ItemDeploy_Post", 1)
RegisterHam(Ham_Think, "grenade", "C4_Think");
register_event("BarTime", "event_bomb_planting", "be", "1=3")
register_event("BarTime", "event_bomb_defusing", "be", "1=5", "1=10")
register_logevent("logevent_round_end",2,"1=Round_End")
register_logevent("logevent_bomb_defused",3,"2=Defused_The_Bomb")
register_logevent("logevent_bomb_planted",3,"2=Planted_The_Bomb")
}
}
public C4_Think(ent)
{
new szModel[64];
pev(ent, pev_model, szModel, charsmax(szModel))
if(!equali(szModel, W_MODEL))
return;
new iSkin = 60 - floatround(get_pdata_float(ent, m_flC4Blow) - get_gametime());
set_pev(ent, pev_skin, iSkin);
}
public event_bomb_planting()
g_fwdSetModel = register_forward(FM_SetModel, "fw_SetModel", 0)
public logevent_bomb_planted()
{
new id = get_loguser_index()
if(is_user_connected(id))
{
new Float:flAngles[3], ent
pev(id, pev_v_angle, flAngles)
ent = fm_find_ent_by_model(FM_NULLENT, "grenade", W_MODEL)
if(pev_valid(ent))
{
flAngles[0]=0.0
flAngles[1]+=90.0
set_pev(ent, pev_angles, flAngles)
#if defined LED_GLOW
set_pdata_float(ent, m_flNextBlink, 9999.9)
#endif
}
}
}
public event_bomb_defusing()
{
new ent = fm_find_ent_by_model(FM_NULLENT, "grenade", W_MODEL)
if(pev_valid(ent))
{
pev(ent, pev_origin, g_flOrigin)
pev(ent, pev_angles, g_flAngles)
}
}
public logevent_bomb_defused()
{
new ent = fm_create_entity("grenade")
if(!pev_valid(ent))
return;
set_pev(ent, pev_origin, g_flOrigin)
set_pev(ent, pev_angles, g_flAngles)
dllfunc(DLLFunc_Spawn, ent)
engfunc(EngFunc_SetModel, ent, W_MODEL)
#if defined BOMB_ANIMATION
set_pev(ent, pev_animtime, get_gametime())
set_pev(ent, pev_sequence, 1)
set_pev(ent, pev_frame, 0.0)
set_pev(ent, pev_framerate, 1.0)
#else
set_pev(ent, pev_sequence, 0)
#endif
set_pev(ent, pev_skin, 61)
set_pev(ent, pev_movetype, MOVETYPE_NONE)
set_pev(ent, pev_solid, SOLID_NOT)
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
}
public ItemDeploy_Post(wEnt)
{
new id = get_pdata_cbase(wEnt, 41/* m_pPlayer */, .linuxdiff = 4)
if(id > 0)
{
set_pev(id, pev_viewmodel2, V_MODEL)
set_pev(id, pev_weaponmodel2, P_MODEL)
}
}
public fw_SetModel(ent, const model[])
{
if(!pev_valid(ent))
return FMRES_IGNORED;
if(equal(model, "models/w_c4.mdl"))
{
engfunc(EngFunc_SetModel, ent, W_MODEL);
set_pev(ent, pev_skin, 0)
return FMRES_SUPERCEDE;
}
#if defined BACKPACK_ACTIVE
if(equal(model, "models/w_backpack.mdl"))
{
engfunc(EngFunc_SetModel, ent, BACKPACK);
return FMRES_SUPERCEDE;
}
#endif
return FMRES_IGNORED;
}
public logevent_round_end()
{
if(g_fwdSetModel)
unregister_forward(FM_SetModel, g_fwdSetModel, 0)
}
stock get_loguser_index()
{
static loguser[80], name[32]
read_logargv(0, loguser, charsmax(loguser))
parse_loguser(loguser, name, charsmax(name))
return get_user_index(name)
}
stock fm_find_ent_by_model(index, const classname[], const model[])
{
new ent = index, mdl[72]
while((ent = fm_find_ent_by_class(ent, classname)))
{
pev(ent, pev_model, mdl, charsmax(mdl))
if(equal(mdl, model))
return ent
}
return 0
}
давай грузи - осмотрим,что можно выбрать
я не так тебя понял - я думал ты хочешь от себя ещё несколько разных предложить других моделей )могу все варианты модели скинуть
Признатся честно - в последний момент меня переклинило и я забил на её... )))Я так старался, а мою не добавили)))
In the Archive - both the model and the hands
I use Google and maybe you don't understand me...In the Archive - both the model and the hands