${Me.Language[]} enumerating wrong and other oddities

A forum for reporting bugs NOT related to custom plugins.

Moderator: MacroQuest Developers

LamahHerder
a hill giant
a hill giant
Posts: 299
Joined: Sat Jun 29, 2002 2:37 am

${Me.Language[]} enumerating wrong and other oddities

Post by LamahHerder » Tue Jan 31, 2017 1:08 am

This may be because of FV
I may be going crazy, not sure why I have been messing with this for so long as it is probably irrelevant and not worth fixing but figured I would pass this along....

1. It seems that enumeration is off?
2. On FV Common Tongue = Human Tongue. Not a bug just FV BS < /if ${langArray[${langNum}].Equal[Human Tongue]} ) /fix in macro >
3. Elder Teir'Dal seems messed up example /echo ${Me.Language[Elder Teir'Dal]} reports NULL, I tried a few different combos with no luck.

Code: Select all

|langtest.mac
#event langHelp "#1# - #2#"

sub main
	/declare langArray[25] string outer
	/declare langHelpNum int outer 1
	/declare i int outer 1
	
	/echo =====================
	/echo =====================
	/echo =====================
	/doevents flush
	/lang help
	/delay 1
	/doevents
	
	/for langHelpNum 1 to ${langArray.Size}
		/if ( ${Bool[${langArray[${langHelpNum}]}]} ) {
			/echo =====================
			/echo ${langHelpNum} - ${langArray[${langHelpNum}]}
			/echo ${Me.Language[${langArray[${langHelpNum}]}]} - ${Me.Language[${langHelpNum}]}
			/echo 
			}
	/next langHelpNum
/return


sub event_langHelp(Line, int num, string name)
	/varset langArray[${num}] ${name}
	/delay 1
/return

Code: Select all

Logging to 'eqlog.txt' is now *ON*.
[MQ2] =====================
[MQ2] =====================
[MQ2] =====================
Format: /language #
1 - Human Tongue
2 - Barbarian
3 - Erudian
4 - Elvish
5 - Dark Elvish
6 - Dwarvish
7 - Troll
8 - Ogre
9 - Gnomish
10 - Halfling
11 - Thieves Cant
12 - Old Erudian
13 - Elder Elvish
14 - Froglok
15 - Goblin
16 - Gnoll
17 - Combine Tongue
18 - Elder Teir'Dal
19 - Lizardman
20 - Orcish
21 - Faerie
22 - Dragon
23 - Elder Dragon
24 - Dark Speech
25 - Vah Shir
[MQ2] =====================
[MQ2] 1 - Human Tongue
[MQ2] NULL - Human Tongue
[MQ2] 
[MQ2] =====================
[MQ2] 2 - Barbarian
[MQ2] 1 - Barbarian
[MQ2] 
[MQ2] =====================
[MQ2] 3 - Erudian
[MQ2] 2 - Erudian
[MQ2] 
[MQ2] =====================
[MQ2] 4 - Elvish
[MQ2] 3 - Elvish
[MQ2] 
[MQ2] =====================
[MQ2] 5 - Dark Elvish
[MQ2] 4 - Dark Elvish
[MQ2] 
[MQ2] =====================
[MQ2] 6 - Dwarvish
[MQ2] 5 - Dwarvish
[MQ2] 
[MQ2] =====================
[MQ2] 7 - Troll
[MQ2] 6 - Troll
[MQ2] 
[MQ2] =====================
[MQ2] 8 - Ogre
[MQ2] 7 - Ogre
[MQ2] 
[MQ2] =====================
[MQ2] 9 - Gnomish
[MQ2] 8 - Gnomish
[MQ2] 
[MQ2] =====================
[MQ2] 10 - Halfling
[MQ2] 9 - Halfling
[MQ2] 
[MQ2] =====================
[MQ2] 11 - Thieves Cant
[MQ2] 10 - Thieves Cant
[MQ2] 
[MQ2] =====================
[MQ2] 12 - Old Erudian
[MQ2] 11 - Old Erudian
[MQ2] 
[MQ2] =====================
[MQ2] 13 - Elder Elvish
[MQ2] 12 - Elder Elvish
[MQ2] 
[MQ2] =====================
[MQ2] 14 - Froglok
[MQ2] 13 - Froglok
[MQ2] 
[MQ2] =====================
[MQ2] 15 - Goblin
[MQ2] 14 - Goblin
[MQ2] 
[MQ2] =====================
[MQ2] 16 - Gnoll
[MQ2] 15 - Gnoll
[MQ2] 
[MQ2] =====================
[MQ2] 17 - Combine Tongue
[MQ2] 16 - Combine Tongue
[MQ2] 
[MQ2] =====================
[MQ2] 18 - Elder Teir'Dal
[MQ2] NULL - Elder Teir'Dal
[MQ2] 
[MQ2] =====================
[MQ2] 19 - Lizardman
[MQ2] 18 - Lizardman
[MQ2] 
[MQ2] =====================
[MQ2] 20 - Orcish
[MQ2] 19 - Orcish
[MQ2] 
[MQ2] =====================
[MQ2] 21 - Faerie
[MQ2] 20 - Faerie
[MQ2] 
[MQ2] =====================
[MQ2] 22 - Dragon
[MQ2] 21 - Dragon
[MQ2] 
[MQ2] =====================
[MQ2] 23 - Elder Dragon
[MQ2] 22 - Elder Dragon
[MQ2] 
[MQ2] =====================
[MQ2] 24 - Dark Speech
[MQ2] 23 - Dark Speech
[MQ2] 
[MQ2] =====================
[MQ2] 25 - Vah Shir
[MQ2] 24 - Vah Shir
[MQ2] 
The current macro has ended.

Oh and my beautiful macro I used to play with arrays, for, and while that is semi-broken =)

Code: Select all

#event langHelp "#1# - #2#"

sub main
	/echo =====================================
	/echo You must click your main chat window so it will chat there for this to work as /lang only effects the active window
	/echo =====================================
	
	/if ( ${Me.GroupSize}<=1 ) /call endmac

	/declare gsayDelay int outer 2
	/declare gsayTeachCnt int outer
	/declare gsayTeachTotal int outer 20
	
	/declare langArray[25] string outer
	/declare langNum int outer 1
	
	/doevents flush
	/lang help
	/delay 5
	/doevents langHelp

	/for langNum 1 to ${langArray.Size}
		/if ( ${Bool[${langArray[${langNum}]}]} ) {
			/if ( ${langArray[${langNum}].Equal[Human Tongue]} ) {
				/if ( ${Me.LanguageSkill[Common Tongue]} != 100 ) {
					/echo Learning Common/Human Tongue 
					/lang ${langNum}
					/while ( ${Me.LanguageSkill[Common Tongue]} < 100 ) {
						/if ( ${Me.GroupSize}<=1 ) /call endmac
						/delay ${gsayDelay}
						/gsay Do you understand the words that are coming out of my mouth?
						/gsay Do you understand the words that are coming out of my mouth?
						/gsay Do you understand the words that are coming out of my mouth?

					}
				}
				/next langNum
			}
			
			/if ( ${langArray[${langNum}].Equal[Elder Teir'Dal]} ) {
				/echo Sorry Elder Teir'Dal is broken... skipping
					/next langNum
					
					/if ( ${Me.LanguageSkill[Elder Teir'Dal]} != 100 ) {
						/echo Learning Elder Teir'Dal/Dragon
						/lang ${langNum}
						/while ( ${Me.LanguageSkill[Elder Dragon]} < 100 ) {
							/if ( ${Me.GroupSize}<=1 ) /call endmac
							/delay ${gsayDelay}
							/gsay Do you understand the words that are coming out of my mouth?
							/gsay Do you understand the words that are coming out of my mouth?
							/gsay Do you understand the words that are coming out of my mouth?
	
						}
					}
					/next langNum
				}
				
			/if ( ${Me.LanguageSkill[${langArray[${langNum}]}]} != 100 ) {
						/echo Learning ${langArray[${langNum}]}
						/lang ${langNum}
						/while ( ${Me.LanguageSkill[${langArray[${langNum}]}]} < 100 ) {
							/if ( ${Me.GroupSize}<=1 ) /call endmac
							/delay ${gsayDelay}
							/gsay Do you understand the words that are coming out of my mouth?
							/gsay Do you understand the words that are coming out of my mouth?
							/gsay Do you understand the words that are coming out of my mouth?
						}
					}
		}
	/next langNum
/echo Language all 100
/end

sub endmac
	/echo [${Macro.Name}] You need a group! You have none! Goodbye!
/end

sub event_langHelp(Line, int num, string name)
	/varset langArray[${num}] ${name}
/return