• 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 Change gold

I r New

New Member
Joined
Feb 1, 2008
Messages
137
Reaction score
1
I'm trying to get crystal coins to change to gold ingots, but I keep failing. I don't understand it :/

Here's my changegold.lua:

PHP:
local coins = {
	[ITEM_GOLD_COIN] = {
		to = ITEM_PLATINUM_COIN, effect = TEXTCOLOR_YELLOW
	},
	[ITEM_PLATINUM_COIN] = {
		from = ITEM_GOLD_COIN, to = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_LIGHTBLUE
	},
	[ITEM_CRYSTAL_COIN] = {
		from = ITEM_PLATINUM_COIN, to = ITEM_GOLD_NUGGET, effect = TEXTCOLOR_TEAL
	},
		[ITEM_GOLD_INGOT] = {
		from = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_GOLD
	}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) then
		return false
	end

	local coin = coins[item.itemid]
	if(not coin) then
		return false
	end

	if(coin.to ~= nil and item.type == ITEMCOUNT_MAX) then
		doChangeTypeItem(item.uid, item.type - item.type)
		doPlayerAddItem(cid, coin.to, 1)
		doSendAnimatedText(fromPosition, "$$$", coins[coin.to].effect)
	elseif(coin.from ~= nil) then
		doChangeTypeItem(item.uid, item.type - 1)
		doPlayerAddItem(cid, coin.from, ITEMCOUNT_MAX)
		doSendAnimatedText(fromPosition, "$$$", coins[coin.from].effect)
	end
	return true
end

Yes I played around with it. I've got the actions.xml right & I added the
PHP:
ITEM_GOLD_INGOT = 9971
into the 000-constant.lua

So I just need the script working. Thankyou ^_^
 
Code:
local coins = { 
    [ITEM_GOLD_COIN] = { 
        to = ITEM_PLATINUM_COIN, effect = TEXTCOLOR_YELLOW 
    }, 
    [ITEM_PLATINUM_COIN] = { 
        from = ITEM_GOLD_COIN, to = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_LIGHTBLUE 
    }, 
    [ITEM_CRYSTAL_COIN] = { 
        from = ITEM_PLATINUM_COIN, to = ITEM_GOLD_[B]INGOT[/B], effect = TEXTCOLOR_TEAL 
    }, 
    [ITEM_GOLD_INGOT] = { 
        from = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_GOLD 
    } 
} 

function onUse(cid, item, fromPosition, itemEx, toPosition) 
    if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) then 
        return false 
    end 

    local coin = coins[item.itemid] 
    if(not coin) then 
        return false 
    end 

    if(coin.to ~= nil and item.type == ITEMCOUNT_MAX) then 
        doChangeTypeItem(item.uid, item.type - item.type) 
        doPlayerAddItem(cid, coin.to, 1) 
        doSendAnimatedText(fromPosition, "$$$", coins[coin.to].effect) 
    elseif(coin.from ~= nil) then 
        doChangeTypeItem(item.uid, item.type - 1) 
        doPlayerAddItem(cid, coin.from, ITEMCOUNT_MAX) 
        doSendAnimatedText(fromPosition, "$$$", coins[coin.from].effect) 
    end 
    return true 
end
 
actions.xml:
Code:
	<!-- Change gold -->
	<action itemid="2148" event="script" value="other/changegold.lua"/>
	<action itemid="2152" event="script" value="other/changegold.lua"/>
	<action itemid="2160" event="script" value="other/changegold.lua"/>
        <action itemid="9971" event="script" value="other/changegold.lua" />

actions/scripts/other/changegold.lua:
Lua:
local ITEM_GOLD_INGOT = 9971
local coins = {
	[ITEM_GOLD_COIN] = {
		to = ITEM_PLATINUM_COIN, effect = TEXTCOLOR_YELLOW
	},
	[ITEM_PLATINUM_COIN] = {
		from = ITEM_GOLD_COIN, to = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_LIGHTBLUE
	},
	[ITEM_CRYSTAL_COIN] = {
		from = ITEM_PLATINUM_COIN, to = ITEM_GOLD_INGOT, effect = TEXTCOLOR_TEAL
	},
	[ITEM_GOLD_INGOT] = {
		from = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_YELLOW
	}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) then
		return false
	end

	local coin = coins[item.itemid]
	if(not coin) then
		return false
	end

	if(coin.to and item.type == ITEMCOUNT_MAX) then
		doChangeTypeItem(item.uid, item.type - item.type)
		doPlayerAddItem(cid, coin.to, 1)
		doSendAnimatedText(fromPosition, "$$$", coins[coin.to].effect)
	elseif(coin.from) then
		doChangeTypeItem(item.uid, item.type - 1)
		doPlayerAddItem(cid, coin.from, ITEMCOUNT_MAX)
		doSendAnimatedText(fromPosition, "$$$", coins[coin.from].effect)
	end
	return true
end
 

Similar threads

Back
Top