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

Solved How can I get this script smaller ???

Count Dracula

New Member
Joined
Jul 30, 2013
Messages
36
Solutions
1
Reaction score
1
Hello otland!

I am trying to make my script a lot smaller. I will try to explain what is does.

When you get one quest and receive a storage, you need to go to some places and mark your map.
There is a total of 18 places and you can choose do go to anyone you want first, so it will always be in a random order.

Also when you use the map, it will always say all the places you already marked. So it needs to get all the storages you already got ( x / 18 ) and also know the ones you didn't marked.

The way I thought about doing this would require a loooot of Elseif's.

My script in the actual moment is something like this:

Code:
function onUse(player, item, fromPosition, target, toPosition, isHotkey)

    if item.itemid == 11111    then
    
--1   
        elseif
        player:getStorageValue(Storage.QuestVip.Inicio) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark01) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark02) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark03) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark04) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark05) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark06) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark07) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark08) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark09) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark10) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark11) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark12) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark13) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark14) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark15) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark16) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark17) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark18) < 1 then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "zzzzz.")
    
--2       
    elseif
        player:getStorageValue(Storage.QuestVip.mapMark01) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark02) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark03) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark04) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark05) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark06) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark07) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark08) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark09) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark10) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark11) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark12) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark13) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark14) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark15) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark16) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark17) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark18) < 1 then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "aaaaa.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "zzzzz.")
--3   
    elseif
        player:getStorageValue(Storage.QuestVip.mapMark01) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark02) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark03) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark04) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark05) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark06) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark07) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark08) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark09) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark10) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark11) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark12) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark13) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark14) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark15) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark16) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark17) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark18) < 1 then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "aaaaa.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "bbbbb.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "zzzzz.")
            
--4   
    elseif
        player:getStorageValue(Storage.QuestVip.mapMark01) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark02) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark03) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark04) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark05) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark06) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark07) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark08) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark09) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark10) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark11) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark12) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark13) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark14) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark15) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark16) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark17) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark18) < 1 then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "aaaaa.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "bbbbb.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ccccc.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "zzzzz.")
--5               
    elseif
        player:getStorageValue(Storage.QuestVip.mapMark01) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark02) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark03) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark04) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark05) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark06) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark07) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark08) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark09) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark10) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark11) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark12) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark13) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark14) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark15) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark16) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark17) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark18) < 1 then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "aaaaa.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "bbbbb.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ccccc.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ddddd.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "zzzzz.")
--6               
    elseif
        player:getStorageValue(Storage.QuestVip.mapMark01) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark02) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark03) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark04) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark05) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark06) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark07) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark08) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark09) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark10) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark11) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark12) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark13) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark14) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark15) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark16) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark17) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark18) < 1 then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "aaaaa.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "bbbbb.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ccccc.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ddddd.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "eeeee.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "zzzzz.")
            
--7               
    elseif
        player:getStorageValue(Storage.QuestVip.mapMark01) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark02) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark03) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark04) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark05) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark06) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark07) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark08) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark09) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark10) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark11) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark12) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark13) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark14) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark15) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark16) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark17) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark18) < 1 then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "aaaaa.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "bbbbb.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ccccc.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ddddd.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "eeeee.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "fffff.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "zzzzz.")
            
--8               
    elseif
        player:getStorageValue(Storage.QuestVip.mapMark01) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark02) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark03) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark04) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark05) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark06) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark07) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark08) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark09) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark10) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark11) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark12) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark13) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark14) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark15) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark16) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark17) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark18) < 1 then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "aaaaa.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "bbbbb.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ccccc.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ddddd.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "eeeee.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "fffff.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ggggg.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "zzzzz.")   

--9               
    elseif
        player:getStorageValue(Storage.QuestVip.mapMark01) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark02) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark03) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark04) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark05) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark06) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark07) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark08) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark09) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark10) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark11) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark12) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark13) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark14) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark15) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark16) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark17) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark18) < 1 then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "aaaaa.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "bbbbb.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ccccc.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ddddd.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "eeeee.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "fffff.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ggggg.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "hhhhh.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "zzzzz.")   

--10               
    elseif
        player:getStorageValue(Storage.QuestVip.mapMark01) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark02) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark03) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark04) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark05) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark06) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark07) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark08) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark09) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark10) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark11) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark12) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark13) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark14) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark15) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark16) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark17) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark18) < 1 then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "aaaaa.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "bbbbb.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ccccc.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ddddd.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "eeeee.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "fffff.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ggggg.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "hhhhh.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "iiiii.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "zzzzz.")   

--11               
    elseif
        player:getStorageValue(Storage.QuestVip.mapMark01) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark02) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark03) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark04) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark05) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark06) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark07) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark08) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark09) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark10) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark11) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark12) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark13) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark14) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark15) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark16) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark17) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark18) < 1 then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "aaaaa.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "bbbbb.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ccccc.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ddddd.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "eeeee.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "fffff.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ggggg.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "hhhhh.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "iiiii.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "jjjjj.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "zzzzz.")   

--12               
    elseif
        player:getStorageValue(Storage.QuestVip.mapMark01) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark02) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark03) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark04) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark05) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark06) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark07) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark08) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark09) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark10) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark11) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark12) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark13) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark14) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark15) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark16) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark17) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark18) < 1 then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "aaaaa.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "bbbbb.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ccccc.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ddddd.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "eeeee.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "fffff.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ggggg.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "hhhhh.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "iiiii.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "jjjjj.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "kkkkk.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "zzzzz.")   

--13               
    elseif
        player:getStorageValue(Storage.QuestVip.mapMark01) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark02) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark03) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark04) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark05) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark06) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark07) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark08) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark09) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark10) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark11) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark12) == 1 and
        player:getStorageValue(Storage.QuestVip.mapMark13) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark14) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark15) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark16) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark17) < 1 and
        player:getStorageValue(Storage.QuestVip.mapMark18) < 1 then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "aaaaa.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "bbbbb.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ccccc.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ddddd.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "eeeee.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "fffff.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "ggggg.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "hhhhh.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "iiiii.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "jjjjj.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "kkkkk.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "lllll.")
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "zzzzz.")

This script only contains a few of the total of possibilities that the player can do, because the limit of characteres to make this post is 25.000 characters. I think the total is something like 18 * 18 , or 324. So it would have thousands of lines.

There is anyway I can make this script a lot shorter??

Thank you!
 
Solution
Code:
function Player.getMapMarks(self)
   local marks = {}
    local mapMarks = Storage.QuestVip.mapMarks
    for i = 1, mapMarks do
        if self:getStorageValue(mapMarks[i].key) == 1 then
            marks[#marks+1] = "You marked "..mapMarks[i].string
        end
    end
    return table.concat(marks, ".\n")
end

Code:
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
   if (item:getId() == 11111) then
        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, player:getMapMarks())
    end
    return true
end

you can also make an fyi window:
instead of player:sendTextMessage~:
Code:
player:popupFYI("You have these map marks:\n".. player:getMapMarks())
can you show the Storage.QuestVip table?

Code:
QuestVip
= {
       Inicio = 63900,
       AposYes = 63899,
       mapMark01 = 63897,
       mapMark02 = 63896,
       mapMark03 = 63895,
       mapMark04 = 63894,
       mapMark05 = 63893,
       mapMark06 = 63892,
       mapMark07 = 63891,
       mapMark08 = 63890,
       mapMark09 = 63889,
       mapMark10 = 63888,
       mapMark11 = 63887,
       mapMark12 = 63886,
       mapMark13 = 63885,
       mapMark14 = 63884,
       mapMark15 = 63883,
       mapMark16 = 63882,
       mapMark17 = 63881,
       mapMark18 = 63880
     
   },


The script that envolves the position to give the storage when I use the item it's in a separate .lua
 
Code:
QuestVip = {
    Inicio = 63900,
    AposYes = 63899,
    mapMarks = {
        {key = 63897, string = "mark 1"},
        {key = 63896, string = "mark 2"},
        {key = 63895, string = "mark 3"},
        {key = 63894, string = "mark 4"},
        {key = 63893, string = "mark 5"},
        {key = 63892, string = "mark 6"},
        {key = 63891, string = "mark 7"},
        {key = 63890, string = "mark 8"},
        {key = 63889, string = "mark 9"},
        {key = 63888, string = "mark 10"},
        {key = 63887, string = "mark 11"},
        {key = 63886, string = "mark 12"},
        {key = 63885, string = "mark 13"},
        {key = 63884, string = "mark 14"},
        {key = 63883, string = "mark 15"},
        {key = 63882, string = "mark 16"},
        {key = 63881, string = "mark 17"},
        {key = 63880, string = "mark 18"}
    }
},

Code:
function Player.getMapMarks(self)
    local marks = {}
    local mapMarks = Storage.QuestVip.mapMarks
    for i = 1, mapMarks do
        if self:getStorageValue(mapMarks[i].key) == 1 then
            marks[#marks+1] = mapMarks[i].string
        end
    end
    return table.concat(marks, ", ")
end

to test it:
Code:
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    if (item:getId() == 11111) then
        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "You have these map marks: ".. player:getMapMarks())
    end
    return true
end
 
This script will work really better. Thanks for that Xeraphus.

But there is still a problem. I want this script gives one single message for each place the player marked, and not a single message with all the locations marked.
When u use it, something like this happens:

You marked location 1.
You marked location 2.
You marked location 3.

And not You marked location 1 and location 2 and location 3.
 
Code:
function Player.getMapMarks(self)
   local marks = {}
    local mapMarks = Storage.QuestVip.mapMarks
    for i = 1, mapMarks do
        if self:getStorageValue(mapMarks[i].key) == 1 then
            marks[#marks+1] = "You marked "..mapMarks[i].string
        end
    end
    return table.concat(marks, ".\n")
end

Code:
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
   if (item:getId() == 11111) then
        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, player:getMapMarks())
    end
    return true
end

you can also make an fyi window:
instead of player:sendTextMessage~:
Code:
player:popupFYI("You have these map marks:\n".. player:getMapMarks())
 
Solution
Back
Top