| Mr.Noobie |
06-15-2009 05:45 |
Set user model
why can't the model code work ?
Can anyone help me fix it ?
PHP Code:
#include <amxmodx> #include <zombieplague> #include <fakemeta>
#define MODEL "zombie_origin2" // name of the model #define TASK_DELAY 0.5 #define MODELSET_TASK 100 new g_itemzp, Health, Gravity, Model, g_zombie [33] new g_has_model[33] new g_model[33][32] new Float:g_models_counter
public plugin_init() { register_plugin("[ZP] Zombie Pack", "1.3", "zombieplague") g_itemzp = zp_register_extra_item("Zombie Pack", 35, ZP_TEAM_ZOMBIE) Health = register_cvar("zp_zombiepack_health", "5000"); // Amount of HP Gravity = register_cvar("zp_zombiepack_gravity", "0.7"); // Amount of Gravity Model = register_cvar("zp_zombiepack_model", "1") } public plugin_precache() { new modelpath[100] formatex(modelpath, sizeof modelpath - 1, "models/player/%s/%s.mdl", MODEL, MODEL) engfunc(EngFunc_PrecacheModel, modelpath) } public zp_extra_item_selected(player, itemplayer) { if (itemplayer == g_itemzp) { // Health set_pev(player, pev_health, (pev(player, pev_health) + get_pcvar_float(Health))) // Gravity fm_set_user_gravity(player, get_pcvar_float(Gravity)) // Model /*if (get_pcvar_num(Model)) fm_set_user_model(player, model)*/ if (get_pcvar_num(Model)) set_task(0.1, "cambiar", player) client_print(player, print_chat, "[ZP] You have bought a Zombie Pack") } } stock fm_set_user_gravity(index, Float:gravity = 1.0) { set_pev(index, pev_gravity, gravity); return 1; } public clcmd_drop(player) { if (g_zombie[player]) return PLUGIN_HANDLED; return PLUGIN_CONTINUE; } public cambiar(player) { if (g_zombie[player]) { copy(g_model[player], sizeof g_model[] - 1, MODEL) new currentmodel[32] fm_get_user_model(player, currentmodel, sizeof currentmodel - 1) if (!equal(currentmodel, g_model[player])) { set_task(1.0 + g_models_counter, "task_set_model", player+MODELSET_TASK) g_models_counter += TASK_DELAY } } return PLUGIN_HANDLED } public event_round_start() { for (new player; player <= 32; player++) g_zombie[player] = false; } public event_round_end() { g_models_counter = 0.0 } public fw_playerKilled(victim, attacker, shouldgib) { if (g_zombie[victim]) { fm_reset_user_model(victim) } } public task_set_model(player) { // Get player player player -= MODELSET_TASK // Actually set the player's model fm_set_user_model(player, g_model[player]) } public fw_ClientUserInfoChanged(player) { if (g_zombie[player] && !zp_get_user_first_zombie(player) && !zp_get_user_zombie(player) && !zp_get_user_nemesis(player) && !zp_get_user_survivor(player)) { // player doesn't have a custom model if (!g_has_model[player]) return FMRES_IGNORED; // Get current model static currentmodel[32] fm_get_user_model(player, currentmodel, sizeof currentmodel - 1) // Check whether it matches the custom model - if not, set it again if (!equal(currentmodel, g_model[player])) fm_set_user_model(player, g_model[player]) return FMRES_IGNORED; } return FMRES_IGNORED; } stock fm_set_user_model(player, const modelname[]) { // Set new model engfunc(EngFunc_SetClientKeyValue, player, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", modelname) // Remember this player has a custom model g_has_model[player] = true } stock fm_get_user_model(player, model[], len) { // Retrieve current model engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", model, len) } stock fm_reset_user_model(player) { // player doesn't have a custom model any longer g_has_model[player] = false dllfunc(DLLFunc_ClientUserInfoChanged, player, engfunc(EngFunc_GetInfoKeyBuffer, player)) }
|