Ir para conteúdo

Featured Replies

Postado

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 por GM Vortex (veja o histórico de edições)

  • Respostas 7
  • Visualizações 635
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Under mudou o título para [TFS 1x] IncreaseMagicPercent
Postado

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 por Mayan Estevan (veja o histórico de edições)

Postado
  • 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

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 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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo