AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Invalid cellvector (https://forums.alliedmods.net/showthread.php?t=316716)

Fuck For Fun 06-06-2019 15:04

Invalid cellvector
 
ERROR:
Quote:

Invalid cellvector handle provided (8:0:0)
[AMXX] Run time error 10: native error (native "ArrayGetArray")
Code:
PHP Code:

public plugin_init() 
{
    
CmdLoadGangs();
}    

public 
CmdLoadGangs()
{
    
    new 
intTotal fvault_sizestrGangVault );
    new 
strGangName32 ], strGangData256 ], strNum10 ], strName32 ];
    
    static 
dataenumGang ];
    
    for( new 
0intTotali++ )
    {
        
fvault_get_keynamestrGangVaultistrGangNamecharsmaxstrGangName ));
        
fvault_get_datastrGangVaultstrGangNamestrGangDatacharsmaxstrGangData ) );
        
        if( 
strlenstrGangName ) )
        {            
            
copydatagangName ], 31strGangName );// copy name
                    
            
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
            
datagangBank ] = str_to_numstrNum );
                    
            
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
            
datagangColor ] = str_to_numstrNum );
            
            
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
            
datagangUpgradeMemeber ] = str_to_numstrNum );
        
            
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
            
datagangUpgradeStealing ] = str_to_numstrNum );
    
            
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
            
datagangUpgradeMessanger ] = str_to_numstrNum );
                
            
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
            
datagangUpgradeHealthRegen ] = str_to_numstrNum );
                
            
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
            
datagangLevel ] = str_to_numstrNum );    
                
            
datagangId ] = g_intGangTotal
                
            TrieSetCell
g_trieGangdatagangName ], datagangId ] );
                
            
ArrayPushArrayg_arrayGangdata );
                
            
g_intGangTotal++;
                
            
copyg_aColorsdatagangColor ] ], 32datagangName ] );        
        }
    }
    
    
intTotal fvault_sizestrPlayerVault ); 

    static 
pDataenumGangPlayer ];
        
    for( new 
0intTotali++ )
    {
        
fvault_get_keynamestrPlayerVaultistrGangNamecharsmaxstrGangName ) );
        
fvault_get_datastrPlayerVaultstrGangNamestrGangDatacharsmaxstrGangData ));
        
        
copypDataplayerGangAuthid ], 34strGangName );
        
        
strbreakstrGangDatastrNamecharsmaxstrName ), strGangDatacharsmaxstrGangData ) );        
        
copypDataplayerGangName ], 31strName );
            
        
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
        
pDataplayerGangId ] = str_to_numstrNum );
            
        
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
        
pDataplayerGangRole ] = str_to_numstrNum );
            
        
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
        
pDataplayerGangDonation ] = str_to_numstrNum );
            
        
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
        
pDataplayerGangReqeust ] = str_to_numstrNum );
            
        if( 
pDataplayerGangId ] != -)
        {
            
ArrayGetArrayg_arrayGangpDataplayerGangId ], data ); //here the error Run time error 10: native error (native "ArrayGetArray")
            
datagangMembers ]++;
            
ArraySetArrayg_arrayGangpDataplayerGangId ], data );    
        }
        else
        {
            if( 
pDataplayerGangReqeust ] != -)
            {
                
ArrayGetArrayg_arrayGangpDataplayerGangReqeust ], data );
                
datagangRequests ]++;
                
ArraySetArrayg_arrayGangpDataplayerGangReqeust ], data );
            }
        }
        
        
TrieSetCellg_triePlayerstrGangNameg_intTotalPlayer );
        
ArrayPushArrayg_arrayPlayerpData );
        
g_intTotalPlayer++;
    }



OciXCrom 06-06-2019 15:24

Re: Invalid cellvector
 
The array must be created with ArrayCreate before using ArrayGetArray. Make sure it is.

OciXCrom 06-06-2019 17:20

Re: Invalid cellvector
 
I don't see ArrayCreate anywhere.

Fuck For Fun 06-07-2019 06:32

Re: Invalid cellvector
 
I understood the intent of ArrayCreate, but did not understand in terms of ordering where

Short EX :
PHP Code:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

enum _:enumGangPlayer
{
    
playerGangName32 ],
    
playerGangAuthid35 ],
    
playerGangId,
    
playerGangRole,
    
playerGangDonation,
    
playerGangReqeust
}

enum _:enumGang
{
    
gangUpgradeMemeber,
    
gangUpgradeStealing,
    
gangUpgradeMessanger,
    
gangUpgradeHealthRegen,
    
gangId,
    
gangName32 ],
    
gangBank,
    
gangRequests,
    
gangMembers,
    
gangColor,
    
gangLevel
}

new 
g_arrayGangPlayer33 ][ enumGangPlayer ];
new Array:
g_arrayGang;

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)

    
g_arrayPlayer ArrayCreateenumGangPlayer );
    
g_arrayGang ArrayCreateenumGang );
    
    
CmdLoadGangs();
}

public 
CmdLoadGangs()
{
    
    new 
intTotal fvault_sizestrGangVault );
    new 
strGangName32 ], strGangData256 ], strNum10 ], strName32 ];
    
    static 
dataenumGang ];
    
    for( new 
0intTotali++ )
    {
        
fvault_get_keynamestrGangVaultistrGangNamecharsmaxstrGangName ));
        
fvault_get_datastrGangVaultstrGangNamestrGangDatacharsmaxstrGangData ) );
        
        if( 
strlenstrGangName ) )
        {            
            
copydatagangName ], 31strGangName );// copy name
                    
            
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
            
datagangBank ] = str_to_numstrNum );
                    
            
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
            
datagangColor ] = str_to_numstrNum );
            
            
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
            
datagangUpgradeMemeber ] = str_to_numstrNum );
        
            
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
            
datagangUpgradeStealing ] = str_to_numstrNum );
    
            
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
            
datagangUpgradeMessanger ] = str_to_numstrNum );
                
            
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
            
datagangUpgradeHealthRegen ] = str_to_numstrNum );
                
            
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
            
datagangLevel ] = str_to_numstrNum );    
                
            
datagangId ] = g_intGangTotal
                
            TrieSetCell
g_trieGangdatagangName ], datagangId ] );
                
            
ArrayPushArrayg_arrayGangdata );
                
            
g_intGangTotal++;
                
            
copyg_aColorsdatagangColor ] ], 32datagangName ] );        
        }
    }
    
    
intTotal fvault_sizestrPlayerVault ); 

    static 
pDataenumGangPlayer ];
        
    for( new 
0intTotali++ )
    {
        
fvault_get_keynamestrPlayerVaultistrGangNamecharsmaxstrGangName ) );
        
fvault_get_datastrPlayerVaultstrGangNamestrGangDatacharsmaxstrGangData ));
        
        
copypDataplayerGangAuthid ], 34strGangName );
        
        
strbreakstrGangDatastrNamecharsmaxstrName ), strGangDatacharsmaxstrGangData ) );        
        
copypDataplayerGangName ], 31strName );
            
        
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
        
pDataplayerGangId ] = str_to_numstrNum );
            
        
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
        
pDataplayerGangRole ] = str_to_numstrNum );
            
        
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
        
pDataplayerGangDonation ] = str_to_numstrNum );
            
        
strbreakstrGangDatastrNumcharsmaxstrNum ), strGangDatacharsmaxstrGangData ) );
        
pDataplayerGangReqeust ] = str_to_numstrNum );
            
        if( 
pDataplayerGangId ] != -)
        {
            
ArrayGetArrayg_arrayGangpDataplayerGangId ], data ); //here the error Run time error 10: native error (native "ArrayGetArray")
            
datagangMembers ]++;
            
ArraySetArrayg_arrayGangpDataplayerGangId ], data );   
        }
        else
        {
            if( 
pDataplayerGangReqeust ] != -)
            {
                
ArrayGetArrayg_arrayGangpDataplayerGangReqeust ], data );
                
datagangRequests ]++;
                
ArraySetArrayg_arrayGangpDataplayerGangReqeust ], data );
            }
        }
        
        
TrieSetCellg_triePlayerstrGangNameg_intTotalPlayer );
        
ArrayPushArrayg_arrayPlayerpData );
        
g_intTotalPlayer++;
    }



edon1337 06-07-2019 06:45

Re: Invalid cellvector
 
That's fine where you put it. Logically you create the array before you use it, cause you can't use something that doesn't exist, right?


All times are GMT -4. The time now is 17:16.

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