Ir para conteúdo

L3K0T

Membro
  • Registro em

  • Última visita

Tudo que L3K0T postou

  1. irmão tenho certeza que o script que disponibilizei está corretamente correto, pode ser algum outro combat que está afetando e até mesmo conflito
  2. local lvlcrit = 48913 -- armazenamento para críticos normais local lvlcritDanger = 48904 -- armazenamento para críticos perigosos local multiplier = 1.5 -- multiplicador de dano function onCombat(cid, target) if isPlayer(cid) and isCreature(target) then local criticalChance = getPlayerStorageValue(cid, lvlcrit) or 0 local criticalDangerChance = getPlayerStorageValue(cid, lvlcritDanger) or 0 local chance = math.random(1, 1000) if chance <= (criticalDangerChance * 3) then local damageDanger = 100 -- Valor do dano crítico DANGER (ajuste conforme necessário) doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damageDanger, -damageDanger, 255) doSendAnimatedText(getCreaturePosition(target), "DANGER!", 190) doSendMagicEffect(getCreaturePosition(cid), 52) return true elseif chance <= (criticalChance * 4) then local damageBooster = 200 -- Valor do dano crítico BOOSTER (ajuste conforme necessário) doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damageBooster, -damageBooster, 255) doSendAnimatedText(getCreaturePosition(target), "+BOOSTER!", 31) doSendMagicEffect(getCreaturePosition(cid), 54) return true else return true end end return true end
  3. local lvlcrit = 48913 -- armazenamento para críticos normais local lvlcritDanger = 48904 -- armazenamento para críticos perigosos local multiplier = 1.5 -- multiplicador de dano function onCombat(cid, target) if isPlayer(cid) and isCreature(target) then local criticalChance = getPlayerStorageValue(cid, lvlcrit) or 0 local criticalDangerChance = getPlayerStorageValue(cid, lvlcritDanger) or 0 local chance = math.random(1, 1000) if chance <= (criticalDangerChance * 3) then local damageDanger = 100 -- Valor do dano crítico DANGER (ajuste conforme necessário) doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damageDanger, -damageDanger, 255) doSendAnimatedText(getCreaturePosition(target), "DANGER!", 190) doSendMagicEffect(getCreaturePosition(cid), 52) return true end if chance <= (criticalChance * 4) then local damageBooster = 200 -- Valor do dano crítico BOOSTER (ajuste conforme necessário) doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damageBooster, -damageBooster, 255) doSendAnimatedText(getCreaturePosition(target), "+BOOSTER!", 31) doSendMagicEffect(getCreaturePosition(cid), 54) return true end return true end return true end vi que vc tava usando 2 local = demage pode ser conflito
  4. local lvlcrit = 48913 -- armazenamento para críticos normais local lvlcritDanger = 48904 -- armazenamento para críticos perigosos local multiplier = 1.5 -- multiplicador de dano function onCombat(cid, target) if isPlayer(cid) and isCreature(target) then local criticalChance = getPlayerStorageValue(cid, lvlcrit) or 0 local criticalDangerChance = getPlayerStorageValue(cid, lvlcritDanger) or 0 local chance = math.random(1, 1000) if chance <= (criticalDangerChance * 3) then local damageDanger = 100 -- Valor do dano crítico DANGER (ajuste conforme necessário) doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damageDanger, -damageDanger, 255) doSendAnimatedText(getCreaturePosition(target), "DANGER!", 190) doSendMagicEffect(getCreaturePosition(cid), 52) return true end if chance <= (criticalChance * 4) then local damageBooster = 200 -- Valor do dano crítico BOOSTER (ajuste conforme necessário) doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damageBooster, -damageBooster, 255) doSendAnimatedText(getCreaturePosition(target), "+BOOSTER!", 31) doSendMagicEffect(getCreaturePosition(cid), 54) return true end return true end return true end
  5. local lvlcrit = 48913 -- armazenamento para críticos normais local lvlcritDanger = 48904 -- armazenamento para críticos perigosos local multiplier = 1.5 -- multiplicador de dano function onCombat(cid, target) if isPlayer(cid) and isCreature(target) then local criticalChance = getPlayerStorageValue(cid, lvlcrit) or 0 local criticalDangerChance = getPlayerStorageValue(cid, lvlcritDanger) or 0 local chance = math.random(1, 1000) if chance <= (criticalDangerChance * 3) then local damage = 100 -- Valor do dano crítico DANGER (ajuste conforme necessário) doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255) doSendAnimatedText(getCreaturePosition(target), "DANGER!", 190) doSendMagicEffect(getCreaturePosition(cid), 52) return true end if chance <= (criticalChance * 4) then local damage = 100 -- Valor do dano crítico BOOSTER (ajuste conforme necessário) doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255) doSendAnimatedText(getCreaturePosition(target), "+BOOSTER!", 31) doSendMagicEffect(getCreaturePosition(cid), 54) return true end end return true end
  6. isso e avisos anterior são depuração local lvlcrit = 48913 -- armazenamento para críticos normais local lvlcritDanger = 48904 -- armazenamento para críticos perigosos local multiplier = 1.5 -- multiplicador de dano function onCombat(cid, target) if isPlayer(cid) and isCreature(target) then local criticalChance = getPlayerStorageValue(cid, lvlcrit) or 0 local criticalDangerChance = getPlayerStorageValue(cid, lvlcritDanger) or 0 local chance = math.random(1, 1000) if chance <= (criticalDangerChance * 3) then local damage = 100 doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255) doSendAnimatedText(getCreaturePosition(target), "DANGER!", 190) doSendMagicEffect(getCreaturePosition(cid), 52) return true end if chance <= (criticalChance * 3) then local damage = 100 doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255) doSendAnimatedText(getCreaturePosition(target), "+BOOSTER!", 31) doSendMagicEffect(getCreaturePosition(cid), 54) return true end end return true end
  7. local lvlcrit = 48913 -- armazenamento para críticos normais local lvlcritDanger = 48904 -- armazenamento para críticos perigosos local multiplier = 1.5 -- multiplicador de dano function onCombat(cid, target) if isPlayer(cid) and isCreature(target) then local criticalChance = getPlayerStorageValue(cid, lvlcrit) or 0 local criticalDangerChance = getPlayerStorageValue(cid, lvlcritDanger) or 0 local chance = math.random(1, 1000) if chance <= (criticalDangerChance * 3) then local damage = 100 doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255) doSendAnimatedText(getCreaturePosition(target), "DANGER!", 190) doSendMagicEffect(getCreaturePosition(cid), 52) print("Crítico DANGER aplicado") return true end if chance <= (criticalChance * 3) then local damage = 100 doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255) doSendAnimatedText(getCreaturePosition(target), "+BOOSTER!", 31) doSendMagicEffect(getCreaturePosition(cid), 54) print("Crítico BOOSTER aplicado") return true end end return true end
  8. local lvlcrit = 48913 -- armazenamento para críticos normais local lvlcritDanger = 48904 -- armazenamento para críticos perigosos local multiplier = 1.5 -- multiplicador de dano function onCombat(cid, target) if isPlayer(cid) and isCreature(target) then local criticalChance = getPlayerStorageValue(cid, lvlcrit) or 0 local criticalDangerChance = getPlayerStorageValue(cid, lvlcritDanger) or 0 local chance = math.random(1, 1000) print("Chance de crítico:", criticalChance) print("Chance de crítico perigoso:", criticalDangerChance) print("Chance aleatória:", chance) if chance <= (criticalDangerChance * 3) then local damage = 100 doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255) doSendAnimatedText(getCreaturePosition(target), "DANGER!", 190) doSendMagicEffect(getCreaturePosition(cid), 52) print("Crítico DANGER aplicado") return true end if chance <= (criticalChance * 3) then local damage = 100 doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -damage, -damage, 255) doSendAnimatedText(getCreaturePosition(target), "+BOOSTER!", 31) doSendMagicEffect(getCreaturePosition(cid), 54) print("Crítico BOOSTER aplicado") return true end end return true end coloquei um depurador de código, qualquer erro vai mostrar no console
  9. Arruma os links, ta off prazo 48 ou será ocultado. Obrigado
  10. L3K0T postou uma resposta no tópico em Recursos Avançados
    é noix irmão
  11. L3K0T postou uma resposta no tópico em Recursos Avançados
    Windows Ginius Criei a ferramenta "Windows Ginius" para ajudar usuários e desenvolvedores de OTServ (Open Tibia Server) a manterem seus sistemas limpos e otimizados. Esta ferramenta possui três funcionalidades principais: 1. Remoção de Arquivos Temporários do Windows 2. Remoção de Arquivos Temporários do OTClient 3. Combinação das Duas Funções Anteriores Além disso, a ferramenta ajuda a evitar que desenvolvedores de OTServ acumulem pastas e arquivos temporários desnecessários, contribuindo para um ambiente de desenvolvimento mais organizado e eficiente. Funcionalidades 1. Remoção de Arquivos Temporários do Windows: Botão "Limpar Cache Windows": Ao clicar neste botão, a ferramenta limpa os arquivos temporários que se acumulam nos diretórios do sistema e do usuário. Esses arquivos, ao longo do tempo, podem ocupar espaço desnecessário e impactar negativamente o desempenho do sistema. 2. Remoção de Arquivos Temporários do OTClient: Botão "Limpar Cache OTClient": Este botão remove pastas específicas relacionadas ao OTClient localizadas no diretório Roaming do usuário. Esta função é particularmente útil para desenvolvedores e jogadores de OTServ que desejam manter suas configurações limpas e evitar a acumulação de dados temporários. Use esta opção especialmente se o OTClient estiver apresentando problemas ou bugs, pois a limpeza dessas pastas pode resolver muitos problemas comuns. 3. Combinação de Limpeza: Botão "Limpar Cache OTClient e Windows": Esta opção executa as duas funcionalidades anteriores em conjunto, limpando tanto os arquivos temporários do Windows quanto as pastas específicas do OTClient. Isso garante uma limpeza completa, liberando espaço em disco e melhorando o desempenho geral do sistema. Benefícios Liberação de Espaço em Disco: A ferramenta remove arquivos e pastas temporárias que podem consumir espaço significativo no disco rígido, liberando recursos valiosos para outras atividades. Melhoria no Desempenho do Sistema: Ao limpar regularmente os arquivos temporários, a ferramenta previne a lentidão causada pela acumulação de dados inúteis, garantindo que o sistema opere de maneira mais rápida e eficiente. Ambiente de Desenvolvimento Organizado: Para desenvolvedores de OTServ, manter as pastas do OTClient limpas é crucial para evitar problemas com configurações antigas ou dados corrompidos. A ferramenta ajuda a manter um ambiente de desenvolvimento limpo e organizado. Facilidade de Uso: A interface simples e intuitiva permite que qualquer usuário, independentemente de sua experiência técnica, utilize a ferramenta com facilidade. Com apenas alguns cliques, é possível realizar a limpeza necessária. Resumo: A ferramenta "Windows Ginius" foi desenvolvida por mim, L3K0T, com o objetivo de oferecer uma solução prática e eficiente para a manutenção do sistema. Especialmente útil para desenvolvedores e jogadores de OTServ, ela facilita a limpeza de arquivos temporários do Windows e do OTClient, além de oferecer uma opção de limpeza combinada. Utilize "Windows Ginius" regularmente para garantir que seu ambiente de trabalho ou jogo esteja sempre otimizado e livre de resíduos desnecessários. Se o OTClient estiver apresentando bugs ou problemas de desempenho, use a opção de limpeza de arquivos temporários do OTClient para resolver esses problemas rapidamente. Download: app.publish (4).rar Virus Total: https://www.virustotal.com/gui/file/e03b7a4fd7482b21117172949c9eed6a066db5502c16b5e64c5caf7436b15bda?nocache=1
  12. local t = { storage = {13910}, -- Storage e valor necessário. maxSkillLevel = 1000, -- Nível máximo da habilidade. resetSkillLevel = 10 -- Nível para o qual a habilidade será redefinida. } function onAdvance(cid, skill, oldLevel, newLevel) if skill == SKILL_SWORD then if newLevel > t.maxSkillLevel then local triesNeededForReset = getPlayerRequiredSkillTries(cid, SKILL_SWORD, t.resetSkillLevel) local currentTries = getPlayerSkillTries(cid, SKILL_SWORD) doPlayerAddSkillTry(cid, SKILL_SWORD, triesNeededForReset - currentTries) doPlayerSendCancel(cid, "Você atingiu o nível máximo de habilidade de espada. Sua habilidade foi redefinida para o nível " .. t.resetSkillLevel .. ".") end end return true end
  13. teste ai local t = { storage = {13910}, -- Storage e valor necessário. maxSkillLevel = 11, -- Nível máximo da habilidade. resetSkillLevel = 10 -- Nível para o qual a habilidade será redefinida. } function onAdvance(cid, skill, oldLevel, newLevel) if skill == SKILL_SWORD then if newLevel > t.maxSkillLevel then doPlayerAddSkillTry(cid, SKILL_SWORD, getPlayerRequiredSkillTries(cid, SKILL_SWORD, t.resetSkillLevel) - getPlayerSkillTries(cid, SKILL_SWORD)) doPlayerSendCancel(cid, "Você atingiu o nível máximo de habilidade de espada. Sua habilidade foi redefinida para o nível " .. t.resetSkillLevel .. ".") end end return true end
  14. local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_ORANGE) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -135.8, 0, -140.9, 0) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_HITCOLOR, COLOR_RED) setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -170.8, 0, -175.9, 0) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -150.8, 0, -155.9, 0) local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, parameters.combat2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, parameters.combat3, parameters.var) end function yagai1(cid) if isCreature(cid) and isCreature(getCreatureTarget(cid)) then local position = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position, 399) end end function yagai2(cid) if isCreature(cid) and isCreature(getCreatureTarget(cid)) then local position = {x=getThingPosition(getCreatureTarget(cid)).x+2, y=getThingPosition(getCreatureTarget(cid)).y+2, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position, 411) end end function yagai3(cid) if isCreature(cid) and isCreature(getCreatureTarget(cid)) then local position = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position, 398) end end function yagai4(cid) if isCreature(cid) and isCreature(getCreatureTarget(cid)) then local position = {x=getThingPosition(getCreatureTarget(cid)).x+2, y=getThingPosition(getCreatureTarget(cid)).y+2, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position, 396) end end function yagai5(cid) if isCreature(cid) and isCreature(getCreatureTarget(cid)) then local position = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position, 438) end end function yagai6(cid) if isCreature(cid) and isCreature(getCreatureTarget(cid)) then local position = {x=getThingPosition(getCreatureTarget(cid)).x+2, y=getThingPosition(getCreatureTarget(cid)).y+2, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position, 439) end end function onCastSpell(cid, var) local waittime = 3.0 -- Tempo de exhaustion local storage = 143512 -- não mecha local storage2 = 55512 if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.") return false end local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3} if getPlayerStorageValue(cid, storage2) == 5 then addEvent(onCastSpell2, 650, parameters) addEvent(yagai3, 50, cid) addEvent(yagai4, 650, cid) elseif getPlayerStorageValue(cid, storage2) == 4 then addEvent(onCastSpell2, 650, parameters) addEvent(yagai3, 50, cid) addEvent(yagai4, 650, cid) elseif getPlayerStorageValue(cid, storage2) == 3 then addEvent(onCastSpell3, 650, parameters) addEvent(yagai5, 50, cid) addEvent(yagai6, 650, cid) else addEvent(onCastSpell1, 650, parameters) addEvent(yagai1, 50, cid) addEvent(yagai2, 650, cid) end exhaustion.set(cid, storage, waittime) return true end erro: function onCastSpell(cid, var) não tava fechada
  15. L3K0T postou uma resposta no tópico em Anuncie seu OTServer
    Junte-se ao Mundo Mágico de Tibia Harry Potter Origin! Aventura Inédita te Espera! ✨Reformulado e Arrumado: Explore um universo totalmente reformulado e arrumado, fruto de um projeto que virou autoria pública! Cada detalhe foi cuidadosamente melhorado para oferecer a melhor experiência. 🔍Muitas Quests: Prepare-se para desvendar mistérios e encarar desafios emocionantes com inúmeras quests inéditas e envolventes. Cada missão é uma nova jornada no mundo mágico de Harry Potter. 📱💻Compatibilidade Total: Jogue como quiser! Temos **OTClient Mobile**, **OTClient PC** e o clássico **Client Old** para você se conectar e viver a magia onde estiver. 💎Novos Sistemas: Experimente novos sistemas como o **THPC para donates**, proporcionando uma jogabilidade ainda mais imersiva e personalizada. ⚔️Opção PvP: Para os mais corajosos, o modo PvP está disponível! Enfrente outros jogadores em batalhas épicas e mostre suas habilidades no campo de batalha. 🌟Sistema VIP: Desfrute de benefícios exclusivos com nosso **Sistema VIP**. Itens especiais, áreas reservadas, e muito mais esperam por você. Torne-se um VIP e experimente o melhor que Tibia Harry Potter Origin tem a oferecer. 🛡️Itens VIP: Equipamentos e acessórios poderosos estão à disposição dos jogadores VIP, ajudando você a dominar qualquer desafio com estilo e força. 🔨Sistema de Craft: Crie seus próprios itens com nosso inovador **Sistema de Craft**. Combine materiais, experimente receitas e personalize seu equipamento para se destacar no jogo. 🗺️Inúmeras Hunts: Descubra novas áreas e enfrente criaturas desafiadoras em muitas hunts. Prepare seu melhor equipamento e entre nessa aventura! 🔥E muito mais!: A magia não para por aí. Novidades e surpresas te esperam a cada passo. Mergulhe nesse universo e descubra tudo o que Tibia Harry Potter Origin tem a oferecer! 🔮 Não perca essa chance! Entre agora e faça parte desta jornada mágica e épica! Convide seus amigos, forme alianças e escreva sua própria história no mundo de Tibia Harry Potter Origin. Acesse agora e comece sua aventura https://www.thpo.com.br/ Nos vemos em Tibia Harry Potter Origin!
  16. L3K0T postou uma resposta no tópico em Portal
    vou liberar sim, dps que alguns sistemas forem colocados nela rsrs seja bem vindo!
  17. L3K0T postou uma resposta no tópico em Portal
    É necessário fazer uma alteração no código-fonte do OtClient, porém atualmente não está disponível. Em breve, irei disponibilizá-lo já com o código da extensão. Assim, haverá uma versão com a extensão e outra sem. Não fiz a alteração porque envolve o servidor e pode gerar incompatibilidades. Além disso, isso exigiria que os usuários finais fizessem essas alterações no servidor e que não é a intenção.
  18. L3K0T postou uma resposta no tópico em Portal
    obg parceiro, vamos personalizar e fazer ser compátivel com todos os ots
  19. L3K0T postou uma resposta no tópico em Portal
    obg
  20. L3K0T postou uma resposta no tópico em Suporte Tibia OTServer
    Preciso do nome do monstro Preciso das posição do sqm aonde ele nasce Preciso a Acion ID da alavanca que você colocou nela e Preciso saber que storage você quer usar pra contagem do tempo???
  21. L3K0T postou uma resposta no tópico em Portal
    aceita sim, precisa ativar... porem se n souber, aguarde a atualização 5.1 você pode tentar indo em modulos/game_things/ abra o game_things.lua e ache: function load(version) local errorMessage = ' abaixo adicione g_game.enableFeature(GameSpritesAlphaChannel) compile seu cliente no object builder no modo transparência e pronto vai funcionar.
  22. L3K0T postou uma resposta no tópico em Portal
    OTCLIENT PERSONAL O OTClient Personal é uma fusão exclusiva dos recursos do OTClient MeHah, OTClient V8 e OTClient Edubard. Com uma interface totalmente alterada e personalizada, esta versão proporciona uma experiência de jogo singular e adaptável. Além disso, o OTClient Personal recebe atualizações constantes através do GitHub https://github.com/l3k0t/OTClient_Personal, assegurando que os administradores de servidores OTS estejam sempre atualizados com as últimas melhorias e correções na interface e no código-fonte. Cores nos nomes, isso é só o começo: Download: https://github.com/l3k0t/OTClient_Personal Queremos ouvir você! Sua voz é fundamental para tornar nossa comunidade ainda mais vibrante e dinâmica. Convidamos você a contribuir compartilhando suas ideias, sugestões e feedback. Juntos, podemos criar algo verdadeiramente especial. Não hesite em participar e fazer parte desta jornada conosco! RELEASES DOWNLOADS: 11/05/2024 - Download OTClient 5.1 https://github.com/l3k0t/OTClient_Personal/releases/tag/otclient_5.1 10/05/2024 - Download OTClient 5.0 https://github.com/l3k0t/OTClient_Personal/releases/tag/otclient_5.0
  23. se vc selecionar alguma coisa no distro aberto o servidor congela no windows, isso é normal, mais é só aperta 1 vez o boão direito do mouse dentro da distro que ele volta ao normal
  24. L3K0T postou uma resposta no tópico em Suporte Tibia OTServer
    use o botão para UP, evite comentar pra subir a publicação. eu uso esse no meu servidor, vc pode usar como base function onUse(cid, item, fromPosition, itemEx, toPosition, Position) local leverItemId = 1945 local leverActionId = 5281 local monsterName = "Grindelgroth" local monsterPosition = {x = 1014, y = 1002, z = 7} local radiusX = 4 -- Raio X = 8 / 2 local radiusY = 6 -- Raio Y = 12 / 2 local teleportPosition = {x = 1023, y = 1002, z = 7} local townId = 1 -- Defina o ID da cidade local numbersala = "1" if (item.itemid == leverItemId or item.itemid == 1946) and item.actionid == leverActionId then local centerX = monsterPosition.x local centerY = monsterPosition.y for x = -radiusX, radiusX do for y = -radiusY, radiusY do local pos = {x = centerX + x, y = centerY + y, z = monsterPosition.z} local creature = getTopCreature(pos).uid if creature ~= 0 and isCreature(creature) then if isPlayer(creature) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Há um jogador bloqueando a alavanca. Você não pode ativá-la agora.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Há uma criatura bloqueando a alavanca. Você não pode ativá-la agora.") end return true end end end if getPlayerStorageValue(cid, item.actionid) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você já completou esta Sala. Continue sua jornada e busque pela próxima Sala do Perigo no mapa.") doSendMagicEffect(getCreaturePosition(cid), 2) return true end -- Verificar se o jogador tem um summon local playerSummon = getCreatureSummons(cid)[1] if playerSummon then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você não pode ativar a alavanca enquanto tiver um summon.") return true end -- Verificar se a criatura já está presente local existingCreature = getTopCreature(monsterPosition).uid if existingCreature ~= 0 and isCreature(existingCreature) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Já há uma criatura presente. Você não pode ativar a alavanca agora.") return true end if item.itemid == leverItemId then doTransformItem(item.uid, 1946) end -- Invocar a criatura com efeito visual local monster = doSummonCreature(monsterName, monsterPosition) if monster then doSendMagicEffect(monsterPosition, EFFECT_TELEPORT_DOWN) end -- Teleportar o jogador para a posição especificada com efeito visual if isPlayer(cid) then doTeleportThing(cid, teleportPosition) doSendMagicEffect(teleportPosition, EFFECT_TELEPORT_UP) -- Anunciar que um jogador está na Sala do Perigo 1 doBroadcastMessage("O jogador " .. getCreatureName(cid) .. " está na Sala do Perigo ".. numbersala..".", 20) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Você entrou na arena, cuidado!") end -- Agendar a remoção da criatura após 5 segundos addEvent(function() if isCreature(monster) then doRemoveCreature(monster) -- Teleportar o jogador para o templo da cidade após a remoção do monstro local templePos = getTownTemplePosition(townId) doTeleportThing(cid, templePos) doSendMagicEffect(templePos, EFFECT_TELEPORT) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você foi expulso Sala do Perigo, você está muito fraco.") end end, 100000) return true end return false end quantos sqm tem a sala aonde nasce o montro? posso fazer uma verificação se há players naqueles spms se tiver ninguem entra

Informação Importante

Confirmação de Termo