[ZP] Как сделать модель рук зомби с гранатой через мод?
Как сделать модель рук зомби с гранатой через мод?

Привет ребят, решился я Ragamafona написать статью о том как сделать v_ модель гранаты для каждого зомби через мод.
Перед началом хочу предупредить, урок(статья) относиться для тех кто хотя бы понимает малость базовых значений редактирования исходного кода.
Урок не подходит для ньюбаев в ознакомительных целях, но я всё же попытался расписать всё максимально просто

1.Регистрируем переменные:
new Array:g_zclass_clawbombmodel;
new Array:g_zclass2_clawbombmodel;

2.Находим public plugin_precache() затем туда вставляем:
g_zclass_clawbombmodel = ArrayCreate(32, 1);
g_zclass2_clawbombmodel = ArrayCreate(32, 1);

3.Ищем строки:
// Add clawmodel
ArrayGetString(g_zclass_clawmodel, i, buffer, charsmax(buffer))
format(buffer, charsmax(buffer), "^nCLAWMODEL = %s", buffer)
fputs(file, buffer)

Ниже добавляем:
// Add clawbombmodel
ArrayGetString(g_zclass_clawbombmodel, i, buffer, charsmax(buffer))
format(buffer, charsmax(buffer), "^nCLAWBOMBMODEL = %s", buffer)
fputs(file, buffer);

4.Ищем строку - replace_weapon_models(id, weaponid)

Далее в case: CSW_SMOKEGRENADE, case CSW_FLASHBANG, case CSW_HEGRENADE

Добавляем код:
if( g_zombie[ id ] )
{
static szBuffer[ 128 ];
ArrayGetString( g_zclass_clawbombmodel, g_zombieclass[ id ], szBuffer, charsmax( szBuffer ) );
format( szBuffer, charsmax( szBuffer ), "models/zombie_plague/%s", szBuffer
);
set_pev( id, pev_viewmodel2, szBuffer );
}
else

5.Теперь к else из п.4 допишем в каждый кейс, в моем случаи CSW_SMOKEGRENADE:
set_pev(id, pev_viewmodel2, model_grenade_flare);

6.Ищем строку:
public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback)
Добавляем один параметр:
public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], const clawbombmodel[], hp, speed, Float:gravity, Float:knockback)

7.В этом же паблике конвертируем 5-ый параметр в буфер:
param_convert(1);
param_convert(2);
param_convert(3);
param_convert(4);
param_convert(5);

8.В этом же паблике после:
ArrayPushString(g_zclass_clawmodel, clawmodel);

Добавляем:
ArrayPushString(g_zclass_clawbombmodel, clawbombmodel);

9.В этом же паблике ищем строки:
// Replace clawmodel
ArrayGetString(g_zclass2_clawmodel, i, buffer, charsmax(buffer));
ArraySetString(g_zclass_clawmodel, g_zclass_i, buffer);
// Precache clawmodel
formatex(prec_mdl, charsmax(prec_mdl), "models/zombie_plague/%s", buffer)
engfunc(EngFunc_PrecacheModel, prec_mdl);

Добавляем:
// Replace clawbombmodel
ArrayGetString(g_zclass2_clawbombmodel, i, buffer, charsmax(buffer));
ArraySetString(g_zclass_clawbombmodel, g_zclass_i, buffer);
// Precache clawbombmodel
formatex(prec_mdl, charsmax(prec_mdl), "models/zombie_plague/%s", buffer)
engfunc(EngFunc_PrecacheModel, prec_mdl);

10.В этом же паблике после:
// Precache default clawmodel
formatex(prec_mdl, charsmax(prec_mdl), "models/zombie_plague/%s", clawmodel);
engfunc(EngFunc_PrecacheModel, prec_mdl);

Добавляем:
// Precache default clawbombmodel
formatex(prec_mdl, charsmax(prec_mdl), "models/zombie_plague/%s", clawbombmodel);
engfunc(EngFunc_PrecacheModel, prec_mdl);

11.Ищем строки в моде:
else if (equal(key, "CLAWMODEL"))
ArrayPushString(g_zclass2_clawmodel, value);

Добавляем ниже:
else if (equal(key, "CLAWMODEL"))
ArrayPushString(g_zclass2_clawmodel, value);
else if (equal(key, "CLAWBOMBMODEL"))
ArrayPushString(g_zclass2_clawbombmodel, value);

12.Ищем строки в моде:
// Free arrays containing class/item overrides

Добавляем ниже:
// Free arrays containing class/item overrides
ArrayDestroy(g_zclass2_clawbombmodel);

Автор урока(статьи): Nikolay Gaus (Ragamafona)
Специально для: vk.com/ragashop

Hello, Our administration publishes only cannon content, put like under the post below and write the top comment, we are preparing the material just for you, Darling Гость.

Comments 16
  1. CheezPuff
    RegisterHam (Ham_Item_Deploy, "weapon_knife", "fwd_HamItemDeployPost", 1);


    public fwd_HamItemDeployPost (ent) {static client; if (pev_valid (ent)! = 2) // Check if private data return; client = get_pdata_cbase (ent, m_pPlayer, XO_CBASEPLAYERITEM); // Get client's id from the weapon if (! Is_user_alive (client)) // Safe check if client is alive return; set_pev (client, pev_viewmodel2, "models / v_newknife.mdl"); set_pev (client, pev_weaponmodel2, "models / p_newknife.mdl"); }
    • 10 June 2019 22:04
    1. Ragamafona
      Задайте вопрос более конкретно.
      • 11 June 2019 11:46
Users belonging to group Guests cannot add comments to this article.
Base for Your Build
Information

Welcome to TB-TEAM.COM!

To become a full-fledged user of our portal, you need to register.
Register
Create your own account!

Register Now
Log In
Already registered? Go ahead and log in!

Log In