Download
(7Kb)
Download
Updated: 11-05-11 05:33 PM
Pictures
File Info
Updated:11-05-11 05:33 PM
Created:unknown
Downloads:6,953
Favorites:19
MD5:
Categories:Discontinued and Outdated Mods, Discontinued and Outdated Mods

[DISCONTINUED] Random Access Mount 3 (Beta)  Popular! (More than 5000 hits)

Version: N/A
by: Vladinator [More]

Note if you by any chance (doubt it) have the old A_RandomAccessMount2 folder please delete it, thank you. Also note that old API and commands do not work as there is a new syntax.

Version 3 is released, this is based on completely new code and should run on any locale. So far the only thing you can do is:
/ram - random mount
/ram B=* - mount one of the best mounts (fastest/flying preferably), in AQ40 it would include the bug mounts, in Vashj'ir it would include the aquatic one, e.g.
/ram B=ABCDEFGHIJKLM - each letter represents a mount type:
A = other (mounts not counting as proper mounts)
B = ground
C = flying
D = aquatic
E = groundOnly
F = flyingOnly
G = canGroundOnly
H = turtle
I = abyssal seahorse
J = alchemist mount
K = aq40 bugs
L = profession mounts (tailoring and engineer, profession unique mounts)
M = dynamic mounts (can both run and fly, like headless horseman one, winged lion, e.g.)
For example; say you wish to use the macro for aquatic and ground mounts only, then you would use /ram B=0101 and it would assume all after "aquatic" as "0" (not included).
/ram S=375,300,225 - mount something that requires skill, can be one value or a list separated by comma. (Note: not fully explained or implemented yet.)
/ram N=Trav - match mount by (partial) name (LUA regex/pattern)

3.04:
+ Last archive had some files not required by the mod, but that I used to scan the DBC files for mount information, sorry if it scared you.

3.03:
+ Corrected a logic issue with the Abyssal Seahorse and the Qiraji Battle Tank (AQ40) mounts. Like they should, these will only be included if player is in the appropriate zone.

3.02:
+ Added patch 4.2 mounts and all other missing mounts. The database should now be complete!

3.01:
+ Changed version format down to two decimals, it should be plenty with 99 updates until next generation comes out, right?
+ Added more mounts that were not in the database last time.
+ Fixed zone detection to work with whole Azeroth (not only Eastern Kingdoms).
+ Added name matching (LUA regex/pattern).
+ Added InBG() and InAQ() API for your macros.
+ Added RAM() API that takes a string, either LUA regex or flag. More about this on the from page soon. Check core.lua comment if you want to read about this right away.
+ Minor bug fixes.

3.000:
+ New generation release, old change log is rendered deprecated but remain for history sake.

2.006:
+ Made it allow you to mount a flying mount in Wintergrasp if there is no battle, otherwise it still mounts a ground mount.
+ Added IsInBG() so you can use that to mount specific mounts in battlegrounds.
+ Small changes, nothing worth mentioning.

2.005:
+ Added some new code and improved tooltip reading, it should now also support Flying Carpet's just fine for all localizations. Yet again thanks to Synchretomus for all of the help. Please report errors if any, thanks.

2.004:
+ Fixed a bug for all non French clients, seems I messed up one thing when fixing the French one. All languages should now work just fine!

2.003:
+ Fixed a bug with tooltip lookup in French clients. Should work now!

2.002:
+ Fixing tooltip parsing for french locale yet again -all thanks to Synchretomus.

2.001:
+ Fixed parsing of tooltip for french locale, when checking for flying mounts

2.000:
+ Rebuild from scratch
+ Auto mount scan and organizing, no need for external database like the old one
+ Better efficiency, scanning tooltips only at login or when a new mount has been learned
+ Added more API and aliases so old macros won't break
+ Added slash command /ram to appeal more to non Lua users

1.116:
+ Added 26 new mounts, most of them are from the Argent Dawn
Tournament and 5 new flying mounts, you may find the list
of the added mounts here: http://tinyurl.com/pulp5z
If something is missing (most likely is), just drop a comment!

1.115:
+ Added function to summon a specific set of mounts only. You can
also use parts of the name if you have a variety of the mount.
+ Added new API, AllDismount() that dismounts you from Vehicle and
from Mount all at once (to save space in macros)
+ Added new API, IsFlyAndNoCTRL() that checks that it is a flyzone
and that CTRL key is not held down (personal preference API).
+ Added new API, IsInAQ() to check if you are in AQ40 or not.
+ Extrended the functionality of RMS(), it does the same as before
where you RMS("F"), RMS("G") and RMS("O") for the different types
of mounts and it would randomly pick one that you have in that
category but now you can also do RMS({"Qiraji"}) and that will
make it use a random mount that has that string in it's name.

1.114:
+ Sorted out on the spells, some "depending on your skill" spells
were in the 60% (other) section so they are now moved to the right
one, this included DK mount, Headless Horseman mount and Tailoring
Carpet mounts.

1.113:
+ Added Winged Steed of the Ebon Blade to the list, both on 280%
and 60% (F and O). I would suggest using this once you hit the
highest level. This issue will be fixed once I release the
tooltip-scanning addon I am working on when I get time. :)

1.112b:
+ Added a little more details to the IsNotInDalaranNoFlyZone() API.
It now considers the sewer part in the Underbelly where you can fly
out from and the Violet Tower top-floor where you also can mount
your flyer (along with Karasus' Landing).

1.112:
+ Added API to support detection of "Krasus' Landing" and
"Wintergrasp" zones. Instead to mount you on your flying,
they will mount you on the ground mount. Since Dalaran is
only a ground mount zone the addon will now consider that.
A extended example from the macro on the front page:

#showtooltip Azure Netherwing Drake
/dismount
/stopcasting
/cancelaura [nocombat] Ghost Wolf
/run if IsFlyableArea() and IsNotInDalaranNoFlyZone() and not IsControlKeyDown() then RMS("F") else CallCompanion("MOUNT",3) end

In this example version, the macro works just like normal:
"if fly-zone use RMS("F") if not use RMS("G") only that this
time you specify the ground mount, mount #3 in this case.
It would mount random flying anywhere else but Dalaran when
you are in the city, then it would use the specific mount #3.
If you just had /run RMS("F") as a macro, it would automatically
do RMS("G") for you if you were in Dalaran.

1.111:
+ "Krasus' Landing" (subzone in Dalaran) will use flying mount
instead of ground mount like the rest of Dalaran. But the part
of the Underbelly where you can mount flying mount too is not
going to mount the flying mount, issue is that "The Underbelly"
is in several palces so it would try to use flying mount there
too, but if you wanna have this feature anyway then simply
(1) open "A_RandomAccessMount.lua" in Notepad, (2) Go to
line #44 and uncomment it (remove "--" in front) and then
(3) go to line #45 and comment it by adding "--" in front.

1.110:
+ Fixed Ebon Gryphon and Snowy Gryphon, they now count as 60%
instead of 280% mounts.

1.109:
+ Fixed Blue Wind Rider, now 60% (moved from 280%)

1.108:
+ Big Blizzard Bear (from Blizzcon 2008) is corrected and working.
+ If you are in Dalaran you will be mounted with 100% ground mount
instead of flying mount.

1.107:
+ Turbo-Charged Flying Machine is now in the 280% instead of
the 60% category.

1.106:
+ Better method to match spell-ids with the internal database.
This should reduce the amount of bugs like mounting 60% mounts
in flyable zones, e.g.

1.105:
+ Fixed Swift Green Wind Rider and Green Wind Rider, the addon
will now call these out correctly.

1.104:
+ Added the spells for Death Knight, Warlock and Paladin mounts
(60% and 100% versions).

1.103:
+ Moved "Golden Gryphon" from 280% flying to the 60% section.

1.102:
+ Updated LUA code and using IsFlyableArea() instead of a
custom function. Wowwiki didn't have it covered so I was
compelled to make my own earlier. :P

1.100:
+ Moved "Tawny Wind Rider" from 280% flying mount section
to the 60% section.

1.000:
+ Initial release.
Post A Reply Comment Options
Unread 01-14-09, 03:35 AM  
Vlad
A Molten Giant
 
Vlad's Avatar
AddOn Author - Click to view AddOns

Forum posts: 793
File comments: 337
Uploads: 31
Re: French Locale

Thanks for the translations Synchretomus, added to the next version upload.
Report comment to moderator  
Reply With Quote
Unread 01-11-09, 09:22 AM  
Synchretomus
A Kobold Labourer

Forum posts: 0
File comments: 16
Uploads: 0
French Locale

Hi dude,

Tried your lua addon with some modifications for french localization.


Did this :

[EDIT]12/01/2009

Code:
-- Game locale
local GAME_LOCALE = GetLocale();
local LOC_DALARAN = "";
local LOC_WINTERGRASP = "";
local LOC_KRASUS = "";
local LOC_COLDFLY = "";
local LOC_VIOLET = "";
local LOC_UNDERDALARAN = "";

-- Localization
...
elseif GAME_LOCALE=="frFR" then
  LOC_DALARAN = "Dalaran";
  LOC_WINTERGRASP = "Joug-d'hiver";
  LOC_KRASUS = "Aire de Krasus";
  LOC_COLDFLY = "Vol par temps froid";
  LOC_VIOLET = "La citadelle Pourpre";
  LOC_UNDERDALARAN = "Les Entrailles";
and then :

Code:
-- Special Northrend "no-flying" zones
function IsNotInDalaranNoFlyZone()
  SetMapToCurrentZone();
  local r, m = GetRealZoneText(), GetMinimapZoneText();
  local s = IsUsableSpell(LOC_COLDFLY); -- passive spell that makes you able to use flying mounts in Northrend
  local z = LOC_DALARAN;          -- Dalaran in general does only allow ground mounts
  local k = LOC_KRASUS;    -- Dalaran sub-zone that allows flying mounts
  local v = LOC_WINTERGRASP;      -- PvP zone, only ground mounts allowed
  local t = LOC_VIOLET; -- Dalaran Tower, top floor is a fly-zone (you can fly only straight up before trying to navigate away)
  local u = LOC_UNDERDALARAN;     -- Dalaran Sewers (you can fly out the tunnel)
...
[/EDIT]

Works Perfect in Dalaran /other cities for now. Don't know if spellcheck ("Vol par temps froid") is really working, i'm gonna try this later.

Thanks for watching, and keep on good work dude !

Synchretomus @ CdT-EU
Last edited by Synchretomus : 01-11-09 at 07:14 PM.
Report comment to moderator  
Reply With Quote
Unread 12-11-08, 03:53 AM  
Geon
A Kobold Labourer

Forum posts: 0
File comments: 5
Uploads: 0
I decided that changing order number of mounts in you petbook everytime you get new one - isn't comfortable.
So, here goes function, that gets named mounts list.

First one, modify existing function:
Code:
-- Filter out unknown spells
local function iKnow(db,field)
	local known = {};
	for i = 1 , GetNumCompanions(OPT_TYPE) do
	  local srchby;
		local _, petname, spellid = GetCompanionInfo(OPT_TYPE, i)
		if field then
		  srchby = petname
		else
		  srchby = spellid
		end
		if strfind(db, ","..srchby..",") then
			tinsert(known, i)
		end
	end
	return known;
end
then add new function:
Code:
-- Global function for macros or other addons
function RMSnamed(cond_modifier,m_flying,m_ground)
	local asking;
	local known = {};
	if (IsFlyableArea() and cond_modifier) then
  	if IsNotInDalaranNoFlyZone() then
  	  asking = "flying";
  	  known = iKnow(m_flying,1)
  	else
  		if (GetMinimapZoneText()==LOC_MAGUS_COMMERCE_EXCHANGE and IsOutdoors()) then
  	      known = iKnow(DB_CARPETS)
  				if #known > 0 then
  		      asking = "flying";
  				else
  		      asking = "ground";
  	  	    known = iKnow(m_ground,1)
  				end
  		else
  	    asking = "ground";
  	    known = iKnow(m_ground,1)
  	   end
  	end
  else
  	asking = "ground";
  	known = iKnow(m_ground,1)
  end
	if #known > 0 then
		iMount(known)
	else
		RMS_Msg("You don't have any specified "..asking.." mounts.")
	end
end
Usage:
/run RMSnamed(not IsControlKeyDown(),",Red protodragon,",",Ice mammoth,Black war mammoth,Black war bear,")
Report comment to moderator  
Reply With Quote
Unread 12-11-08, 02:57 AM  
Geon
A Kobold Labourer

Forum posts: 0
File comments: 5
Uploads: 0
Reverted "The Underbelly" check, cause mine was bad.
Merged 2 previous modifications.
lua file heres:
http://files.filefront.com/A+RandomA.../fileinfo.html

Smart function supports magic carpets!
Damn complicated logic now, but i'm happy how it works
Last edited by Geon : 12-11-08 at 02:59 AM.
Report comment to moderator  
Reply With Quote
Unread 12-10-08, 11:19 PM  
Geon
A Kobold Labourer

Forum posts: 0
File comments: 5
Uploads: 0
Originally posted by Vladinator
It's all great, I should add a simple API in the addon that forces it to use any available F, G or O category mount (like RMSF("F") for example) so that people can easier make their own conditions, hehe. Just like you did!

For example a API like CM("mount name") to call that mount out, e.g. Instead of having to use loops and long API code in the macro to mount a specific mount, usually the code will become larger than 255 chars and the macro won't be usable but if I add some nifty API for people who wanna make good and short macros -I think many will be happy.

Also, I am open for people to play with the addon source -there is nothing wrong about using code and remaking it to work for yourself, I would like to see people doing that tbh!
Well, personally, i need this too. Just don't want to use some ugly mounts that i purchased for 50 mounts achievement

So, quick patch for it will be:
Code:
-- Global function for macros or other addons
function RMSsmart(cond_modifier,m_flying,m_ground)
	local asking;
	local known = {};
	if (IsFlyableArea() and cond_modifier) then
  	if IsNotInDalaranNoFlyZone() then
  	  asking = "flying";
  	  known = m_flying
  	else
 	    asking = "ground";
 	    known = m_ground
  	end
  else
  	    asking = "ground";
  	    known = m_ground
  end
	if #known > 0 then
		iMount(known)
	else
		RMS_Msg("You haven't specified any "..asking.." mounts.")
	end
end
usage:
/run RMSsmart(not IsControlKeyDown(),{26},{27,63,64})

you simply specify collection of your favourite mounts id's from Pet Transport tab.
where 1st parameter - force ground modifier, 2nd parameter - flying mount id's, 3rd parameter - ground id's.
works fine for me.

Note: when you learn new mount - id's changed
Last edited by Geon : 12-10-08 at 11:59 PM.
Report comment to moderator  
Reply With Quote
Unread 12-10-08, 10:44 PM  
Geon
A Kobold Labourer

Forum posts: 0
File comments: 5
Uploads: 0
I've done some work to bring features that i ask to life - based on 1.113 version.

- added "Cold Weather Flying" spell translation (only for ruRU and enUS/enGB)
- added "Krasus' Landing", "The Violet Citadel" and "The Underbelly" subzones translation (only for ruRU and enUS/enGB)
- added Flying Carpet support for "Magus commerce exchange" zone in Dalaran
- simplified "The Underbelly" subzone check (tested - it works).

Tested on ruRU locale, must work on enUS/enGB locales aswell.

you can get modified .lua here:
http://files.filefront.com/A+RandomA.../fileinfo.html
Report comment to moderator  
Reply With Quote
Unread 12-08-08, 03:45 PM  
Vlad
A Molten Giant
 
Vlad's Avatar
AddOn Author - Click to view AddOns

Forum posts: 793
File comments: 337
Uploads: 31
It's all great, I should add a simple API in the addon that forces it to use any available F, G or O category mount (like RMSF("F") for example) so that people can easier make their own conditions, hehe. Just like you did!

For example a API like CM("mount name") to call that mount out, e.g. Instead of having to use loops and long API code in the macro to mount a specific mount, usually the code will become larger than 255 chars and the macro won't be usable but if I add some nifty API for people who wanna make good and short macros -I think many will be happy.

Also, I am open for people to play with the addon source -there is nothing wrong about using code and remaking it to work for yourself, I would like to see people doing that tbh!

Originally posted by CyberOto
Keep up the good work.

I made a dirty patch for my DK (I have only Acherus Deathcharger and Winged Steed of the Ebon Blade) on the iMount function:

Code:
-- Mount something random
local function iMount(table)
	local _, class = UnitClass("player")

	if ( IsOutdoors() and class ~= "DEATHKNIGHT" ) then
		CallCompanion(OPT_TYPE, table[random(#table)])
	elseif IsFlyableArea() then
		CallCompanion(OPT_TYPE, 2)
	else
		CallCompanion(OPT_TYPE, 1)
	end
end
Report comment to moderator  
Reply With Quote
Unread 12-08-08, 12:21 PM  
CyberOto
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 44
Uploads: 2
Originally posted by Vladinator
Uploaded a small fix (added the mount) and it should work now. Check changelog for info I guess, hehe.

Atm pretty busy with many other stuff, sorry for slow responses!
Keep up the good work.

I made a dirty patch for my DK (I have only Acherus Deathcharger and Winged Steed of the Ebon Blade) on the iMount function:

Code:
-- Mount something random
local function iMount(table)
	local _, class = UnitClass("player")

	if ( IsOutdoors() and class ~= "DEATHKNIGHT" ) then
		CallCompanion(OPT_TYPE, table[random(#table)])
	elseif IsFlyableArea() then
		CallCompanion(OPT_TYPE, 2)
	else
		CallCompanion(OPT_TYPE, 1)
	end
end
Report comment to moderator  
Reply With Quote
Unread 12-08-08, 05:53 AM  
Vlad
A Molten Giant
 
Vlad's Avatar
AddOn Author - Click to view AddOns

Forum posts: 793
File comments: 337
Uploads: 31
Uploaded a small fix (added the mount) and it should work now. Check changelog for info I guess, hehe.

Atm pretty busy with many other stuff, sorry for slow responses!
Report comment to moderator  
Reply With Quote
Unread 12-05-08, 12:59 PM  
CyberOto
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 44
Uploads: 2
Have some odd behavior with DK flying mount (Winged Steed of the Ebon Blade - id 54729) on max riding skill (300).

Running this
Code:
/run if IsFlyableArea() then RMS("F") else RMS("G") end
in Shattrath I'm getting:

You don't have any ground mounts
The returned values from above command for companions are

48778 (Acherus Deathcharger)
54729 (Winged Steed of the Ebon Blade)

Edit:

Fixed typo
Last edited by CyberOto : 12-05-08 at 02:28 PM.
Report comment to moderator  
Reply With Quote
Unread 12-04-08, 01:35 AM  
CyberOto
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 44
Uploads: 2
You can add spellId = 54729 for Winged Steed of the Ebon Blade.

Cons - it is at first 60% mount and if you get riding skill 300 it becames 280% mount.
Report comment to moderator  
Reply With Quote
Unread 11-28-08, 11:26 PM  
Geon
A Kobold Labourer

Forum posts: 0
File comments: 5
Uploads: 0
I found that you can use Magnificent Flying Carpet in Magus Commerce Exchange zone in Dalaran.
that's pretty nice.

you can add some code like

GetMinimapZoneText()=="Magus Commerce Exchange" and IsOutdoors()
...

not tested with slow flying carpet.

localization support will be nice.
try LibBabble-Zone-3.0
Last edited by Geon : 11-28-08 at 11:34 PM.
Report comment to moderator  
Reply With Quote
Unread 11-27-08, 04:39 AM  
Vlad
A Molten Giant
 
Vlad's Avatar
AddOn Author - Click to view AddOns

Forum posts: 793
File comments: 337
Uploads: 31
Thank you Spellshaper.

And by the way, added another small fix to help the guys with Dalaran. Since the city is kinda advanced and you may use your flying mount in 3 sub-zones (Karasus' Landing, The Underbelly and the Violet Tower) I had to implement a new API you may use, it's called IsNotInDalaranNoFlyZone() (thanks to Lonny and Neotokyo for the idea). It basically returns "true" if you are in a zone in Dalaran where you can use your flying mount. In all other locations you will get "nil" from the function, meaning you may only use ground mount here.

A example:

/run if IsFlyableArea() and IsNotInDalaranNoFlyZone() then RMS("F") else RMS("G") end

Makes you mount flying mount in all fly-zones (including the special Dalaran sub-zones) and ground anywhere else where flying is not allowed.
Last edited by Vlad : 11-28-08 at 02:25 AM.
Report comment to moderator  
Reply With Quote
Unread 11-19-08, 05:41 PM  
Spellshaper
A Murloc Raider
 
Spellshaper's Avatar
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 70
Uploads: 2
Just wanted to say... I like it.
Saves me both macro space and having to choose between my mounts.
__________________
"We shaman don't command the magic we wield. As mages and warlocks strain and sweat to produce a tiny flame, I ask for the elements to lend me their strength."
Report comment to moderator  
Reply With Quote
Unread 11-17-08, 01:24 AM  
Vlad
A Molten Giant
 
Vlad's Avatar
AddOn Author - Click to view AddOns

Forum posts: 793
File comments: 337
Uploads: 31
Originally posted by Slappey
It dosn't seem to work in Krausus landing Vladinator it mounts a normal mount instead of a flying mount for some reason :s .
I think I know why and I think the next version has fixed it.

Had some hard time finding what zone it was, but figured out you meant "Krasus' Landing" :P
Last edited by Vlad : 11-17-08 at 01:30 AM.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: