AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [help] multi dimensional arrays must be fully initialized (https://forums.alliedmods.net/showthread.php?t=240854)

emerge 05-23-2014 11:07

[help] multi dimensional arrays must be fully initialized
 
I have messed abit with Monster plugin and now it gives me error. Here i put what ive done and original code
Code:

#include <amxmodx>
#include <d2lod>
#include <engine>
#include <hamsandwich>
#include <fakemeta>

new PLUGIN_NAME[] = "MonsterMod Addon"
new PLUGIN_AUTHOR[] = "xbatista"
new PLUGIN_VERSION[] = "1.0"

#define MAX_MONSTERS 14

#define COINS_CLASSNAME "CoinsMonster"

new const Monster_Models[MAX_MONSTERS][] =
{
    "models/agrunt.mdl",
    "models/big_mom.mdl",
    "models/bullsquid.mdl",
    "models/headcrab.mdl",
    "models/hassasin.mdl",
    "models/hgrunt.mdl",
    "models/zombie.mdl",
    "models/tentacle.mdl",
    "models/babygarg.mdl",
    "models/bigrat.mdl",
    "models/islave.mdl",
    "models/w_squeak.mdl",
    "models/controller.mdl",
    "models/garg.mdl"
}
new const Monster_Xp[MAX_MONSTERS] =
{
    150, //Agrunt
    600, //BigMom
    100, //Bullsquid
    50, //Headcrab
    70, // Hassasin
    120, //Hgrunt
    80, //Zombie
    0, //Zombie
    0, //Zombie
    0, //Zombie
    0, //Zombie
    0, //Zombie
    0 //Zombie
}
new const Monster_Coins[MAX_MONSTERS] =
{
    20, //Agrunt
    70, //BigMom
    10, //Bullsquid
    20, //Headcrab
    70, //Hassasin
    70, //Hgrunt
    70, //Zombie
    0, //Zombie
    0, //Zombie
    0, //Zombie
    0, //Zombie
    0, //Zombie
    0 //Zombie
}
new const Monster_Names[MAX_MONSTERS][] =
{
    "Alien Grunt",
    "Big Momma (Boss)",
    "Bull Squid",
    "Controller",
    "Gargantua (SUPER BOSS)",
    "Head Crab",
    "Hound Eye",
    "0, //Zombie",
    "0, //Zoqmbie",
    "0, //Zowmbie",
    "0, //Zoembie",
    "0, //Zormbie",
    "0 //Zotmbie"
}

new g_iMaxPlayers;

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)

    RegisterHam(Ham_Killed, "func_wall", "Monster_Killed");

    register_touch( COINS_CLASSNAME, "player", "Coins_Pickup")

    register_logevent("Event_Round_End", 2, "1=Round_End");

    g_iMaxPlayers = get_maxplayers();
}

public Event_Round_End()
{
    Remove_All_Coin_Ents();
}

public Monster_Killed(this, idattacker, shouldgib)
{
    if ( !( 1 <= idattacker <= g_iMaxPlayers ) || !is_valid_ent(this) || !get_player_logged(idattacker) )
        return HAM_IGNORED;

    new MonsterMdl[32];

    entity_get_string( this, EV_SZ_model, MonsterMdl, charsmax(MonsterMdl) );

    for(new monsters = 0; monsters < MAX_MONSTERS; monsters++)
    {
        if( equal( MonsterMdl, Monster_Models[monsters] ) )
        {
            if ( Monster_Xp[monsters] > 0 )
            {
                set_p_xp( idattacker, get_p_xp(idattacker) + Monster_Xp[monsters]);
                client_print( idattacker, print_center, "You've killed %s +%d", Monster_Names[monsters], Monster_Xp[monsters]);
            }

            if ( Monster_Coins[monsters] > 0 )
                drop_coins( this, COINS_CLASSNAME, Monster_Coins[monsters] + (get_p_level(idattacker) / 4) );
        }
    }

    return HAM_IGNORED;
}

// Touch, coins
public Coins_Pickup(ptr, ptd)
{
    if( is_user_alive(ptd) && pev_valid(ptr) )
    {   
        new gold = entity_get_int(ptr , EV_INT_iuser1)

        set_p_gold(ptd, get_p_gold(ptd) + gold)
                   
        remove_entity(ptr)
    }
}
public Remove_All_Coin_Ents()
{
    new coin_ent = find_ent_by_class(-1, COINS_CLASSNAME)
   
    while ( coin_ent )
    {
        remove_entity(coin_ent)
        coin_ent = find_ent_by_class(coin_ent, COINS_CLASSNAME)
    }
}

Heres original no error code
Code:

#include <amxmodx>
#include <d2lod>
#include <engine>
#include <hamsandwich>
#include <fakemeta>

new PLUGIN_NAME[] = "MonsterMod Addon"
new PLUGIN_AUTHOR[] = "xbatista"
new PLUGIN_VERSION[] = "1.0"

#define MAX_MONSTERS 14

#define COINS_CLASSNAME "CoinsMonster"

new const Monster_Models[MAX_MONSTERS][] =
{
    "models/agrunt.mdl",
    "models/big_mom.mdl",
    "models/bullsquid.mdl",
    "models/controller.mdl",
    "models/garg.mdl",
    "models/headcrab.mdl",
    "models/houndeye.mdl",
    "models/islave.mdl",
    "models/w_squeak.mdl",
    "models/zombie.mdl",
    "models/hgrunt.mdl",
    "models/tentacle.mdl",
    "models/babygarg.mdl",
    "models/bigrat.mdl"
}
new const Monster_Xp[MAX_MONSTERS] =
{
    150,
    600,
    100,
    120,
    0,
    50,
    70, // Houndeye
    120,
    0,
    80,
    0,
    0,
    0,
    0
}
new const Monster_Coins[MAX_MONSTERS] =
{
    20,
    70,
    10,
    20,
    0,
    3,
    10,
    25,
    0,
    15,
    0,
    0,
    0,
    0
}
new const Monster_Names[MAX_MONSTERS][] =
{
    "Alien Grunt",
    "Big Momma (Boss)",
    "Bull Squid",
    "Controller",
    "Gargantua (SUPER BOSS)",
    "Head Crab",
    "Hound Eye",
    "Slave",
    "Snark",
    "Zombie",
    "Human Grunt",
    "Tentacle",
    "Baby Garg (BOSS)",
    "Town Rat"
}

new g_iMaxPlayers;

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)

    RegisterHam(Ham_Killed, "func_wall", "Monster_Killed");

    register_touch( COINS_CLASSNAME, "player", "Coins_Pickup")

    register_logevent("Event_Round_End", 2, "1=Round_End");

    g_iMaxPlayers = get_maxplayers();
}

public Event_Round_End()
{
    Remove_All_Coin_Ents();
}

public Monster_Killed(this, idattacker, shouldgib)
{
    if ( !( 1 <= idattacker <= g_iMaxPlayers ) || !is_valid_ent(this) || !get_player_logged(idattacker) )
        return HAM_IGNORED;

    new MonsterMdl[32];

    entity_get_string( this, EV_SZ_model, MonsterMdl, charsmax(MonsterMdl) );

    for(new monsters = 0; monsters < MAX_MONSTERS; monsters++)
    {
        if( equal( MonsterMdl, Monster_Models[monsters] ) )
        {
            if ( Monster_Xp[monsters] > 0 )
            {
                set_p_xp( idattacker, get_p_xp(idattacker) + Monster_Xp[monsters]);
                client_print( idattacker, print_center, "You've killed %s +%d", Monster_Names[monsters], Monster_Xp[monsters]);
            }

            if ( Monster_Coins[monsters] > 0 )
                drop_coins( this, COINS_CLASSNAME, Monster_Coins[monsters] + (get_p_level(idattacker) / 4) );
        }
    }

    return HAM_IGNORED;
}

// Touch, coins
public Coins_Pickup(ptr, ptd)
{
    if( is_user_alive(ptd) && pev_valid(ptr) )
    {   
        new gold = entity_get_int(ptr , EV_INT_iuser1)

        set_p_gold(ptd, get_p_gold(ptd) + gold)
                   
        remove_entity(ptr)
    }
}
public Remove_All_Coin_Ents()
{
    new coin_ent = find_ent_by_class(-1, COINS_CLASSNAME)
   
    while ( coin_ent )
    {
        remove_entity(coin_ent)
        coin_ent = find_ent_by_class(coin_ent, COINS_CLASSNAME)
    }
}


Flick3rR 05-23-2014 11:16

Re: [help] multi dimensional arrays must be fully initialized
 
Attach the d2lod.inc, we can't compile without it. Now for the error - you simpli have less/more characters in your const than the MAX_RANKS. In more cases, they are less - 13, and the MAX_RANKS is 14, so you will have to add one more.

emerge 05-23-2014 11:24

Re: [help] multi dimensional arrays must be fully initialized
 
YOu can find required files in source folder sorry for my mistake
https://forums.alliedmods.net/showpo...44&postcount=1

Kiske 05-23-2014 11:56

Re: [help] multi dimensional arrays must be fully initialized
 
This is wrong:
PHP Code:

new const Monster_Names[MAX_MONSTERS][] =
{
    
"Alien Grunt",
    
"Big Momma (Boss)",
    
"Bull Squid",
    
"Controller",
    
"Gargantua (SUPER BOSS)",
    
"Head Crab",
    
"Hound Eye",
    
"0, //Zombie",
    
"0, //Zoqmbie",
    
"0, //Zowmbie",
    
"0, //Zoembie",
    
"0, //Zormbie",
    
"0 //Zotmbie"


PHP Code:

    "0, //Zombie",
    
"0, //Zoqmbie",
    
"0, //Zowmbie",
    
"0, //Zoembie",
    
"0, //Zormbie",
    
"0 //Zotmbie" 



All times are GMT -4. The time now is 09:47.

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