Advertisement

Chocobo Mount Music: 13 songs!

  Download the Curse Client

Last Update: March 5, 2007 (1 year ago)
Category: Audio
Tags: chocobo, mount, and music
Project Manager: Anudaris
Website: visit
Current Version: Chocobo Mount Music: 13 songs! Chocobo 1.4!
(for World of Warcraft 2.0.0)
Downloads Today: 14
Downloads Total: 14,993
Favorites: 29
Comments: 38
  • About Chocobo Mount Music: 13 songs!
  •  

Please help me out by rating this highly and spreading the word!

Now works for all mount types!! (I know i said that before and it didn't, but this time I found a list of mount names =P)

This mod is half about having some chill music to ride to, and half about the collection of songs. Any final fantasy fan should hear all this music!

Please send all questions and comments to chocobomod@gmail.com!

INSTRUCTIONS:

-- /choco off/on: turn the mod off or on

-- /choco songs: gives you the list of songs.

-- /choco random: to make the songs randomized

-- /choco [unique part of song title] or /choco [song num]: play a certain song!

-- /choco next and prev should be self explanatory!

Before or after you start it up, you can add songs to a playlist and it'll go through those in that order. If you make it after you start the mod, use /choco playlist start to start going through the playlist. Otherwise, it'll start automatically! (/choco playlist add [song num] or /choco playlist add [unique part of song title])

UPDATE:

1.4-

This is the version that I made slowly after using my mod for a while...

Looks better, fixed a few basic bugs, replaced mods with a different version of it, and added a black mages song!

Enjoy!!!

1.3.1-

Should be more stable... I did some testing and fixed some problems.

Now instead of /choco playlist start/stop it's /choco playlist on/off, to prevent any confusion...

Use /choco playlist help to display the help for the playlist. If you make a playlist before you turn on the mod, it will be automatically initiated.

Enjoy!

1.3-

Now to play the bonus song... type /choco bonus.

I think this time this ACTUALLY should work for every mount.. since I finally found a list of mount names :)

Also I wrote a playlist tool that should make using the mod more enjoyable, and fixed a few notable bugs.

Enjoy version 1.3!

1.2-

As per suggestion -- added FFVI Chocobo theme!

Also, purely out of love, there is a sweet bonus track... check it out!


1.1-

I decided to implement the mod for everybody's mounts. You still have to deal with a smart comment unless you're on a chocobo, though :-P

  • Downloads (2)
  •  
Advertisement
  • Screenshots (1)
  •  

You need to login or register to post comments.

Benefits of Registration

  • Interact with hundreds of thousands of other gamers on an open social network.
  • Post your stories, news, images, videos, and other content to share.
  • Create a network with your fellow gamers or join an existing one.
  • Gain reputation for everything you do.
 
  • June 10, 2008, 08:03PM (1 month, 1 week ago)

    Message: ..\AddOns\Chocobo\Chocobo.lua line 661:
    Couldn't find CVar named 'MusicVolume'
    Debug:
    [C]: ?
    [C]: GetCVar()
    Chocobo\Chocobo.lua:661: Chocobo_OnUpdate()
    [string "*:onUpdate"]:1:
    [string "*:onUpdate"]:1

    Had the Same Message Pop Up Twice and I read the Info to Change it but how do i get to where I can Start Changing the Files?

  • June 10, 2008, 08:02PM (1 month, 1 week ago)

    Message: ..\AddOns\Chocobo\Chocobo.lua line 661:
    Couldn't find CVar named 'MusicVolume'
    Debug:
    [C]: ?
    [C]: GetCVar()
    Chocobo\Chocobo.lua:661: Chocobo_OnUpdate()
    [string "*:onUpdate"]:1:
    [string "*:onUpdate"]:1

    Had the Same Message Pop Up Twice and I read the Info to Change it but how do i get to where I can Start Changing the Files?

  • March 20, 2008, 10:25AM (4 months ago)

    Got a song you can add to your collection.
    An Irish style Chocobo Theme, I think it's really
    good, and I added it to the collection locally.

    Enjoy

    http://xirax.net/quark/dancemusic/01Final%20Fantasy%20IV-Chocobo-Irish.mp3

  • Feb. 23, 2008, 11:29PM (4 months, 3 weeks ago)

    replace the text in the old file with the area below the line to fix the music and volume errors.
    Enjoy!

    ------------------------------------------------------
    --[[
    *****************************************************************

    Chocobo Music Mod 1.4.0

    Author: Patrick Armstrong (Anudaris/Urthshok on Balnazzar)

    Author of the Original: Brielle from curse-gaming

    ****************************************************************]]

    function CreateSong(Name, Length)

    return {Name = Name, Length = Length};

    end

    --Make sure if you edit this, which you can, you leave the bonus song at the bottom!
    local songList = {
    CreateSong("Aloha de Chocobo.mp3", 177),
    CreateSong("The Black Mages - Vamo' Alla Flamenco.mp3", 265),
    CreateSong("Fiddle De Chocobo.mp3", 167),
    CreateSong("FF8 - Chocobo Rock Theme.mp3", 144),
    CreateSong("Samba De Chocobo.mp3", 44),
    CreateSong("FFX Chocobo Theme.mp3", 58),
    CreateSong("FFVI Chocobo Theme.mp3",247),
    CreateSong("Waltz de Chocobo.mp3", 156),
    CreateSong("Techno de Chocobo.mp3", 76),
    CreateSong("Cinco de Chocobo.mp3", 139),
    CreateSong("Electric de Chocobo.wma", 242),
    CreateSong("Ukelele de Chocobo.mp3", 79),
    CreateSong("(BONUS) FFV-X Compilation.mp3", 457)
    };

    local SONG_FADE_TIME = 3; -- You could set this to a negative number to make it skip ahead.. but why?
    local ALERT_ITERATIONS = 4; -- Define how many Alert flashes will occur

    local chocoMusicOn = false;
    local debug = false;
    local enabled = false;
    local moving = false;
    local random = false;
    local forced = false; -- Used by 'setsong' to change in the middle of a song.
    local prevFlag = false; -- Used for the prevFlag function
    local nextFlag = false; -- Used for the nextFlag function
    local hasBeenActivated = false;
    local playlistForceInit = false;
    local playlistDisabled = true;
    local curSong = 0;
    local setSong = 0; -- 0 means disabled.
    local Min = 0;
    local Sec = 0;
    local warkCnt = -1;
    local warkMsg = "";

    local playList = {}; -- pStack contains the stack of prevFlagious songs played
    local playListPos = 0;
    function playListAdd(songNum)
    if (enabled == false) then
    playlistDisabled = false;
    end
    table.insert(playList,songNum);
    DefaultFrameMsg("Added " .. songList[playList[# playList]].Name .. " to the playlist.",20,114,220);
    end
    function playListStop()
    playListPos = 0;
    playlistDisabled = true;
    DefaultFrameMsg("No longer looping through the playlist.",20,114,220);
    end
    function playListSet(n) -- tricky
    if (n > 0 and n <= # playList) then
    playListPos = n-1;
    Chocobo_SlashHandler("playList next");
    else
    DefaultFrameMsg("Position " .. n .. " doesn't exist in your playlist! Use /choco playlist help",255,0,0);
    end
    end
    function playListRemove(songNum)
    removed = -1;
    for i = 1, # playList do
    if (playList[i] == songNum) then
    table.remove(playList, i);
    removed = i;
    end
    end
    if (removed ~= -1) then
    DefaultFrameMsg("Removed " .. songList[songNum].Name .. " from the playlist.",20,114,220);
    if (# playList == 0) then
    playListPos = 0;
    end
    else
    DefaultFrameMsg("Failed to remove " .. songList[songNum].Name .. " from the playlist, it's not there!",20,114,220);
    end
    end
    function playListAt()
    if (playListActive()) then
    return playList[playListPos];
    else
    return -1;
    end
    end
    function playListActive()
    return playListPos > 0;
    end
    function playListNext(dispMsg)
    success = false;
    if (enabled) then
    playlistDisabled = false;
    if (dispMsg and playListPos == 0) then
    DefaultFrameMsg("Beginning your playlist now!",20,114,220);
    end
    if (playListPos < # playList and # playList > 0) then
    playListPos = playListPos + 1;
    success = true;
    end
    if (# playList == 0) then
    DefaultFrameMsg("Your playlist is empty!",255,0,0);
    elseif (not success) then
    DefaultFrameMsg("Reached the end of the playlist. Restarting the playlist now!",20,114,220);
    playListPos = 0;
    return playListNext(false);
    end
    else
    DefaultFrameMsg("Turn on the mod first! /choco on",255,0,0);
    end
    return success;
    end
    function playListPrev()
    success = false;
    if (enabled) then
    if (playListPos > 1) then
    playListPos = playListPos - 1;
    success = true;
    end
    if (# playList == 0) then
    DefaultFrameMsg("Your playlist is empty!",255,0,0);
    elseif (not success) then
    if (playListActive()) then
    DefaultFrameMsg("No song in the playlist to move back to! use /choco playlist to display",20,114,220);
    else
    DefaultFrameMsg("You are not using your playlist right now.", 255, 0, 0);
    end
    end
    else
    DefaultFrameMsg("Turn on the mod first! /choco on",255,0,0);
    end
    return success;
    end
    function playListDisp()
    DefaultFrameMsg("Current Play List: ",20,114,220);
    for i = 1, # playList do
    DefaultFrameMsg(i .. ". " .. songList[playList[i]].Name,255,150,0);
    end
    end

    local pStack = {}; -- pStack contains the stack of previous songs played
    function pStackPush(songNum)
    table.insert(pStack,songNum);
    end
    function pStackPop()
    return table.remove(pStack,# pStack);
    end

    local nStack = {}; -- pStack contains the stack of previous songs played
    function nStackPush(songNum)
    table.insert(nStack,songNum);
    end
    function nStackPop()
    return table.remove(nStack,# nStack);
    end

    function DefaultFrameMsg(msg, red, green, blue) -- takes a 255,255,255 RGB input
    --automatically edit commands that have something following a colon to show the command in dodger blue
    --to be honest i don't really know how i figured this out =P

    local cmd = "";
    if (string.find(msg,":") ~= nil) then
    if (string.len(msg) > string.find(msg, ":")) then
    cmd = "|c215877DD" .. (string.sub(msg,0,string.find(msg,":"))) .. " ";
    msg = "|r" .. string.sub(msg, string.find(msg,":")+1);
    end
    end

    DEFAULT_CHAT_FRAME:AddMessage(string.format("%s%s", cmd, msg), red/255.0, green/255.0, blue/255.0);

    end

    function Chocobo_Wark(msg)
    warkCnt = 0;
    warkMsg = "Warrrrk! " .. msg;
    end

    --Customized message at login for each mount type =)
    local Messages = {
    Dwarf = "Rams are too horny!",
    Human = "Horses are too boring!",
    NightElf = "Tigers are too catty!",
    Gnome = "Mechano-Striders are too screwy!",
    Dranei = "Elekk are LoTR Ripoffs!",
    Tauren = "Kodos are too fat!",
    Troll = "Raptors are too scary!",
    Undead = "Your mount isn't even alive!",
    Orc = "Keep your mount on a leash!",
    BloodElf = "Nice chocobo!",
    Paladin = "Pay for your mount, freeloader!",
    Warlock = "Your mount is on fire!"
    };

    function Chocobo_OnLoad()
    this:RegisterEvent("PLAYER_AURAS_CHANGED");
    SlashCmdList["Chocobo"] = Chocobo_SlashHandler;
    SLASH_Chocobo1 = "/choco";
    local mountType;
    if (UnitClass("player") == "Paladin") then
    mountType = "Paladin";
    elseif (UnitClass("player") == "Warlock") then
    mountType = "Warlock";
    else
    mountType = UnitRace("player");
    end
    Chocobo_Wark(Messages[string.gsub(mountType, "( )", "")] .. " Type \"/choco on\" to turn on the Chocobo Music Mod and /choco for the commands!");
    this.TimeSinceLastUpdate = 0;
    Chocobo_DebugMessage("Loaded Mod");
    end

    function Chocobo_OnEvent(event)
    if (event=="PLAYER_AURAS_CHANGED") then
    Chocobo_SongSelectionHandler();
    end
    end

    function Chocobo_GetSongNum(msg)

    songNum = -1;
    if (string.find(msg, "%a") == nil) then
    if (string.len(msg) == 1 or string.len(msg) == 2) then -- 1 or 2 digit number
    msg = msg .. " ";
    testNum = tonumber(string.sub(msg, 0, 2));
    if (testNum > 0 and testNum <= (table.getn(songList)-1)) then
    songNum = testNum;
    end
    end
    elseif (string.len(msg) >= 3) then --smallest song first word is 3 characters
    for i = 1, (table.getn(songList)-1) do
    if (string.find(string.lower(songList[i].Name),string.lower(msg)) ~= nil) then
    songNum = i;
    end
    end
    end

    return songNum;

    end

    function Chocobo_SlashHandler(msg)

    Chocobo_DebugMessage("Handle Slash Command");
    if (warkCnt > -1) then
    DefaultFrameMsg("I'm talking right now, be patient!", 255,0,0);
    elseif (msg ~= "") then
    msg = string.lower(msg);
    local playlistCMD = (string.find(msg, "playlist") ~= nil);
    if ((not playlistCMD) and playListActive() and (not(msg == "songs" or msg == "off" or msg == "on"))) then
    playListStop();
    end
    if (msg == "on" and enabled) then
    DefaultFrameMsg("The mod is already enabled!", 255,0,0);
    elseif (msg == "off" and (not enabled)) then
    DefaultFrameMsg("The mod is already disabled!", 255,0,0);
    end
    if (msg == "random") then
    if (setSong ~= 0) then
    DefaultFrameMsg("Stopped Looping: " .. songList[setSong].Name, 20,114,220);
    random = true;
    setSong = 0;
    else
    random = not random;
    end
    Chocobo_DispCurMode();
    elseif (msg == "songs") then
    Chocobo_DispSongList();
    elseif (playlistCMD) then
    if (string.find(msg, " ") == nil) then
    playListDisp();
    else
    cmd = string.lower(string.sub(msg, string.find(msg, " ")+1));
    if (cmd == "help") then
    Playlist_HelpDisplay();
    elseif (cmd == "off") then
    playListStop();
    elseif (cmd == "next" or cmd == "on") then
    if (enabled) then
    if (cmd == "start" and (not playlistDisabled)) then
    DefaultFrameMsg("Your playlist has already been started!", 255,0,0);
    else
    if (playListNext(true)) then
    setSong = playListAt();
    forced = true;
    Chocobo_SongSelectionHandler();
    setSong = 0;
    end
    end
    else
    DefaultFrameMsg("Turn on the mod first! /choco on", 255,0,0);
    end
    elseif (cmd == "prev") then
    if (enabled) then
    if (playListPrev()) then
    setSong = playListAt();
    forced = true;
    Chocobo_SongSelectionHandler();
    setSong = 0;
    end
    else
    DefaultFrameMsg("Turn on the mod first! /choco on", 255,0,0);
    end
    elseif (cmd == "add") then
    DefaultFrameMsg("Please specify a song after add!", 255,0,0);
    elseif (cmd == "del") then
    DefaultFrameMsg("Please specify a song after del!", 255,0,0);
    elseif (string.find(cmd, " ") ~= nil) then
    subCmd = string.lower(string.sub(cmd, 0, string.find(cmd, " ")));
    song = string.lower(string.sub(cmd, string.find(cmd, " ")+1));
    songn = tonumber(Chocobo_GetSongNum(tostring(song)));
    if (songn ~= -1) then
    if (string.find(subCmd,"add") ~= nil) then
    playListAdd(songn);
    elseif (string.find(subCmd,"del") ~= nil) then
    playListRemove(songn);
    elseif (string.find(subCmd,"set") ~= nil) then
    playListSet(tonumber(song));
    end
    else
    DefaultFrameMsg("Invalid song! Type /choco songs for a list of songs", 20,114,220);
    end
    else
    DefaultFrameMsg("Invalid command! Type /choco for help", 20,114,220);
    end
    end
    elseif (not enabled) then
    if (msg == "on") then
    this.preLoadVolume = GetCVar("Sound_MusicVolume");
    this.musicEnabled = GetCVar("Sound_EnableMusic");
    Chocobo_Wark("Enjoy the music!");
    Chocobo_DebugMessage("Enabling mod");
    enabled = true;
    else
    DefaultFrameMsg("Turn on the mod first! /choco on", 255,0,0);
    end
    else
    if (msg == "off") then
    Chocobo_DebugMessage("Disabling mod");
    enabled = false;
    Chocobo_TurnOffMusic();
    elseif (msg == "next") then
    Chocobo_Next();
    elseif (msg == "prev") then
    Chocobo_Prev();
    elseif (string.find(msg,"bonus") ~= nil) then
    setSong = # songList;
    forced = true;
    Chocobo_SongSelectionHandler();
    setSong = 0;
    elseif (string.find(msg, "setsong") ~= nil) then
    songNum = Chocobo_GetSongNum(string.sub(msg,9));
    if (songNum ~= -1) then
    setSong = songNum;
    forced = true;
    Chocobo_SongSelectionHandler();
    setSong = 0;
    else
    DefaultFrameMsg("Invalid song number!", 255, 0, 0);
    end
    elseif (string.find(msg, "loop") ~= nil) then -- conditional needs work
    songNum = Chocobo_GetSongNum(string.sub(msg,string.find(msg, " ")));
    if (songNum ~= -1) then
    setSong = songNum;
    Chocobo_DispCurMode();
    if (setSong ~= 0) then
    forced = true;
    Chocobo_SongSelectionHandler();
    end
    else
    DefaultFrameMsg("Invalid song number!", 255, 0, 0);
    end
    elseif (msg == "stoploop") then
    if (setSong ~= 0) then
    DefaultFrameMsg("Stopped Looping: " .. songList[setSong].Name, 20,114,220);
    setSong = 0;
    else
    DefaultFrameMsg("Error. No song is looping!", 20,114,220);
    end
    else
    songNum = Chocobo_GetSongNum(msg);
    if (songNum ~= -1) then
    setSong = songNum;
    forced = true;
    Chocobo_SongSelectionHandler();
    setSong = 0;
    else
    DefaultFrameMsg("Invalid Song number or command! Type /choco for help!", 255,0,0);
    end
    end
    end
    else
    Chocobo_HelpDisplay();
    end
    end

    function Chocobo_HelpDisplay()
    if DEFAULT_CHAT_FRAME then
    DefaultFrameMsg("Chocobo Music Mod Usage:", 20,114,220);
    DefaultFrameMsg("To replace \'x\' use the number of the song or any unique part of it's title.", 255,150,0);
    DefaultFrameMsg(" (examples: Black mages, 5, techno)", 255,150,0);
    DefaultFrameMsg("/choco on/off: Enables/disables Chocobo mod", 255,150,0);
    DefaultFrameMsg("/choco random: Enables/disables random music selection", 255,150,0);
    DefaultFrameMsg("/choco songs: Displays the list of songs", 255,150,0);
    DefaultFrameMsg("/choco x: Play song x in the song list.", 255,150,0);
    DefaultFrameMsg("/choco loopsong x: Loop the song x in the song list.", 255,150,0);
    DefaultFrameMsg("/choco stoploop: Quit looping. Changing songs also cancels.", 255,150,0);
    --DefaultFrameMsg("/choco playlist add/del x, set n, on/off, next/prev: Playlist tools.", 255,150,0);
    DefaultFrameMsg("/choco playlist help: Display the playlist help information.", 255,150,0);
    DefaultFrameMsg("/choco next/prev: Go to the next or previous song", 255,150,0);
    DefaultFrameMsg("/choco bonus: Play the bonus song!", 255,150,0);
    end
    end

    function Playlist_HelpDisplay()
    if DEFAULT_CHAT_FRAME then
    DefaultFrameMsg("Chocobo Playlist Tool Help:", 20,114,220);
    DefaultFrameMsg("Before or after you have started this mod, you can create a playlist.", 255,150,0);
    DefaultFrameMsg("If you make it before initializing the first time, it will start automatically.", 255,150,0);
    DefaultFrameMsg("/choco playlist: Display your current playlist.", 255,150,0);
    DefaultFrameMsg("/choco playlist on: Start your playlist.", 255,150,0);
    DefaultFrameMsg("/choco playlist off: Quit playing your playlist.", 255,150,0);
    DefaultFrameMsg("/choco playlist add x: Add song x into the playlist.", 255,150,0);
    DefaultFrameMsg("/choco playlist del x: Delete song x from the playlist.", 255,150,0);
    DefaultFrameMsg("/choco playlist set n: Play song at position 'n' in the playlist.", 255,150,0);
    DefaultFrameMsg("/choco playlist next: Skip to the next song in the playlist.", 255,150,0);
    DefaultFrameMsg("/choco playlist prev: Move back one song in the playlist.", 255,150,0);
    end
    end

    function Chocobo_DispSongList()
    z = "";
    DefaultFrameMsg("Song List:", 20,114,220);
    for i = 1, (table.getn(songList)-1) do
    if (i < 10) then -- in most languages i could've chopped off 5 lines here =P
    z = "0";
    else
    z = "";
    end
    local song = tostring(songList[i].Name);
    DefaultFrameMsg(z .. i .. ": " .. string.sub(song,0,string.len(song)-4),255,150,0);
    end
    end

    function Chocobo_DispCurMode()
    if (setSong == 0) then
    if (random) then
    DefaultFrameMsg("Current mode: Random", 20,114,220);
    else
    DefaultFrameMsg("Current mode: Sequential", 20,114,220);
    end
    else
    DefaultFrameMsg("Current mode: Looping " .. songList[setSong].Name, 20,114,220);
    end
    end

    function Chocobo_TurnOffMusic()
    if chocoMusicOn then
    StopMusic();
    Chocobo_Wark("See you later!");
    chocoMusicOn = false;
    Chocobo_DebugMessage("Stopping Music");
    end
    end

    -- returns true if the chosen song has been recently played, for random mode.
    function checkPrevSongs()

    local randCheck = false;

    if ((table.getn(pStack) >= 2) and ((curSong == pStack[# pStack] or cursong == pStack[# pStack - 1]))) then
    randCheck = true;
    elseif (table.getn(pStack) == 1 and curSong == pStack[# pStack]) then
    randCheck = true;
    end

    return randCheck;

    end

    function Chocobo_SongSelectionHandler()
    if enabled then
    local onChoco = Chocobo_OnChocobo();

    if ((onChoco and not chocoMusicOn) or (onChoco and forced)) then
    if (playlistForceInit) then -- if a playlist is defined when the mod is turn on, and hasn't been manually stopped, start it!
    playlistForceInit = false;
    if (# playList > 0 and (not playlistDisabled)) then
    playListNext(true);
    curSong = playListAt();
    pStackPush(curSong);
    Chocobo_PlaySong(curSong);
    else
    Chocobo_SongSelectionHandler();
    end
    else
    if (forced) then
    forced = false;
    end
    if (curSong == # songList) then --from the bonus song
    curSong = # songList - 1;
    end
    if (onChoco and not chocoMusicOn and (not hasBeenActivated)) then
    hasBeenActivated = true;
    curSong = math.random(1,(table.getn(songList)-1));
    pStackPush(curSong);
    Chocobo_PlaySong(curSong);
    elseif (setSong ~= 0) then
    pStackPush(curSong);
    curSong = setSong;
    Chocobo_PlaySong(curSong);
    elseif (prevFlag) then
    prevFlag = false;
    songNum = pStackPop();
    if (table.getn(pStack) > 0) then
    nStackPush(curSong);
    else
    pStackPush(songNum);
    end
    curSong = songNum;
    Chocobo_PlaySong(curSong);
    elseif (nextFlag) then
    nextFlag = false;
    if (table.getn(nStack) > 0) then
    pStackPush(curSong);
    curSong = nStackPop();
    Chocobo_PlaySong(curSong);
    else
    forced = true;
    Chocobo_SongSelectionHandler();
    --zomg recursion
    end
    elseif (random) then
    pStackPush(curSong);
    curSong = math.random(1,(table.getn(songList)-1));
    while (checkPrevSongs()) do
    curSong = math.random(1,(table.getn(songList)-1));
    end
    Chocobo_PlaySong(curSong);
    else
    pStackPush(curSong);
    if (curSong == (table.getn(songList)-1)) then
    curSong = 1;
    else
    curSong = curSong + 1;
    end
    Chocobo_PlaySong(curSong);
    end
    end
    elseif (not onChoco) then
    Chocobo_TurnOffMusic();
    end
    end
    end

    function Chocobo_PlaySong(songNum)

    Min = 0;
    Sec = 0;

    dispM = math.floor(songList[songNum].Length / 60);
    dispS = songList[songNum].Length % 60;
    if (tonumber(dispS) < 10) then
    dispS = "0" .. dispS;
    end
    PlayMusic("Interface\\AddOns\\Chocobo\\Music\\" .. songList[songNum].Name);
    DefaultFrameMsg("Now playing: " .. songNum .. ". " .. songList[songNum].Name .. " (" .. dispM .. ":" .. dispS .. ")", 255,150,0);
    chocoMusicOn = true;
    Chocobo_DebugMessage("Starting Music");

    end

    --code for coordinates taken from telo. thanks!

    local lCoords_zones;
    local lCoords_currentZoneText;
    local prevX;
    local prevY;

    local function Coords_LoadZoneData(continent, ...)
    local iItem;
    for iItem = 1, select('#', ...) do
    local param = select(iItem, ...);
    lCoords_zones[param] = { };
    lCoords_zones[param].cont = continent;
    lCoords_zones[param].zone = iItem;
    end
    end

    local function Coords_LoadMapData(...)
    local iItem;
    for iItem = 1, select('#', ...) do
    Coords_LoadZoneData(iItem, GetMapZones(iItem));
    end
    end

    local function Coords_GetLoc()
    local currZoneText = GetRealZoneText();
    local zoneData = lCoords_zones[currZoneText];

    if( zoneData and not WorldMapFrame:IsVisible() ) then
    local mapCont = GetCurrentMapContinent();
    local mapZone = GetCurrentMapZone();

    if( lCoords_currentZoneText ~= currZoneText or mapCont ~= zoneData.cont or mapZone ~= zoneData.zone ) then
    SetMapZoom(zoneData.cont, zoneData.zone);
    lCoords_currentZoneText = currZoneText;
    end

    return GetPlayerMapPosition("player");
    end

    return 0, 0;
    end

    function Coords_OnLoad()
    lCoords_zones = { };
    Coords_LoadMapData(GetMapContinents());
    end

    function Coords_OnUpdate(elapsed)
    if( not this.updateTimer ) then
    this.updateTimer = 0;
    else
    this.updateTimer = this.updateTimer - elapsed;
    end
    if( this.updateTimer <= 0 ) then
    prevX = x;
    prevY = y;
    local x, y = Coords_GetLoc();
    if (x == prevX and y == prevY) then
    moving = false;
    else
    moving = true;
    end
    this.updateTimer = 0.25;
    end
    end

    function Chocobo_OnUpdate(ElapsedTime)

    this.TimeSinceLastUpdate = this.TimeSinceLastUpdate + ElapsedTime;

    while (this.TimeSinceLastUpdate > 1.0) do

    if (warkCnt == 0) then
    if (GetCVar("Sound_MusicVolume") ~= 0.9 or GetCVar("Sound_EnableMusic") ~= 1) then
    this.preWarkVolume = GetCVar("Sound_MusicVolume");
    this.preWarkEnabled = GetCVar("Sound_EnableMusic");
    SetCVar("Sound_MusicVolume", 0.9);
    SetCVar("Sound_EnableMusic", 1);
    end
    DefaultFrameMsg(warkMsg, 20,114,220);
    PlayMusic("Interface\\AddOns\\Chocobo\\Wark!.wav");
    warkCnt = warkCnt + 1;
    elseif (warkCnt == 1) then
    StopMusic();
    warkCnt = -1;
    if (enabled) then
    if (# playList > 0) then
    playlistForceInit = true;
    end
    Chocobo_SongSelectionHandler();
    else
    if (hasBeenActivated) then
    SetCVar("Sound_EnableMusic", 1);
    SetCVar("Sound_MusicVolume", 0.3);
    else
    SetCVar("Sound_EnableMusic", this.preWarkEnabled);
    SetCVar("Sound_MusicVolume", this.preWarkVolume);
    end
    end
    else
    if (chocoMusicOn) then
    Sec = Sec + 1;

    if ( Sec == 60 ) then
    Min = Min + 1;
    Sec = 0;
    end

    TotalSecs = (Min * 60) + Sec + SONG_FADE_TIME;

    if(TotalSecs == songList[curSong].Length and setSong == 0) then
    if (playListAt() ~= -1) then
    Chocobo_SlashHandler("playlist next");
    else
    Chocobo_Next();
    end
    end
    end
    end

    this.TimeSinceLastUpdate = this.TimeSinceLastUpdate - 1.0;

    end

    end

    function Chocobo_Next()

    if (setSong ~= 0) then
    DefaultFrameMsg("Stopped Looping: " .. songList[setSong].Name, 20,114,220);
    setSong = 0;
    random = false;
    end

    forced = true;
    nextFlag = true;

    Chocobo_SongSelectionHandler();

    end

    function Chocobo_Prev()

    if (setSong ~= 0) then
    DefaultFrameMsg("Stopped Looping: " .. songList[setSong].Name, 20,114,220);
    setSong = 0;
    random = false;
    end

    forced = true;
    prevFlag = true;

    Chocobo_SongSelectionHandler();

    end

    local MountNames = {
    "elekk",
    "hawkstrider",
    "horse",
    "kodo",
    "gryphon",
    "windrider",
    "mare",
    "mechanostrider",
    "battlestrider",
    "saber",
    "frostwolf howler",
    "stormpike battle charger",
    "stallion",
    "ram",
    "steed",
    "charger",
    "raptor",
    "wolf",
    "talbuk"
    };

    function Chocobo_OnChocobo()
    local buff;
    for i=1,24 do
    buff = GetPlayerBuffName(i);
    Chocobo_DebugMessage("Trying buff "..i);
    if buff then
    for j = 1, # MountNames do
    if string.find(string.lower(buff),MountNames[j]) then
    Chocobo_DebugMessage("Found Buff");
    return 1;
    end
    end
    end
    end
    return nil;
    end

    function Chocobo_DebugMessage(msg)
    if debug and DEFAULT_CHAT_FRAME then
    DefaultFrameMsg("Chocobo Debug: " .. msg);
    end
    end

  • Feb. 4, 2008, 06:57AM (5 months, 2 weeks ago)

    Having a problem with this mod, when I log in I get this message:

    Message: ..\AddOns\Chocobo\Chocobo.lua line 661:
    Couldn't find CVar named 'MusicVolume'
    Debug:
    [C]: ?
    [C]: GetCVar()
    Chocobo\Chocobo.lua:661: Chocobo_OnUpdate()
    [string "*:onUpdate"]:1:
    [string "*:onUpdate"]:1

    And when I try to use the add-on at all, I get the message "I'm talking right now, be patient!" regardless of what command I use. any help?

  • Sept. 12, 2007, 12:37AM (10 months, 1 week ago)

    I don't listen to the WoW music, so I added a slight mod. This mod will enable your WoW music when you mount and disable music when you dismount.

    Bugs
    - Music doesn't fade when you dismount
    - [FIXED] When you log out mounted, the music option is still on. This is a simple change I will fix shortly.

    Planned Fixes
    - [DONE] Mod is autmoatically turned on, so you don't have to type /choco on everytime
    - GUI
    - Fix Bugs

    I havn't tested this at all, so it may not work under certain situations.


    ============================================

    FIND AND DELETE


    this.preWarkVolume = GetCVar("MusicVolume");
    this.preWarkEnabled  = GetCVar("EnableMusic");
    SetCVar("MusicVolume", 0.9);
    SetCVar("EnableMusic", 1);
    


    ============================================



    FIND


    		dispS = "0" .. dispS;
    	end
    

    ADD BELOW


    SetCVar("MusicVolume", 0.9);
    SetCVar("EnableMusic", 1);
    


    ===========================================



    FIND


    	if chocoMusicOn then
    		StopMusic();
    

    ADD BELOW


    	
    SetCVar("MusicVolume", 0);
    SetCVar("EnableMusic", 0);
    
    


    ===========================================



    FIND


    	Chocobo_Wark(Messages[string.gsub(mountType, "( )", "")] .. " Type \"/choco on\" to turn on the Chocobo Music Mod and /choco for the commands!");
    

    REPLACE WITH


    Chocobo_Wark(Messages[string.gsub(mountType, "( )", "")] .. " Type  /choco for the commands!");
    SetCVar("MusicVolume", 0);
    SetCVar("EnableMusic", 0);
    enabled = true;
    
    
    ============================================

    Please note: I am not the author of this mod. I am simply providing additional options to be used with the mod. The author can probably provide a better version of this, but it works! Enjoy!

  • July 28, 2007, 09:01PM (11 months, 4 weeks ago)

    What's the possibly of making a GUI with Waterfall over at WoWACE.com??

  • June 17, 2007, 11:48PM (1 year, 1 month ago)

    I'm thinking of adding a setting to allow you to override the mount-only music. Perhaps in a config file, or in game option. thoughts?

  • June 16, 2007, 10:45PM (1 year, 1 month ago)

    really nice addon makes long rides much bether :P is it possible to make this addon work when on flight path to ? as it would make the 15min long flights go much faster with some music.

  • June 11, 2007, 04:37AM (1 year, 1 month ago)

    http://rarlabs.com winrar, great program

  • June 11, 2007, 12:53AM (1 year, 1 month ago)

    I want this, but how do I use a .rar?

  • May 16, 2007, 03:11PM (1 year, 2 months ago)

    Cal1112333, I'm pretty sure since music is user defined, it would be difficult for the author to do this. And if you want all of these implementations, there are other addons like finalfantization or soundtrack[if you have FF music, you can use it, or even other music for more events]. this is just for mount music for now.

  • May 14, 2007, 12:39AM (1 year, 2 months ago)

    i cant get this to work, when i DL it, it comes up as a itunes music file, ive tried to just drag that to my addons folder, but it doesnt work. : /

  • April 29, 2007, 10:10PM (1 year, 2 months ago)

    Awesome mod! My only complaint is that it plays when using mounts other than Hawkstriders. If this was implemented as an option as well as what cal1112333 said about turning the music on when this is activated otherwise having all sound muted, this would be even better!

    Still, all in all great mod! Thanks!

  • April 8, 2007, 02:36PM (1 year, 3 months ago)

    Do you need to mount up in order to hear the music?

  • March 16, 2007, 11:52AM (1 year, 4 months ago)

    I LOVE this mod, after you perfect mount music make one with FF** fight music in combat travel music outside cap city (off mount of course) and dungeon music in indoor instances!

    The things id like to see you add; When the mount is off i have my music setting to 0 if you could have that spike up ONLY on mounts and back to 0 off mounts i will love you forever!

  • March 15, 2007, 05:59AM (1 year, 4 months ago)

    Wow wtf...it works now. Haha.

    That was random...Okay well sorry for my pointless posts now >.

  • March 15, 2007, 01:25AM (1 year, 4 months ago)

    uhh i guess mount before you try putting in song commands.. although i don't know why that should affect anything anyway

  • March 14, 2007, 01:41PM (1 year, 4 months ago)

    All of the files are there, I tried every song. This is exactly what I do: 1. Log in 2. Type /choco on 3. Type /choco 1-12 4. Mount, then I type /choco 1-12

    No music plays. It does, however, restart the music of the area that I'm in.

  • March 13, 2007, 11:12AM (1 year, 4 months ago)

    check to make sure every file is in the music folder maybe...

    also try changing to other songs i guess besides 1, and hitting control+M.

    really though i'm not sure, maybe post in higher detail exactly what you're doing

 
  • Similar Addons
  •  
  1. 617 ChatMOD Chat & Communication and Audio
  2. 280 WoWQuote (German) Audio
  3. 273 PVP Sound Audio, PvP, and Combat
  4. 238 MusicPlayer Audio
  5. 214 Gag Audio
Advertisement