Re: Getting Array from Array
PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <hamsandwich> #include <fun>
#define PLUGIN "League of Legends Mod - Core" #define VERSION "1.0.0" #define AUTHOR "Kia"
// =============================================================================== // Notes from DevTeam (Kia) // ===============================================================================
#define GOLD_NORMAL 300 #define GOLD_KILLINGSPREE 425 #define GOLD_RAMPAGE 500
// =============================================================================== // Variables // ===============================================================================
/* Defines */
#define VGUI_SELECT_TEAM 2
/* Enums */
enum ( += 1000 ) { TASK_ID_HUD_WAIT = 319, TASD_ID_HUD_LEFT, TASK_ID_HUD_TR, TASK_ID_HUD_SB }
enum _:HeroData { HeroName[64], HeroType[64], Float:BaseDamage, Float:BaseAbilityPower, Float:BaseArmor, Float:BaseMagicResist, Float:BaseHealth, Float:BaseMana, Float:BaseLifeSteal, Float:BaseSpellVamp, Float:BaseCooldown, Float:BaseHealthRegen, Float:BaseManaRegen, Float:BaseCritChance, Float:BaseRange, }
/* Arrays */
new Array:g_aHeroes
/* Strings */
new g_szHeroName[33][64] new g_szHeroType[33][64]
/* Integer */
new g_iTotalHeroes
/* Floats */
new Float:g_flBaseDamage[33] new Float:g_flBaseAbilityPower[33] new Float:g_flBaseArmor[33] new Float:g_flBaseMagicResist[33] new Float:g_flBaseHealth[33] new Float:g_flBaseMana[33] new Float:g_flBaseLifeSteal[33] new Float:g_flBaseSpellVamp[33] new Float:g_flBaseCooldown[33] new Float:g_flBaseHealthRegen[33] new Float:g_flBaseManaRegen[33] new Float:g_flBaseCritChance[33] new Float:g_flBaseRange[33]
/* Floats */
new Float:g_flTime
/* Forwards */
new g_hSelectHeroForward
// =============================================================================== // plugin_init // ===============================================================================
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) /* Commands */ register_clcmd("say /test", "cmd_Test") register_clcmd("say /champ", "func_OpenHeroSelection") /* Hamsandwich */ RegisterHam( Ham_Killed, "player", "fw_HamKilled", 1 ) RegisterHam( Ham_Spawn, "player", "fw_HamSpawn", 1 )
/* Creating Array */ g_aHeroes = ArrayCreate(HeroData) /* Creating Forward */ g_hSelectHeroForward = CreateMultiForward("hero_selected", ET_IGNORE, FP_CELL, FP_CELL) }
public cmd_Test(id) { set_hudmessage(0, 255, 0, -1.0, 0.01) show_hudmessage(id, "%s^n %s^n %1.f^n %1.f^n %1.f^n %1.f^n %1.f^n %1.f^n %1.f^n %1.f^n %1.f^n %1.f^n %1.f^n %1.f^n %1.f^n", g_szHeroName[id], g_szHeroType[id], g_flBaseDamage[id], g_flBaseAbilityPower[id], g_flBaseArmor[id], g_flBaseMagicResist[id], g_flBaseHealth[id], g_flBaseMana[id], g_flBaseLifeSteal[id], g_flBaseSpellVamp[id], g_flBaseCooldown[id], g_flBaseHealthRegen[id], g_flBaseManaRegen[id], g_flBaseCritChance[id], g_flBaseRange[id]) }
// =============================================================================== // plugin_natives // ===============================================================================
public plugin_natives() { register_library("lol") register_native("lol_add_hero", "_add_hero") register_native("lol_set_hero", "_set_hero") }
// =============================================================================== // _add_hero - Adds Hero to plugin // ===============================================================================
public _add_hero(iPlugin, iParams) { new eItemData[HeroData]; /* HeroName[64], HeroType[64], Float:BaseDamage, Float:BaseAbilityPower, Float:BaseArmor, Float:BaseMagicResist, Float:BaseHealth, Float:BaseMana, Float:BaseLifeSteal, Float:BaseSpellVamp, Float:BaseCooldown, Float:BaseHealthRegen, Float:BaseManaRegen, Float:BaseCritChance, Float:BaseRange, */ get_string(1, eItemData[HeroName], charsmax(eItemData[HeroName])) get_string(2, eItemData[HeroType], charsmax(eItemData[HeroType])) eItemData[BaseDamage] = get_param(3) eItemData[BaseAbilityPower] = get_param(4) eItemData[BaseArmor] = get_param(5) eItemData[BaseMagicResist] = get_param(6) eItemData[BaseHealth] = get_param(7) eItemData[BaseMana] = get_param(8) eItemData[BaseLifeSteal] = get_param(9) eItemData[BaseSpellVamp] = get_param(10) eItemData[BaseCooldown] = get_param(11) eItemData[BaseHealthRegen] = get_param(12) eItemData[BaseManaRegen] = get_param(13) eItemData[BaseCritChance] = get_param(14) eItemData[BaseRange] = get_param(15) ArrayPushArray( g_aHeroes, eItemData ); g_iTotalHeroes++; return ( g_iTotalHeroes - 1 ); }
// =============================================================================== // _set_hero - Sets hero to player // ===============================================================================
public _set_hero(id, iHeroIndex) { new eItemData[HeroData]
ArrayGetArray(g_aHeroes, iHeroIndex, eItemData) formatex(g_szHeroName[id], charsmax(g_szHeroName), eItemData[HeroName]) formatex(g_szHeroType[id], charsmax(g_szHeroType), eItemData[HeroType]) g_flBaseDamage[id] = eItemData[BaseDamage] g_flBaseAbilityPower[id] = eItemData[BaseAbilityPower] g_flBaseArmor[id] = eItemData[BaseArmor] g_flBaseMagicResist[id] = eItemData[BaseMagicResist] g_flBaseHealth[id] = eItemData[BaseHealth] g_flBaseMana[id] = eItemData[BaseMana] g_flBaseLifeSteal[id] = eItemData[BaseLifeSteal] g_flBaseSpellVamp[id] = eItemData[BaseSpellVamp] g_flBaseCooldown[id] = eItemData[BaseCooldown] g_flBaseHealthRegen[id] = eItemData[BaseHealthRegen] g_flBaseManaRegen[id] = eItemData[BaseManaRegen] g_flBaseCritChance[id] = eItemData[BaseCritChance] g_flBaseRange[id] = eItemData[BaseRange] }
// =============================================================================== // func_OpenHeroSelection - Opens menu with all available heroes // ===============================================================================
public func_OpenHeroSelection(id, iPage) { if(!g_iTotalHeroes) return; iPage = clamp(iPage, 0, (g_iTotalHeroes - 1) / 7)
new menu = menu_create("League of Legends Mod^nChoose your Hero", "func_OpenHeroSelection_handler") new eItemData[HeroData] new szItem[128] new szNum[3] for(new i = 0; i < g_iTotalHeroes; i++) { ArrayGetArray(g_aHeroes, i, eItemData) formatex(szItem, charsmax(szItem), "%s | %s", eItemData[HeroName], eItemData[HeroType]) num_to_str(i, szNum, charsmax(szNum)) menu_additem(menu, szItem, szNum) } menu_display(id, menu, iPage) }
// =============================================================================== // func_OpenHeroSelection_handler - Handler for menu // ===============================================================================
public func_OpenHeroSelection_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new iAccess, szNum[3], hCallback menu_item_getinfo( menu, item, iAccess, szNum, charsmax( szNum ), _, _, hCallback ) menu_destroy( menu ) new iItemIndex = str_to_num( szNum ) new eItemData[HeroData] ArrayGetArray( g_aHeroes, iItemIndex, eItemData ) new iReturn ExecuteForward(g_hSelectHeroForward, iReturn, id, iItemIndex) return PLUGIN_HANDLED }
// =============================================================================== // fw_HamKilled - Called on players Death // ===============================================================================
public fw_HamKilled( iVictim, iKiller, bShouldGib ) { static Float:GameTime, iMin GameTime = get_gametime() - g_flTime iMin = floatround(GameTime, floatround_floor) / 60 set_task(iMin + 10.0, "respawn_player", iVictim) }
// =============================================================================== // fw_HamSpawn - Called on players spawn // ===============================================================================
public fw_HamSpawn(id) { if(!is_user_alive(id)) return; strip_user_weapons(id) give_item(id, "weapon_knife") }
// =============================================================================== // func_StartGame - Will be called if game starts // ===============================================================================
public func_StartGame() { g_flTime = get_gametime() }
// =============================================================================== // Stocks // ===============================================================================
stock respawn_player(id) ExecuteHamB( Ham_CS_RoundRespawn, id)
/* Death Timer : Game Time in minutes + 10 seconds
InGame XP Table :
1 - 2 = 280 2 - 3 = 390 3 - 4 = 500 4 - 5 = 610 5 - 6 = 720 6 - 7 = 830 7 - 8 = 940 8 - 9 = 1050 9 - 10 = 1160 10 - 11 = 1270 11 - 12 = 1380 12 - 13 = 1490 13 - 14 = 1600 14 - 15 = 1710 15 - 16 = 1820 16 - 17 = 1930 17 - 18 = 2040
/*
|