Postado Junho 9 Jun 9 Fellow, Guys.Hoje eu estava fazendo um mapa e colocando coisas que ja existiam ex: (Quests, Hunts e outras coisas de outros maps)Cheguei numa conclusão que identificar TP por TP era cansativo e as vezes, fazer algum tile específico e/ou quest específica demoraria mais tempo também...O que eu fiz? com a ajuda do nosso queridíssimo ChatGPT e a idéia mirabolante de organizar isso da forma mais rápida também, ele gerou este código... que para alguns pode chegar a ser inútilMas, para mim vai otimizar muito tempo... tendo em vista que é abrangente também, caso for usar piso que teria por exemplo: "actionID & uniqueID, Reset & Reborn e outras features especificas",seria uma boa otimizar isso com uma rápida solução de "item no chão, localização e o que você precisar"... (eu não adaptei isso, mas... se precisar eu faço e testo aqui)para não bugar seria necessário: criar um novo ITEM no Item Editor com novo ID e colocar no mapa, configurando esse item especifico (possivelmente com SPRITE de TP)Então, espero que seja útil essa contribuição, pois pra mim irá ser... e quis trazer para cá.local TELEPORT_ITEMID = 10551 -- isso é o código do item que você vai usarlocal teleporterPairs = { { from = {x = 124, y = 74, z = 7}, to = {x = 136, y = 76, z = 7} }, -- localização a - b (teleportarão entre si) { from = {x = 131, y = 67, z = 7}, to = {x = 125, y = 81, z = 7} }, -- localização c - d (também teleportarão entre si)}local teleportMap = {} -- daqui pra baixo é para a solução funcionarlocal function posToKey(pos) return string.format("%d,%d,%d", pos.x, pos.y, pos.z)endlocal function isSamePos(a, b) return a.x b.x and a.y b.y and a.z == b.zendlocal function getSafeTile(fromPos, toPos) local dx = toPos.x - fromPos.x local dy = toPos.y - fromPos.y if dx ~= 0 then dx = dx / math.abs(dx) end if dy ~= 0 then dy = dy / math.abs(dy) end return { x = toPos.x + dx, y = toPos.y + dy, z = toPos.z }endlocal function buildTeleportMap() for _, pair in ipairs(teleporterPairs) do local fromKey = posToKey(pair.from) local toPos = pair.to teleportMap[fromKey] = toPos teleportMap[posToKey(toPos)] = pair.from endendbuildTeleportMap()function onStepIn(cid, item, pos, _) if not isPlayer(cid) or item.itemid ~= TELEPORT_ITEMID then return true end local key = posToKey(pos) local targetPos = teleportMap[key] if not targetPos then doPlayerSendCancel(cid, "Esse teleport nao esta configurado.") -- aqui é a mensagem caso algum player pise e não esteja configurado a localização... return true end local safePos = getSafeTile(pos, targetPos) doTeleportThing(cid, safePos) doSendMagicEffect(safePos, CONST_ME_TELEPORT) return trueendés isso guys. aka aka
Postado Quinta às 14:231 dia Administrador Da hora! bom te ver aqui de novo! Contato :https://www.linkedin.com/in/rafhael-oliveira/Projetos :https://github.com/thetibiaking
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.