lgan 1 Postado Junho 18, 2015 Share Postado Junho 18, 2015 estou criando uma quest pra meu Servidor, e preciso da seguinte função: abro a quest com um coamndo.... !abrir o player se registra (uma action, ou talk, tanto faz...) limite máximo de players 8 (alterável se possível). cada player e teleportado para um lugar diferente, editável. se alguém puder ajudar... desde já agradeço... Link para o comentário Compartilhar em outros sites More sharing options...
0 zipter98 1101 Postado Junho 23, 2015 Share Postado Junho 23, 2015 (editado) Tag: <talkaction words="!abrir;!quest" event="script" value="nome_do_arquivo.lua"/> Código: local config = { players = { {x = 1056, y = 1056, z = 7}, --Posições para onde os jogadores serão teleportados. {x = 1055, y = 1056, z = 7}, {x = 1054, y = 1056, z = 7}, }, storage = {91812, 91813}, } function onSay(cid, words) if words == "!abrir" then if getPlayerGroupId(cid) ~= 6 then return false elseif getGlobalStorageValue(config.storage[1]) > -1 then return doPlayerSendCancel(cid, "The quest is already open.") end setGlobalStorageValue(config.storage[1], 1) broadcastMessage("The quest was open! Waiting for "..#config.players.." players...") elseif words == "!quest" then if getGlobalStorageValue(config.storage[1]) < 1 then return doPlayerSendCancel(cid, "The quest isn't open.") end local message, newStorage, count = getCreatureName(cid).." was registered in the quest!", 0, 0 for i = 0, #config.players - 1 do count = count + 1 newStorage = config.storage[2] + i if getGlobalStorageValue(newStorage) == getPlayerGUID(cid) then return doPlayerSendCancel(cid, "You are already registered in the quest.") elseif getGlobalStorageValue(newStorage) == -1 then break end end setGlobalStorageValue(newStorage, getPlayerGUID(cid)) doPlayerSendTextMessage(cid, 27, "You were registered in the quest.") if count == #config.players then local startQuest, p = true, {} for i = 0, #config.players - 1 do local pid = getPlayerByName(getPlayerNameByGUID(getGlobalStorageValue(config.storage[2] + i))) if not isPlayer(pid) then if startQuest then startQuest = false end setGlobalStorageValue(config.storage[2] + i, -1) else p[#p + 1] = pid end end if startQuest then for i = 1, #p do doPlayerSendTextMessage(p[i], MESSAGE_STATUS_CONSOLE_ORANGE, "Good luck at the quest! ^^") doTeleportThing(p[i], config.players[i]) end for i = 0, #config.players - 1 do setGlobalStorageValue(config.storage[2] + i, -1) end setGlobalStorageValue(config.storage[1], -1) message = message.." It has started now, with "..#p.." players!" end end broadcastMessage(message) end return true end Editado Junho 24, 2015 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
0 lgan 1 Postado Junho 23, 2015 Autor Share Postado Junho 23, 2015 (editado) quando o player tentar regitrar da esse erro no console, aparece a msg: 20:47 You were registered in the quest. mas nada a contece. [23/06/2015 20:46:48] [Error - TalkAction Interface] [23/06/2015 20:46:48] data/talkactions/scripts/insctorneio.lua:onSay [23/06/2015 20:46:48] Description: [23/06/2015 20:46:48] data/talkactions/scripts/insctorneio.lua:44: attempt to get length of local 'sto' (a number value) [23/06/2015 20:46:48] stack traceback: [23/06/2015 20:46:48] data/talkactions/scripts/insctorneio.lua:44: in function <data/talkactions/scripts/insctorneio.lua:11> Zipter98 pra eu entender melhor, quando o 4 player se registrar todos são teleportados e ele encerra as inscrições? Editado Junho 23, 2015 por lgan Link para o comentário Compartilhar em outros sites More sharing options...
0 zipter98 1101 Postado Junho 24, 2015 Share Postado Junho 24, 2015 Desculpe, é a pressa para ir jantar. Código corrigido. E sim (podem ser mais jogadores, basta configurar a quantidade equivalente de posições). Link para o comentário Compartilhar em outros sites More sharing options...
0 lgan 1 Postado Junho 24, 2015 Autor Share Postado Junho 24, 2015 deu um probleminha aki.... os players podem se registrar infinitas vezes. aparentemente o script não esta setando a storage no player registrado.... sendo assim ninguém teleporta pra lugar algum nem encerra as inscrições Link para o comentário Compartilhar em outros sites More sharing options...
0 zipter98 1101 Postado Junho 24, 2015 Share Postado Junho 24, 2015 (editado) EDIT: Já editei aquele meu primeiro comentário com o código corrigido. Editado Junho 24, 2015 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
0 lgan 1 Postado Junho 24, 2015 Autor Share Postado Junho 24, 2015 Perfeito obrigado! Link para o comentário Compartilhar em outros sites More sharing options...
0 Administrador Frenvius 204 Postado Novembro 29, 2017 Administrador Share Postado Novembro 29, 2017 A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
lgan 1
estou criando uma quest pra meu Servidor, e preciso da seguinte função:
abro a quest com um coamndo.... !abrir
o player se registra (uma action, ou talk, tanto faz...) limite máximo de players 8 (alterável se possível).
cada player e teleportado para um lugar diferente, editável.
se alguém puder ajudar... desde já agradeço...
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados