• 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] =...
@Mateus Robeerto Why your commit doesn't get the Solution on the forum? 🤔
His reply solved your issue but not OP's issue (who's using 0.x). It's not a solution as long as it has not solved OP's issue.
That is why we recommend everyone create their own thread.
 
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] = {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.
 
Last edited:
Solution
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)


    roupa = getCreatureOutfit(cid)

    se getPlayerStorageValue(cid,sto_outfit_looktype) < 1 então
        coluna=1
        para mar,cos em pares(montagens) faça
            setPlayerStorageValue(cid, cos[coluna] + 10000,1)
        fim
        setPlayerStorageValue(cid, sto_outfit_looktype, 128)
    fim

    se monta[outfit.lookType] ~= nulo então
        setPlayerStorageValue(cid, sto_outfit_looktype, outfit.lookType)
    fim

 

--counter> menor que 1 ou maior que o valor mais alto das montagens do traje, zera o contador.
    if ((getPlayerStorageValue(cid, mounts_storage) < 1) ou (getPlayerStorageValue(cid, mounts_storage) >= #mounts[getPlayerStorageValue(cid,sto_outfit_looktype)] )) então
      setPlayerStorageValue(cid,montagens_storage,0)
    fim
    setPlayerStorageValue(cid,montagens_storage, getPlayerStorageValue(cid,montagens_storage) + 1)
 
    while ((getPlayerStorageValue(cid,mounts[getPlayerStorageValue(cid,sto_outfit_looktype)][getPlayerStorageValue(cid, mounts_storage)] + 10000)) < 1) faça
             if ((getPlayerStorageValue(cid, mounts_storage) < 1) ou (getPlayerStorageValue(cid, mounts_storage) >= #mounts[getPlayerStorageValue(cid,sto_outfit_looktype)] )) então
                setPlayerStorageValue(cid,montagens_storage,0)
             fim
        setPlayerStorageValue(cid,montagens_storage, getPlayerStorageValue(cid,montagens_storage) + 1)
    fim
  
  

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

        retornar verdadeiro
fim
[/CÓDIGO]

[B]-- nota: --PARA ADICIONAR ARMAZENAMENTOS, SELECIONE A NOVA COLUNA DE MONTAGEM E ESTÁ PRONTO! JOGUE EM AÇÃO OU ALGO ASSIM.[/B]
 
[B]      --mount = 1 --(É o valor igual correspondente à montagem na coluna da tabela "montagens" em: data/lib/lib_mounts.lua)

       -- para mar,cos em pares(montagens) faça
        --setPlayerStorageValue(cid, cos[montagem] + 10000,1)
        --fim


--<talkaction palavras="/mount;!mount" event="script" value="talkaction_mounts.lua"/>
--<action itemid="2160;2148;2157" event="script" value="action_mounts.lua"/>
Se você não possui sprites das montarias, baixe-os aqui e adicione-os aos seus!
[URL unfurl="true"]https://www.mediafire.com/file/l7mkxe4zmb2nlzv/Starlix+8.60.zip/file[/URL]
[URL unfurl="true"]https://www.mediafire.com/file/ao7mbah1odhm4mk/Otclient-Starlix.zip/file[/URL][/B]
[automerge]1708521816[/automerge]
Veja o GIF, ele foi testado e funciona no TFS 0.4.
[MEDIA=imgur]fYYLJe7[/MEDIA]
[/QUOTE]
Óbrigado, te amo <3
 
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.
I tested it here and it worked, Thanks
 
I'm using nekiro 1.5/7.72

The solution for this? I've exhausted my attempts lol, Otcv8 crach and OtClient stays like this!


1726390549193.webp

1726391781484.webp

ERROR: ProtocolGame parse message exception (2350 bytes, 3 unread, last opcode is 0x80 (128), prev opcode is 0xc8 (200)): unhandled opcode 128
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 772)
 
Last edited:
I'm using nekiro 1.5/7.72

The solution for this? I've exhausted my attempts lol, Otcv8 crach and OtClient stays like this!


View attachment 87097

View attachment 87098

ERROR: ProtocolGame parse message exception (2350 bytes, 3 unread, last opcode is 0x80 (128), prev opcode is 0xc8 (200)): unhandled opcode 128
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 772)

Did u enable the mount feature in OTC?
And does that happen with all outfits?
 
Did u enable the mount feature in OTC?
And does that happen with all outfits?
Yes!!

LUA:
    if version >= 770 then
            g_game.enableFeature(GamePlayerMarket)
            g_game.enableFeature(GameFormatCreatureName)
            g_game.enableFeature(GameBot)
            g_game.enableFeature(GameClientPing)
            g_game.enableFeature(GameLooktypeU16)
            g_game.enableFeature(GameMessageStatements)
            g_game.enableFeature(GameLoginPacketEncryption)
            g_game.enableFeature(GameWritableDate)
            g_game.enableFeature(GamePlayerAddons)
            g_game.enableFeature(GamePlayerMounts)
            g_game.enableFeature(GameNewOutfitProtocol)
            g_game.enableFeature(GameExtendedOpcode)
            g_game.enableFeature(GamePlayerMarket)
           
        end

the base is clean, I just added the mount and I'm using otclirnt meah.. version 1.5/7.72
 
I'm using nekiro 1.5/7.72

The solution for this? I've exhausted my attempts lol, Otcv8 crach and OtClient stays like this!


View attachment 87097

View attachment 87098

ERROR: ProtocolGame parse message exception (2350 bytes, 3 unread, last opcode is 0x80 (128), prev opcode is 0xc8 (200)): unhandled opcode 128
Packet has been saved to packet.log, you can use it to find what was wrong. (Protocol: 772)
Did you check your sprites? This outfit has a mount. For example, look at this image. If it doesn't, you need to replace all the sprites so it works like in this image, with the 'mount' option. If there's no option, of course, it won't work. xD1726400308104.webp
 
Você forneceu seus sprites? Esta roupa tem uma montaria. Por exemplo, olhe para esta imagem. Se não tiver, você precisa substituir todos os sprites para que funcionem como nesta imagem, com a opção 'montaria'. Se não houver opção, é claro que não funcionará. xDView attachment 87101
hahahaha indeed! I just found out about it! Thanks for the help fellow countryman..
Failing miserably! :(
1726410885176.webp
1726410935910.webp
Post automatically merged:

hahahaha indeed! I just found out about it! Thanks for the help fellow countryman..
Failing miserably! :(
1726410885176.webp
1726410935910.webp

Oops I removed the sprite and added it again and it worked hahahah! Thanks

1726411257913.webp
 
Last edited:
I just added the commits related to the mount system for TFS 1.5 8.6. If you are interested in implementing this system, feel free to add the necessary codes. Good luck!
@2057623

You can activate it through the OTClient to be able to mount the mount, yes. If it's the Cip client, you need to have a DLL to hook the client and be able to have mounts. The one who has the DLL for mounts is @kor , just contact him privately!


So much thanks, it works perfectly. Did the outfit window using deepseek.
1756793538801.webp1756793495496.webp
 
I just added the commits related to the mount system for TFS 1.5 8.6. If you are interested in implementing this system, feel free to add the necessary codes. Good luck!
@2057623

You can activate it through the OTClient to be able to mount the mount, yes. If it's the Cip client, you need to have a DLL to hook the client and be able to have mounts. The one who has the DLL for mounts is @kor , just contact him privately!


Hey guys, good evening!
Does anyone know how to add mounts to the Nekiro Downgrade 8.60?I’ve already applied all the commits:
ADD MONTS TFS 1.5 NEKIRO · Mateuzkl/TFS-1.5-Downgrades-8.60@a98ba04 (https://github.com/Mateuzkl/TFS-1.5-Downgrades-8.60/commit/a98ba04db958d281d1a2ce82fa0a93f1df956882)

I compiled the source successfully with no errors.
The problem happens when I add this line to my OTCV8:

g_game.enableFeature(GamePlayerMounts);

The client opens fine, I can see the account window, but as soon as I try to log in — the client crashes.If anyone could give me a hint or some guidance, I’d really appreciate it! Cheers!
 
Last edited:
Hey guys, good evening!
Does anyone know how to add mounts to the Nekiro Downgrade 8.60?I’ve already applied all the commits:
ADD MONTS TFS 1.5 NEKIRO · Mateuzkl/TFS-1.5-Downgrades-8.60@a98ba04 (https://github.com/Mateuzkl/TFS-1.5-Downgrades-8.60/commit/a98ba04db958d281d1a2ce82fa0a93f1df956882)

I compiled the source successfully with no errors.
The problem happens when I add this line to my OTCV8:

g_game.enableFeature(GamePlayerMounts);

The client opens fine, I can see the account window, but as soon as I try to log in — the client crashes.If anyone could give me a hint or some guidance, I’d really appreciate it! Cheers!
Hey, good morning!
I saw your message yesterday but didn’t have time to reply.

So, you’ve added everything server-side and compiled successfully with no errors, right? That’s good.

Could you please show me the otclientv8.txt log file that’s generated when you open the client?
Here’s what I suggest:

1 Delete the current otclientv8.txt file.
2 Open the client again, try to log in, and let it crash.
3 After that, open the new otclientv8.txt file — it should show detailed information about what caused the crash (like byte mismatches or other errors).

Also, I recommend clearing your OTC cache before testing again:
Go to your AppData folder → find otclientv8 → delete it completely → then reopen the client.

If it still crashes, please share the contents of the new otclientv8.txt here — that log will help us find the exact cause (like invalid bytes being sent to the client, or something missing in the protocol).
 
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.
Hello Otlanders .
I tested and works on OTX 2.16 based on 0.3.7.
Best Regards
 
Hey guys, good evening!
Does anyone know how to add mounts to the Nekiro Downgrade 8.60?I’ve already applied all the commits:
ADD MONTS TFS 1.5 NEKIRO · Mateuzkl/TFS-1.5-Downgrades-8.60@a98ba04 (https://github.com/Mateuzkl/TFS-1.5-Downgrades-8.60/commit/a98ba04db958d281d1a2ce82fa0a93f1df956882)

I compiled the source successfully with no errors.
The problem happens when I add this line to my OTCV8:

g_game.enableFeature(GamePlayerMounts);

The client opens fine, I can see the account window, but as soon as I try to log in — the client crashes.If anyone could give me a hint or some guidance, I’d really appreciate it! Cheers!
SOLVED! Thank you very much Mateus Robeerto! By the way, I made all commits at the src using VisualStudio, but the program thit not saved de commits, so Mateus Robeerto told me to review all commits using VSCode and BAM, all right!

rep++ Mateus Robeerto.
 
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.
Hello again, How are You okay ?
It real possible to add more mount?

__________________________________________________________________________________
EDIT: How to set up mount speed? I don't see option
 
Last edited:
Back
Top