Jump to content
Guizek69

Suporte Usar potion e abrir corpos mortos/puxar ring

Recommended Posts

Ola a todos!

Estou em busca de uma alteração no meu servidor.
Gostaria de que quando jogadores usassem potions, eles também conseguissem abrir corpos de monstros mortos/puxar ring ou amuletos etc.

Utilizo um TFS 0.4 3777 e possuo a source do mesmo.

Vou deixar a actions.cpp aqui postada.

Muito obrigado pela ajuda desde já.

actions.cpp

Agora, Guizek69 disse:

Ola a todos!

Estou em busca de uma alteração no meu servidor.
Gostaria de que quando jogadores usassem potions, eles também conseguissem abrir corpos de monstros mortos/puxar ring ou amuletos etc.

Utilizo um TFS 0.4 3777 e possuo a source do mesmo.

Vou deixar a actions.cpp aqui postada.

Muito obrigado pela ajuda desde já.

actions.cpp 21 kB · 0 downloads

@WooX

Share this post


Link to post
Share on other sites

Procure pela função bool Actions::useItemEx e onde estiver assim:

	player->setNextActionTask(NULL);
	player->stopWalk();
	player->setNextAction(OTSYS_TIME() + g_config.getNumber(ConfigManager::EX_ACTIONS_DELAY_INTERVAL) - SCHEDULER_MINTICKS);

Altere para:

	int32_t potions[] = {7620, 7589, 7590}; // IDs potions
	int16_t potionID = item->getID();
	if(std::find(std::begin(potions), std::end(potions), potionID) == std::end(potions))
	{
		player->setNextAction(OTSYS_TIME() + g_config.getNumber(ConfigManager::EX_ACTIONS_DELAY_INTERVAL));
	}
	player->stopWalk();

 

Lembrando que isso vai retirar o exausted exActions de todas os items adicionados ali, terá que ser adicionado exausted no script lua das poções.


 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Share this post


Link to post
Share on other sites

não que eu tenha o conhecimento pra fazer isso e é uma coisa mais complicada, mas quem quiser implementar isso de uma forma que não necessita constantes edições na source, da p criar uma função boolean que por default eh false mas dai com um script nas suas actions vc adiciona essas pots por exemplo como um true ai, ou qualquer outro item que vc não queira que exhauste 

Share this post


Link to post
Share on other sites

Agradeço muitissimo a ajuda!

Porém, tenho esse erro na hora de compilar, estou usando UBUNTU 16.04:

  CXX      actions.o
actions.cpp: In member function ‘bool Actions::useItemEx(Player*, const Position&, const P             osition&, uint8_t, Item*, bool, uint32_t)’:
actions.cpp:673:15: error: ‘begin’ is not a member of ‘std’
  if(std::find(std::begin(potions), std::end(potions), potionID) == std::end(potions))
               ^
actions.cpp:673:15: note: suggested alternatives:
In file included from /usr/include/boost/foreach.hpp:74:0,
                 from otsystem.h:35,
                 from inputbox.h:20,
                 from otpch.h:45,
                 from actions.cpp:17:
/usr/include/boost/range/begin.hpp:106:47: note:   ‘boost::range_adl_barrier::begin’
 inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type begin( const T& r )
                                               ^
In file included from /usr/include/boost/mpl/list/aux_/begin_end.hpp:17:0,
                 from /usr/include/boost/mpl/list/list0.hpp:27,
                 from /usr/include/boost/mpl/list/list10.hpp:18,
                 from /usr/include/boost/mpl/list/list20.hpp:18,
                 from /usr/include/boost/mpl/list.hpp:36,
                 from /usr/include/boost/math/policies/policy.hpp:9,
                 from /usr/include/boost/math/special_functions/math_fwd.hpp:28,
                 from /usr/include/boost/math/special_functions/sign.hpp:17,
                 from /usr/include/boost/lexical_cast/detail/inf_nan.hpp:34,
                 from /usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp             :64,
                 from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:53,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:34,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from otsystem.h:38,
                 from inputbox.h:20,
                 from otpch.h:45,
                 from actions.cpp:17:
/usr/include/boost/mpl/begin_end_fwd.hpp:22:38: note:   ‘boost::mpl::begin’
 template< typename Sequence > struct begin;
                                      ^
In file included from /usr/include/boost/foreach.hpp:74:0,
                 from otsystem.h:35,
                 from inputbox.h:20,
                 from otpch.h:45,
                 from actions.cpp:17:
/usr/include/boost/range/begin.hpp:106:47: note:   ‘boost::range_adl_barrier::begin’
 inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type begin( const T& r )
                                               ^
In file included from otsystem.h:35:0,
                 from inputbox.h:20,
                 from otpch.h:45,
                 from actions.cpp:17:
/usr/include/boost/foreach.hpp:689:1: note:   ‘boost::foreach_detail_::begin’
 begin(auto_any_t col, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-styl             e strings
 ^
actions.cpp:673:36: error: ‘end’ is not a member of ‘std’
  if(std::find(std::begin(potions), std::end(potions), potionID) == std::end(potions))
                                    ^
actions.cpp:673:36: note: suggested alternatives:
In file included from /usr/include/boost/foreach.hpp:73:0,
                 from otsystem.h:35,
                 from inputbox.h:20,
                 from otpch.h:45,
                 from actions.cpp:17:
/usr/include/boost/range/end.hpp:100:47: note:   ‘boost::range_adl_barrier::end’
 inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type end( const T& r )
                                               ^
In file included from /usr/include/boost/mpl/list/aux_/begin_end.hpp:17:0,
                 from /usr/include/boost/mpl/list/list0.hpp:27,
                 from /usr/include/boost/mpl/list/list10.hpp:18,
                 from /usr/include/boost/mpl/list/list20.hpp:18,
                 from /usr/include/boost/mpl/list.hpp:36,
                 from /usr/include/boost/math/policies/policy.hpp:9,
                 from /usr/include/boost/math/special_functions/math_fwd.hpp:28,
                 from /usr/include/boost/math/special_functions/sign.hpp:17,
                 from /usr/include/boost/lexical_cast/detail/inf_nan.hpp:34,
                 from /usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp             :64,
                 from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:53,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:34,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from otsystem.h:38,
                 from inputbox.h:20,
                 from otpch.h:45,
                 from actions.cpp:17:
/usr/include/boost/mpl/begin_end_fwd.hpp:23:38: note:   ‘boost::mpl::end’
 template< typename Sequence > struct end;
                                      ^
In file included from /usr/include/boost/foreach.hpp:73:0,
                 from otsystem.h:35,
                 from inputbox.h:20,
                 from otpch.h:45,
                 from actions.cpp:17:
/usr/include/boost/range/end.hpp:100:47: note:   ‘boost::range_adl_barrier::end’
 inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type end( const T& r )
                                               ^
In file included from otsystem.h:35:0,
                 from inputbox.h:20,
                 from otpch.h:45,
                 from actions.cpp:17:
/usr/include/boost/foreach.hpp:729:1: note:   ‘boost::foreach_detail_::end’
 end(auto_any_t, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style stri             ngs
 ^
actions.cpp:673:68: error: ‘end’ is not a member of ‘std’
  if(std::find(std::begin(potions), std::end(potions), potionID) == std::end(potions))
                                                                    ^
actions.cpp:673:68: note: suggested alternatives:
In file included from /usr/include/boost/foreach.hpp:73:0,
                 from otsystem.h:35,
                 from inputbox.h:20,
                 from otpch.h:45,
                 from actions.cpp:17:
/usr/include/boost/range/end.hpp:100:47: note:   ‘boost::range_adl_barrier::end’
 inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type end( const T& r )
                                               ^
In file included from /usr/include/boost/mpl/list/aux_/begin_end.hpp:17:0,
                 from /usr/include/boost/mpl/list/list0.hpp:27,
                 from /usr/include/boost/mpl/list/list10.hpp:18,
                 from /usr/include/boost/mpl/list/list20.hpp:18,
                 from /usr/include/boost/mpl/list.hpp:36,
                 from /usr/include/boost/math/policies/policy.hpp:9,
                 from /usr/include/boost/math/special_functions/math_fwd.hpp:28,
                 from /usr/include/boost/math/special_functions/sign.hpp:17,
                 from /usr/include/boost/lexical_cast/detail/inf_nan.hpp:34,
                 from /usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp             :64,
                 from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:53,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:34,
                 from /usr/include/boost/lexical_cast.hpp:32,
                 from otsystem.h:38,
                 from inputbox.h:20,
                 from otpch.h:45,
                 from actions.cpp:17:
/usr/include/boost/mpl/begin_end_fwd.hpp:23:38: note:   ‘boost::mpl::end’
 template< typename Sequence > struct end;
                                      ^
In file included from /usr/include/boost/foreach.hpp:73:0,
                 from otsystem.h:35,
                 from inputbox.h:20,
                 from otpch.h:45,
                 from actions.cpp:17:
/usr/include/boost/range/end.hpp:100:47: note:   ‘boost::range_adl_barrier::end’
 inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type end( const T& r )
                                               ^
In file included from otsystem.h:35:0,
                 from inputbox.h:20,
                 from otpch.h:45,
                 from actions.cpp:17:
/usr/include/boost/foreach.hpp:729:1: note:   ‘boost::foreach_detail_::end’
 end(auto_any_t, type2type<T *, C> *, boost::mpl::true_ *) // null-terminated C-style stri             ngs

Edited by Guizek69
remover a bagunça que fiz (see edit history)

Share this post


Link to post
Share on other sites
20 horas atrás, Gabrieldsadaxas disse:

não que eu tenha o conhecimento pra fazer isso e é uma coisa mais complicada, mas quem quiser implementar isso de uma forma que não necessita constantes edições na source, da p criar uma função boolean que por default eh false mas dai com um script nas suas actions vc adiciona essas pots por exemplo como um true ai, ou qualquer outro item que vc não queira que exhauste 

Nenhuma solução em Lua seria efetiva, o "problema" que ele quer resolver reside nas sources mesmo, é o exausted adicionado a todos os items que podem ser usados em outros items e players, esse mesmo exausted afeta o uso de items comuns (como um corpo por exemplo) e ações como mover ou equipar items.

 

19 horas atrás, Guizek69 disse:

Agradeço muitissimo a ajuda!

Porém, tenho esse erro na hora de compilar, estou usando UBUNTU 16.04:

actions.cpp:673:15: error: ‘begin’ is not a member of ‘std’
  if(std::find(std::begin(potions), std::end(potions), potionID) == std::end(potions))
               ^

Adiciona isso no começo do arquivo, se mesmo assim não compilar significa que você está utilizando algum compilador com versão inferior ao C++11 (como dev-cpp por exemplo).

#include <iterator>

 


 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Share this post


Link to post
Share on other sites
5 horas atrás, WooX disse:

Nenhuma solução em Lua seria efetiva, o "problema" que ele quer resolver reside nas sources mesmo, é o exausted adicionado a todos os items que podem ser usados em outros items e players, esse mesmo exausted afeta o uso de items comuns (como um corpo por exemplo) e ações como mover ou equipar items.

 

Adiciona isso no começo do arquivo, se mesmo assim não compilar significa que você está utilizando algum compilador com versão inferior ao C++11 (como dev-cpp por exemplo).


#include <iterator>

 

Meu querido,


Incluí no cabeçalho do actions.cpp o #include mencionado. 
Mesmo assim o erro de compilação continua.

Busquei informaçoes sobre o Ubuntu 16.04 e verifiquei que ele utiliza o C++ 11.

Continuarei na busca por uma solução. Caso alguem possa me dar um norte, agradeço!

Edited by Guizek69
erro (see edit history)

Share this post


Link to post
Share on other sites
16 horas atrás, Guizek69 disse:

Meu querido,


Incluí no cabeçalho do actions.cpp o #include mencionado. 
Mesmo assim o erro de compilação continua.

Busquei informaçoes sobre o Ubuntu 16.04 e verifiquei que ele utiliza o C++ 11.

Continuarei na busca por uma solução. Caso alguem possa me dar um norte, agradeço!

Se você está utilizando linux, tem que compilar. Tenta limpar os arquivos de objeto (actions.o por exemplo), e tenta novamente.


 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Share this post


Link to post
Share on other sites
8 horas atrás, WooX disse:

Se você está utilizando linux, tem que compilar. Tenta limpar os arquivos de objeto (actions.o por exemplo), e tenta novamente.

@WooX agradeço muito a ajuda!

Meus problemas foram solucionados.
Segue enredo para quem tem o mesmo problema para compilar:

Vá ate a pasta de sua source e abra o arquivo Makefile
Procure por:
 

Citar

CXXFLAGS = -pipe

Substitua por:

Citar

CXXFLAGS = $(CFLAGS) -std=c++11

Isso resolve o problema da compilação.

Após isso, você terá que adicionar exaustao a cada potion que foi adicionada a função na source.
Vá até a pasta Actions de seu OT.
Abra o script de cada potion adicionada e procure por:

 

Citar

function onUse(cid, item, fromPosition, itemEx, toPosition)

Logo abaixo, adicione:
 

Citar

if exhaustion.check(cid, 23006) == false then
exhaustion.set(cid, 23006, 0.95)
else
doPlayerSendCancel(cid, "You are exhausted.")
return false
end

Sendo:
23006 = storage para exaustar (fica a seu criterio, mas tem que ser o mesmo para todas as potions adicionadas)
0.95 = tempo de exaustao (sempre em segundos! No meu caso, 0.95 milesimos de segundo)

Boa sorte a todos,

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 Paolobalaza98
      .Qual servidor ou website você utiliza como base? 
      BASE EXAIOROS KPDO COM MODIFICACIONES
      Qual o motivo deste tópico? 
      ALHUDAR ME A ABRIR
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • By DiigooMix
      Olá galera, estava brincando no servidor que estou usando e notei um probleminha. A magia exana pox não remove o poison do personagem, fora do pz. E se eu uso exana pox mesmo sem estar com poison, assim que eu uso a magia, o char fica com poison, começando com dano de 94 e vai diminuindo, mas nunca mais sai, só sai se uso a magia no pz. Se eu uso exana pox no templo que é protection zone, funciona perfeitamente.
       
      Segue o script da spell:
       
       
      Estou com a source do servidor aqui comigo.
       
      TFS 0.4
    • By WesleyLive
      Acabei de adquirir um ot, ele veio na Versão 8.5, preciso de algum programador que possa me ajudar a da Update para 8.6  arrumar o site e implementar alguns sistemas novos básicos
       
      21 974597961 - Pago pelo trabalho, preciso de alguém de confiança.. estou sozinho no projeto e preciso de suporte para tal
    • By allmarshall
      Olá! Desculpe o incômodo...
       
      Baixei recentemente um servidor disponibilizado aqui no fórum (NTO Hard, do Roberto/Eros) e utilizei a database disponibilizada pelo mesmo. 
      Consegui configurar o site, pesquisei a noite toda - já que sou novo nesse assunto de otserver - e arrumei alguns erros que estavam acontecendo - com algumas ajudas -, porém agora encontrei dois erros que não faço a mínima ideia de como arrumar, mesmo depois de pesquisar aqui e em outros lugares.
       
      O primeiro: Na distro, vez ou outra, o seguinte erro aparece, e pesquisando eu descobri que isso é por conta de não existir a tabela "player_killers". O que devo fazer para arrumar ? Ou, melhor, o que posso fazer para criar essa tabela e fazer com que esse erro tenha fim ?
       
       
      O segundo: In-game, percebi que toda vez que um personagem reloga, todas as suas skills retornam para o nível 10. Tanto os meus personagens quanto o de meus amigos que logaram. Mesmo que cheguem ao nível 20 de Fist (taijutsu), após clicar em logout e entrar novamente, essa mesma skill vai ter retornado para o 10. Pesquisando, consegui incluir esses personagens através de suas IDs na tabela "player_skills" e fazer com que esse erro deixasse de acontecer, porém todos os personagens que são criados agora eu tenho que adicionar manualmente na tabela, ou então suas skills continuarão no nível 10.
       
      Isso é um erro na database mesmo, no site onde os personagens são criados ou em algum arquivo .lua do servidor ? 
       
       
      Obrigado pela paciência, e agradeço desde já pela ajuda
    • By allmarshall
      Olá!
       
      Eu baixei recentemente um servidor disponibilizado aqui na comunidade pelo Eros (criador do NTO Hard, com o servidor baixado sendo esse mesmo) e admito que estou morrendo de vergonha de estar criando esse tópico pois pode parecer que estou querendo tudo mastigadinho, mas eu realmente não entendo nada sobre isso.
       
      Gostaria de saber como faço pra colocar aquele servidor online. Estou pretendendo abrir ele de forma privada e via Hamachi (o qual eu já sei configurar) para alguns amigos próximos para que possamos jogar juntos. Sem fins lucrativos ou intenção de fazer como alguns e colocar ele online como se o trabalho fosse inteiramente deles.
       
      Eu tinha o costume de baixar servers daqui do tibiaking e ligar ele de forma privada para esses mesmos amigos (poketibias, naturibias, wodbos, etc, principalmente o NTO Black/White já disponibilizado aqui o qual é bem fácil de ligar e modificar as scripts.), mas sempre foi o mesmo: Baixar, editar o config.lua, editar o sqlite e usar o programa que ligava o servidor. Mas eu fiquei completamente perdido quando vi isso aqui e não sei nem por onde começo:
       


       
      Alguém poderia me ajudar com isso ? ;-;
      Desculpe o incômodo
      Obrigado
       
  • 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...