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
/*