Ir para conteúdo
  • Cadastre-se

Guizek69

Membro
  • Total de itens

    30
  • Registro em

  • Última visita

Posts postados por Guizek69

  1. 1 hora atrás, Luizmdc70 disse:

    Quando substituido da um erro na compilação.  

     

    Verifique se o final da linha foi colocada adequadamente. Eu fiz uma alteração na resposta, pode ser que você copiou antes.
    Refaça o processo por favor que o erro está aí.

    false));
  2. No config.lua


    Substitua:

    Citar

    pushCreatureDelay = 1.1 * 1000  

    Por:

    Citar

    pushCreatureDelay = 1 * 900  


    Em Game.cpp procure por:
     

    Citar
    
    boost::bind(&Game::playerMoveCreature, this, playerId, movingCreatureId, movingCreaturePos, toPos));


    Substitua por:

    Citar
    
    boost::bind(&Game::playerMoveCreature, this, playerId, movingCreatureId, movingCreaturePos, toPos, false));

     

    Creditos: @leozynho123

  3. 1 hora atrás, Luizmdc70 disse:

    Então. TFS 0.4

    Esse sistema que eu quero não é atraves do Config.Lua. é atraves do Game.cpp na source.

    Se quer ajuda precisa deixar ser ajudado kk

    Como disse, poste seu config.lua e também seu game.cpp

  4. 22 minutos atrás, Vodkart disse:

    Era mais facil fazer uma tabela que não executasse nesse tipo de boss...

     

    
    BlockMonsters = {"Demon","Hydra"} -- nome dos mobs
    	if isMonster(cid) and not isInArray(BlockMonsters, getCreatureName(cid)) then
    		-- sua função do autoLoot
    	end

     

    Olá grande mestre!
    Perdoe-me minha ignorancia, mas nao entendi bem sua colocação.

    Meu problema não está relacionado a criatura x ou y e sim ao fato do lastHitKiller ficar com o loot da tabela mesmo se desse apenas 1 de dano em determinada criatura.
    Sendo assim, ele não seria o dono do corpo morto mas ficaria com o loot "rare" de outro consequentemente.
    Isso é resolvido buscando a matriz deathList[2] no onDeath - que certifica de dar o loot ao jogador certo ( o que deu mais dano ).

    Ficou 100% perfeito agora.

    7 minutos atrás, Tottin disse:

    Mas se o evento onDeath só ativa em monstros cujo tiveram a tag da script registrada (me corrija se eu estiver errado), não seria 1 tanto quanto desnecessário adicionar uma checagem pra ver se o monstro morto deve ou não ativar a script de autoloot, sendo que bastaria não registrar a tag nos monstros que você não quer que ative a script. Claro que a situação mudaria se a função fosse de onKill.

    É o inverso amigo.

    O evento ativa em todas as criaturas, exceto as que estao em block list (bosses).

  5. Em 19/07/2020 em 19:45, WooX disse:

    A resposta é não, pelo menos não uma função Lua.

     

    Tenta buscar pelo atributo "corpseowner" com a função getItemAttribute, pode ser que funcione.

     

    Eu não me recordo da existência dos parâmetros lastHitKiller e mostDamageKiller, pelo menos não no TFS 0.4. Mas se o callback realmente retornar estes valores, a solução pro problema ta ai, só utilizar o mostDamageKiller que vai retornar quem deu mais dano.

     

    Edit: me lembrei que um conhecido estava passando por este mesmo problema a algum tempo atrás, eu cheguei a postar a solução que ele encontrou em outro tópico, pode dar uma olhada.

     

     

    A solução foi MUITO mais simples do que eu pensei, agradeço a ajuda de todos vocês, vocês são fod@!!

    Segue enredo:

    A função onDeath tem duas matrizes: lastHitKiller e mostDamageKiller.

    Quando voce usa deathList[1] aplica-se a matriz lastHitKiller, o jogador que causou o hit kill.
    Quando voce usa deathList[2] aplica-se a matriz mostDamageKiller ou seja, o maior causador de dano.

    Na onPrepareDeath, mesma regra etc..

    Citar
    
    function onPrepareDeath(cid, deathList)
    	lastHitKiller = deathList[1]
    	mostDamageKiller = deathList[2]

    Logo minha função ficou assim:
     

    Citar

    function onDeath(cid, corpse, deathList)

    local killer1 = deathList[1]
    local killer2 = deathList[2]
    local pos = getCreaturePosition(cid)

    if killer2 == nil then
    addEvent(corpseRetireItems,1,killer1,pos)
    else
    addEvent(corpseRetireItems,1,killer2,pos)
    end
    return true
    end

    Vale a pena lembrar que voce deve criar verificaçoes basicas como if isPlayer(cid) and isMonster(target).
    No meu caso, nao foi necessario porque a verificação é feita num evento "combat" e ele joga os players determinado para o onDeath.

    RESOLVIDO.
     

  6. 4 minutos atrás, Tottin disse:

    Meu querido, eu acabei de te mandar exatamente isso, ele vai enviar o loot pra quem fragou o monstro. Se o jogo te reconheceu como "dono do loot" então o loot vai ser enviado pra você, Vou ser gente boa e vou montar a função pra tu. Isso possivelmente vai resolver o seu problema, se não funcionar, então seu servidor reconhece o "dono do loot" de outra forma. Seria interessante descobrir qual.

    function onDeath(cid, corpse, lastHitKiller, mostDamageKiller)

    local killer = lastHitKiller[1]
    pos = getCreaturePosition(cid)
    addEvent(loot,1,killer,pos)
    return true
    end

    O corpseOwner para criaturas é sempre quem deu mais dano em tal, nao quem deu o hit final.
    Acho que esta confundindo com o frag player system.
     

  7. 1 hora atrás, Tottin disse:

    Se você quer trabalhar somente com o player que pegou o loot você pode utilizar a função da seguinte forma:
    function onDeath(cid, corpse, lastHitKiller, mostDamageKiller)
    local killer = lastHitKiller[1] --- a atribuição em uma variável do player que pegou o frag é totalmente opcional.

    Dai caso queira realizar alguma ação em cima desse player pode fazer da seguinte forma:
    if isPlayer(killer) then --- Não lembro ao certo se tem monstros entram na lista (lastHitKiller) então só por precaução eu recomendaria fazer uma checagem se quem fragou é 1 player.
    doPlayerAddItem(killer, 13981, 1)
    end

    O problema é exatamente esse. O auto loot nao avalia todos os jogadores que participaram no combate para x criatura.
    Ele determina que o loot é de quem deu o ultimo hit e acabou.

    Se EU der 99% do dano em um dl e alguem der hit kill e dropar dsm: EU fico como dono do corpo, mas o a dsm é retirada automaticamente pelo sistema e concedida ao jogador do "ks".

    Por isso preciso de uma função que determine se sou ou nao o dono do corpo ou se sou ou nao quem deu mais dano para dai proceder com todo o resto.

  8. Na source, a função em actions.cpp é essa:
     

    Citar

    Line 523:         if(container->getCorpseOwner() && !player->canOpenCorpse(container->getCorpseOwner())
        Line 523:         if(container->getCorpseOwner() && !player->canOpenCorpse(container->getCorpseOwner())
        Line 524:             && g_config.getBool(ConfigManager::CHECK_CORPSE_OWNER))
        Line 525:             return RET_YOUARENOTTHEOWNER;
        Line 599:         creatureId) || action->hasOwnErrorHandler());

    Encontrei uma função lua para TFS 1.2 feita pelo @luanluciano93:
     

    Citar
    
    local corpse = Tile(target:getPosition()):getTopDownItem()
        if not corpse or not corpse:isContainer() then
            return false
        end
    
        if corpse:getType():isCorpse() and corpse:getAttribute(ITEM_ATTRIBUTE_CORPSEOWNER) == player:getId() then
    		return true
        end
    
    

    Vou tentar converter para TFS 0.4.
    Se alguem puder ajudar, eu agradeço.

  9. Bom galera aí vai minha duvida:

    Utilizo atualmente um TFS 0.4 e implantei o AUTO LOOT recentemente.
    Fiz diversas modificações e agora esse sistema me atende.

    Porem, há um problema - Ele assim como outros do mercado, trabalha com essa função onDeath:
     

    Citar

    function onDeath(cid, corpse, deathList)
    local killer,pos = deathList[1],getCreaturePosition(cid)
    addEvent(loot,1,killer,pos)
    return true
    end


    Isso faz com que o jogador a dar o ultimo hit na criatura fique com o loot da lista, mesmo que nao seja o "dono do corpo morto" ou corpseOwner.


    Obviamente nem preciso dizer que isso esta errado e vai gerar muitos problemas no meu servidor.

    A questao é: existe alguma função no TFS 0.4 que verifica o dono do corpo morto para eu implantar uma regra nessa função? Ou entao que diga o jogador que deu mais dano e apenas ele possa "lootear"?!

    Aguardo amigos.

    @WooX

  10. Consegui resolver!

    Aos muitos que tem o mesmo problema no TFS 0.4:

    Vá até a pasta de sua source e abra o arquivo player.cpp.
    Encontre:
     

    Citar
    
    void Player::onCreatureDisappear(const Creature* creature, bool isLogout)
    {
        Creature::onCreatureDisappear(creature, isLogout);
        if(creature != this)
            return;
    
        if(isLogout)
        {
            loginPosition = getPosition();
            lastLogout = time(NULL);
        }

    Substitua por:
     

    Citar
    
    void Player::onCreatureDisappear(const Creature* creature, bool isLogout)
    {
        Creature::onCreatureDisappear(creature, isLogout);
        if(creature != this)
            return;
        
        lastLogout = time(NULL);   
    
        if(isLogout)
        {
            loginPosition = getPosition();
        }

     

  11. O erro está aqui meu amigo: 

    [ITEM_GOLDEN_BAR]
    

    Você só pode indicar itens desse jeito, se eles foram diretamente apontados na sua distro como tal.

    Tente pelo item ID, caso nao consiga daremos um jeito.


    Não se esqueça de alterar o valor da Golden Bar no seu items.xml também.

     

    Edit: Perdoe-me minha falta de atenção! 

    Voce disse que fez alteração previamente na source? Recompilou?

  12. 2 horas atrás, Gabrieldsadaxas disse:

    vc pode criar um evento preparedeath que guarda a stamina do player em uma storage e ao login trocar a stamina atual pelo valor da storage

    Bom dia Gabriel!

    2 fatores a serem considerados:

    1° - caso o jogador esteja com 20h de stamina e morra, fique 2 dias sem logar. Ele volta com a stamina setada novamente em 20h e isso é errado.
    2° - eu criei um evento onPrepareDeath como disse acima no post. Naquele caso, a stamina seria setada já com a diferença de tempo entre logout e login.
    Infelizmente desse jeito não funciona. De algum modo o servidor sobrescreve a stamina.
    Muito provavelmente o topico foi fechado como "resolvido" pq o autor não testou direito. Alguns jogadores morrem e voltam com a stamina correta, então ele pode ter sido enganado por isso.

    Eu pensei em criar um db.query que salvaria a stamina do player ao morrer diretamente, mas não sei se isso é possivel.

  13. Olá caros!


    Atualmente utilizo um TFS 0.4 3777 já muito editado por mim. 
    Eu considero ele 99% perfeito para minhas necessidades, portanto troca-lo não é uma opção.

    Infelizmente tenho um problema grave e não acho solução:

    Quando jogadores morrem, e unicamente quando morrem, a stamina enche em media 3-4 horas.
    Esse problema ocorre com alguns jogadores e em determinados momentos. 
    Pelas minhas teorias, o servidor não salva a stamina no momento correto e a mesma é setada para o ultimo login.

     

    Esse problema já foi mencionado por diversos topicos mas nenhum deu uma solução adequada.
    A solução apresentada abaixo não funciona:

    Citar

     


    Eu gostaria de resolver esse problema diretamente na "raiz" ou seja, na source.. mas caso isso nao seja possivel, tentaremos via script LUA.

    Obrigado desde já!


     

     

  14. 7 minutos atrás, Mecianosz disse:

    Entendi. Realmente, baixar tudo para 0 pode ser arriscado. Obrigado pelo aviso. Porém, acho que no meu caso vai ser mais tranquilo porque meu OT é um enforced simples, sem quests, eventos, nem nada do tipo, apenas para treinar um PVP mesmo. Acho que as únicas coisas afetadas seriam potions, doors, tools (machete) e algumas alavancas do shop. Será que minha distro pode estar fechando porque eu abaixei o ExActions para 0? @Guizek69

    Nesse caso você teria que ir a fundo e pesquisar o erro apresentado no terminal para ter a certeza do que se trata, mas creio que ja estamos fugindo muito do assunto relacionado ao topico kkk
    De qualquer modo, eu nao deixaria meu "between" em 0 mesmo sendo enforced. 
    Abraços 

  15. 15 horas atrás, Mecianosz disse:

    @WooX e @Guizek69, eu reduzi o timeBetweenExactions para 0 no config.lua mesmo e acrescentei nos scripts, como vocês me disseram. Funcionou ?, então não vou precisar compilar a source. O único problema é que não aparece a mensagem "You are exhausted", aparece "you cannot use this object". Mas não afeta em nada. Agradeço aos dois. E tenho mais uma dúvida: Qual a diferença entre Actions e ExActions? Acho importante saber disso e não encontrei resposta na net. Ah, e eu usei o mesmo storage que o Guizek e funcionou.. Tem algum jeito de ver quais storages eu ainda tenho disponíveis e quais estão em uso por outros items, para não acabar usando o mesmo storage 2x?

    Primeira coisa: Eu lhe aconselharia fortemente a não baixar o between no config.lua por que isso vai afetar muitas outras ações no servidor, nao somente as potions.
    O recomendado por grande conhecedores do assunto, é que se mantenha actions e exactions entre 1000 e 1200 para evitar dor de cabeça.
    Essa mudança é uma porta aberta para nuckers se aproveitaram de alguma brecha e derrubarem seu ot (esgotamento de memoria, por exemplo).
    Daí a necessidade de alterar somente na source e para itens especificos.
    Referente as storages, é simples: baixe algum editor de xml/lua como o notepad++ e faça uma pesquisa pelo storage desejado na pasta do seu ot.
    Ele vai mostrar se aquele storage ou numero já está sendo usado por algum outro script.

  16. 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,

  17. 21 horas atrás, Mecianosz disse:

    Caro @WooX, tenho duas perguntas:

    1. O que eu preciso modificar nos scripts desses items para compensar o exhaust removido da source?

    2. Meu config.lua apresenta algumas linhas e gostaria de saber se não dá para mexer por aqui:

         timeBetweenActions = 200

         timeBetweenExActions = 1000

         timeBetweenCustomActions = 500

     

    Prometo que vou te dar 1 REP por dia porque está me ajudando bastante kkk.. Valeuu

    Esqueça o config. lua nobre colega.

    Vá até a pasta actions e procure pelo script de cada potion adicionada a função na source.
    Ao encontrar, procure por:
     

    Citar

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

    Logo abiaxo, adicione:
     

    Citar

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

    23006 = storage da exhausted que usei (fica a seu criterio, mas tem que ser o mesmo em todas as potions)
    0.95 = tempo de exaustao (Sempre em segundos! No meu caso, 0.95 milesimos de segundo)

    Boa sorte.

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

  19. 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

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo