Junior Member
|
04-10-2013
, 13:59
Re: [ZP] Ayuda cuando compro un item recivo ammo packs
|
#16
|
Aqui esta el problema: zp extra GoldenAWP, cuando tengo activo este zp extra item se descontrolan los ammopacks, y cuando lo desactivo todo vuelve normal, no se porque pero ya todo volvio a la normalidad.
PHP Code:
#include <amxmodx> #include <cstrike> #include <engine> #include <fakemeta> #include <hamsandwich> #include <zombieplague>
// Plug info. #define PLUG_VERSION "1.0" #define PLUG_AUTH "H.RED.ZONE"
#define is_valid_player(%1) (1 <= %1 <= 32)
// Items Cost
const GoldenAWP_weapon_cost = 50 // Cost
//---------------- new g_iItemID, g_msgCurWeapon new bullets[ 33 ]
new g_HasGoldenAWPWeapon[33], g_CurrentWeapon[33]
// Cvars new cvar_enable, cvar_oneround, cvar_dmgmultiplier, cvar_goldbullets, cvar_uclip
// Offsets const m_pPlayer = 41 const m_flNextPrimaryAttack = 46 const m_flNextSecondaryAttack = 47 const m_flTimeWeaponIdle = 48
// Sprite new m_spriteTexture
public plugin_init() { //Register the Plugin register_plugin("[ZP] Extra Item: GoldenAWP", "1.0", "H.RED.ZONE") //Cvars cvar_enable = register_cvar("zp_GoldenAWP_enable", "1") cvar_oneround = register_cvar("zp_GoldenAWP_oneround", "1") cvar_goldbullets = register_cvar("zp_GoldenAWP_gold_bullets", "1") cvar_uclip = register_cvar("zp_GoldenAWP_unlimited_clip", "1") cvar_dmgmultiplier = register_cvar("zp_GoldenAWP_dmg_multiplier", "3") //Register Zombie Plague extra item g_iItemID = zp_register_extra_item("GoldenAWP", GoldenAWP_weapon_cost, ZP_TEAM_HUMAN) //Hamsandwich RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1) RegisterHam(Ham_Killed, "player", "fw_PlayerKilled") RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage") //Message ID g_msgCurWeapon = get_user_msgid("CurWeapon") //Events register_event("CurWeapon", "event_CurWeapon", "b", "1=1") //Messages register_message(get_user_msgid("DeathMsg"), "message_DeathMsg") }
public plugin_precache() { // Hamsandwich Forwards RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage") // Models precache_model("models/zombie_plague/v_GoldenAWP.mdl") }
public event_CurWeapon(id) { // Not Alive if (!is_user_alive(id)) return PLUGIN_CONTINUE // Store weapon g_CurrentWeapon[id] = read_data(2) // Check if(zp_get_user_zombie(id) || zp_get_user_survivor(id)) return PLUGIN_CONTINUE // Has GoldenAWP if(!g_HasGoldenAWPWeapon[id] || g_CurrentWeapon[id] != CSW_AWP) return PLUGIN_CONTINUE entity_set_string(id, EV_SZ_viewmodel, "models/zombie_plague/v_GoldenAWP.mdl") return PLUGIN_CONTINUE }
public message_DeathMsg(msg_id, msg_dest, id) { static szTruncatedWeapon[33], iAttacker, iVictim // Get truncated weapon get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon)) // Get attacker and victim iAttacker = get_msg_arg_int(1) iVictim = get_msg_arg_int(2) // Non-player if(!is_user_connected(iAttacker) || iAttacker == iVictim) return PLUGIN_CONTINUE return PLUGIN_CONTINUE }
public client_putinserver(id) { g_HasGoldenAWPWeapon[id] = false }
public client_disconnect(id) { g_HasGoldenAWPWeapon[id] = false } public fw_PlayerSpawn_Post(id) { // Remove Weapon if(get_pcvar_num(cvar_oneround) || !get_pcvar_num(cvar_enable)) { if(g_HasGoldenAWPWeapon[id]) { g_HasGoldenAWPWeapon[id] = false; ham_strip_weapon(id, "weapon_awp") } } }
public fw_PlayerKilled(victim, attacker, shouldgib) { if(!is_user_connected(attacker) || !is_user_connected(victim) || attacker == victim || !attacker) return HAM_IGNORED // Victim has a GoldenAWP if(g_HasGoldenAWPWeapon[victim]) { client_print(victim, print_center, "[Golden] Power") g_HasGoldenAWPWeapon[victim] = false } // Attacker has a GoldenAWP if(g_HasGoldenAWPWeapon[attacker] && g_CurrentWeapon[attacker] == CSW_AWP) { // Get Victim's Origin, Give AP cvar status and AP cvar amount static iOrigin[3] get_user_origin(victim, iOrigin) } return HAM_IGNORED }
stock ham_strip_weapon(id, weapon[]) { if(!equal(weapon,"weapon_",7)) return 0 new wId = get_weaponid(weapon) if(!wId) return 0 new wEnt while((wEnt = find_ent_by_class(wEnt, weapon)) && entity_get_edict(wEnt, EV_ENT_owner) != id) {} if(!wEnt) return 0 if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt); if(!ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)) return 0 ExecuteHamB(Ham_Item_Kill, wEnt) entity_set_int(id, EV_INT_weapons, entity_get_int(id, EV_INT_weapons) & ~(1<<wId)) return 1 }
public fw_TakeDamage(victim, inflictor, attacker, Float:damage) { if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_AWP && g_HasGoldenAWPWeapon[attacker] ) { SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) ) } } public zp_user_infected_post(id) { // Has a Golden Weapon if(g_HasGoldenAWPWeapon[id]) g_HasGoldenAWPWeapon[id] = false }
public zp_user_humanized_post(id) { // Has a Golden Weapon if(g_HasGoldenAWPWeapon[id]) g_HasGoldenAWPWeapon[id] = false; } stock ham_give_weapon(id, weapon[]) { if(!equal(weapon,"weapon_",7)) return 0 new wEnt = create_entity(weapon) if(!is_valid_ent(wEnt)) return 0 entity_set_int(wEnt, EV_INT_spawnflags, SF_NORESPAWN) DispatchSpawn(wEnt) if(!ExecuteHamB(Ham_AddPlayerItem,id,wEnt)) { if(is_valid_ent(wEnt)) entity_set_int(wEnt, EV_INT_flags, entity_get_int(wEnt, EV_INT_flags) | FL_KILLME) return 0 } ExecuteHamB(Ham_Item_AttachToPlayer,wEnt,id) return 1 }
public zp_extra_item_selected(id, item) { // GoldenAWP Weapon if (item == g_iItemID) { if(g_HasGoldenAWPWeapon[id] && user_has_weapon(id, CSW_AWP)) { zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + GoldenAWP_weapon_cost) return; } // Var's g_HasGoldenAWPWeapon[id] = true // AWP ham_give_weapon(id, "weapon_awp") cs_set_user_bpammo(id, CSW_AWP, 30) // Msgs client_print(id, print_center, "Power ON. Seek and Destroy") // Updating Models static iAwpID iAwpID = find_ent_by_owner(-1, "weapon_awp", id) ExecuteHamB(Ham_Item_Deploy, iAwpID) engclient_cmd(id, "weapon_awp") emessage_begin(MSG_ONE, g_msgCurWeapon, _, id) ewrite_byte(1) // active ewrite_byte(CSW_AWP) // weapon ewrite_byte(cs_get_weapon_ammo(iAwpID)) // clip emessage_end() } else { zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + GoldenAWP_weapon_cost) } } public make_tracer(id) { if (get_pcvar_num(cvar_goldbullets)) { new clip,ammo new wpnid = get_user_weapon(id,clip,ammo) new pteam[16] get_user_team(id, pteam, 15) if ((bullets[id] > clip) && (wpnid == CSW_AWP) && g_HasGoldenAWPWeapon[id]) { new vec1[3], vec2[3] get_user_origin(id, vec1, 1) // origin; your camera point. get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only) //BEAMENTPOINTS message_begin( MSG_BROADCAST,SVC_TEMPENTITY) write_byte (0) //TE_BEAMENTPOINTS 0 write_coord(vec1[0]) write_coord(vec1[1]) write_coord(vec1[2]) write_coord(vec2[0]) write_coord(vec2[1]) write_coord(vec2[2]) write_short( m_spriteTexture ) write_byte(1) // framestart write_byte(5) // framerate write_byte(2) // life write_byte(10) // width write_byte(0) // noise write_byte( 255 ) // r, g, b write_byte( 215 ) // r, g, b write_byte( 0 ) // r, g, b write_byte(200) // brightness write_byte(150) // speed message_end() } bullets[id] = clip } } public checkWeapon(id) { new plrClip, plrAmmo, plrWeap[32] new plrWeapId plrWeapId = get_user_weapon(id, plrClip , plrAmmo) if (plrWeapId == CSW_AWP && g_HasGoldenAWPWeapon[id]) { return PLUGIN_CONTINUE } if (plrClip == 0 && get_pcvar_num(cvar_uclip)) { // If the user is out of ammo.. get_weaponname(plrWeapId, plrWeap, 31) // Get the name of their weapon ham_give_weapon(id, plrWeap) engclient_cmd(id, plrWeap) engclient_cmd(id, plrWeap) engclient_cmd(id, plrWeap) } return PLUGIN_HANDLED } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1034\\ f0\\ fs16 \n\\ par } */
Solucion: No activar el zp extra GoldenAWP hasta nueva solucion.
Last edited by Shybrid; 04-10-2013 at 14:03.
|
|