Ir para conteúdo

[Socorro]Demon Oak / Como Fazer Quests


carva

Posts Recomendados

Agora o Plob e na Anhi eu puxo alavanca nao acontece nada

 

Actions>Action.xml

<action uniqueid="30015" event="script" value="quests/annihilator.lua"/>

 

Actions>Scripts>Quests>annihilator

local config = {
daily = "no", -- allow only one enter per day? (like in global Tibia)
level = 100,
storage = 30015
entry =
	{
	{x = 1531, y = 1558, z = 9},
	{x = 1530, y = 1558, z = 9},
	{x = 1529, y = 1558, z = 9},
	{x = 1528, y = 1558, z = 9}
},
destination =
{
	{x = 1531, y = 1558, z = 10},
	{x = 1530, y = 1558, z = 10},
	{x = 1529, y = 1558, z = 10},
	{x = 1528, y = 1558, z = 10}
}
}

config.daily = getBooleanFromString(config.daily)
function onUse(cid, item, fromPosition, itemEx, toPosition)
if(item.itemid == 1946) then
	if(config.daily) then
		doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
	else
		doTransformItem(item.uid, item.itemid - 1)
	end

	return true
end

if(item.itemid ~= 1945) then
	return true
end

local players = {}
for _, position in ipairs(config.entry) do
	local pid = getTopCreature(position).uid
	if(pid == 0 or not isPlayer(pid) or getCreatureStorage(pid, config.storage) > 0 or getPlayerLevel(pid) < config.level) then
		doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
		return true
	end

	table.insert(players, pid)
end

for i, pid in ipairs(players) do
	doSendMagicEffect(config.entry[i], CONST_ME_POFF)
	doTeleportThing(pid, config.destination[i], false)
	doSendMagicEffect(config.destination[i], CONST_ME_ENERGYAREA)
end

doTransformItem(item.uid, item.itemid + 1)
return true
end

Editado por carva
Link para o comentário
Compartilhar em outros sites

É o seguinte primerio você vái em data/actions/actions.xml, E vê uma action ou uniqueid que não está sendo usado.

Digamo que tu viu lá que a 4024 não está sendo usada.

Então você vai colocar uma tag assim lá

<action uniqueid="4024" script="diretório.lua" />

 

O azul é o unique id que deve estár no chest tambêm. (que você coloca pelo map editor).

O vermelho é o diretório do script. (você deve colocar o nome do script que vou expor abaixo)

 

Após adicionar a tag você vai em data/actions/scripts

 

Lá você deve adicionar seu script como esse aqui.

 

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

 

if item.uid == 4024 then

queststatus = getPlayerStorageValue(cid,4024)

if queststatus == -1 then

doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a Blue Legs.")

doPlayerAddItem(cid,7730,1)

setPlayerStorageValue(cid,4024,1)

else

doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.")

end

end

return 1

end

 

 

Aonde está verde são as unique id e a storage. (Sempre coloque a storage igual unique id para não dar conflito com outras quests).

A parte vermelha é a mensagem que o player irá receber.

E o azul é o id do item, seguido da quantidade de item que ele irá receber.

 

Obs.: Caso você coloque o script dentro de uma pasta você deve mudar a tag exemplo.:

Seu script está em data/actions/script/quests/scripts.lua

 

Você deverá deixar a tag assim

<action uniqueid="4024" script="quests/scripts.lua" />

 

Espero que tenha sanado toda sua dúvida, se caso sim REP+ xD

Link para o comentário
Compartilhar em outros sites

É o seguinte primerio você vái em data/actions/actions.xml, E vê uma action ou uniqueid que não está sendo usado.

Digamo que tu viu lá que a 4024 não está sendo usada.

Então você vai colocar uma tag assim lá

<action uniqueid="4024" script="diretório.lua" />

 

O azul é o unique id que deve estár no chest tambêm. (que você coloca pelo map editor).

O vermelho é o diretório do script. (você deve colocar o nome do script que vou expor abaixo)

 

Após adicionar a tag você vai em data/actions/scripts

 

Lá você deve adicionar seu script como esse aqui.

 

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

 

if item.uid == 4024 then

queststatus = getPlayerStorageValue(cid,4024)

if queststatus == -1 then

doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a Blue Legs.")

doPlayerAddItem(cid,7730,1)

setPlayerStorageValue(cid,4024,1)

else

doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.")

end

end

return 1

end

 

 

Aonde está verde são as unique id e a storage. (Sempre coloque a storage igual unique id para não dar conflito com outras quests).

A parte vermelha é a mensagem que o player irá receber.

E o azul é o id do item, seguido da quantidade de item que ele irá receber.

 

Obs.: Caso você coloque o script dentro de uma pasta você deve mudar a tag exemplo.:

Seu script está em data/actions/script/quests/scripts.lua

 

Você deverá deixar a tag assim

<action uniqueid="4024" script="quests/scripts.lua" />

 

Espero que tenha sanado toda sua dúvida, se caso sim REP+ xD

 

NAO DEU =/ AGORA VOCE ABRE O BAU E NEM O ITEM APARECE ,

ss:

questbug.jpg

Link para o comentário
Compartilhar em outros sites

Faz assim amigo. ANTES DE TUDO BOTE ESSE ACTIONS ID NO SEU MAP EDITOR 9506

Agora:

 

Vai em data/actions/actions.xml

 

abra-o e adicione essa tag

 

<action uniqueid="9506" script="quests/demonquestfire.lua" />

 

vai agora em data/actions/scripts/quests

e adicione um script com nome demonquestfire.lua

 

e coloque dentro:

 

----vitinhow---

 

function onUse(cid, item, frompos, item2, topos)

 

if item.uid == 9506 then

queststatus = getPlayerStorageValue(cid,90394)

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,"You have found a steel boots.")

doPlayerAddItem(cid,2645,1)

setPlayerStorageValue(cid,90394,1)

else

doPlayerSendTextMessage(cid,22,"It is empty.")

end

else

return 0

end

end

return 1

 

 

Tenta oque eu fiz.

 

 

Ah e sempre edite seu storage nos scripts pois poderá haver outros com storeage iguais.

 

-Se não der certo confira o directório se está certo 100% onde você colocou.

 

Se consegui resolver sua dúvida, rep+

Editado por Vitinhowcq
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...