• 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!

Real HOTA script, how to get it working?

Hermes

dziwki kola gramy w lola
Joined
Nov 17, 2007
Messages
1,867
Reaction score
14
Location
Poland
Hello,

I've managed to find this scipt (title). But I tried to make it working, no way. Is something wrong in code? Or should I add a line to movements.xml with actionid?

Here is the scipt.
Code:
function onAddItem(moveitem, tileitem, pos)

item1 = 2335
item2 = 2336
item3 = 2337
item4 = 2338
item5 = 2339
item6 = 2340
item7 = 2341

helmetpos = {x=995, y=1104, z=9, stackpos=255}
helmet = getThingfromPos(helmetpos)

helmetpos1 = {x=995, y=1104, z=9, stackpos=8}
helmetpos2 = {x=995, y=1104, z=9, stackpos=7}
helmetpos3 = {x=995, y=1104, z=9, stackpos=6}
helmetpos4 = {x=995, y=1104, z=9, stackpos=5}
helmetpos5 = {x=995, y=1104, z=9, stackpos=4}
helmetpos6 = {x=995, y=1104, z=9, stackpos=3}
helmetpos7 = {x=995, y=1104, z=9, stackpos=2}

helmet1 = getThingfromPos(helmetpos1)
helmet2 = getThingfromPos(helmetpos2)
helmet3 = getThingfromPos(helmetpos3)
helmet4 = getThingfromPos(helmetpos4)
helmet5 = getThingfromPos(helmetpos5)
helmet6 = getThingfromPos(helmetpos6)
helmet7 = getThingfromPos(helmetpos7)

	if moveitem.itemid == item7 and helmet1.itemid == item1 and helmet2.itemid == item2 and helmet3.itemid == item3 and helmet4.itemid == item4 and helmet5.itemid == item5 and helmet6.itemid == item6 then
		doRemoveItem(helmet1.uid, 1)
		doRemoveItem(helmet2.uid, 1)
		doRemoveItem(helmet3.uid, 1)
		doRemoveItem(helmet4.uid, 1)
		doRemoveItem(helmet5.uid, 1)
		doRemoveItem(helmet6.uid, 1)
		doRemoveItem(helmet7.uid, 1)
		doCreateItem(2342,1,helmetpos)
		doSendMagicEffect(pos, 6)
		
	else
	end

return 1
end

And how I can optimize this thing? Such a short ingame use, but many lines in code.

Reg~,
Hermes
 
bumpwf6.png

> 100 post <
 
Code:
function onAddItem(moveitem, tileitem, pos)

	local items = {{2335,1}, {2336,2}, {2337,3}, {2338,4}, {2339,5}, {2340,6}, {2341,7}}
	local itemspos =  {x=995, y=1104, z=9}
	local makehelmet = true
	moveitem.stackpos = items[moveitem.itemid][2]

	for i=1, #items do
		itempos.stackpos = i
		lookforitem = getThingFromPos(itempos.uid)
		if(items[i][1] == lookforitem.itemid and makehelmet ~= false)then
	    makehelmet = true
		else
		makehelmet = false
		end
	end

	
	if(makehelmet == true)then
		for r=1, #items do
		itempos.stackpos = r
		doRemoveItem(getThingFromPos(itempos).uid, getThingFromPos(itempos).type)
		end
			doCreateItem(2342, 1, itemspos)
	end
	
end
should work, but im not 100% sure.
 
@up
The script is short, but isn't working.
Code:
[16/11/2008 12:08:08] Lua Script Error: [MoveEvents Interface] 
[16/11/2008 12:08:08] data/movements/scripts/hota_ersiu.lua:onAddItem

[16/11/2008 12:08:08] data/movements/scripts/hota_ersiu.lua:6: attempt to index field '?' (a nil value)
[16/11/2008 12:08:08] stack traceback:
[16/11/2008 12:08:08] 	data/movements/scripts/hota_ersiu.lua:6: in function <data/movements/scripts/hota_ersiu.lua:1>

It's working with old script. Just added tileitem="1" :eek:

Code:
	<movevent event="AddItem" tileitem="1" actionid="7806" script="hota.lua" />

But old script is messed up.
 
Use this Colandus and me made that a long time ago :p

Code:
--Ancient Helmet Quest by Evil Hero and Colandus-- 

-->>CONFIG<<-- 
local switchUniqueid = xxxx -- uniqueid of the switch 
local piecePositions = { 
    {x=XXX, y=YYY, z=ZZZ},  -- change all of the positions
    {x=XXX, y=YYY, z=ZZZ}, 
    {x=XXX, y=YYY, z=ZZZ}, 
    {x=XXX, y=YYY, z=ZZZ}, 
    {x=XXX, y=YYY, z=ZZZ}, 
    {x=XXX, y=YYY, z=ZZZ}, 
    {x=XXX, y=YYY, z=ZZZ} 
} 
local helmetPos = {x=XXX, y=YYY, z=ZZZ} -- where the helmet will be created
-->>CONFIG<<-- 

function onUse(cid, item, frompos, item2, topos) 
    local foundItems = {} 
    local getPieces = {} 
    for i=1, #piecePositions do 
        piecePositions[i].stackpos = 1 
        getPieces[i] = getThingfromPos(piecePositions[i]) 
        foundItems[i] = getPieces[i].itemid 
    end 
    if (item.uid == switchUniqueid and item.itemid == 1945) then 
        for i=2335, 2341 do 
            if (isInArray(foundItems, i) ~= TRUE) then 
                doPlayerSendTextMessage(cid, 22, "You need to place all needed pieces on the basins.") 
                return FALSE 
            end 
        end 
        for i=1, #piecePositions do 
            doRemoveItem(getPieces[i].uid, 1) 
            doSendMagicEffect(piecePositions[i], 23) 
        end 
        doCreateItem(2342, 1, helmetPos) 
        doSendMagicEffect(helmetPos, 23) 
    end 
    return TRUE 
end

Code:
<action uniqueid="xxx" script="ancienthelmet.lua" />

kind regards, Evil Hero
 
Back
Top