PROIBIDO POSTAR EM OUTRO LUGAR TOPICO EXCLUSIVO AO XTIBIA
créditos: 100% meus
Bom vamos começar o tutorial, aqui explicarei como fazer algumas quests então vamos lá!
1° Abra seu map editor, faça um lugar onde vai ficar o baú ou se quiser use um lugar já existente.
2° Coloque o baú ou qualquer outra coisa que quando o player der use pegue o item.
3° Clique com o botão direito no baú ou qualquer outro item que você tenha colocado lá e vá em propriedades, depois coloque no unique id um numero que ainda não esteja sendo usado no ot. (dica: coloque um numero entre 8000 e 9999 por que geralmente ainda não estão sendo usados)
Algumas ss de como colocar unique id nos itens
agora vamos aos scripts e as explicações.
essa é como fazer uma quest que de mais de um item.
(CLIQUE NO SPOIL)
--By ADM Leo Leonardo Caetano
function onUse(cid, item, frompos, item2, topos)
if item.uid == 8500 then
queststatus = getPlayerStorageValue(cid,8500)
if queststatus == -1 then
doPlayerSendTextMessage(cid,22,"Você achou um Blessed Shield!.")
doPlayerAddItem(cid,2523,1)
setPlayerStorageValue(cid,8500,1)
else
doPlayerSendTextMessage(cid,22,"Esta vazio.")
end
elseif item.uid == 8501 then
queststatus = getPlayerStorageValue(cid,8501)
if queststatus == -1 then
doPlayerSendTextMessage(cid,22,"Você achou um Horned Helmet")
doPlayerAddItem(cid,2496,1)
setPlayerStorageValue(cid,8501,1)
else
doPlayerSendTextMessage(cid,22,"Esta vazio.")
end
elseif item.uid == 8502 then
queststatus = getPlayerStorageValue(cid,8502)
if queststatus == -1 then
doPlayerSendTextMessage(cid,22,"Voce achou uma Warlod Sword.")
doPlayerAddItem(cid,2408,1)
setPlayerStorageValue(cid,8502,1)
else
doPlayerSendTextMessage(cid,22,"Esta vazio.")
end
elseif item.uid == 8503 then
queststatus = getPlayerStorageValue(cid,8503)
if queststatus == -1 then
doPlayerSendTextMessage(cid,22,"Voce achou uma Demon Armor.")
doPlayerAddItem(cid,2494,1)
setPlayerStorageValue(cid,8503,1)
else
doPlayerSendTextMessage(cid,22,"Esta Vazio.")
end
else
return 0
end
return 1
end
Depois salve com um nome qualquer vá em data/actions/actions.xml e abra-o como bloco de notas e adicione essas linhas
<action uniqueid="8500" script="NOME.lua" /><action uniqueid="8501" script="NOME.lua" />
<action uniqueid="8002" script="NOME.lua" />
<action uniqueid="8503" script="NOME.lua" />
--ExplicaçãoVermelho - Unique id que você colocou nos baus.
Azul claro- Aqui tem que ser numeros diferentes do storage value do outro bau, se não, não da pra pegar todos items.
Laranja - A mensagem que aparecerá quando o player der use e pegar o item
Pink - ID do item que o player irá ganhar, e a quantidade de itens.
Roxo - A mensagem que vai aparecer no caso do player querer pegar o item novamente.
Azul escuro - Unique id que você colocou no script.
Verde claro - nome que você salvou o script
Agora aqui vou explicar como fazer uma quest que o player deve escolher um item e não poderá pegar nenhum outro.
1° abra seu map editor e fassa um lugar que de para ver os itens que o player vai pegar (algo parecido com POI ou a annihilator) mas pense em algum modo que o player não irá conseguir pegar o iten que tiver a mostra!
2° coloque uniqueid nos baus (unique ids que ainda não tem no seu OT).
Aqui vai o script...
(CLIQUE NO SPOIL)
--By ADM Leo Leonardo Caetano
function onUse(cid, item, frompos, item2, topos)
if item.uid == 8500 then
queststatus = getPlayerStorageValue(cid,8500)
if queststatus == -1 then
doPlayerSendTextMessage(cid,22,"Voce achou um Blessed Shield!.")
doPlayerAddItem(cid,2523,1)
setPlayerStorageValue(cid,8500,1)
else
doPlayerSendTextMessage(cid,22,"Esta vazio.")
end
elseif item.uid == 8501 then
queststatus = getPlayerStorageValue(cid,8500)
if queststatus == -1 then
doPlayerSendTextMessage(cid,22,"Voce achou um Horned Helmet")
doPlayerAddItem(cid,2496,1)
setPlayerStorageValue(cid,8500,1)
else
doPlayerSendTextMessage(cid,22,"Esta vazio.")
end
elseif item.uid == 8502 then
queststatus = getPlayerStorageValue(cid,8500)
if queststatus == -1 then
doPlayerSendTextMessage(cid,22,"Voce achou uma Warlod Sword.")
doPlayerAddItem(cid,2408,1)
setPlayerStorageValue(cid,8500,1)
else
doPlayerSendTextMessage(cid,22,"Esta vazio.")
end
elseif item.uid == 8503 then
queststatus = getPlayerStorageValue(cid,8500)
if queststatus == -1 then
doPlayerSendTextMessage(cid,22,"Voce achou uma Demon Armor.")
doPlayerAddItem(cid,2494,1)
setPlayerStorageValue(cid,8500,1)
else
doPlayerSendTextMessage(cid,22,"Esta Vazio.")
end
else
return 0
end
return 1
end
Depois abra data/actions/actions.xml como bloco de notas e adicione essas linhas...
<action uniqueid="8500" script="NOME.lua" /><action uniqueid="8501" script="NOME.lua" />
<action uniqueid="8502" script="NOME.lua" />
<action uniqueid="8503" script="NOME.lua" />
--ExplicandoVermelho - Unique ID que você colocou nos baus (ou no item que o player vai dar use para receber seu item)
Azul claro - Aqui nesse script para o player pegar apenas 1 de todos os itens o storage value deve ser igual um aos outros.
Laranja - Mensagem que vai aparecer quando o player der use no bau e receber seu item
Pink - ID do item que o player vai receber, e a quantidade do mesmo item.
Roxo - O que vai falar quando o player tentar pegar o item novamente.
Azul escuro - Unique id que você colocou no script.
Verde claro- nome que você salvou o script
Como foi sugerido pelo Tprocheira aqui vou ensinar a fazer um tipo de "desafio" que use action id...
(CLIQUE NO SPOIL)
abra seu map editor, depois coloque um balcão (ID: 1645) em algum lugar, depois, abra a pasta data/actions/scripts.
depois copie e cole qualquer arquivo .lua (CTRL + C e CTRL + V)
abra-o e apague tudo que estiver e cole isso
--By ADM Leo Leonardo Caetanofunction onUse(cid, item, frompos, item2, topos)
itempos = {x=331,y=60,z=11,stackpos=255}
item = getThingfromPos(itempos)
telepos = {x=71,y=33,z=8,stackpos=1}
playerpos = getPlayerPosition(cid)
effect1pos = {x=878,y=788,z=7,stackpos=1}
if item.itemid == 2881 and playerpos.x == 332 and playerpos.y == 60 and playerpos.z == 11 then
doTeleportThing(cid,telepos)
doSendMagicEffect(effect1pos,6)
doSendMagicEffect(telepos,10)
doSendMagicEffect(itempos,2)
doRemoveItem(item.uid,1)
else
doPlayerSendCancel(cid,"Fique em cima em frente a pedra.")
end
if item.itemid == 1645 then
doPlayerSendCancel(cid,"coloque o item na pedra.")
end
return 1
end
Agora vá em data/actions/actions.xml e abra-o como bloco de notas, depois disso adicione essas 2 linhas
<action itemid="1645" script="demodras dead.lua" /><action itemid="2122" script="demodras dead.lua" />
--ExplicandoVermelho: Posição de onde o item irá ficar.
Azul escuro: Posição para onde o player será teleportado.
Verde escuro: Posição de onde irá aparecer o efeito.
Pink: ID do item que tem que colocar na pedra
Laranja: Posição de onde o player ficará para dar use no balcão
Roxo: ID do balcão
Marrom: mensagem que aparecerá se o player não ficar na posição certa, e mensagem que aparecerá se o player não colocar o item.
Cinza: ID do item
Azul claro: ID do balcão.
Verde claro: nome que você salvou o arquivo.
Quando eu for lembrando mais eu vou postando aqui!
se quiser podem dar uma ajuda a lembrar falando alguns tipos de quests, que eu edito e posto aqui....
(demorei pra fazer então pelomenos comentem)