Aqui está uma nova maneira de criar suas quests.
Vamos la.
Primeiramente, crie um arquivo com o nome quests.lua dentro da pasta data/actions/scripts
Em seguida, adicione o seguinte código à ela:
local quests ={
[8165] = {
storageId = 12000,
rewardId = 2487,
count = 1
},
}
function useQuestChest(cid, quest)
local queststatus = getPlayerStorageValue(cid, quest.storageId)
if queststatus == -1 then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a " .. getItemNameById(quest.rewardId) .. ".")
doPlayerAddItem(cid, quest.rewardId, quest.count)
setPlayerStorageValue(cid, quest.storageId, 1)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.")
end
end
function onUse(cid, item, frompos, item2, topos)
if quests[item.uid] ~= nil then
useQuestChest(cid, quests[item.uid])
end
return TRUE
end
-Mais como funciona?
Simples. Se você que adicionar uma nova quests ao seu servidor, basta editar os seguintes campos:
8165 = É o uniqueid da quest.
12000 = É o número de storage ID (o que indica se você fez ou não aquela ação).
2487 = É o ID do item que deseja ter na quest, que no caso uma crown armor.
1 = É a quantidade de itens que o jogador ira receber ao fazer a quest, no caso so 1.
Bem, feito a primeira parte, é so adicionar então a quest no arquivo actions.xml, dentro da pasta data/actions, ficaria assim:
<action uniqueid="8165" script="quest.lua" />
Agora, para adicionar mais quests no quest.lua, basta duplicar a seguinte parte (e assim por diante):
[8165] = {storageId = 12000,
rewardId = 2487,
count = 1
},
Então ficaria assim no quest.lua:
local quests ={
[8165] = {
storageId = 12000,
rewardId = 2487,
count = 1
},
[8166] = {
storageId = 12001,
rewardId = 2487,
count = 1
},
}
function useQuestChest(cid, quest)
local queststatus = getPlayerStorageValue(cid, quest.storageId)
if queststatus == -1 then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a " .. getItemNameById(quest.rewardId) .. ".")
doPlayerAddItem(cid, quest.rewardId, quest.count)
setPlayerStorageValue(cid, quest.storageId, 1)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.")
end
end
function onUse(cid, item, frompos, item2, topos)
if quests[item.uid] ~= nil then
useQuestChest(cid, quests[item.uid])
end
return TRUE
end
E assim no actions.xml:
<action uniqueid="8165" script="quest.lua" /><action uniqueid="8166" script="quest.lua" />
Obs: Nuca se esqueça de trocar o campo uniqueid e storage do arquivo para cada item. Eu coloquei o storageid para iniciar em 12000, para não acontecer nenhum tipo de conflito de storages no servidor.
Qualquer dúvida, poste aqui. :smile_positivo:
Créditos: TFS team (script retirado da versão 0.3b2 e atualizado por min para versão beta3)