Postado Fevereiro 12, 2018 7 anos Em 12/02/2018 em 23:23, Kyllini disse: @SoulSarti então, cada bau tem seu item com id especifica já que é de cada vocação, id's [12712 [vocation 5] - 12713 [vocation 6] - 12714 [vocation 7] e 12715 [vocation 8]. Provavelmente você saberia me ajudar no meu outro tópico também que não tem haver com "action" de bau, e sim um script de npc que leva as pessoas pro local da quest. kkk ja estou pedindo muito .. Deixa eu entender, então existem 4 baus, cada um com um uniqueid e eles devem entregar o item de acordo com a vocação do jogador. É isso? pois é possivel também manter um unico bau e fazê-lo entregar um item diferente para cada vocação que for "abri-lo". o que voce precisa? e sobre o npc, se vc ja criou o topico pra ele, me manda o link do topico. caso n tenha criado, crie e mande o link, pra gnt n misturar os casos no msm topico. tb pode ajudar outros jogadores com a msm intençao q vc.
Postado Fevereiro 12, 2018 7 anos Autor Sim existe 4 baus com e cada bau tem o item de cada vocação acho que é + facil ele assim kk, e sim ja fiz o outro topico, mando por Pm ou aqui msm ?
Postado Fevereiro 13, 2018 7 anos Me manda o link por aqui mesmo, mas antes me diz se o codigo que eu vou te passar esta funcionando: ele é um codigo pra qualquer quest que voce queira por no seu servidor, desde que o bau tenha uniqueid e a quest exija alguma vocação pra ser recolhida. espero que esteja 100% funcional! local config = { items = {{id,qtd}}, -- aqui vc configura quais items vc quer dar de recompensa. caso for mais de 1, adicione uma virgula e ponha a id e qtd dentro de colchetes --{{2160,3},{2134,1}}, voc = {5}, -- aqui vc poe os ids das vocações que podem abrir o bau. caso sejam mais de 1, basta adicionar uma virgula dps do ultimo numero e por o outro. voc = {5,6}, storage = 5000, -- altere para o storage que você desejar gmessage = true, -- vai mandar mensagem global quando o jogar finalizar a quest? true = sim | false = nao unique = 0, --uniqueid do bau. caso nao tenha, deixe 0, caso tenha, ponha o valor. teleport = {check = false, {}}, --vai teletransportar o jogar ao finalizar a quest? se sim, mude para true e dps da virgula mude o {} para a posição desejada, ex: --teleport = {true, {x = 2438, y = 2400, z = 9}} nome = "Hellraiser" -- aqui vc poe o nome da sua quest, se tiver. Na mensagem global, aparecerá da seguinte maneira: -- "O player (nomedochar) completou a quest Hellraiser!." Deixe em branco o nome para nao mostrar qual foi a quest feita (isso ainda vai gerar uma mensagem global!) } function onUse(cid, item, frompos, item2, topos) if item.uid == config.unique then if getPlayerStorageValue(cid, config.storage) ~= 1 and isInArray(config.voc, getPlayerVocation(cid)) then if config.gmessage and config.nome ~= "" then doBroadcastMessage("O player "..getCreatureName(cid).." completou a quest ".. config.nome .. "!",MESSAGE_STATUS_WARNING) elseif config.gmessage and config.nome == "" then doBroadcastMessage("O player "..getCreatureName(cid).." completou uma quest!",MESSAGE_STATUS_WARNING) end setPlayerStorageValue(cid, config.storage, 1) for i = 1, #config.items do doPlayerAddItem(cid, config.items[i][1], config.items[i][2]) end if config.teleport[1] then doTeleportThing(cid, config.teleport[2]) end elseif getPlayerStorageValue(cid, config.storage) == 1 then -- caso ja tenha feito a quest doPlayerSendCancel(cid, "Você já fez essa quest!") elseif not isInArray(config.voc, getPlayerVocation(cid)) then -- caso nao seja da vocação apropriada doPlayerSendCancel(cid, "Você não pode receber a recompensa porque não tem a vocação apropriada!") end end return true end lembrando que voce pode usar esse codigo e apenas alterar as variaveis para qualquer quest que se enquadre no que eu expliquei acima.
Postado Fevereiro 13, 2018 7 anos Autor Citar [12/2/2018 22:13:7] [Error - Action Interface] [12/2/2018 22:13:7] data/actions/scripts/testtp.lua:onUse [12/2/2018 22:13:7] Description: [12/2/2018 22:13:7] attempt to index a nil value [12/2/2018 22:13:7] stack traceback: [12/2/2018 22:13:7] [C]: in function 'doTeleportThing' [12/2/2018 22:13:7] data/actions/scripts/testtp.lua:27: in function <data/actions/scripts/testtp.lua:14> Então, testei aqui ... ele entregou o item certinho, a vocação e a mensagem tambem está perfeito, porém a parte de "teleporta" o jogador não funcionou ta desse jeito. Citar local config = { items = {{12714,1}}, -- aqui vc configura quais items vc quer dar de recompensa. caso for mais de 1, adicione uma virgula e ponha a id e qtd dentro de colchetes --{{2160,3},{2134,1}}, voc = {1}, -- aqui vc poe os ids das vocações que podem abrir o bau. caso sejam mais de 1, basta adicionar uma virgula dps do ultimo numero e por o outro. voc = {5,6}, storage = 5000, -- altere para o storage que você desejar gmessage = true, -- vai mandar mensagem global quando o jogar finalizar a quest? true = sim | false = nao unique = 1000, --uniqueid do bau. caso nao tenha, deixe 0, caso tenha, ponha o valor. teleport = {check = true, {x = 157, y = 51, z = 7}}, --vai teletransportar o jogar ao finalizar a quest? se sim, mude para true e dps da virgula mude o {} para a posição desejada, ex: --teleport = {true, {x = 2438, y = 2400, z = 9}} nome = "Hellraiser" -- aqui vc poe o nome da sua quest, se tiver. Na mensagem global, aparecerá da seguinte maneira: -- "O player (nomedochar) completou a quest Hellraiser!." Deixe em branco o nome para nao mostrar qual foi a quest feita (isso ainda vai gerar uma mensagem global!) } function onUse(cid, item, frompos, item2, topos) if item.uid == config.unique then if getPlayerStorageValue(cid, config.storage) ~= 1 and isInArray(config.voc, getPlayerVocation(cid)) then if config.gmessage and config.nome ~= "" then doBroadcastMessage("O player "..getCreatureName(cid).." completou a quest ".. config.nome .. "!",MESSAGE_STATUS_WARNING) elseif config.gmessage and config.nome == "" then doBroadcastMessage("O player "..getCreatureName(cid).." completou uma quest!",MESSAGE_STATUS_WARNING) end setPlayerStorageValue(cid, config.storage, 1) for i = 1, #config.items do doPlayerAddItem(cid, config.items[1], config.items[2]) end if config.teleport[1] then doTeleportThing(cid, config.teleport[2]) end elseif getPlayerStorageValue(cid, config.storage) == 1 then -- caso ja tenha feito a quest doPlayerSendCancel(cid, "Você já fez essa quest!") elseif not isInArray(config.voc, getPlayerVocation(cid)) then -- caso nao seja da vocação apropriada doPlayerSendCancel(cid, "Você não pode receber a recompensa porque não tem a vocação apropriada!") endend return trueend Editado Fevereiro 13, 2018 7 anos por Kyllini (veja o histórico de edições)
Postado Fevereiro 13, 2018 7 anos Em 13/02/2018 em 00:14, Kyllini disse: Então, testei aqui ... ele entregou o item certinho, a vocação e a mensagem tambem está perfeito, porém a parte de "teleporta" o jogador não funcionou ta desse jeito. tenta assim (sono ta me atrapalhando.. aushausha) local config = { items = {{12714,1}}, -- aqui vc configura quais items vc quer dar de recompensa. caso for mais de 1, adicione uma virgula e ponha a id e qtd dentro de colchetes --{{2160,3},{2134,1}}, voc = {1}, -- aqui vc poe os ids das vocações que podem abrir o bau. caso sejam mais de 1, basta adicionar uma virgula dps do ultimo numero e por o outro. voc = {5,6}, storage = 5000, -- altere para o storage que você desejar gmessage = true, -- vai mandar mensagem global quando o jogar finalizar a quest? true = sim | false = nao unique = 1000, --uniqueid do bau. caso nao tenha, deixe 0, caso tenha, ponha o valor. teleport = {true, {x = 157, y = 51, z = 7}}, --vai teletransportar o jogar ao finalizar a quest? se sim, mude para true e dps da virgula mude o {} para a posição desejada, ex: --teleport = {true, {x = 2438, y = 2400, z = 9}} nome = "Hellraiser" -- aqui vc poe o nome da sua quest, se tiver. Na mensagem global, aparecerá da seguinte maneira: -- "O player (nomedochar) completou a quest Hellraiser!." Deixe em branco o nome para nao mostrar qual foi a quest feita (isso ainda vai gerar uma mensagem global!) } function onUse(cid, item, frompos, item2, topos) if item.uid == config.unique then if getPlayerStorageValue(cid, config.storage) ~= 1 and isInArray(config.voc, getPlayerVocation(cid)) then if config.gmessage and config.nome ~= "" then doBroadcastMessage("O player "..getCreatureName(cid).." completou a quest ".. config.nome .. "!",MESSAGE_STATUS_WARNING) elseif config.gmessage and config.nome == "" then doBroadcastMessage("O player "..getCreatureName(cid).." completou uma quest!",MESSAGE_STATUS_WARNING) end setPlayerStorageValue(cid, config.storage, 1) for i = 1, #config.items do doPlayerAddItem(cid, config.items[1], config.items[2]) end if config.teleport[1] then tp = config.teleport[2] doTeleportThing(cid, tp) end elseif getPlayerStorageValue(cid, config.storage) == 1 then -- caso ja tenha feito a quest doPlayerSendCancel(cid, "Você já fez essa quest!") elseif not isInArray(config.voc, getPlayerVocation(cid)) then -- caso nao seja da vocação apropriada doPlayerSendCancel(cid, "Você não pode receber a recompensa porque não tem a vocação apropriada!") end end 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.