Page 2 of 3
Posted: Fri May 21, 2004 3:17 am
by bzt
Ok..I am enchanting clay with a baby ench..the ench has enough mana for 2 fizzles, then not enough mana. I fixed it though..I just raised the min mana lvl to the min mana lvl that he needs to cast the spell..and its working great.. I am sorry to have posted before tinkering. I also edited the max arcane to *6+5 so that he never stops. It may be cheesy and chopy the way I did it..but its working for me. Thanks much!
Posted: Fri May 21, 2004 4:26 am
by Fuergrissa
thats good to hear, and by changing the macro you have adapted it to work for you.
You have actually bothered to have a go yaself, and to that means are well on the road to writing your own macs :)
Posted: Fri May 21, 2004 12:36 pm
by bzt
ive adapted a few thru trial and error..but there is absoutleyy no way I could write one from scratch..lol heck the advbot, I couldnt even figure out the stuff to change for it to work for me..
I enjoy MQ2 and use it frequently..and I thank you folks for all your help!
Posted: Fri May 06, 2005 11:10 am
by Soul Hunter
where can I find spellcast.inc?
Posted: Fri May 06, 2005 11:15 am
by Fuergrissa
I would change the top include from spellcast.inc to spell_routines.inc and they both can be found in the snippets sections.
Posted: Fri May 06, 2005 4:03 pm
by Soul Hunter
When I run trainspell.mac using the .inc you included in the first post it gives me
Unparsable in Calculation: 'g'
trainspell.mac@16(Main):/if (${ArcaneLevel}>235 /varset ArcaneLevel 235
the current macro has ended
Failed to parse /if condition '(270>235)'. no-numeric encountered
I'm not sure if this is just an older macro and needs the cap reset or what...thanks in advance for the assistance
Posted: Fri May 06, 2005 5:46 pm
by Fuergrissa
Soul Hunter wrote:When I run trainspell.mac using the .inc you included in the first post it gives me
Unparsable in Calculation: 'g'
trainspell.mac@16(Main):/if (${ArcaneLevel}>235 /varset ArcaneLevel 235
the current macro has ended
Failed to parse /if condition '(270>235)'. no-numeric encountered
I'm not sure if this is just an older macro and needs the cap reset or what...thanks in advance for the assistance
The fix is on the board and was easily found with the search function, BUT i have edited my first post for you, quite a while ago there was a problem with the code on theboard that changed alot of the macros ">" and "<" symbols to their Equivalents ">" and "<".
I have edited the first post with the correct symbols and it will work fine now.
Enjoy
Posted: Sat May 21, 2005 6:16 pm
by Merlin
how hard would be be to make a macro similiar to this what would keep casting a spell like yaulp every time it fades?
Posted: Sat May 21, 2005 6:27 pm
by Fuergrissa
Merlin wrote:how hard would be be to make a macro similiar to this what would keep casting a spell like yaulp every time it fades?
It can be as simple as (Untested)
Code: Select all
|Yaulp.mac
#include spell_routines.inc
sub main
:main
/if (${Me.PctMana}<10) /echo "No Mana to cast Yaulp"
/if (!${Me.Buff[Yaulp].ID}) {
/call cast "Yaulp"
}
/delay 1s
/goto :main
/return
Or harder with lots of checks and variables for diferent spells
Posted: Wed Aug 17, 2005 2:08 pm
by Fammaman
Very nice spell training macro, and I'm very happy with the ability to delete summoned items with the .ini file!
This is my very first message on this board, though I've been a lurker for awhile - and my programming skill is basic at best.
I had been using
practice.mac by JP5, but it seems that spelltrain.mac does a bit more of what I need.
I would, however, like to add the following from the other mac, to let me know my progress when I'm done -
Code: Select all
#event SkillUp "You have become better at #1#! (#2#)"
#event ESC "You no longer have a target."
Sub Event_ESC
/echo Macro Ended by user.
/call Results
/return
|-- Sub Event_SkillUp
Sub Event_SkillUp(string Line, string SkillType, int SkillValue)
/if (${Spell[${Me.Gem[${GemNumber}]}].Skill.Equal[${SkillType}]}) {
/varcalc MainSkillUp ${MainSkillUp}+1
}
/if (${Spell[${Me.Gem[${GemNumber}]}].Skill.NotEqual[${SkillType}]}) {
/varcalc SecSkillUp ${SecSkillUp}+1
}
/if (${Spell[${Me.Gem[${GemNumber}]}].Skill.Equal[${SkillType}]}) {
/if (${Math.Calc[${Me.Level}*5+5]}==${SkillValue}) {
/call Results
}
}
/return
|-- Sub Results
Sub Results
/echo Results: ${Spell[${Me.Gem[${GemNumber}]}].Skill} (${Me.Skill[${Spell[${Me.Gem[${GemNumber}]}].Skill}]}) -- Total of ${MainSkillUp} skillups!
/echo Total other skillups (not ${Spell[${Me.Gem[${GemNumber}]}].Skill}) -- ${SecSkillUp}.
/endmacro
/return
So... my own fiddling ends up making the mac look like this, and I'd like your opinion if this works (can't check it myself atm), or if you could modify your mac a little more accurately then I can to do the same thing:
Code: Select all
|**
trainspell.mac
Written by Fuergrissa V2.0
HandleItem routine "Borrowed" from bootyjuice, Thank You.
Ini File: trainspell.ini
0 = Destroy
1 = Keep
Any summoned items are added to the ini file automatically
first time around and are kept by default.
**|
#Define ArcaneMax 235
#include spellcast.inc
#event SkillUp "You have become better at #1#! (#2#)"
#event ESC "You no longer have a target."
Sub Main
/declare ArcaneLevel int outer
/declare SpellName string outer
/declare GemNumber int outer
/declare WhatSkill string outer
/declare Maxxed int outer
/varcalc ArcaneLevel ${Me.Level}*5+5
/echo Your Spell Cap is ${ArcaneLevel}
/if (${ArcaneLevel}>ArcaneMax) /varset ArcaneLevel ArcaneMax
/echo Your Current Spell Cap is ${ArcaneLevel}
/varset GemNumber 0
/varset Maxxed 0
/varset SpellName ""
/varset WhatSkill ""
:TrainingLoop
/if (${Me.PctMana}<10) /goto :SitDown
/if (${Cursor.ID}) /call SummonedItem
/goto :CastSpell
:SitDown
/echo Mana at ${Me.PctMana}% Medding till over 99%
:MedLoop
/if (${Me.State.Equal[STAND]}) /sit
/if (${Me.PctMana}>99) /goto :FullMana
/goto :MedLoop
/return
:FullMana
/echo Mana at ${Me.PctMana}% Starting to cast again...
/if (${Me.State.Equal[SIT]}) /stand
:CastSpell
/Varcalc GemNumber ${GemNumber}+1
/if (${GemNumber}>8) /varset GemNumber 1
/varset SpellName ${Me.Gem[${GemNumber}]}
/if (!${Me.Gem[${SpellName}]}) /goto :TrainingLoop
/goto :TestSkill
:StartCasting
/target myself
/echo Casting ${SpellName} from GemSlot ${GemNumber} of Type ${Spell[${SpellName}].Skill} (${Me.Skill[${Spell[${SpellName}].Skill}]})
/varset Maxxed 0
/call cast "${SpellName}"
/goto :TrainingLoop
/return
:TestSkill
/if (${Me.Skill[${Spell[${SpellName}].Skill}]}==${ArcaneLevel}) /goto :TooHigh
/goto :StartCasting
/return
:TooHigh
/varset WhatSkill ${Spell[${SpellName}].Skill}
/varcalc Maxxed ${Maxxed}+1
/echo You cannot Increase ${WhatSkill} anymore.
/if (${Maxxed}==8) /goto :Finished
/goto :TrainingLoop
/return
:Finished
/echo Ending
/call Results
Sub SummonedItem
/declare ItemSetting int local
/declare NotFound int local
/varset NotFound -1
| Look up this item in trainspell.ini
/varset ItemSetting ${Ini[trainspell.ini,ItemList,${Cursor.Name},${NotFound}]}
/delay 5
| If the item isn't in the .ini file then add it.
/if (${ItemSetting}==${NotFound}) {
/ini "trainspell.ini" "ItemList" "${Cursor.Name}" "1"
/varset ItemSetting 1
}
| If we're keeping this item then bag it.
| Otherwise, just destroy it.
/if (${ItemSetting}==1) {
:BagIt
/autoinventory
/delay 5
/if (${Cursor.ID}) /goto :BagIt
} else {
/destroy
}
/return
Sub Event_ESC
/echo Macro Ended by user.
/call Results
/return
|-- Sub Event_SkillUp
Sub Event_SkillUp(string Line, string SkillType, int SkillValue)
/if (${Spell[${Me.Gem[${GemNumber}]}].Skill.Equal[${SkillType}]}) {
/varcalc MainSkillUp ${MainSkillUp}+1
}
/if (${Spell[${Me.Gem[${GemNumber}]}].Skill.NotEqual[${SkillType}]}) {
/varcalc SecSkillUp ${SecSkillUp}+1
}
/if (${Spell[${Me.Gem[${GemNumber}]}].Skill.Equal[${SkillType}]}) {
/if (${Math.Calc[${Me.Level}*5+5]}==${SkillValue}) {
/call Results
}
}
/return
|-- Sub Results
Sub Results
/echo Results: ${Spell[${Me.Gem[${GemNumber}]}].Skill} (${Me.Skill[${Spell[${Me.Gem[${GemNumber}]}].Skill}]}) -- Total of ${MainSkillUp} skillups this session!
/echo Total other skillups (not ${Spell[${Me.Gem[${GemNumber}]}].Skill}) -- ${SecSkillUp}.
/endmacro
/return
Posted: Wed Sep 07, 2005 5:32 pm
by Glacier
I can't thank you enough for writing such a simple and functional mac.
This definitely has made life much easier for my n00blet Ranger.
helpzor
Posted: Mon Sep 26, 2005 9:14 pm
by B_rizzleB
ok i've done all the stuff and put the stuff in the directory and when i go /macro trainspell it feeds back trainspell.mac@47 (main): /call cast "${SpellName} the current macro has ended. im wandering if u can helpz me? btw im using spell_routine.inc
Re: helpzor
Posted: Tue Sep 27, 2005 3:05 am
by Fuergrissa
B_rizzleB wrote:ok i've done all the stuff and put the stuff in the directory and when i go /macro trainspell it feeds back trainspell.mac@47 (main): /call cast "${SpellName} the current macro has ended. im wandering if u can helpz me? btw im using spell_routine.inc
change this
to this
Posted: Sun Aug 19, 2007 7:48 am
by vanemon
is there any undead npc with low dps where you can try evocation (undead nukes, call for blood) for necros?
Posted: Sun Aug 19, 2007 2:26 pm
by Night Hawk
nektulos forest?