Raised This Month: $ Target: $400
 0% 

Shop items


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
eNz0
Member
Join Date: Feb 2010
Location: Lithuania
Old 06-03-2010 , 10:26   Shop items
Reply With Quote #1

Hi. This is gunxp mod shop code by xBatista. When player unlocks item, it is unlocked untill player disconnects. How can i make item locked again on next spawn after unlock?

I think code should look like:

PHP Code:
public bacon_spawn(id)
{
g_PlayerItem[id][????????] = false

Shop code:
PHP Code:

#include <amxmodx>
#include <gunxpmod>
#include <hamsandwich>

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

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

new g_numberofitems
new g_menuPosition[33]
new 
bool:g_PlayerItem[33][MAX_UNLOCKS+1]
new 
g_itemindex[MAX_UNLOCKS+1]
new 
g_itemcost[MAX_UNLOCKS+1]
new 
g_itemname[MAX_UNLOCKS+1][MAX_UNLOCKS_NAME_SIZE+1]
new 
g_itemdesc[MAX_UNLOCKS+1][MAX_UNLOCKS_DESC_SIZE+1]

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR);
    
register_dictionary("l4d_xp.txt");
    
    
register_clcmd("say /unlocks""item_upgrades")
    
register_clcmd("say unlocks""item_upgrades")
    
register_clcmd("say /ul""item_upgrades")
    
register_clcmd("say ul""item_upgrades")
    
register_clcmd("say /items""display_items")
    
register_clcmd("say items""display_items")

    
register_menucmd(register_menuid("Unlocks Shop"), 1023"action_item_upgrades")
    
    
register_event("DeathMsg""on_death""a")
    
register_event("HLTV""event_new_round""a""1=0""2=0")
}

    
public 
client_connect(id)
{
    for(new 
1<= MAX_UNLOCKS; ++i
    {
        
g_PlayerItem[id][i] = false
    
}
}
public 
display_items(id)
{
    new 
szMotd[2048], szTitle[64], iPos 0
    format
(szTitle63"Items List")
    
iPos += format(szMotd[iPos], 2047-iPos"<html><head><style type=^"text/css^">pre{color:#FFB000;}body{background:#000000;margin-left:8px;margin-top:0px;}</style></head><pre><body>")
    
iPos += format(szMotd[iPos], 2047-iPos"^n^n<b>%s</b>^n^n"szTitle)
    
iPos += format(szMotd[iPos], 2047-iPos"# Item Name | Item Description | Item Cost^n")
    
    for(new 
1<= g_numberofitemsi++) 
    {
        
iPos += format(szMotd[iPos], 2047-iPos"%d. %s | %s | %d^n"ig_itemname[i], g_itemdesc[i], g_itemcost[i])
    }
    
show_motd(idszMotdszTitle)
    return 
PLUGIN_HANDLED;
}
public 
item_upgrades(id)
{
    
display_item_upgrades(idg_menuPosition[id] = 0);
    return 
PLUGIN_HANDLED;
}
public 
display_item_upgrades(idpos)
{    
    if(!
is_user_alive(id)) 
        return;

    
    static 
menuBody[510], len;
    
len 0

    
if(pos 0
    {
        return;
    }
    
    new 
start pos 8
    
if(start >= g_numberofitems
    {
        
start pos g_menuPosition[id]
    }

    
len += formatex(menuBody[len], sizeof menuBody 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
    {
        
end g_numberofitems
    
}

    
    new 
0
    
for(new startend; ++a
    {
        new 
1
        
new money
    
        
        money 
get_user_xp(id)

        
        if( 
money g_itemcost[i] ) 
        {
            if( 
g_PlayerItem[id][i] ) 
            {
                
len += formatex(menuBody[len], sizeof menuBody len,"%L"id"INACTIVE_MENU_SHOP_BOUGHT", ++bg_itemname[i], g_itemcost[i])
            }
            else
            {
                
len += formatex(menuBody[len], sizeof menuBody len,"%L"id"INACTIVE_MENU_SHOP", ++bg_itemname[i], g_itemcost[i])
            }
        } 
        else if( 
g_PlayerItem[id][i] ) 
        {
            
len += formatex(menuBody[len], sizeof menuBody len,"%L"id"INACTIVE_MENU_SHOP_BOUGHT", ++bg_itemname[i], g_itemcost[i])
        } 
        else 
        {
            
keys |= (1<<b)

            
len += formatex(menuBody[len], sizeof menuBody len,"%L"id"ACTIVE_MENU_SHOP", ++bg_itemname[i], g_itemcost[i])
        }
    }

    if(
end != g_numberofitems)
    {
        
len += formatex(menuBody[len], sizeof menuBody len"^n\r9. \w%L\r^n0. \w%L"id"NEXT_MENU"idpos "BACK_MENU" "EXIT_MENU")
        
keys |= MENU_KEY_9
    
}
    else
    {
        
len += formatex(menuBody[len], sizeof menuBody len"^n\r0. \w%L"idpos "BACK_MENU" "EXIT_MENU")
    }
    
    
show_menu(idkeysmenuBody, -1"Unlocks Shop")
}
public 
action_item_upgrades(idkey)
{
    switch(
key
    {
        case 
8display_item_upgrades(id, ++g_menuPosition[id]);
        case 
9display_item_upgrades(id, --g_menuPosition[id]);
        default:
        {
            if(!
is_user_alive(id)) 
            {
                return 
PLUGIN_HANDLED;
            }
            
            ++
key
            
new money
            
new plugin_id g_itemindex[g_menuPosition[id] * key]
            new 
item_id g_menuPosition[id] * key
            
new func get_func_id("gxm_item_enabled"plugin_id)
            
            
            
money get_user_xp(id)
            new 
cost g_itemcost[item_id]

            if(
money >= cost)
            {
                
callfunc_begin_i(funcplugin_id)
                
callfunc_push_int(id)
                
callfunc_end()

                
g_PlayerItem[id][item_id] = true

                
new overall money cost
                set_user_xp
(idoverall)

                
client_printcolor(id"/yItem Bought Successfully, Item: /g%s."g_itemname[item_id])
                
client_printcolor(id"/yDescription:/g%s."g_itemdesc[item_id])
                
display_item_upgrades(idg_menuPosition[id]);
            }
        }
    }
    return 
PLUGIN_HANDLED;
}


public 
register_item_gxm(item_indexitem_name[], item_desc[], item_cost)
{
    if(
g_numberofitems == MAX_UNLOCKS)
    {
        return -
2
    
}
    
    
g_numberofitems++
    
g_itemindex[g_numberofitems] = item_index
    format
(g_itemname[g_numberofitems], MAX_UNLOCKS_NAME_SIZEitem_name)
    
format(g_itemdesc[g_numberofitems], MAX_UNLOCKS_DESC_SIZEitem_desc)
    
g_itemcost[g_numberofitems] = item_cost
    
    
return g_numberofitems

eNz0 is offline
 



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 05:16.


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