Raised This Month: $ Target: $400
 0% 

Solved ttt_items_base.amxx problem


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
JuanitoAlimana
Senior Member
Join Date: Aug 2021
Old 10-29-2022 , 22:17   ttt_items_base.amxx problem
Reply With Quote #1

Every time I change map I get this error on the console;

[AMXX] Displaying debug trace (plugin "ttt_items_base.amxx", version "2.5.2")
[AMXX] Run time error 10: native error (native "ArrayClear")
[AMXX] [0] ttt_items_base.sma::ttt_gamemode (line 70)

PHP Code:
#include <amxmodx>
#include <cstrike>
#include <ttt>

enum _:ITEM_DATA
{
    
ITEM_NAME[TTT_ITEMLENGHT],
    
ITEM_COST,
    
ITEM_TEAM
}

new 
g_pCommandMenuIDg_pMsgBuyClose;
new 
g_iTotalItemsg_iSetupItems = -1;
new 
g_iItemForward, Array:g_aSetup;
new 
g_szItems[TTT_MAXSHOP][ITEM_DATA];

new const 
g_szBuyCommands[][] =  

    
"buy""buyequip""usp""glock""deagle""p228""elites""fn57""m3""xm1014""mp5""tmp""p90""mac10""ump45""ak47",  
    
"galil""famas""sg552""m4a1""aug""scout""awp""g3sg1""sg550""m249""vest""vesthelm""flash""hegren"
    
"sgren""defuser""nvgs""shield""primammo""secammo""km45""9x19mm""nighthawk""228compact""12gauge"
    
"autoshotgun""smg""mp""c90""cv47""defender""clarion""krieg552""bullpup""magnum""d3au1""krieg550"
    
"buyammo1""buyammo2""cl_autobuy""cl_rebuy""cl_setautobuy""cl_setrebuy"
};

public 
plugin_precache()
    
precache_sound("items/gunpickup2.wav");

public 
plugin_init()
{
    
register_plugin("[TTT] Item menu base"TTT_VERSIONTTT_AUTHOR);

    
register_clcmd("say /buy""ttt_buymenu_showit");
    
register_clcmd("say_team /buy""ttt_buymenu_showit");
    
g_pCommandMenuID ttt_command_add("Buy menu");

    
g_aSetup ArrayCreate(SETUP_DATA);
    
g_iItemForward CreateMultiForward("ttt_item_selected"ET_STOPFP_CELLFP_CELLFP_STRINGFP_CELL);
    
g_pMsgBuyClose get_user_msgid("BuyClose");
}

public 
plugin_end()
{
    
ArrayDestroy(g_aSetup);
}

public 
plugin_natives()
{
    
register_library("ttt");
    
register_native("ttt_buymenu_add""_buymenu_add");
    
register_native("ttt_buymenu_show""_buymenu_show");
    
register_native("ttt_item_setup_add""_item_setup_add");
    
register_native("ttt_item_setup_remove""_item_setup_remove");
    
register_native("ttt_item_setup_update""_item_setup_update");
    
register_native("ttt_item_setup_get""_item_setup_get");
    
register_native("ttt_is_item_setup""_is_item_setup");
    
register_native("ttt_get_item_name""_get_item_name");
    
register_native("ttt_get_item_id""_get_item_id");
}

public 
ttt_command_selected(idmenuidname[])
{
    if(
g_pCommandMenuID == menuid)
        
ttt_buymenu_showit(id);
}

public 
ttt_gamemode(gamemode)
{
    if(
gamemode == GAME_PREPARING)
        
ArrayClear(g_aSetup);
}

public 
client_command(id)
{
    if(!
is_user_alive(id) || ttt_return_check(id))
        return 
PLUGIN_CONTINUE;

    static 
command[16];
    
read_argv(0commandcharsmax(command));
    for(new 
0<= charsmax(g_szBuyCommands); i++)
    {
        if(
equal(commandg_szBuyCommands[i]))
        {
            if(!
task_exists(id))
                
set_task(0.1"ttt_buymenu_showit"id);

            return 
PLUGIN_HANDLED;
        }
    }

    if(
equal(command"client_buy_open"))
    {
        
// CHANGED
        
message_begin(MSG_ONEg_pMsgBuyClose_id);
        
message_end();
        
ttt_buymenu_showit(id);
    }

    return 
PLUGIN_CONTINUE;
}

public 
ttt_buymenu_showit(id)
{
    if(!
is_user_alive(id) || ttt_return_check(id))
        return 
PLUGIN_HANDLED;

    if(
g_iTotalItems == -1)
    {
        
client_print_color(idprint_team_default"%s %L"TTT_TAGid"TTT_NOITEMSTOTAL");
        return 
PLUGIN_HANDLED;
    }

    new 
inno;
    static 
item[128], num[3];
    new 
menu menu_create("\rTTT Buy menu""ttt_buymenu_handle");
    new 
team ttt_get_playerstate(id);
    for(new 
0g_iTotalItemsi++)
    {
        if(
g_szItems[i][ITEM_COST] == -1) continue;
        if(
g_szItems[i][ITEM_TEAM] == PC_INNOCENT)
            
inno++;

        if((
g_szItems[i][ITEM_TEAM] == PC_SPECIAL && (team == PC_TRAITOR || team == PC_DETECTIVE)) || team == g_szItems[i][ITEM_TEAM])
        {
            
formatex(itemcharsmax(item), "%s\R\y%i                                                "g_szItems[i][ITEM_NAME], g_szItems[i][ITEM_COST]);
            
num_to_str(inumcharsmax(num));
            
menu_additem(menuitemnum);
        }
    }

    if(!
inno && team == PC_INNOCENT)
    {
        
client_print_color(idprint_team_default"%s %L"TTT_TAGid"TTT_NOITEMSTEAM"idspecial_names[team]);
        return 
PLUGIN_HANDLED;
    }

    
menu_display(idmenu0);
    return 
PLUGIN_HANDLED;
}

public 
ttt_buymenu_handle(idmenuitem)
{
    if(!
is_user_alive(id) || ttt_return_check(id))
        return 
PLUGIN_HANDLED;

    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }

    new 
accesscallbacknum[3];
    
menu_item_getinfo(menuitemaccessnumcharsmax(num), __callback);
    
menu_destroy(menu);

    new 
itemid str_to_num(num);

    new 
player_state ttt_get_playerstate(id);
    if((
g_szItems[itemid][ITEM_TEAM] == PC_SPECIAL && player_state != PC_TRAITOR && player_state != PC_DETECTIVE) || (player_state != g_szItems[itemid][ITEM_TEAM] && PC_SPECIAL != g_szItems[itemid][ITEM_TEAM]))
    {
        
client_print_color(idprint_team_default"%s %L"TTT_TAGid"TTT_ITEM3"idspecial_names[g_szItems[itemid][ITEM_TEAM]], g_szItems[itemid][ITEM_NAME]);
        return 
PLUGIN_HANDLED;
    }

    new 
credits ttt_get_playerdata(idPD_CREDITS);
    if(
credits g_szItems[itemid][ITEM_COST])
    {
        
client_print_color(idprint_team_default"%s %L"TTT_TAGid"TTT_ITEM4"g_szItems[itemid][ITEM_NAME], g_szItems[itemid][ITEM_COST]);
        return 
PLUGIN_HANDLED;
    }

    new 
retbuyer get_sharing_id(id);
    if(
is_user_alive(buyer))
    {
        
ExecuteForward(g_iItemForwardretbuyeritemidg_szItems[itemid][ITEM_NAME], g_szItems[itemid][ITEM_COST]);

        if(
ret == PLUGIN_HANDLED)
        {
            
client_cmd(buyer"spk ^"%s^"""items/gunpickup2.wav");
            
ttt_set_playerdata(idPD_CREDITScredits-g_szItems[itemid][ITEM_COST]);
        
            static 
name[32];
            
get_user_name(idnamecharsmax(name));
            if(
is_sharing(id))
            {
                static 
name_for[32];
                
get_user_name(buyername_forcharsmax(name_for));
                
ttt_log_to_file(LOG_ITEM"Player %s bought item %s with ID %d for player %s"nameg_szItems[itemid][ITEM_NAME], itemidname_for);
                
ttt_set_playerdata(idPD_ITEM_SHARING0);
                
client_print_color(idprint_team_default"%s %L"TTT_TAGid"TTT_ITEM_FROM"g_szItems[itemid][ITEM_NAME], name_for);
                
client_print_color(buyerprint_team_default"%s %L"TTT_TAGid"TTT_ITEM_TO"nameg_szItems[itemid][ITEM_NAME]);
            }
            else 
ttt_log_to_file(LOG_ITEM"Player %s bought item %s with ID %d"nameg_szItems[itemid][ITEM_NAME], itemid);
        }
    }

    return 
PLUGIN_HANDLED;
}

public 
_buymenu_add(pluginparams)
{
    if(
params != 3)
        return 
ttt_log_api_error("ttt_buymenu_add needs 3 params(p2: %d, p3: %d)"pluginparamsget_param(2), get_param(3)) -1;

    
get_string(1g_szItems[g_iTotalItems][ITEM_NAME], charsmax(g_szItems[][ITEM_NAME]));
    
g_szItems[g_iTotalItems][ITEM_COST] = get_param(2);
    
g_szItems[g_iTotalItems][ITEM_TEAM] = get_param(3);

    
g_iTotalItems++;
    return (
g_iTotalItems 1);
}

public 
_buymenu_show(pluginparams)
{
    if(
params != 1)
        return 
ttt_log_api_error("ttt_buymenu_show needs 1 param(p1: %d)"pluginparamsget_param(1));

    new 
id get_param(1);
    if(
is_user_alive(id))
    {
        
ttt_buymenu_showit(id);
        return 
1;
    }

    return 
0;
}

public 
_item_setup_add(pluginparams)
{
    if(
params != 7)
        return 
ttt_log_api_error("ttt_item_setup_add needs 7 params"pluginparams) -1;

    static 
data[SETUP_DATA];
    
data[SETUP_ITEMID] = get_param(1);
    
data[SETUP_ITEMENT] = get_param(2);
    
data[SETUP_ITEMTIME] = get_param(3);
    
data[SETUP_ITEMOWNER] = get_param(4);
    
data[SETUP_ITEMTRACER] = get_param(5);
    
data[SETUP_ITEMACTIVE] = get_param(6);
    
get_string(7data[SETUP_ITEMNAME], charsmax(data[SETUP_ITEMNAME]));

    
ArrayPushArray(g_aSetupdata);
    
g_iSetupItems ArraySize(g_aSetup);

    return (
g_iSetupItems -1);
}

public 
_item_setup_remove(pluginparams)
{
    if(
params != 1)
        return 
ttt_log_api_error("ttt_item_setup_remove needs 1 param(p1: %d)"pluginparamsget_param(1)) -1;

    new 
item get_param(1);
    if(
item > -1)
    {
        new 
data[SETUP_DATA] = {00, ...};
        
ArraySetArray(g_aSetupitemdata);
        return 
1;
    }

    return -
1;
}

public 
_item_setup_get(pluginparams)
{
    if(
params != 2)
        return 
ttt_log_api_error("ttt_item_setup_get needs 2 params(p1: %d)"pluginparamsget_param(1)) -1;

    new 
item get_param(1);
    if(
item > -1)
    {
        static 
data[SETUP_DATA];
        
ArrayGetArray(g_aSetupitemdata);

        
set_array(2datasizeof(data));
        return 
1;
    }

    return -
1;
}

public 
_item_setup_update(pluginparams)
{
    if(
params != 2)
        return 
ttt_log_api_error("ttt_item_setup_update needs 2 params(p1: %d)"pluginparamsget_param(1)) -1;

    new 
item get_param(1);
    if(
item > -1)
    {
        static 
data[SETUP_DATA];
        
get_array(2datasizeof(data));

        
ArraySetArray(g_aSetupitemdata);
        return 
1;
    }

    return -
1;
}

public 
_is_item_setup(pluginparams)
{
    if(
params != 1)
        return 
ttt_log_api_error("ttt_is_item_setup needs 1 param(p1: %d)"pluginparamsget_param(1));


    if(
g_iSetupItems && ArraySize(g_aSetup))
    {
        new 
ent get_param(1);
        new 
data[SETUP_DATA];
        for(new 
0g_iSetupItems-1i++)
        {
            
ArrayGetArray(g_aSetupidata);
            if(
ent == data[SETUP_ITEMENT])
                return 
i;
        }
    }

    return -
1;
}

public 
_get_item_name(pluginparams)
{
    if(
params != 3)
        return 
ttt_log_api_error("ttt_get_item_name needs 3 params(p1: %d, p3: %d)"pluginparamsget_param(1), get_param(3));

    
set_string(2g_szItems[get_param(1)][ITEM_NAME], get_param(3));
    return 
1;
}

public 
_get_item_id(pluginparams)
{
    if(
params != 1)
        return 
ttt_log_api_error("ttt_get_item_id needs 1 param(p1: %d)"pluginparamsget_param(1)) -2;

    new 
name[TTT_ITEMLENGHT];
    
get_string(1namecharsmax(name));
    for(new 
0g_iTotalItems-1i++)
    {
        if(
equal(g_szItems[i][ITEM_NAME], name))
            return 
i;
    }

    return -
2;
}

stock get_sharing_id(id)
{
    new 
buyer ttt_get_playerdata(idPD_ITEM_SHARING);
    return 
buyer buyer id;
}

stock is_sharing(id)
    return 
ttt_get_playerdata(idPD_ITEM_SHARING); 
Any ideas as how to solve it? Thanks!

Last edited by JuanitoAlimana; 10-30-2022 at 05:38.
JuanitoAlimana 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 15:43.


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