BANNED
|
06-30-2011
, 09:29
[TUT] How To Make V_, P_ , W_ Models
|
#1
|
How To Make V_, P_ , W_ Models For Zombie Plague 4.3
Well i made this tutorial to learn people how to make v_ and p_ and w_ model
So let's begin with p_ and v_ model because thei are very easy :
- step 1:
open your zombie_plague40 source file and search the line / / Customization vars we see this :
PHP Code:
model_vknife_nemesis[64], model_vm249_survivor[64], model_grenade_infect[64]
and add :
PHP Code:
, model_v_m4a1[64], model_p_m4a1[64]
PHP Code:
model_vknife_nemesis[64], model_vm249_survivor[64], model_grenade_infect[64], model_v_m4a1[64], model_p_m4a1[64]
- step 2:
now in plugin_precache searche the line // Custom weapon models we see this :
PHP Code:
engfunc(EngFunc_PrecacheModel, model_vknife_human) engfunc(EngFunc_PrecacheModel, model_vknife_nemesis) engfunc(EngFunc_PrecacheModel, model_vm249_survivor) engfunc(EngFunc_PrecacheModel, model_grenade_infect) engfunc(EngFunc_PrecacheModel, model_grenade_fire) engfunc(EngFunc_PrecacheModel, model_grenade_frost) engfunc(EngFunc_PrecacheModel, model_grenade_flare) engfunc(EngFunc_PrecacheModel, model_vknife_admin_human) engfunc(EngFunc_PrecacheModel, model_vknife_admin_zombie)
and add :
PHP Code:
engfunc(EngFunc_PrecacheModel, model_v_m4a1) engfunc(EngFunc_PrecacheModel, model_p_m4a1)
PHP Code:
engfunc(EngFunc_PrecacheModel, model_vknife_human) engfunc(EngFunc_PrecacheModel, model_vknife_nemesis) engfunc(EngFunc_PrecacheModel, model_vm249_survivor) engfunc(EngFunc_PrecacheModel, model_grenade_infect) engfunc(EngFunc_PrecacheModel, model_grenade_fire) engfunc(EngFunc_PrecacheModel, model_grenade_frost) engfunc(EngFunc_PrecacheModel, model_grenade_flare) engfunc(EngFunc_PrecacheModel, model_vknife_admin_human) engfunc(EngFunc_PrecacheModel, model_vknife_admin_zombie) engfunc(EngFunc_PrecacheModel, model_v_m4a1) engfunc(EngFunc_PrecacheModel, model_p_m4a1)
- step 3:
now go doooown and search you find line [Other Functions and Tasks] and go to the line load_customization_from_files() and search , you will find :
PHP Code:
} case SECTION_WEAPON_MODELS: { if (equal(key, "V_KNIFE HUMAN")) copy(model_vknife_human, charsmax(model_vknife_human), value) else if (equal(key, "V_KNIFE NEMESIS")) copy(model_vknife_nemesis, charsmax(model_vknife_nemesis), value) else if (equal(key, "V_M249 SURVIVOR")) copy(model_vm249_survivor, charsmax(model_vm249_survivor), value) else if (equal(key, "GRENADE INFECT")) copy(model_grenade_infect, charsmax(model_grenade_infect), value) else if (equal(key, "GRENADE FIRE")) copy(model_grenade_fire, charsmax(model_grenade_fire), value) else if (equal(key, "GRENADE FROST")) copy(model_grenade_frost, charsmax(model_grenade_frost), value) else if (equal(key, "GRENADE FLARE")) copy(model_grenade_flare, charsmax(model_grenade_flare), value) else if (equal(key, "V_KNIFE ADMIN HUMAN")) copy(model_vknife_admin_human, charsmax(model_vknife_admin_human), value) else if (equal(key, "V_KNIFE ADMIN ZOMBIE")) copy(model_vknife_admin_zombie, charsmax(model_vknife_admin_zombie), value)
and add this :
PHP Code:
else if (equal(key, "V_M4A1")) copy(model_v_m4a1, charsmax(model_v_m4a1), value) else if (equal(key, "P_M4A1")) copy(model_p_m4a1, charsmax(model_p_m4a1), value)
PHP Code:
} case SECTION_WEAPON_MODELS: { if (equal(key, "V_KNIFE HUMAN")) copy(model_vknife_human, charsmax(model_vknife_human), value) else if (equal(key, "V_KNIFE NEMESIS")) copy(model_vknife_nemesis, charsmax(model_vknife_nemesis), value) else if (equal(key, "V_M249 SURVIVOR")) copy(model_vm249_survivor, charsmax(model_vm249_survivor), value) else if (equal(key, "GRENADE INFECT")) copy(model_grenade_infect, charsmax(model_grenade_infect), value) else if (equal(key, "GRENADE FIRE")) copy(model_grenade_fire, charsmax(model_grenade_fire), value) else if (equal(key, "GRENADE FROST")) copy(model_grenade_frost, charsmax(model_grenade_frost), value) else if (equal(key, "GRENADE FLARE")) copy(model_grenade_flare, charsmax(model_grenade_flare), value) else if (equal(key, "V_KNIFE ADMIN HUMAN")) copy(model_vknife_admin_human, charsmax(model_vknife_admin_human), value) else if (equal(key, "V_KNIFE ADMIN ZOMBIE")) copy(model_vknife_admin_zombie, charsmax(model_vknife_admin_zombie), value) else if (equal(key, "V_M4A1")) copy(model_v_m4a1, charsmax(model_v_m4a1), value) else if (equal(key, "P_M4A1")) copy(model_p_m4a1, charsmax(model_p_m4a1), value)
- last step:
now go down and search you will see this // Set Custom Weapon Models and this :
PHP Code:
}
// Set Custom Weapon Models replace_weapon_models(id, weaponid) { switch (weaponid) { case CSW_KNIFE: // Custom knife models { if (g_zombie[id]) { if (g_nemesis[id]) // Nemesis { set_pev(id, pev_viewmodel2, model_vknife_nemesis) set_pev(id, pev_weaponmodel2, "") } else // Zombies { // Admin knife models? if (get_pcvar_num(cvar_adminknifemodelszombie) && get_user_flags(id) & g_access_flag[ACCESS_ADMIN_MODELS]) { set_pev(id, pev_viewmodel2, model_vknife_admin_zombie) set_pev(id, pev_weaponmodel2, "") } else { static clawmodel[100] ArrayGetString(g_zclass_clawmodel, g_zombieclass[id], clawmodel, charsmax(clawmodel)) format(clawmodel, charsmax(clawmodel), "models/zombie_plague/%s", clawmodel) set_pev(id, pev_viewmodel2, clawmodel) set_pev(id, pev_weaponmodel2, "") } } } else // Humans { // Admin knife models? if (get_pcvar_num(cvar_adminknifemodelshuman) && get_user_flags(id) & g_access_flag[ACCESS_ADMIN_MODELS]) { set_pev(id, pev_viewmodel2, model_vknife_admin_human) set_pev(id, pev_weaponmodel2, "models/p_knife.mdl") } else { set_pev(id, pev_viewmodel2, model_vknife_human) set_pev(id, pev_weaponmodel2, "models/p_knife.mdl") } } } case CSW_M249: // Survivor's M249 { if (g_survivor[id]) set_pev(id, pev_viewmodel2, model_vm249_survivor) } case CSW_HEGRENADE: // Infection bomb or fire grenade { if (g_zombie[id]) set_pev(id, pev_viewmodel2, model_grenade_infect) else set_pev(id, pev_viewmodel2, model_grenade_fire) } case CSW_FLASHBANG: // Frost grenade { set_pev(id, pev_viewmodel2, model_grenade_frost) } case CSW_SMOKEGRENADE: // Flare grenade { set_pev(id, pev_viewmodel2, model_grenade_flare) } } // Update model on weaponmodel ent if (g_handle_models_on_separate_ent) fm_set_weaponmodel_ent(id) }
now add this :
PHP Code:
} case CSW_M4A1: // Model M4A1 { set_pev(id, pev_viewmodel2, model_v_m4a1) set_pev(id, pev_weaponmodel2, model_p_m4a1) }
PHP Code:
}
// Set Custom Weapon Models replace_weapon_models(id, weaponid) { switch (weaponid) { case CSW_KNIFE: // Custom knife models { if (g_zombie[id]) { if (g_nemesis[id]) // Nemesis { set_pev(id, pev_viewmodel2, model_vknife_nemesis) set_pev(id, pev_weaponmodel2, "") } else // Zombies { // Admin knife models? if (get_pcvar_num(cvar_adminknifemodelszombie) && get_user_flags(id) & g_access_flag[ACCESS_ADMIN_MODELS]) { set_pev(id, pev_viewmodel2, model_vknife_admin_zombie) set_pev(id, pev_weaponmodel2, "") } else { static clawmodel[100] ArrayGetString(g_zclass_clawmodel, g_zombieclass[id], clawmodel, charsmax(clawmodel)) format(clawmodel, charsmax(clawmodel), "models/zombie_plague/%s", clawmodel) set_pev(id, pev_viewmodel2, clawmodel) set_pev(id, pev_weaponmodel2, "") } } } else // Humans { // Admin knife models? if (get_pcvar_num(cvar_adminknifemodelshuman) && get_user_flags(id) & g_access_flag[ACCESS_ADMIN_MODELS]) { set_pev(id, pev_viewmodel2, model_vknife_admin_human) set_pev(id, pev_weaponmodel2, "models/p_knife.mdl") } else { set_pev(id, pev_viewmodel2, model_vknife_human) set_pev(id, pev_weaponmodel2, "models/p_knife.mdl") } } } case CSW_M249: // Survivor's M249 { if (g_survivor[id]) set_pev(id, pev_viewmodel2, model_vm249_survivor) } case CSW_HEGRENADE: // Infection bomb or fire grenade { if (g_zombie[id]) set_pev(id, pev_viewmodel2, model_grenade_infect) else set_pev(id, pev_viewmodel2, model_grenade_fire) } case CSW_FLASHBANG: // Frost grenade { set_pev(id, pev_viewmodel2, model_grenade_frost) } case CSW_SMOKEGRENADE: // Flare grenade { set_pev(id, pev_viewmodel2, model_grenade_flare) } case CSW_M4A1: // Model M4A1 { set_pev(id, pev_viewmodel2, model_v_m4a1) set_pev(id, pev_weaponmodel2, model_p_m4a1) } } // Update model on weaponmodel ent if (g_handle_models_on_separate_ent) fm_set_weaponmodel_ent(id) }
now we finish don't close you source file it take us the sh*t W_ model so let's begin.
- step 1:
search the line // Customization vars now we see like this :
PHP Code:
model_vknife_nemesis[64], model_vm249_survivor[64], model_grenade_infect[64], model_v_m4a1[64], model_p_m4a1[64]
and add :
PHP Code:
model_vknife_nemesis[64], model_vm249_survivor[64], model_grenade_infect[64], model_v_m4a1[64], model_p_m4a1, model_w_m4a1[64]
- step 2:
now search again the line // Custom weapon models and will see like this :
PHP Code:
engfunc(EngFunc_PrecacheModel, model_vknife_human) engfunc(EngFunc_PrecacheModel, model_vknife_nemesis) engfunc(EngFunc_PrecacheModel, model_vm249_survivor) engfunc(EngFunc_PrecacheModel, model_grenade_infect) engfunc(EngFunc_PrecacheModel, model_grenade_fire) engfunc(EngFunc_PrecacheModel, model_grenade_frost) engfunc(EngFunc_PrecacheModel, model_grenade_flare) engfunc(EngFunc_PrecacheModel, model_vknife_admin_human) engfunc(EngFunc_PrecacheModel, model_vknife_admin_zombie) engfunc(EngFunc_PrecacheModel, model_v_m4a1) engfunc(EngFunc_PrecacheModel, model_p_m4a1)
and add:
PHP Code:
engfunc(EngFunc_PrecacheModel, model_w_m4a1)
PHP Code:
engfunc(EngFunc_PrecacheModel, model_vknife_human) engfunc(EngFunc_PrecacheModel, model_vknife_nemesis) engfunc(EngFunc_PrecacheModel, model_vm249_survivor) engfunc(EngFunc_PrecacheModel, model_grenade_infect) engfunc(EngFunc_PrecacheModel, model_grenade_fire) engfunc(EngFunc_PrecacheModel, model_grenade_frost) engfunc(EngFunc_PrecacheModel, model_grenade_flare) engfunc(EngFunc_PrecacheModel, model_vknife_admin_human) engfunc(EngFunc_PrecacheModel, model_vknife_admin_zombie) engfunc(EngFunc_PrecacheModel, model_v_m4a1) engfunc(EngFunc_PrecacheModel, model_p_m4a1) engfunc(EngFunc_PrecacheModel, model_w_m4a1)
- step 3:
now go down untile you see this // Forward Set Model and add :
PHP Code:
}
// Forward Set Model public fw_SetModel(entity, const model[]) { // Entity if(!pev_valid(entity)) return FMRES_IGNORED
// W_Model for OLD M4A1 if(!equali(model, "models/w_m4a1.mdl")) return FMRES_IGNORED
new className[33] pev(entity, pev_classname, className, 32) if(equal(className, "weaponbox")) { // W_Model for NEW M4A1 engfunc(EngFunc_SetModel, entity, model_w_m4a1) return FMRES_SUPERCEDE }
don't forget to add at last line return FMRES_IGNORED and to remplace all return by return FMRES_IGNORED like this :
PHP Code:
}
// Forward Set Model public fw_SetModel(entity, const model[]) { // W_Model for M4A1 if(!pev_valid(entity)) return FMRES_IGNORED
// W_Model for OLD M4A1 if(!equali(model, "models/w_m4a1.mdl")) return FMRES_IGNORED
new className[33] pev(entity, pev_classname, className, 32) if(equal(className, "weaponbox")) { // W_Model for NEW M4A1 engfunc(EngFunc_SetModel, entity, model_w_m4a1) return FMRES_SUPERCEDE }
// We don't care if (strlen(model) < 8) return FMRES_IGNORED; // Remove weapons? if (get_pcvar_float(cvar_removedropped) > 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) } 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) } 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) // Set flare color on the thrown grenade entity set_pev(entity, PEV_FLARE_COLOR, rgb) } return FMRES_IGNORED }
- step 4 and the last :
go down again in [Other Functions and Tasks] and go to the line load_customization_from_files() and search , you will find this :
PHP Code:
} case SECTION_WEAPON_MODELS: { if (equal(key, "V_KNIFE HUMAN")) copy(model_vknife_human, charsmax(model_vknife_human), value) else if (equal(key, "V_KNIFE NEMESIS")) copy(model_vknife_nemesis, charsmax(model_vknife_nemesis), value) else if (equal(key, "V_M249 SURVIVOR")) copy(model_vm249_survivor, charsmax(model_vm249_survivor), value) else if (equal(key, "GRENADE INFECT")) copy(model_grenade_infect, charsmax(model_grenade_infect), value) else if (equal(key, "GRENADE FIRE")) copy(model_grenade_fire, charsmax(model_grenade_fire), value) else if (equal(key, "GRENADE FROST")) copy(model_grenade_frost, charsmax(model_grenade_frost), value) else if (equal(key, "GRENADE FLARE")) copy(model_grenade_flare, charsmax(model_grenade_flare), value) else if (equal(key, "V_KNIFE ADMIN HUMAN")) copy(model_vknife_admin_human, charsmax(model_vknife_admin_human), value) else if (equal(key, "V_KNIFE ADMIN ZOMBIE")) copy(model_vknife_admin_zombie, charsmax(model_vknife_admin_zombie), value) else if (equal(key, "V_M4A1")) copy(model_v_m4a1, charsmax(model_v_m4a1), value) else if (equal(key, "P_M4A1")) copy(model_p_m4a1, charsmax(model_p_m4a1), value)
and add :
PHP Code:
else if (equal(key, "W_M4A1")) copy(model_w_m4a1, charsmax(model_w_m4a1), value)
PHP Code:
} case SECTION_WEAPON_MODELS: { if (equal(key, "V_KNIFE HUMAN")) copy(model_vknife_human, charsmax(model_vknife_human), value) else if (equal(key, "V_KNIFE NEMESIS")) copy(model_vknife_nemesis, charsmax(model_vknife_nemesis), value) else if (equal(key, "V_M249 SURVIVOR")) copy(model_vm249_survivor, charsmax(model_vm249_survivor), value) else if (equal(key, "GRENADE INFECT")) copy(model_grenade_infect, charsmax(model_grenade_infect), value) else if (equal(key, "GRENADE FIRE")) copy(model_grenade_fire, charsmax(model_grenade_fire), value) else if (equal(key, "GRENADE FROST")) copy(model_grenade_frost, charsmax(model_grenade_frost), value) else if (equal(key, "GRENADE FLARE")) copy(model_grenade_flare, charsmax(model_grenade_flare), value) else if (equal(key, "V_KNIFE ADMIN HUMAN")) copy(model_vknife_admin_human, charsmax(model_vknife_admin_human), value) else if (equal(key, "V_KNIFE ADMIN ZOMBIE")) copy(model_vknife_admin_zombie, charsmax(model_vknife_admin_zombie), value) else if (equal(key, "V_M4A1")) copy(model_v_m4a1, charsmax(model_v_m4a1), value) else if (equal(key, "P_M4A1")) copy(model_p_m4a1, charsmax(model_p_m4a1), value) else if (equal(key, "W_M4A1")) copy(model_w_m4a1, charsmax(model_w_m4a1), value)
now we finish, i hope you understand and make your own weapon you can also remplace many weapon her is it the list :
HTML Code:
CSW_P228
CSW_SCOUT
CSW_XM1014
CSW_MAC10
CSW_AUG
CSW_ELITE
CSW_FIVESEVEN
CSW_UMP45
CSW_SG550
CSW_GALI
CSW_FAMAS
CSW_USP
CSW_GLOCK18
CSW_AWP
CSW_MP5NAVY
CSW_M249
CSW_M3
CSW_M4A1
CSW_TMP
CSW_G3SG1
CSW_DEAGLE
CSW_SG552
CSW_AK47
CSW_P90
CSW_HEGRENADE
CSW_FLASHBANG
CSW_SMOKEGRENADE
CSW_C4
IF YOU FIND SOMETHING CAN'T MAKE IT POST IT IN THIS THREAD : )
P/S : don't forget to add V_M4A1, P_M4A1 and W_M4A1 to zombeplague.ini
Last edited by Dolph_Ziggler; 06-30-2011 at 17:37.
|
|