Postado Fevereiro 23, 2015 10 anos A pedido do usuário Vyctor17 (da OTBR) fiz uma função para multiplicar o dano dos monstros: Primeiro, em luascripts.cpp deverá ser adicionado, logo após: registerMethod("Monster", "isMonster", LuaScriptInterface::luaMonsterIsMonster); Isso: registerMethod("Monster", "multiplyDamage", LuaScriptInterface::luaMonsterMultiplyDamage); Logo abaixo de: int32_t LuaScriptInterface::luaMonsterIsMonster(lua_State* L) { // monster:isMonster() const Monster* monster = getUserdata<const Monster>(L, 1); pushBoolean(L, monster != nullptr); return 1; } Isso: int32_t LuaScriptInterface::luaMonsterMultiplyDamage(lua_State* L) { // monster:multiplyDamage(multiplier) Monster* monster = getUserdata<Monster>(L, 1); if (monster) { monster->multiplier = getNumber<uint32_t>(L, 2); pushBoolean(L, true); } else { lua_pushnil(L); } return 1; } Em luascripts.h: Logo após: static int32_t luaMonsterIsMonster(lua_State* L); Isso: static int32_t luaMonsterMultiplyDamage(lua_State* L); Em monster.h: Logo após: static uint32_t monsterAutoID; Isso: int32_t multiplier; Em monster.cpp: Logo após: Monster::Monster(MonsterType* _mtype) : Creature() { Isso: multiplier = 1; No método Monster::doAttacking, procure por: ATENÇÃO, TEM QUE SER NO MÉTODO Monster::doAttacking! minCombatValue = spellBlock.minCombatValue; maxCombatValue = spellBlock.maxCombatValue; Substitua por: minCombatValue = spellBlock.minCombatValue * multiplier; maxCombatValue = spellBlock.maxCombatValue * multiplier; E está feito. Se quiser fazer o monstro não dar dano, só por um multiplier abaixo de zero.
Postado Fevereiro 23, 2015 10 anos Seu tópico foi aprovado e acredito que será de muita ajuda pro pessoal do fórum. Estarei te dando um ponto de reputação e movendo pra área correta. Obrigado por contribuir Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Fevereiro 23, 2015 10 anos Autor É possível fazer algo mais específico com a variável isMelee, multiplicando apenas spell ou apenas melee. Se preferirem dessa forma posso editar novamente para atender esse caso. Editado Fevereiro 23, 2015 10 anos por elwyn (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.