Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //////////////////////////////////////////////////////////////////////
- // OpenTibia - an opensource roleplaying game
- //////////////////////////////////////////////////////////////////////
- // class which takes care of all data which must get saved in the player
- //////////////////////////////////////////////////////////////////////
- // This program is free software; you can redistribute it and/or
- // modify it under the terms of the GNU General Public License
- // as published by the Free Software Foundation; either version 2
- // of the License, or (at your option) any later version.
- //
- // This program is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- // GNU General Public License for more details.
- //
- // You should have received a copy of the GNU General Public License
- // along with this program; if not, write to the Free Software Foundation,
- // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- //////////////////////////////////////////////////////////////////////
- #include <string>
- #include <iostream>
- #include "luascript.h"
- #include "player.h"
- #include "patch.h"
- LuaScript::LuaScript()
- {
- luaState = NULL;
- }
- LuaScript::~LuaScript()
- {
- if (luaState)
- lua_close(luaState);
- }
- int32_t LuaScript::OpenFile(const char *filename)
- {
- luaState = lua_open();
- if (lua_dofile(luaState, filename))
- return false;
- KNIGHT_LOOSE = getGlobalNumber("knightloose", 50);
- PALADIN_RAISE = getGlobalNumber("paladinraise", 20);
- TRAINING_TICKS = getGlobalNumber("trainingticks",10)*60000;
- REWRITE_TICKS = getGlobalNumber("rewriteticks",30)*1000;
- #ifdef ZS_SWORDS
- MANA_P_MB = atoi(getGlobalStringField("swordmana", 1, "2").c_str());
- MANA_F_MB = atoi(getGlobalStringField("swordmana", 2, "2").c_str());
- MANA_E_MB = atoi(getGlobalStringField("swordmana", 3, "2").c_str());
- MANA_P_MAUL = atoi(getGlobalStringField("swordmana", 4, "2").c_str());
- MANA_F_MAUL = atoi(getGlobalStringField("swordmana", 5, "2").c_str());
- MANA_E_MAUL = atoi(getGlobalStringField("swordmana", 6, "2").c_str());
- MANA_P_HEAD = atoi(getGlobalStringField("swordmana", 7, "2").c_str());
- MANA_F_HEAD = atoi(getGlobalStringField("swordmana", 8, "2").c_str());
- MANA_E_HEAD = atoi(getGlobalStringField("swordmana", 9, "2").c_str());
- MANA_HAIK_AXE = atoi(getGlobalStringField("swordmana", 10, "2").c_str());
- MANA_BLETKA_AXE = atoi(getGlobalStringField("swordmana", 11, "2").c_str());
- RANGE_P_MB = atoi(getGlobalStringField("swordrange", 1, "2").c_str());
- RANGE_F_MB = atoi(getGlobalStringField("swordrange", 2, "2").c_str());
- RANGE_E_MB = atoi(getGlobalStringField("swordrange", 3, "2").c_str());
- RANGE_P_MAUL = atoi(getGlobalStringField("swordrange", 4, "2").c_str());
- RANGE_F_MAUL = atoi(getGlobalStringField("swordrange", 5, "2").c_str());
- RANGE_E_MAUL = atoi(getGlobalStringField("swordrange", 6, "2").c_str());
- RANGE_P_HEAD = atoi(getGlobalStringField("swordrange", 7, "2").c_str());
- RANGE_F_HEAD = atoi(getGlobalStringField("swordrange", 8, "2").c_str());
- RANGE_E_HEAD = atoi(getGlobalStringField("swordrange", 9, "2").c_str());
- RANGE_HAIK_AXE = atoi(getGlobalStringField("swordrange", 10, "2").c_str());
- RANGE_BLETKA_AXE = atoi(getGlobalStringField("swordrange", 11, "2").c_str());
- #endif //ZS_SWORDS
- SOFT_MANA = getGlobalNumber("softmana", 1);
- SOFT_HEALTH = getGlobalNumber("softhealth", 1);
- LR_MANA = getGlobalNumber("LifeRingMana", 1);
- LR_HEALTH = getGlobalNumber("LifeRingHealth", 1);
- ROH_MANA = getGlobalNumber("RoHMana", 1);
- ROH_HEALTH = getGlobalNumber("RoHHealth", 1);
- ROAH_MANA = getGlobalNumber("RoaHMana", 1);
- ROAH_HEALTH = getGlobalNumber("RoaHHealth", 1);
- DROP_RATE = getGlobalNumber("droprate",1);
- RESP_RATE = getGlobalNumber("resp_rate",10);
- FULLATTACK = atof(getGlobalStringField("defenseforms", 1, "0.1").c_str());
- A_BALANCED = atof(getGlobalStringField("defenseforms", 2, "0.4").c_str()),
- A_FULL_DEFENSE = atof(getGlobalStringField("defenseforms", 3, "0.8").c_str());
- PZ_LOCKED = getGlobalNumber("pzlocked",60);
- ONEPERACC = getGlobalNumber("oneperacc",0);
- #ifdef HUCZU_SKULLS
- WHITE_TIME = getGlobalNumber("whitetime",15)*60000;
- RED_TIME = getGlobalNumber("redtime",5*60)*60000;
- FRAG_TIME = getGlobalNumber("fragtime",3*60)*60000;
- RED_UNJUST = getGlobalNumber("redunjust",3);
- BAN_UNJUST = getGlobalNumber("banunjust",6);
- #endif //HUCZU_SKULLS
- NO_VOC_SPEED = atof(getGlobalStringField("speed", 1, "2.0").c_str());
- SORC_SPEED = atof(getGlobalStringField("speed", 2, "2.0").c_str());
- DRUID_SPEED = atof(getGlobalStringField("speed", 3, "2.0").c_str());
- PALLY_SPEED = atof(getGlobalStringField("speed", 4, "2.0").c_str());
- KNIGHT_SPEED = atof(getGlobalStringField("speed", 5, "2.0").c_str());
- ADVANCE_ANI = getGlobalString("animations") == "yes";
- EFFECT_ATACK = getGlobalString("extraeffects") == "yes";
- SUMMON_BODIES = getGlobalString("summonhavebody") == "yes";
- EXTRA_MSG_DEAD = getGlobalString("extradiemsg") == "yes";
- MSG_DEAD = getGlobalString("diemsg") == "yes";
- TRADE_LVL = getGlobalNumber("tradelvl",2);
- ROOK_TEMPLE_X = getGlobalNumber("rooktemple_x",350);
- ROOK_TEMPLE_Y = getGlobalNumber("rooktemple_y",713);
- ROOK_TEMPLE_Z = getGlobalNumber("rooktemple_z",7);
- #ifdef YUR_MULTIPLIERS
- #ifdef UCB_LVL_EXP
- STG_1_LVL = getGlobalNumber("stage1",1);
- STG_1_LVL_X = getGlobalNumber("stage1x",1);
- STG_2_LVL_X = getGlobalNumber("stage2x",1);
- EXP_ROOK = getGlobalNumber("exprook",1);
- #endif // UCB_LVL_EXP
- EXP_MUL = getGlobalNumber("expmul",1);
- EXP_MUL_PVP = getGlobalNumber("expmulpvp",1);
- HEALTH_TICK_MUL = getGlobalNumber("healthtickmul",1);
- MANA_TICK_MUL = getGlobalNumber("manatickmul",1);
- ROHHEALTH = getGlobalNumber("RoHHealth",1);
- ROHMANA = getGlobalNumber("RoHMana",1);
- ROAHHEALTH = getGlobalNumber("RoaHHealth",1);
- ROAHMANA = getGlobalNumber("RoaHMana",1);
- LIFERINGHEALTH = getGlobalNumber("LifeRingHealth",1);
- LIFERINGMANA = getGlobalNumber("LifeRingMana",1);
- CAP_GAIN[VOCATION_NONE] = atoi(getGlobalStringField("capgain", VOCATION_NONE + 1, "10").c_str());
- CAP_GAIN[VOCATION_SORCERER] = atoi(getGlobalStringField("capgain", VOCATION_SORCERER + 1, "10").c_str());
- CAP_GAIN[VOCATION_DRUID] = atoi(getGlobalStringField("capgain", VOCATION_DRUID + 1, "10").c_str());
- CAP_GAIN[VOCATION_PALADIN] = atoi(getGlobalStringField("capgain", VOCATION_PALADIN + 1, "20").c_str());
- CAP_GAIN[VOCATION_KNIGHT] = atoi(getGlobalStringField("capgain", VOCATION_KNIGHT + 1, "25").c_str());
- MANA_GAIN[VOCATION_NONE] = atoi(getGlobalStringField("managain", VOCATION_NONE + 1, "5").c_str());
- MANA_GAIN[VOCATION_SORCERER] = atoi(getGlobalStringField("managain", VOCATION_SORCERER + 1, "30").c_str());
- MANA_GAIN[VOCATION_DRUID] = atoi(getGlobalStringField("managain", VOCATION_DRUID + 1, "30").c_str());
- MANA_GAIN[VOCATION_PALADIN] = atoi(getGlobalStringField("managain", VOCATION_PALADIN + 1, "15").c_str());
- MANA_GAIN[VOCATION_KNIGHT] = atoi(getGlobalStringField("managain", VOCATION_KNIGHT + 1, "5").c_str());
- HP_GAIN[VOCATION_NONE] = atoi(getGlobalStringField("hpgain", VOCATION_NONE + 1, "5").c_str());
- HP_GAIN[VOCATION_SORCERER] = atoi(getGlobalStringField("hpgain", VOCATION_SORCERER + 1, "5").c_str());
- HP_GAIN[VOCATION_DRUID] = atoi(getGlobalStringField("hpgain", VOCATION_DRUID + 1, "5").c_str());
- HP_GAIN[VOCATION_PALADIN] = atoi(getGlobalStringField("hpgain", VOCATION_PALADIN + 1, "10").c_str());
- HP_GAIN[VOCATION_KNIGHT] = atoi(getGlobalStringField("hpgain", VOCATION_KNIGHT + 1, "15").c_str());
- WEAPON_MUL[VOCATION_NONE] = atoi(getGlobalStringField("weaponmul", VOCATION_NONE+1, "1").c_str());
- WEAPON_MUL[VOCATION_SORCERER] = atoi(getGlobalStringField("weaponmul", VOCATION_SORCERER+1, "1").c_str());
- WEAPON_MUL[VOCATION_DRUID] = atoi(getGlobalStringField("weaponmul", VOCATION_DRUID+1, "1").c_str());
- WEAPON_MUL[VOCATION_PALADIN] = atoi(getGlobalStringField("weaponmul", VOCATION_PALADIN+1, "1").c_str());
- WEAPON_MUL[VOCATION_KNIGHT] = atoi(getGlobalStringField("weaponmul", VOCATION_KNIGHT+1, "1").c_str());
- DIST_MUL[VOCATION_NONE] = atoi(getGlobalStringField("distmul", VOCATION_NONE+1, "1").c_str());
- DIST_MUL[VOCATION_SORCERER] = atoi(getGlobalStringField("distmul", VOCATION_SORCERER+1, "1").c_str());
- DIST_MUL[VOCATION_DRUID] = atoi(getGlobalStringField("distmul", VOCATION_DRUID+1, "1").c_str());
- DIST_MUL[VOCATION_PALADIN] = atoi(getGlobalStringField("distmul", VOCATION_PALADIN+1, "1").c_str());
- DIST_MUL[VOCATION_KNIGHT] = atoi(getGlobalStringField("distmul", VOCATION_KNIGHT+1, "1").c_str());
- SHIELD_MUL[VOCATION_NONE] = atoi(getGlobalStringField("shieldmul", VOCATION_NONE+1, "1").c_str());
- SHIELD_MUL[VOCATION_SORCERER] = atoi(getGlobalStringField("shieldmul", VOCATION_SORCERER+1, "1").c_str());
- SHIELD_MUL[VOCATION_DRUID] = atoi(getGlobalStringField("shieldmul", VOCATION_DRUID+1, "1").c_str());
- SHIELD_MUL[VOCATION_PALADIN] = atoi(getGlobalStringField("shieldmul", VOCATION_PALADIN+1, "1").c_str());
- SHIELD_MUL[VOCATION_KNIGHT] = atoi(getGlobalStringField("shieldmul", VOCATION_KNIGHT+1, "1").c_str());
- MANA_MUL[VOCATION_NONE] = atoi(getGlobalStringField("manamul", VOCATION_NONE+1, "1").c_str());
- MANA_MUL[VOCATION_SORCERER] = atoi(getGlobalStringField("manamul", VOCATION_SORCERER+1, "1").c_str());
- MANA_MUL[VOCATION_DRUID] = atoi(getGlobalStringField("manamul", VOCATION_DRUID+1, "1").c_str());
- MANA_MUL[VOCATION_PALADIN] = atoi(getGlobalStringField("manamul", VOCATION_PALADIN+1, "1").c_str());
- MANA_MUL[VOCATION_KNIGHT] = atoi(getGlobalStringField("manamul", VOCATION_KNIGHT+1, "1").c_str());
- #endif //YUR_MULTIPLIERS
- #ifdef TR_ANTI_AFK
- KICK_TIME = getGlobalNumber("kicktime",15)*60000;
- #endif //TR_ANTI_AFK
- #ifdef YUR_LEARN_SPELLS
- LEARN_SPELLS = getGlobalString("learnspells") == "yes";
- #endif //YUR_LEARN_SPELLS
- #ifdef TLM_HOUSE_SYSTEM
- ACCESS_HOUSE = getGlobalNumber("accesshouse",3);
- MAX_HOUSE_TILE_ITEMS = getGlobalNumber("maxhousetileitems",10);
- #endif //TLM_HOUSE_SYSTEM
- #ifdef TR_SUMMONS
- SUMMONS_ALL_VOC = getGlobalString("summonsallvoc") == "yes";
- MAX_SUMMONS = (size_t)getGlobalNumber("maxsummons",2);
- #endif //TR_SUMMONS
- SHOP_SYSTEM_CONTAINER = getGlobalNumber("shopContainer", 1988);
- #ifdef SD_BURST_ARROW
- KNIGHT_BURST_DMG_LVL = atof(getGlobalStringField("knight_burstarrowdmg", 1, "2.0").c_str());
- KNIGHT_BURST_DMG_MLVL = atof(getGlobalStringField("knight_burstarrowdmg", 2, "3.0").c_str());
- KNIGHT_BURST_DMG_LO = atof(getGlobalStringField("knight_burstarrowdmg", 3, "0.10").c_str());
- KNIGHT_BURST_DMG_HI = atof(getGlobalStringField("knight_burstarrowdmg", 4, "0.25").c_str());
- PALADIN_BURST_DMG_LVL = atof(getGlobalStringField("paladin_burstarrowdmg", 1, "2.0").c_str());
- PALADIN_BURST_DMG_MLVL = atof(getGlobalStringField("paladin_burstarrowdmg", 2, "3.0").c_str());
- PALADIN_BURST_DMG_LO = atof(getGlobalStringField("paladin_burstarrowdmg", 3, "0.10").c_str());
- PALADIN_BURST_DMG_HI = atof(getGlobalStringField("paladin_burstarrowdmg", 4, "0.25").c_str());
- DRUID_BURST_DMG_LVL = atof(getGlobalStringField("druid_burstarrowdmg", 1, "2.0").c_str());
- DRUID_BURST_DMG_MLVL = atof(getGlobalStringField("druid_burstarrowdmg", 2, "3.0").c_str());
- DRUID_BURST_DMG_LO = atof(getGlobalStringField("druid_burstarrowdmg", 3, "0.10").c_str());
- DRUID_BURST_DMG_HI = atof(getGlobalStringField("druid_burstarrowdmg", 4, "0.25").c_str());
- SORCERER_BURST_DMG_LVL = atof(getGlobalStringField("sorcerer_burstarrowdmg", 1, "2.0").c_str());
- SORCERER_BURST_DMG_MLVL = atof(getGlobalStringField("sorcerer_burstarrowdmg", 2, "3.0").c_str());
- SORCERER_BURST_DMG_LO = atof(getGlobalStringField("sorcerer_burstarrowdmg", 3, "0.10").c_str());
- SORCERER_BURST_DMG_HI = atof(getGlobalStringField("sorcerer_burstarrowdmg", 4, "0.25").c_str());
- #endif //SD_BURST_ARROW
- #ifdef YUR_CONFIG_CAP
- CAP_SYSTEM = getGlobalString("capsystem") == "yes";
- #endif //YUR_CONFIG_CAP
- #ifdef HUCZU_AUTORESTART
- AUTO_RESTART = getGlobalNumber("autorestart", 2)*60000;
- #endif
- SPEAR_LOSE_CHANCE = getGlobalNumber("spearlosechance",50);
- #ifdef YUR_PREMIUM_PROMOTION
- FREE_PREMMY = getGlobalString("freepremmy") == "yes";
- QUEUE_PREMMY = getGlobalString("queuepremmy") == "yes";
- #endif //YUR_PREMIUM_PROMOTION
- #ifdef HUCZU_FIX
- MAYA_POS_X = atoi(getGlobalStringField("maya",1).c_str());
- MAYA_POS_Y = atoi(getGlobalStringField("maya",2).c_str());
- MAYA_POS_Z = atoi(getGlobalStringField("maya",3).c_str());
- ANTALIS_POS_X = atoi(getGlobalStringField("antalis",1).c_str());
- ANTALIS_POS_Y = atoi(getGlobalStringField("antalis",2).c_str());
- ANTALIS_POS_Z = atoi(getGlobalStringField("antalis",3).c_str());
- FARSON_POS_X = atoi(getGlobalStringField("farson",1).c_str());
- FARSON_POS_Y = atoi(getGlobalStringField("farson",2).c_str());
- FARSON_POS_Z = atoi(getGlobalStringField("farson",3).c_str());
- THA_POS_X = atoi(getGlobalStringField("tha",1).c_str());
- THA_POS_Y = atoi(getGlobalStringField("tha",2).c_str());
- THA_POS_Z = atoi(getGlobalStringField("tha",3).c_str());
- THM_POS_X = atoi(getGlobalStringField("thm",1).c_str());
- THM_POS_Y = atoi(getGlobalStringField("thm",2).c_str());
- THM_POS_Z = atoi(getGlobalStringField("thm",3).c_str());
- TOMB_POS_X = atoi(getGlobalStringField("tomb",1).c_str());
- TOMB_POS_Y = atoi(getGlobalStringField("tomb",2).c_str());
- TOMB_POS_Z = atoi(getGlobalStringField("tomb",3).c_str());
- DLA_POS_X = atoi(getGlobalStringField("dla",1).c_str());
- DLA_POS_Y = atoi(getGlobalStringField("dla",2).c_str());
- DLA_POS_Z = atoi(getGlobalStringField("dla",3).c_str());
- DLM_POS_X = atoi(getGlobalStringField("dlm",1).c_str());
- DLM_POS_Y = atoi(getGlobalStringField("dlm",2).c_str());
- DLM_POS_Z = atoi(getGlobalStringField("dlm",3).c_str());
- ROOK_POS_X = atoi(getGlobalStringField("rook",1).c_str());
- ROOK_POS_Y = atoi(getGlobalStringField("rook",2).c_str());
- ROOK_POS_Z = atoi(getGlobalStringField("rook",3).c_str());
- SCHIVA_POS_X = atoi(getGlobalStringField("schiva",1).c_str());
- SCHIVA_POS_Y = atoi(getGlobalStringField("schiva",2).c_str());
- SCHIVA_POS_Z = atoi(getGlobalStringField("schiva",3).c_str());
- BEHE_POS_X = atoi(getGlobalStringField("behe",1).c_str());
- BEHE_POS_Y = atoi(getGlobalStringField("behe",2).c_str());
- BEHE_POS_Z = atoi(getGlobalStringField("behe",3).c_str());
- THS_POS_X = atoi(getGlobalStringField("ths",1).c_str());
- THS_POS_Y = atoi(getGlobalStringField("ths",2).c_str());
- THS_POS_Z = atoi(getGlobalStringField("ths",3).c_str());
- MADMAN_POS_X = atoi(getGlobalStringField("madman",1).c_str());
- MADMAN_POS_Y = atoi(getGlobalStringField("madman",2).c_str());
- MADMAN_POS_Z = atoi(getGlobalStringField("madman",3).c_str());
- DMJ_POS_X = atoi(getGlobalStringField("dmj",1).c_str());
- DMJ_POS_Y = atoi(getGlobalStringField("dmj",2).c_str());
- DMJ_POS_Z = atoi(getGlobalStringField("dmj",3).c_str());
- DMA_POS_X = atoi(getGlobalStringField("dma",1).c_str());
- DMA_POS_Y = atoi(getGlobalStringField("dma",2).c_str());
- DMA_POS_Z = atoi(getGlobalStringField("dma",3).c_str());
- THF_POS_X = atoi(getGlobalStringField("thf",1).c_str());
- THF_POS_Y = atoi(getGlobalStringField("thf",2).c_str());
- THF_POS_Z = atoi(getGlobalStringField("thf",3).c_str());
- JAMAICA_POS_X = atoi(getGlobalStringField("jamaica",1).c_str());
- JAMAICA_POS_Y = atoi(getGlobalStringField("jamaica",2).c_str());
- JAMAICA_POS_Z = atoi(getGlobalStringField("jamaica",3).c_str());
- TEST_POS_X = atoi(getGlobalStringField("test",1).c_str());
- TEST_POS_Y = atoi(getGlobalStringField("test",2).c_str());
- TEST_POS_Z = atoi(getGlobalStringField("test",3).c_str());
- #endif //HUCZU_FIX
- #ifdef YUR_CVS_MODS
- VOCATIONS[VOCATION_KNIGHT] = getGlobalStringField("vocations",VOCATION_KNIGHT);
- VOCATIONS[VOCATION_PALADIN] = getGlobalStringField("vocations",VOCATION_PALADIN);
- VOCATIONS[VOCATION_SORCERER] = getGlobalStringField("vocations",VOCATION_SORCERER);
- VOCATIONS[VOCATION_DRUID] = getGlobalStringField("vocations",VOCATION_DRUID);
- PROMOTED_VOCATIONS[VOCATION_KNIGHT] = getGlobalStringField("promoted_vocations",VOCATION_KNIGHT);
- PROMOTED_VOCATIONS[VOCATION_PALADIN] = getGlobalStringField("promoted_vocations",VOCATION_PALADIN);
- PROMOTED_VOCATIONS[VOCATION_SORCERER] = getGlobalStringField("promoted_vocations",VOCATION_SORCERER);
- PROMOTED_VOCATIONS[VOCATION_DRUID] = getGlobalStringField("promoted_vocations",VOCATION_DRUID);
- DIE_PERCENT_EXP = atoi(getGlobalStringField("diepercent",1,"5").c_str());
- DIE_PERCENT_MANA = atoi(getGlobalStringField("diepercent",2,"5").c_str());
- DIE_PERCENT_SKILL = atoi(getGlobalStringField("diepercent",3,"5").c_str());
- DIE_PERCENT_EQ = atoi(getGlobalStringField("diepercent",4,"10").c_str());
- DIE_PERCENT_BP = atoi(getGlobalStringField("diepercent",5,"100").c_str());
- DIE_BLESS_1 = getGlobalNumber("diebless1",4);
- DIE_BLESS_2 = getGlobalNumber("diebless2",3);
- DIE_BLESS_3 = getGlobalNumber("diebless3",2);
- DIE_BLESS_4 = getGlobalNumber("diebless4",2);
- DIE_BLESS_5 = getGlobalNumber("diebless5",2);
- DIE_BLESS_1_PROMOTION = getGlobalNumber("diebless1promotion",3);
- DIE_BLESS_2_PROMOTION = getGlobalNumber("diebless2promotion",2);
- DIE_BLESS_3_PROMOTION = getGlobalNumber("diebless3promotion",1);
- DIE_BLESS_4_PROMOTION = getGlobalNumber("diebless4promotion",1);
- DIE_BLESS_5_PROMOTION = getGlobalNumber("diebless5promotion",1);
- ACCESS_PROTECT = getGlobalNumber("accessprotect",3);
- ACCESS_REMOTE = getGlobalNumber("accessremote",3);
- ACCESS_TALK = getGlobalNumber("accesstalk",3);
- ACCESS_ENTER = getGlobalNumber("accessenter",3);
- ACCESS_LOOK = getGlobalNumber("accesslook",3);
- EXHAUSTED = getGlobalNumber("exhausted",0);
- EXHAUSTED_ADD = getGlobalNumber("exhaustedadd",0);
- EXHAUSTED_HEAL = getGlobalNumber("exhaustedheal",0);
- MAX_DEPOT_ITEMS = getGlobalNumber("maxdepotitem",1000);
- DATA_DIR = getGlobalString("datadir");
- #endif //YUR_CVS_MODS
- #ifdef JD_DEATH_LIST
- MAX_DEATH_ENTRIES = getGlobalNumber("maxdeathentries",10);
- #endif //JD_DEATH_LIST
- #ifdef JD_WANDS
- ITEM_MDOWNHELMET = getGlobalNumber("MagicDmg_HELMET",20);
- ITEM_MDOWNARMOR = getGlobalNumber("MagicDmg_ARMOR",20);
- ITEM_MDOWNLEGS = getGlobalNumber("MagicDmg_LEGS",20);
- ITEM_MDOWNBOOTS = getGlobalNumber("MagicDmg_BOOTS",20);
- ITEM_MDOWNRING = getGlobalNumber("MagicDmg_RING",20);
- ITEM_MDOWNAMU = getGlobalNumber("MagicDmg_AMU",20);
- MGITEMHELMET = getGlobalNumber("ID_HELMET",0);
- MGITEMARMOR = getGlobalNumber("ID_ARMOR",0);
- MGITEMLEGS = getGlobalNumber("ID_LEGS",0);
- MGITEMBOOTS = getGlobalNumber("ID_BOOTS",0);
- MGITEMAMU = getGlobalNumber("ID_AMULET",0);
- MGITEMRINGS = getGlobalNumber("ID_RING",0);
- MGITEMS = getGlobalString("MGDMG_Items") == "yes";
- SKILLNUMBER = getGlobalString("AdvanceSkill_ShowNumbers") == "yes";
- #endif //JD_WANDS
- return true;
- }
- std::string LuaScript::getGlobalString(std::string var, const std::string &defString)
- {
- lua_getglobal(luaState, var.c_str());
- if(!lua_isstring(luaState, -1))
- return defString;
- int32_t len = (int32_t)lua_strlen(luaState, -1);
- std::string ret(lua_tostring(luaState, -1), len);
- lua_pop(luaState,1);
- return ret;
- }
- int32_t LuaScript::getGlobalNumber(std::string var, const int32_t defNum)
- {
- lua_getglobal(luaState, var.c_str());
- if(!lua_isnumber(luaState, -1))
- return defNum;
- int32_t val = (int32_t)lua_tonumber(luaState, -1);
- lua_pop(luaState,1);
- return val;
- }
- int32_t LuaScript::setGlobalString(std::string var, std::string val)
- {
- return false;
- }
- int32_t LuaScript::setGlobalNumber(std::string var, int32_t val){
- lua_pushnumber(luaState, val);
- lua_setglobal(luaState, var.c_str());
- return true;
- }
- std::string LuaScript::getGlobalStringField (std::string var, const int32_t key, const std::string &defString) {
- lua_getglobal(luaState, var.c_str());
- lua_pushnumber(luaState, key);
- lua_gettable(luaState, -2); /* get table[key] */
- if(!lua_isstring(luaState, -1))
- return defString;
- std::string result = lua_tostring(luaState, -1);
- lua_pop(luaState, 2); /* remove number and key*/
- return result;
- }
- int32_t LuaScript::getField (const char *key) {
- int32_t result;
- lua_pushstring(luaState, key);
- lua_gettable(luaState, -2); /* get table[key] */
- result = (int32_t)lua_tonumber(luaState, -1);
- lua_pop(luaState, 1); /* remove number and key*/
- return result;
- }
- void LuaScript::setField (const char *index, int32_t val) {
- lua_pushstring(luaState, index);
- lua_pushnumber(luaState, (double)val);
- lua_settable(luaState, -3);
- }
- int32_t LuaScript::getField (lua_State *L , const char *key) {
- int32_t result;
- lua_pushstring(L, key);
- lua_gettable(L, -2); /* get table[key] */
- result = (int32_t)lua_tonumber(L, -1);
- lua_pop(L, 1); /* remove number and key*/
- return result;
- }
- void LuaScript::setField (lua_State *L, const char *index, int32_t val) {
- lua_pushstring(L, index);
- lua_pushnumber(L, (double)val);
- lua_settable(L, -3);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement