Ir para conteúdo
  • Cadastre-se

(Resolvido)Usar potion e abrir corpos mortos/puxar ring


Ir para solução Resolvido por WooX,

Posts Recomendados

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

Link para o post
Compartilhar em outros sites
  • Respostas 9
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

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() +

@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:   Substitua por: 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:   Logo abaixo, adicio

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 

Link para o post
Compartilhar em outros 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

Editado por Guizek69
remover a bagunça que fiz (veja o histórico de edições)
Link para o post
Compartilhar em outros 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 

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Estatísticas dos Fóruns

    96850
    Tópicos
    519616
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo