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

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

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

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

Link para o post
Compartilhar em outros sites
  • 2 months later...

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo