| rodrigo286 |
01-07-2011 02:00 |
Plugin Modification
Well I edited this plugin class Human zombie plague and the zombie plage took him to work on servers without zombie plague, but after the server compiles and open the menu does not open as I proceed to the same show?
PHP Code:
/*
Classes Humanas para a zombie plague, menu para as mesmas e mostrado poucos segundos depois de iniciar o modo de jogo.
Voce pode editar este plugin no entanto, para atender as suas necessidades. Agora, com modelos de apoio
Here is TO DO list:
1. Make B key invoke human class menu
2. Make user choose class only once per round (could be limited with round timer or some other method) - done
3. Make user choice remember thru whole map time, just like it was done for zombies
4. Changing of models - done
5. For now, there are 7 classes only. If you have idea for more classes, make a request
6. Make classes buyable for ammo packs - nah, there's just too manu plugs like that
7. Bots support - never!
Stealth Warrior had to be removed due to model changing. Will try to make him available again
Models defined here, in this plug, are default models from CS. That means it will work right away, with no modifications.
However, if you want to set some other models, you need to change some lines in this code.
Credits: fiendshard
Mercylezz - zombie plague mod and this tut: http://forums.alliedmods.net/showthread.php?t=69386
Other guys at forum that helped with suggestions
*/
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#define VIP1_FLAG ADMIN_LEVEL_G
const PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
new g_ent_playermodel[33];
new g_ent_weaponmodel[33];
new g_currentweapon[33];
new g_player_class[33]
public plugin_init()
{
register_plugin("[Mult] Class", "2.0", "fiendshard")
RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
}
public plugin_precache()
{
// Change paths and names of your models below. Beware of typos.
engfunc(EngFunc_PrecacheModel, "models/player/zk_wesker_re/zk_wesker_re.mdl")
engfunc(EngFunc_PrecacheModel, "models/player/zk_leon_re/zk_leon_re.mdl")
engfunc(EngFunc_PrecacheModel, "models/player/new_jill_sx/new_jill_sx.mdl")
engfunc(EngFunc_PrecacheModel, "models/player/zk_ada_re/zk_ada_re.mdl")
engfunc(EngFunc_PrecacheModel, "models/player/yuri/yuri.mdl")
engfunc(EngFunc_PrecacheModel, "models/player/choijiyoon/choijiyoon.mdl")
engfunc(EngFunc_PrecacheModel, "models/player/nano/hellmoss-nano.mdl")
engfunc(EngFunc_PrecacheModel, "models/player/ADMUmb_SX/ADMUmb_SX.mdl")
engfunc(EngFunc_PrecacheModel, "models/player/SpILLED_Sakura/SpILLED_Sakura.mdl")
}
public message_cur_weapon(msg_id, msg_dest, msg_entity)
{
if (!is_user_alive(msg_entity) || get_msg_arg_int(1) != 1)
return;
static weapon
weapon = get_msg_arg_int(2)
g_currentweapon[msg_entity] = weapon
fm_set_weaponmodel_ent(msg_entity)
}
public fwHamPlayerSpawnPost(id)
{
set_task(get_cvar_float("zp_delay")+5.0, "ClCmdSelectModel",id)
}
public ClCmdSelectModel(id, menuid)
{
return PLUGIN_HANDLED;
}
public human_menu(id)
{
new menu = menu_create("\rEscolha seu Personagem:", "human_menu_handler")
menu_additem(menu, "\wLeon - A coragem biba (50 de Colete)", "1", 0)
menu_additem(menu, "\wWesker - A biba Gato Rapido (300 de Vida + 30 colete)", "2", 0)
menu_additem(menu, "\wJill - A Piriguete Saltadora (Gravidade ++ + 30 colete)", "3", 0)
menu_additem(menu, "\wChoijiyoon - Rosquinha Gelada (FrostNade X 5 + 30 colete)", "4", 0)
menu_additem(menu, "\wYuri - Rosquinha Quente (NapalmNade X 5 + 30 colete)", "5", 2)
menu_additem(menu, "\wAda - A piriguete Iluminada (FlareNade X 5 + Aura de Luz + 35 colete)", "6", 1)
menu_additem(menu, "\w[ADM] Nano Suit - A armadura power color (Alta velocida + 70 colete)", "7", ADMIN_IMMUNITY)
menu_additem(menu, "\w[ADM] Homens de Preto - Os bibas bem trajados (NapalmNade X 6 + 70 colete)", "8", ADMIN_IMMUNITY)
menu_additem(menu, "\w[VIP] Sakura - A piriguete das cartas (NapalmNade X 5 + 60 colete)", "9", VIP1_FLAG)
menu_additem(menu, "\w[VIP] VIP - O filhinho de papai (70 colete)", "10", VIP1_FLAG)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0)
}
public human_menu_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1:
{
g_player_class[id] = 1
fm_remove_model_ents(id)
if (!pev_valid(g_ent_playermodel[id]))
{
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
set_pev(g_ent_playermodel[id], pev_classname, "player_model")
set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
set_pev(g_ent_playermodel[id], pev_aiment, id)
set_pev(g_ent_playermodel[id], pev_owner, id)
// Change name of your model below.
engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/zk_leon_re/zk_leon_re.mdl")
fm_set_weaponmodel_ent(id)
}
set_user_armor(id, 50)
client_print(id, print_chat,"[SemxorA] Seu personagem e: Leon - A coragem biba (40 de Colete)")
}
case 2:
{
g_player_class[id] = 2
fm_remove_model_ents(id)
if (!pev_valid(g_ent_playermodel[id]))
{
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
set_pev(g_ent_playermodel[id], pev_classname, "player_model")
set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
set_pev(g_ent_playermodel[id], pev_aiment, id)
set_pev(g_ent_playermodel[id], pev_owner, id)
// Change name of your model below.
engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/zk_wesker_re/zk_wesker_re.mdl")
fm_set_weaponmodel_ent(id)
}
set_user_health(id, 300)
set_user_armor(id, 30)
client_print(id, print_chat,"[SemxorA] Seu personagem e: Wesker - A biba Gato Rapido (300 de Vida + 30 colete)");
}
case 3:
{
g_player_class[id] = 3
fm_remove_model_ents(id)
if (!pev_valid(g_ent_playermodel[id]))
{
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
set_pev(g_ent_playermodel[id], pev_classname, "player_model")
set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
set_pev(g_ent_playermodel[id], pev_aiment, id)
set_pev(g_ent_playermodel[id], pev_owner, id)
// Change name of your model below.
engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/new_jill_sx/new_jill_sx.mdl")
fm_set_weaponmodel_ent(id)
}
set_user_gravity(id, 0.50)
set_user_armor(id, 30)
client_print(id, print_chat,"[SemxorA] Sua personagem e: Jill - A Piriguete Saltadora (Gravidade e 1/2 + 30 colete)");
}
case 4:
{
g_player_class[id] = 4
fm_remove_model_ents(id)
if (!pev_valid(g_ent_playermodel[id]))
{
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
set_pev(g_ent_playermodel[id], pev_classname, "player_model")
set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
set_pev(g_ent_playermodel[id], pev_aiment, id)
set_pev(g_ent_playermodel[id], pev_owner, id)
// Change name of your model below.
engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/choijiyoon/choijiyoon.mdl")
fm_set_weaponmodel_ent(id)
}
cs_set_user_bpammo(id, CSW_FLASHBANG, 5)
set_user_armor(id, 30)
client_print(id, print_chat,"[SemxorA] Seu personagem e: Choijiyoon - Rosquinha Gelada (FrostNade X 5 + 30 colete)");
}
case 5:
{
g_player_class[id] = 5
fm_remove_model_ents(id)
if (!pev_valid(g_ent_playermodel[id]))
{
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
set_pev(g_ent_playermodel[id], pev_classname, "player_model")
set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
set_pev(g_ent_playermodel[id], pev_aiment, id)
set_pev(g_ent_playermodel[id], pev_owner, id)
// Change name of your model below.
engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/yuri/yuri.mdl")
fm_set_weaponmodel_ent(id)
}
set_user_health(id, get_cvar_num("zp_human_health"))
set_user_armor(id, 30)
set_user_gravity(id, 1.00)
cs_set_user_bpammo(id, CSW_HEGRENADE, 5)
client_print(id, print_chat,"[SemxorA] Seu personagem e: Yuri - Rosquinha Quente (NapalmNade X 5 + 30 colete)")
}
case 6:
{
g_player_class[id] = 6
fm_remove_model_ents(id)
if (!pev_valid(g_ent_playermodel[id]))
{
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
set_pev(g_ent_playermodel[id], pev_classname, "player_model")
set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
set_pev(g_ent_playermodel[id], pev_aiment, id)
set_pev(g_ent_playermodel[id], pev_owner, id)
// Change name of your model below.
engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/zk_ada_re/zk_ada_re.mdl")
fm_set_weaponmodel_ent(id)
}
set_user_health(id, get_cvar_num("zp_human_health"))
set_user_armor(id, 35)
set_user_gravity(id, 1.00)
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 5)
set_pev(id, pev_effects, pev(id, pev_effects) | EF_BRIGHTLIGHT)
client_print(id, print_chat,"[SemxorA] Seu personagem e: Ada - A piriguete Iluminada (FlareNade X 5 + Aura de Luz + 35 colete)");
}
case 7:
{
g_player_class[id] = 7
fm_remove_model_ents(id)
if (!pev_valid(g_ent_playermodel[id]))
{
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
set_pev(g_ent_playermodel[id], pev_classname, "player_model")
set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
set_pev(g_ent_playermodel[id], pev_aiment, id)
set_pev(g_ent_playermodel[id], pev_owner, id)
// Change name of your model below.
engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/nano/hellmoss-nano.mdl")
fm_set_weaponmodel_ent(id)
}
set_user_health(id, get_cvar_num("zp_human_health"))
set_user_armor(id, 70)
set_user_maxspeed(id, 400.0)
client_print(id, print_chat,"[SemxorA] Seu personagem e: Nano Suit - A armadura power color (Alta velocida + 70 colete)");
}
case 8:
{
g_player_class[id] = 8
fm_remove_model_ents(id)
if (!pev_valid(g_ent_playermodel[id]))
{
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
set_pev(g_ent_playermodel[id], pev_classname, "player_model")
set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
set_pev(g_ent_playermodel[id], pev_aiment, id)
set_pev(g_ent_playermodel[id], pev_owner, id)
// Change name of your model below.
engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/ADMUmb_SX/ADMUmb_SX.mdl")
fm_set_weaponmodel_ent(id)
}
set_user_health(id, get_cvar_num("zp_human_health"))
set_user_armor(id, 70)
set_user_gravity(id, 1.00)
cs_set_user_bpammo(id, CSW_HEGRENADE, 6)
client_print(id, print_chat,"[SemxorA] Seu personagem e: Homens de Preto - Os bibas bem trajados (NapalmNade X 6 + 60 colete)");
}
case 9:
{
g_player_class[id] = 9
fm_remove_model_ents(id)
if (!pev_valid(g_ent_playermodel[id]))
{
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
set_pev(g_ent_playermodel[id], pev_classname, "player_model")
set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
set_pev(g_ent_playermodel[id], pev_aiment, id)
set_pev(g_ent_playermodel[id], pev_owner, id)
// Change name of your model below.
engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/SpILLED_Sakura/SpILLED_Sakura.mdl")
fm_set_weaponmodel_ent(id)
}
set_user_health(id, get_cvar_num("zp_human_health"))
set_user_armor(id, 60)
set_user_gravity(id, 1.00)
cs_set_user_bpammo(id, CSW_HEGRENADE, 5)
client_print(id, print_chat,"[SemxorA] Seu personagem e: Sakura - A piriguete das cartas (NapalmNade X 5 + 60 colete)");
}
case 10:
{
g_player_class[id] = 10
fm_remove_model_ents(id)
if (!pev_valid(g_ent_playermodel[id]))
{
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
set_pev(g_ent_playermodel[id], pev_classname, "player_model")
set_pev(g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW)
set_pev(g_ent_playermodel[id], pev_aiment, id)
set_pev(g_ent_playermodel[id], pev_owner, id)
// Change name of your model below.
engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/vip/vip.mdl")
fm_set_weaponmodel_ent(id)
}
set_user_health(id, get_cvar_num("zp_human_health"))
set_user_armor(id, 70)
set_pev(id, pev_effects, pev(id, pev_effects) | EF_BRIGHTLIGHT)
client_print(id, print_chat,"[SemxorA] Seu personagem e: VIP - O filhinho de papai (70 colete)");
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public zp_user_infected_post(id, infector)
{
fm_remove_model_ents(id)
}
stock fm_remove_model_ents(id)
{
if (pev_valid(g_ent_playermodel[id]))
{
engfunc(EngFunc_RemoveEntity, g_ent_playermodel[id])
g_ent_playermodel[id] = 0
}
if (pev_valid(g_ent_weaponmodel[id]))
{
engfunc(EngFunc_RemoveEntity, g_ent_weaponmodel[id])
g_ent_weaponmodel[id] = 0
}
}
stock fm_set_weaponmodel_ent(id)
{
static model[100]
pev(id, pev_weaponmodel2, model, sizeof model - 1)
if (!pev_valid(g_ent_weaponmodel[id]))
{
g_ent_weaponmodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
if (!pev_valid(g_ent_weaponmodel[id])) return;
set_pev(g_ent_weaponmodel[id], pev_classname, "weapon_model")
set_pev(g_ent_weaponmodel[id], pev_movetype, MOVETYPE_FOLLOW)
set_pev(g_ent_weaponmodel[id], pev_aiment, id)
set_pev(g_ent_weaponmodel[id], pev_owner, id)
}
engfunc(EngFunc_SetModel, g_ent_weaponmodel[id], model)
}
stock drop_primary_weapons(id)
{
static weapons [ 32 ], num, i, weaponid
num = 0
get_user_weapons (id, weapons, num )
for ( i = 0; i < num; i++ )
{
weaponid = weapons [ i ]
if ( ( (1<<weaponid) & PRIMARY_WEAPONS_BITSUM ) )
{
static wname[32]
get_weaponname(weaponid, wname, charsmax(wname))
engclient_cmd(id, "drop", wname)
}
}
}
Was this line? But how?
PHP Code:
set_task(get_cvar_float("zp_delay")+5.0, "ClCmdSelectModel",id)
}
Thanks for help.
|