Ir para conteúdo

Inquisition


LuckinhaSan

Posts Recomendados

Oi pessoal,

 

Estes são os scripts para a quest inquisition.

Eles foram testados em 0.3.7!

 

Adicionar estas coisas em suas pastas de script, as posições são definidas como no tibia real, se você usar um mapa personalizado terá que mudá-los!

 

Este tutorial inquisition contém MoveEvents, Actions e Creaturescripts (2 de 3 são para esta seção para que eu postei aqui).

 

Chest Parts

Actions.xml -

 

<!-- INQ Chests -->
<action uniqueid="1300" event="script" value="quests/inqchests.lua" />
<action uniqueid="1301" event="script" value="quests/inqchests.lua" />
<action uniqueid="1302" event="script" value="quests/inqchests.lua" />
<action uniqueid="1303" event="script" value="quests/inqchests.lua" />
<action uniqueid="1304" event="script" value="quests/inqchests.lua" />
<action uniqueid="1305" event="script" value="quests/inqchests.lua" />
<action uniqueid="1306" event="script" value="quests/inqchests.lua" />
<action uniqueid="1307" event="script" value="quests/inqchests.lua" />
<action uniqueid="1308" event="script" value="quests/inqchests.lua" />

 

 

inqchests.lua fica em actions/scripts/quests -

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
if item.uid == 1300 then
queststatus = getPlayerStorageValue(cid,6076)
if queststatus == -1 then
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found robe of the underworld.")
doPlayerAddItem(cid,8890,1)
setPlayerStorageValue(cid,6076,1)
if getPlayerSex(cid) == 1 then
		doPlayerAddOutfit(cid, 289, 2)
doPlayerAddOutfit(cid, 289, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
elseif getPlayerSex(cid) == 0 then
		doPlayerAddOutfit(cid, 288, 2)
doPlayerAddOutfit(cid, 288, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
end
else
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.")
end
elseif item.uid == 1301 then
queststatus = getPlayerStorageValue(cid,6076)
if queststatus == -1 then
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a  Spellbook of Dark Mysteries.")
doPlayerAddItem(cid,8918,1)
setPlayerStorageValue(cid,6076,1)
if getPlayerSex(cid) == 1 then
		doPlayerAddOutfit(cid, 289, 2)
doPlayerAddOutfit(cid, 289, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
elseif getPlayerSex(cid) == 0 then
		doPlayerAddOutfit(cid, 288, 2)
doPlayerAddOutfit(cid, 288, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
end
else
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.")
end
elseif item.uid == 1302 then
queststatus = getPlayerStorageValue(cid,6076)
if queststatus == -1 then
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a Fireborn Giant Armor.")
doPlayerAddItem(cid,8881,1)
setPlayerStorageValue(cid,6076,1)
if getPlayerSex(cid) == 1 then
		doPlayerAddOutfit(cid, 289, 2)
doPlayerAddOutfit(cid, 289, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
elseif getPlayerSex(cid) == 0 then
		doPlayerAddOutfit(cid, 288, 2)
doPlayerAddOutfit(cid, 288, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
end
else
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.")
end
elseif item.uid == 1303 then
queststatus = getPlayerStorageValue(cid,6076)
if queststatus == -1 then
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a Master Archer's Armor.")
doPlayerAddItem(cid,8888,1)
setPlayerStorageValue(cid,6076,1)
if getPlayerSex(cid) == 1 then
		doPlayerAddOutfit(cid, 289, 2)
doPlayerAddOutfit(cid, 289, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
elseif getPlayerSex(cid) == 0 then
		doPlayerAddOutfit(cid, 288, 2)
doPlayerAddOutfit(cid, 288, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
end
else
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.")
end
  elseif item.uid == 1304 then
queststatus = getPlayerStorageValue(cid,6076)
if queststatus == -1 then
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a Royal Crossbow.")
doPlayerAddItem(cid,8851,1)
setPlayerStorageValue(cid,6076,1)
if getPlayerSex(cid) == 1 then
		doPlayerAddOutfit(cid, 289, 2)
doPlayerAddOutfit(cid, 289, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
elseif getPlayerSex(cid) == 0 then
		doPlayerAddOutfit(cid, 288, 2)
doPlayerAddOutfit(cid, 288, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
end
else
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.")
end
elseif item.uid == 1305 then
queststatus = getPlayerStorageValue(cid,6076)
if queststatus == -1 then
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a Hellforged Axe.")
doPlayerAddItem(cid,8924,1)
setPlayerStorageValue(cid,6076,1)
if getPlayerSex(cid) == 1 then
		doPlayerAddOutfit(cid, 289, 2)
doPlayerAddOutfit(cid, 289, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
elseif getPlayerSex(cid) == 0 then
		doPlayerAddOutfit(cid, 288, 2)
doPlayerAddOutfit(cid, 288, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
end
else
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.")
end
elseif item.uid == 1306 then
queststatus = getPlayerStorageValue(cid,6076)
if queststatus == -1 then
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a Obsidian Truncheon.")
doPlayerAddItem(cid,8928,1)
setPlayerStorageValue(cid,6076,1)
if getPlayerSex(cid) == 1 then
		doPlayerAddOutfit(cid, 289, 2)
doPlayerAddOutfit(cid, 289, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
elseif getPlayerSex(cid) == 0 then
		doPlayerAddOutfit(cid, 288, 2)
doPlayerAddOutfit(cid, 288, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
end
else
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.")
end
elseif item.uid == 1307 then
queststatus = getPlayerStorageValue(cid,6076)
if queststatus == -1 then
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a Emerald Sword.")
doPlayerAddItem(cid,8930,1)
setPlayerStorageValue(cid,6076,1)
if getPlayerSex(cid) == 1 then
		doPlayerAddOutfit(cid, 289, 2)
doPlayerAddOutfit(cid, 289, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
elseif getPlayerSex(cid) == 0 then
		doPlayerAddOutfit(cid, 288, 2)
doPlayerAddOutfit(cid, 288, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
end
else
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.")
end
elseif item.uid == 1308 then
queststatus = getPlayerStorageValue(cid,6076)
if queststatus == -1 then
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a Warsinger Bow.")
doPlayerAddItem(cid,8854,1)
setPlayerStorageValue(cid,6076,1)
if getPlayerSex(cid) == 1 then
		doPlayerAddOutfit(cid, 289, 2)
doPlayerAddOutfit(cid, 289, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
elseif getPlayerSex(cid) == 0 then
		doPlayerAddOutfit(cid, 288, 2)
doPlayerAddOutfit(cid, 288, 1)
doSendMagicEffect(getCreaturePosition(cid), 49)
end
else
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.")
end
end
return 1
end

 

 

Unique id's adicionados nos baús:

 

1300 = Robe of Underworld
1301 = Spellbook of Dark Mysteries
1302 = Fireborn Giant Armor
1303 = Master Archer's Armor
1304 = Royal Crossbow
1305 = Hellforged Axe
1306 = Obsidian Truncheon
1307 = Emerald Sword
1308 = Warsinger Bow

 

--Nota: O script permite apenas um para ser escolhido!

 

Teleport if bosses killed part

Creaturescripts.xml -

<event type="kill" name="Inq" event="script" value="Inquisition.lua"/>

 

Também adicionar -

registerCreatureEvent(cid, "Inq")

Em login.lua que fica em creaturescripts/scripts

 

E Inquisition.lua (com I maiúsculo) em creaturescripts/scripts -

 

local config = {
	timeToRemove = 120, -- seconds
message = "You now have 2 minutes to exit this room through the teleporter. It will bring you to the next room only during his time or the teleporter will disappear",
	teleportId = 9773,
	bosses = { -- Monster Name,  Teleport Position
			["Ushuriel"] = {  pos={ x=33157, y=31725, z=11, stackpos=1 }, aid=1001 },
["Zugurosh"] = {  pos={ x=33123, y=31689, z=11, stackpos=1 }, aid=1002},
["Madareth"] = {  pos={ x=33194, y=31768, z=11, stackpos=1 }, aid=1003},
			["Annihilon"] = {  pos={ x=33200, y=31704, z=11, stackpos=1 }, aid=1005},
			["Hellgorak"] = {  pos={ x=33107, y=31735, z=11, stackpos=1 }, aid=1006}
},
brothers ={
	["Golgordan"] = {pos={ x=33235, y=31734, z=11, stackpos=1 },aid=1004, brother = "Latrivan"},
	["Latrivan"] = {pos={ x=33235, y=31734, z=11, stackpos=1 },aid=1004, brother = "Golgordan"},
	brothersArea ={
			fromPos = {x = 33224, y = 31722, z = 11},
			toPos = {x = 33240, y = 31734, z = 11} } }
}
local function removal(position)
doRemoveThing(getTileItemById(position, config.teleportId).uid, 1)
return TRUE
end

function onKill(cid, target, lastHit)
if(config.bosses[getCreatureName(target)]) then
local t = config.bosses[getCreatureName(target)]
  local teleport = doCreateItem(config.teleportId, t.pos)
local position = t.pos
doItemSetAttribute(teleport, "aid", t.aid)
	doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1)
addEvent(removal, config.timeToRemove * 1000, position)
elseif(config.brothers[getCreatureName(target)]) then
local t = config.brothers[getCreatureName(target)]
	local brother = getCreatureByName(t.brother)
if(isMonster(brother) == true) then
		if(isInRange(getCreaturePosition(brother), config.brothers.brothersArea.fromPos, config.brothers.brothersArea.toPos) == true) then
			return TRUE
end
	else
local teleport = doCreateItem(config.teleportId, t.pos)
local position = t.pos
doItemSetAttribute(teleport, "aid", t.aid)
doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1)
addEvent(removal, config.timeToRemove * 1000, position)
end
end
return TRUE
end

 

 

A posição de teletransporte é o local onde o portal vai aparecer quando o boss for morto, também o brother bosses precisam ser mortos para o portal aparecer.

 

Teleport configuration

movements.xml -

 

 <!--INQ-->
<movevent type="StepIn" actionid="1001" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="1002" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="1003" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="1004" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="1005" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="1006" event="script" value="inq.lua"/>

<movevent type="StepIn" actionid="2001" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="2002" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="2003" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="2004" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="2005" event="script" value="inq.lua"/>



<movevent type="StepIn" actionid="3000" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="3001" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="3002" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="3003" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="3004" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="3005" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="3006" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="3007" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="3008" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="3009" event="script" value="inq.lua"/>
<movevent type="StepIn" actionid="3010" event="script" value="inq.lua"/>

 

 

inq.lua em movements/scripts -

 

local config = {
bosses={---aid of portal, position where it sends, value it sets, text it shows
[1001] = {pos={x=33069, y=31783, z=13, stackpos=1}, value=1, text="Entering The Crystal Caves"},
[1002] = {pos={x=33371, y=31613, z=14, stackpos=1}, value=2, text="Entering The Blood Halls"},
[1003] = {pos={x=33153, y=31781, z=12, stackpos=1}, value=3, text="Entering The Vats"},
[1004] = {pos={x=33038, y=31753, z=15, stackpos=1}, value=4, text="Entering The Arcanum"},
[1005] = {pos={x=33199, y=31686, z=12, stackpos=1}, value=5, text="Entering The Hive"},
[1006] = {pos={x=33111, y=31682, z=12, stackpos=1}, value=6, text="Entering The Shadow Nexus"}
},
mainroom={---aid, position, lowest value that can use this portal, text
[2001] = {pos={x=33069, y=31783, z=13, stackpos=1}, value=1, text="Entering The Crystal Caves"},
[2002] = {pos={x=33371, y=31613, z=14, stackpos=1}, value=2, text="Entering The Blood Halls"},
[2003] = {pos={x=33153, y=31781, z=12, stackpos=1}, value=3, text="Entering The Vats"},
[2004] = {pos={x=33038, y=31753, z=15, stackpos=1}, value=4, text="Entering The Arcanum"},
[2005] = {pos={x=33199, y=31686, z=12, stackpos=1}, value=5, text="Entering The Hive"} },
portals={---aid, position, text
[3000] = {pos={x=33163, y=31708, z=14}, text="Entering Inquisition Portals Room"},
[3001] = {pos={x=33158, y=31728, z=11}, text="Entering The Ward of Ushuriel"},
[3002] = {pos={x=33169, y=31755, z=13}, text="Entering The Undersea Kingdom"},
[3003] = {pos={x=33124, y=31692, z=11}, text="Entering The Ward of Zugurosh"},
[3004] = {pos={x=33356, y=31590, z=11}, text="Entering The Foundry"},
[3005] = {pos={x=33197, y=31767, z=11}, text="Entering The Ward of Madareth"},
[3006] = {pos={x=33250, y=31632, z=13}, text="Entering The Battlefield"},
[3007] = {pos={x=33232, y=31733, z=11}, text="Entering The Ward of The Demon Twins"},
[3008] = {pos={x=33094, y=31575, z=11}, text="Entering The Soul Wells"},
[3009] = {pos={x=33197, y=31703, z=11}, text="Entering The Ward of Annihilon"},
[3010] = {pos={x=33105, y=31734, z=11}, text="Entering The Ward of Hellgorak"} },
storage=56123,---storage used in boss and mainroom portals
e={} }----dunno whats this but have to be like this to make doCreatureSayWithDelay working, DON'T TOUCH}
function onStepIn(cid, item, position, fromPosition)
if isPlayer(cid) == TRUE then
if(config.bosses[item.actionid]) then
local t= config.bosses[item.actionid]
if getPlayerStorageValue(cid, config.storage)< t.value then
setPlayerStorageValue(cid, config.storage, t.value)
end
doTeleportThing(cid, t.pos)
doSendMagicEffect(getCreaturePosition(cid),10)
doCreatureSay(cid,t.text,19,1, config.e)
elseif(config.mainroom[item.actionid]) then
local t= config.mainroom[item.actionid]
if getPlayerStorageValue(cid, config.storage)>=t.value then
doTeleportThing(cid, t.pos)
doSendMagicEffect(getCreaturePosition(cid),10)
doCreatureSay(cid,t.text,19,1,config.e)
else
doTeleportThing(cid, fromPosition)
doSendMagicEffect(getCreaturePosition(cid),10)
doCreatureSay(cid, 'You don\'t have enough energy to enter this portal', TALKTYPE_ORANGE_1)
end
elseif(config.portals[item.actionid]) then
local t= config.portals[item.actionid]
doTeleportThing(cid, t.pos)
doSendMagicEffect(getCreaturePosition(cid),10)
doCreatureSay(cid,t.text,19,1,config.e)
end
end
end

 

 

 

Explicação:

Bosses: O teleporte que os bosses criaram são teleporte sem destino, que recebem um action ID!! Então, se Ushuriel está morto o teleporte fica action ID 1001 que vai teleportar-lo a cordenada 1001 e mostrar o texto Entering The Crystal Caves.

 

Mainroom: Os teleports na mainroom terá o ID de 2001-2005 que irá verificar se você matou o primeiro boss, se você matou o bossque você pode prosseguir, se você tiver matado por exemplo Ushuriel você pode ir para as cavernas de cristal. Se você não tiver matado você não pode ir para as Caves de cristal.

 

Portais: Todos os portais na quest com actionj ID não é com os destinos de teleporte que você terá que adicionar o ID que nos teletransporta para que ele te teleporte para o seu destino.

Assim, por exemplo, todo o teleporte que vai para a Inquisition Portal Room terá a action ID 3000.

Estes são colocados nos bosses teletransporta para se você quiser voltar (não o que foi criado!), ou colocado no Crystal Caves quando você entra, há também um teletransporte para voltar para a sala de Portais.

 

Espero que isso ajude vocês.

Créditos - SoloQ

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...