• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

help mount systems 8.60

2057623

Member
Joined
Jan 16, 2012
Messages
135
Reaction score
15
I saw a lot of videos showing some mount systems for server 8.60 where you use the item on the mount and then it is captured, after clicking on it you can use the mount and such, I would like to know if it is available somewhere for free.
 
Solution
Consegue enviar com o comando !Mount preciso para TFS 0.4 obrigado pela ajuda
Of course, I'll send the command for mount!

go to the lib and add this here.

lib_mounts
LUA:
act_mounts = 46520
mounts_storage = 25685
mounts_exhaust = 24685
sto_outfit_lookType = 23685
mounts_time = 1

mounts ={

--CITIZEN
--[OUTFIT BASE] = {OUTFIT BASE, COLUMN 2, COLUMN 3, COLUMN 4, COLUMN 5, COLUMN X}
--EACH COLUMN IS A DIFFERENT MOUNT.

[128] = {128,368,416,464,512,560,608,656,704,752,800,848}, --citizen male
[136] = {136,369,417,465,513,561,609,657,705,753,801,849}, --citizen female

[129] = {129,370,418,466,514,562,610,658,706,754,802,850}, --hunter male
[137] = {137,371,419,467,515,563,611,659,707,755,803,851}, --hunter female

[130] =...
LUA:
Of course, I'll send the command for mount!



go to the lib and add this here.



lib_mounts

[CODE=lua]act_mounts = 46520

mounts_storage = 25685

mounts_exhaust = 24685

sto_outfit_lookType = 23685

mounts_time = 1



mounts ={



--CITIZEN

--[OUTFIT BASE] = {OUTFIT BASE, COLUMN 2, COLUMN 3, COLUMN 4, COLUMN 5, COLUMN X}

--EACH COLUMN IS A DIFFERENT MOUNT.



[128] = {128,368,416,464,512,560,608,656,704,752,800,848}, --citizen male

[136] = {136,369,417,465,513,561,609,657,705,753,801,849}, --citizen female



[129] = {129,370,418,466,514,562,610,658,706,754,802,850}, --hunter male

[137] = {137,371,419,467,515,563,611,659,707,755,803,851}, --hunter female



[130] = {130,372,420,468,516,564,612,660,708,756,804,852}, --mage male

[138] = {138,373,421,469,517,565,613,661,709,757,805,853}, --mage female



[131] = {131,374,422,470,518,566,614,662,710,758,806,854}, --knight male

[139] = {139,375,423,471,519,567,615,663,711,759,807,855}, --knight female



[132] = {132,376,424,472,520,568,616,664,712,760,808,856}, --nobleman male

[140] = {140,377,425,473,521,569,617,665,713,761,809,857}, --nobleman female



[133] = {133,378,426,474,522,570,618,666,714,762,810,858}, --summoner male

[141] = {141,379,427,475,523,571,619,667,715,763,811,859}, --summoner female



[134] = {134,380,428,476,524,572,620,668,716,764,812,860}, --warrior male

[142] = {142,381,429,477,525,573,621,669,717,765,813,861}, --warrior female



[143] = {143,382,430,478,526,574,622,670,718,766,814,862}, --barbarian male

[147] = {147,383,431,479,527,575,623,671,719,767,815,863}, --barbarian female



[144] = {144,384,432,480,528,576,624,672,720,768,816,864}, --druid male

[148] = {148,385,433,481,529,577,625,673,721,769,817,865}, --druid female



[145] = {145,386,434,482,530,578,626,674,722,770,818,866}, --wizard male

[149] = {149,387,435,483,531,579,627,675,723,771,819,867}, --wizard female



[146] = {146,388,436,484,532,580,628,676,724,772,820,868}, --oriental male

[150] = {150,389,437,485,533,581,629,677,725,773,821,869}, --oriental female



[151] = {151,390,438,486,534,582,630,678,726,774,822,870}, --pirate male

[155] = {155,391,439,487,535,583,631,679,727,775,823,871}, --pirate female



[152] = {152,392,440,488,536,584,632,680,728,776,824,872}, --assassin male

[156] = {156,393,441,489,537,585,633,681,729,777,825,873}, --assassin female



[153] = {153,394,442,490,538,586,634,682,730,778,826,874}, --beggar male

[157] = {157,395,443,491,539,587,635,683,731,779,827,875}, --beggar female



[154] = {154,396,444,492,540,588,636,684,732,780,828,876}, --shaman male

[158] = {158,397,445,493,541,589,637,685,733,781,829,877}, --shaman female



[251] = {251,398,446,494,542,590,638,686,734,782,830,878}, --norseman male

[252] = {252,399,447,495,543,591,639,687,735,783,831,879}, --norseman female



[268] = {268,400,448,496,544,592,640,688,736,784,832,880}, --nightmare male

[269] = {269,401,449,497,545,593,641,689,737,785,833,881}, --nightmare female



[273] = {273,402,450,498,546,594,642,690,738,786,834,882}, --jester male

[270] = {270,403,451,499,547,595,643,691,739,787,835,883}, --jester female



[278] = {278,404,452,500,548,596,644,692,740,788,836,884}, --brotherhood male

[279] = {279,405,453,501,549,597,645,693,741,789,837,885}, --brotherhood female



[289] = {289,406,454,502,550,598,646,694,742,790,838,886}, --demonhunter male

[288] = {288,407,455,503,551,599,647,695,743,791,839,887}, --demonhunter female



[325] = {325,408,456,504,552,600,648,696,744,792,840,888}, --yalaharian male

[324] = {324,409,457,505,553,601,649,697,745,793,841,889}, --yalaharian female



[335] = {335,410,458,506,554,602,650,698,746,794,842,890}, --warmaster male

[336] = {336,411,459,507,555,603,651,699,747,795,843,891}, --warmaster female



[367] = {367,412,460,508,556,604,652,700,748,796,844,892}, --wayfarer male

[366] = {366,413,461,509,557,605,653,701,749,797,845,893}, --wayfares female



[896] = {896,415,463,511,559,606,654,702,750,798,846,894}, --golden female

[897] = {897,414,462,510,558,607,655,703,751,799,847,895}, --golden male



}





mount_name = {

--CHANGE THE NAME OF THE MOUNT FOR YOURS (WITH THEIR RESPECTIVE COLUMN)



[2] = "Desert King", --COLUMN 2

[3] = "Snow Strider", --COLUMN 3

[4] = "Uniwheel", --COLUMN 4

[5] = "Dusk Pryer", --COLUMN 5

[6] = "Crystal Wolf", --COLUMN 6

[7] = "fleeting knowledge", --COLUMN 7

[8] = "floating kashmir", --COLUMN 8

[9] = "hellgrip", --COLUMN 9

[10] = "jade lion", --COLUMN 10

[11] = "nightdweller", --COLUMN 11

[12] = "Stone rhino", --COLUMN 12



}



actions.xml

XML:
<!-- Mount-->

    <action itemid="12774-12779;7528-7533" script="action_mounts.lua"/>



action_mounts.lua



LUA:
function onUse(cid, item, fromPosition, itemEx, toPosition)





if item.itemid ==  7533 then



            local storage_golden = 77531    --storage golden outfit

            if getPlayerStorageValue(cid, storage_golden) < 1 then

                    doPlayerAddOutfitId(cid, 25 ,3)

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a golden outfit!.")

                    doPlayerSetStorageValue(cid, storage_golden, 1)

                    doRemoveItem(item.uid,1)

                else

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this outfit.")

            end

            return true

 

elseif item.itemid == 12774 then



            local montaria = 2    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)

            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then

                    for mar,cos in pairs(mounts) do

                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)

                    end

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")

                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)

                    doRemoveItem(item.uid,1)

                else

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")

            end

            return true

 

 

elseif item.itemid == 12775 then

 

            local montaria = 3    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)

            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then

                    for mar,cos in pairs(mounts) do

                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)

                    end

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")

                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)

                    doRemoveItem(item.uid,1)

                else

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")

            end

            return true





elseif item.itemid == 12776 then

 

            local montaria = 4    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)

            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then

                    for mar,cos in pairs(mounts) do

                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)

                    end

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")

                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)

                    doRemoveItem(item.uid,1)

                else

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")

            end

            return true





elseif item.itemid == 12777 then

 

            local montaria = 5    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)

            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then

                    for mar,cos in pairs(mounts) do

                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)

                    end

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")

                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)

                    doRemoveItem(item.uid,1)

                else

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")

            end

            return true





elseif item.itemid == 12778 then

 

            local montaria = 6    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)

            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then

                    for mar,cos in pairs(mounts) do

                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)

                    end

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")

                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)

                    doRemoveItem(item.uid,1)

                else

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")

            end

            return true



elseif item.itemid == 12779 then

 

            local montaria = 7    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)

            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then

                    for mar,cos in pairs(mounts) do

                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)

                    end

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")

                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)

                    doRemoveItem(item.uid,1)

                else

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")

            end

            return true



elseif item.itemid == 7528 then

 

            local montaria = 8    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)

            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then

                    for mar,cos in pairs(mounts) do

                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)

                    end

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")

                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)

                    doRemoveItem(item.uid,1)

                else

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")

            end

            return true

 

elseif item.itemid == 7529 then

 

            local montaria = 9    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)

            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then

                    for mar,cos in pairs(mounts) do

                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)

                    end

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")

                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)

                    doRemoveItem(item.uid,1)

                else

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")

            end

            return true



elseif item.itemid == 7530 then

 

            local montaria = 10    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)

            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then

                    for mar,cos in pairs(mounts) do

                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)

                    end

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")

                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)

                    doRemoveItem(item.uid,1)

                else

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")

            end

            return true



elseif item.itemid == 7531 then

 

            local montaria = 11    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)

            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then

                    for mar,cos in pairs(mounts) do

                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)

                    end

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")

                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)

                    doRemoveItem(item.uid,1)

                else

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")

            end

            return true



elseif item.itemid == 7532 then

 

            local montaria = 12    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)

            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then

                    for mar,cos in pairs(mounts) do

                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)

                    end

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")

                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)

                    doRemoveItem(item.uid,1)

                else

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")

            end

            return true

        end



return true

end



talkactions

XML:
<!-- Mounts -->



    <talkaction  log="yes" words="/mount;!mount" event="script" value="talkaction_mounts.lua"/>

talkaction_mounts.lua

LUA:
function onSay(cid, words, param, channel)



-- IF YOU WANT TO PUT EXHAUST, UNCOMMENT THE TWO LINES BELOW:

--if getPlayerStorageValue(cid,mounts_exhaust) >= os.time() then return doPlayerSendCancel(cid,"Use this command every "..mounts_time.." sec.. ") end

--setPlayerStorageValue(cid,mounts_exhaust,os.time()+mounts_time)





    outfit = getCreatureOutfit(cid)



    if getPlayerStorageValue(cid,sto_outfit_looktype) < 1 then

        coluna=1

        for mar,cos in pairs(mounts) do

            setPlayerStorageValue(cid, cos[coluna] + 10000,1)

        end

        setPlayerStorageValue(cid, sto_outfit_looktype, 128)

    end



    if mounts[outfit.lookType] ~= nil then

        setPlayerStorageValue(cid, sto_outfit_looktype, outfit.lookType)

    end



 



--counter> less than 1 or greater than the highest value of the outfit mounts, resets the counter.

    if  ((getPlayerStorageValue(cid, mounts_storage) < 1) or (getPlayerStorageValue(cid, mounts_storage) >= #mounts[getPlayerStorageValue(cid,sto_outfit_looktype)] )) then

      setPlayerStorageValue(cid,mounts_storage,0)

    end

    setPlayerStorageValue(cid,mounts_storage, getPlayerStorageValue(cid, mounts_storage) + 1)

 

    while ((getPlayerStorageValue(cid,mounts[getPlayerStorageValue(cid,sto_outfit_looktype)][getPlayerStorageValue(cid, mounts_storage)] + 10000)) < 1) do

             if  ((getPlayerStorageValue(cid, mounts_storage) < 1) or (getPlayerStorageValue(cid, mounts_storage) >= #mounts[getPlayerStorageValue(cid,sto_outfit_looktype)] )) then

                setPlayerStorageValue(cid,mounts_storage,0)

             end

        setPlayerStorageValue(cid,mounts_storage, getPlayerStorageValue(cid, mounts_storage) + 1)

    end

 

 



    outfit.lookType = mounts[getPlayerStorageValue(cid,sto_outfit_looktype)][getPlayerStorageValue(cid, mounts_storage)]

    doCreatureChangeOutfit(cid, outfit)

    doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_RED)



        return true

end



-- note: --TO ADD STORAGES, SELECT THE NEW MOUNT COLUMN AND YOU'RE READY! PLAY IN ACTION OR SOMETHING LIKE THAT.



-- mount = 1 --(It is the equal value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)



-- for mar,cos in pairs(mounts) do

-- setPlayerStorageValue(cid, cos[mount] + 10000.1)

--end





--<talkaction words="/mount;!mount" event="script" value="talkaction_mounts.lua"/>

--<action itemid="2160;2148;2157" event="script" value="action_mounts.lua"/>

If you don't have sprites of the mounts, download them here and add them to yours!



Post automatically merged:


See the GIF, it has been tested and works on TFS 0.4.

[/CODE]

Refresh @up. How to change speed of Mount? is it even possible
 
Of course, I'll send the command for mount!

go to the lib and add this here.

lib_mounts
LUA:
act_mounts = 46520
mounts_storage = 25685
mounts_exhaust = 24685
sto_outfit_lookType = 23685
mounts_time = 1

mounts ={

--CITIZEN
--[OUTFIT BASE] = {OUTFIT BASE, COLUMN 2, COLUMN 3, COLUMN 4, COLUMN 5, COLUMN X}
--EACH COLUMN IS A DIFFERENT MOUNT.

[128] = {128,368,416,464,512,560,608,656,704,752,800,848}, --citizen male
[136] = {136,369,417,465,513,561,609,657,705,753,801,849}, --citizen female

[129] = {129,370,418,466,514,562,610,658,706,754,802,850}, --hunter male
[137] = {137,371,419,467,515,563,611,659,707,755,803,851}, --hunter female

[130] = {130,372,420,468,516,564,612,660,708,756,804,852}, --mage male
[138] = {138,373,421,469,517,565,613,661,709,757,805,853}, --mage female

[131] = {131,374,422,470,518,566,614,662,710,758,806,854}, --knight male
[139] = {139,375,423,471,519,567,615,663,711,759,807,855}, --knight female

[132] = {132,376,424,472,520,568,616,664,712,760,808,856}, --nobleman male
[140] = {140,377,425,473,521,569,617,665,713,761,809,857}, --nobleman female

[133] = {133,378,426,474,522,570,618,666,714,762,810,858}, --summoner male
[141] = {141,379,427,475,523,571,619,667,715,763,811,859}, --summoner female

[134] = {134,380,428,476,524,572,620,668,716,764,812,860}, --warrior male
[142] = {142,381,429,477,525,573,621,669,717,765,813,861}, --warrior female

[143] = {143,382,430,478,526,574,622,670,718,766,814,862}, --barbarian male
[147] = {147,383,431,479,527,575,623,671,719,767,815,863}, --barbarian female

[144] = {144,384,432,480,528,576,624,672,720,768,816,864}, --druid male
[148] = {148,385,433,481,529,577,625,673,721,769,817,865}, --druid female

[145] = {145,386,434,482,530,578,626,674,722,770,818,866}, --wizard male
[149] = {149,387,435,483,531,579,627,675,723,771,819,867}, --wizard female

[146] = {146,388,436,484,532,580,628,676,724,772,820,868}, --oriental male
[150] = {150,389,437,485,533,581,629,677,725,773,821,869}, --oriental female

[151] = {151,390,438,486,534,582,630,678,726,774,822,870}, --pirate male
[155] = {155,391,439,487,535,583,631,679,727,775,823,871}, --pirate female

[152] = {152,392,440,488,536,584,632,680,728,776,824,872}, --assassin male
[156] = {156,393,441,489,537,585,633,681,729,777,825,873}, --assassin female

[153] = {153,394,442,490,538,586,634,682,730,778,826,874}, --beggar male
[157] = {157,395,443,491,539,587,635,683,731,779,827,875}, --beggar female

[154] = {154,396,444,492,540,588,636,684,732,780,828,876}, --shaman male
[158] = {158,397,445,493,541,589,637,685,733,781,829,877}, --shaman female

[251] = {251,398,446,494,542,590,638,686,734,782,830,878}, --norseman male
[252] = {252,399,447,495,543,591,639,687,735,783,831,879}, --norseman female

[268] = {268,400,448,496,544,592,640,688,736,784,832,880}, --nightmare male
[269] = {269,401,449,497,545,593,641,689,737,785,833,881}, --nightmare female

[273] = {273,402,450,498,546,594,642,690,738,786,834,882}, --jester male
[270] = {270,403,451,499,547,595,643,691,739,787,835,883}, --jester female

[278] = {278,404,452,500,548,596,644,692,740,788,836,884}, --brotherhood male
[279] = {279,405,453,501,549,597,645,693,741,789,837,885}, --brotherhood female

[289] = {289,406,454,502,550,598,646,694,742,790,838,886}, --demonhunter male
[288] = {288,407,455,503,551,599,647,695,743,791,839,887}, --demonhunter female

[325] = {325,408,456,504,552,600,648,696,744,792,840,888}, --yalaharian male
[324] = {324,409,457,505,553,601,649,697,745,793,841,889}, --yalaharian female

[335] = {335,410,458,506,554,602,650,698,746,794,842,890}, --warmaster male
[336] = {336,411,459,507,555,603,651,699,747,795,843,891}, --warmaster female

[367] = {367,412,460,508,556,604,652,700,748,796,844,892}, --wayfarer male
[366] = {366,413,461,509,557,605,653,701,749,797,845,893}, --wayfares female

[896] = {896,415,463,511,559,606,654,702,750,798,846,894}, --golden female
[897] = {897,414,462,510,558,607,655,703,751,799,847,895}, --golden male

}


mount_name = {
--CHANGE THE NAME OF THE MOUNT FOR YOURS (WITH THEIR RESPECTIVE COLUMN)

[2] = "Desert King", --COLUMN 2
[3] = "Snow Strider", --COLUMN 3
[4] = "Uniwheel", --COLUMN 4
[5] = "Dusk Pryer", --COLUMN 5
[6] = "Crystal Wolf", --COLUMN 6
[7] = "fleeting knowledge", --COLUMN 7
[8] = "floating kashmir", --COLUMN 8
[9] = "hellgrip", --COLUMN 9
[10] = "jade lion", --COLUMN 10
[11] = "nightdweller", --COLUMN 11
[12] = "Stone rhino", --COLUMN 12

}

actions.xml
XML:
<!-- Mount-->
    <action itemid="12774-12779;7528-7533" script="action_mounts.lua"/>

action_mounts.lua

LUA:
function onUse(cid, item, fromPosition, itemEx, toPosition)


if item.itemid ==  7533 then 

            local storage_golden = 77531    --storage golden outfit
            if getPlayerStorageValue(cid, storage_golden) < 1 then
                    doPlayerAddOutfitId(cid, 25 ,3)
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a golden outfit!.")
                    doPlayerSetStorageValue(cid, storage_golden, 1)
                    doRemoveItem(item.uid,1)
                else
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this outfit.")
            end
            return true
  
elseif item.itemid == 12774 then 

            local montaria = 2    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)
            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then
                    for mar,cos in pairs(mounts) do
                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)
                    end
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")
                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)
                    doRemoveItem(item.uid,1)
                else
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")
            end
            return true
 
 
elseif item.itemid == 12775 then
 
            local montaria = 3    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)
            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then
                    for mar,cos in pairs(mounts) do
                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)
                    end
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")
                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)
                    doRemoveItem(item.uid,1)
                else
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")
            end
            return true


elseif item.itemid == 12776 then
 
            local montaria = 4    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)
            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then
                    for mar,cos in pairs(mounts) do
                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)
                    end
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")
                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)
                    doRemoveItem(item.uid,1)
                else
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")
            end
            return true


elseif item.itemid == 12777 then
 
            local montaria = 5    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)
            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then
                    for mar,cos in pairs(mounts) do
                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)
                    end
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")
                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)
                    doRemoveItem(item.uid,1)
                else
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")
            end
            return true


elseif item.itemid == 12778 then
 
            local montaria = 6    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)
            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then
                    for mar,cos in pairs(mounts) do
                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)
                    end
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")
                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)
                    doRemoveItem(item.uid,1)
                else
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")
            end
            return true

elseif item.itemid == 12779 then
 
            local montaria = 7    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)
            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then
                    for mar,cos in pairs(mounts) do
                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)
                    end
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")
                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)
                    doRemoveItem(item.uid,1)
                else
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")
            end
            return true

elseif item.itemid == 7528 then
 
            local montaria = 8    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)
            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then
                    for mar,cos in pairs(mounts) do
                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)
                    end
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")
                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)
                    doRemoveItem(item.uid,1)
                else
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")
            end
            return true
 
elseif item.itemid == 7529 then
 
            local montaria = 9    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)
            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then
                    for mar,cos in pairs(mounts) do
                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)
                    end
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")
                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)
                    doRemoveItem(item.uid,1)
                else
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")
            end
            return true

elseif item.itemid == 7530 then
 
            local montaria = 10    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)
            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then
                    for mar,cos in pairs(mounts) do
                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)
                    end
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")
                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)
                    doRemoveItem(item.uid,1)
                else
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")
            end
            return true

elseif item.itemid == 7531 then
 
            local montaria = 11    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)
            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then
                    for mar,cos in pairs(mounts) do
                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)
                    end
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")
                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)
                    doRemoveItem(item.uid,1)
                else
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")
            end
            return true

elseif item.itemid == 7532 then
 
            local montaria = 12    --(It is the value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)
            if getPlayerStorageValue(cid, (act_mounts+montaria)) < 1 then
                    for mar,cos in pairs(mounts) do
                        setPlayerStorageValue(cid, cos[montaria] + 10000,1)
                    end
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a mount "..mount_name[montaria]..".")
                    doPlayerSetStorageValue(cid, (act_mounts+montaria), 1)
                    doRemoveItem(item.uid,1)
                else
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You already have this mount.")
            end
            return true
        end

return true
end

talkactions
XML:
<!-- Mounts -->

    <talkaction  log="yes" words="/mount;!mount" event="script" value="talkaction_mounts.lua"/>
talkaction_mounts.lua
LUA:
function onSay(cid, words, param, channel)

-- IF YOU WANT TO PUT EXHAUST, UNCOMMENT THE TWO LINES BELOW:
--if getPlayerStorageValue(cid,mounts_exhaust) >= os.time() then return doPlayerSendCancel(cid,"Use this command every "..mounts_time.." sec.. ") end
--setPlayerStorageValue(cid,mounts_exhaust,os.time()+mounts_time)


    outfit = getCreatureOutfit(cid)

    if getPlayerStorageValue(cid,sto_outfit_looktype) < 1 then
        coluna=1
        for mar,cos in pairs(mounts) do
            setPlayerStorageValue(cid, cos[coluna] + 10000,1)
        end
        setPlayerStorageValue(cid, sto_outfit_looktype, 128)
    end

    if mounts[outfit.lookType] ~= nil then
        setPlayerStorageValue(cid, sto_outfit_looktype, outfit.lookType)
    end

 

--counter> less than 1 or greater than the highest value of the outfit mounts, resets the counter.
    if  ((getPlayerStorageValue(cid, mounts_storage) < 1) or (getPlayerStorageValue(cid, mounts_storage) >= #mounts[getPlayerStorageValue(cid,sto_outfit_looktype)] )) then
      setPlayerStorageValue(cid,mounts_storage,0)
    end
    setPlayerStorageValue(cid,mounts_storage, getPlayerStorageValue(cid, mounts_storage) + 1)
 
    while ((getPlayerStorageValue(cid,mounts[getPlayerStorageValue(cid,sto_outfit_looktype)][getPlayerStorageValue(cid, mounts_storage)] + 10000)) < 1) do
             if  ((getPlayerStorageValue(cid, mounts_storage) < 1) or (getPlayerStorageValue(cid, mounts_storage) >= #mounts[getPlayerStorageValue(cid,sto_outfit_looktype)] )) then
                setPlayerStorageValue(cid,mounts_storage,0)
             end
        setPlayerStorageValue(cid,mounts_storage, getPlayerStorageValue(cid, mounts_storage) + 1)
    end
  
  

    outfit.lookType = mounts[getPlayerStorageValue(cid,sto_outfit_looktype)][getPlayerStorageValue(cid, mounts_storage)]
    doCreatureChangeOutfit(cid, outfit)
    doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_RED)

        return true
end

-- note: --TO ADD STORAGES, SELECT THE NEW MOUNT COLUMN AND YOU'RE READY! PLAY IN ACTION OR SOMETHING LIKE THAT.

-- mount = 1 --(It is the equal value corresponding to the mount in the "mounts" table column in: data/lib/lib_mounts.lua)

-- for mar,cos in pairs(mounts) do
-- setPlayerStorageValue(cid, cos[mount] + 10000.1)
--end


--<talkaction words="/mount;!mount" event="script" value="talkaction_mounts.lua"/>
--<action itemid="2160;2148;2157" event="script" value="action_mounts.lua"/>
If you don't have sprites of the mounts, download them here and add them to yours!
Post automatically merged:

See the GIF, it has been tested and works on TFS 0.4.
Here simple talkaction to check owned Mounts.

LUA:
<talkaction words="!mounts" script="mounts.lua"/>
Code:
function onSay(cid, words, param)
    local ownedMounts = {}
    local ownedCount = 0
    local totalMounts = 0
    local checked = {}

    -- policz ile mountów istnieje (unikalne kolumny)
    for mountColumn, mountName in pairs(mount_name) do
        totalMounts = totalMounts + 1

        -- sprawdzamy storage tylko raz na mount
        for outfitId, mountTable in pairs(mounts) do
            local mountID = mountTable[mountColumn]
            if mountID then
                if not checked[mountColumn] then
                    checked[mountColumn] = true
                    if getPlayerStorageValue(cid, mountID + 10000) == 1 then
                        ownedCount = ownedCount + 1
                        table.insert(ownedMounts, mountName)
                    end
                end
                break
            end
        end
    end

    -- !mounts count
    if param == "count" then
        doPlayerSendTextMessage(
            cid,
            MESSAGE_INFO_DESCR,
            "You own " .. ownedCount .. " / " .. totalMounts .. " mounts."
        )
        return true
    end

    -- !mounts (lista)
    if ownedCount == 0 then
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You do not own any mounts.")
        return true
    end

    local text = "Your mounts (" .. ownedCount .. "/" .. totalMounts .. "):\n- "
        .. table.concat(ownedMounts, "\n- ")

    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, text)
    return true
end

!mounts count --->You own 3 / 12 mounts.
!mounts --->Your mounts (3/12):
- Uniwheel
- Jade Lion
- Nightdweller
 
Back
Top