Witam, męczę się z jednym problemem. Mianowicie zmieniłem klasę Hunter z ZP na Biohazard, i problem polega na tym, dźwięk jak i sama klasa działa oprócz longjumpa który jest specjalną umiejętnością klasy, może gdzieś jest błąd w kodzie.
Z góry dziękuję za pomoc.
Spoiler
#include <amxmodx> #include <fakemeta> #include <biohazard> #include <colorchat> /****************************************************** [Plugin infos] ******************************************************/ #define PLUGIN_NAME "ZombieClass : Hunter" #define PLUGIN_VERSION "0.2b" #define PLUGIN_AUTHOR "DJHD" /****************************************************** [Id(s)] ******************************************************/ // Zombie Attributes #define D_ZOMBIE_NAME "Hunter" #define D_ZOMBIE_DESC "Daleki skok" #define D_PLAYER_MODEL "bh_hunter" #define D_CLAWS "models/v_knife_zombie_hunter.mdl" #define PMODEL "models/player/bh_hunter/bh_hunter.mdl" // Sounds new const leap_sound[4][] = { "biohazard/hunter_jump.wav", "biohazard/hunter_jump1.wav", "biohazard/hunter_jump2.wav", "biohazard/hunter_jump3.wav" } // Variables new bool:g_b_isJumper[33] // Arrays new Float:g_lastleaptime[33] // Cvar pointers new cvar_force, cvar_cooldown new Hunter /****************************************************** [Main events] + [Precache event] ******************************************************/ public plugin_precache() { // Register the new class and store ID for reference //g_hunter = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback) // Sound precache_model("models/v_knife_zombie_hunter.mdl") static i for(i = 0; i < sizeof leap_sound; i++) precache_sound(leap_sound[i]) } public plugin_init() { // Plugin Info register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR) // Forward register_forward(FM_PlayerPreThink, "fw_PlayerPreThink") // Cvars cvar_force = register_cvar("zp_hunter_jump_force", "790") cvar_cooldown = register_cvar("zp_hunter_jump_cooldown", "1.0") static szCvar[30] formatex(szCvar, charsmax(szCvar), "v%s by %s", PLUGIN_VERSION, PLUGIN_AUTHOR) register_cvar("zp_zclass_hunterl4d2", szCvar, FCVAR_SERVER|FCVAR_SPONLY) register_class_data() } public register_class_data() { Hunter = register_class(D_ZOMBIE_NAME, D_ZOMBIE_DESC) if(Hunter != -1) { set_class_data(Hunter, DATA_HEALTH, 500.0) set_class_data(Hunter, DATA_SPEED, 250.0) set_class_data(Hunter, DATA_GRAVITY, 0.6) set_class_data(Hunter, DATA_HITREGENDLY, 3.0) set_class_data(Hunter, DATA_KNOCKBACK, 1.5) set_class_pmodel(Hunter, D_PLAYER_MODEL) set_class_wmodel(Hunter, D_CLAWS) } } /****************************************************** [Events] ******************************************************/ public event_infect(victim, attacker) // Infected post { // It's the selected zombie class if(get_user_class(victim) == Hunter) { // Message ColorChat(victim, GREEN, "[Klasa] ^1Uzyj specjalnej umiejetnosci klasy -^4 ^"CTRL + E^"") } } public fw_PlayerPreThink(id) // Main hunter command { if(!is_user_zombie(id)) { false_g_b_is_Jumper(id) return } if(!is_user_alive(id)) { false_g_b_is_Jumper(id) return } if(is_user_connected(id)) { if (is_user_zombie(id)) { if (get_user_class(id) == Hunter) { if (allowed_hunterjump(id)) { static Float:velocity[3] velocity_by_aim(id, get_pcvar_num(cvar_force), velocity) set_pev(id, pev_velocity, velocity) g_b_isJumper[id] = true emit_sound(id, CHAN_STREAM, leap_sound[random_num(1, sizeof leap_sound -1)], 1.0, ATTN_NORM, 0, PITCH_HIGH) // Set the current super jump time g_lastleaptime[id] = get_gametime() } } } } } allowed_hunterjump(id) // Main function { if (g_b_isJumper[id]) { if (!((pev(id, pev_flags) & FL_ONGROUND) && (pev(id, pev_flags) & FL_DUCKING))) { g_b_isJumper[id] = true return false } static buttons buttons = pev(id, pev_button) // Not doing a longjump (added bot support) if (!(buttons & IN_USE) && !is_user_bot(id)) { g_b_isJumper[id] = true return false } static Float:cooldown cooldown = get_pcvar_float(cvar_cooldown) if (get_gametime() - g_lastleaptime[id] < cooldown) return false } return true } public false_g_b_is_Jumper(id) // Remove super jumps to human/survivor/nemesis { g_b_isJumper[id] = false }
Użytkownik szparrow edytował ten post 26.08.2017 17:57