Ir para conteúdo
  • Cadastre-se

KingKx

Membro
  • Total de itens

    12
  • Registro em

  • Última visita

Posts postados por KingKx

  1. .Qual servidor ou website você utiliza como base? 

    Evolutions 0.7.8

     

    Qual o motivo deste tópico? 

    Ajuda com adaptação

    Está surgindo algum erro? Se sim coloque-o aqui. 

    Citar

    Não tem erro

     

    Você tem o código disponível? Se tiver publique-o aqui: 

        if(it.abilities.regeneration){
            Condition* condition = Condition::createCondition((ConditionId_t)slot, CONDITION_REGENERATION, -1, 0);
            if(player->getVocationId() >= 9 && it.abilities.healthGain != 0){
                condition->setParam(CONDITIONPARAM_HEALTHGAIN, it.abilities.healthGain);
            }
            else if(player->getVocationId() <= 8 && it.abilities.healthGain <= 400){
                 condition->setParam(CONDITIONPARAM_HEALTHGAIN, it.abilities.healthGain);
                 }

     

    Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

    Não

     

     

     

     Olá meus nobres, boa tarde!! Gostaria de uma ajuda se possivel. Estou tentando adaptar essa função que existe na minha distro para que um player da voc <= 8 regenere apenas 400 de hp mesmo estando com um helmet de 1k de regeneração... Já com este codigo que coloquei a cima a vocação <= 8 só vai regenerar se o item tiver apenas o atributo value em 400, caso contrario ele não heala.

     

     

     Desde já agradeço a todos... tenham uma boa tarde !! tmj galera

  2. Em 13/01/2022 em 09:46, Fir3element disse:

    Ao invés de utilizar a função internalRemoveItem, utilize transformItem.

    Talvez funcione assim:

     

    
    
    transformItem(creature->getPlayer()->inventory[SLOT_RING], ID_DO_ITEM_NOVO);

     

    MUITOOOO OBRIGADOOOOOO VOCÊ É O CARA <3 

     

     

     Porém mesmo tirando o ring do slot ou acabando o tempo a condition continua até o player morrer... A forma de fazer essa alteração é na formula da condition hastega ou pode adicionar outro comando nesse script do ring?

  3. Em 08/01/2022 em 19:21, luanluciano93 disse:

    Qual a versão do TFS/OTX? Explique melhor o que quer ... você coloca um ring ID x no "ring slot" e o ring ID x muda o ID para y?

    A versão é 7.92 Evolutions Ot server 0.7.8

     

    No caso esse script era de um ring que quando usava ele revivia o player apos ele morrer.... porem adaptei para da uma velocidade de atk speed extra até o ring acabar... porem quando usa o ring no slot ele some... e eu gostaria que ele continuasse como um ring normal porem aceitando essa condition na source

  4. Boa noite galera! Me perdoem se estiver na area errada

     

    Estou querendo colocar esse item, porem quando coloco no lugar do ring ele some... Alguem poderia me ajudar a adaptar ele para ir pro id 7610 quando ta usando o ring?

     

     

    void Game::checkCreature(uint32_t creatureId, uint32_t interval)
    {
        OTSYS_THREAD_LOCK_CLASS lockClass(gameLock, "Game::checkCreature()");

        Creature* creature = getCreatureByID(creatureId);

        if(creature){
            if(creature && creature->getPlayer()){    
            for(int i = SLOT_FIRST; i < SLOT_LAST; ++i){
            Item* item = NULL;
            for(int it = SLOT_FIRST; it < SLOT_LAST; ++it){
                    
            item = creature->getPlayer()->inventory[it];
      
            if(item && creature->getPlayer()->getInventoryItem(SLOT_RING)){
               int idItem = item->getID();    
                           
                if(creature->getPlayer()->getAttackSpeed() >= 0 && idItem == 13999 && creature->getPlayer()->getInventoryItem(SLOT_RING) && !creature->getPlayer()->hasCondition(CONDITION_HASTEGA)){
                creature->stopEventThinkAttacking();                                      
                  creature->getPlayer()->ExtSpeedAtk();                              
                internalRemoveItem(creature->getPlayer()->inventory[SLOT_RING], 1);
                creature->onThink(interval);  
                  creature->executeConditions(interval);  
                return;
                     }
                  }

  5. .Qual servidor ou website você utiliza como base? 

    OTServer baseado em Evolutions OTServ Versao 0.7.8

    Qual o motivo deste tópico? 

    problemas com os items.otbm

    Está surgindo algum erro? Se sim coloque-o aqui. 

    Citar

    Boa tarde meus nobres, tudo beleza? preciso de uma ajudinha kkkk

    Vamos lá, 
      Estou tendo um problema com meu items.otbm, no qual ele não aceita os atributos dos itens...
    Ex: O helmet de ID 13554 regenera o HP. Já o item de ID 13555, não regenera o HP
    Os amuletos funcionam normalmente a regeneração... Tem alguns items que os atributos funciona e outros que não.

         Peguei o otbm de outro otserver e funcionou perfeitamente... só fiz mudar o items.otbm, mas as sprites estão todas desconfiguradas pq as configurações nele foram feitas de acordo ao outro servidor que os IDs no .xml muda e nas spirites do client tbm.

       Não sei mais o que fazer. Se alguém já passou por isso e encontrou uma  solução por gentileza, poderia me dar esse apoio?



          Um feliz natal a todos, que sejam abençoados com as graças de Deus hoje e sempre, AMÉM. <3 

    Obs: os itens foram adicionados no movements.xml tudo certinho

     

     

    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. 

     

  6. Em 14/12/2021 em 11:31, HomeJobs disse:

    Tá vamos la, o código esta totalmente correto e muito organizado parabéns, no entanto você esta inicializando uma speed nova para a montaria.
    Incluindo o player.h (acredito que você criou novos cpp e headers para criar este código)
    Acessamos a velocidade atual do jogador retornando ela e podemos usar como quiser para alterar, acredito que o calculo deva ser o base speed + o speed da mount e não iniciar ela em zero...

    
    int32_t ExtSpeed = 0;

    Acredito que você deveria setar o PLAYER_MAX_SPEED para realmente alterar velocidade máxima que o jogador deve ser da seguinte maneira, definido o player flag para a flag hasMaxSpeed in group or player constructor.
     

    
    if (!hasFlag(PlayerFlag_SetMaxSpeed)) {
    baseSpeed = vocation->getBaseSpeed();

     

     

     

     

    Muito obrigado, amigo. Chegando em casa irei fazer como explicado.. funcionando retorno aqui (y) s2

  7. Versão 7.92, não sei qual é ao certo

     

    Meu ot tem um sistema de montaria no qual vc clica no icone e ele muda a outfit... esse sistema é adicionado pela source algumas montarias tem o atributo de regenerar hp/mp , abs e double xp... porem quero adicionar o atributo de speed... porem faço essa adaptação compilo tudo certinho sem erro e quando vou fazer o teste no servidor ele não adiciona a quantia de speed. Ficarei grato se alguém puder me dá essa força s2

     

    Está surgindo algum erro? Se sim coloque-o aqui. 

    Citar

    Ele não da error na compilação... apenas não está funcionando

     

     

    Estou utilizando duas adaptações.

    
    Codigo 01:
    
    int32_t Player::getExtSpeed() const
    {
    	int32_t ExtSpeed = 0;
    	
    	Item* item = NULL;
         for(int slot = SLOT_HEAD; slot <= SLOT_RING; slot++){
    		if(!isItemAbilityEnabled((slots_t)slot)){
    			continue;
    		}
    
    		if(!(item = getInventoryItem((slots_t)slot)))
    			continue;
    
    		const ItemType& it = Item::items[item->getID()];
    		
            if(it.abilities.speed > 0){
    			ExtSpeed += it.abilities.speed;
                }
       }
       
       int32_t montaria; 
       getStorageValue(15900, montaria);
       
       if(getCurrentOutfit().lookType == 163 && montaria == 7){
         ExtSpeed += 500;
         }
         
               if(getCurrentOutfit().lookType != 163 && montaria == 7 && hasCondition(CONDITION_BLOOD)){
         ExtSpeed += 500;
         }                         
    	
    	return ExtSpeed;
    }
    =========================
    Codigo 02:
       
             int32_t Player::getExtSpeed() const
    {
    	int32_t ExtSpeed = 0;
    	
    	Item* item = NULL;
         for(int slot = SLOT_HEAD; slot <= SLOT_RING; slot++){
    		if(!isItemAbilityEnabled((slots_t)slot)){
    			continue;
    		}
    
    		if(!(item = getInventoryItem((slots_t)slot)))
    			continue;
    
    		const ItemType& it = Item::items[item->getID()];
    
    		if(it.abilities.speed > 0 && getVocationId() >= 9){
    			ExtSpeed += it.abilities.speed;
                }
            else if(getVocationId() <= 8 && it.abilities.speed <= 10){
                 ExtSpeed += it.abilities.speed;
                 }
            }
    	
    	if(hasCondition(CONDITION_HASTE)){
         ExtSpeed += 500;
        }
        
        
        int32_t montaria; 
       getStorageValue(15900, montaria);
        
        if(getCurrentOutfit().lookType == 163 && montaria == 7){
         ExtSpeed += 500;
         }
         
        if(getCurrentOutfit().lookType == 435 && montaria == 8){
         ExtSpeed += 500;
         }
    
        if(getCurrentOutfit().lookType == 447 && montaria == 9){
         ExtSpeed += 500;
         }
    
        // montaria naz'gul
        if(getCurrentOutfit().lookType == 162 && montaria == 11){
         ExtSpeed += 500;
         }
         
              if(hasCondition(CONDITION_BLOOD)){          
                 if(montaria == 7){
         ExtSpeed += 500;
         }
         
        if(montaria == 8){
         ExtSpeed += 500;
         }
    
        if(montaria == 9){
         ExtSpeed += 500;
         }
    
        if(montaria == 11){
         ExtSpeed += 500;
    
         }    
       }
    
    	return ExtSpeed;
    
    }

     

    Se alguém puder me dá essa luz do motivo pelo qual não ta funcionando ficarei muito agradecido 

     

  8. Olá pessoal bom dia/boa tarde/boa noite

     

     

    estou tentando compilar uma source tfs (não sei qual é ) de um ot 7.92 mas está dando o seguinte error ao compilar ( Citei logo a baixo )

    vou colocar também a source que estou usando uso o dev c++

    quem poder me ajudar ficarei agradecido já que não entendo muito, mas vou vou prestando atenção e buscando uns tutoriais na net para aprender um pouco mais

    me desculpem se postei na área errada
    uso o tfs-sdk-3.2, boost_1_60_0 e o boost_1_33_1... coloquei os dois boosts depois de testar individualmente
    Os linker que veio nele e meu sistema operacional é o win10 64bits

     

     

    Obrigado pela atenção e compreensão de vocês 

    Citar
    
    Compilador: Default compiler
    Building Makefile: "C:\792\dev-cpp\Makefile.win"
    Executando  make...
    make.exe -f "C:\792\dev-cpp\Makefile.win" all
    g++.exe -c ../actions.cpp -o obj64//actions.o -I"include"  -I"C:/boost_1_60_0"  -I"C:/Dev-Cpp/include"  -I"C:/Dev-Cpp/all/include"  -I"C:/Dev-Cpp/others/boost_1_33_1"    -mmmx
    
    In file included from ../actions.cpp:32:
    ../house.h:77: error: `xmlNodePtr' has not been declared
    ../house.h:77: error: ISO C++ forbids declaration of `p' with no type
    ../house.h:78: error: `xmlNodePtr' does not name a type
    
    ../house.h:80: error: conflicting return type specified for `virtual bool Door::readAttr(AttrTypes_t, PropStream&)'
    ../item.h:292: error:   overriding `virtual Attr_ReadValue Item::readAttr(AttrTypes_t, PropStream&)'
    
    make.exe: *** [obj64//actions.o] Error 1
    
    Execução terminada

     

    errordev.png

    792.rar

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo