Hali!
Az a gondom, hogy az oldalról letöltött Nitrogen Galil fegyver nem fagyasztja le az ellenséget, kérlek segítsetek. 
Kód: /*================================================================================
[ZP] Extra Item: Nitrogen Galil Copyright (C) 2009 By metallicawOw #, Buenos Aires, Argentina This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. In addition, as a special exception, the author gives permission to link the code of this program with the Half-Life Game Engine ("HL Engine") and Modified Game Libraries ("MODs") developed by Valve, L.L.C ("Valve"). You must obey the GNU General Public License in all respects for all of the code used other than the HL Engine and MODs from Valve. If you modify this file, you may extend this exception to your version of the file, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. Description: When you buy this item you will Frost Zombies While Shooting Them With your Nitrogen Galil. Changelog: v1.00: Creation of the plugin [24/11/09] v2.00: Fixed Some Bugs [6/12/09] v2.01: Added a Model to NG and Better Effects [6/12/09] v2.02: Added Frost Time in one Cvar [6/12/09] ML: [ES] // metallicawOw # [EN] // metallicawOw # [NL] // crazyeffect [PL] // MmikiM =================================================================================*/
#include <amxmodx> #include <hamsandwich> #include <zombieplague> #include <fakemeta> #include <cstrike> #include <engine> #include <fun>
//___________/ Values \___________________________________________________________________________________________ //**************************************************************************************************************************/ new gc_itemID new bool:g_NitrogenGalil[33] new g_CurrentWeapon[33] new g_FrozeN[33] new NitrogenGalilSpr new g_msgScreenFade new g_iMaxPlayers new g_HudSync new FrostTime new BackSpeed
const UNIT_SECOND = (1<<12)
//___________/ INIT \___________________________________________________________________________________________ //**************************************************************************************************************************/ public plugin_init() { register_plugin("[ZP] Extra Item: Nitrogen Galil", "2.02", "metallicawOw #") // Cvars FrostTime = register_cvar("zp_ng_frost_time", "5.0") // Time to Remove the Frost Effect BackSpeed = register_cvar("zp_ng_back_spd", "250.0") // The Speed that Victim Recieve when g_FrozeN is false // Message IDS g_HudSync = CreateHudSyncObj() g_iMaxPlayers = get_maxplayers() g_msgScreenFade = get_user_msgid("ScreenFade") // ITEM NAME & COST gc_itemID = zp_register_extra_item("Nitrogen Galil", 40, ZP_TEAM_HUMAN) // Events register_event("HLTV", "event_round_start", "a", "1=0", "2=0") register_event("CurWeapon", "event_CurWeapon", "b", "1=1") // Forwards register_forward(FM_PlayerPreThink, "fw_PlayerPreThink") // Hams RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage") // Lang register_dictionary("nitrogen_galil.txt") }
//___________/ PRECACHE \___________________________________________________________________________________________ //**************************************************************************************************************************/ public plugin_precache() { // Models precache_model("models/zombie_plague/v_nitrogen_galil.mdl"); // Sounds precache_sound("warcraft3/impalehit.wav"); // Sprites NitrogenGalilSpr = precache_model("sprites/shockwave.spr"); }
//___________/ Client PutinServer & Disconnect\___________________________________________________________________________________________ //**************************************************************************************************************************/ public client_putinserver(id) { g_NitrogenGalil[id] = false g_FrozeN[id] = false }
public client_disconnect(id) { g_NitrogenGalil[id] = false g_FrozeN[id] = false }
//___________/ ZP EXTRA ITEM SELECTED \___________________________________________________________________________________________ //**************************************************************************************************************************/ public zp_extra_item_selected(player, itemid) { // check if the selected item matches any of our registered ones if (itemid == gc_itemID) { client_print(player, print_chat, "%L", LANG_PLAYER, "PURCHASE_NG") g_NitrogenGalil[player] = true strip_user_weapons(player) give_item(player, "weapon_knife") give_item(player, "weapon_galil") cs_set_user_bpammo(player, CSW_GALIL, 300) new gcName[32] get_user_name(player, gcName, charsmax(gcName)) set_hudmessage(34, 138, 255, -1.0, 0.17, 1, 0.0, 5.0, 1.0, 1.0, -1) ShowSyncHudMsg(0, g_HudSync, "%L", LANG_PLAYER, "NOTICE_NG", gcName) } }
//___________/ ZP User Infected \___________________________________________________________________________________________ //**************************************************************************************************************************/ public zp_user_infected_post(infected, infector) { if (g_NitrogenGalil[infected]) { g_NitrogenGalil[infected] = false } }
//___________/ Event Round Start \___________________________________________________________________________________________ //**************************************************************************************************************************/ public event_round_start() { for (new i = 1; i <= g_iMaxPlayers; i++) { if (!is_user_connected(i)) continue if (g_NitrogenGalil[i]) { g_NitrogenGalil[i] = false } if(g_FrozeN[i]) { g_FrozeN[i] = false } } }
//___________/ TakeDamage \___________________________________________________________________________________________ //**************************************************************************************************************************/ public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type) { if(!is_user_connected(attacker) || !is_user_connected(victim) || zp_get_user_nemesis(victim) || attacker == victim || !attacker) return HAM_IGNORED // For Frost Effect Ring static Float:originF[3] pev(victim, pev_origin, originF) // For Frost Effect Sound static originF2[3] get_user_origin(victim, originF2) if (g_NitrogenGalil[attacker] && get_user_weapon(attacker) == CSW_GALIL) { FrostEffect(victim) FrostEffectRing(originF) FrostEffectSound(originF2) client_print(attacker, print_center, "%L", LANG_PLAYER, "ENEMY_FROST_NG") } else { if(g_NitrogenGalil[attacker]) { client_print(attacker, print_center, "%L", LANG_PLAYER, "ONLY_NG") } } if(zp_get_user_nemesis(victim)) { client_print(attacker, print_center, "%L", LANG_PLAYER, "NEMESIS_INMUNE_NG") return HAM_IGNORED } return PLUGIN_HANDLED; }
//___________/ Event Cur Weapon \___________________________________________________________________________________________ //**************************************************************************************************************************/ public event_CurWeapon(id) { // Not Alive if (!is_user_alive(id)) return PLUGIN_CONTINUE // Store weapon id for reference g_CurrentWeapon[id] = read_data(2) // Check if(zp_get_user_zombie(id) || zp_get_user_survivor(id)) return PLUGIN_CONTINUE // Has gauss and weapon is AWP if(!g_NitrogenGalil[id] || g_CurrentWeapon[id] != CSW_GALIL) return PLUGIN_CONTINUE entity_set_string(id, EV_SZ_viewmodel, "models/zombie_plague/v_nitrogen_galil.mdl") return PLUGIN_CONTINUE }
//___________/ Player Pre Think \___________________________________________________________________________________________ //**************************************************************************************************************************/ // Forward Player PreThink public fw_PlayerPreThink(id) { // Not alive if (!is_user_alive(id)) return; // Set Player MaxSpeed if (g_FrozeN[id]) { set_pev(id, pev_velocity, Float:{0.0,0.0,0.0}) // stop motion set_pev(id, pev_maxspeed, 1.0) // prevent from moving } else { set_pev(id, pev_maxspeed, get_pcvar_float(BackSpeed)) // Change this in Cvar if you Want } } //___________/ Effects \___________________________________________________________________________________________ //**************************************************************************************************************************/ // Frost Effect public FrostEffect(id) { // Only effect alive unfrozen zombies if (!is_user_alive(id) || !zp_get_user_zombie(id) || g_FrozeN[id]) return; message_begin(MSG_ONE_UNRELIABLE, g_msgScreenFade, _, id) write_short(UNIT_SECOND*1) // duration write_short(UNIT_SECOND*1) // hold time write_short(0x0000) // fade type write_byte(0) // red write_byte(50) // green write_byte(200) // blue write_byte(100) // alpha message_end() // Light blue glow while frozen #if defined HANDLE_MODELS_ON_SEPARATE_ENT fm_set_rendering(g_ent_playermodel[id], kRenderFxGlowShell, 0, 100, 200, kRenderNormal, 25) #else fm_set_rendering(id, kRenderFxGlowShell, 0, 100, 200, kRenderNormal, 25) #endif g_FrozeN[id] = true set_task(get_pcvar_float(FrostTime), "RemoveFrost", id) // Time to Remove Frost Effect }
// Frost Effect Sound public FrostEffectSound(iOrigin[3]) { // Sound by a new entity new iEnt = create_entity("info_target") // Integer vector into a Float Vector new Float:flOrigin[3] IVecFVec(iOrigin, flOrigin) // Set player's origin entity_set_origin(iEnt, flOrigin) // Sound emit_sound(iEnt, CHAN_WEAPON, "warcraft3/impalehit.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM) // Remove entity remove_entity(iEnt) }
// Frost Effect Ring FrostEffectRing(const Float:originF3[3]) { // Largest ring engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF3, 0) write_byte(TE_BEAMCYLINDER) // TE id engfunc(EngFunc_WriteCoord, originF3[0]) // x engfunc(EngFunc_WriteCoord, originF3[1]) // y engfunc(EngFunc_WriteCoord, originF3[2]) // z engfunc(EngFunc_WriteCoord, originF3[0]) // x axis engfunc(EngFunc_WriteCoord, originF3[1]) // y axis engfunc(EngFunc_WriteCoord, originF3[2]+100.0) // z axis write_short(NitrogenGalilSpr) // sprite write_byte(0) // startframe write_byte(0) // framerate write_byte(4) // life write_byte(60) // width write_byte(0) // noise write_byte(41) // red write_byte(138) // green write_byte(255) // blue write_byte(200) // brightness write_byte(0) // speed message_end() }
// Remove Frost Effect public RemoveFrost(id) { // Not alive or not frozen anymore if (!is_user_alive(id) || !g_FrozeN[id]) return; // Unfreeze g_FrozeN[id] = false; // Remove glow #if defined HANDLE_MODELS_ON_SEPARATE_ENT fm_set_rendering(g_ent_playermodel[id]) #else fm_set_rendering(id) #endif }
// Set entity's rendering type (from fakemeta_util) stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16) { static Float:color[3] color[0] = float(r) color[1] = float(g) color[2] = float(b) set_pev(entity, pev_renderfx, fx) set_pev(entity, pev_rendercolor, color) set_pev(entity, pev_rendermode, render) set_pev(entity, pev_renderamt, float(amount)) }
|