Postado Agosto 24, 2023 1 ano Para quem deseja utilizar o 'IncreaseMagicPercent' no arquivo items.xml, que aumenta o dano mágico em porcentagem No arquivo game.cpp depois. Player* attackerPlayer; if (attacker) { attackerPlayer = attacker->getPlayer(); } else { attackerPlayer = nullptr; } Player* targetPlayer = target->getPlayer(); if (attackerPlayer && targetPlayer && attackerPlayer->getSkull() == SKULL_BLACK && attackerPlayer->getSkullClient(targetPlayer) == SKULL_NONE) { return false; } damage.primary.value = std::abs(damage.primary.value); damage.secondary.value = std::abs(damage.secondary.value); int32_t healthChange = damage.primary.value + damage.secondary.value; if (healthChange == 0) { return true; } adicionar // Inc Magic by lursky auto originList = { ORIGIN_RANGED, ORIGIN_MELEE, ORIGIN_CONDITION }; auto it = std::find(originList.begin(), originList.end(), damage.origin); if (attackerPlayer && it == originList.end()) { int32_t magicPercentBonus = 0; for (int32_t slot = CONST_SLOT_FIRST; slot <= CONST_SLOT_LAST; ++slot) { Item* item = attackerPlayer->inventory[slot]; if (item) { const ItemType& iiType = Item::items[item->getID()]; const int32_t& slotPosition = item->getSlotPosition(); if (iiType.increaseMagicPercent && (iiType.slotPosition & slotPosition)) { magicPercentBonus += iiType.increaseMagicPercent; } } } if (magicPercentBonus > 0) { damage.primary.value += damage.primary.value * (magicPercentBonus / 100.0f); } } No arquivo item.cpp post edit: Deve ter colocado duas vezes, ok? É só procurar no item.cpp essa linha e adicionar. Repita a busca pela mesma linha e adicione para exibir 'inc magic'. Pronto depois. if (it.abilities) { for (uint8_t i = SKILL_FIRST; i <= SKILL_LAST; i++) { if (!it.abilities->skills[i]) { continue; } if (begin) { begin = false; s << " ("; } else { s << ", "; } s << getSkillName(i) << ' ' << std::showpos << it.abilities->skills[i] << std::noshowpos; } adicionar. if (it.increaseMagicPercent) { if (begin) { begin = false; s << " ("; } else { s << ", "; } s << "Inc.Magic " << std::showpos << it.increaseMagicPercent << '%' << std::noshowpos; } No arquivo items.cpp depois. {"worth", ITEM_PARSE_WORTH}, adicionar: { "increasemagicpercent", ITEM_PARSE_INCREASEMAGICPERCENT }, Novamente, no arquivo items.cpp: depois. case ITEM_PARSE_SUPPRESSCURSE: { if (valueAttribute.as_bool()) { abilities.conditionSuppressions |= CONDITION_CURSED; } break; } adicionar. case ITEM_PARSE_INCREASEMAGICPERCENT: { it.increaseMagicPercent = pugi::cast<int32_t>(valueAttribute.value()); break; } No arquivo items.h depois. uint64_t worth = 0; adicionar. int32_t increaseMagicPercent = 0; Novamente, no arquivo items.h: after. ITEM_PARSE_WORTH, adicionar: ITEM_PARSE_INCREASEMAGICPERCENT, FIM É só recompilar e testar Como funciona usar esses atributos? Veja aqui um exemplo item id="xxx" name="teste robe"> <attribute key="weight" value="7100"/> <attribute key="armor" value="18"/> <attribute key="slotType" value="body"/> <attribute key="increaseMagicPercent" value="50"/> </item> Obs: Esses adições na source foram feitas por Mateus Roberto, e Lurskcy fez uma correção de erro que estava causando um .crash no arquivo games.cpp. Está funcionando bem. Espero que gostem Editado Agosto 24, 2023 1 ano por GM Vortex (veja o histórico de edições)
Postado Agosto 24, 2023 1 ano Administrador Obrigado por compartilhar! Contato : https://www.linkedin.com/in/rafhael-oliveira/ Servidores : https://www.pokemmorpg.com Projetos : https://github.com/thetibiaking
Postado Agosto 24, 2023 1 ano Boa Tarde Amigos, Infelizmente nao funcionou no tfs 1.4 deu esse erro na hora de compilar, erro no game cpp Gravidade Código Descrição Projeto Arquivo Linha Estado de Supressão Erro (ativo) E0020 o identificador "attackerPlayer" não está definido theforgottenserver Editado Agosto 24, 2023 1 ano por Mayan Estevan (veja o histórico de edições)
Postado Agosto 24, 2023 1 ano Autor 43 minutos atrás, Mayan Estevan disse: Boa Tarde Amigos, Infelizmente nao funcionou no tfs 1.4 deu esse erro na hora de compilar, erro no game cpp Gravidade Código Descrição Projeto Arquivo Linha Estado de Supressão Erro (ativo) E0020 o identificador "attackerPlayer" não está definido theforgottenserver Ficou no lugar errado... precisa colocar na posição correta. Quando eu coloquei e compilei, funcionou. Mande o game.cpp para mim, que eu faço isso para você. É bem simples. Obs: Eu já coloquei a base do Nekiro, TFS 1.4.2 e 1.2 do Celohere, além da versão OTX 11X. Tudo está funcionando normalmente. Testado, OK 1 hora atrás, Underewar disse: Obrigado por compartilhar! obrigado...
Postado Agosto 24, 2023 1 ano Poxa cara se puder fazer isso eu agradeço muito , de toda forma estou agradecido eu tentei seguir o tutorial mas sou leigo demais , minha base e a do nekiro 1.4.2 mesmo game.cpp 5 minutos atrás, GM Vortex disse: Ficou no lugar errado... precisa colocar na posição correta. Quando eu coloquei e compilei, funcionou. Mande o game.cpp para mim, que eu faço isso para você. É bem simples. Obs: Eu já coloquei a base do Nekiro, TFS 1.4.2 e 1.2 do Celohere, além da versão OTX 11X. Tudo está funcionando normalmente. Testado, OK obrigado... 2 minutos atrás, Mayan Estevan disse: Poxa cara se puder fazer isso eu agradeço muito , de toda forma estou agradecido eu tentei seguir o tutorial mas sou leigo demais , minha base e a do nekiro 1.4.2 mesmo game.cpp 156.66 kB · 0 downloads Editado Agosto 24, 2023 1 ano por Mayan Estevan (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.