Ir para conteúdo

Yugami

Membro
  • Registro em

  • Última visita

Tudo que Yugami postou

  1. O endless falou " ; " no final da linha, não para substituir " por ; O correto seria $config['site']['serverPath'] = "C:/Users/Usuario/Desktop/base/server/";
  2. Yugami respondeu ao post em um tópico de leandroneves em Suporte Tibia OTServer
    Uma observação, não seria melhor fazer com que em vez de IP, fosse por ACCOUNT storage, pois pensa no seguinte, o jogador fez a Quest no personagem dele no IP 192.168.1.100, se ele estiver com as configurações para IP estático, beleza esse script vai funcionar tranquilo, já que o IP estático é fixo, porem e se ele tiver com IP dinamico? e esse IP mudar para 192.168.1.101, ele vai conseguir refazer a quest, já por uma account storage, não ocorreria esse erro, tendo em vista que seria como Players Storage, só que em vez de ser por Player, vai ser por Account...
  3. Quantidade do item é aleatoria? ou você especifica uma quantidade máx? no script ele pede o count, mas não vi ele usando em lugar algum
  4. Cara, eu não mecho muito com lua, mas ao meu ver esse script ta bem zuadinho, oque se precisava que fizesse o script?
  5. Yugami respondeu ao post em um tópico de Little Bear em Suporte Tibia OTServer
    Qual é o código do monstro? Você só clonou o script de um monstro, e fez todos os demais? Quando começou a acontecer isso? Foi quando você fez alguma mudança em alguma parte do mapa? Acho que quanto mais detalhes você passar no tópico, mais fácil vai ficar para alguém te auxiliar.
  6. local items = { {itemId = 12779, count = 1, chance = 1}, {itemId = 12780, count = 2, chance = 99}, } local broadcastitems = {2361} function onUse(cid, item, frompos, item2, topos) local totalChance, randomTable, randomNumber = 0, {}, 0 for _, itemInfo in pairs (items) do randomTable[itemInfo.itemId] = {min = totalChance + 1, max = itemInfo.chance, count = itemInfo.count or 1} totalChance = totalChance + itemInfo.chance end randomNumber = math.random(1, totalChance) for itemId, itemInfo in pairs (randomTable) do local min, max = itemInfo.min, itemInfo.min + itemInfo.max if randomNumber >= min and randomNumber <= max then doRemoveItem(item.uid, 1) local newItem = doPlayerAddItem(cid, itemId, qntItemsByPercnt(), false) if not newItem then return doPlayerSendCancel(cid, "Voce nao tem espaco para receber o item!") end local pos = {x=getPlayerPosition(cid).x+0, y=getPlayerPosition(cid).y+0, z=getPlayerPosition(cid).z+0} doSendMagicEffect(pos, 442) local iInfo = getItemInfo(itemId) doPlayerSendTextMessage(cid, 19, "Voce ganhou "..iInfo.name.."") for i, broaditem in ipairs(broadcastitems) do if itemId==broaditem then doBroadcastMessage(getCreatureName(cid).." acabou de ganhar "..iInfo.name.." (Raro) na senzu box.", 19) end end break end end return true end
  7. Meu amigo, quando for coloca script para que facilite o entendimentos do pessoal e para que seja mais fácil para te ajudarem, se possível coloca em code é o simbolo de </> que fica no painel de ferramentas do comentário. referente o seu bug, você mencionou comando ele libera as skins e as recompensas normalmente de acordo com o nivel, me diz, você mencionou items e recompensas, porem o script de saga não entrega nenhum item ao jogador, se existir algum outro script que se relacione com o comando saga que você quer arrumar, poste eles...
  8. Só copiar o de cima, ou da CTRL+F e procura a linha doPlayerSendTextMessage(cid, 25, ".") e deleta ela
  9. Ola amigo, poste o script mencionado...
  10. Ola amigo, testa assim: local config = { walks = 8, -- qnts passos ele vai dar delay = 200, -- de qnts em qnts milisegundos ele dรก cada passo speed = 400, -- velocidade que ele vai ficar enquanto estiver sob efeito do taunt waittime = 180, -- tempo de exhaustion storage = 6377, monsters = {"Trainer"} -- Nome dos monstros que não pode ser usado, ex: {"Trainer", "Dragon", "Bear"...} } function onCastSpell(cid, var) local poz = getCreaturePosition(cid) -- effeito no caster local target = getCreatureTarget(cid) for _, name in ipairs(config.monsters) do if (isMonster(target) and getCreatureName(target) == name) then doPlayerSendCancel(cid, "Você não pode utilizar esta spell neste monstro.") return false end end if exhaustion.check(cid, config.storage) then doPlayerSendChannelMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde ".. exhaustion.get(cid, config.storage) .. " segundos para usar o jutsu novamente.", TALKTYPE_CHANNEL_O, CHANNEL_SPELL) return false end Taunt(cid, variantToNumber(var), config.delay, config.walks) doChangeSpeed(variantToNumber(var), (config.speed - getCreatureBaseSpeed(variantToNumber(var)))) addEvent(function() if isCreature(variantToNumber(var)) then addEvent(doSendMagicEffect, 100, {x = poz.x+4, y = poz.y, z = poz.z}, 624) doChangeSpeed(variantToNumber(var), (-config.speed + getCreatureBaseSpeed(variantToNumber(var)))) end end, config.delay * (config.walks + 1)) exhaustion.set(cid, config.storage, config.waittime) return true end
  11. Corrigido, todas as mensagens agora são enviada via sendCancel, e foi colocado a tag de adicionar o cooldown, que havia esquecido kk
  12. local c = { cooldown = 25, -- tempo em segundos para usar novamente effect = 200, -- efeito que vai sair quando for utilizado a spell storage = 32598, -- storage do cooldown pos_user = { x = 1509, y = 1261, z = 7}, pos_target = { x = 1509, y = 1255, z = 7}, time_back = 15, -- tempo em segundos para retornar points = 70, -- pontos de skills que o usuario terar a mais spell_room = {from = {x = 1, y = 1, z = 1}, to = {x = 1, y = 1, z = 1}}, restricted_zones = { [1] = {from = {x = 1483, y = 1110, z = 7}, to = {x = 1648, y = 1275, z = 7}}, [2] = {from = {x = 1054, y = 910, z = 7}, to = {x = 1069, y = 925, z = 7}} } } local function teleportPlayer(cid, pos, time) addEvent(doTeleportThing, time, cid, getCreaturePosition(cid)) doTeleportThing(cid, pos) end local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, c.time_back*1000) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, c.points) function onCastSpell(cid, var) local spellRoom = c.spell_room local restrictZones = c.restricted_zones local target = getCreatureTarget(cid) if (isInRange(getCreaturePosition(cid), spellRoom.from, spellRoom.to)) then doPlayerSendCancel(cid, "You are already within the dimension of this spell.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end for _, zone in ipairs(restrictZones) do if (isInRange(getCreaturePosition(cid), zone.from, zone.to)) then doPlayerSendCancel(cid, "It is impossible to use this spell here.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end end if (isPlayer(cid)) and (exhaustion.check(cid, c.storage)) then doPlayerSendCancel(cid, "Wait ".. exhaustion.get(cid, c.storage) .. " seconds.") return false end if (not isPlayer(target)) then doPlayerSendCancel(cid, "This spell can only be used in Player.") return false end teleportPlayer(target, c.pos_target, c.time_back*1000) teleportPlayer(cid, c.pos_user, c.time_back*1000) exhaustion.set(cid, c.storage, c.cooldown) doSendMagicEffect(getCreaturePosition(target), c.effect) return TRUE end testa
  13. man, para tópico não ficar extenso peço que teste com essa ultima modificação, ao meu ver era pra funcionar. Caso não funcione anoite quando chegar em casa eu monto do meu PC e te envio, por que fica montando do bloco de notas é complicado kkkkk
  14. Ola amigo, primeiro se teria que verificar é realmente o PvP? Faça os seguintes procedimentos: 1. Verifica se o jogador esta com o PK ligado, se estiver e mesmo assim não consegue atacar outro jogador passa para o próximo passo. 2. Verifica se o jogador consegue atacar os MOBs, se conseguir atacar passe para o próximo passo 3. Verifica se existe alguma script que envolva statschange, combat target attack se existir algum script que utilize destas funções, você vai precisar validar se alguma delas interfere no PvP. Como validar? você pode comentar a tag e fazer um reboot no servidor, ou você pode simplesmente abrir o código e tentar entender o código e ver se existe algum que influencie no PvP, e fazendo o teste especificamente neste código que influência. Se PK ligado, você consegue atacar os mobs e não os players, e não existe nenhum script que utilize das funções que o passo 3 mencione e que influêncie no PvP, e você verificou o config.lua, então pode ser algum mod que influência no creaturescripts, em ultimo caso eu recomendaria testar a distro e a config.lua na base sem nenhuma modificação.
  15. fiz uma correção testa la.
  16. é uma spell normal, utilizada pelo player
  17. fiz uma correção na script, Só copiar e testar.
  18. Pelo que vi o script esta correto, jogador que possui a storage igual a X sera teleportado na posição pos_storage, caso não tenha ele sera teleportado para outra posição que é a "pos".
  19. pronto ajeitei para você poder configurar o valor necessário, e referente a sua duvida, como eu disse acima você tem que ir em movements ta explicado ali, qualquer outra duvida só pergunta.
  20. Ola amigo, se for oque eu entendi, aqui esta: Passo a passo: vá em data/movements e abra o movements.xml e cole a seguinte linha <movevent type="StepIn" actionid="ACTIONID_DO_TP" event="script" value="nome_do_arquivo.lua"/> em seguida vá em data/movements/scripts e copie qualquer arquivo.lua e cole e faça a substituição de nome para o "nome_do_arquivo" o mesmo que você colocou no passo anterior. em seguida abra o arquivo e cole o seguinte código: local c = { pos = {x = 1, y = 1, z = 1}, -- posição que sera levado sem storage storage = 20000, -- storage value = 1, -- valor que ele precisa ter pos_storage = {x = 1, y = 1, z = 1} -- posição que sera levado com storage } function onStepIn(cid, item, position, fromPosition) if getCreatureStorage(cid, c.storage) == c.value then doTeleportThing(cid, c.pos_storage) else doTeleportThing(cid, c.pos) end return true end
  21. Ola amigo, primeiramente você deveria postar o spell da invocação.lua e o summon.xml, pois não tem como o pessoal te ajudar sem os códigos que esta envolvido... Pode ser que seja erro no script, pode ser que você não configurou para que o monstro possa ser invocado...
  22. pera não entendi oque você quer, o script funcionou? Se sim, oque você quer fazer que não citou no pedido? Ficou confuso a sua resposta por causa das edições.
  23. Deu algum erro? Se sim, poste o erro. faz um tempo que não mexo com script.
  24. Script corrigido, só copiar la novamente.

Informação Importante

Confirmação de Termo