Jump to content
Mathias Kenfi

Programação [Novos Atributos] Critical/Dodge/Life e Mana Leech/Life e Mana Absorb

Recommended Posts

@Mathias Kenfi dúvida o que acontece se adicionar esse critical e deixar o outro padrão ativo??? os dois se somam ou buga ?


🛠️ Projeto NTO NS 🛠️

📝 Detalhes 📝

🗺️ Mapa próprio em produção 🗺️

🖱️ Versão: 8.60 🖱️

🔥 War System 🔥

⚔️ Jutsus Próprios baseado no anime ⚔️

🔰 Itens com as características e efeitos do anime 🔰

💻 Para mais detalhes acesse as redes sociais do servidor abaixo 💻

💡 Usando como referencias Anime/Jogos/Wallpapers etc... para trazer algo mais próximo possível do universo de Naruto 💡

 

💎 Redes Sociais 💎

🌀 Facebook 🌀

🎒 Youtube 🎒
🌌 Discord 🌌

 

📚 Tutoriais / Conteúdos 📥

♨️ Clique Aqui ♨️

Share this post


Link to post
Share on other sites
6 minutos atrás, LeoTK disse:

@Mathias Kenfi dúvida o que acontece se adicionar esse critical e deixar o outro padrão ativo??? os dois se somam ou buga ?

 

Eles somam

Share this post


Link to post
Share on other sites

É muito bom ver que ainda temos alguns realmente contribuindo com a ideia de OpenSource..  Apesar de do Dodge e Critical serem sistemas que todo mundo já possui de alguma forma, se conseguíssemos padronizar todo mundo pra usar esse seria mais fácil pra todos.


Minhas Contribuições para o fórum

Já trabalhou com Linux? Se a resposta é NÃO, aprenda o básico aqui

Google Cloud Plataform- Seu servidor online, sem gastar nada

Instalando site, compilando OTX2 e TFS 1.3

 

Ofereço soluções em Design, Marketing, Desenvolvimento e Produção para Empresas (Não faço para OpenTibia).

Spoiler

Design

  • Desenvolvimento de Logotipo
  • Tratamento de foto / imagem
  • Criação da parte gráfica para Redes Sociais

 

Marketing

  • Campanha de Marketing com Google ADS
  • Campanha de Marketing com Facebook ADS
  • Campanha de Marketing com Instagram

 

Desenvolvimento

  • Desenvolvimento de Site Institucional
  • Desenvolvimento de Loja Virtual

 

Produção

  • Produção e edição de fotos de produtos para divulgação na web
  • Produção de vídeos para divulgações e campanhas de marketing

 

discord: Diego#9020

whatsapp: (11) 95938-5060

Share this post


Link to post
Share on other sites

Eu tinha pensado que não ia disponibilizar quando tava criando, mas pensei errado e_e 

Boa Mathias como smp ajudando o fórum, continua assim que você vai longe cara! xD

 

Uma pequena dúvida, funciona para 0.3.6?

Edited by Spooky Ghost (see edit history)

Share this post


Link to post
Share on other sites

Na parte abaixo de item.cpp, voce nao especificou onde e encontrado os arquivos, creio eu que esta faltando colocar mais coisas no post, pois estou procurando essas funcoes nos mesmo arquivos e nao estou encontrando. 

testei no 0.4 e otx 

Edited by leozincorsair (see edit history)

Share this post


Link to post
Share on other sites
20 minutos atrás, leozincorsair disse:

Na parte abaixo de item.cpp, voce nao especificou onde e encontrado os arquivos, creio eu que esta faltando colocar mais coisas no post, pois estou procurando essas funcoes nos mesmo arquivos e nao estou encontrando. 

testei no 0.4 e otx 

 

Todos os arquivos estão citados.

 

items.cpp

items.h

item.cpp

item.h

player.cpp

player.h

game.cpp

 

Edited by Mathias Kenfi (see edit history)

Share this post


Link to post
Share on other sites
36 minutos atrás, Mathias Kenfi disse:

Todos os arquivos estão citados.

 

items.cpp

items.h

item.cpp

item.h

player.cpp

player.h

game.cpp

 

 

Vey eu nao encontrei essas funcoes de jeito nenhum na source, verifica ai por favor se esta correto, não achei a partir do item.cpp

 

Edited by leozincorsair (see edit history)

Share this post


Link to post
Share on other sites

@leozincorsair Eu consegui encontrar sem nenhum problema, as informações do tópico estão bem informativas, creio que você que deve estar se confundindo com algum lugar, não encontrou tentando no ctrl+c? tenta por palavras chaves amigo.

Share this post


Link to post
Share on other sites
41 minutos atrás, Spooky Ghost disse:

@leozincorsair Eu consegui encontrar sem nenhum problema, as informações do tópico estão bem informativas, creio que você que deve estar se confundindo com algum lugar, não encontrou tentando no ctrl+c? tenta por palavras chaves amigo.

 

Eu nao consigo achar

 

if(it.attackSpeed || (item && item->getAttackSpeed()))
		{
			if(begin)
			{
				begin = false;
				s << " (";
			}
			else
				s << ", ";

			s << "AS: " << (item ? item->getAttackSpeed() : it.attackSpeed);
ATTR_DUALWIELD = 43,

Qual arquivo voce viu ?

error

Screenshot_43.png

Screenshot_44.png

Share this post


Link to post
Share on other sites

tb não consegui achar o 

if(it.attackSpeed || (item && item->getAttackSpeed()))

mas enfim, parabens pelo trabalho man, obg por compartilhar

Share this post


Link to post
Share on other sites

@bellatrikz só copiar as funções apenas dos leech... só olhar bem onde a função termina


🛠️ Projeto NTO NS 🛠️

📝 Detalhes 📝

🗺️ Mapa próprio em produção 🗺️

🖱️ Versão: 8.60 🖱️

🔥 War System 🔥

⚔️ Jutsus Próprios baseado no anime ⚔️

🔰 Itens com as características e efeitos do anime 🔰

💻 Para mais detalhes acesse as redes sociais do servidor abaixo 💻

💡 Usando como referencias Anime/Jogos/Wallpapers etc... para trazer algo mais próximo possível do universo de Naruto 💡

 

💎 Redes Sociais 💎

🌀 Facebook 🌀

🎒 Youtube 🎒
🌌 Discord 🌌

 

📚 Tutoriais / Conteúdos 📥

♨️ Clique Aqui ♨️

Share this post


Link to post
Share on other sites

iradooooo, irei usar <3

 

 

Estava eu compilando quando me deparo com esse erro, como foi muitas modificações na source, pensei que tinha errado algo, mas refiz tudo do zero com mais atenção e deu novamente o mesmo erro, estou usando TFS 0.4

 

luascript.cpp: In static member function static int32_t LuaInterface::luaGetPlayerManaAbsorb(lua_State*)’:
luascript.cpp:9488:29: error: class Player has no member named getManaAsborb
   lua_pushnumber(L, player->getManaAsborb());
                             ^
Makefile:40: recipe for target 'obj/luascript.o' failed
make: *** [obj/luascript.o] Error 1

 

Edited by Ackerzin
nao ter que duplicar post (see edit history)

       112674.gif

 

 

 

Share this post


Link to post
Share on other sites

@Ackerzin melhor forma de você aplicar em qualquer source é pegar uma função existe na sua source e usar o DiffCheker para comparar os códigos e deixar o do tópico com as mesmas funções e chamadas da sua source assim é 100% de certeza que não vai dar erro porque muda alguns pequenos detalhes de source para source ai é nisso que gera o erro


🛠️ Projeto NTO NS 🛠️

📝 Detalhes 📝

🗺️ Mapa próprio em produção 🗺️

🖱️ Versão: 8.60 🖱️

🔥 War System 🔥

⚔️ Jutsus Próprios baseado no anime ⚔️

🔰 Itens com as características e efeitos do anime 🔰

💻 Para mais detalhes acesse as redes sociais do servidor abaixo 💻

💡 Usando como referencias Anime/Jogos/Wallpapers etc... para trazer algo mais próximo possível do universo de Naruto 💡

 

💎 Redes Sociais 💎

🌀 Facebook 🌀

🎒 Youtube 🎒
🌌 Discord 🌌

 

📚 Tutoriais / Conteúdos 📥

♨️ Clique Aqui ♨️

Share this post


Link to post
Share on other sites

@Gabrieldsadaxas @leozincorsair O tutorial foi feito a partir da OTX 2.xx séries na qual já existe, por padrão, atributos como dualwield e attackspeed

 

Vocês devem, no entanto, adaptar para a source de vocês.

 

Não tem que colocar especificamente depois de

ATTR_DUALWIELD = 43;

 Vocês devem colocar ele depois do PENÚLTIMO ATTR e antes do ÚLTIMO

 

A mesma coisa no item.cpp em relação ao attackspeed

if(it.attackSpeed || (item && item->getAttackSpeed()))

Se não tem na source vocês podem olhar em uma source que tenha (OTX 2.XX séries de preferência) e ver em qual posição deve ser colocada

 

		else if(it.weaponType != WEAPON_AMMO && it.weaponType != WEAPON_WAND)
		{
			if(it.attack || it.extraAttack || (item && (item->getAttack() || item->getExtraAttack())))
			{
				begin = false;
				s << " (Atk:";
				if(it.hasAbilities() && it.abilities->elementType != COMBAT_NONE)
				{
					s << std::max((int32_t)0, int32_t((item ? item->getAttack() : it.attack) - it.abilities->elementDamage));
					if(it.extraAttack || (item && item->getExtraAttack()))
						s << " " << std::showpos << int32_t(item ? item->getExtraAttack() : it.extraAttack) << std::noshowpos;

					s << " physical + " << it.abilities->elementDamage << " " << getCombatName(it.abilities->elementType);
				}
				else
				{
					s << int32_t(item ? item->getAttack() : it.attack);
					if(it.extraAttack || (item && item->getExtraAttack()))
						s << " " << std::showpos << int32_t(item ? item->getExtraAttack() : it.extraAttack) << std::noshowpos;
				}
			}

			if(it.defense || it.extraDefense || (item && (item->getDefense() || item->getExtraDefense())))
			{
				if(begin)
				{
					begin = false;
					s << " (";
				}
				else
					s << ", ";

				s << "Def:" << int32_t(item ? item->getDefense() : it.defense);
				if(it.extraDefense || (item && item->getExtraDefense()))
					s << " " << std::showpos << int32_t(item ? item->getExtraDefense() : it.extraDefense) << std::noshowpos;
			}
		}

		if(it.attackSpeed || (item && item->getAttackSpeed()))
		{
			if(begin)
			{
				begin = false;
				s << " (";
			}
			else
				s << ", ";

			s << "AS: " << (item ? item->getAttackSpeed() : it.attackSpeed);
		}

Claramente você perecebe que o attackspeed está depois de 

else if(it.weaponType != WEAPON_AMMO && it.weaponType != WEAPON_WAND)
		{
			if(it.attack || it.extraAttack || (item && (item->getAttack() || item->getExtraAttack())))
			{
				begin = false;
				s << " (Atk:";
				if(it.hasAbilities() && it.abilities->elementType != COMBAT_NONE)
				{
					s << std::max((int32_t)0, int32_t((item ? item->getAttack() : it.attack) - it.abilities->elementDamage));
					if(it.extraAttack || (item && item->getExtraAttack()))
						s << " " << std::showpos << int32_t(item ? item->getExtraAttack() : it.extraAttack) << std::noshowpos;

					s << " physical + " << it.abilities->elementDamage << " " << getCombatName(it.abilities->elementType);
				}
				else
				{
					s << int32_t(item ? item->getAttack() : it.attack);
					if(it.extraAttack || (item && item->getExtraAttack()))
						s << " " << std::showpos << int32_t(item ? item->getExtraAttack() : it.extraAttack) << std::noshowpos;
				}
			}

			if(it.defense || it.extraDefense || (item && (item->getDefense() || item->getExtraDefense())))
			{
				if(begin)
				{
					begin = false;
					s << " (";
				}
				else
					s << ", ";

				s << "Def:" << int32_t(item ? item->getDefense() : it.defense);
				if(it.extraDefense || (item && item->getExtraDefense()))
					s << " " << std::showpos << int32_t(item ? item->getExtraDefense() : it.extraDefense) << std::noshowpos;
			}
		}

Então se não tiver esse atributo na sua source é só adicionar depois do código citado acima

Share this post


Link to post
Share on other sites
1 hora atrás, LeoTK disse:

@Ackerzin melhor forma de você aplicar em qualquer source é pegar uma função existe na sua source e usar o DiffCheker para comparar os códigos e deixar o do tópico com as mesmas funções e chamadas da sua source assim é 100% de certeza que não vai dar erro porque muda alguns pequenos detalhes de source para source ai é nisso que gera o erro

 

Não entendi como posso usar isso ai, poderia me mostrar como fazer?


       112674.gif

 

 

 

Share this post


Link to post
Share on other sites
6 minutos atrás, Ackerzin disse:

Não entendi como posso usar isso ai, poderia me mostrar como fazer?

 

Apenas troque

player->getManaAsborb()

por 

player->getManaAbsorb()

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By XRay
      Preciso de algum progamador free lance, que tenha referências!.
      O quanto antes!!! Obg
    • By Mor3nao
      .Qual servidor ou website você utiliza como base? 
      otservbr 12.31
       
      Qual o motivo deste tópico? 
      Meu servidor tem o sistema de auto loot funcionando 100%, q nem o tibia global, só que, eu queria q ele nao precisasse de abrir os corpos, tipo, se tem gold coin na loot list, ele pega gold coin sem abrir nda
      Aí eu já fucei aqui os foruns, fucei as sources, os scripts, e nao consigo achar nda que me ajude a fazer isso, alguem sabe como seguir?
       
       
    • By luangop
      Estou usando tfs 0.3.6, tibia 8.54 (poketibia mas não interfere)
       
      Meu servidor é high exp e portanto os players acumulam altos valores de gold, para equilibrar tenho NPC's que vendem items a preços igualmente elevados.
      A questão é, na source as funções getPlayerMoney, doPlayerRemoveMoney e doPlayerAddMoney estão em 32 bits. Sendo assim se o player tiver mais de 2 bilhoes em dinheiro (worth, valor das notas no items.xml) na bag e fala com algum npc ou qualquer coisa que 'retire' 'dinheiro' da bag, buga e acaba removendo muito mais que deveria.
      Já tentei passar por conta as funções para 64bits mas não obtive sucesso. Alguém já mexeu com isso antes para me dar uma luz?
       
    • By Jhonjhon775
      quando vai gera o arquivo executável da erro alguém sabe me ajudar ai desde já agradeço
       


    • By tetheuscunha
      Eu tenho esse script e gostaria que pra mudar o fastattack precisasse da storage e nao da SKILL_FIRST
       
      uint32_t Player::getAttackSpeed() const { int32_t SpeedAttack; SpeedAttack = vocation->getAttackSpeed() - (getSkill(SKILL_FIST, SKILL_LEVEL) * 10); if (SpeedAttack < 500) { return 500; } else { return (uint32_t) SpeedAttack; } }
  • Recently Browsing   0 members

    No registered users viewing this page.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...