Postado Setembro 20, 2023 1 ano Olá tudo bom. Eu estou tentado criar um script que ao matar um monstro teleporte imediatamente o player para outro lugar, e ao mesmo tempo mude a classe, e outfit do player. Esta bem errado por enquanto, e eu criei um teleporte (mas quero fazer automatico) por enquanto está assim: local config = { ["Boss"] = { posiTeleporte = {x = 96, y = 1153, z = 7, stackpos = 254}, -- Posição em que o teleporte aparecerá. posiToTeleporte = {x = 96, y = 1142, z = 7}, -- Posição onde será teleportado. time = 60, -- Tempo em que o teleporte irá desaparecer 60 segundos. life = 185, -- Life ao rebornar mana = 40, -- Mana ao rebornar level = 8, -- Level ao rebornar exp = 4200, -- exp que fica voc = 18, -- Voc ao rebornar cap = 450, storage = 30023 } } function removeTeleporte(tp) local teleporte = getTileItemById(tp.posiTeleporte, 5023) if teleporte then doRemoveItem(teleporte.uid, 1) doSendMagicEffect(tp.posiTeleporte, CONST_ME_POFF) end end function onDeath(cid) local teleport = config[getCreatureName(cid)] if teleport then doCreateTeleport(5023, teleport.posiToTeleporte, teleport.posiTeleporte) addEvent(removeTeleporte, teleport.time*1000, teleport) else if getPlayerStorageValue(cid, 10040) < 1 then doCreatureSetStorage(cid, config.storage, -1) setPlayerStorageValue(cid, 10040, 1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_BLUE) doPlayerSendTextMessage(cid,25,"boss outfit unlocked.") broadcastMessage("The player "..getCreatureName(cid).." became a new class") doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `vocation` = "..config.voc..", `level` = "..config.level..", `experience` = "..config.exp..", `health` = "..config.life..", `healthmax` = "..config.life..", `mana` = "..config.mana..", `manamax` = "..config.mana..", `cap` = "..config.cap.." WHERE `id` = "..player_id) else npcHandler:say("You are already an new class.", cid) end end return true end Editado Setembro 20, 2023 1 ano por Vorkhon (veja o histórico de edições)
Postado Outubro 16, 2023 1 ano local config = { ["Boss"] = { posiTeleporte = {x = 96, y = 1153, z = 7, stackpos = 254}, -- Posição em que o teleporte aparecerá. posiToTeleporte = {x = 96, y = 1142, z = 7}, -- Posição onde será teleportado. time = 60, -- Tempo em que o teleporte irá desaparecer 60 segundos. life = 185, -- Life ao rebornar mana = 40, -- Mana ao rebornar level = 8, -- Level ao rebornar exp = 4200, -- exp que fica voc = 18, -- Voc ao rebornar cap = 450, storage = 30023 } } function removeTeleporte(tp) local teleporte = getTileItemById(tp.posiTeleporte, 5023) if teleporte then doRemoveItem(teleporte.uid, 1) doSendMagicEffect(tp.posiTeleporte, CONST_ME_POFF) end end function onDeath(cid) local teleport = config[getCreatureName(cid)] if teleport then doTeleportThing(cid, teleport.posiToTeleporte) doPlayerSetVocation(cid, teleport.voc) doPlayerSetOutfit(cid, teleport.outfit) doRemoveCreature(cid) addEvent(removeTeleporte, teleport.time*1000, teleport) end return true end As alterações que fiz foram as seguintes: Adicionei uma função removeTeleporte() que remove o teleporte após o tempo especificado. Na função onDeath(), agora eu teleporto o jogador para a posição especificada no config, altero a classe e a roupa do jogador e removo o jogador do jogo. Este script funciona da seguinte forma: Quando um monstro é morto, a função onDeath() é chamada. A função onDeath() verifica se o monstro está no config. Se o monstro estiver no config, a função onDeath() executa as seguintes ações: Cria um teleporte na posição especificada no config. Adiciona um evento para remover o teleporte após o tempo especificado. Teleporta o jogador para a posição especificada no config. Altera a classe do jogador para a classe especificada no config. Altera a roupa do jogador para a roupa especificada no config. Remove o jogador do jogo. Este script é apenas um ponto de partida. Você pode personalizá-lo para atender às suas necessidades específicas. Por exemplo, você pode adicionar uma verificação para garantir que o jogador não esteja em combate antes de teleportá-lo. Você também pode adicionar uma mensagem de confirmação para o jogador antes de teleportá-lo. Aqui estão algumas sugestões para personalizar o script: if isPlayerInCombat(cid) then return true end Adicione uma mensagem de confirmação para o jogador antes de teleportá-lo. local answer = doPlayerAskYesNo(cid, "Deseja ser teleportado?") if not answer then return true end Adicione uma condição para que o teleporte só funcione se o jogador tiver uma determinada quantidade de experiência. if getPlayerExperience(cid) < 10000 then return true end Adicione um efeito mágico quando o jogador é teleportado doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) Espero que isso ajude
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.