<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://zoywiki.com/index.php?action=history&amp;feed=atom&amp;title=Macros%2FLeveling</id>
	<title>Macros/Leveling - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://zoywiki.com/index.php?action=history&amp;feed=atom&amp;title=Macros%2FLeveling"/>
	<link rel="alternate" type="text/html" href="https://zoywiki.com/index.php?title=Macros/Leveling&amp;action=history"/>
	<updated>2026-05-01T13:56:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://zoywiki.com/index.php?title=Macros/Leveling&amp;diff=147&amp;oldid=prev</id>
		<title>Zoycite: Created page with &#039;&lt;pre&gt; //version 6  constants //Game States  CurrentGameState = 0 //main state variable  StateMap = 1  StateCombat = 2  StateVictory = 3  StateLoss = 4  StateOurTurn = 5  StateUni…&#039;</title>
		<link rel="alternate" type="text/html" href="https://zoywiki.com/index.php?title=Macros/Leveling&amp;diff=147&amp;oldid=prev"/>
		<updated>2010-06-20T05:19:19Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;&amp;lt;pre&amp;gt; //version 6  constants //Game States  CurrentGameState = 0 //main state variable  StateMap = 1  StateCombat = 2  StateVictory = 3  StateLoss = 4  StateOurTurn = 5  StateUni…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
//version 6&lt;br /&gt;
&lt;br /&gt;
constants&lt;br /&gt;
//Game States&lt;br /&gt;
 CurrentGameState = 0 //main state variable&lt;br /&gt;
 StateMap = 1&lt;br /&gt;
 StateCombat = 2&lt;br /&gt;
 StateVictory = 3&lt;br /&gt;
 StateLoss = 4&lt;br /&gt;
 StateOurTurn = 5&lt;br /&gt;
 StateUnitAttack = 6&lt;br /&gt;
 //states for units&lt;br /&gt;
 //State 0 = No Unit&lt;br /&gt;
 UnitAttack = 1&lt;br /&gt;
 UnitDefend = 2&lt;br /&gt;
 UnitWait = 3&lt;br /&gt;
 UnitOther = 4 &lt;br /&gt;
 //Unit variables&lt;br /&gt;
 Unit1Action = 0&lt;br /&gt;
 Unit2Action = 0&lt;br /&gt;
 Unit3Action = 0&lt;br /&gt;
 Unit4Action = 0&lt;br /&gt;
 Unit5Action = 0&lt;br /&gt;
 Unit6Action = 0&lt;br /&gt;
 Unit7Action = 0 &lt;br /&gt;
 CurrentUnit = 0&lt;br /&gt;
 UnitIdleCount = 0&lt;br /&gt;
 //Random variables for computation&lt;br /&gt;
 CheckX = 0&lt;br /&gt;
 CheckFlag = 0&lt;br /&gt;
 UnitFoundFlag = 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure GetGameState&lt;br /&gt;
 //checking for brown on level number area of character portrain&lt;br /&gt;
 LoadRGB 50, 100&lt;br /&gt;
 if {RGBRed} &amp;lt; 50 and {RGBGreen} &amp;lt; 40 and {RGBBlue} &amp;lt; 20&lt;br /&gt;
  compute CurrentGameState = $StateMap&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 //checking for default eye in upper right&lt;br /&gt;
 //px =1012,32&lt;br /&gt;
 //140,186,0&lt;br /&gt;
 if $CurrentGameState &amp;lt;&amp;gt; $StateOurTurn&lt;br /&gt;
  LoadRGB 1012, 32&lt;br /&gt;
  if {RGBRed} &amp;gt; 120 and {RGBRed} &amp;lt; 160 and {RGBGreen} &amp;gt; 159 and {RGBGreen} &amp;lt; 203 and {RGBBlue} &amp;lt; 50&lt;br /&gt;
   compute CurrentGameState = $StateCombat &lt;br /&gt;
  end &lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 //checking for combat victory screen&lt;br /&gt;
 //checks the X and the +&lt;br /&gt;
 //px of X = 818,155&lt;br /&gt;
 //color of X = 214,186,123&lt;br /&gt;
 //px of + = 502,361&lt;br /&gt;
 //color of + = 231,142,57&lt;br /&gt;
 LoadRGB 818,155  // X&lt;br /&gt;
 if {RGBRed} &amp;gt; 210 and {RGBRed} &amp;lt; 220 and {RGBGreen} &amp;gt; 180 and {RGBGreen} &amp;lt; 190 and {RGBBlue} &amp;gt; 120 and {RGBBlue} &amp;lt; 130&lt;br /&gt;
  LoadRGB 502,361 // +&lt;br /&gt;
  if {RGBRed} &amp;gt; 228 and {RGBRed} &amp;lt; 235 and {RGBGreen} &amp;gt; 138 and {RGBGreen} &amp;lt; 146 and {RGBBlue} &amp;gt; 53 and {RGBBlue} &amp;lt; 63&lt;br /&gt;
   compute CurrentGameState = $StateVictory &lt;br /&gt;
  end&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 if $CurrentGameState = $StateVictory&lt;br /&gt;
  //soul bar height = 313&lt;br /&gt;
  //start x = 174&lt;br /&gt;
  //end x = 824&lt;br /&gt;
  Compute CheckX = 174&lt;br /&gt;
  Compute CheckFlag = 0&lt;br /&gt;
&lt;br /&gt;
  LoadRGB 203,315&lt;br /&gt;
  if {RGBRed} &amp;gt; 240 and {RGBGreen} &amp;gt; 240 and {RGBBlue} &amp;gt; 240&lt;br /&gt;
   Compute CheckFlag = 1  &lt;br /&gt;
  end&lt;br /&gt;
  LoadRGB 297,315&lt;br /&gt;
  if {RGBRed} &amp;gt; 240 and {RGBGreen} &amp;gt; 240 and {RGBBlue} &amp;gt; 240&lt;br /&gt;
   Compute CheckFlag = 1  &lt;br /&gt;
  end  &lt;br /&gt;
  LoadRGB 393,315&lt;br /&gt;
  if {RGBRed} &amp;gt; 240 and {RGBGreen} &amp;gt; 240 and {RGBBlue} &amp;gt; 240&lt;br /&gt;
   Compute CheckFlag = 1  &lt;br /&gt;
  end  &lt;br /&gt;
  LoadRGB 487,315&lt;br /&gt;
  if {RGBRed} &amp;gt; 240 and {RGBGreen} &amp;gt; 240 and {RGBBlue} &amp;gt; 240&lt;br /&gt;
   Compute CheckFlag = 1  &lt;br /&gt;
  end  &lt;br /&gt;
  LoadRGB 582,315&lt;br /&gt;
  if {RGBRed} &amp;gt; 240 and {RGBGreen} &amp;gt; 240 and {RGBBlue} &amp;gt; 240&lt;br /&gt;
   Compute CheckFlag = 1  &lt;br /&gt;
  end  &lt;br /&gt;
  LoadRGB 677,315&lt;br /&gt;
  if {RGBRed} &amp;gt; 240 and {RGBGreen} &amp;gt; 240 and {RGBBlue} &amp;gt; 240&lt;br /&gt;
   Compute CheckFlag = 1  &lt;br /&gt;
  end  &lt;br /&gt;
  LoadRGB 772,315&lt;br /&gt;
  if {RGBRed} &amp;gt; 240 and {RGBGreen} &amp;gt; 240 and {RGBBlue} &amp;gt; 240&lt;br /&gt;
   Compute CheckFlag = 1  &lt;br /&gt;
  end  &lt;br /&gt;
  &lt;br /&gt;
  if $CheckFlag = 1&lt;br /&gt;
   compute CurrentGameState = $StateLoss&lt;br /&gt;
  end &lt;br /&gt;
 end  &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure ClickSlow&lt;br /&gt;
 MousePos 526, 760&lt;br /&gt;
 delay 100&lt;br /&gt;
 LeftClick&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure ClickAttack&lt;br /&gt;
 MousePos 823, 763&lt;br /&gt;
 delay 100&lt;br /&gt;
 LeftClick&lt;br /&gt;
 delay 1 sec&lt;br /&gt;
 MousePos 823, 763&lt;br /&gt;
 delay 100&lt;br /&gt;
 LeftClick &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure ClickDefend&lt;br /&gt;
 MousePos 868, 766&lt;br /&gt;
 delay 100&lt;br /&gt;
 LeftClick &lt;br /&gt;
 delay 1 sec&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure ClickWait&lt;br /&gt;
 MousePos 910, 766&lt;br /&gt;
 delay 100&lt;br /&gt;
 LeftClick &lt;br /&gt;
 delay 1 sec&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure ClickEndTurn&lt;br /&gt;
 MousePos 869, 588&lt;br /&gt;
 delay 100&lt;br /&gt;
 LeftClick&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure ClickAcceptBattleResult&lt;br /&gt;
 MousePos 536, 541&lt;br /&gt;
 delay 100&lt;br /&gt;
 LeftClick &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure ClickCameraAngle3&lt;br /&gt;
 MousePos 987, 34&lt;br /&gt;
 delay 100&lt;br /&gt;
 LeftClick&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure ClickCameraShrink&lt;br /&gt;
 MousePos 923, 33&lt;br /&gt;
 delay 100&lt;br /&gt;
 LeftClick&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure ClickMarch&lt;br /&gt;
 MousePos 820, 589&lt;br /&gt;
 delay 100&lt;br /&gt;
 LeftClick&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure InitilizeUnitActions&lt;br /&gt;
 compute Unit1Action = $UnitAttack&lt;br /&gt;
 compute Unit2Action = $UnitAttack&lt;br /&gt;
 compute Unit3Action = $UnitAttack&lt;br /&gt;
 compute Unit4Action = $UnitAttack&lt;br /&gt;
 compute Unit5Action = $UnitAttack&lt;br /&gt;
 compute Unit6Action = $UnitAttack&lt;br /&gt;
 compute Unit7Action = $UnitOther&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure DoMapState When $CurrentGameState = $StateMap&lt;br /&gt;
 //194,53 mana bar&lt;br /&gt;
 //13,80,123&lt;br /&gt;
 compute CheckFlag = 1&lt;br /&gt;
 compute CheckX = 0&lt;br /&gt;
 while $CheckFlag = 1&lt;br /&gt;
  loadrgb 194,53&lt;br /&gt;
  if {RGBRed} &amp;lt; 25 and {RGBGreen} &amp;gt; 70 and {RGBGreen} &amp;lt; 90 and {RGBBlue} &amp;gt; 115 and {RGBBlue} &amp;lt; 135&lt;br /&gt;
   if $CheckX &amp;gt; 3&lt;br /&gt;
    compute CheckFlag = 0&lt;br /&gt;
   end&lt;br /&gt;
  end&lt;br /&gt;
  call GetGameState&lt;br /&gt;
  if $CurrentGameState &amp;lt;&amp;gt; $StateMap&lt;br /&gt;
    compute CheckFlag = 0  &lt;br /&gt;
  end&lt;br /&gt;
  compute CheckX = $CheckX + 1&lt;br /&gt;
  call ClickEndTurn&lt;br /&gt;
  delay 500 &lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 delay 3 sec&lt;br /&gt;
 call ClickMarch&lt;br /&gt;
 delay 6 sec&lt;br /&gt;
end &lt;br /&gt;
&lt;br /&gt;
procedure CheckUnit Using StartX,StartY,UnitID&lt;br /&gt;
 if $UnitFoundFlag = 0&lt;br /&gt;
  LoadRGB $StartX,$StartY&lt;br /&gt;
   if {RGBRed} &amp;gt; 240 and {RGBRed} &amp;lt; 255 and {RGBGreen} &amp;gt; 168 and {RGBGreen} &amp;lt; 196 and {RGBBlue} &amp;gt; 0 and {RGBBlue} &amp;lt; 20&lt;br /&gt;
    compute CurrentUnit = $UnitID&lt;br /&gt;
    compute UnitFoundFlag = 1&lt;br /&gt;
   end &lt;br /&gt;
 end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure OurTurnState When $CurrentGameState = $StateOurTurn&lt;br /&gt;
 compute CurrentUnit = 0&lt;br /&gt;
 &lt;br /&gt;
 if $UnitIdleCount = 0&lt;br /&gt;
  call ClickCameraAngle3&lt;br /&gt;
 end&lt;br /&gt;
 //check unit statuses&lt;br /&gt;
 //rgb = 250,181,5&lt;br /&gt;
&lt;br /&gt;
  compute UnitIdleCount = $UnitIdleCount + 1&lt;br /&gt;
  compute UnitFoundFlag = 0&lt;br /&gt;
  //unit 1 = 162,28&lt;br /&gt;
  call CheckUnit 162,28,1&lt;br /&gt;
 //unit 2 = 189,118&lt;br /&gt;
  call CheckUnit 189,118,2&lt;br /&gt;
 //unit 3 = 130,248&lt;br /&gt;
  call CheckUnit 130,248,3&lt;br /&gt;
 //unit 4 = 153,383&lt;br /&gt;
  call CheckUnit 153,383,4&lt;br /&gt;
 //unit 5 = 179,477&lt;br /&gt;
  call CheckUnit 150,477,5&lt;br /&gt;
 //unit 6 = 172,570&lt;br /&gt;
  call CheckUnit 148,570,6&lt;br /&gt;
 //unit 7 = 145,662&lt;br /&gt;
  call CheckUnit 174,662,7&lt;br /&gt;
   &lt;br /&gt;
 //idle/error handler&lt;br /&gt;
 if $UnitIdleCount &amp;gt; 10&lt;br /&gt;
  compute CurrentUnit = 99&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 compute CurrentGameState = $StateUnitAttack&lt;br /&gt;
 ProcessMessages&lt;br /&gt;
 call GetGameState&lt;br /&gt;
 if $CurrentGameState &amp;lt;&amp;gt; $StateVictory&lt;br /&gt;
  if $CurrentGameState &amp;lt;&amp;gt; $StateLoss&lt;br /&gt;
   compute CurrentGameState = $StateOurTurn&lt;br /&gt;
  end &lt;br /&gt;
 end&lt;br /&gt;
 //must set no unit as active before processing messages&lt;br /&gt;
 compute CurrentUnit = 0&lt;br /&gt;
 ProcessMessages&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure DoBattleState When $CurrentGameState = $StateCombat&lt;br /&gt;
 //set the camera angle&lt;br /&gt;
 call ClickCameraAngle3&lt;br /&gt;
 delay 1 sec&lt;br /&gt;
 loop 6&lt;br /&gt;
  call ClickCameraShrink&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 compute CurrentGameState = $StateOurTurn&lt;br /&gt;
 compute UnitIdleCount = 0&lt;br /&gt;
 &lt;br /&gt;
 ProcessMessages&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure DoErrorState When $CurrentGameState = $StateLoss&lt;br /&gt;
 bell Exclamation&lt;br /&gt;
 delay 5 sec&lt;br /&gt;
 Call GetGameState&lt;br /&gt;
 ProcessMessages&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure DoVictoryState When $CurrentGameState = $StateVictory&lt;br /&gt;
 if $CurrentGameState = $StateLoss&lt;br /&gt;
  ProcessMessages&lt;br /&gt;
 else&lt;br /&gt;
  call ClickAcceptBattleResult&lt;br /&gt;
 end&lt;br /&gt;
 delay 2 sec&lt;br /&gt;
 Call GetGameState &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//unit functions&lt;br /&gt;
procedure DoUnit1Action When $CurrentUnit = 1&lt;br /&gt;
 if $Unit1Action = $UnitAttack&lt;br /&gt;
  call ClickAttack&lt;br /&gt;
 end&lt;br /&gt;
 if $Unit1Action = $UnitDefend&lt;br /&gt;
  call ClickDefend&lt;br /&gt;
 end&lt;br /&gt;
 if $Unit1Action = $UnitWait&lt;br /&gt;
  call ClickWait&lt;br /&gt;
 end &lt;br /&gt;
 if $Unit1Action = $UnitOther&lt;br /&gt;
  call ClickSlow&lt;br /&gt;
  delay 500&lt;br /&gt;
  call ClickDefend  &lt;br /&gt;
 end &lt;br /&gt;
 compute UnitIdleCount = 0  &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure DoUnit2Action When $CurrentUnit = 2&lt;br /&gt;
 if $Unit2Action = $UnitAttack&lt;br /&gt;
  call ClickAttack&lt;br /&gt;
 end&lt;br /&gt;
 if $Unit2Action = $UnitDefend&lt;br /&gt;
  call ClickDefend&lt;br /&gt;
 end&lt;br /&gt;
 if $Unit2Action = $UnitWait&lt;br /&gt;
  call ClickWait&lt;br /&gt;
 end &lt;br /&gt;
 if $Unit2Action = $UnitOther&lt;br /&gt;
  call ClickSlow&lt;br /&gt;
  delay 500&lt;br /&gt;
  call ClickDefend  &lt;br /&gt;
 end &lt;br /&gt;
 compute UnitIdleCount = 0   &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure DoUnit3Action When $CurrentUnit = 3&lt;br /&gt;
 if $Unit3Action = $UnitAttack&lt;br /&gt;
  call ClickAttack&lt;br /&gt;
 end&lt;br /&gt;
 if $Unit3Action = $UnitDefend&lt;br /&gt;
  call ClickDefend&lt;br /&gt;
 end&lt;br /&gt;
 if $Unit3Action = $UnitWait&lt;br /&gt;
  call ClickWait&lt;br /&gt;
 end &lt;br /&gt;
 if $Unit3Action = $UnitOther&lt;br /&gt;
  call ClickSlow&lt;br /&gt;
  delay 500&lt;br /&gt;
  call ClickDefend  &lt;br /&gt;
 end &lt;br /&gt;
 compute UnitIdleCount = 0   &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure DoUnit4Action When $CurrentUnit = 4&lt;br /&gt;
 if $Unit4Action = $UnitAttack&lt;br /&gt;
  call ClickAttack&lt;br /&gt;
 end&lt;br /&gt;
 if $Unit4Action = $UnitDefend&lt;br /&gt;
  call ClickDefend&lt;br /&gt;
 end&lt;br /&gt;
 if $Unit4Action = $UnitWait&lt;br /&gt;
  call ClickWait&lt;br /&gt;
 end &lt;br /&gt;
 if $Unit4Action = $UnitOther&lt;br /&gt;
  call ClickSlow&lt;br /&gt;
  delay 500&lt;br /&gt;
  call ClickDefend  &lt;br /&gt;
 end &lt;br /&gt;
 compute UnitIdleCount = 0   &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure DoUnit5Action When $CurrentUnit = 5&lt;br /&gt;
 if $Unit5Action = $UnitAttack&lt;br /&gt;
  call ClickAttack&lt;br /&gt;
 end&lt;br /&gt;
 if $Unit5Action = $UnitDefend&lt;br /&gt;
  call ClickDefend&lt;br /&gt;
 end&lt;br /&gt;
 if $Unit5Action = $UnitWait&lt;br /&gt;
  call ClickWait&lt;br /&gt;
 end &lt;br /&gt;
 if $Unit5Action = $UnitOther&lt;br /&gt;
  call ClickSlow&lt;br /&gt;
  delay 500&lt;br /&gt;
  call ClickDefend  &lt;br /&gt;
 end &lt;br /&gt;
 compute UnitIdleCount = 0   &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure DoUnit6Action When $CurrentUnit = 6&lt;br /&gt;
 if $Unit6Action = $UnitAttack&lt;br /&gt;
  call ClickAttack&lt;br /&gt;
 end&lt;br /&gt;
 if $Unit6Action = $UnitDefend&lt;br /&gt;
  call ClickDefend&lt;br /&gt;
 end&lt;br /&gt;
 if $Unit6Action = $UnitWait&lt;br /&gt;
  call ClickWait&lt;br /&gt;
 end &lt;br /&gt;
 if $Unit6Action = $UnitOther&lt;br /&gt;
  call ClickSlow&lt;br /&gt;
  delay 500  &lt;br /&gt;
  call ClickDefend  &lt;br /&gt;
 end &lt;br /&gt;
 compute UnitIdleCount = 0   &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure DoUnit7Action When $CurrentUnit = 7&lt;br /&gt;
 if $Unit7Action = $UnitAttack&lt;br /&gt;
  call ClickAttack&lt;br /&gt;
 end&lt;br /&gt;
 if $Unit7Action = $UnitDefend&lt;br /&gt;
  call ClickDefend&lt;br /&gt;
 end&lt;br /&gt;
 if $Unit7Action = $UnitWait&lt;br /&gt;
  call ClickWait&lt;br /&gt;
 end &lt;br /&gt;
 if $Unit7Action = $UnitOther&lt;br /&gt;
  call ClickSlow&lt;br /&gt;
  delay 500&lt;br /&gt;
  call ClickDefend  &lt;br /&gt;
 end &lt;br /&gt;
 compute UnitIdleCount = 0   &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
procedure DoUnitIdleAction When $CurrentUnit = 99&lt;br /&gt;
 //Idle Unit Handler&lt;br /&gt;
 call ClickAttack&lt;br /&gt;
 compute UnitIdleCount = 0   &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
//main macro code here&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
call InitilizeUnitActions&lt;br /&gt;
//main loop&lt;br /&gt;
While 1 = 1&lt;br /&gt;
  ProcessMessages&lt;br /&gt;
  Call GetGameState&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//end main macro code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zoycite</name></author>
	</entry>
</feed>