Correct this code
can you correct this code cuz im :mrgreen: at scripting i now some examples but i need you're help to know for sure what iam doing bad and what iam doing good.
The zombies are Terrorist team if i missed a tam zombie or zombie team pls correct .
It's not finished code. :)
Code:
PHP Code:
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <colorchat> #include <hamsandwich> #include <fun> #include <fakemeta>
#define PLUGIN "Swarm Extension" #define VERSION "1.0" #define AUTHOR "DoviuX"
//Sounds //Hunter new g_sndleap[] = "Swarm/Hunter/Hunter_Leap.wav" new const HuntHit[][]= { "Swarm/Hunter/Hit/Hit1.wav", "Swarm/Hunter/Hit/Hit2.wav", "Swarm/Hunter/Hit/Hit3.wav" } new const HuntMiss[][]= { "Swarm/Hunter/Miss/Miss1.wav", "Swarm/Hunter/Miss/Miss2.wav", "Swarm/Hunter/Miss/Miss3.wav" } new const HuntDie[][]= { "Swarm/Hunter/Die/Die1.wav", "Swarm/Hunter/Die/Die2.wav", "Swarm/Hunter/Die/Die3.wav" } new const HuntPain[][]= { "Swarm/Hunter/Pain/Pain1.wav", "Swarm/Hunter/Pain/Pain2.wav", "Swarm/Hunter/Pain/Pain3.wav" }
//Smoker new g_sndMiss[] = "Swarm/Smoker/TongueHit_miss.wav" new g_sndDrag[] = "Swarm/Smoker/TongueHit_drag.wav" new g_sndamb[] = "Swarm/Smoker/Draging_Ambience.wav" new const SmokHit[][]= { "Swarm/Smoker/Hit/Hit1.wav", "Swarm/Smoker/Hit/Hit2.wav", "Swarm/Smoker/Hit/Hit3.wav" } new const SmokMiss[][]= { "Swarm/Smoker/Miss/Miss1.wav", "Swarm/Smoker/Miss/Miss2.wav", "Swarm/Smoker/Miss/Miss3.wav" } new const SmokDie[][]= { "Swarm/Smoker/Die/Die1.wav", "Swarm/Smoker/Die/Die2.wav", "Swarm/Smoker/Die/Die3.wav" } new const SmokPain[][]= { "Swarm/Smoker/Pain/Pain1.wav", "Swarm/Smoker/Pain/Pain2.wav", "Swarm/Smoker/Pain/Pain3.wav" }
//Boomer new const BoomHit[][]= { "Swarm/Boomer/Hit/Hit1.wav", "Swarm/Boomer/Hit/Hit2.wav", "Swarm/Boomer/Hit/Hit3.wav" } new const BoomMiss[][]= { "Swarm/Boomer/Miss/Miss1.wav", "Swarm/Boomer/Miss/Miss2.wav", "Swarm/Boomer/Miss/Miss3.wav" } new const BoomDie[][]= { "Swarm/Boomer/Die/Die1.wav", "Swarm/Boomer/Die/Die2.wav", "Swarm/Boomer/Die/Die3.wav" } new const BoomPain[][]= { "Swarm/Boomer/Pain/Pain1.wav", "Swarm/Boomer/Pain/Pain2.wav", "Swarm/Boomer/Pain/Pain3.wav" }
//Tank new const TankHit[][]= { "Swarm/Tank/Hit/Hit1.wav", "Swarm/Tank/Hit/Hit2.wav", "Swarm/Tank/Hit/Hit3.wav" } new const TankMiss[][]= { "Swarm/Tank/Miss/Miss1.wav", "Swarm/Tank/Miss/Miss2.wav", "Swarm/Tank/Miss/Miss3.wav" } new const TankDie[][]= { "Swarm/Tank/Die/Die1.wav", "Swarm/Tank/Die/Die2.wav", "Swarm/Tank/Die/Die3.wav" } new const TankPain[][]= { "Swarm/Tank/Pain/Pain1.wav", "Swarm/Tank/Pain/Pain2.wav", "Swarm/Tank/Pain/Pain3.wav" } /// Bool class new bool:is_Hunter[33] new bool:is_Smoker[33] new bool:is_Boomer[33] new bool:is_Tank[33]
/// Hunter new hunter_health new hunter_gravity new hunter_speed new hunter_zclass_LongJump, hunter_LongJump_force, hunter_LongJump_height, cvar_cooldown new Float:hunter_lastleaptime[33] // time leap was last used
/// Smoker new smoker_health new smoker_gravity new smoker_speed new g_hooked[33], g_hooksLeft[33] new g_zombie[33] new Float:g_lastHook[33] new cvar_maxdrags cvar_dragspeed cvar_cooldown cvar_dmg2stop cvar_mates cvar_bind new g_zclass_smoker, g_Line
/// Boomer new boomer_health new boomer_gravity new boomer_speed
/// Tank new tank_health new tank_gravity new tank_speed
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) /// FCVAR register_cvar("L4D Infected Class v.%s", VERSION, FCVAR_SERVER) /// Register Ham_Spawn RegisterHam(Ham_Spawn, "player", "fwdPlayer_Spawn", 1) /// Register Forwards register_forward(FM_PlayerPreThink, "cmdHunter") register_forward(FM_PlayerPreThink, "cmdSmoker") register_forward(FM_PlayerPreThink, "cmdBoomer") register_forward(FM_PlayerPreThink, "cmdTank") /// Hunter hunter_health = register_cvar("hunter_health", "600") hunter_gravity = register_cvar("hunter_gravity ", "0.7") hunter_speed = register_cvar("hunter_speed", "270") hunter_LongJump_force = register_cvar("hunter_leap_force", "525") hunter_LongJump_height = register_cvar("hunter_leap_height", "345") cvar_cooldown = register_cvar("hunter_leap_cooldown", "1.5") /// Smoker smoker_health = register_cvar("smoker_health", "700") smoker_gravity = register_cvar("smoker_gravity ", "0.9") smoker_speed = register_cvar("smoker_speed", "255") cvar_dragspeed = register_cvar("smoker_dragspeed", "160") cvar_maxdrags = register_cvar("smoker_maxdrags", "20") cvar_cooldown = register_cvar("smoker_cooldown", "0.0") cvar_dmg2stop = register_cvar("smoker_dmg2stop", "200") cvar_mates = register_cvar("smoker_mates", "0") register_clcmd("+drag","drag_start", ADMIN_USER, "bind ^"key^" ^"+drag^"") register_clcmd("-drag","drag_end") /// Boomer boomer_health = register_cvar("boomer_health", "300") boomer_gravity = register_cvar("boomer_gravity ", "0.7") boomer_speed = register_cvar("boomer_speed", "245") /// Tank tank_health = register_cvar("tank_health", "3000") tank_gravity = register_cvar("tank_gravity ", "0.8") tank_speed = register_cvar("tank_speed", "260") }
public plugin_precache() { precache_model("models/player/Hunter/Hunter.mdl") precache_model("models/player/Smoker/Smoker.mdl") precache_model("models/player/Boomer/Boomer.mdl") precache_model("models/player/Tank/Tank.mdl") precache_sound(g_sndDrag) precache_sound(g_sndMiss) g_Line = precache_model("sprites/zbeam4.spr") return PLUGIN_CONTINUE }
public fwdPlayer_Spawn(id) { is_Hunter[id] = false; is_Smoker[id] = false; is_Boomer[id] = false; is_Tank[id] = false; }
public cmdHunter(id, entity) { if(TEAM_T && is_user_alive(id) && is_Hunter[id] == true) { if (!is_user_alive(id)) return if (allowed_LongJump(id)) { static Float:velocity[3] velocity_by_aim(id, get_pcvar_num(hunter_LongJump_force), velocity) velocity[2] = get_pcvar_float(hunter_LongJump_height) set_pev(id, pev_velocity, velocity)
// Set the current leap time g_lastleaptime[id] = get_gametime() set_user_health(id, get_pcvar_num(hunter_health)) set_user_gravity(id, get_pcvar_float(hunter_gravity)) set_user_maxspeed(id, get_pcvar_float(hunter_speed)) cs_set_user_model(id, "Hunter") if (!((pev(id, pev_flags) & FL_ONGROUND) && (pev(id, pev_flags) & FL_DUCKING)) || fm_get_speed(id) < 10) return false static buttons buttons = pev(id, pev_button) // Not doing a longjump (added bot support) if (!(buttons & IN_ATTACK) && !is_user_bot(id)) return false
// Get cooldown cvar static Float:cooldown cooldown = get_pcvar_float(cvar_cooldown)
// Cooldown not over yet if (get_gametime() - hunter_lastleaptime[id] < cooldown) return false static Float:velocity[3] pev(entity, pev_velocity, velocity) return floatround(vector_length(velocity));
return true } }
public cmdSmoker(id) { if(TEAM_T && is_user_alive(id) && is_Smoker[id] == true) { set_user_health(id, get_pcvar_num(smoker_health)) set_user_gravity(id, get_pcvar_float(smoker_gravity)) set_user_maxspeed(id, get_pcvar_float(smoker_speed)) cs_set_user_model(id, "Smoker")
g_hooksLeft[id] = get_pcvar_num(cvar_maxdrags) g_lastHook[id] = get_gametime() if (g_hooked[id]) drag_end(id)
if(TEAM_T && is_user_alive(id) && is_Smoker[id] == true) { static Float:cdown cdown = get_pcvar_float(cvar_cooldown) if (!is_user_alive(id)) { client_print(id, print_chat, "You can't drag if you are dead!") return }
if (g_hooksLeft[id] <= 0) { client_print(id, print_chat, "You can't drag anymore!") return } if (get_gametime() - g_lastHook[id] < cdown) { client_print(id, print_chat, "Wait %.fsec to drag again!", get_pcvar_float(cvar_cooldown) - (get_gametime() - g_lastHook[id])) return }
if (g_hooksLeft[id] > 0) { g_hooksLeft[id]-- client_print(id, print_chat, "You can drag player to youself %d time%s", g_hooksLeft[id], (g_hooksLeft[id] < 2) ? "" : "s") }
new hooktarget, body
get_user_aiming(id, hooktarget, body)
if (is_user_alive(hooktarget)) { if (get_user_team(hooktarget) != get_user_team(id)) { g_hooked[id] = hooktarget emit_sound(hooktarget, CHAN_BODY, g_sndDrag, 1.0, ATTN_NORM, 0, PITCH_HIGH) } else { /*if (get_user_team(hooktarget) == get_user_team(id)) { if (get_pcvar_num(cvar_mates) == 1) {*/ //if (get_user_team(hooktarget) == get_user_team(id)) { if (get_user_team(hooktarget) == g_zombie[id]) { if (get_pcvar_num(cvar_mates) == 1) { // If is 1 , hook! g_hooked[id] = hooktarget emit_sound(hooktarget, CHAN_BODY, g_sndDrag, 1.0, ATTN_NORM, 0, PITCH_HIGH) //emit_sound(hooktarget, CHAN_BODY, g_sndMiss, 1.0, ATTN_NORM, 0, PITCH_HIGH) if (get_pcvar_num(cvar_mates) == 0) { // If is 0 , hook , but missed! g_hooked[id] = hooktarget emit_sound(hooktarget, CHAN_BODY, g_sndMiss, 1.0, ATTN_NORM, 0, PITCH_HIGH) } } else { g_hooked[id] = 33 noTarget(id) emit_sound(hooktarget, CHAN_BODY, g_sndMiss, 1.0, ATTN_NORM, 0, PITCH_HIGH) return } } else { g_hooked[id] = 33 noTarget(id) emit_sound(hooktarget, CHAN_BODY, g_sndMiss, 1.0, ATTN_NORM, 0, PITCH_HIGH) return } }
new parm[2] parm[0] = id parm[1] = hooktarget set_task(0.1, "smoker_reelin", id, parm, 2, "b") harpoon_target(parm) } else { g_hooked[id] = 33 noTarget(id) emit_sound(hooktarget, CHAN_BODY, g_sndMiss, 1.0, ATTN_NORM, 0, PITCH_HIGH) } } else { return } new id = parm[0] new victim = parm[1]
if (!g_hooked[id]) return
if (!is_user_alive(victim)) { drag_end(id) return }
new Float:fl_Velocity[3] new idOrigin[3], vicOrigin[3] emit_sound(id, CHAN_BODY, g_sndamb, 1.0, ATTN_NORM, 0, PITCH_HIGH)
get_user_origin(victim, vicOrigin) get_user_origin(id, idOrigin)
new distance = get_distance(idOrigin, vicOrigin)
if (distance > 1) { new Float:fl_Time = distance / get_pcvar_float(cvar_dragspeed)
fl_Velocity[0] = (idOrigin[0] - vicOrigin[0]) / fl_Time fl_Velocity[1] = (idOrigin[1] - vicOrigin[1]) / fl_Time fl_Velocity[2] = (idOrigin[2] - vicOrigin[2]) / fl_Time } else { fl_Velocity[0] = 0.0 fl_Velocity[1] = 0.0 fl_Velocity[2] = 0.0 }
entity_set_vector(victim, EV_VEC_velocity, fl_Velocity) //<- rewritten. now uses engine
g_hooked[id] = 0 beam_remove(id) remove_task(id) if (get_gametime() - g_lastHook[id] <= get_pcvar_float(cvar_cooldown)) { return } else { g_lastHook[id] = get_gametime()
new id = read_data(2) if (g_hooked[id]) drag_end(id)
if (victim == attacker || !is_user_connected(attacker)) { if (damage > 25) { drag_end(victim) return HAM_IGNORED; } } if (get_user_team(attacker) != get_user_team(victim)) { if (damage > get_pcvar_num(cvar_dmg2stop)) { drag_end(victim) return HAM_IGNORED; } } return HAM_IGNORED;
if (id <= 0 || id > 32) return if (g_hooked[id]) drag_end(id)
new id = parm[0] new hooktarget = parm[1]
message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(8) // TE_BEAMENTS write_short(id) write_short(hooktarget) write_short(g_Line) // sprite index write_byte(0) // start frame write_byte(0) // framerate write_byte(200) // life write_byte(8) // width write_byte(1) // noise write_byte(155) // r, g, b write_byte(155) // r, g, b write_byte(55) // r, g, b write_byte(90) // brightness write_byte(10) // speed message_end()
new endorigin[3]
get_user_origin(id, endorigin, 3)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte( TE_BEAMENTPOINT ); // TE_BEAMENTPOINT write_short(id) write_coord(endorigin[0]) write_coord(endorigin[1]) write_coord(endorigin[2]) write_short(g_Line) // sprite index write_byte(0) // start frame write_byte(0) // framerate write_byte(200) // life write_byte(8) // width write_byte(1) // noise write_byte(155) // r, g, b write_byte(155) // r, g, b write_byte(55) // r, g, b write_byte(75) // brightness write_byte(0) // speed message_end()
message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(99) //TE_KILLBEAM write_short(id) //entity message_end() }
public cmdBoomer(id) { if(TEAM_T && is_user_alive(id) && is_Boomer[id] == true) { set_user_health(id, get_pcvar_num(boomer_health)) set_user_gravity(id, get_pcvar_float(boomer_gravity)) set_user_maxspeed(id, get_pcvar_float(boomer_speed)) cs_set_user_model(id, "Boomer") } }
public cmdTank(id) { if(TEAM_T && is_user_alive(id) && is_Tank[id] == true) { set_user_health(id, get_pcvar_num(tank_health)) set_user_gravity(id, get_pcvar_float(tank_gravity)) set_user_maxspeed(id, get_pcvar_float(tank_speed)) cs_set_user_model(id, "Tank") } }
public client_connect(id) { is_Hunter[id] = false; is_Smoker[id] = false; is_Boomer[id] = false; is_Tank[id] = false; }
|