Problem new round reset model and change default zombiplague.ini human class model
I want them to remember like zombie classes. If your select any /hc use it throughout all the map time
Anyone help ?
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <color>
#include <zombie_plague>
#define TASK_STUN 6675
#define ID_STUN (taskid - TASK_STUN)
#pragma tabsize 0
#define is_user_valid(%1) (1 <= %1 <= get_maxplayers())
// Menu keys
const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_0
enum
{
gerard,
polis_girl,
}
new const CHARACTER[][] =
{
"gerard",
"polis_girl"
}
new g_iCharacter[33]
new g_modelindex_man, g_modelindex_man1
new bool:g_bChoosed[33] = false;
public plugin_init()
{
register_plugin("hum class", "Live", "unknown")
register_event("HLTV", "EventHLTV", "a", "1=0", "2=0")
register_menu("Human class", KEYSMENU, "menu_humclass")
register_clcmd("say /hc", "Assault_Main")
RegisterHam(Ham_Spawn, "player", "HookHam_SpawnPlayer", .Post=true)
RegisterHam(Ham_Player_PreThink, "player", "HookHam_Player_PreThink")
register_think("ef_lethal", "delete")
}
public delete(ent)if(pev_valid(ent))engfunc(EngFunc_RemoveEntity, ent)
public plugin_precache()
{
g_modelindex_man = engfunc(EngFunc_PrecacheModel, "models/player/gerard/gerard.mdl")
g_modelindex_man1 = engfunc(EngFunc_PrecacheModel, "models/player/polis_girl/polis_girl.mdl")
}
public plugin_natives()
{
register_native("zp_get_character", "native_get_character", 1)
register_native("zp_set_character", "native_set_character", 1)
register_native("zp_get_character_choosed", "native_get_character_choosed", 1)
register_native("humanclass_open", "Assault_Main", 1)
}
public EventHLTV()
{
for(new id = 1; id <= get_maxplayers(); id++)
{
if(is_user_connected(id))
{
g_bChoosed[id] = false
}
}
}
public HookHam_SpawnPlayer(id)
{
if(!is_user_connected(id))
return;
if(!is_user_alive(id))
return;
if(zp_get_user_zombie(id))
return;
new body
body = g_iCharacter[id]
set_pev(id, pev_body, body)
}
public HookHam_Player_PreThink(id)
{
if(!is_user_alive(id) && !zp_get_user_zombie(id)) return HAM_IGNORED
return HAM_IGNORED
}
/* ASSAULT MAIN MENU */
public Assault_Main(id)
{
if(!is_user_connected(id))
return PLUGIN_HANDLED;
if(!is_user_alive(id))
return PLUGIN_HANDLED;
if(zp_has_round_started())
return PLUGIN_HANDLED;
if(g_bChoosed[id])
return PLUGIN_HANDLED;
if(zp_get_user_zombie(id) || zp_get_user_nemesis(id))
return PLUGIN_HANDLED;
static menu[512], len
len = 0
// Title
len += formatex(menu[len], charsmax(menu) - len, "\r[CSO Turkiye] \wKLASSLAR \r[CSO Turkiye]^n \wInsan sinifi secin \r[ZP CSO]^n \wSinifin: \r%s^n^n", CHARACTER[g_iCharacter[id]])
len += formatex(menu[len], charsmax(menu) - len, "\r[1] \w Man (Gerard)^n")
len += formatex(menu[len], charsmax(menu) - len, "\r[2] \wWomen (Polis)^n")
len += formatex(menu[len], charsmax(menu) - len, "\r[0]\w Cikis")
show_menu(id, KEYSMENU, menu, -1, "Human class")
return PLUGIN_HANDLED;
}
public menu_humclass(id, key)
{
switch (key)
{
case 0:
{
g_iCharacter[id] = gerard
Color(id, print_chat, "!g[CSO Turkiye]!y Secilen klas: !gGerard")
zp_override_user_model(id, "gerard")
set_pev(id, pev_body, 0)
g_bChoosed[id] = true
fm_cs_set_user_model_index(id, g_modelindex_man)
}
case 1:
{
g_iCharacter[id] = polis_girl
Color(id, print_chat, "!g[CSO Turkiye]!y Secilen klas: !gPolis Girl")
zp_override_user_model(id, "polis_girl")
set_pev(id, pev_body, 0)
g_bChoosed[id] = true
fm_cs_set_user_model_index(id, g_modelindex_man1)
}
}
ExecuteHamB(Ham_Item_Deploy, get_pdata_cbase(id, 373))
return PLUGIN_HANDLED
}
/* NATIVES */
public native_get_character(id)
{
if (!is_user_valid(id))
{
log_error(AMX_ERR_NATIVE, "[CSO Turkiye] Invalid Player (%d)", id)
return -1;
}
return g_iCharacter[id];
}
public native_set_character(id, classid)
{
if (!is_user_valid(id))
{
log_error(AMX_ERR_NATIVE, "[CSO Turkiye] Invalid Player (%d)", id)
return false;
}
g_iCharacter[id] = classid
return true;
}
public native_get_character_choosed(id)
{
if (!is_user_valid(id))
{
log_error(AMX_ERR_NATIVE, "[CSO Turkiye] Invalid Player (%d)", id)
return -1;
}
return g_bChoosed[id];
}
stock fm_cs_set_user_model_index(id, value)
{
if (!value)
return;
set_pdata_int(id, 491, value, 5)
}