Postado Janeiro 11, 2021 4 anos Solução .Qual servidor ou website você utiliza como base? Otx Qual o motivo deste tópico? Olá rapazeada do Tibiaking, Boa noite!! Fiz esse script simples para o meu servidor com o intuinto de colocar um pouco mais de rpg em clicar em alguns lugares diferentes no cenário. Existe varios lugares que eu precisarei utilizar esse script, e seria muito melhor utilizar apenas um script para todos os locais ao envés de criar vários scripts, sabe? Alguém poderia me ajudar a colocar uma actionid para cada teleport dentro do mesmo script? ex: poder repetir o script dentro dele mesmo e mudar os locais e a actionid local teleport1 = {x=283, y=984, z=6} local teleport2 = {x=284, y=985, z=6} if isPlayer(cid) then -- actionid 222 doTeleportThing(cid, teleport1) doSendMagicEffect(getPlayerPosition(cid), 12) end else if isPlayer(cid) then -- actionid 111 doTeleportThing(cid, teleport2) doSendMagicEffect(getPlayerPosition(cid), 12) end end Você tem o código disponível? Se tiver publique-o aqui: function onUse(cid, item, fromPosition, item2, toPosition) local teleport = {x=283, y=984, z=6} if isPlayer(cid) then doTeleportThing(cid, teleport) doSendMagicEffect(getPlayerPosition(cid), 12) end end Olá rapazeada, desculpe-me a minha preguiça e não ter tentado ir um pouco mais no script, acabei fazendo alguns teste e consegui resolver, postarei o resultado embaixo caso alguém precise. function onUse(cid, item, fromPosition, item2, toPosition) local teleport1 = {x=283, y=984, z=6} local teleport2 = {x=291, y=976, z=7} -- Pos que irá teleportar, repita um desses caso queira adicionar mais algum teleport -- if isPlayer(cid) and item.uid == 12222 then -- mude o "12222" para cada teleport e adicione ao item no remeres doTeleportThing(cid, teleport1) doPlayerSendTextMessage(cid,25,"Passagem Secreta") doSendMagicEffect(getPlayerPosition(cid), 12) end -- Se quiser adicionar mais teleportes repita apenas até o end if isPlayer(cid) and item.uid == 12223 then -- mude o "12223" para cada teleport e adicione ao item no remeres doTeleportThing(cid, teleport2) -- mude de acordo com o local criado la encima doPlayerSendTextMessage(cid,25,"Succes") doSendMagicEffect(getPlayerPosition(cid), 12) end -- este aqui end Em action.xml adicione as tags <action uniqueid = "12222" event = "script" value = "teleportes/goa1.lua" /> <action uniqueid = "12223" event = "script" value = "teleportes/goa1.lua" /> Editado Janeiro 11, 2021 4 anos por hiquezerah Consegui solucionar o desejado e postarei o resultado para ajudar se algúem precisar (veja o histórico de edições)
Postado Janeiro 12, 2021 4 anos Vi que o tópico já está resolvido, mas criei uma solução mais otimizada e de fácil manutenção para que facilite futuramente pra ti: Mostrar conteúdo oculto local config = { [7010] = { position = {x = 1053, y = 1055, z = 7} }, [7011] = { position = {x = 1051, y = 1058, z = 7} }, [7012] = { position = {x = 1056, y = 1058, z = 7} }, [7013] = { position = {x = 1048, y = 1058, z = 7} }, [7014] = { position = {x = 1049, y = 1053, z = 7} }, effect = 21, message = "Passagem Secreta" } function onUse(cid, item, frompos, item2, topos) local aidTable = config[item.actionid] if doTeleportThing(cid, aidTable.position) then doPlayerSendTextMessage(cid, 25, config.message) doSendMagicEffect(getCreaturePosition(cid), config.effect) end return true end No arquivo actions.xml coloque a tag deste modo, irá evitar o spam de várias tags: <action actionid="7010;7011;7012;7013;7014" event="script" value="teleports.lua"/> Esse script que tu apresentou iria ficar bem mais pesado futuramente, por ter que criar várias linhas de código toda vez que quisesse adicionar um novo lugar. Utiliza esse que mandei porque aí tu só precisa alterar a tabela para colocar novos lugares (basta seguir o modelo dela), não vai precisar mexer no código. Editado Janeiro 12, 2021 4 anos por Pisces (veja o histórico de edições)
Postado Janeiro 12, 2021 4 anos Autor Em 12/01/2021 em 16:59, Pisces disse: Vi que o tópico já está resolvido, mas criei uma solução mais otimizada e de fácil manutenção para que facilite futuramente pra ti: Mostrar conteúdo oculto Mostrar conteúdo oculto local config = { [7010] = { position = {x = 1053, y = 1055, z = 7} }, [7011] = { position = {x = 1051, y = 1058, z = 7} }, [7012] = { position = {x = 1056, y = 1058, z = 7} }, [7013] = { position = {x = 1048, y = 1058, z = 7} }, [7014] = { position = {x = 1049, y = 1053, z = 7} }, effect = 21, message = "Passagem Secreta" } function onUse(cid, item, frompos, item2, topos) local aidTable = config[item.actionid] if doTeleportThing(cid, aidTable.position) then doPlayerSendTextMessage(cid, 25, config.message) doSendMagicEffect(getCreaturePosition(cid), config.effect) end return true end No arquivo actions.xml coloque a tag deste modo, irá evitar o spam de várias tags: <action actionid="7010;7011;7012;7013;7014" event="script" value="teleports.lua"/> Esse script que tu apresentou iria ficar bem mais pesado futuramente, por ter que criar várias linhas de código toda vez que quisesse adicionar um novo lugar. Utiliza esse que mandei porque aí tu só precisa alterar a tabela para colocar novos lugares (basta seguir o modelo dela), não vai precisar mexer no código. @Pisces Muito obrigado mano, estou começando a conseguir fazer algumas coisas do zero agora, então ta um pouco dificil ainda, mas com certeza irei utilizar o seu codigo e estudar ele um pouco, estou tendo uma grande dificuldade para criar tabelas mas muito obrigado
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.