Ir para conteúdo

WooX

Héroi
  • Registro em

  • Última visita

Solutions

  1. WooX's post in [Login ERROR / Cast System - TFS 0.4] O que está causando isso? was marked as the answer   
    Depois do erro, quando você abrir o Tibia novamente vai ter as informações. Ou, dependendo da versão da distro, você pode pegar nos logs do datapack. Se não me engano o arquivo de log chama client_assertions.
  2. WooX's post in (Resolvido)Problema na instalação do phpmyadmin no debian 8.0 was marked as the answer   
    Isso ta com cara de chmod 777 na pasta de configurações em, roda isso e manda o resultado aqui.
    ls -lh /etc/phpmyadmin  
  3. WooX's post in (Resolvido)script pra explorar 100% do mapa was marked as the answer   
    Bom, outros alem de você vieram me pedir o link também, hoje eu vi que recentemente um membro da equipe postou um link para o dito fórum, então acho que não teria problema eu postar também.
     
    https://otland.net/threads/tfs-1-2-minimap-generator-map-scanner.262275/
  4. WooX's post in (Resolvido)[pedido] exhaust na alavanca was marked as the answer   
    Usa global storage.
  5. WooX's post in (Resolvido)(pedido) duração do HASTE (utani hur e gran hur) was marked as the answer   
    Nessa linha
    setConditionParam(condition, CONDITION_PARAM_TICKS, 22000) o tempo de duração é definido em milisegundos.
  6. WooX's post in (Resolvido)Usar potion e abrir corpos mortos/puxar ring was marked as the answer   
    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.
  7. WooX's post in (Resolvido)Linux - Uso alto da CPU [OTX] was marked as the answer   
    Sim, há diferença entre uma VPS virtualizada com CPU de 2.6GHz e outra com um i7 ou Ryzen da vida que alcança seus 5.0GHz, você não precisa de fato migrar para um dedicado se não tem condição, mas busque ao menos uma VPS que te ofereça melhor performance no quesito processamento, dê prioridade ao clock do cpu no lugar da quantidade de núcleos.
  8. WooX's post in (Resolvido)Proteção nas houses was marked as the answer   
    Qual source está utilizando? Se você está usando 0.x e não possui essa função provavelmente está utilizando TFS Exclusive Edition, ela não é necessária pois já existe a função onThrow, que faz o que a onMoveItem faz e até permite fazer coisas que a onMoveItem não consegue.
     
    Abaixo está um script com a função onThrow, porem antes quero dizer sobre um problema que ambos os scripts não cobrem. Este script não vai impedir o convidado na casa de usar items, se tiver uma mana potion na casa por exemplo, ele não vai conseguir pegar e nem mover, mas vai poder usar em si ou em outros, por isso o correto para uma sistema como este é fazer diretamente na source.
    --<event type="login" name="HouseProtectionRegister" event="script" value="house_protection.lua"/> --<event type="throw" name="HouseProtection" event="script" value="house_protection.lua"/> function onThrow(cid, item, fromPosition, toPosition) if fromPosition.x ~= 65535 and getHouseFromPos(fromPosition) then if getHouseOwner(getHouseFromPos(fromPosition)) ~= getPlayerGUID(cid) then doPlayerSendCancel(cid, "You can't take nor move someone else's stuff on their own house.") return false end elseif toPosition.x ~= 65535 and getHouseFromPos(toPosition) then if getHouseOwner(getHouseFromPos(toPosition)) ~= getPlayerGUID(cid) then doPlayerSendCancel(cid, "You can't throw things on someone else's house.") return false end end return true end function onLogin(cid) registerCreatureEvent(cid, "HouseProtection") return true end  
    Ps: se mais pessoas se interessarem eu posso escrever em C++ depois.
  9. WooX's post in (Resolvido)Adicionar Position X/Y nessa script was marked as the answer   
    local effects = { --_GOKU_-- [4] = 106, } local offsetX = 0 local offsetY = 0 function onThink(interval) for _, pid in ipairs(getPlayersOnline()) do local effect = effects[getPlayerVocation(pid)] if(effect) then local pos = getThingPos(pid) pos.x = pos.x + offsetX pos.y = pos.y + offsetY doSendMagicEffect(pos, effect) end end return true end  
  10. WooX's post in (Resolvido)Account Manager com cidade was marked as the answer   
    Se não me engano o TFS 0.4 editado pelo Fir3Element já tem isso e tem aqui no fórum, da uma procurada.
  11. WooX's post in (Resolvido)Erro na hora de criar conta was marked as the answer   
    Roda na sua database.
    SET GLOBAL SQL_MODE = '';  
  12. WooX's post in (Resolvido)Dúvidas compilação distro linux was marked as the answer   
    Uma distro compilada em uma versão ou arquitetura diferente do linux não vai rodar em outra. Você tem que recompilar a source na versão do Linux que está usando, o processo para compilação pode variar dependendo de que source está usando.
  13. WooX's post in (Resolvido)Ajuda com auto save de 30 em 30 minutos para TFS 1.3 was marked as the answer   
    O script de save já vem pro padrão na maioria dos datapacks, basta configura o tempo de execução em globalevents.
  14. WooX's post in (Resolvido)Damage Player X Monster was marked as the answer   
    É consequência da alteração que pediu, mas ainda da pra alterar o código, só que ai o black skull receberia o dobro de dano que o player hita em monstro, dependendo do seu balanceamento, isso ficaria um absurdo. Mas se mesmo assim você quiser, aqui está.
    if(change < 0 && caster && caster->getPlayer() && target->getPlayer() && target->getPlayer()->getSkull() == SKULL_BLACK) change = change * 2;  
  15. WooX's post in (Resolvido)SCRIPT RESET So pode upar ate o level de reset was marked as the answer   
    Esse erro que você mandou não parece estar completo e também testei aqui e funcionou normal. Mas fiz mais 1 edit, testa de novo.
  16. WooX's post in (Resolvido)AJUDA NESSA MSG was marked as the answer   
    --<event type="login" name="loginMsg" event="script" value="loginmsg.lua"/>-- function onLogin(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Free bless ate level 20.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Domine o castelo e ganhe mais Exp.") return true end  
  17. WooX's post in (Resolvido)Account Manager 1/1 nao funciona was marked as the answer   
    Verifica na database o password do acc manager, tem que estar assim:
    356a192b7913b04c54574d18c28d46e6395428ab  
  18. WooX's post in (Resolvido)spell dando erro no console was marked as the answer   
    troca a função spellCallback para esta:
    function spellCallback(param) if param.count > 0 or math.random(0, 1) == 1 then doSendMagicEffect(param.pos, CONST_ME_MORTAREA) doAreaCombatHealth(param.cid, COMBAT_DEATHDAMAGE, param.pos, 0, -3000, -8000, CONST_ME_EXPLOSIONHIT) end if(param.count < 2) then param.count = param.count + 1 addEvent(function() if isCreature(param.cid) then spellCallback(param) end end, math.random(1000, 4000)) end end  
  19. WooX's post in (Resolvido)[Creaturescript] Script de pvp enforced was marked as the answer   
    Você não precisa dessa parte 
    local target = getCreatureTarget(cid) Pois a própria função onKill já possui o target, retira essa linha que tudo deve funcionar normalmente.
  20. WooX's post in (Resolvido)exausth ao andar enquanto pota was marked as the answer   
    Comenta onde estiver essa linha:
    player->stopWalk(); Deixa assim:
    //player->stopWalk();  
  21. WooX's post in (Resolvido)[Cast System] OTX 8.60 was marked as the answer   
    O problema é que você está utilizando OTX2 que sim, possui o cast system do elf nas sources. Mas você está utilizando as funções Lua do cast do summ, que vem no TFS 0.4, assim não vai funcionar mesmo.
     
    A função correta seria:
    doPlayerSetSpectators  
    Caso não possua a talkaction, aqui está.
     
    Edit: Impossível ele ter achado as funções, pois elas não existem no OTX, as funções são do cast system do summ, que geralmente vem no TFS 0.4. Então, ou você simplesmente pegou os arquivos spectators.cpp e spectators.h (que são do cast system do elf e não existem no TFS 0.4) e jogou no TFS 0.4, ou a alguém tentou adicionar essas funções do cast do summ que é totalmente diferente do que o elf fez, e obviamente não fez um bom trabalho.
  22. WooX's post in (Resolvido)Alteração Distro was marked as the answer   
    Adicionaram no repositório, faz as alterações.
     
    https://github.com/mattyx14/otxserver/commit/3b9f089b1cdf260e4fe64f6f43380ef77169b400
  23. WooX's post in (Resolvido)[AJUDA] Spell de teleport estilo Goku! was marked as the answer   
    local cooldown = 10 * 60 function onSay(cid, words, param) if exhaustion.get(cid, 30000) then doPlayerSendCancel(cid, "You can only teleport again after ".. exhaustion.get(cid, 30000) .." seconds.") elseif (param == "") then doPlayerSendCancel(cid, "You need to choose to whom you going to teleport.") end local target = getPlayerByName(param) if (target ~= nil) then local oldPos = getThingPos(cid) local newPos = getClosestFreeTile(cid, getThingPos(target), true, false) doSendMagicEffect(oldPos, CONST_ME_POFF) doSendMagicEffect(newPos, CONST_ME_TELEPORT) doTeleportThing(cid, newPos) exhaustion.set(cid, 30000, cooldown) else doPlayerSendCancel(cid, "This player does not exist.") end return true end  
  24. WooX's post in (Resolvido)Monstros nao atacar summon was marked as the answer   
    Volta seu combat.cpp para o original pro dano voltar a pegar. Pra não pegar target nos summons faz essa alteração.
     
    Em monster.cpp onde está:
    bool Monster::isTarget(Creature* creature) { return (!creature->isRemoved() && creature->isAttackable() && creature->getZone() != ZONE_PROTECTION && canSeeCreature(creature) && creature->getPosition().z == getPosition().z); } Muda para:
    bool Monster::isTarget(Creature* creature) { return (!creature->isRemoved() && creature->isAttackable() && !creature->isPlayerSummon() && creature->getZone() != ZONE_PROTECTION && canSeeCreature(creature) && creature->getPosition().z == getPosition().z); }  
  25. WooX's post in (Resolvido){PEDIDO} Player morrer e ficar cm auréola na cabeça was marked as the answer   
    Não tive tempo de testar.
     
    --<event type="death" name="deathAureola" event="script" value="aureola.lua"/>-- --<event type="login" name="loginAureola" event="script" value="aureola.lua"/>-- local time = 3 * 60 -- Tempo que ficará com a aureola local repeatAfter = 2 -- Tempo para repetir o efeito local effect = 69 -- ID do efeito local storage = 36678 function onDeath(cid, corpse, deathList) setPlayerStorageValue(cid, storage, os.time() + time) return true end function onLogin(cid) registerCreatureEvent(cid, "deathAureola") if getPlayerStorageValue(cid, storage) > os.time() then doSendRecursiveEffect(cid, getPlayerStorageValue(cid, storage) - os.time()) end return true end function doSendRecursiveEffect(cid, time) if isCreature(cid) then if time > 0 then doSendMagicEffect(getThingPos(cid), effect) addEvent(doSendRecursiveEffect, repeatAfter*1000, cid, time-repeatAfter) else setPlayerStorageValue(cid, storage, 0) return end end end  

Informação Importante

Confirmação de Termo