• 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 Script Problem

bolero

MikeHere
Joined
Apr 13, 2009
Messages
1,146
Reaction score
12
Location
Venezuela
I have this script in my OTserver 8.5 Ver: 0.3.5 and doesn't work :/

Code:
--CONFIG  
local config = {  
mana = 300,  
soul = 2,  
messNotEnoughSoul = "You don't have enough soul points.",  
messNotEnoughMana = "You don't have enough mana points.",  
effect = 39 --you can test effects with !z command (ex. !z 23)  
}  
--/CONFIG  

local array = { [7759] = 8907, [7760] = 8906, [7761] = 8909, [7762] = 8908 }  
local altars = {{7516, 7517, 7518, 7519}, {7504, 7505, 7506, 7507}, {7512, 7513, 7514, 7515}, {7508, 7509, 7510, 7511}}  
local gems = {2149, 2147, 2150, 2146}  
local enchantedGems = {7761, 7760, 7762, 7759}  
local weapons = {  
    -- {earth, fire, energy, ice}  
    [2430] = {7860, 7750, 7875, 7769},  
    [2423] = {7864, 7754, 7879, 7773},  
    [7406] = {7857, 7747, 7872, 7766},  
    [7383] = {7855, 7745, 7870, 7764},  
    [7384] = {7856, 7746, 7871, 7765},  
    [7415] = {7866, 7756, 7881, 7775},  
    [7380] = {7862, 7752, 7877, 7771},  
    [7402] = {7858, 7784, 7873, 7767},  
    [2391] = {7868, 7758, 7883, 7777},  
    [7389] = {7861, 7751, 7876, 7770},  
    [2383] = {7854, 7744, 7869, 7763},  
    [7392] = {7867, 7757, 7882, 7776},  
    [2429] = {7859, 7749, 7874, 7768},  
    [2445] = {7865, 7755, 7880, 7774},  
    [2454] = {7863, 7753, 7878, 7772}  
}  
      
          
        if itemEx.itemid == 8905 and isInArray(enchantedGems, item.itemid) then  
            for k, v in pairs(array) do  
                if item.itemid == k then  
                    doTransformItem(itemEx.uid, v)  
                    doRemoveItem(item.uid, 1)  
                    doSendMagicEffect(fromPosition, config.effect)  
                    return TRUE  
                end  
            end  
        elseif isInArray(gems, item.itemid) == TRUE then  
            for i=1, #gems do  
                if isInArray(altars[i], itemEx.itemid) == TRUE and item.itemid == gems[i] then  
                    if getPlayerMana(cid) >= config.mana then  
                        if getPlayerSoul(cid) >= config.soul then 
                            doRemoveItem(item.uid, 1)  
                            doPlayerAddItem(cid, enchantedGems[i], 1)  
                            doPlayerAddSoul(cid,-config.soul)  
                            doPlayerAddMana(cid,-config.mana)  
                        else  
                            doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, config.messNotEnoughSoul)  
                            doSendMagicEffect(fromPosition, 2)  
                            return FALSE  
                        end  
                    else  
                        doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, config.messNotEnoughMana)  
                        doSendMagicEffect(fromPosition, 2)  
                        return FALSE  
                    end  
                    doSendMagicEffect(toPosition, config.effect)  
                    return TRUE  
                end  
            end  
                  
        else  
            for k, v in pairs(weapons) do  
                if itemEx.itemid == k then  
                    for i=1, #enchantedGems do  
                        if item.itemid == enchantedGems[i] then  
                            doTransformItem(itemEx.uid, v[i], 1000)  
                            doRemoveItem(item.uid, 1)  
                            doSendMagicEffect(fromPosition, config.effect)  
                            return TRUE  
                        end  
                    end  
                end  
            end      
        end  
    return TRUE  
end

Anyone can help me to fix?
 
Code:
--CONFIG
local config = {
	mana = 300,
	soul = 2,
	messNotEnoughSoul = "You don't have enough soul points.",
	messNotEnoughMana = "You don't have enough mana points.",
	effect = 39
}
--/CONFIG

local array = { [7759] = 8907, [7760] = 8906, [7761] = 8909, [7762] = 8908 }
local altars = {{7516, 7517, 7518, 7519}, {7504, 7505, 7506, 7507}, {7512, 7513, 7514, 7515}, {7508, 7509, 7510, 7511}}
local gems = {2149, 2147, 2150, 2146}
local enchantedGems = {7761, 7760, 7762, 7759} 
local weapons = {
	-- {earth, fire, energy, ice}
	[2430] = {7860, 7750, 7875, 7769},
	[2423] = {7864, 7754, 7879, 7773},
	[7406] = {7857, 7747, 7872, 7766},
	[7383] = {7855, 7745, 7870, 7764},
	[7384] = {7856, 7746, 7871, 7765},
	[7415] = {7866, 7756, 7881, 7775},
	[7380] = {7862, 7752, 7877, 7771},
	[7402] = {7858, 7784, 7873, 7767},
	[2391] = {7868, 7758, 7883, 7777},
	[7389] = {7861, 7751, 7876, 7770},
	[2383] = {7854, 7744, 7869, 7763},
	[7392] = {7867, 7757, 7882, 7776},
	[2429] = {7859, 7749, 7874, 7768},
	[2445] = {7865, 7755, 7880, 7774},
	[2454] = {7863, 7753, 7878, 7772}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if itemEx.itemid == 8905 and isInArray(enchantedGems, item.itemid) then
		for k, v in pairs(array) do
			if item.itemid == k then
				doTransformItem(itemEx.uid, v)
				doRemoveItem(item.uid, 1)
				doSendMagicEffect(fromPosition, config.effect)
				return TRUE
			end
		end
	elseif isInArray(gems, item.itemid) == TRUE then
		for i=1, #gems do
			if isInArray(altars[i], itemEx.itemid) == TRUE and item.itemid == gems[i] then
				if getPlayerMana(cid) >= config.mana then
					if getPlayerSoul(cid) >= config.soul then 
						doRemoveItem(item.uid, 1)
						doPlayerAddItem(cid, enchantedGems[i], 1)
						doPlayerAddSoul(cid,-config.soul)
						doPlayerAddMana(cid,-config.mana)
					else
						doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, config.messNotEnoughSoul)
						doSendMagicEffect(fromPosition, 2)
						return FALSE
					end
				else
					doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, config.messNotEnoughMana)
					doSendMagicEffect(fromPosition, 2)
					return FALSE
				end
				doSendMagicEffect(toPosition, config.effect)
				return TRUE
			end
		end
	else
		for k, v in pairs(weapons) do
			if itemEx.itemid == k then
				for i=1, #enchantedGems do
					if item.itemid == enchantedGems[i] then
						doTransformItem(itemEx.uid, v[i], 1000)
						doRemoveItem(item.uid, 1)
						doSendMagicEffect(fromPosition, config.effect)
						return TRUE
					end
				end
			end
		end
	end
	return TRUE
end
 
Back
Top