Zombie The ExHero Help!
I try to add bot compatibility with the bot_use_skill script from the NST CSO zombie classes and the Dias mod Biohazard.
I tested it and works buy i have many questions. Here is the code: [CODE] #include <amxmodx> #include <fakemeta> #include <zombie_thehero2> #define PLUGIN "[ZB3] Zombie Class: Regular" #define VERSION "2.0" #define AUTHOR "Dias" new const LANG_FILE[] = "zombie_thehero2.txt" // Zombie Configs new const zclass_name[] = "Regular" new const zclass_desc[] = "Berserk" new const zclass_sex = SEX_MALE new const zclass_lockcost = 0 new const zclass_hostmodel[] = "tank_zombi_host" new const zclass_originmodel[] = "tank_zombi_origin" new const zclass_clawsmodelhost[] = "v_knife_tank_zombi.mdl" new const zclass_clawsmodelorigin[] = "v_knife_tank_zombi.mdl" new const zombiegrenade_modelhost[] = "models/zombie_thehero/v_zombibomb_tank_zombi.mdl" new const zombiegrenade_modelorigin[] = "models/zombie_thehero/v_zombibomb_tank_zombi.mdl" new const Float:zclass_gravity = 0.8 new const Float:zclass_speedhost = 280.0 new const Float:zclass_speedorigin = 280.0 new const Float:zclass_knockback = 1.0 new const Float:zclass_painshock = 0.6 new const DeathSound[2][] = { "zombie_thehero/zombi_death_1.wav", "zombie_thehero/zombi_death_2.wav" } new const HurtSound[2][] = { "zombie_thehero/zombi_hurt_01.wav", "zombie_thehero/zombi_hurt_02.wav" } new const HealSound[] = "zombie_thehero/zombi_heal.wav" new const EvolSound[] = "zombie_thehero/zombi_evolution.wav" new const Float:ClawsDistance1 = 1.0 new const Float:ClawsDistance2 = 1.1 new g_zombie_classid, g_can_berserk[33], g_berserking[33], g_current_time[33] new const berserk_startsound[] = "zombie_thehero/zombi_pressure.wav" new const berserk_sound[2][] = { "zombie_thehero/zombi_pre_idle_1.wav", "zombie_thehero/zombi_pre_idle_2.wav" } #define LANG_OFFICIAL LANG_PLAYER #define BERSERK_COLOR_R 255 #define BERSERK_COLOR_G 3 #define BERSERK_COLOR_B 0 #define HEALTH_DECREASE 500 #define FASTRUN_FOV 105 #define BERSERK_SPEED 340 #define BERSERK_GRAVITY 0.7 #define BERSERK_TIME_HOST 5 #define BERSERK_TIME_ORIGIN 10 #define BERSERK_COOLDOWN_HOST 10 #define BERSERK_COOLDOWN_ORIGIN 5 #define TASK_BERSERKING 12000 #define TASK_COOLDOWN 12001 #define TASK_BERSERK_SOUND 12002 #define TASK_BOT_USE_SKILL 2000 (who define this?) #define ID_BOT_USE_SKILL (taskid - TASK_BOT_USE_SKILL) (this can re-write to a more simple code?) new g_Msg_Fov, g_synchud1 public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_dictionary(LANG_FILE) register_clcmd("drop", "cmd_drop") g_Msg_Fov = get_user_msgid("SetFOV") g_synchud1 = zb3_get_synchud_id(SYNCHUD_ZBHM_SKILL1) } public plugin_precache() { // Register Zombie Class g_zombie_classid = zb3_register_zombie_class(zclass_name, zclass_desc, zclass_sex, zclass_lockcost, zclass_gravity, zclass_speedhost, zclass_speedorigin, zclass_knockback, zclass_painshock, ClawsDistance1, ClawsDistance2) zb3_set_zombie_class_data(zclass_hostmodel, zclass_originmodel, zclass_clawsmodelhost, zclass_clawsmodelorigin, DeathSound[0], DeathSound[1], HurtSound[0], HurtSound[1], HealSound, EvolSound) zb3_register_zbgre_model(zombiegrenade_modelh ost, zombiegrenade_modelorigin) // Precache Class Resource engfunc(EngFunc_PrecacheSound, berserk_startsound) for(new i = 0; i < sizeof(berserk_sound); i++) engfunc(EngFunc_PrecacheSound, berserk_sound[i]) } public zb3_user_infected(id, infector) { if(zb3_get_user_zombie_class(id) == g_zombie_classid) { reset_skill(id) g_can_berserk[id] = 1 g_current_time[id] = 100 if(is_user_bot(id)) { set_task(random_float(5.0,15.0), "bot_use_skill", id+TASK_BOT_USE_SKILL) return } } } public reset_skill(id) { g_can_berserk[id] = 0 g_berserking[id] = 0 g_current_time[id] = 0 remove_task(id+TASK_BERSERKING) remove_task(id+TASK_COOLDOWN) remove_task(id+TASK_BERSERK_SOUND) remove_task(id+TASK_BOT_USE_SKILL) if(is_user_connected(id)) set_fov(id) } public zb3_user_spawned(id) { if(!zb3_get_user_zombie(id)) set_task(0.1, "reset_skill", id) } public zb3_user_dead(id) reset_skill(id) public cmd_drop(id) { if(!is_user_alive(id)) return PLUGIN_CONTINUE if(!zb3_get_user_zombie(id)) return PLUGIN_CONTINUE if(zb3_get_user_zombie_class(id) != g_zombie_classid) return PLUGIN_CONTINUE if(!g_can_berserk[id] || g_berserking[id]) return PLUGIN_HANDLED Do_Berserk(id) return PLUGIN_HANDLED } public Do_Berserk(id) { if((get_user_health(id) - HEALTH_DECREASE) > 0) { zb3_reset_user_speed(id) // Set Vars g_berserking[id] = 1 g_can_berserk[id] = 0 g_current_time[id] = 0 // Decrease Health zb3_set_user_health(id, get_user_health(id) - HEALTH_DECREASE) // Set Render Red zb3_set_user_rendering(id, kRenderFxGlowShell, BERSERK_COLOR_R, BERSERK_COLOR_G, BERSERK_COLOR_B, kRenderNormal, 0) // Set Fov set_fov(id, FASTRUN_FOV) // Set MaxSpeed & Gravity zb3_set_user_speed(id, BERSERK_SPEED) set_pev(id, pev_maxspeed, BERSERK_GRAVITY) // Play Berserk Sound EmitSound(id, CHAN_VOICE, berserk_startsound) // Set Task set_task(2.0, "Berserk_HeartBeat", id+TASK_BERSERK_SOUND) static Float:SkillTime SkillTime = zb3_get_user_level(id) > 1 ? float(BERSERK_TIME_ORIGIN) : float(BERSERK_TIME_HOST) set_task(SkillTime, "Remove_Berserk", id+TASK_BERSERKING) } else { client_print(id, print_center, "%L", LANG_OFFICIAL, "ZOMBIE_REGULAR_CANTBERSERK") } } public Remove_Berserk(id) { id -= TASK_BERSERKING if(!is_user_alive(id)) return if(!zb3_get_user_zombie(id)) return if(zb3_get_user_zombie_class(id) != g_zombie_classid) return if(!g_berserking[id]) return // Set Vars g_berserking[id] = 0 g_can_berserk[id] = 0 // Reset Rendering zb3_set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 0) // Reset FOV set_fov(id) // Reset Speed static Float:DefaultSpeed DefaultSpeed = zb3_get_user_level(id) > 1 ? zclass_speedorigin : zclass_speedhost zb3_set_user_speed(id, floatround(DefaultSpeed)) } public Berserk_HeartBeat(id) { id -= TASK_BERSERK_SOUND if(!is_user_alive(id)) return if(!zb3_get_user_zombie(id)) return if(zb3_get_user_zombie_class(id) != g_zombie_classid) return if(!g_can_berserk[id] || g_berserking[id]) return EmitSound(id, CHAN_VOICE, berserk_sound[random_num(0, sizeof(berserk_sound))]) set_task(2.0, "Berserk_HeartBeat", id+TASK_BERSERK_SOUND) } public zb3_skill_show(id) { if(!is_user_alive(id)) return if(!zb3_get_user_zombie(id)) return if(zb3_get_user_zombie_class(id) != g_zombie_classid) return if(g_current_time[id] < 100) g_current_time[id]++ static Float:percent, percent2 static Float:timewait, Float:time_remove timewait = zb3_get_user_level(id) > 1 ? float(BERSERK_COOLDOWN_ORIGIN) : float(BERSERK_COOLDOWN_HOST) time_remove = zb3_get_user_level(id) > 1 ? float(BERSERK_TIME_ORIGIN) : float(BERSERK_TIME_HOST) percent = (float(g_current_time[id]) / (timewait + time_remove)) * 100.0 percent2 = floatround(percent) if(percent2 > 0 && percent2 < 50) { set_hudmessage(255, 0, 0, -1.0, 0.10, 0, 3.0, 3.0) ShowSyncHudMsg(id, g_synchud1, "[G] - %s (%i%%)", zclass_desc, percent2) } else if(percent2 >= 50 && percent < 100) { set_hudmessage(255, 255, 0, -1.0, 0.10, 0, 3.0, 3.0) ShowSyncHudMsg(id, g_synchud1, "[G] - %s (%i%%)", zclass_desc, percent2) } else if(percent2 >= 100) { set_hudmessage(255, 255, 255, -1.0, 0.10, 0, 3.0, 3.0) ShowSyncHudMsg(id, g_synchud1, "[G] - %s (Ready)", zclass_desc) if(!g_can_berserk[id]) g_can_berserk[id] = 1 } } public bot_use_skill(taskid) { new id = ID_BOT_USE_SKILL if (!is_user_bot(id)) return; Do_Berserk(id) if (task_exists(taskid)) remove_task(taskid) set_task(float(random_num(5,15)), "bot_use_skill", id+TASK_BOT_USE_SKILL) } (who define this? random_num(5,15)) stock set_fov(id, num = 90) { if(!is_user_connected(id)) return message_begin(MSG_ONE_UNRELIABLE, g_Msg_Fov, {0,0,0}, id) write_byte(num) message_end() } stock EmitSound(id, chan, const file_sound[]) { if(!is_user_connected(id)) return emit_sound(id, chan, file_sound, 1.0, ATTN_NORM, 0, PITCH_NORM) } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1066\\ f0\\ fs16 \n\\ par } */ [CODE] Please fix the stingfinge bot_use_skill to make the bot use both the skill. public bot_use_skill(taskid) { new id = ID_BOT_USE_SKILL if (!is_user_bot(id)) return; Do_Tentacle(id) || Do_HeavyJump(id) if (task_exists(taskid)) remove_task(taskid) set_task(float(random_num(5,15)), "bot_use_skill", id+TASK_BOT_USE_SKILL) } Note: I dont know nothing of scripting, so you can helpme? |
Re: Zombie The ExHero Help!
Quote:
P.S. Use [PHP] or [CODE] tags when posting code. |
Re: Zombie The ExHero Help!
Only this:
#define TASK_BOT_USE_SKILL 2000 (who define this?) #define ID_BOT_USE_SKILL (taskid - TASK_BOT_USE_SKILL) (this can re-write to a more simple code?) who define this? set_task(float(random_num(5,15)) |
Re: Zombie The ExHero Help!
The author defined them that's who. If you're having a problem with the plugin you should post it in that thread. If the plugin can't be found on this forum then go post your problem where you found the plugin.
|
Re: Zombie The ExHero Help!
1 Attachment(s)
Please fix this to made bots use both skills:
|
| All times are GMT -4. The time now is 20:22. |
Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.