Postado Junho 28, 2020 5 anos 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
Postado Junho 29, 2020 5 anos Solução Este é um post popular. 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
Postado Junho 29, 2020 5 anos 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 Se eu te ajudei e você também quer me ajudar, faça uma doação Tfs 0.4 - Click up Tfs 0.4 - Countdown horário dos próximos eventos Tfs 0.4 - Spell que cancela o target do inimigo
Postado Junho 29, 2020 5 anos Autor 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 Junho 29, 2020 5 anos por Guizek69 remover a bagunça que fiz (veja o histórico de edições)
Postado Junho 30, 2020 5 anos 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
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.