Page 3 of 3
Re
Posted: Mon May 23, 2005 9:18 am
by yousten
So u only need the macro copyd in the texteditor, and with the ending .mac. Or do u need anything else. Sorry for the stzupied question but i am new to this.
There is any where a help file or somehting similar where i can learn this, lol?
Thnxs
Posted: Mon May 23, 2005 9:22 am
by yousten
Ok, finally found the help file, sorry for the spam here
Posted: Thu Sep 22, 2005 7:00 pm
by brianman
Made my own version which I think is a bit more intelligent.
It uses 2 macroes, one for the teacher and one for the student.
What it does it simply to say in group chat what language it wishes to learn now and the teacher switches to that language.
LangTeach.mac
Code: Select all
|** LangTeach.mac
* by brianMan
*
* This is 1 of 2 files used for this language trainer.
* - LangTeach.mac (this) is used by the "teacher".
* - LangLearn.mac is used by the "student".
*
* What this macro does, is simply start at "/lang 2" and spam away in group, it
* keeps spamming that language untill the "student" informs the "teacher(s)"
* that this language is now maxed.
**|
#Event SwitchLang "#1# tells the group, 'Lang:#2#'"
#chat group
Sub Main
/declare TheLang int outer
/varset TheLang 2
/lang ${TheLang}
:loop
/if (!${Target.ID}) /return
/doevents
/keypress enter chat
/keypress /
/keypress g chat
/keypress s chat
/keypress a chat
/keypress y chat
/keypress space chat
/keypress ${Math.Rand[2]} chat
/keypress enter chat
/goto :loop
/return
Sub Event_SwitchLang(string Line, string Toon, int Lang)
/echo Caught it: ${Toon} / ${Lang}
/if (${Lang} == 0) {
/lang 1
/endmacro
}
/varset TheLang ${Lang}
/lang ${TheLang}
/return
LangLearn.mac
Code: Select all
|** LangLearn.mac
* by brianMan
*
* This is 1 of 2 files used for this language trainer.
* - LangLearn.mac (this) is used by the "student".
* - LangTeach.mac is used by the "teacher".
*
* What this macro does, is simply start at "/lang 2" and spam away in group, it
* keeps spamming that language untill it's maxed, then it switches to the next
* language, and informs the "teacher(s)" what language to switch to.
**|
Sub Main
/declare LearnLang int local
/for LearnLang 2 to 25
/lang 1
/gsay Lang:${LearnLang}
/lang ${LearnLang}
/delay 1
:loop
/if (!${Target.ID}) /return
/delay 1
/keypress enter chat
/keypress /
/keypress g chat
/keypress s chat
/keypress a chat
/keypress y chat
/keypress space chat
/keypress ${Math.Rand[2]} chat
/keypress enter chat
/if (${Me.LanguageSkill[${LearnLang}]} < 100) /goto :loop
/next LearnLang
/gsay Lang:0
/return
Stops
Posted: Mon Dec 19, 2005 11:04 am
by Xasiz
Hey Brianman, I tried this macro out today and it stops at 11 old erudine. Is there an update to this?
Posted: Mon Dec 19, 2005 11:23 am
by fearless
What recent changes?
Posted: Mon Mar 13, 2006 8:06 am
by JakeSpeed
Quick question how do you stop it?
Thanks,
Posted: Mon Mar 13, 2006 9:11 am
by A_Druid_00
/endmacro?
Posted: Mon Mar 13, 2006 10:38 am
by Yunto?
Actually cant /endmacro since its keypressing. Clear your target window (esc) should end it.
Posted: Mon Mar 13, 2006 10:59 am
by A_Druid_00
You should still be able to hotkey it, but yeah.
Re: Stops
Posted: Fri Aug 04, 2006 3:22 pm
by brianman
Xasiz wrote:Hey Brianman, I tried this macro out today and it stops at 11 old erudine. Is there an update to this?
Hmm. I haven't experienced that problem. It might be that either the teacher or the student (or both) don't have all the languages. For my macro(s) to work properly you must have 1 point in all the languages on the teacher(s).
To make it run you need to have a target (just target yourself). This is due to it using /keypress'es to send the data (otherwise the client for some reason don't see the text and therefore dosn't skill up from it), so hitting the Escape key will clear your targeted and stop the macro (since you don't have a target).
Posted: Sun Dec 31, 2006 3:41 am
by wakkedup
Comments pretty much say it all...Thanks Cr4zyb4rd for the original code, still working like a champ
Code: Select all
|========================================================================================================================
| Modded from Cr4zyb4rd...Thanks for the original code, still working like a champ
| http://www.macroquest2.com/phpBB2/viewtopic.php?t=9067&postdays=0&postorder=asc&start=15
| Run this on 2 or more chars, will cycle through the languages and skill them up.
| Echoes what skill started at & ended at upon exitting(for skills that increased)
| Gives total language & your average upon exitting as well(excluding common tongue)
| Clear target with ESC key to stop macro
| Character MUST have at least 1 point in each language for this to work properly
|========================================================================================================================
Sub Main
/declare BeginSkills int local
/declare EndSkills int local
/declare lingo int local 0
/declare avg int local 0
/declare index int local
/declare looper int local
/for BeginSkills 2 to 25
/declare "${Me.Language[${BeginSkills}]}_Begin" int outer ${Me.LanguageSkill[${BeginSkills}]}
/next BeginSkills
/echo Started ::: ${Macro}
:loopme
/target ${Group.Member[1]}
/for index 2 to 25
/language ${index}
/delay 1
/for looper 1 to 2000
/if (!${Bool[${Target}]}) {
/echo No target, exiting ${Macro}
/language 1
/return
}
/if (!${Math.Calc[${looper} % 30].Int}) /delay 1
/keypress enter chat
/keypress /
/keypress g chat
/keypress s chat
/keypress a chat
/keypress y chat
/keypress space chat
/keypress ${Math.Rand[9]} chat
/keypress enter chat
/next looper
/next index
/goto :loopme
:OnExit
/for EndSkills 2 to 25
/declare "${Me.Language[${EndSkills}]}_End" int outer ${Me.LanguageSkill[${EndSkills}]}
/if (${${Me.Language[${EndSkills}]}_Begin}==${${Me.Language[${EndSkills}]}_End}) {
/delay 1
} else /if (${Me.LanguageSkill[${EndSkills}]}>99) {
/echo ${Me.Language[${EndSkills}]} ::: ${${Me.Language[${EndSkills}]}_Begin} TO MASTER
} else {
/echo ${Me.Language[${EndSkills}]} ::: ${${Me.Language[${EndSkills}]}_Begin} to ${${Me.Language[${EndSkills}]}_End}
}
/next EndSkills
/varcalc lingo ${Me.LanguageSkill[2]}+${Me.LanguageSkill[3]}+${Me.LanguageSkill[4]}+${Me.LanguageSkill[5]}+${Me.LanguageSkill[6]}+${Me.LanguageSkill[7]}+${Me.LanguageSkill[8]}+${Me.LanguageSkill[9]}+${Me.LanguageSkill[10]}+${Me.LanguageSkill[11]}+${Me.LanguageSkill[12]}+${Me.LanguageSkill[13]}+${Me.LanguageSkill[14]}+${Me.LanguageSkill[15]}+${Me.LanguageSkill[16]}+${Me.LanguageSkill[17]}+${Me.LanguageSkill[18]}+${Me.LanguageSkill[19]}+${Me.LanguageSkill[20]}+${Me.LanguageSkill[21]}+${Me.LanguageSkill[22]}+${Me.LanguageSkill[23]}+${Me.LanguageSkill[24]}+${Me.LanguageSkill[25]}
/varcalc avg ${lingo} / 24
/echo ${lingo} total linguist skill points.
/echo ${avg} linguist skill average.
/return
Posted: Fri Jan 12, 2007 2:12 pm
by Sorry
What about the 26th and 27th languages? They are both called "an unknown language" and at present can only be learned from another player with these languages. Surely there is something that MQ can do about this?
controllable version
Posted: Wed Mar 28, 2007 6:29 pm
by jacensolo
Here's my version. I wanted one that would let me skill up all of the characters on my friends account, so I made this version that idles, will invite when it gets a tell saying "Teach me.", and will spam each language enough to get my friend's character with 200 INT up to max in each language. Also, I added a feature so that if your character doesn't max a language, you can send a tell to the teacher saying "Teach more (language name here)" and it will do 200 more repetitions of that language.
Code: Select all
#event called "#1# tells you, 'Teach me.'"
#event teachmore "#1# tells you, 'Teach More #2#'"
Sub Main
/declare lang_current int 1
/declare lang_start int outer 0
/echo Now running Language Master
/call Idle
/return
Sub Idle
:Idle
/if (${lang_start}=1) /call Teaching 1000
/doevents
/delay 20
/goto :Idle
/return
Sub Teaching(int reps)
:Teachloop
/lang ${lang_current}
/echo Now teaching ${lang_current}
/for x 0 to ${reps}
/if (${Target.Name.Equal[${Me.Name}]}) /call Idle
{
/keypress enter
/keypress a chat
/keypress enter chat
/keypress enter
/keypress a chat
/keypress enter chat
/keypress enter
/keypress a chat
/keypress enter chat
/keypress enter
/keypress a chat
/keypress enter chat
/keypress enter
/keypress a chat
/keypress enter chat
}
/next x
/varcalc lang_current ${lang_current}+1
/if (${lang_current}>25) {
/lang 1
/varset lang_current 2
/varset lang_start 0
/target clear
/disband
/beep
/return
}
/goto :Teachloop
/return
Sub Event_called(line,learner)
/invite ${learner}
/varset lang_start 1
/delay 10m ${Group.Member[1].ID}
/return
Sub Event_teachmore(line,learner,langname)
/if (${langname.Equal[Barbarian]}) /lang 2
/if (${langname.Equal[Erudian]}) /lang 3
/if (${langname.Equal[Elvish]}) /lang 4
/if (${langname.Equal[Dark Elvish]}) /lang 5
/if (${langname.Equal[Dwarvish]}) /lang 6
/if (${langname.Equal[Troll]}) /lang 7
/if (${langname.Equal[Ogre]}) /lang 8
/if (${langname.Equal[Gnomish]}) /lang 9
/if (${langname.Equal[Halfling]}) /lang 10
/if (${langname.Equal[Thieves Cant]}) /lang 11
/if (${langname.Equal[Old Erudian]}) /lang 12
/if (${langname.Equal[Elder Elvish]}) /lang 13
/if (${langname.Equal[Froglok]}) /lang 14
/if (${langname.Equal[Goblin]}) /lang 15
/if (${langname.Equal[Gnoll]}) /lang 16
/if (${langname.Equal[Combine Tongue]}) /lang 17
/if (${langname.Equal[Elder Teir'Dal]}) /lang 18
/if (${langname.Equal[Lizardman]}) /lang 19
/if (${langname.Equal[Orcish]}) /lang 20
/if (${langname.Equal[Faerie]}) /lang 21
/if (${langname.Equal[Dragon]}) /lang 22
/if (${langname.Equal[Elder Dragon]}) /lang 23
/if (${langname.Equal[Dark Speech]}) /lang 24
/if (${langname.Equal[Vah Shir]}) /lang 25
/invite ${learner}
/delay 10m ${Group.Member[1].ID}
/call Teaching 200
/return
Re: Language Macro - Master Languages with a group
Posted: Thu Sep 13, 2018 10:55 am
by Gurash
This version will cycle through all 26 teachable languages (easily expandable if they add more languages). Target yourself (borrowed that idea) to switch the language to common tongue and end the macro quickly. No skill checks, no frills, just spam. As with all macros, copy and paste into a text editor and save it as <whatever you want>.mac (make sure .txt is not selected if using notepad).
Note: You must be grouped and in the same zone to learn languages.
Note: In order to teach a language, you must have at least one skill point in that language.
Code: Select all
| Lingo.mac
| Author: Gurash
Sub Main
/declare numLangs int 27
/declare x int 2
:loop
/for x 2 to ${numLangs}
/if (${Target.Name.Equal[${Me.Name}]}) /goto :end
/lang ${x}
{
/gsay Hello, group! Today, we are learning languages.
/gsay Learning languages only takes a short amount of time.
/gsay It costs nothing in platinum, and you can do it while leveling!
/gsay There's really no reason not to learn all of the languages.
/gsay Hopefully today's lesson will be useful to you.
}
/delay 1s
/next x
/goto :loop
:end
/lang 1
/endmacro
/return
Click to view a list of languages in EQ
Alaran language quest
Hadal language quest
Excellent Interior Design Site
Posted: Thu Aug 10, 2023 10:52 pm
by FrankJScott
Why don't you
Google it! before you post