-
Total de itens
12 -
Registro em
-
Última visita
Tipo de Conteúdo
Perfis
Fóruns
Calendário
Publique
Posts postados por KingKx
-
-
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
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?
-
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
-
2 horas atrás, So volto tarde disse:
com esse item vc se refere ao id "13999"?
No caso mudei o ID... o ring normal é de ID 7606 e quando tá usando fica o ID 7610
-
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;
}
} -
3 horas atrás, underpunk disse:
rapaz é bem estranho, pq unica forma q eu imaginei de não funcionar, é o id no items.xml ser um e no items.otb ser outro, bem confuso isso.
E são os mesmos IDs kkkkkkkk acho que deve ser algum travamento pela distro.... pois se eu botar uma distro diferente ele funciona
-
20 horas atrás, underpunk disse:
ja reparou se o id no items.otb é o mesmo no items.xml?
Sim... o engraçado que se eu utilizar apenas o items.otb de outro servidor ele funciona, se eu usar outro executável o items.otb antigo volta a funcionar normalmente... porem essa distro tem varios bugs :(
-
.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.
CitarBoa 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. <3Obs: 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.
-
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
-
Em 26/11/2021 em 22:05, So volto tarde disse:
a montaria
naz'gul
adiciona a speed?
Não adiciona :(
-
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.
CitarEle 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
-
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 64bitsObrigado pela atenção e compreensão de vocês
CitarCompilador: 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
Ajuda com codigo de regeneração na source
em Suporte Tibia Otserv
Postado · Editado por KingKx (veja o histórico de edições)
.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.
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