Ir para conteúdo

Storm

Héroi
  • Registro em

  • Última visita

Tudo que Storm postou

  1. @M ustang Onde está localizado esse arquivo que remove mana ao andar na água?
  2. @lllllllllllll Eu passei um pente procurando a função doRemoveCreature() na pasta creaturescripts. Não achei nenhuma função que pareça se referir ao account manager, então tenho algumas suspeitas: Tem algum sistema que está removendo o account manager ao logar que não seja no creaturescripts (Tenho suspeita de que seja no globalevents, algum onThink talvez?) O cara que fez os sistemas do servidor trocou a função doRemoveCreature() para outro nome. Algum problema na source. (Por que a source impediria o Account Manager de logar???? Se o problema for nela, justifica ainda mais não usar nada desse servidor.) Possíveis soluções: Trocar a distro Desativar todas as funções doRemoveCreature() no creaturescripts (É o que eu faria). Passar um pente fino em cada sistema do servidor, procurando algo relacionado a remover criaturas ou algo relacionado ao account manager (vai levar muito tempo). @M ustang Infelizmente na comunidade hoje em dia tem muita gente assim. O que você pode fazer para ajudar a comunidade é denunciar as pessoas que fizeram isso e postar os trabalhos deles que sejam úteis, mesmo que eles sejam comprados.
  3. Dei uma olhada bem rápida nos creaturescripts e não achei nenhum script que faça com que o Account Manager deslogue, mas enfim, tentem deixar a database no config.lua como plain: Procure isso no config.lua encryptionType = "sha1" E substitua por encryptionType = "plain" Recomendo também procurarem uma database nova e resetada, caso o método a cima não funcione. De qualquer forma, não recomendo que ninguém use esse servidor como base ou pegue sistemas do mesmo, pois enquanto eu estava procurando nos creaturescripts, achei muito sistemas mal feitos, mal otimizados e também com falhas. O máximo que você deve retirar desse servidor é o mapa, o resto não é recomendável.
  4. @dbofurie Vou fazer o código mais tarde e posto aqui.
  5. @GaspaR1 Sim, é só você falar o que quer que mude, mas é muito mais fácil você adicionar as funções que faltam na lib.
  6. Storm postou uma resposta no tópico em Suporte Tibia OTServer
    @Lokyskiller Me manda os erros que aparecem.
  7. Storm postou uma resposta no tópico em Suporte Tibia OTServer
    @Lokyskiller
  8. @Bepovi Faz o que eu disse acima, talvez dê certo em seu servidor. Printa o que aparecer na distro e me manda.
  9. @Bepovi De qualquer forma, esse sistema é gambiarra pura. O certo seria ter na sua source a função onSpawn, aí sim poderiamos fazer algo bom. Faz assim, coloca esse script que vou te mandar e me manda o que vai printar na source, quando um jogador atacar um pokemon e vice e versa. Por onThink até da pra fazer, mas creio que vai pesar muito o servidor, já que na função onThink não é possível obter o id do player que está próximo ao pokemon.
  10. @Bepovi Esse sistema é meio confuso, não sei se vai funcionar de um jeito bom. Mas enfim, arrumei a callback para uma melhor, onde você consegue puxar o id do player. Arruma o nome das tabelas, desse jeito que está não vai funcionar. Outra coisa, troca a XML para isso: <event type="combat" name="Pokelvl" event="script" value="Pokelvl.lua"/>
  11. @GaspaR1 Cria qualquer arquivo .lua na pasta lib e coloca essa função dentro. Lembre-se que storages.isInDuel tem que ser uma tabela declarada também na lib do seu servidor. O complicado de trocar sistemas para servidores diferentes é isso, tem que fazer várias alterações.
  12. @One Punch Man @dbofurie Atualizei o código, porém testem antes de colocar no servidor principal de vocês.
  13. @dbofurie local limit = 300 -- Até quantos leveis a mais um jogador pode atacar um jogador level menor que ele local areas = { [1] = { fromPos = {x = 100, y = 200, z = 7}, toPos = {{x = 200, y = 100, z = 8}} }, [2] = { fromPos = {x = 500, y = 600, z = 7}, toPos = {{x = 800, y = 700, z = 7}} }, } function onCombat(cid, target) if isPlayer(cid) and isPlayer(target) then if getPlayerLevel(target) + limit <= getPlayerLevel(cid) then for _, var in pairs(areas) do if not isInArea(getCreaturePosition(target), var.fromPos, var.toPos) then doPlayerSendTextMessage(cid, 27, "Voce nao pode atacar jogadores de ".. limit .." leveis a menos que você.") return false end end end end return true end tag no XML: <event type="combat" name="LevelCheck" event="script" value="levelcheck.lua"/> Registra no login.lua: registerCreatureEvent(cid, "LevelCheck")
  14. @GaspaR1 A função isWatchingTv não foi encontrada no seu servidor, é o mesmo caso do outro tópico que você criou.
  15. @GaspaR1 Seu servidor não contém a função isInDuel. Não sei se essa função é da source ou é feita por lib, então fica difícil de ajudar.
  16. @Bepovi O erro é que você está tentando comparar o level de um pokemon (que não existe), com um número. if getPlayerLevel(cid) >= 10 and getPlayerLevel(cid) <= 20 then Aquele cid ali deve ser substituído pelo id do player, pois o cid no casso desse script se refere ao pokémon(monstro).
  17. @Serpente Tenta assim: function onStepIn(creature, item, position, fromPosition) local player = creature:getPlayer() if not player then return true end if findFirstEmpty() then player:teleportTo(availableTrainingSlot) player:sendTextMessage(MESSAGE_INFO_DESCR, "LeftTopCorner: X=".. config.leftTopCorner.x .."Y=".. config.leftTopCorner.y .." RightDownCorner: X=".. config.rightDownCorner.x .." Y= ".. config.rightDownCorner.y .." pronto") --player:sendTextMessage(MESSAGE_INFO_DESCR, "Treiner stamina regeneration engaged.") else player:sendTextMessage(MESSAGE_INFO_DESCR, "No available treiner slots.") end return true end
  18. @Balkalima Tirei aquele print(type) e mudei algumas outras coisas, tenta ai: function onGetFormulaValues(cid, level, skill, attack, factor) local arma = getPlayerSlotItem(cid, CONST_SLOT_LEFT) if getItemWeaponType(arma.uid) ~= 4 then local danoArma = getItemInfo(arma.itemid).attack else local danoArma = getItemInfo(getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid).attack end print(danoArma) -- print apenas para ver o que é retornado (null neste caso) min = -(((attack * 5) + (skill * 0.5) + (level * 0.04)) / factor) max = -(((attack * 5) + (skill * 0.8) + (level * 0.06)) / factor) return min, max end
  19. @Balkalima Tenta usar aspas duplas ao invés de usar a aspa simples e vê se funciona. Tava pesquisando aqui, vê se no seu servidor existe a função getItemAttack e usa ela no lugar do getItemAttribute local danoArma = getItemAttack(arma) Se não tiver a função, aqui está ela: function getItemAttack(item) return getItemAttribute(item.uid, "attack") or getItemInfo(item.itemid).attack end
  20. @Balkalima Tenta assim: function onGetFormulaValues(cid, level, skill, attack, factor) local arma = getPlayerSlotItem(cid, CONST_SLOT_LEFT).uid if arma ~= 0 then if getItemWeaponType(arma) ~= 4 then local arma = getPlayerSlotItem(cid, CONST_SLOT_RIGHT).uid end else local arma = getPlayerSlotItem(cid, CONST_SLOT_RIGHT).uid end local danoArma = getItemAttribute(arma, 'attack') print(type(danoArma)) -- print apenas para ver o que é retornado (null neste caso) min = -(((attack * 5) + (skill * 0.5) + (level * 0.04)) / factor) max = -(((attack * 5) + (skill * 0.8) + (level * 0.06)) / factor) return min, max end
  21. @esnio12 Faz mais um for para remover todos os itens, se você não quiser remover na hora da verificação for index, var2 in pairs(party_id) do doPlayerRemoveItem(var2, itemid, count) end
  22. @esnio12 Tenta assim: local itemid, count = 2155, 1 local party_id = getPartyMembers(cid) for _, var in pairs(party_id) do if getPlayerItemCount(var, itemid) <= count then doPlayerSendTextMessage(cid, 27, "O jogador ".. getPlayerNameById(var) .." nao tem a quantidade do item suficiente") return true end end
  23. Storm postou uma resposta no tópico em Suporte Tibia OTServer
    @bellatrikz Tenta mudando apenas esta parte:

Informação Importante

Confirmação de Termo