Postado Janeiro 12, 2018 7 anos Tentei fazer um esboço, a ideia é mais ou menos esta, mas estou sem tempo para testar: local config = { storageID = 14586, tradeCenter = {pos = {x = 224, y = 307, z = 7}}, cpActionID = {23000, 23001, 23002, 23003, 23004, 23005, 23006, 23007, 23008, 23009}, tcActionID = 22334, } local cities = { pewter = {id = 1, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, cerulean = {id = 2, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, viridian = {id = 3, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, celadon = {id = 4, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, saffron = {id = 5, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, lavender = {id = 6, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, vermilion = {id = 7, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, cinnabar = {id = 8, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, fuchsia = {id = 9, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, } function onStepIn(cid, item, pos) if isSummon(cid) then return false end teleportTo = config.tradeCenter.pos if isInArray (config.cpActionID, item.actionid) then if item.actionid == config.cpActionID[1] then setPlayerStorageValue(cid, config.storageID, cities.pewter.id) elseif item.actionid == config.cpActionID[2] then setPlayerStorageValue(cid, config.storageID, cities.cerulean.id) elseif item.actionid == config.cpActionID[3] then setPlayerStorageValue(cid, config.storageID, cities.viridian.id) elseif item.actionid == config.cpActionID[4] then setPlayerStorageValue(cid, config.storageID, cities.celadon.id) elseif item.actionid == config.cpActionID[5] then setPlayerStorageValue(cid, config.storageID, cities.saffron.id) elseif item.actionid == config.cpActionID[6] then setPlayerStorageValue(cid, config.storageID, cities.lavender.id) elseif item.actionid == config.cpActionID[7] then setPlayerStorageValue(cid, config.storageID, cities.vermilion.id) elseif item.actionid == config.cpActionID[8] then setPlayerStorageValue(cid, config.storageID, cities.cinnabar.id) elseif item.actionid == config.cpActionID[9] then setPlayerStorageValue(cid, config.storageID, cities.fuchsia.id) end elseif item.actionid == config.tcActionID then playerStatus = getPlayerStorage(cid, config.storageID) if playerStatus == cities.pewter.id then teleportTo = cities.pewter.pos elseif playerStatus == cities.cerulean.id then teleportTo = cities.cerulean.pos elseif playerStatus == cities.viridian.id then teleportTo = cities.viridian.pos elseif playerStatus == cities.celadon.id then teleportTo = cities.celadon.pos elseif playerStatus == cities.saffron.id then teleportTo = cities.saffron.pos elseif playerStatus == cities.lavender.id then teleportTo = cities.lavender.pos elseif playerStatus == cities.vermilion.id then teleportTo = cities.vermilion.pos elseif playerStatus == cities.cinnabar.id then teleportTo = cities.cinnabar.pos elseif playerStatus == cities.fuchsia.id then teleportTo = cities.fuchsia.pos else teleportTo = cities.cerulean.pos end end if #getCreatureSummons(cid) >= 1 then for i = 1, #getCreatureSummons(cid) do doTeleportThing(getCreatureSummons(cid), teleportTo, false) end end doTeleportThing(cid, teleportTo, false) return true end Você tem o actionID do item que você colocou no chão, dentro de cada cidade você coloca o equivalente e no pvp você coloca um único (configurável na parte do config). Quando o jogador passa ele olha qual é a action ID que você acabou de passar por cima e a partir daí ele decide o que vai fazer. Se for de CP ele salva o ID de onde você veio pra reutilizar depois, caso você esteja saindo ele pega o seu ID e te manda para a cidade equivalente. Daria pra diminuir bastante o código usando for, mas acredito que ficaria um pouco mais técnico para caso alguém queira modificar... Editado Janeiro 12, 2018 7 anos por marcot (veja o histórico de edições)
Postado Janeiro 12, 2018 7 anos Autor 16 horas atrás, marcot disse: Tentei fazer um esboço, a ideia é mais ou menos esta, mas estou sem tempo para testar: local config = { storageID = 14586, tradeCenter = {pos = {x = 224, y = 307, z = 7}}, cpActionID = {23000, 23001, 23002, 23003, 23004, 23005, 23006, 23007, 23008, 23009}, tcActionID = 22334, } local cities = { pewter = {id = 1, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, cerulean = {id = 2, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, viridian = {id = 3, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, celadon = {id = 4, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, saffron = {id = 5, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, lavender = {id = 6, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, vermilion = {id = 7, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, cinnabar = {id = 8, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, fuchsia = {id = 9, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, } function onStepIn(cid, item, pos) if isSummon(cid) then return false end teleportTo = config.tradeCenter.pos if isInArray (config.cpActionID, item.actionid) then if item.actionid == config.cpActionID[1] then setPlayerStorageValue(cid, config.storageID, cities.pewter.id) elseif item.actionid == config.cpActionID[2] then setPlayerStorageValue(cid, config.storageID, cities.cerulean.id) elseif item.actionid == config.cpActionID[3] then setPlayerStorageValue(cid, config.storageID, cities.viridian.id) elseif item.actionid == config.cpActionID[4] then setPlayerStorageValue(cid, config.storageID, cities.celadon.id) elseif item.actionid == config.cpActionID[5] then setPlayerStorageValue(cid, config.storageID, cities.saffron.id) elseif item.actionid == config.cpActionID[6] then setPlayerStorageValue(cid, config.storageID, cities.lavender.id) elseif item.actionid == config.cpActionID[7] then setPlayerStorageValue(cid, config.storageID, cities.vermilion.id) elseif item.actionid == config.cpActionID[8] then setPlayerStorageValue(cid, config.storageID, cities.cinnabar.id) elseif item.actionid == config.cpActionID[9] then setPlayerStorageValue(cid, config.storageID, cities.fuchsia.id) end elseif item.actionid == config.tcActionID then playerStatus = getPlayerStorage(cid, config.storageID) if playerStatus == cities.pewter.id then teleportTo = cities.pewter.pos elseif playerStatus == cities.cerulean.id then teleportTo = cities.cerulean.pos elseif playerStatus == cities.viridian.id then teleportTo = cities.viridian.pos elseif playerStatus == cities.celadon.id then teleportTo = cities.celadon.pos elseif playerStatus == cities.saffron.id then teleportTo = cities.saffron.pos elseif playerStatus == cities.lavender.id then teleportTo = cities.lavender.pos elseif playerStatus == cities.vermilion.id then teleportTo = cities.vermilion.pos elseif playerStatus == cities.cinnabar.id then teleportTo = cities.cinnabar.pos elseif playerStatus == cities.fuchsia.id then teleportTo = cities.fuchsia.pos else teleportTo = cities.cerulean.pos end end if #getCreatureSummons(cid) >= 1 then for i = 1, #getCreatureSummons(cid) do doTeleportThing(getCreatureSummons(cid), teleportTo, false) end end doTeleportThing(cid, teleportTo, false) return true end Você tem o actionID do item que você colocou no chão, dentro de cada cidade você coloca o equivalente e no pvp você coloca um único (configurável na parte do config). Quando o jogador passa ele olha qual é a action ID que você acabou de passar por cima e a partir daí ele decide o que vai fazer. Se for de CP ele salva o ID de onde você veio pra reutilizar depois, caso você esteja saindo ele pega o seu ID e te manda para a cidade equivalente. Daria pra diminuir bastante o código usando for, mas acredito que ficaria um pouco mais técnico para caso alguém queira modificar... tive o seguinte problema com isso: Spoiler a ida até o tr dá certinho, mas a volta tá igual antes a diferença é que agora aparece um erro no tfs Editado Janeiro 12, 2018 7 anos por Danxi (veja o histórico de edições)
Postado Janeiro 12, 2018 7 anos Acho que isso deve corrigir o erro que apareceu no terminal: local config = { storageID = 14586, tradeCenter = {pos = {x = 224, y = 307, z = 7}}, cpActionID = {23000, 23001, 23002, 23003, 23004, 23005, 23006, 23007, 23008, 23009}, tcActionID = 22334, } local cities = { pewter = {id = 1, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, cerulean = {id = 2, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, viridian = {id = 3, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, celadon = {id = 4, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, saffron = {id = 5, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, lavender = {id = 6, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, vermilion = {id = 7, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, cinnabar = {id = 8, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, fuchsia = {id = 9, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, } function onStepIn(cid, item, pos) if isSummon(cid) then return false end teleportTo = config.tradeCenter.pos if isInArray (config.cpActionID, item.actionid) then if item.actionid == config.cpActionID[1] then setPlayerStorageValue(cid, config.storageID, cities.pewter.id) elseif item.actionid == config.cpActionID[2] then setPlayerStorageValue(cid, config.storageID, cities.cerulean.id) elseif item.actionid == config.cpActionID[3] then setPlayerStorageValue(cid, config.storageID, cities.viridian.id) elseif item.actionid == config.cpActionID[4] then setPlayerStorageValue(cid, config.storageID, cities.celadon.id) elseif item.actionid == config.cpActionID[5] then setPlayerStorageValue(cid, config.storageID, cities.saffron.id) elseif item.actionid == config.cpActionID[6] then setPlayerStorageValue(cid, config.storageID, cities.lavender.id) elseif item.actionid == config.cpActionID[7] then setPlayerStorageValue(cid, config.storageID, cities.vermilion.id) elseif item.actionid == config.cpActionID[8] then setPlayerStorageValue(cid, config.storageID, cities.cinnabar.id) elseif item.actionid == config.cpActionID[9] then setPlayerStorageValue(cid, config.storageID, cities.fuchsia.id) end elseif item.actionid == config.tcActionID then playerStatus = getPlayerStorageValue(cid, config.storageID) if playerStatus == cities.pewter.id then teleportTo = cities.pewter.pos elseif playerStatus == cities.cerulean.id then teleportTo = cities.cerulean.pos elseif playerStatus == cities.viridian.id then teleportTo = cities.viridian.pos elseif playerStatus == cities.celadon.id then teleportTo = cities.celadon.pos elseif playerStatus == cities.saffron.id then teleportTo = cities.saffron.pos elseif playerStatus == cities.lavender.id then teleportTo = cities.lavender.pos elseif playerStatus == cities.vermilion.id then teleportTo = cities.vermilion.pos elseif playerStatus == cities.cinnabar.id then teleportTo = cities.cinnabar.pos elseif playerStatus == cities.fuchsia.id then teleportTo = cities.fuchsia.pos else teleportTo = cities.cerulean.pos end end if #getCreatureSummons(cid) >= 1 then for i = 1, #getCreatureSummons(cid) do doTeleportThing(getCreatureSummons(cid), teleportTo, false) end end doTeleportThing(cid, teleportTo, false) return true end
Postado Janeiro 20, 2018 7 anos @marcot @Danxi tá funcionando? posso aplicar no meu servidor? TFS 0.3.6 local config = { storageID = 14586, tradeCenter = {pos = {x = 224, y = 307, z = 7}}, cpActionID = {23000, 23001, 23002, 23003, 23004, 23005, 23006, 23007, 23008, 23009}, tcActionID = 22334, } local cities = { pewter = {id = 1, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, cerulean = {id = 2, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, viridian = {id = 3, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, celadon = {id = 4, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, saffron = {id = 5, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, lavender = {id = 6, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, vermilion = {id = 7, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, cinnabar = {id = 8, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, fuchsia = {id = 9, pos = {x = 396, y = 1746, z = 9, stackpos=253}}, } function onStepIn(cid, item, pos) if isSummon(cid) then return false end teleportTo = config.tradeCenter.pos if isInArray (config.cpActionID, item.actionid) then if item.actionid == config.cpActionID[1] then setPlayerStorageValue(cid, config.storageID, cities.pewter.id) elseif item.actionid == config.cpActionID[2] then setPlayerStorageValue(cid, config.storageID, cities.cerulean.id) elseif item.actionid == config.cpActionID[3] then setPlayerStorageValue(cid, config.storageID, cities.viridian.id) elseif item.actionid == config.cpActionID[4] then setPlayerStorageValue(cid, config.storageID, cities.celadon.id) elseif item.actionid == config.cpActionID[5] then setPlayerStorageValue(cid, config.storageID, cities.saffron.id) elseif item.actionid == config.cpActionID[6] then setPlayerStorageValue(cid, config.storageID, cities.lavender.id) elseif item.actionid == config.cpActionID[7] then setPlayerStorageValue(cid, config.storageID, cities.vermilion.id) elseif item.actionid == config.cpActionID[8] then setPlayerStorageValue(cid, config.storageID, cities.cinnabar.id) elseif item.actionid == config.cpActionID[9] then setPlayerStorageValue(cid, config.storageID, cities.fuchsia.id) end elseif item.actionid == config.tcActionID then playerStatus = getPlayerStorageValue(cid, config.storageID) if playerStatus == cities.pewter.id then teleportTo = cities.pewter.pos elseif playerStatus == cities.cerulean.id then teleportTo = cities.cerulean.pos elseif playerStatus == cities.viridian.id then teleportTo = cities.viridian.pos elseif playerStatus == cities.celadon.id then teleportTo = cities.celadon.pos elseif playerStatus == cities.saffron.id then teleportTo = cities.saffron.pos elseif playerStatus == cities.lavender.id then teleportTo = cities.lavender.pos elseif playerStatus == cities.vermilion.id then teleportTo = cities.vermilion.pos elseif playerStatus == cities.cinnabar.id then teleportTo = cities.cinnabar.pos elseif playerStatus == cities.fuchsia.id then teleportTo = cities.fuchsia.pos else teleportTo = cities.cerulean.pos end end if #getCreatureSummons(cid) >= 1 then for i = 1, #getCreatureSummons(cid) do doTeleportThing(getCreatureSummons(cid), teleportTo, false) end end doTeleportThing(cid, teleportTo, false) return true end
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.