Ir para conteúdo

luanluciano93

Héroi
  • Registro em

  • Última visita

Tudo que luanluciano93 postou

  1. luanluciano93 postou uma resposta no tópico em Suporte & Pedidos
    Seguindo ...
  2. luanluciano93 postou uma resposta no tópico em Suporte Tibia OTServer
    está faltando a coluna "card_time" na tabela 'accounts'. Você sabe o que é guardado nessa coluna, pois para add precisamos saber se ela guarda valores ou palavras ...
  3. Eu fiz, mas estou aguardando autorização do dono do post para divulgar.
  4. Se tiver o mesmo nome, não fechará, porém tem que atentar-se com as "ações do mapa".
  5. Talvez com essa função dê certo: doPlayerAddSkillTry(cid, SKILL__MAGLEVEL, x) Tente pegar a ideia da vara de pescar, onde é add skill de pesca a partir de uma fórmula. local config = { waters = {4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825}, fishable = {4608, 4609, 4610, 4611, 4612, 4613, 7236}, spawning = {4614, 4615, 4616, 4617, 4618, 4619}, holes = {7236}, corpses = { -- [corpse] = {[aid] = { {itemid, countmax, chance} }} [10499] = { [101] = { -- TODO: Water Elemental loot... }, [102] = { -- TODO: Massive Water Elemental loot } } }, checkCorpseOwner = getConfigValue("checkCorpseOwner"), rateLoot = getConfigValue("rateLoot"), summons = { -- {skill, name, chance, bossName, bossChance} }, rateSpawn = getConfigValue("rateSpawn"), baitFailRemoveChance = 10, allowFromPz = false, useBait = true, baitCount = 1, fishes = 1 } config.checkCorpseOwner = getBooleanFromString(config.checkCorpseOwner) function onUse(cid, item, fromPosition, itemEx, toPosition) if(isInArray(config.waters, itemEx.itemid)) then if(isInArray(config.spawning, itemEx.itemid)) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) end doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) return true end local corpse = config.corpses[itemEx.itemid] if(corpse ~= nil) then corpse = corpse[itemEx.actionid] if(corpse ~= nil) then local owner = getItemAttribute(itemEx.uid, "corpseowner") if(owner ~= 0 and owner ~= getPlayerGUID(cid) and config.checkCorpseOwner) then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUARENOTTHEOWNER) return true end local chance, items = math.random(0, 100000) / config.rateLoot, {} for _, data in ipairs(corpse) do if(data[3] >= chance) then local tmp = {data[1], math.random(1, data[2])} table.insert(items, tmp) end end local itemCount = table.maxn(items) if(itemCount > 0) then local loot = items[math.random(1, itemCount)] doPlayerAddItem(cid, loot[1], loot[2]) end doTransformItem(itemEx.uid, getItemInfo(itemEx.itemid).decayTo) doSendMagicEffect(toPosition, CONST_ME_WATERSPLASH) doDecayItem(itemEx.uid) return true end end if(not isInArray(config.fishable, itemEx.itemid)) then return false end local position, formula, tries = getThingPosition(cid), getPlayerSkill(cid, SKILL_FISHING) / 200 + 0.85 * math.random(), 0 config.allowFromPz = config.allowFromPz or not getTileInfo(position).protection if(item.itemid ~= ITEM_MECHANICAL_FISHING_ROD) then if(config.allowFromPz and (not config.useBait or getPlayerItemCount(cid, ITEM_WORM) >= config.baitCount)) then tries = 1 if(isInArray(config.holes, itemEx.itemid)) then if(doPlayerRemoveItem(cid, ITEM_WORM, config.baitCount)) then tries = 2 if(formula > 0.83) then doPlayerAddItem(cid, ITEM_RAINBOW_TROUT, config.fishes) elseif(formula > 0.7) then doPlayerAddItem(cid, ITEM_NORTHERN_PIKE, config.fishes) elseif(formula > 0.5) then doPlayerAddItem(cid, ITEM_GREEN_PERCH, config.fishes) else doPlayerAddItem(cid, ITEM_FISH, config.fishes) end end elseif(formula > 0.7 and doPlayerRemoveItem(cid, ITEM_WORM, config.baitCount)) then tries = 2 if(table.maxn(config.summons) > 0 and getDistanceBetween(position, toPosition) < 2) then local skill, summon = getPlayerSkill(cid, SKILL_FISHING), {name = "", chance = 0, bossName = "", bossChance = 0} for _, data in pairs(config.summons) do if(skill >= data[1]) then summon.name = data[2] summon.chance = data[3] summon.bossName = data[4] summon.bossChance = data[5] end end local random = math.random(1, 100000) / config.rateSpawn if(summon.bossName ~= "" and summon.bossChance >= random) then doCreateMonster(summon.bossName, position) tries = 4 elseif(summon.name ~= "" and summon.chance >= random) then doCreateMonster(summon.name, position) tries = 3 else doPlayerAddItem(cid, ITEM_FISH, config.fishes) end else doPlayerAddItem(cid, ITEM_FISH, config.fishes) end end end elseif(config.allowFromPz and (not config.useBait or getPlayerItemCount(cid, ITEM_NAIL) >= config.baitCount)) then if(formula > 0.7 and doPlayerRemoveItem(cid, ITEM_NAIL, config.baitCount)) then doPlayerAddItem(cid, ITEM_MECHANICAL_FISH, config.fishes) tries = 2 else tries = 1 end end if(tries > 1) then doPlayerAddSkillTry(cid, SKILL_FISHING, tries) if(not isInArray(config.holes, itemEx.itemid)) then doTransformItem(itemEx.uid, itemEx.itemid + 6) else doTransformItem(itemEx.uid, itemEx.itemid + 1) end doDecayItem(itemEx.uid) elseif(tries > 0) then doPlayerAddSkillTry(cid, SKILL_FISHING, 1) if(config.baitFailRemoveChance >= math.random(1, 100)) then if(item.itemid == ITEM_MECHANICAL_FISHING_ROD) then doPlayerRemoveItem(cid, ITEM_NAIL, config.baitCount) else doPlayerRemoveItem(cid, ITEM_FISH, config.baitCount) end end end doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) return true end
  6. Cara, não entendi nada. Você quer um horário fixo para tal event? O interval, basicamente, é o intervalo em milissegundos para o event acontecer de X em X tempo. 100000 / 1000 = 100 segundos = 1 minuto e 40 segundos.
  7. local variavelSomar = 10 local rates = getPlayerRates(cid) doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL] + variavelSomar) Talvez, no lugar do rate, você possa usar a função getExperienceStage(getPlayerLevel(cid)), acho que ela volta o multiplicador de exp, dependendo do level do player (stages.xml), tem que testar.
  8. SCRIPT NÃO FUNCIONAL! Não testei, mas olhei o código e, como o amigo acima comentou, todos as mensagens de loot vão para o chat que é aberto à todos, não é individual. Com as funções atuais não consegui pensar em uma solução.
  9. Se você vai usar no windows (provavelmente você não vai deixa-lo online), recomendo o uso do usbwebserver, é bem simples de usar. https://sourceforge.net/projects/usbwebserver/
  10. Se está dando debug o problema é no mapa. Eu estou usando o TF 1.5 do nekiro no mapa styller e até agora não tive nenhum problema com o mapa.
  11. erro deve ser no mapa então, pq ta dando debug no client normal?
  12. Atualização 28-12-2021 Atualização para TFS 1.5 Adicionado Deathcast channel Correção provisória de bug no bless. Retirado entrada de itens do shop por onThink Alterado para 15 dias o tempo do player inativo perder a house. Adicionado addon doll e stamina refill Adicionado script para melhor configuração do server (styllerConfig.lua) Adicionado raids. Adicionado trade offline complexo. Alterado todas as spells para free account. Reescrito o código de todos os talkactions. Adicionado guild broadcast. Adicionado war sytem por talkactions. Atualizado spells. Algumas alterações no mapa. Download disponível: v15
  13. no RME aparece dessa forma? quando abre o tibia pelo client da cipsoft aparece dessa forma?
  14. Comece baixando o RME oficial remeresmapeditor.com
  15. Olá, creio que seja erro no mapa ou no RME (como comentado acima). Eu uso o downgrade do nekiro e não tive nenhum corte no mapa. Cara, apesar de ter bugs no downgrade do TFS, o nekiro resolve todos os bugs apresentados. Não compare o Nekiro a equipe do thunder baiak. Nekiro é um expert na linguagem em questão, e o thunder baiak são amadores.
  16. Refiz grande parte do script e atualizei para a versão em revscript (TFS 1.3+). Peço a permissão ao dono do tópico para eu criar um novo tópico do sistema que atualizei ou, se preferir, postar aqui.
  17. Eu quis dizer em tecnologia. As duas engines estão a sua disposição, basta escolher.
  18. É trabalhoso, como o amigo acima disse, porém vale a pena. É como comparar um fusca e uma ferrari.
  19. Obrigado. Esta semana irei fazer um update bom, aguardo os relatos do servidor.
  20. não tenho, talvez com isso você consiga implementar o acc manager:
  21. Não tem account manager. Você precisa instalar um site para criar uma conta e configurá-la com o "group_id" desejado.
  22. Isso normalmente acontece quando o programa não se conecta ao servidor Mysql, ou seja, ou o servidor mysql esta desligado, ou os dados de conexão mysql (config.lua) para se conectar ao servidor mysql estão incorretos.
  23. Aparece algum erro? O server fica online e quando vai logar um player ele fecha?
  24. Atualização para a versão 13 (v13) - download disponível no tópico.

Informação Importante

Confirmação de Termo