combine two macro's to make one, How to>
Posted: Sat Feb 05, 2005 9:12 pm
hello, i'm attempting to make a new macro from two current works by others, at first i was thinking maybe i can just paste one into the other and blamO its done yay,.. but no. only the first runs. this is no good.
so if any one could tell me how this is done so that in the furure i can do it myself, you would make me a happy bard, or at lest give some info on where to find out how to do it.
the 2 macro's are here.
macro A:
macro B
thanks
so if any one could tell me how this is done so that in the furure i can do it myself, you would make me a happy bard, or at lest give some info on where to find out how to do it.
the 2 macro's are here.
macro A:
Code: Select all
| - twist.mac -
|
| Modified from Colonel's Macro by ml2517
|
| Modified to current form 5/3/2004
|
| Combat Twist Order (Optional) --+ <- If you don't feed it a second
| NonCombat Twist Order -----+ | spell set it works with just
| | | one set.
| Usage: v v
| /macro twist.mac ### [###]
| # represents the spell gem number you'd like to sing
|
| Example:
| /macro twist.mac 4567 123456
| /macro twist.mac 123458
Sub Main(NonCombatGems,CombatGems)
/if (!${Defined[NonCombatGems]}) /endmacro
|
| Variable Declarations
|
/declare CombatCurSong int outer
/declare NonCombatCurSong int outer
/declare NNonCombatSongs int outer
/declare NCombatSongs int outer
/declare NonCombatSongList string outer
/declare CombatSongList string outer
/declare TwistI int outer
/declare DynamicBuffer int outer
/declare NonCombatSongArray[30] int outer
/declare CombatSongArray[30] int outer
|
| Timer Declarations
|
/declare SingTime timer outer
/varset CombatCurSong 1
/varset NonCombatCurSong 1
/varset NNonCombatSongs ${Int[${String[${NonCombatGems}].Length}]}
/if (${Defined[CombatGems]}) /varset NCombatSongs ${Int[${String[${CombatGems}].Length}]}
/varset NonCombatSongList ${NonCombatGems}
/if (${Defined[CombatGems]}) /varset CombatSongList ${CombatGems}
/varset DynamicBuffer 5
/for TwistI 1 to ${NNonCombatSongs}
/varset NonCombatSongArray[${TwistI}] ${String["${NonCombatSongList}"].Mid[${TwistI},1]}
/next TwistI
/if (${Defined[CombatGems]}) {
/for TwistI 1 to ${NCombatSongs}
/varset CombatSongArray[${TwistI}] ${String["${CombatSongList}"].Mid[${TwistI},1]}
/next TwistI
}
:Loop
/if (${Me.Standing}) {
/if (${Defined[CombatGems]}) /if (${Me.Combat}) /call CombatSing ${CombatSongArray[${CombatCurSong}]}
/if ((!${Me.Combat})||(!${Defined[CombatGems]})) /call NonCombatSing ${NonCombatSongArray[${NonCombatCurSong}]}
}
/if (${Me.State.Equal["DUCK"]}) /keypress DUCK
/if (!${Me.Standing}) /stand
/goto :Loop
/return
Sub CombatSing(Song)
/declare Buffer int local
/declare Duration int local
/varset Duration 0
:CombatSing1
/call CheckSong ${Song}
/varset Duration ${Macro.Return}
/varset SingTime 30
/varset Buffer 0
/cast "${Me.Gem[${Song}]}"
:CombatSing2
/delay 1
/if (${Me.Casting.ID}) {
/if (${SingTime}<=0) /goto :CombatSingBreak
/goto :CombatSing2
}
:CombatSingBreak
/if (${SingTime}>0) /goto :CombatSing1
/if (${Duration}==0) {
/delay ${DynamicBuffer}
/stopsong
} else {
:CombatSing3
/varcalc Buffer ${Buffer}+1
/delay 1
/if (${Buffer}>8) {
/stopsong
/goto :CombatSing1
}
/if ((!${Me.Song["${Me.Gem[${Song}]}"].ID})&&(!${Me.Buff["${Me.Gem[${Song}]}"].ID})) /goto :CombatSing3
/if ((${Me.Song["${Me.Gem[${Song}]}"].Duration}<${Math.Calc[${Duration}-1]})&&(${Me.Buff["${Me.Gem[${Song}]}"].Duration}<${Math.Calc[${Duration}-1]})) /goto :CombatSing3
/varset DynamicBuffer ${Buffer}
/stopsong
}
| /echo Dynamic Buffer: ${DynamicBuffer}
/varcalc CombatCurSong ${CombatCurSong}+1
/if (${CombatCurSong}>${NCombatSongs}) /varset CombatCurSong 1
/return
Sub NonCombatSing(Song)
/declare Buffer int local
/declare Duration int local
/varset Duration 0
:NonCombatSing1
/call CheckSong ${Song}
/varset Duration ${Macro.Return}
/varset SingTime 30
/varset Buffer 0
/cast "${Me.Gem[${Song}]}"
:NonCombatSing2
/delay 1
/if (${Me.Casting.ID}) {
/if (${SingTime}<=0) /goto :NonCombatSingBreak
/goto :NonCombatSing2
}
:NonCombatSingBreak
/if (${SingTime}>0) /goto :NonCombatSing1
/if (${Duration}==0) {
/delay ${DynamicBuffer}
/stopsong
} else {
:NonCombatSing3
/varcalc Buffer ${Buffer}+1
/delay 1
/if (${Buffer}>8) {
/stopsong
/goto :NonCombatSing1
}
/if ((!${Me.Song["${Me.Gem[${Song}]}"].ID})&&(!${Me.Buff["${Me.Gem[${Song}]}"].ID})) /goto :NonCombatSing3
/if ((${Me.Song["${Me.Gem[${Song}]}"].Duration}<${Math.Calc[${Duration}-1]})&&(${Me.Buff["${Me.Gem[${Song}]}"].Duration}<${Math.Calc[${Duration}-1]})) /goto :NonCombatSing3
/varset DynamicBuffer ${Buffer}
/stopsong
}
| /echo Dynamic Buffer: ${DynamicBuffer}
/varcalc NonCombatCurSong ${NonCombatCurSong}+1
/if (${NonCombatCurSong}>${NNonCombatSongs}) /varset NonCombatCurSong 1
/return
Sub CheckSong(GemNumber)
/if (${Me.Gem[${GemNumber}].SpellType.Find["Beneficial"]}) {
/if (${Me.Gem[${GemNumber}].TargetType.Find["Group"]} || ${Me.Gem[${GemNumber}].TargetType.Find["Self"]} || ${Me.Gem[${GemNumber}].TargetType.Find["PC"]}) {
/if ((${Me.Gem[${GemNumber}].Name.Equal[Cassindra`s Chant of Clarity]}) || (${Me.Gem[${GemNumber}].Name.Equal[Cassindra's Chorus of Clarity]})) {
/return 3
}
/return ${Me.Gem[${GemNumber}].Duration}
} else {
/return 0
}
} else {
/return 0
}
/return
Code: Select all
| - fluffychant.mac - By Fluffy
#event GetTar "You must first select a target for this spell!"
#Event Exp "#*#You gain#*#experience#*#"
|#event Died "You have entered"
#turbo 10
Sub Main()
/declare Exper int outer
/declare AAExp int outer
/declare LDExp float outer ${Me.PctGroupLeaderExp}
/declare AAAExp float outer ${Me.PctAAExp}
/declare Exp float outer ${Me.PctExp}
/varset Exper ${Me.Exp}
/varset AAExp ${Me.AAExp}
/echo Fluffy's Chant Kite Macro
:Loop
/doevents
/if (!${Target.ID}) {
|No target get one
/echo No target, getting one!
/call GetTarget
}
/if (${Target.Distance}>150) {
/echo Target Warped... Getting a new target; id was ${Target.ID}
/call GetTarget
/delay 2
}
/goto :Loop
:Done
echo Fluffy's Chant Kite Macro Completed
/return
Sub Event_Exp
/call Exp
/return
Sub Exp
/varset AAExp ${Math.Calc[${Me.AAExp}-${AAExp}]}
/varset Exper ${Math.Calc[${Me.Exp}-${Exper}]}
/echo ** EXP: ${Exper}:${Me.PctExp}% - AAXP: ${AAExp}:${Me.AAExp}% - ${Math.Calc[${Macro.RunTime}/60]} minutes
/varset Exper ${Me.Exp}
/varset AAExp ${Me.AAExp}
| More information
|- Ignore leadership experience event triggers (redundant trigger)
/if (${Line.Find[leadership]}) /return
|- Experience calculation and reporting
/echo ** XP-Delta: REG (${Math.Calc[${Me.PctExp}-${Exp}]}%), AA (${Math.Calc[${Me.PctAAExp}-${AAAExp}]}%), LDR (${Math.Calc[${Me.PctGroupLeaderExp}-${LDExp}]}%)
/varset LDExp ${Me.PctGroupLeaderExp}
/varset AAAExp ${Me.PctAAExp}
/varset Exp ${Me.PctExp}
/return
Sub Event_GetTar
/call GetTarget
/return
Sub GetTarget
/target ID ${NearestSpawn[2, npc].ID}
/if (${Target.ID}) {
/echo Found one!
}
/return