Coloca 3 itens e depois puxa alavanca e é reportado? @M i s s
Sacrificar itens em determinadas posições teleporta player
Por M i s s, 12 de abr. de 2023 em Scripts
info
Grupo: Conde
Registrado: 11/03/13
Posts: 629
Reputação: +183

info
Grupo: Visconde
Registrado: 09/05/18
Posts: 267
Reputação: +9
Gênero: Feminino
Char no Tibia: Merascylla

22 minutos atrás, GamerGoiano disse:Coloca 3 itens e depois puxa alavanca e é reportado? @M i s s
Isso, o player colocaria 3 itens diferentes em 3 altares cada um em uma posição diferente, se estiver tudo certo (cada um em seu lugar) ele gira uma alavanca e é teleportado.
Juro que vi esse tópico em algum lugar aqui mas não consegui encontrar mais :c
Editado Abril 17 por M i s s
info
Grupo: Conde
Registrado: 11/03/13
Posts: 629
Reputação: +183

35 minutos atrás, M i s s disse:Isso, o player colocaria 3 itens diferentes em 3 altares cada um em uma posição diferente, se estiver tudo certo (cada um em seu lugar) ele gira uma alavanca e é teleportado.
Juro que vi esse tópico em algum lugar aqui mas não consegui encontrar mais :c
https://xtibia.com/forum/topic/209121-urgente-dúvida-em-alavancaitem-teleport/
Se precisar de ajuda pra modificar só falar
Editado Abril 17 por GamerGoiano
info
Grupo: Visconde
Registrado: 09/05/18
Posts: 267
Reputação: +9
Gênero: Feminino
Char no Tibia: Merascylla

3 horas atrás, GamerGoiano disse:https://xtibia.com/forum/topic/209121-urgente-dúvida-em-alavancaitem-teleport/
Se precisar de ajuda pra modificar só falar
Se você não tiver ocupado e conseguir ajudar eu aceito sim >.<
Eu não entendo muito bem como funciona essas funções, eu até tentei mexer pra descobri como faze funciona mas acho que não fui feita pra isso kkkkk
info
Grupo: Conde
Registrado: 11/03/13
Posts: 629
Reputação: +183

@M i s s qual versão do seu TFS? me fala o que voce quer no script que mando aqui
info
Grupo: Visconde
Registrado: 09/05/18
Posts: 267
Reputação: +9
Gênero: Feminino
Char no Tibia: Merascylla

8 horas atrás, GamerGoiano disse:@M i s s qual versão do seu TFS? me fala o que você quer no script que mando aqui
Bom dia, a versão do TFS é 1.0
Bom, o jogador deveria colocar esses cards cada um em seu respectivo altar. Se todos estiverem corretos ele vai girar uma alavanca e será teleportado para determinada posição, se os itens estiverem no local errado apenas vai aparecer uma mensagem dizendo para coloca-los no local correto.
As posições dos altares e dos itens respectivamente:
Pos: x = 1200, y = 830, z = 9 Item: 18759
Pos: x = 1216, y = 829, z = 9 Item: 18758
Pos: x = 1210, y = 817, z = 9 Item: 18760
Eu te mandei por mensagem uma tentativa minha de fazer funcionar se você puder ver e me dar dicas porque essa não é minha área >.<
Nunca escrevi nada para TFS 1.x, mas dando uma olhada em alguns scripts, acredito que seria algo mais ou menos assim:
local cfg = { items = { [1] = 18759, [2] = 18758, [3] = 18760 }, itemsPos = { [1] = Position(1200, 830, 9), [2] = Position(1216, 829, 9), [3] = Position(1210, 817, 9) }, teleportTo = Position(1000, 1000, 7) } function onUse(cid, item, fromPosition, itemEx, toPosition) local player = Player(cid) local tileItem1 = Tile(cfg.itemsPos[1]):getItemById(cfg.items[1]) local tileItem2 = Tile(cfg.itemsPos[2]):getItemById(cfg.items[2]) local tileItem3 = Tile(cfg.itemsPos[3]):getItemById(cfg.items[3]) if tileItem1 and tileItem2 and tileItem3 then tileItem1:remove() tileItem2:remove() tileItem3:remove() player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:teleportTo(cfg.teleportTo) return true end player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Coloque os itens nos altares.") return true end
Não testei pois não tenho nenhum servidor baixado aqui e escrevi rápido no Notepad então pode conter erros, mas já é uma base pra começar kkkk
Provavelmente da pra resumir um pouco, não pensei muito na hora
info
Grupo: Visconde
Registrado: 09/05/18
Posts: 267
Reputação: +9
Gênero: Feminino
Char no Tibia: Merascylla

14 minutos atrás, lSainty disse:Nunca escrevi nada para TFS 1.x, mas dando uma olhada em alguns scripts, acredito que seria algo mais ou menos assim:
local cfg = { items = { [1] = 18759, [2] = 18758, [3] = 18760 }, itemsPos = { [1] = Position(1200, 830, 9), [2] = Position(1216, 829, 9), [3] = Position(1210, 817, 9) }, teleportTo = Position(1000, 1000, 7) } function onUse(cid, item, fromPosition, itemEx, toPosition) local player = Player(cid) local tileItem1 = Tile(cfg.itemsPos[1]):getItemById(cfg.items[1]) local tileItem2 = Tile(cfg.itemsPos[2]):getItemById(cfg.items[2]) local tileItem3 = Tile(cfg.itemsPos[3]):getItemById(cfg.items[3]) if tileItem1 and tileItem2 and tileItem3 then tileItem1:remove() tileItem2:remove() tileItem3:remove() player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:teleportTo(cfg.teleportTo) return true end player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Coloque os itens nos altares.") return true endNão testei pois não tenho nenhum servidor baixado aqui e escrevi rápido no Notepad então pode conter erros, mas já é uma base pra começar kkkk
Provavelmente da pra resumir um pouco, não pensei muito na hora
Obrigado por responder ^^
Então, assim que inicia o servidor aparece esse erro na Distro:
[18/04/2023 15:21:45] Description:
[18/04/2023 15:21:45] data/actions/scripts/quests/Ho-OhQuest.lua:8: attempt to call global 'Position' (a nil value)
[18/04/2023 15:21:45] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/quests/Ho-OhQuest.lua)
Clicando na alavanca não acontece nada e não da mais nenhum erro além desse acima
3 minutos atrás, M i s s disse:Obrigado por responder ^^
Então, assim que inicia o servidor aparece esse erro na Distro:
[18/04/2023 15:21:45] Description:
[18/04/2023 15:21:45] data/actions/scripts/quests/Ho-OhQuest.lua:8: attempt to call global 'Position' (a nil value)
[18/04/2023 15:21:45] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/quests/Ho-OhQuest.lua)
Clicando na alavanca não acontece nada e não da mais nenhum erro além desse acima
Hmmmmm, nos scripts que vi declaravam posição assim, talvez seja de um TFS mais recente, tente trocar para o padrão antigo então, tipo:
{x = 100, y = 150, z = 7}
info
Grupo: Visconde
Registrado: 09/05/18
Posts: 267
Reputação: +9
Gênero: Feminino
Char no Tibia: Merascylla

10 minutos atrás, lSainty disse:Hmmmmm, nos scripts que vi declaravam posição assim, talvez seja de um TFS mais recente, tente trocar para o padrão antigo então, tipo:
{x = 100, y = 150, z = 7}
Fiz isso em todas as posições do script e agora o erro mudou para esse:
[18/04/2023 15:41:50] [Error - LuaScriptInterface::loadFile] data/actions/scripts/quests/Ho-OhQuest.lua:8: ')' expected near '='
[18/04/2023 15:41:50] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/quests/Ho-OhQuest.lua)
[18/04/2023 15:41:50] data/actions/scripts/quests/Ho-OhQuest.lua:8: ')' expected near '='
o script está assim agora:
local cfg = {
items = {
[1] = 18759,
[2] = 18758,
[3] = 18760
},
itemsPos = {
[1] = Position{x = 1200, y = 830, z = 9, stackpos = 255},
[2] = Position{x = 1216, y = 829, z = 9, stackpos = 255},
[3] = Position{x = 1210, y = 817, z = 9, stackpos = 255}
},
teleportTo = Position{x = 1209, y = 833, z = 9}
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
local player = Player(cid)
local tileItem1 = Tile(cfg.itemsPos[1]):getItemById(cfg.items[1])
local tileItem2 = Tile(cfg.itemsPos[2]):getItemById(cfg.items[2])
local tileItem3 = Tile(cfg.itemsPos[3]):getItemById(cfg.items[3])
if tileItem1 and tileItem2 and tileItem3 then
tileItem1:remove()
tileItem2:remove()
tileItem3:remove()
player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
player:teleportTo(cfg.teleportTo)
return true
end
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Coloque os itens nos altares.")
return true
end
1 minuto atrás, M i s s disse:Fiz isso em todas as posições do script e agora o erro mudou para esse:
[18/04/2023 15:41:50] [Error - LuaScriptInterface::loadFile] data/actions/scripts/quests/Ho-OhQuest.lua:8: ')' expected near '='
[18/04/2023 15:41:50] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/quests/Ho-OhQuest.lua)
[18/04/2023 15:41:50] data/actions/scripts/quests/Ho-OhQuest.lua:8: ')' expected near '='
o script está assim agora:
No caso eu quis dizer tirando o 'Position' também kkkkkk
Mas caso nem assim funcione, tenta assim:
local item1 = { id = 18759, pos = Position(1200, 830, 9) } local item2 = { id = 18758, pos = Position(1216, 829, 9) } local item3 = { id = 18760, pos = Position(1210, 817, 9) } function onUse(cid, item, fromPosition, itemEx, toPosition) local player = Player(cid) local tileItem1 = Tile(item1.pos):getItemById(item1.id) local tileItem2 = Tile(item2.pos):getItemById(item2.id) local tileItem3 = Tile(item3.pos):getItemById(item3.id) if tileItem1 and tileItem2 and tileItem3 then tileItem1:remove() tileItem2:remove() tileItem3:remove() player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:teleportTo(cfg.teleportTo) return true end player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Coloque os itens nos altares.") return true end
info
Grupo: Visconde
Registrado: 09/05/18
Posts: 267
Reputação: +9
Gênero: Feminino
Char no Tibia: Merascylla

13 minutos atrás, lSainty disse:No caso eu quis dizer tirando o 'Position' também kkkkkk
Mas caso nem assim funcione, tenta assim:
local item1 = { id = 18759, pos = Position(1200, 830, 9) } local item2 = { id = 18758, pos = Position(1216, 829, 9) } local item3 = { id = 18760, pos = Position(1210, 817, 9) } function onUse(cid, item, fromPosition, itemEx, toPosition) local player = Player(cid) local tileItem1 = Tile(item1.pos):getItemById(item1.id) local tileItem2 = Tile(item2.pos):getItemById(item2.id) local tileItem3 = Tile(item3.pos):getItemById(item3.id) if tileItem1 and tileItem2 and tileItem3 then tileItem1:remove() tileItem2:remove() tileItem3:remove() player:getPosition():sendMagicEffect(CONST_ME_TELEPORT) player:teleportTo(cfg.teleportTo) return true end player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Coloque os itens nos altares.") return true end
O Erro de quando inicia sumiu, agora aparece um somente quando usa a alavanca:
[18/04/2023 16:01:56] [Error - Action Interface]
[18/04/2023 16:01:56] data/actions/scripts/quests/Ho-OhQuest.lua:onUse
[18/04/2023 16:01:56] Description:
[18/04/2023 16:01:56] data/actions/scripts/quests/Ho-OhQuest.lua:16: attempt to call global 'Player' (a nil value)
[18/04/2023 16:01:56] stack traceback:
[18/04/2023 16:01:56] data/actions/scripts/quests/Ho-OhQuest.lua:16: in function <data/actions/scripts/quests/Ho-OhQuest.lua:15>
Aparentemente eu misturei um poucos as coisas kkkkk
Troca isso:
function onUse(cid, item, fromPosition, itemEx, toPosition)
Por isso:
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
E remove essa linha:
local player = Player(cid)
info
Grupo: Visconde
Registrado: 09/05/18
Posts: 267
Reputação: +9
Gênero: Feminino
Char no Tibia: Merascylla

8 minutos atrás, lSainty disse:Aparentemente eu misturei um poucos as coisas kkkkk
Troca isso:
function onUse(cid, item, fromPosition, itemEx, toPosition)Por isso:
function onUse(player, item, fromPosition, target, toPosition, isHotkey)E remove essa linha:
local player = Player(cid)
O erro agora é semelhante ao antigo mas muda de "Player" pra "Tile":
[18/04/2023 16:17:41] [Error - Action Interface]
[18/04/2023 16:17:41] data/actions/scripts/quests/Ho-OhQuest.lua:onUse
[18/04/2023 16:17:41] Description:
[18/04/2023 16:17:41] data/actions/scripts/quests/Ho-OhQuest.lua:16: attempt to call global 'Tile' (a nil value)
[18/04/2023 16:17:41] stack traceback:
[18/04/2023 16:17:41] data/actions/scripts/quests/Ho-OhQuest.lua:16: in function <data/actions/scripts/quests/Ho-OhQuest.lua:15>



info
Grupo: Visconde
Registrado: 09/05/18
Posts: 267
Reputação: +9
Gênero: Feminino
Char no Tibia: Merascylla
Bom dia a todos.
Eu acredito ter visto esse script aqui no xtibia mas eu não estou encontrando ele novamente, não me recordo se era do Zipter ou do Vodkart. Se alguém souber qual é e encontrar poderia postar o link aqui por gentileza?
Enfim, o script funciona da seguinte forma, o jogador precisa posicionar 3 itens um em cada local. Após isso ele pode girar uma alavanca e se os cada item estiver no local correto o jogador seria teleportado para um outro local.
Desde já agradeço pela atenção. ❤️