• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Lua Inquisition quest,Help please fast

Status
Not open for further replies.

lizudus

Www.Xivarian.Com Owner
Joined
May 14, 2008
Messages
456
Reaction score
5
Location
Milky Way,Earth,America Central,Costa rica, Heredi
Well i am using this script from
http://otland.net/f81/inq-portals-orange-text-storages-use-main-room-creating-boss-portals-62189/

Already edit the cords of each thing,when i kill the monster ushuriel, it creates teleport and send a orange text saying You have 60 seconds to go through teleport the teleports work perfectly but DONT ADD the storage

Why storage?

I want to be inquisition like tibia real when you through "x" teleport you win acces to The Crystal of caves,
"Crystal of caves = Cave of crystal spiders,hands of cursed fate, Ice golems and etc..."

but when i out and test i cant go through the teleport look at my scripts edited!
movements.xml >>>
PHP:
<!--INQ -->
<movevent type="StepIn" itemid="1387" event="script" value="inquisitionseals.lua"/>


movements>
PHP:
local config = {
	bosses={---aid of portal, position where it sends, value it sets, text it shows
		[1001] = {pos={x = 246, y = 351, z = 12, stackpos=1}, value=1, text="Entering The Crystal Caves"},
		[1002] = {pos={x=314, y=474, z=13, stackpos=1}, value=2, text="Entering The Blood Halls"},
		[1003] = {pos={x=287, y=365, z=13, stackpos=1}, value=3, text="Entering The Vats"},
		[1004] = {pos={x=408, y=413, z=13, stackpos=1}, value=4, text="Entering The Arcanum"},
		[1005] = {pos={x=294, y=681, z=13, stackpos=1}, value=5, text="Entering The Hive"},
		[1006] = {pos={x=255, y=467, z=13, stackpos=1}, value=6, text="Entering The Shadow Nexus"}
		},
	mainroom={---aid, position, lowest value that can use this portal, text
		[2001] = {pos={x=172, y=559, z=13, stackpos=1}, value=1, text="Entering The Crystal Caves"},
		[2002] = {pos={x=314, y=474, z=13, stackpos=1}, value=2, text="Entering The Blood Halls"},
		[2003] = {pos={x=287, y=365, z=13, stackpos=1}, value=3, text="Entering The Vats"},
		[2004] = {pos={x=408, y=413, z=13, stackpos=1}, value=4, text="Entering The Arcanum"},
		[2005] = {pos={x=294, y=681, z=13, stackpos=1}, value=5, text="Entering The Hive"}	},
	portals={---aid, position, text
		[3000] = {pos={x=177, y=438, z=14}, text="Entering Inquisition Portals Room"},
		[3001] = {pos={x=238, y=351, z=12}, text="Entering The Ward of Ushuriel"},
		[3002] = {pos={x=274, y=530, z=13}, text="Entering The Undersea Kingdom"},
		[3003] = {pos={x=382, y=525, z=13}, text="Entering The Ward of Zugurosh"},
		[3004] = {pos={x=299, y=448, z=10}, text="Entering The Foundry"},
		[3005] = {pos={x=340, y=466, z=13}, text="Entering The Ward of Madareth"},
		[3006] = {pos={x=390, y=348, z=13}, text="Entering The Battlefield"},
		[3007] = {pos={x=505, y=350, z=13}, text="Entering The Ward of The Demon Twins"},
		[3008] = {pos={x=576, y=409, z=13}, text="Entering The Soul Wells"},
		[3009] = {pos={x=637, y=479, z=13}, text="Entering The Ward of Annihilon"},
		[3010] = {pos={x=333, y=590, z=10}, text="Entering The Ward of Hellgorak"}	},
	storage=56123,---storage used in boss and mainroom portals
	walkback="You don't have enough energy to enter this portal",---message if you cannot use mainroom portal
	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)
			doCreatureSayWithDelay(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)
				doCreatureSayWithDelay(cid,t.text,19,1,config.e)
			else
				doTeleportThing(cid, fromPosition)
				doCreatureSay(cid, config.walkback, 19)
			end
		elseif(config.portals[item.actionid]) then
			local t= config.portals[item.actionid]
			doTeleportThing(cid, t.pos)
			doCreatureSayWithDelay(cid,t.text,19,1,config.e)
		end
	end
end


creaturescripts.xml

PHP:
<event type="kill" name="Inquisition" script="inquisition.lua"/>

Login.lua added
PHP:
registerCreatureEvent(cid, "Inquisition")

inquisition.lua , on creaturescripts/scripts

PHP:
local config = {
        timeToRemove = 60, -- seconds
		message = "Go into the teleport in 60 seconds, else it will disappear.",
        teleportId = 1387,
        bosses = { -- Monster Name,  Teleport Position
                ["Ushuriel"] = {  pos={ x = 246, y = 351, z = 12, stackpos=2 }, aid=2001},
				["Zugurosh"] = {  pos={ x = 390, y = 525, z = 13, stackpos=2 }, aid=2002},
				["Madareth"] = {  pos={ x = 340, y = 460, z = 13, stackpos=2 }, aid=2003},
                ["Annihilon"] = {  pos={ x = 637, y = 472, z = 13, stackpos=2 }, aid=2005},
                ["Hellgorak"] = {  pos={ x = 335, y = 581, z = 10, stackpos=2 }, aid=2006}
				},
		brothers ={
        ["Golgordan"] = {pos={ x = 505, y = 345, z = 13, stackpos=1 },aid=2004, brother = "Latrivan"},
        ["Latrivan"] = {pos={ x = 505, y = 345, z = 13, stackpos=1 },aid=2004, brother = "Golgordan"},
        brothersArea ={
                fromPos = {x = 505, y = 345, z = 13},
                toPos = {x = 408, y = 413, z = 13}	}	}
}
local function change(position)
	doItemSetAttribute(getTileItemById(position, config.teleportId).uid, "aid", 7200)
    return TRUE
end

function onKill(cid, target, lastHit)
    if(config.bosses[getCreatureName(target)]) then
		local t = config.bosses[getCreatureName(target)]
		local position = t.pos
		doItemSetAttribute(getTileItemById(position, config.teleportId).uid, "aid", t.aid)
        doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1)
		addEvent(change, 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 position = t.pos
			doItemSetAttribute(getTileItemById(position, config.teleportId).uid, "aid", t.aid)
			doItemSetAttribute(teleport, "aid", t.aid)
			doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1)
			addEvent(removal, config.timeToRemove * 1000, position)
		end
	end
	return TRUE
end



Hope someone help me i want to be like tibia global
 
Last edited:
I had a similar problem so I found another script that does the job...

Place this in movements
Code:
function onStepIn(cid, item, position, fromPosition)
	if getPlayerStorageValue(cid,12345) <= 0 then
		setPlayerStorageValue(cid, 12345, 1)
	end
return true
end

And this in movements.xml
Code:
<movevent type="StepIn" uniqueid="12345" event="script" value="tpstorage.lua"/>

But it will not create a storage once you go through the tp after you kill the boss, what I had to do was when you go through the tp at the end of the seal you want to save, you give that tp the UID so it saves the seal you have just ran through.

Hope this helps.
 
Well the mod I use with it is
Code:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Inquisition"

version="2.0" author="Tommy" contact="[email protected]" enabled="yes">
<config name="inqusitionFunctions"><![CDATA[
config = {
    message = "Escape through the teleport quickly, before it dissappears!",
    timeToRemove = 120, -- seconds
    teleportId = 1387,
    MonStor = 48000,
    bosses = { -- Monster Name, Teleport To Position, Teleport Position, UID
        ["Ushuriel"] = { ptp={ x=172, y=559, z=13}, pp={ x=255, y=351, z=12, stackpos=1 }, uid=49100 },
        ["Annihilon"] = { ptp={ x=294, y=681, z=13 }, pp={ x=637, y=463, z=13, stackpos=1 }, uid=49200 },
        ["Hellgorak"] = { ptp={ x=255, y=467, z=13 }, pp={ x=335, y=570, z=10, stackpos=1 }, uid=49300 },
        ["Madareth"] = { ptp={ x=287, y=365, z=13}, pp={ x=340, y=453, z=13, stackpos=1 }, uid=49400 },
        ["Zugurosh"] = { ptp={ x=314, y=474, z=13 }, pp={ x=398, y=525, z=13, stackpos=1 }, uid=49500 },
        ["Latrivan"] = { ptp={ x=408, y=413, z=13}, pp={ x=505, y=339, z=13, stackpos=1 }, uid=49600 }
    }
}

    function removal(position)
    if getThingfromPos(position).itemid == config.teleportId then
        doRemoveItem(getThingfromPos(position).uid)
    end
    return TRUE
end]]></config>

        <event type="login" name="inquisitionRegister" event="script"><![CDATA[
        domodlib('inqusitionFunctions')
        function onLogin(cid)
    registerCreatureEvent(cid, "Inquisition")
        return true
end]]></event>

    <event type="kill" name="Inquisition" event="script"><![CDATA[
function onKill(cid, target, lastHit)
    if(config.bosses[getCreatureName(target)]) then
        local t = config.bosses[getCreatureName(target)]
        local teleport = doCreateTeleport(config.teleportId, t.ptp, t.pp)
        local position = t.pp
        doItemSetAttribute(teleport, "uid", t.uid)
        doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1)
        addEvent(removal, config.timeToRemove * 1000, position)
    end
    return TRUE
end]]></event>


         <action fromuid="1301" touid="1311" event="script"><![CDATA[
        domodlib('inqusitionFunctions')
    local storage = 50301
    local inquisitionRewards = {
        [1300] = 8890, --a robe of the underworld
        [1301] = 8918, --a spellbook of dark mysteries
        [1302] = 8881, --a fireborn giant armor
        [1303] = 8888, --a master archer's armor
        [1304] = 8851, --a royal crossbow
        [1305] = 8928, --an obsidian truncheon
        [1306] = 8924, --a hellforged axe
        [1307] = 8930, --an emerald sword
        [1308] = 8854, --a warsinger bow
        [1309] = 8903, --a spellbook of lost souls
        [1310] = 2508, --a mystical armor
        [1311] = 8905 --a rainbow shield
    }
    
    if inquisitionRewards[item.uid] then
        if getPlayerStorageValue(cid, storage) < 1 then
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found " .. getItemArticleById(inquisitionRewards[item.uid]) .. " " .. getItemNameById(inquisitionRewards[item.uid]) .. ".")
            doPlayerAddItem(cid, inquisitionRewards[item.uid], 1)
            setPlayerStorageValue(cid, storage, 1)
                                addPlayerRep(cid, 5, TEXTCOLOR_LIGHTBLUE)
        else
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.") 
        end
    end
    
    return true
]]></action>
</mod>

Try using this one instead with the storagetp script above.
 
All its ok now
but in main rooms if you have the storage and you enter to the tp it says example : Entering the Crystal Caves
and if you DONT have the storage and enter to the tp it says "You don't have enough energy to enter this portal" BUT anyways you can enter to the tp...and dont do Walkback :S
 
Status
Not open for further replies.
Back
Top