[TUT] Добавляем W_ модель гранаты через ZP


[TUT] Добавляем W_ модель гранаты через ZP
Как добавить W_ модель гранаты через zombie_plague40.sma

[TUT] Добавляем W_ модель гранаты через ZP

Всем привет, сегодня я вам расскажу как добавить W_ модель гранаты через zombie_plague40.sma

Открываем наш zombie_plague40.sma и ищем:

// Customization vars

И после model_grenade_flare[64], добавляем:

model_w_grenade_flare[64], model_w_grenade_frost[64], model_w_grenade_fire[64],

Далее ищем:

// Custom weapon models

И ниже добавляем:

// W_ models grenade
engfunc(EngFunc_PrecacheModel, model_w_grenade_fire)
engfunc(EngFunc_PrecacheModel, model_w_grenade_frost)
engfunc(EngFunc_PrecacheModel, model_w_grenade_flare)

Теперь ищем:

case SECTION_WEAPON_MODELS:

И дописываем:

// W_ models grenade
else if (equal(key, \”WGRENADE FIRE\”))
copy(model_w_grenade_fire, charsmax(model_w_grenade_fire), value)
else if (equal(key, \”WGRENADE FROST\”))
copy(model_w_grenade_frost, charsmax(model_w_grenade_frost), value)
else if (equal(key, \”WGRENADE FLARE\”))
copy(model_w_grenade_flare, charsmax(model_w_grenade_flare), value)

Открываем zombieplague.ini и после [Weapon Models] дописываем:

WGRENADE FIRE = models/p_fgrenade3.mdl
WGRENADE FROST = models/p_fgrenade3.mdl
WRENADE FLARE = models/v_fgrenade2.mdl

Теперь делаем чтобы гранаты показывало.

Ищем следующий код:

// Forward Set Model
public fw_SetModel(entity, const model[])

И заменяем все на:
[hide]

// Forward Set Model
public fw_SetModel(entity, const model[])
{
// We don\’t care
if (strlen(model) 0.0)
{
// Get entity\’s classname
static classname[10]
pev(entity, pev_classname, classname, charsmax(classname))

// Check if it\’s a weapon box
if (equal(classname, \”weaponbox\”))
{
// They get automatically removed when thinking
set_pev(entity, pev_nextthink, get_gametime() + get_pcvar_float(cvar_removedropped))
return FMRES_IGNORED
}
}

// Narrow down our matches a bit
if (model[7] != \’w\’ || model[8] != \’_\’)
return FMRES_IGNORED

// Get damage time of grenade
static Float:dmgtime
pev(entity, pev_dmgtime, dmgtime)

// Grenade not yet thrown
if (dmgtime == 0.0)
return FMRES_IGNORED

// Get whether grenade\’s owner is a zombie
if (g_zombie[pev(entity, pev_owner)])
{
if (model[9] == \’h\’ && model[10] == \’e\’ && get_pcvar_num(cvar_extrainfbomb)) // Infection Bomb
{
// Give it a glow
fm_set_rendering(entity, kRenderFxGlowShell, 0, 200, 0, kRenderNormal, 16);

// And a colored trail
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW) // TE id
write_short(entity) // entity
write_short(g_trailSpr) // sprite
write_byte(10) // life
write_byte(10) // width
write_byte(0) // r
write_byte(200) // g
write_byte(0) // b
write_byte(200) // brightness
message_end()

// Set grenade type on the thrown grenade entity
set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_INFECTION)
}
}
else if (model[9] == \’h\’ && model[10] == \’e\’ && get_pcvar_num(cvar_firegrenades)) // Napalm Grenade
{
// Give it a glow
fm_set_rendering(entity, kRenderFxGlowShell, 200, 0, 0, kRenderNormal, 16);

// And a colored trail
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW) // TE id
write_short(entity) // entity
write_short(g_trailSpr) // sprite
write_byte(10) // life
write_byte(10) // width
write_byte(200) // r
write_byte(0) // g
write_byte(0) // b
write_byte(200) // brightness
message_end()

// Set grenade type on the thrown grenade entity
set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_NAPALM)
engfunc(EngFunc_SetModel, entity, model_w_grenade_fire)
return FMRES_SUPERCEDE
}
else if (model[9] == \’f\’ && model[10] == \’l\’ && get_pcvar_num(cvar_frostgrenades)) // Frost Grenade
{
// Give it a glow
fm_set_rendering(entity, kRenderFxGlowShell, 0, 100, 200, kRenderNormal, 16);

// And a colored trail
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW) // TE id
write_short(entity) // entity
write_short(g_trailSpr) // sprite
write_byte(10) // life
write_byte(10) // width
write_byte(0) // r
write_byte(100) // g
write_byte(200) // b
write_byte(200) // brightness
message_end()

// Set grenade type on the thrown grenade entity
set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_FROST)
engfunc(EngFunc_SetModel, entity, model_w_grenade_frost)
return FMRES_SUPERCEDE
}
else if (model[9] == \’s\’ && model[10] == \’m\’ && get_pcvar_num(cvar_flaregrenades)) // Flare
{
// Build flare\’s color
static rgb[3]
switch (get_pcvar_num(cvar_flarecolor))
{
case 0: // white
{
rgb[0] = 255 // r
rgb[1] = 255 // g
rgb[2] = 255 // b
}
case 1: // red
{
rgb[0] = random_num(50,255) // r
rgb[1] = 0 // g
rgb[2] = 0 // b
}
case 2: // green
{
rgb[0] = 0 // r
rgb[1] = random_num(50,255) // g
rgb[2] = 0 // b
}
case 3: // blue
{
rgb[0] = 0 // r
rgb[1] = 0 // g
rgb[2] = random_num(50,255) // b
}
case 4: // random (all colors)
{
rgb[0] = random_num(50,200) // r
rgb[1] = random_num(50,200) // g
rgb[2] = random_num(50,200) // b
}
case 5: // random (r,g,b)
{
switch (random_num(1, 3))
{
case 1: // red
{
rgb[0] = random_num(50,255) // r
rgb[1] = 0 // g
rgb[2] = 0 // b
}
case 2: // green
{
rgb[0] = 0 // r
rgb[1] = random_num(50,255) // g
rgb[2] = 0 // b
}
case 3: // blue
{
rgb[0] = 0 // r
rgb[1] = 0 // g
rgb[2] = random_num(50,255) // b
}
}
}
}

// Give it a glow
fm_set_rendering(entity, kRenderFxGlowShell, rgb[0], rgb[1], rgb[2], kRenderNormal, 16);

// And a colored trail
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW) // TE id
write_short(entity) // entity
write_short(g_trailSpr) // sprite
write_byte(10) // life
write_byte(10) // width
write_byte(rgb[0]) // r
write_byte(rgb[1]) // g
write_byte(rgb[2]) // b
write_byte(200) // brightness
message_end()

// Set grenade type on the thrown grenade entity
set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_FLARE)
engfunc( EngFunc_SetModel, entity, model_w_grenade_flare)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}

[/hide]

Все, устанавливаем модели, заходим на сервер и радуемся;)


Комментарии:


Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Zombie-Mod.com — крупнейший игровой портал по Counter Strike