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.
Of course, I'll send the command for mount!Consegue enviar com o comando !Mount preciso para TFS 0.4 obrigado pela ajuda
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] =...
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!@Mateus Robeerto be nice and just give us a commit hahahaha
Of course, I'll send the command for mount!Consegue enviar com o comando !Mount preciso para TFS 0.4 obrigado pela ajuda
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
}
<!-- Mount-->
<action itemid="12774-12779;7528-7533" script="action_mounts.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
<!-- Mounts -->
<talkaction log="yes" words="/mount;!mount" event="script" value="talkaction_mounts.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
More like my server it is 8.60 TFS 0.4x, I believe there is no way to update it, but if I update the sorc to a more recent one or change it, however if I change the old codes it will not work anymore, I will have to review them all the codes.It does exist for 8.6, but you need to download a base from Nekiro TFS 1.5 8.6 and grab some mount codes from TFS 1.5 7.7. Add them to TFS 1.5 8.6, compile, and then add them to the otclient feature to activate. Simple as that.
And I know it's more up to date, but I don't know if this tfs Nekiro 1.5 will run the code functions, the bad thing is I install the new tfs and need to change all the codes it contains before the change, but I'll try here and see what happens.Can I give you a tip? So, use Nekiro 1.5 instead of TFS 0.4, as the recent 1.x version is more updated and complete. It's much better, and you'll always find the scripts you need out there. Hope this helps!
that's not truee. did you even try it? ofc there might exist some errors but they are easy to change .And I know it's more up to date, but I don't know if this tfs Nekiro 1.5 will run the code functions, the bad thing is I install the new tfs and need to change all the codes it contains before the change, but I'll try here and see what happens.
I tried here, there were a lot of Database errors, the accounts didn't even enter, so I didn't understand why they didn't enter and there was an error in the database query, although it was working normally and I used a DB that was at 0.4xthat's not truee. did you even try it? ofc there might exist some errors but they are easy to change .
I just added the commits related to the mounting 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!
ADD MONTS TFS 1.5 NEKIRO · Mateuzkl/TFS-1.5-Downgrades-8.60@a98ba04
add system mount. Contribute to Mateuzkl/TFS-1.5-Downgrades-8.60 development by creating an account on GitHub.github.com
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!
ADD MONTS TFS 1.5 NEKIRO · Mateuzkl/TFS-1.5-Downgrades-8.60@a98ba04
add system mount. Contribute to Mateuzkl/TFS-1.5-Downgrades-8.60 development by creating an account on GitHub.github.com
Look, I didn't understand very well, this link you gave me and for me to change the source of my server right, if so, I looked for several things and it's not in my source. Now if you suggest that I get the nekiro 1.5x sources, I've already done that too and it gave a lot of errors. Sorry I don't understand what you meant and because I use Google Translate and sometimes the words aren't good, I translate it into BR.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!
ADD MONTS TFS 1.5 NEKIRO · Mateuzkl/TFS-1.5-Downgrades-8.60@a98ba04
add system mount. Contribute to Mateuzkl/TFS-1.5-Downgrades-8.60 development by creating an account on GitHub.github.com
Look, I didn't understand very well, this link you gave me and for me to change the source of my server right, if so, I looked for several things and it's not in my source. Now if you suggest that I get the nekiro 1.5x sources, I've already done that too and it gave a lot of errors. Sorry I don't understand what you meant and because I use Google Translate and sometimes the words aren't good, I translate it into BR.
Sometimes Google Translate is a mess. When I write something correctly, it translates it as wrong every time, haha. If you want, I can explain it correctly in Portuguese. I'm from Brazil.Look, I didn't understand very well, this link you gave me and for me to change the source of my server right, if so, I looked for several things and it's not in my source. Now if you suggest that I get the nekiro 1.5x sources, I've already done that too and it gave a lot of errors. Sorry I don't understand what you meant and because I use Google Translate and sometimes the words aren't good, I translate it into BR.
Boy, if you can save me on this one, I've tried several times and nothing, Google Translate is shit, send a message in PV.Sometimes Google Translate is a mess. When I write something correctly, it translates it as wrong every time, haha. If you want, I can explain it correctly in Portuguese. I'm from Brazil.
He just told me that he tried to take these commits from TFS 1.5 and add them to TFS 0.4, haha. I've explained to him privately that, currently, these commits are exclusive to TFS 1.5. However, I have another alternative for a workaround for mounts in TFS 0.4 as well.Make sure you open your project file (vc17/theforgottenserver.vcxproj) in Notepad (++) and add
<ClCompile Include="..\src\mounts.cpp" />
<ClInclude Include="..\src\mounts.h" />
Was the mistake I made, after that, it should compile flawlessly if you followed the whole commit.
Do note: you do not have to edit script.cpp!