help with error? Argument index 1 out of range

Discuss macro implementations, ask for macro help (to share your creations, see User Creations, probably either Campaign Frameworks or Drop-in Resources).

Moderators: dorpond, trevor, Azhrei, giliath, jay, Mr.Ice

Post Reply
ziltmilt
Dragon
Posts: 331
Joined: Sun Apr 29, 2007 9:28 pm
Contact:

help with error? Argument index 1 out of range

Post by ziltmilt »

Hoping someone can shed some light on an error I can't figure out. I'm getting this result from a newly created function:

Code: Select all

Argument index 1 out of range (max of -1) in function "arg".
this is my testing code/driver to see if the function works:

Code: Select all

[h: sClass = "Fighter"]
[h: iLevel = 10]
[h: X = GetAttackBonus(sClass, iLevel)]

{h} is the bonus
and this is the body of the function:

Code: Select all

[h: ClassName = arg(0)]
[h: Level = arg(1)]
[h: Bonus = 0]
[h: AttackList = getLibProperty("AttackScores","Lib:Utility")]

[h, foreach(Attack, AttackList), code: {

		[h: LevelName = json.get(Attack, "Level")]		
		[h: CharClass = json.get(Attack, "CharClass")]
		[h: AttackBonus = json.get(Attack, "AttackBonus")]
		[h: bFound = if(LevelName == Level && ClassName == CharClass, 1,0)]		
		[h: Bonus = if(bFound > 0, AttackBonus, Bonus)]

	}]
[h: macro.return = Bonus]
and this is a sample of the JSON array of JSON objects to store the attack bonus table:

Code: Select all

{"CharClass":"Fighter","Level":0,"AttackBonus":0},{"CharClass":"Fighter","Level":1,"AttackBonus":1},{"CharClass":"Fighter","Level":2,"AttackBonus":2},{"CharClass":"Fighter","Level":3,"AttackBonus":2},{"CharClass":"Fighter","Level":4,"AttackBonus":3}
One thing that might be causing me grief is getting an error when I try running 'onCampaignLoad' manually.

Code: Select all

You do not have permission to call the "defineFunction" function.
But, I get no error at all when loading the CMPGN file. so maybe this isn't the problem. Anyone have an inkling of what's going on? thanks again in advance!!

User avatar
aliasmask
RPTools Team
Posts: 9024
Joined: Tue Nov 10, 2009 6:11 pm
Location: Bay Area

Re: help with error? Argument index 1 out of range

Post by aliasmask »

ziltmilt wrote:and this is a sample of the JSON array of JSON objects to store the attack bonus table:

Code: Select all

{"CharClass":"Fighter","Level":0,"AttackBonus":0},{"CharClass":"Fighter","Level":1,"AttackBonus":1},{"CharClass":"Fighter","Level":2,"AttackBonus":2},{"CharClass":"Fighter","Level":3,"AttackBonus":2},{"CharClass":"Fighter","Level":4,"AttackBonus":3}
How did you build this structure? Because your example is not a valid json. It's missing the []s. Also, which version of MT are you using. I think the error message is telling you that you are not passing a second argument. From your example, it's not evident why. Running the MT launcher and checking Macro Handling in the advanced tab will show you exactly which line the error is occuring in the .maptool folder under log.txt. The onCampaignLoad macro probably doesn't have the Allow Players to Edit unchecked in the options tab.
[/code]

ziltmilt
Dragon
Posts: 331
Joined: Sun Apr 29, 2007 9:28 pm
Contact:

Re: help with error? Argument index 1 out of range

Post by ziltmilt »

I didn't post the entire JSON array. It does have the enclosing [ ] characters. I'm using v 1.4.0.5.

Yes, I just got the onCampaignLoad error fixed, but am still getting the original 'out of range' error. Here's the entire JSON array:

Code: Select all

[{"CharClass":"Fighter","Level":0,"AttackBonus":0},{"CharClass":"Fighter","Level":1,"AttackBonus":1},{"CharClass":"Fighter","Level":2,"AttackBonus":2},{"CharClass":"Fighter","Level":3,"AttackBonus":2},{"CharClass":"Fighter","Level":4,"AttackBonus":3},{"CharClass":"Fighter","Level":5,"AttackBonus":4},{"CharClass":"Fighter","Level":6,"AttackBonus":4},{"CharClass":"Fighter","Level":7,"AttackBonus":5},{"CharClass":"Fighter","Level":8,"AttackBonus":6},{"CharClass":"Fighter","Level":9,"AttackBonus":6},{"CharClass":"Fighter","Level":10,"AttackBonus":6},{"CharClass":"Fighter","Level":11,"AttackBonus":7},{"CharClass":"Fighter","Level":12,"AttackBonus":7},{"CharClass":"Fighter","Level":13,"AttackBonus":8},{"CharClass":"Fighter","Level":14,"AttackBonus":8},{"CharClass":"Fighter","Level":15,"AttackBonus":8},{"CharClass":"Fighter","Level":16,"AttackBonus":9},{"CharClass":"Fighter","Level":17,"AttackBonus":9},{"CharClass":"Fighter","Level":18,"AttackBonus":10},{"CharClass":"Fighter","Level":19,"AttackBonus":10},{"CharClass":"Fighter","Level":20,"AttackBonus":10},{"CharClass":"Fighter","Level":21,"AttackBonus":11},{"CharClass":"Fighter","Level":22,"AttackBonus":11},{"CharClass":"Fighter","Level":23,"AttackBonus":11},{"CharClass":"Fighter","Level":24,"AttackBonus":12},{"CharClass":"Fighter","Level":25,"AttackBonus":12},{"CharClass":"Fighter","Level":26,"AttackBonus":12},{"CharClass":"Fighter","Level":27,"AttackBonus":12},{"CharClass":"Fighter","Level":28,"AttackBonus":13},{"CharClass":"Fighter","Level":29,"AttackBonus":13},{"CharClass":"Fighter","Level":30,"AttackBonus":13},{"CharClass":"Fighter","Level":31,"AttackBonus":13},{"CharClass":"Fighter","Level":32,"AttackBonus":14},{"CharClass":"Fighter","Level":33,"AttackBonus":14},{"CharClass":"Fighter","Level":34,"AttackBonus":14},{"CharClass":"Fighter","Level":35,"AttackBonus":14},{"CharClass":"Fighter","Level":36,"AttackBonus":15},{"CharClass":"Cleric","Level":1,"AttackBonus":1},{"CharClass":"Cleric","Level":2,"AttackBonus":1},{"CharClass":"Cleric","Level":3,"AttackBonus":2},{"CharClass":"Cleric","Level":4,"AttackBonus":2},{"CharClass":"Cleric","Level":5,"AttackBonus":3},{"CharClass":"Cleric","Level":6,"AttackBonus":3},{"CharClass":"Cleric","Level":7,"AttackBonus":4},{"CharClass":"Cleric","Level":8,"AttackBonus":4},{"CharClass":"Cleric","Level":9,"AttackBonus":5},{"CharClass":"Cleric","Level":10,"AttackBonus":5},{"CharClass":"Cleric","Level":11,"AttackBonus":5},{"CharClass":"Cleric","Level":12,"AttackBonus":6},{"CharClass":"Cleric","Level":13,"AttackBonus":6},{"CharClass":"Cleric","Level":14,"AttackBonus":6},{"CharClass":"Cleric","Level":15,"AttackBonus":7},{"CharClass":"Cleric","Level":16,"AttackBonus":7},{"CharClass":"Cleric","Level":17,"AttackBonus":7},{"CharClass":"Cleric","Level":18,"AttackBonus":8},{"CharClass":"Cleric","Level":19,"AttackBonus":8},{"CharClass":"Cleric","Level":20,"AttackBonus":8},{"CharClass":"Cleric","Level":21,"AttackBonus":9},{"CharClass":"Cleric","Level":22,"AttackBonus":9},{"CharClass":"Cleric","Level":23,"AttackBonus":9},{"CharClass":"Cleric","Level":24,"AttackBonus":9},{"CharClass":"Cleric","Level":25,"AttackBonus":10},{"CharClass":"Cleric","Level":26,"AttackBonus":10},{"CharClass":"Cleric","Level":27,"AttackBonus":10},{"CharClass":"Cleric","Level":28,"AttackBonus":10},{"CharClass":"Cleric","Level":29,"AttackBonus":10},{"CharClass":"Cleric","Level":30,"AttackBonus":11},{"CharClass":"Cleric","Level":31,"AttackBonus":11},{"CharClass":"Cleric","Level":32,"AttackBonus":11},{"CharClass":"Cleric","Level":33,"AttackBonus":11},{"CharClass":"Cleric","Level":34,"AttackBonus":11},{"CharClass":"Cleric","Level":35,"AttackBonus":12},{"CharClass":"Cleric","Level":36,"AttackBonus":12},{"CharClass":"Thief","Level":1,"AttackBonus":1},{"CharClass":"Thief","Level":2,"AttackBonus":1},{"CharClass":"Thief","Level":3,"AttackBonus":2},{"CharClass":"Thief","Level":4,"AttackBonus":2},{"CharClass":"Thief","Level":5,"AttackBonus":3},{"CharClass":"Thief","Level":6,"AttackBonus":3},{"CharClass":"Thief","Level":7,"AttackBonus":4},{"CharClass":"Thief","Level":8,"AttackBonus":4},{"CharClass":"Thief","Level":9,"AttackBonus":5},{"CharClass":"Thief","Level":10,"AttackBonus":5},{"CharClass":"Thief","Level":11,"AttackBonus":5},{"CharClass":"Thief","Level":12,"AttackBonus":6},{"CharClass":"Thief","Level":13,"AttackBonus":6},{"CharClass":"Thief","Level":14,"AttackBonus":6},{"CharClass":"Thief","Level":15,"AttackBonus":7},{"CharClass":"Thief","Level":16,"AttackBonus":7},{"CharClass":"Thief","Level":17,"AttackBonus":7},{"CharClass":"Thief","Level":18,"AttackBonus":8},{"CharClass":"Thief","Level":19,"AttackBonus":8},{"CharClass":"Thief","Level":20,"AttackBonus":8},{"CharClass":"Thief","Level":21,"AttackBonus":9},{"CharClass":"Thief","Level":22,"AttackBonus":9},{"CharClass":"Thief","Level":23,"AttackBonus":9},{"CharClass":"Thief","Level":24,"AttackBonus":9},{"CharClass":"Thief","Level":25,"AttackBonus":10},{"CharClass":"Thief","Level":26,"AttackBonus":10},{"CharClass":"Thief","Level":27,"AttackBonus":10},{"CharClass":"Thief","Level":28,"AttackBonus":10},{"CharClass":"Thief","Level":29,"AttackBonus":10},{"CharClass":"Thief","Level":30,"AttackBonus":11},{"CharClass":"Thief","Level":31,"AttackBonus":11},{"CharClass":"Thief","Level":32,"AttackBonus":11},{"CharClass":"Thief","Level":33,"AttackBonus":11},{"CharClass":"Thief","Level":34,"AttackBonus":11},{"CharClass":"Thief","Level":35,"AttackBonus":12},{"CharClass":"Thief","Level":36,"AttackBonus":12},{"CharClass":"Magic-User","Level":1,"AttackBonus":1},{"CharClass":"Magic-User","Level":2,"AttackBonus":1},{"CharClass":"Magic-User","Level":3,"AttackBonus":1},{"CharClass":"Magic-User","Level":4,"AttackBonus":2},{"CharClass":"Magic-User","Level":5,"AttackBonus":2},{"CharClass":"Magic-User","Level":6,"AttackBonus":3},{"CharClass":"Magic-User","Level":7,"AttackBonus":3},{"CharClass":"Magic-User","Level":8,"AttackBonus":3},{"CharClass":"Magic-User","Level":9,"AttackBonus":4},{"CharClass":"Magic-User","Level":10,"AttackBonus":4},{"CharClass":"Magic-User","Level":11,"AttackBonus":4},{"CharClass":"Magic-User","Level":12,"AttackBonus":4},{"CharClass":"Magic-User","Level":13,"AttackBonus":5},{"CharClass":"Magic-User","Level":14,"AttackBonus":5},{"CharClass":"Magic-User","Level":15,"AttackBonus":5},{"CharClass":"Magic-User","Level":16,"AttackBonus":6},{"CharClass":"Magic-User","Level":17,"AttackBonus":6},{"CharClass":"Magic-User","Level":18,"AttackBonus":6},{"CharClass":"Magic-User","Level":19,"AttackBonus":7},{"CharClass":"Magic-User","Level":20,"AttackBonus":7},{"CharClass":"Magic-User","Level":21,"AttackBonus":7},{"CharClass":"Magic-User","Level":22,"AttackBonus":7},{"CharClass":"Magic-User","Level":23,"AttackBonus":8},{"CharClass":"Magic-User","Level":24,"AttackBonus":8},{"CharClass":"Magic-User","Level":25,"AttackBonus":8},{"CharClass":"Magic-User","Level":26,"AttackBonus":8},{"CharClass":"Magic-User","Level":27,"AttackBonus":8},{"CharClass":"Magic-User","Level":28,"AttackBonus":9},{"CharClass":"Magic-User","Level":29,"AttackBonus":9},{"CharClass":"Magic-User","Level":30,"AttackBonus":9},{"CharClass":"Magic-User","Level":31,"AttackBonus":9},{"CharClass":"Magic-User","Level":32,"AttackBonus":9},{"CharClass":"Magic-User","Level":33,"AttackBonus":9},{"CharClass":"Magic-User","Level":34,"AttackBonus":10},{"CharClass":"Magic-User","Level":35,"AttackBonus":10},{"CharClass":"Magic-User","Level":36,"AttackBonus":10},{"CharClass":"Monster","Level":0,"AttackBonus":0},{"CharClass":"Monster","Level":1,"AttackBonus":1},{"CharClass":"Monster","Level":2,"AttackBonus":2},{"CharClass":"Monster","Level":3,"AttackBonus":3},{"CharClass":"Monster","Level":4,"AttackBonus":4},{"CharClass":"Monster","Level":5,"AttackBonus":5},{"CharClass":"Monster","Level":6,"AttackBonus":6},{"CharClass":"Monster","Level":7,"AttackBonus":7},{"CharClass":"Monster","Level":8,"AttackBonus":8},{"CharClass":"Monster","Level":9,"AttackBonus":8},{"CharClass":"Monster","Level":10,"AttackBonus":9},{"CharClass":"Monster","Level":11,"AttackBonus":9},{"CharClass":"Monster","Level":12,"AttackBonus":10},{"CharClass":"Monster","Level":13,"AttackBonus":10},{"CharClass":"Monster","Level":14,"AttackBonus":11},{"CharClass":"Monster","Level":15,"AttackBonus":11},{"CharClass":"Monster","Level":16,"AttackBonus":12},{"CharClass":"Monster","Level":17,"AttackBonus":12},{"CharClass":"Monster","Level":18,"AttackBonus":12},{"CharClass":"Monster","Level":19,"AttackBonus":12},{"CharClass":"Monster","Level":20,"AttackBonus":13},{"CharClass":"Monster","Level":21,"AttackBonus":13},{"CharClass":"Monster","Level":22,"AttackBonus":13},{"CharClass":"Monster","Level":23,"AttackBonus":13},{"CharClass":"Monster","Level":24,"AttackBonus":14},{"CharClass":"Monster","Level":25,"AttackBonus":14},{"CharClass":"Monster","Level":26,"AttackBonus":14},{"CharClass":"Monster","Level":27,"AttackBonus":14},{"CharClass":"Monster","Level":28,"AttackBonus":15},{"CharClass":"Monster","Level":29,"AttackBonus":15},{"CharClass":"Monster","Level":30,"AttackBonus":15},{"CharClass":"Monster","Level":31,"AttackBonus":15},{"CharClass":"Monster","Level":32,"AttackBonus":16},{"CharClass":"Monster","Level":33,"AttackBonus":16},{"CharClass":"Monster","Level":34,"AttackBonus":16},{"CharClass":"Monster","Level":35,"AttackBonus":16},{"CharClass":"Monster","Level":36,"AttackBonus":17},{"CharClass":"Monster","Level":37,"AttackBonus":17},{"CharClass":"Monster","Level":38,"AttackBonus":17},{"CharClass":"Monster","Level":39,"AttackBonus":17},{"CharClass":"Monster","Level":40,"AttackBonus":17},{"CharClass":"Monster","Level":41,"AttackBonus":18},{"CharClass":"Monster","Level":42,"AttackBonus":18},{"CharClass":"Monster","Level":43,"AttackBonus":18},{"CharClass":"Monster","Level":44,"AttackBonus":18},{"CharClass":"Monster","Level":45,"AttackBonus":18},{"CharClass":"Monster","Level":46,"AttackBonus":19},{"CharClass":"Monster","Level":47,"AttackBonus":19},{"CharClass":"Monster","Level":48,"AttackBonus":19},{"CharClass":"Monster","Level":49,"AttackBonus":19},{"CharClass":"Monster","Level":50,"AttackBonus":20}]

ziltmilt
Dragon
Posts: 331
Joined: Sun Apr 29, 2007 9:28 pm
Contact:

Re: help with error? Argument index 1 out of range

Post by ziltmilt »

Wow .. i think I found the problem. My test function had this:

Code: Select all

{h} is the bonus
A simple typo. the Variable 'h' was undefined. I was testing for a value of 'X'. This works now:

Code: Select all

{X} is the bonus
Big DUHHHHH. BTW, even though I've got logging checked, I'm seeing no updates to my log file since 12/20. Any idea why that might be?

User avatar
aliasmask
RPTools Team
Posts: 9024
Joined: Tue Nov 10, 2009 6:11 pm
Location: Bay Area

Re: help with error? Argument index 1 out of range

Post by aliasmask »

Derp, I saw that too but it didn't register. Generally speaking I never use {} for output. I use [r: X].

I notice my log file for 1.4.1.7 is much more empty as well. Under troubleshoot is the level of log detail. I think the default is WARNING which only logs UI errors I believe. But checking the boxes in Advanced should also add to the log.

Post Reply

Return to “Macros”