[REQ] This plugin convert.
Hi guys.
This plugin for ZP.
I want convert this plugin for normal cs.
PHP Code:
#include <amxmodx> #include <cstrike> #include <fakemeta> #include <fakemeta_util> #include <fun> #include <engine> #include <hamsandwich> #include <zombieplague>
#define TASK_AURA 27000
new g_item, ElectroSpr, g_electro[33], g_Weapon[33], cvar_aura_colors[3] new bool:g_electroweapon[33] new g_iMaxPlayers, g_msgScreenFade
new cvar_aura_size const UNIT_SECOND = (1<<12)
public plugin_init() { register_plugin("Elektrik Mp5", "1.2", "Zapdos1") g_item = zp_register_extra_item("Electro MP5", 15, ZP_TEAM_HUMAN) cvar_aura_size = register_cvar("zp_aura_size", "50") register_event("HLTV", "event_round_start", "a", "1=0", "2=0") register_event("CurWeapon", "event_CurWeapon", "b", "1=1") register_forward(FM_PlayerPreThink, "fw_PlayerPreThink") RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage") cvar_aura_colors[0] = register_cvar("zp_aura_red", "255") cvar_aura_colors[1] = register_cvar("zp_aura_green", "255") cvar_aura_colors[2] = register_cvar("zp_aura_blue", "0") g_iMaxPlayers = get_maxplayers() g_msgScreenFade = get_user_msgid("ScreenFade") }
public plugin_precache() { precache_model("models/zombie_plague/v_electro.mdl"); precache_sound("zombie_plague/spark6.wav"); ElectroSpr = precache_model("sprites/spark1.spr"); }
public event_round_start() { for (new i = 1; i <= g_iMaxPlayers; i++) { remove_task(i + TASK_AURA) if (!is_user_connected(i)) continue if (g_electroweapon[i]) { g_electroweapon[i] = false } if(g_electro[i]) { g_electro[i] = false } } }
public zp_extra_item_selected(player, itemid) { if (itemid == g_item) { client_print(player, print_chat, "You bought an Electro Weapon!") g_electroweapon[player] = true strip_user_weapons(player) give_item(player, "weapon_mp5navy") cs_set_user_bpammo(player, CSW_MP5NAVY, 150) set_hudmessage(255, 255, 0, -1.0, -1.0, 0, 6.0, 5.0) show_hudmessage(player, "Electro Power activated!") set_task(0.1, "electro_aura", player + TASK_AURA, _, _, "b") set_user_rendering (player, kRenderFxGlowShell, 255, 255, 0, kRenderTransAlpha, 255) } }
public zp_user_infected_post(infected, infector) { remove_task(infected + TASK_AURA) if (g_electroweapon[infected]) { g_electroweapon[infected] = false } }
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type) { if(!is_user_connected(attacker) || !is_user_connected(victim) || attacker == victim || !attacker) return HAM_IGNORED static Float:originF[3] pev(victim, pev_origin, originF) static originF2[3] get_user_origin(victim, originF2) if (g_electroweapon[attacker] && get_user_weapon(attacker) == CSW_MP5NAVY) { ElectroEffect(victim) ElectroRing(originF) ElectroSound(originF2) } if(zp_get_user_nemesis(victim)) { return HAM_IGNORED } return PLUGIN_HANDLED; }
public event_CurWeapon(id) { if (!is_user_alive(id)) return PLUGIN_CONTINUE g_Weapon[id] = read_data(2) if(zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_CONTINUE if(!g_electroweapon[id] || g_Weapon[id] != CSW_MP5NAVY) return PLUGIN_CONTINUE entity_set_string(id, EV_SZ_viewmodel, "models/zombie_plague/v_electro.mdl") return PLUGIN_CONTINUE }
public fw_PlayerPreThink(id) { if (!is_user_alive(id)) return; }
public ElectroSound(iOrigin[3]) { new Entity = create_entity("info_target") new Float:flOrigin[3] IVecFVec(iOrigin, flOrigin) entity_set_origin(Entity, flOrigin) emit_sound(Entity, CHAN_WEAPON, "zombie_plague/spark6.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM) remove_entity(Entity) }
ElectroRing(const Float:originF3[3]) { engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF3, 0) write_byte(TE_BEAMCYLINDER) engfunc(EngFunc_WriteCoord, originF3[0]) engfunc(EngFunc_WriteCoord, originF3[1]) engfunc(EngFunc_WriteCoord, originF3[2]) engfunc(EngFunc_WriteCoord, originF3[0]) engfunc(EngFunc_WriteCoord, originF3[1]) engfunc(EngFunc_WriteCoord, originF3[2]+100.0) write_short(ElectroSpr) write_byte(0) write_byte(0) write_byte(4) write_byte(60) write_byte(0) write_byte(41) write_byte(138) write_byte(255) write_byte(200) write_byte(0) message_end() }
public ElectroEffect(id) { if (!is_user_alive(id) || !zp_get_user_zombie(id) || g_electro[id]) return; message_begin(MSG_ONE_UNRELIABLE, g_msgScreenFade, _, id) write_short(UNIT_SECOND*1) write_short(UNIT_SECOND*1) write_short(0x0000) write_byte(255) write_byte(255) write_byte(0) write_byte(100) message_end() #if defined HANDLE_MODELS_ON_SEPARATE_ENT fm_set_rendering(g_ent_playermodel[id], kRenderFxGlowShell, 255, 255, 0, kRenderNormal, 25) #else fm_set_rendering(id, kRenderFxGlowShell, 250, 250, 0, kRenderNormal, 25) #endif g_electro[id] = true set_task(5.0, "stopelectro", id) }
public stopelectro(id) { if (!is_user_alive(id) || !g_electro[id]) return; g_electro[id] = false; #if defined HANDLE_MODELS_ON_SEPARATE_ENT fm_set_rendering(g_ent_playermodel[id]) #else fm_set_rendering(id) #endif }
public client_putinserver(id) { g_electroweapon[id] = false g_electro[id] = false }
public client_disconnect(id) { g_electroweapon[id] = false g_electro[id] = false remove_task(id + TASK_AURA) }
public electro_aura(id) { id -= TASK_AURA
if (!is_user_alive(id)) return static Float:FOrigin[3] pev(id, pev_origin, FOrigin) engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, FOrigin, 0) write_byte(TE_DLIGHT) engfunc(EngFunc_WriteCoord, FOrigin[0]) engfunc(EngFunc_WriteCoord, FOrigin[1]) engfunc(EngFunc_WriteCoord, FOrigin[2]) write_byte(get_pcvar_num(cvar_aura_size)) write_byte(get_pcvar_num(cvar_aura_colors[0])) write_byte(get_pcvar_num(cvar_aura_colors[1])) write_byte(get_pcvar_num(cvar_aura_colors[2])) write_byte(2) write_byte(0) message_end() }
|