Raised This Month: $32 Target: $400
 8% 

Gun Xp Unlock


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
AurimasJ
Junior Member
Join Date: Nov 2015
Old 03-02-2016 , 04:51   Gun Xp Unlock
Reply With Quote #1

Unlock code

PHP Code:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <xs>
#include <cstrike>
#include <gunxpmod>

#define ENG_NULLENT            -1
#define EV_INT_WEAPONKEY    EV_INT_impulse
#define skull5_WEAPONKEY         814
#define MAX_PLAYERS          32
#define IsValidUser(%1) (1 <= %1 <= g_MaxPlayers)

const USE_STOPPED 0
const OFFSET_ACTIVE_ITEM 373
const OFFSET_WEAPONOWNER 41
const OFFSET_LINUX 5
const OFFSET_LINUX_WEAPONS 4

#define WEAP_LINUX_XTRA_OFF        4
#define m_fKnown                    44
#define m_flNextPrimaryAttack         46
#define m_flTimeWeaponIdle            48
#define m_iClip                    51
#define m_fInReload                54
#define PLAYER_LINUX_XTRA_OFF    5
#define m_flNextAttack                83

#define skull5_RELOAD_TIME 2.0
#define skull5_SHOOT1         1
#define skull5_SHOOT2         2
#define skull5_RELOAD         3
#define skull5_DRAW         4

#define write_coord_f(%1)    engfunc(EngFunc_WriteCoord,%1)

new const Fire_Sounds[][] = { "weapons/skull5.wav" }

new 
skull5_V_MODEL[64] = "models/zm/v_skull5.mdl"
new skull5_P_MODEL[64] = "models/zm/p_skull5.mdl"
new skull5_W_MODEL[64] = "models/zm/w_skull5.mdl"

new const GUNSHOT_DECALS[] = { 4142434445 }

new 
cvar_dmg_skull5cvar_recoil_skull5g_itemid_skull5cvar_clip_skull5cvar_spd_skull5cvar_skull5_ammo
new g_MaxPlayersg_orig_event_skull5g_IsInPrimaryAttack
new Float:cl_pushangle[MAX_PLAYERS 1][3], m_iBlood[2]
new 
g_has_skull5[33], g_clip_ammo[33], g_skull5_TmpClip[33], oldweap[33], Float:g_flNextUseTime[33],  g_Reload[33
//new gmsgWeaponList

const PRIMARY_WEAPONS_BIT_SUM 
(
1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<
CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
new const 
WEAPONENTNAMES[][] = { """weapon_p228""""weapon_scout""weapon_hegrenade""weapon_xm1014""weapon_c4""weapon_mac10",
    
"weapon_aug""weapon_smokegrenade""weapon_elite""weapon_fiveseven""weapon_ump45""weapon_sg550",
    
"weapon_galil""weapon_famas""weapon_usp""weapon_glock18""weapon_awp""weapon_mp5navy""weapon_m249",
    
"weapon_m3""weapon_m4a1""weapon_tmp""weapon_g3sg1""weapon_flashbang""weapon_deagle""weapon_sg552",
"weapon_ak47""weapon_knife""weapon_p90" }

public 
plugin_init()

{
    
register_plugin("[ZP] Extra: SKULL5""1.0""Crock / =) (Poprogun4ik) / LARS-DAY[BR]EAKER")
    
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")
    
register_event("CurWeapon","CurrentWeapon","be","1=1")
    
//RegisterHam(Ham_Item_AddToPlayer, "weapon_sg550", "fw_skull5_AddToPlayer")
    
RegisterHam(Ham_Use"func_tank""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankmortar""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankrocket""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tanklaser""fw_UseStationary_Post"1)
    for (new 
1sizeof WEAPONENTNAMESi++)
    if (
WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_DeployWEAPONENTNAMES[i], "fw_Item_Deploy_Post"1)
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_sg550""fw_skull5_PrimaryAttack")
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_sg550""fw_skull5_PrimaryAttack_Post"1)
    
RegisterHam(Ham_Item_PostFrame"weapon_sg550""skull5_ItemPostFrame")
    
RegisterHam(Ham_Weapon_Reload"weapon_sg550""skull5_Reload")
    
RegisterHam(Ham_Weapon_Reload"weapon_sg550""skull5_Reload_Post"1)
    
RegisterHam(Ham_Item_Holster"weapon_sg550""skull5_Holster_Post"1)
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
register_forward(FM_SetModel"fw_SetModel")
    
register_forward(FM_UpdateClientData"fw_UpdateClientData_Post"1)
    
register_forward(FM_PlaybackEvent"fwPlaybackEvent")
    
    
RegisterHam(Ham_TraceAttack"worldspawn""fw_TraceAttack"1)
    
RegisterHam(Ham_TraceAttack"func_breakable""fw_TraceAttack"1)
    
RegisterHam(Ham_TraceAttack"func_wall""fw_TraceAttack"1)
    
RegisterHam(Ham_TraceAttack"func_door""fw_TraceAttack"1)
    
RegisterHam(Ham_TraceAttack"func_door_rotating""fw_TraceAttack"1)
    
RegisterHam(Ham_TraceAttack"func_plat""fw_TraceAttack"1)
    
RegisterHam(Ham_TraceAttack"func_rotating""fw_TraceAttack"1)
    
    
cvar_dmg_skull5 register_cvar("gxm_skull5_dmg""1.31")
    
cvar_recoil_skull5 register_cvar("gxm_skull5_recoil""0.84")
    
cvar_clip_skull5 register_cvar("gxm_skull5_clip""24")
    
cvar_spd_skull5 register_cvar("gxm_skull5_spd""1.03")
    
cvar_skull5_ammo register_cvar("gxm_skull5_ammo""240")
    
    
//g_itemid_skull5 = zp_register_extra_item("[Sniper Rifle] \rSkull5", 12, ZP_TEAM_HUMAN)
    
    
register_gxm_item("Skull V (Sg550)""+Power +Zoom"1600023GUN_SECTION_BALROGGUN_FIRST_ACCESS_IDCSW_SG550);
    
g_MaxPlayers get_maxplayers()
    
//gmsgWeaponList = get_user_msgid("WeaponList")
}

public 
plugin_precache()
{
    
precache_model(skull5_V_MODEL)
    
precache_model(skull5_P_MODEL)
    
precache_model(skull5_W_MODEL)
    for(new 
0sizeof Fire_Soundsi++)
    
precache_sound(Fire_Sounds[i])    
    
precache_sound("weapons/skull5_clipin.wav")
    
precache_sound("weapons/skull5_clipout.wav")
    
precache_sound("weapons/skull5_boltpull.wav")
    
precache_sound("weapons/skull5_draw.wav")
    
m_iBlood[0] = precache_model("sprites/blood.spr")
    
m_iBlood[1] = precache_model("sprites/bloodspray.spr")
    
precache_generic("sprites/weapon_skull5.txt")
    
precache_generic("sprites/zm/640hud57.spr")
    
precache_generic("sprites/zm/640hud7.spr")
    
    
register_clcmd("weapon_skull5""weapon_hook")    
    
    
register_forward(FM_PrecacheEvent"fwPrecacheEvent_Post"1)
}

public 
weapon_hook(id)
{
    
engclient_cmd(id"weapon_sg550")
    return 
PLUGIN_HANDLED
}

public 
fw_TraceAttack(iEntiAttackerFloat:flDamageFloat:fDir[3], ptriDamageType)
{
    if(!
is_user_alive(iAttacker))
    return
    
    new 
g_currentweapon get_user_weapon(iAttacker)
    
    if(
g_currentweapon != CSW_SG550) return
    
    if(!
g_has_skull5[iAttacker]) return
    
    static 
Float:flEnd[3]
    
get_tr2(ptrTR_vecEndPosflEnd)
    
    if(
iEnt)
    {
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_DECAL)
        
write_coord_f(flEnd[0])
        
write_coord_f(flEnd[1])
        
write_coord_f(flEnd[2])
        
write_byte(GUNSHOT_DECALS[random_num (0sizeof GUNSHOT_DECALS -1)])
        
write_short(iEnt)
        
message_end()
    }
    else
    {
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_WORLDDECAL)
        
write_coord_f(flEnd[0])
        
write_coord_f(flEnd[1])
        
write_coord_f(flEnd[2])
        
write_byte(GUNSHOT_DECALS[random_num (0sizeof GUNSHOT_DECALS -1)])
        
message_end()
    }
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_GUNSHOTDECAL)
    
write_coord_f(flEnd[0])
    
write_coord_f(flEnd[1])
    
write_coord_f(flEnd[2])
    
write_short(iAttacker)
    
write_byte(GUNSHOT_DECALS[random_num (0sizeof GUNSHOT_DECALS -1)])
    
message_end()
}

/*public gxm_item_enabled(id)
{
    g_has_skull5[id] = true
}
public zp_user_humanized_post(id)
{
    g_has_skull5[id] = true
}
*/
public plugin_natives ()
{
    
register_native("give_weapon_skull5""native_give_weapon_add"1)
}
public 
native_give_weapon_add(id)
{
    
give_skull5(id)
}

public 
fwPrecacheEvent_Post(type, const name[])
{
    if (
equal("events/sg550.sc"name))
        {
        
g_orig_event_skull5 get_orig_retval()
        return 
FMRES_HANDLED
    
}
    return 
FMRES_IGNORED
}

public 
client_connect(id)
{
    
g_has_skull5[id] = false
}

public 
client_disconnected(id)
{
    
g_has_skull5[id] = false
}

/*public zp_user_infected_post(id)
{
    if (zp_get_user_zombie(id))
        {
        g_has_skull5[id] = false
    }
}*/

public fw_SetModel(entitymodel[])
{
    if(!
is_valid_ent(entity))
    return 
FMRES_IGNORED
    
    
static szClassName[33]
    
entity_get_string(entityEV_SZ_classnameszClassNamecharsmax(szClassName))
    
    if(!
equal(szClassName"weaponbox"))
    return 
FMRES_IGNORED
    
    
static iOwner
    
    iOwner 
entity_get_edict(entityEV_ENT_owner)
    
    if(
equal(model"models/w_sg550.mdl"))
    {
        static 
iStoredAugID
        
        iStoredAugID 
find_ent_by_owner(ENG_NULLENT"weapon_sg550"entity)
        
        if(!
is_valid_ent(iStoredAugID))
        return 
FMRES_IGNORED
        
        
if(g_has_skull5[iOwner])
        {
            
entity_set_int(iStoredAugIDEV_INT_WEAPONKEYskull5_WEAPONKEY)
            
            
g_has_skull5[iOwner] = false
            
            entity_set_model
(entityskull5_W_MODEL)
            
            return 
FMRES_SUPERCEDE
        
}
    }
    return 
FMRES_IGNORED
}

public 
gxm_item_enabled(id)
{
    
g_has_skull5[id] = true
}

public 
give_skull5(id)
{
    
drop_weapons(id1)
    new 
iWep2 give_item(id,"weapon_sg550")
    if( 
iWep2 )
    {
        
cs_set_weapon_ammo(iWep2get_pcvar_num(cvar_clip_skull5))
        
cs_set_user_bpammo (idCSW_SG550get_pcvar_num(cvar_skull5_ammo))    
        
UTIL_PlayWeaponAnimation(idskull5_DRAW)
        
set_pdata_float(idm_flNextAttack1.0PLAYER_LINUX_XTRA_OFF)
        
        
/*message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
        write_string("weapon_skull5")
        write_byte(4)
        write_byte(90)
        write_byte(-1)
        write_byte(-1)
        write_byte(0)
        write_byte(16)
        write_byte(CSW_SG550)
        message_end()*/
    
}
    
g_has_skull5[id] = true
}

public 
gxm_extra_item_selected(iditemid)
{
    if(
itemid != g_itemid_skull5)
    return
    
    
give_skull5(id)
}

/*public fw_skull5_AddToPlayer(skull5, id)
{
    if(!is_valid_ent(skull5) || !is_user_connected(id))
    return HAM_IGNORED
    
    if(entity_get_int(skull5, EV_INT_WEAPONKEY) == skull5_WEAPONKEY)
    {
        g_has_skull5[id] = true
        
        entity_set_int(skull5, EV_INT_WEAPONKEY, 0)
        
        message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
        write_string("weapon_skull5")
        write_byte(4)
        write_byte(90)
        write_byte(-1)
        write_byte(-1)
        write_byte(0)
        write_byte(16)
        write_byte(CSW_SG550)
        message_end()
        
        return HAM_HANDLED
    }
    else
    {
        message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
        write_string("weapon_sg550")
        write_byte(4)
        write_byte(90)
        write_byte(-1)
        write_byte(-1)
        write_byte(0)
        write_byte(16)
        write_byte(CSW_SG550)
        message_end()
    }
    return HAM_IGNORED
}
*/
public fw_UseStationary_Post(entitycalleractivatoruse_type)
{
    if (
use_type == USE_STOPPED && is_user_connected(caller))
        
replace_weapon_models(callerget_user_weapon(caller))
}

public 
fw_Item_Deploy_Post(weapon_ent)
{
    static 
owner
    owner 
fm_cs_get_weapon_ent_owner(weapon_ent)
    
    static 
weaponid
    weaponid 
cs_get_weapon_id(weapon_ent)
    
    
replace_weapon_models(ownerweaponid)
}

public 
CurrentWeapon(id)
{
    
replace_weapon_models(idread_data(2))
    
    if(
read_data(2) != CSW_SG550 || !g_has_skull5[id])
    return
    
    static 
Float:iSpeed
    
if(g_has_skull5[id])
    
iSpeed get_pcvar_float(cvar_spd_skull5)
    
    static 
weapon[32],Ent
    get_weaponname
(read_data(2),weapon,31)
    
Ent find_ent_by_owner(-1,weapon,id)
    if(
Ent)
    {
        static 
Float:Delay
        Delay 
get_pdata_floatEnt464) * iSpeed
        
if (Delay 0.0)
            {
            
set_pdata_float(Ent46Delay4)
        }
    }
}

replace_weapon_models(idweaponid)
{
    switch (
weaponid)
    {
        case 
CSW_SG550:
        {
            
            if(
g_has_skull5[id])
            {
                
set_pev(idpev_viewmodel2skull5_V_MODEL)
                
set_pev(idpev_weaponmodel2skull5_P_MODEL)
                if(
oldweap[id] != CSW_SG550
                {
                    
UTIL_PlayWeaponAnimation(idskull5_DRAW)
                    
set_pdata_float(idm_flNextAttack1.0PLAYER_LINUX_XTRA_OFF)
                    
                    
/*message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
                    write_string("weapon_skull5")
                    write_byte(4)
                    write_byte(90)
                    write_byte(-1)
                    write_byte(-1)
                    write_byte(0)
                    write_byte(16)
                    write_byte(CSW_SG550)
                    message_end()*/
                
}
            }
        }
    }
    
oldweap[id] = weaponid
}

public 
fw_UpdateClientData_Post(PlayerSendWeaponsCD_Handle)
{
    if(!
is_user_alive(Player) || (get_user_weapon(Player) != CSW_SG550 || !g_has_skull5[Player]))
    return 
FMRES_IGNORED
    
    set_cd
(CD_HandleCD_flNextAttackhalflife_time () + 0.001)
    return 
FMRES_HANDLED
}

public 
fw_skull5_PrimaryAttack(Weapon)
{
    new 
Player get_pdata_cbase(Weapon414)
    
    if (!
g_has_skull5[Player])
        return
    
    
g_IsInPrimaryAttack 1
    pev
(Player,pev_punchangle,cl_pushangle[Player])
    
    
g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
}

public 
fwPlaybackEvent(flagsinvokereventidFloat:delayFloat:origin[3], Float:angles[3], Float:fparam1Float:fparam2iParam1iParam2bParam1bParam2)
{
    if ((
eventid != g_orig_event_skull5) || !g_IsInPrimaryAttack)
        return 
FMRES_IGNORED
    
if (!(<= invoker <= g_MaxPlayers))
        return 
FMRES_IGNORED
    
    playback_event
(flags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)
    return 
FMRES_SUPERCEDE
}

public 
fw_skull5_PrimaryAttack_Post(Weapon)
{
    
g_IsInPrimaryAttack 0
    
new Player get_pdata_cbase(Weapon414)
    
    new 
szClipszAmmo
    get_user_weapon
(PlayerszClipszAmmo)
    
    if(!
is_user_alive(Player))
    return
    
    if(
g_has_skull5[Player])
    {
        if (!
g_clip_ammo[Player])
            return
        
        new 
Float:push[3]
        
pev(Player,pev_punchangle,push)
        
xs_vec_sub(push,cl_pushangle[Player],push)
        
        
xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_skull5),push)
        
xs_vec_add(push,cl_pushangle[Player],push)
        
set_pev(Player,pev_punchangle,push)
        
        
emit_sound(PlayerCHAN_WEAPONFire_Sounds[0], VOL_NORMATTN_NORM0PITCH_NORM)
        
UTIL_PlayWeaponAnimation(Playerrandom_num(skull5_SHOOT1skull5_SHOOT2))
    }
}

public 
fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if (
victim != attacker && is_user_connected(attacker))
        {
        if(
get_user_weapon(attacker) == CSW_SG550)
        {
            if(
g_has_skull5[attacker])
            
SetHamParamFloat(4damage get_pcvar_float(cvar_dmg_skull5))
        }
    }
}

public 
message_DeathMsg(msg_idmsg_destid)
{
    static 
szTruncatedWeapon[33], iAttackeriVictim
    
    get_msg_arg_string
(4szTruncatedWeaponcharsmax(szTruncatedWeapon))
    
    
iAttacker get_msg_arg_int(1)
    
iVictim get_msg_arg_int(2)
    
    if(!
is_user_connected(iAttacker) || iAttacker == iVictim)
    return 
PLUGIN_CONTINUE
    
    
if(equal(szTruncatedWeapon"sg550") && get_user_weapon(iAttacker) == CSW_SG550)
    {
        if(
g_has_skull5[iAttacker])
        
set_msg_arg_string(4"sg550")
    }
    return 
PLUGIN_CONTINUE
}

stock fm_cs_get_current_weapon_ent(id)
{
    return 
get_pdata_cbase(idOFFSET_ACTIVE_ITEMOFFSET_LINUX)
}

stock fm_cs_get_weapon_ent_owner(ent)
{
    return 
get_pdata_cbase(entOFFSET_WEAPONOWNEROFFSET_LINUX_WEAPONS)
}

stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
{
    
set_pev(Playerpev_weaponanimSequence)
    
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, .player Player)
    
write_byte(Sequence)
    
write_byte(pev(Playerpev_body))
    
message_end()
}

public 
skull5_ItemPostFrame(weapon_entity
{
    new 
id pev(weapon_entitypev_owner)
    if (!
is_user_connected(id))
        return 
HAM_IGNORED
    
    
if (!g_has_skull5[id])
        return 
HAM_IGNORED
    
    
static iClipExtra
    
    iClipExtra 
get_pcvar_num(cvar_clip_skull5)
    new 
Float:flNextAttack get_pdata_float(idm_flNextAttackPLAYER_LINUX_XTRA_OFF)
    
    new 
iBpAmmo cs_get_user_bpammo(idCSW_SG550)
    new 
iClip get_pdata_int(weapon_entitym_iClipWEAP_LINUX_XTRA_OFF)
    
    new 
fInReload get_pdata_int(weapon_entitym_fInReloadWEAP_LINUX_XTRA_OFF
    
    if( 
fInReload && flNextAttack <= 0.0 )
    {
        new 
min(iClipExtra iClipiBpAmmo)
        
        
set_pdata_int(weapon_entitym_iClipiClip jWEAP_LINUX_XTRA_OFF)
        
cs_set_user_bpammo(idCSW_SG550iBpAmmo-j)
        
        
set_pdata_int(weapon_entitym_fInReload0WEAP_LINUX_XTRA_OFF)
        
fInReload 0
        g_Reload
[id] = 0
    
}
    return 
HAM_IGNORED
}

public 
skull5_Reload(weapon_entity
{
    new 
id pev(weapon_entitypev_owner)
    if (!
is_user_connected(id))
        return 
HAM_IGNORED
    
    
if (!g_has_skull5[id])
        return 
HAM_IGNORED
    
    
static iClipExtra
    
    
if(g_has_skull5[id])
    
iClipExtra get_pcvar_num(cvar_clip_skull5)
    
    
g_skull5_TmpClip[id] = -1
    
    
new iBpAmmo cs_get_user_bpammo(idCSW_SG550)
    new 
iClip get_pdata_int(weapon_entitym_iClipWEAP_LINUX_XTRA_OFF)
    
    if (
iBpAmmo <= 0)
        return 
HAM_SUPERCEDE
    
    
if (iClip >= iClipExtra)
        return 
HAM_SUPERCEDE
    
    g_skull5_TmpClip
[id] = iClip
    
    
return HAM_IGNORED
}

public 
skull5_Reload_Post(weapon_entity
{
    new 
id pev(weapon_entitypev_owner)
    if (!
is_user_connected(id))
        return 
HAM_IGNORED
    
    
if (!g_has_skull5[id])
        return 
HAM_IGNORED
    
    
if (g_skull5_TmpClip[id] == -1)
        return 
HAM_IGNORED
    
    set_pdata_int
(weapon_entitym_iClipg_skull5_TmpClip[id], WEAP_LINUX_XTRA_OFF)
    
    
set_pdata_float(weapon_entitym_flTimeWeaponIdleskull5_RELOAD_TIMEWEAP_LINUX_XTRA_OFF)
    
    
set_pdata_float(idm_flNextAttackskull5_RELOAD_TIMEPLAYER_LINUX_XTRA_OFF)
    
    
set_pdata_int(weapon_entitym_fInReload1WEAP_LINUX_XTRA_OFF)
    
    
UTIL_PlayWeaponAnimation(idskull5_RELOAD)
    
    
g_Reload[id] = 1
    
    
return HAM_IGNORED
}

public 
skull5_Holster_Post(weapon_entity)
{
    static 
Player
    Player 
get_pdata_cbase(weapon_entityOFFSET_WEAPONOWNEROFFSET_LINUX_WEAPONS)
    
    
g_flNextUseTime[Player] = 0.0
    
}

stock drop_weapons(iddropwhat)
{
    static 
weapons[32], numiweaponid
    num 
0
    get_user_weapons
(idweaponsnum)
    
    for (
0numi++)
    {
        
weaponid weapons[i]
        
        if (
dropwhat == && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
            {
            static 
wname[32]
            
get_weaponname(weaponidwnamesizeof wname 1)
            
engclient_cmd(id"drop"wname)
        }
    }



Gunxpmod.inc

PHP Code:
stock register_gxm_item(item_name[], item_desc[], item_costitem_levelitem_sectionitem_accessitem_type)
{
    new 
item_index find_itemindex()
    new 
itemplugin find_itemplugin()
    new 
itemregfunc get_func_id("register_item_gxm"itemplugin)

    new 
temp callfunc_begin_i(itemregfuncitemplugin)
    if(
temp == -|| temp == -2)
    {
        if(
temp == -2
        {
            
log_amx("You have to many items, and need to increase the MAX_UNLOCKS define!")
        } 
        else 
        {
            
log_amx("A unkown error has happend, make sure the Upgrades plugin is loaded!")
        }
        return 
PLUGIN_HANDLED;        
    }

    
callfunc_push_int(item_index)
    
callfunc_push_str(item_name)
    
callfunc_push_str(item_desc)
    
callfunc_push_int(item_cost)
    
callfunc_push_int(item_level)
    
callfunc_push_int(item_section)
    
callfunc_push_int(item_access)
    
callfunc_push_int(item_type)
    
    
temp callfunc_end()
    if(
temp == -|| temp == -2
    {
        return 
PLUGIN_HANDLED;
    }
    return 
temp;

Attached Thumbnails
Click image for larger version

Name:	de_dust0002.png
Views:	245
Size:	8.6 KB
ID:	152411  
AurimasJ is offline
santy78
Junior Member
Join Date: Nov 2016
Location: Argentina
Old 02-15-2017 , 18:57   Re: Gun Xp Unlock
Reply With Quote #2

Test returned with this file ...
Attached Files
File Type: inc gunxpmod.inc (4.0 KB, 163 views)
santy78 is offline
XxScripteRxX
Member
Join Date: Aug 2019
Old 11-09-2019 , 04:26   Re: Gun Xp Unlock
Reply With Quote #3

ok good this inc gunxpmod_Shop.sma This are good ?

php code:
#include <amxmodx>
#include <gunxpmod>

#define PLUGIN "Gun Xp Mod Shop"
#define AUTHOR "DVBufu"
#define VERSION "1.4"

#define MAX_UNLOCKS 25
#define MAX_UNLOCKS_NAME_SIZE 64
#define MAX_UNLOCKS_DESC_SIZE 128

new g_menuPosition[33], gSelected[33];

enum _:iUnlocks
{
UL_Knife,
UL_Pistol,
UL_Rifle,
UL_Grenade,
UL_Item
};

//all
new g_numberofitems[iUnlocks];
new g_itemindex[iUnlocks][MAX_UNLOCKS+1];
new g_itemcost[iUnlocks][MAX_UNLOCKS+1];
new g_itemlevel[iUnlocks][MAX_UNLOCKS+1];
new g_itemaccess[iUnlocks][MAX_UNLOCKS+1];
new g_itemname[iUnlocks][MAX_UNLOCKS+1][MAX_UNLOCKS_NAME_SIZE+1];
new g_itemdesc[iUnlocks][MAX_UNLOCKS+1][MAX_UNLOCKS_DESC_SIZE+1];
new g_itemwpn[iUnlocks][MAX_UNLOCKS+1];
new bool:g_PlayerItem[33][iUnlocks][MAX_UNLOCKS+1];

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);

register_dictionary("gunxpmod.txt");

register_clcmd("say /unlocks", "menus")
register_clcmd("say unlocks", "menus")
register_clcmd("say /ul", "menus")
register_clcmd("say ul", "menus")

register_menucmd(register_menuid("Unlocks Shop"), 1023, "action_item_upgrades");
}
public motd(id) {
show_motd(id, "http://master.cs-golden.lt/paslaugos/ordergame/vip_order_game.php?get=gold", "VIP Buy");
return PLUGIN_HANDLED;
}

public client_connect(id)
{
static i, j
for(i = 0; i < iUnlocks; ++i)
for(j = 0; j <= MAX_UNLOCKS; ++j)
g_PlayerItem[id][i][j] = false;
}

public menus(id)
{
new menu = menu_create("Tienda de Mejoras", "upgrades_menu");
new call = menu_makecallback("Call_Back");
gSelected[id] = 0;
new szMsg[256];

format(szMsg, 255, "Cuchillos (%s%d\w/\r%d\w)", (GetItemCount(g_PlayerItem[id][UL_Knife], g_numberofitems[UL_Knife]) == g_numberofitems[UL_Knife]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Knife], g_numberofitems[UL_Knife]), g_numberofitems[UL_Knife]);
menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Knife] ? -1 : call);

format(szMsg, 255, "Pistolas (%s%d\w/\r%d\w)", (GetItemCount(g_PlayerItem[id][UL_Pistol], g_numberofitems[UL_Pistol]) == g_numberofitems[UL_Pistol]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Pistol], g_numberofitems[UL_Pistol]), g_numberofitems[UL_Pistol]);
menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Pistol] ? -1 : call);

format(szMsg, 255, "Rifles (%s%d\w/\r%d\w)", (GetItemCount(g_PlayerItem[id][UL_Rifle], g_numberofitems[UL_Rifle]) == g_numberofitems[UL_Rifle]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Rifle], g_numberofitems[UL_Rifle]), g_numberofitems[UL_Rifle]);
menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Rifle] ? -1 : call);

format(szMsg, 255, "Granadas (%s%d\w/\r%d\w)", (GetItemCount(g_PlayerItem[id][UL_Grenade], g_numberofitems[UL_Grenade]) == g_numberofitems[UL_Grenade]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Grenade], g_numberofitems[UL_Grenade]), g_numberofitems[UL_Grenade]);
menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Grenade] ? -1 : call);

format(szMsg, 255, "Items (%s%d\w/\r%d\w)", (GetItemCount(g_PlayerItem[id][UL_Item], g_numberofitems[UL_Item]) == g_numberofitems[UL_Item]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Item], g_numberofitems[UL_Item]), g_numberofitems[UL_Item]);
menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Item] ? -1 : call);

menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);

menu_display(id, menu, 0);

return PLUGIN_HANDLED;
}

public Call_Back(id, menu, item)
return ITEM_DISABLED;

public upgrades_menu(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}

gSelected[id] = item;
g_menuPosition[id] = 0;
display_item_upgrades(id, 0, item);

menu_destroy(menu);
return PLUGIN_HANDLED;
}

public plugin_natives()
{
register_native("register_gxm_item", "register_unlock")
register_native("register_item_gxm", "register_unlock")
}

public register_unlock(plugin, params)
{
static item_section
item_section = get_param(5)-1

g_numberofitems[item_section]++;
g_itemindex[item_section][g_numberofitems[item_section]] = plugin;
get_string(1, g_itemname[item_section][g_numberofitems[item_section]], MAX_UNLOCKS_NAME_SIZE)
get_string(2, g_itemdesc[item_section][g_numberofitems[item_section]], MAX_UNLOCKS_DESC_SIZE)
g_itemcost[item_section][g_numberofitems[item_section]] = get_param(3);
g_itemlevel[item_section][g_numberofitems[item_section]] = get_param(4);
g_itemaccess[item_section][g_numberofitems[item_section]] = get_param(6) ? get_param(6) : 0;
g_itemwpn[item_section][g_numberofitems[item_section]] = get_param(7);
}

//ALL
public display_item_upgrades(id, pos, selection)
{
if(!is_user_alive(id))
return;

static menuBody[510], len;
len = 0;
gSelected[id] = selection;

if(pos < 0)
return;

new start = pos * 8
if(start >= g_numberofitems[selection])
start = pos = g_menuPosition[id];

len += formatex(menuBody[len], sizeof menuBody - 1 - len, "%L", LANG_SERVER, "TITLE_MENU_SHOP", get_user_xp(id), get_user_max_level(id))

new end = start + 8
new keys = MENU_KEY_0

if(end > g_numberofitems[selection])
end = g_numberofitems[selection];

new b = 0
for(new a = start; a < end; ++a)
{
new i = a + 1
new money, level

money = get_user_xp(id)
level = get_user_level(id)

if( g_PlayerItem[id][selection][i] )
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_BOUGHT", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])

else if(g_itemaccess[selection][i] == !(get_user_flags(id)))
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_ACCESS1", ++b, g_itemname[selection][i]);

else if(g_itemaccess[selection][i] == !(get_user_flags(id)))
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_ACCESS2", ++b, g_itemname[selection][i]);

else if(g_itemaccess[selection][i] == ! (get_user_flags(id)))
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_ACCESS3", ++b, g_itemname[selection][i]);

else if(level < g_itemlevel[selection][i])
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])

else if(PatrArTuri(id, g_itemwpn[selection][i]))
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_NO_MORE", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])

else if( money < g_itemcost[selection][i] )
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])
else
{
keys |= (1<<b)

switch(g_itemaccess[selection][i])
{
case 1:
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP2", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])

case 2:
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP2", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])

case 3:
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP2", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])

default:
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])
}
}
}

if(end != g_numberofitems[selection])
{
len += formatex(menuBody[len], sizeof menuBody - 1 - len, "^n\r9. \w%L\r^n0. \w%L", id, "NEXT_MENU", id, pos ? "BACK_MENU" : "EXIT_MENU")
keys |= MENU_KEY_9
}
else
{
len += formatex(menuBody[len], sizeof menuBody - 1 - len, "^n\r0. \w%L", id, pos ? "BACK_MENU" : "EXIT_MENU")
}

show_menu(id, keys, menuBody, -1, "Unlocks Shop")
}

public action_item_upgrades(id, key)
{
switch(key)
{
case 8: display_item_upgrades(id, ++g_menuPosition[id], gSelected[id]);
case 9: display_item_upgrades(id, --g_menuPosition[id], gSelected[id]);
default:
{
if(!is_user_alive(id))
return PLUGIN_HANDLED;

++key
new money
new plugin_id = g_itemindex[gSelected[id]][g_menuPosition[id] * 8 + key]
new item_id = g_menuPosition[id] * 8 + key
new func = get_func_id("gxm_item_enabled", plugin_id)

money = get_user_xp(id)
new cost = g_itemcost[gSelected[id]][item_id];

if(money >= cost)
{
callfunc_begin_i(func, plugin_id)
callfunc_push_int(id)
callfunc_end()

g_PlayerItem[id][gSelected[id]][item_id] = true

new overall = money - cost
set_user_xp(id, overall)

client_printcolor(1, "/yItem Mejorado, Item: /g%s.", g_itemname[gSelected[id]][item_id])
client_printcolor(1, "/yDescripcion: /g%s.", g_itemdesc[gSelected[id]][item_id])
display_item_upgrades(id, g_menuPosition[id], gSelected[id]);
}
}
}
return PLUGIN_HANDLED;
}

stock client_printcollor ( const id, const input[], any:... )
{
new iCount = 1, iPlayers[32]

new sNewMsg[191]
vformat( sNewMsg, charsmax ( sNewMsg ), input, 3 )
//format ( sNewMsg, charsmax ( sNewMsg ), "^4[x^1 %s", sNewMsg )

replace_all ( sNewMsg, charsmax ( sNewMsg ), "/g", "^4") // green txt
replace_all ( sNewMsg, charsmax ( sNewMsg ), "/y", "^1") // orange txt
replace_all ( sNewMsg, charsmax ( sNewMsg ), "/t", "^3") // team txt

if ( id )
iPlayers[0] = id
else
get_players ( iPlayers, iCount, "ch" )

for ( new i; i < iCount; i++ )
{
if ( is_user_connected ( iPlayers[i] ) )
{
message_begin ( MSG_ONE_UNRELIABLE, get_user_msgid ( "SayText" ), _, iPlayers[i] )
write_byte ( iPlayers[i])
write_string ( sNewMsg)
message_end ()
}
}
}

stock boolatrArTuri(id, wpn)
{
static i, j
for(i = 0; i < iUnlocks; ++i)
{
for(j = 0; j <= MAX_UNLOCKS; ++j)
{
if(g_PlayerItem[id][i][j])
{
if(g_itemwpn[i][j] == wpn)
return true
}
}
}

return false
}

GetItemCount(array[], size)
{
new count = 0;

for(new i = 1; i <= size; i++)
if(array[i])
count++;

return count;
}
XxScripteRxX is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 11-09-2019 , 07:20   Re: Gun Xp Unlock
Reply With Quote #4

@XxScripteRxX - don't post in 3 year old threads, don't post code without putting it in proper [code] or [php] tags, don't ask stupid questions.
__________________
OciXCrom is offline
Send a message via Skype™ to OciXCrom
XxScripteRxX
Member
Join Date: Aug 2019
Old 11-14-2019 , 02:02   Re: Gun Xp Unlock
Reply With Quote #5

im sorry pls help how to unlock weapon with this gunxpmod_shop im sorry gyus relly

Quote:
#include <amxmodx>
#include <gunxpmod>

#define PLUGIN "Gun Xp Mod Shop"
#define AUTHOR "DVBufu"
#define VERSION "1.4"

#define MAX_UNLOCKS 25
#define MAX_UNLOCKS_NAME_SIZE 64
#define MAX_UNLOCKS_DESC_SIZE 128

new g_menuPosition[33], gSelected[33];

enum _:iUnlocks
{
UL_Knife,
UL_Pistol,
UL_Rifle,
UL_Grenade,
UL_Item
};

//all
new g_numberofitems[iUnlocks];
new g_itemindex[iUnlocks][MAX_UNLOCKS+1];
new g_itemcost[iUnlocks][MAX_UNLOCKS+1];
new g_itemlevel[iUnlocks][MAX_UNLOCKS+1];
new g_itemaccess[iUnlocks][MAX_UNLOCKS+1];
new g_itemname[iUnlocks][MAX_UNLOCKS+1][MAX_UNLOCKS_NAME_SIZE+1];
new g_itemdesc[iUnlocks][MAX_UNLOCKS+1][MAX_UNLOCKS_DESC_SIZE+1];
new g_itemwpn[iUnlocks][MAX_UNLOCKS+1];
new bool:g_PlayerItem[33][iUnlocks][MAX_UNLOCKS+1];

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);

register_dictionary("gunxpmod.txt");

register_clcmd("say /unlocks", "menus")
register_clcmd("say unlocks", "menus")
register_clcmd("say /ul", "menus")
register_clcmd("say ul", "menus")

register_menucmd(register_menuid("Unlocks Shop"), 1023, "action_item_upgrades");
}
public motd(id) {
show_motd(id, "http://master.cs-golden.lt/paslaugos/ordergame/vip_order_game.php?get=gold", "VIP Buy");
return PLUGIN_HANDLED;
}

public client_connect(id)
{
static i, j
for(i = 0; i < iUnlocks; ++i)
for(j = 0; j <= MAX_UNLOCKS; ++j)
g_PlayerItem[id][i][j] = false;
}

public menus(id)
{
new menu = menu_create("Tienda de Mejoras", "upgrades_menu");
new call = menu_makecallback("Call_Back");
gSelected[id] = 0;
new szMsg[256];

format(szMsg, 255, "Cuchillos (%s%d\w/\r%d\w)", (GetItemCount(g_PlayerItem[id][UL_Knife], g_numberofitems[UL_Knife]) == g_numberofitems[UL_Knife]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Knife], g_numberofitems[UL_Knife]), g_numberofitems[UL_Knife]);
menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Knife] ? -1 : call);

format(szMsg, 255, "Pistolas (%s%d\w/\r%d\w)", (GetItemCount(g_PlayerItem[id][UL_Pistol], g_numberofitems[UL_Pistol]) == g_numberofitems[UL_Pistol]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Pistol], g_numberofitems[UL_Pistol]), g_numberofitems[UL_Pistol]);
menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Pistol] ? -1 : call);

format(szMsg, 255, "Rifles (%s%d\w/\r%d\w)", (GetItemCount(g_PlayerItem[id][UL_Rifle], g_numberofitems[UL_Rifle]) == g_numberofitems[UL_Rifle]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Rifle], g_numberofitems[UL_Rifle]), g_numberofitems[UL_Rifle]);
menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Rifle] ? -1 : call);

format(szMsg, 255, "Granadas (%s%d\w/\r%d\w)", (GetItemCount(g_PlayerItem[id][UL_Grenade], g_numberofitems[UL_Grenade]) == g_numberofitems[UL_Grenade]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Grenade], g_numberofitems[UL_Grenade]), g_numberofitems[UL_Grenade]);
menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Grenade] ? -1 : call);

format(szMsg, 255, "Items (%s%d\w/\r%d\w)", (GetItemCount(g_PlayerItem[id][UL_Item], g_numberofitems[UL_Item]) == g_numberofitems[UL_Item]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Item], g_numberofitems[UL_Item]), g_numberofitems[UL_Item]);
menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Item] ? -1 : call);

menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);

menu_display(id, menu, 0);

return PLUGIN_HANDLED;
}

public Call_Back(id, menu, item)
return ITEM_DISABLED;

public upgrades_menu(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}

gSelected[id] = item;
g_menuPosition[id] = 0;
display_item_upgrades(id, 0, item);

menu_destroy(menu);
return PLUGIN_HANDLED;
}

public plugin_natives()
{
register_native("register_gxm_item", "register_unlock")
register_native("register_item_gxm", "register_unlock")
}

public register_unlock(plugin, params)
{
static item_section
item_section = get_param(5)-1

g_numberofitems[item_section]++;
g_itemindex[item_section][g_numberofitems[item_section]] = plugin;
get_string(1, g_itemname[item_section][g_numberofitems[item_section]], MAX_UNLOCKS_NAME_SIZE)
get_string(2, g_itemdesc[item_section][g_numberofitems[item_section]], MAX_UNLOCKS_DESC_SIZE)
g_itemcost[item_section][g_numberofitems[item_section]] = get_param(3);
g_itemlevel[item_section][g_numberofitems[item_section]] = get_param(4);
g_itemaccess[item_section][g_numberofitems[item_section]] = get_param(6) ? get_param(6) : 0;
g_itemwpn[item_section][g_numberofitems[item_section]] = get_param(7);
}

//ALL
public display_item_upgrades(id, pos, selection)
{
if(!is_user_alive(id))
return;

static menuBody[510], len;
len = 0;
gSelected[id] = selection;

if(pos < 0)
return;

new start = pos * 8
if(start >= g_numberofitems[selection])
start = pos = g_menuPosition[id];

len += formatex(menuBody[len], sizeof menuBody - 1 - len, "%L", LANG_SERVER, "TITLE_MENU_SHOP", get_user_xp(id), get_user_max_level(id))

new end = start + 8
new keys = MENU_KEY_0

if(end > g_numberofitems[selection])
end = g_numberofitems[selection];

new b = 0
for(new a = start; a < end; ++a)
{
new i = a + 1
new money, level

money = get_user_xp(id)
level = get_user_level(id)

if( g_PlayerItem[id][selection][i] )
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_BOUGHT", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])

else if(g_itemaccess[selection][i] == !(get_user_flags(id)))
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_ACCESS1", ++b, g_itemname[selection][i]);

else if(g_itemaccess[selection][i] == !(get_user_flags(id)))
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_ACCESS2", ++b, g_itemname[selection][i]);

else if(g_itemaccess[selection][i] == ! (get_user_flags(id)))
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_ACCESS3", ++b, g_itemname[selection][i]);

else if(level < g_itemlevel[selection][i])
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])

else if(PatrArTuri(id, g_itemwpn[selection][i]))
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_NO_MORE", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])

else if( money < g_itemcost[selection][i] )
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])
else
{
keys |= (1<<b)

switch(g_itemaccess[selection][i])
{
case 1:
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP2", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])

case 2:
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP2", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])

case 3:
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP2", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])

default:
len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i])
}
}
}

if(end != g_numberofitems[selection])
{
len += formatex(menuBody[len], sizeof menuBody - 1 - len, "^n\r9. \w%L\r^n0. \w%L", id, "NEXT_MENU", id, pos ? "BACK_MENU" : "EXIT_MENU")
keys |= MENU_KEY_9
}
else
{
len += formatex(menuBody[len], sizeof menuBody - 1 - len, "^n\r0. \w%L", id, pos ? "BACK_MENU" : "EXIT_MENU")
}

show_menu(id, keys, menuBody, -1, "Unlocks Shop")
}

public action_item_upgrades(id, key)
{
switch(key)
{
case 8: display_item_upgrades(id, ++g_menuPosition[id], gSelected[id]);
case 9: display_item_upgrades(id, --g_menuPosition[id], gSelected[id]);
default:
{
if(!is_user_alive(id))
return PLUGIN_HANDLED;

++key
new money
new plugin_id = g_itemindex[gSelected[id]][g_menuPosition[id] * 8 + key]
new item_id = g_menuPosition[id] * 8 + key
new func = get_func_id("gxm_item_enabled", plugin_id)

money = get_user_xp(id)
new cost = g_itemcost[gSelected[id]][item_id];

if(money >= cost)
{
callfunc_begin_i(func, plugin_id)
callfunc_push_int(id)
callfunc_end()

g_PlayerItem[id][gSelected[id]][item_id] = true

new overall = money - cost
set_user_xp(id, overall)

client_printcolor(1, "/yItem Mejorado, Item: /g%s.", g_itemname[gSelected[id]][item_id])
client_printcolor(1, "/yDescripcion: /g%s.", g_itemdesc[gSelected[id]][item_id])
display_item_upgrades(id, g_menuPosition[id], gSelected[id]);
}
}
}
return PLUGIN_HANDLED;
}

stock client_printcollor ( const id, const input[], any:... )
{
new iCount = 1, iPlayers[32]

new sNewMsg[191]
vformat( sNewMsg, charsmax ( sNewMsg ), input, 3 )
//format ( sNewMsg, charsmax ( sNewMsg ), "^4[x^1 %s", sNewMsg )

replace_all ( sNewMsg, charsmax ( sNewMsg ), "/g", "^4") // green txt
replace_all ( sNewMsg, charsmax ( sNewMsg ), "/y", "^1") // orange txt
replace_all ( sNewMsg, charsmax ( sNewMsg ), "/t", "^3") // team txt

if ( id )
iPlayers[0] = id
else
get_players ( iPlayers, iCount, "ch" )

for ( new i; i < iCount; i++ )
{
if ( is_user_connected ( iPlayers[i] ) )
{
message_begin ( MSG_ONE_UNRELIABLE, get_user_msgid ( "SayText" ), _, iPlayers[i] )
write_byte ( iPlayers[i])
write_string ( sNewMsg)
message_end ()
}
}
}

stock boolatrArTuri(id, wpn)
{
static i, j
for(i = 0; i < iUnlocks; ++i)
{
for(j = 0; j <= MAX_UNLOCKS; ++j)
{
if(g_PlayerItem[id][i][j])
{
if(g_itemwpn[i][j] == wpn)
return true
}
}
}

return false
}

GetItemCount(array[], size)
{
new count = 0;

for(new i = 1; i <= size; i++)
if(array[i])
count++;

return count;
}

Last edited by XxScripteRxX; 11-14-2019 at 02:03.
XxScripteRxX is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 11-14-2019 , 07:37   Re: Gun Xp Unlock
Reply With Quote #6

I said [code] or [php] and you used [quote]. And you even did it in a new post resulting in the page getting even longer. Why are you doing this?
__________________

Last edited by OciXCrom; 11-14-2019 at 07:38.
OciXCrom is offline
Send a message via Skype™ to OciXCrom
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 22:37.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode