From NEAT Portal Wiki
Jump to: navigation, search
(Edited City References)
m (Edited City References: color)
 
(36 intermediate revisions by 2 users not shown)
Line 1: Line 1:
'''<span style="color:red">TEMPORARY COPY - NEEDS REFORMATTED STILL</span>'''<br>
+
'''TEMPORARY COPY - NEEDS REFORMATTED STILL'''<br>
'''<span style="color:red">Information may not be accurate.</span>'''
+
 
 +
<font color="red">
 +
'''All of the following references have been tested.</font> The results, including the script used to access the variables is availible in the [[Reference Test]] section of this wiki'''.
 +
 
 +
Every effort has been made in an attempt to make them work. An examination of the code, for example, showed that 'taxrate' was non-functional due to being spelt incorrectly in the Evony code.  The proper syntax for all variables is demonstated in the test.
 +
 
 +
Those that returned errors and could not be made to work were deleted from the output.  Generally, this means that no reference to them could be found within the code.
 +
 
  
 
==Script References==
 
==Script References==
Line 8: Line 15:
 
Resources, Troops, Walldefenses, &amp; Miscellaneous City Information can be referenced from within a script.  
 
Resources, Troops, Walldefenses, &amp; Miscellaneous City Information can be referenced from within a script.  
  
Note: All references must begin with ‘m_city.cityManager.’
+
Note: All references must begin with ‘m_city.’
  
<br>  
+
<br>
 +
 
 +
When used within a script references are gereally compared to a desired limit in order to determine whether or not to perform the action or subroutine indicated.
 +
 
 +
'''Format:''' ifgoto ( [''reference''] [''operator''] [''value''] ) [''label'']<br>
 +
'''Format:''' ifgosub ( [''reference''] [''operator''] [''value''] ) [''label'']<br>
 +
'''Example:''' ifgosub ( m_city.cityManager.troop.lightCavalry < 20000 ) buildcav
 +
 
 +
Proper spacing and spelling is essential.
 +
 
 +
In certain cases the reference returns only a true/false in which case it will compare as either 0 if false or 1 if true.
 +
 
 +
Creating a script that is both easy to use and functional can be a tricky task for a seasoned veteran, much more so to a raw beginner. Remember, this is your city and troops you are attempting to control, a slight slip in logic can lead to disaster. To avoid such pitfalls it is reccommended that you check out the [[Tips and Tricks]] section of this wiki.
 +
 
 +
A test script has been created to test the output of all of the following references.  The script and its resulting output can be found at the [[Reference Test]] page.[[Welcome to Scripts]]
  
 +
<br>
 +
 
 +
<br>
 
==Material Resources==
 
==Material Resources==
  
Line 44: Line 68:
  
 
Examples&nbsp;:  
 
Examples&nbsp;:  
<blockquote>//===================================================<br> // Check current amount of Wood, if greater than 10,000 gosub JumpToTraining<br> // Check if enough Iron is Being Produced, if not, gosub buildMoreMines<br> //=================================================== </blockquote><pre>      ifgosub ( m_city.castle.resource.wood.amount &gt; 10000 ) JumpToTraining
+
<blockquote>//===================================================<br> // Check current amount of Wood, if greater than 10,000 gosub JumpToTraining<br> // Check if enough Iron is Being Produced, if not, gosub buildMoreMines<br> //=================================================== </blockquote><pre>      ifgosub ( m_city.cityManager.resource.wood.amount &gt; 10000 ) JumpToTraining
       ifgosub ( m_city.castle.resource.iron.increaseRate &lt; 5000 ) buildMoreMines
+
       ifgosub ( m_city.cityManager.resource.iron.increaseRate &lt; 5000 ) buildMoreMines
 
</pre>  
 
</pre>  
 
==Troops==
 
==Troops==
Line 95: Line 119:
  
 
Example&nbsp;:  
 
Example&nbsp;:  
<pre>      ifgosub ( m_city.castle.troop.archer &lt; 100000 ) buildArchers
+
<pre>      ifgosub ( m_city.cityManager.troop.archer &lt; 100000 ) buildArchers
       ifgosub ( m_city.castle.troop.heavyCavalry &lt; 100000 ) buildPhracts
+
       ifgosub ( m_city.cityManager.troop.heavyCavalry &lt; 100000 ) buildPhracts
       ifgosub ( m_city.castle.troop.catapults &lt; 15000 ) buildPults
+
       ifgosub ( m_city.cityManager.troop.catapults &lt; 15000 ) buildPults
 
</pre>  
 
</pre>  
 
<br>  
 
<br>  
Line 153: Line 177:
 
|-
 
|-
 
| gold<br>  
 
| gold<br>  
| m_city.castle.resource.gold<br>  
+
| m_city.cityManager.resource.gold<br>  
 
| '.amount' is not needed to display total<br>
 
| '.amount' is not needed to display total<br>
 
|-
 
|-
 
| complaint<br>  
 
| complaint<br>  
| m_city.castle.resource.complaint<br>  
+
| m_city.cityManager.resource.complaint<br>  
 
| Public Grievances<br>
 
| Public Grievances<br>
 
|-
 
|-
 
| curPopulation<br>  
 
| curPopulation<br>  
| m_city.castle.resource.curPopulation<br>  
+
| m_city.cityManager.resource.curPopulation<br>  
 
| <br>
 
| <br>
 
|-
 
|-
 
| maxPopulation<br>  
 
| maxPopulation<br>  
| m_city.castle.resource.maxPopulation<br>  
+
| m_city.cityManager.resource.maxPopulation<br>  
 
| <br>
 
| <br>
 
|-
 
|-
 
| heroSalary<br>  
 
| heroSalary<br>  
| m_city.castle.resource.heroSalary<br>  
+
| m_city.cityManager.resource.heroSalary<br>  
 
| <br>
 
| <br>
 
|-
 
|-
 
| support<br>  
 
| support<br>  
| m_city.castle.resource.support<br>  
+
| m_city.cityManager.resource.support<br>  
 
| Loyalty<br>
 
| Loyalty<br>
 
|-
 
|-
 
| taxIncome<br>  
 
| taxIncome<br>  
| m_city.castle.resource.taxIncome<br>  
+
| m_city.cityManager.resource.taxIncome<br>  
 
| <br>
 
| <br>
 
|-
 
|-
 
| hasEnemy<br>  
 
| hasEnemy<br>  
| m_city.castle.hasEnemy<br>  
+
| m_city.cityManager.hasEnemy<br>  
 
| Not Sure if this one actually works, I've tried it &amp; while under attack still displays false<br>
 
| Not Sure if this one actually works, I've tried it &amp; while under attack still displays false<br>
 
|}
 
|}
Line 191: Line 215:
 
==Edited City References==
 
==Edited City References==
  
<br>  
+
<font color="brown">
Underconstruction.
+
'''All of the following references '''have''' been tested.  The results, including the script used to access the variables is availible in the [[Reference Test]] section of this wiki'''.</font> <font color="orange">Exceptions in orange.</font>
 +
 
 +
Every effort has been made in an attempt to make them work. An examination of the code, for example, showed that 'taxrate' was non-functional due to being spelt incorrectly in the Evony code.
 +
 
 +
Those that returned errors and could not be made to work were deleted from the output. 
 +
 
 +
<br>
  
{| cellspacing="1" cellpadding="1" border="1" align="center" style="width: 962px; height: 218px;"
+
{| class="wikitable"
 
|-
 
|-
| style="text-align: center;" | '''Reference'''<br>  
+
! style="text-align: center;" | Reference<br>  
| style="text-align: center;" | '''Usage'''<br>  
+
! style="text-align: center;" | Usage<br>  
| style="text-align: center;" | '''Notes'''<br>
+
! style="text-align: center;" | Notes<br>
 
|-
 
|-
 
| m_city.AnyIdleHero(any)<br>  
 
| m_city.AnyIdleHero(any)<br>  
Line 218: Line 248:
 
| m_city.cityManager.allowAlliance<br>  
 
| m_city.cityManager.allowAlliance<br>  
 
| <br>  
 
| <br>  
| Not in YAEB<br>
+
| Unknown.<br>
 
|-
 
|-
 
| m_city.cityManager.buildings[#]<br>  
 
| m_city.cityManager.buildings[#]<br>  
Line 238: Line 268:
 
| m_city.cityManager.buildings[#].positionId<br>  
 
| m_city.cityManager.buildings[#].positionId<br>  
 
| Gives the position id of building number #<br>  
 
| Gives the position id of building number #<br>  
| e.g. 1015 outside city, 27 inside city (# = 0 -73)<br>
+
| e.g. 1015 outside city, 27 inside city (# = 0 - 73)<br>
 
|-
 
|-
 
| m_city.cityManager.buildings[#].startTime<br>  
 
| m_city.cityManager.buildings[#].startTime<br>  
Line 266: Line 296:
 
| m_city.cityManager.fields[#].status<br>  
 
| m_city.cityManager.fields[#].status<br>  
 
| <br>  
 
| <br>  
| Not used in YAEB<br>
+
| Unknown.<br>
 
|-
 
|-
 
| m_city.cityManager.fields[#].type<br>  
 
| m_city.cityManager.fields[#].type<br>  
Line 293: Line 323:
 
|-
 
|-
 
| m_city.cityManager.goOutForBattle<br>  
 
| m_city.cityManager.goOutForBattle<br>  
| <br>  
+
| <font color="orange">'''true''' => gates open, '''false''' => gates closed.<br>  
| Unknown.<br>
+
| <br>
 
|-
 
|-
 
| m_city.cityManager.hasEnemy<br>  
 
| m_city.cityManager.hasEnemy<br>  
Line 361: Line 391:
 
|-
 
|-
 
| m_city.cityManager.heros[#].staus<br>  
 
| m_city.cityManager.heros[#].staus<br>  
| <br>  
+
| <font color="orange">0 = IDLE, 1 = MAYOR, 2 = DEFENDING, 3 = MARCHING, 4 = CAPTIVE, 5 = RETURNING</font><br>  
 
| <br>
 
| <br>
 
|-
 
|-
Line 384: Line 414:
 
| <br>
 
| <br>
 
|-
 
|-
| m_city.cityManager.logUrl   not in yaeb<br>  
+
| m_city.cityManager.logUrl<br>  
 
| <br>  
 
| <br>  
| <br>
+
| Unknown.<br>
 
|-
 
|-
 
| m_city.cityManager.name<br>  
 
| m_city.cityManager.name<br>  
Line 401: Line 431:
 
|-
 
|-
 
| m_city.cityManager.resource.curPopulation<br>  
 
| m_city.cityManager.resource.curPopulation<br>  
| <br>
 
| <br>
 
|-
 
| m_city.cityManager.resource.food<br>
 
 
| <br>  
 
| <br>  
 
| <br>
 
| <br>
Line 429: Line 455:
 
|-
 
|-
 
| m_city.cityManager.resource.gold<br>  
 
| m_city.cityManager.resource.gold<br>  
| <br>
+
| The amount of gold on hand.<br>  
| <br>
 
|-
 
| m_city.cityManager.resource.gold<br>
 
| <br>  
 
 
| <br>
 
| <br>
 
|-
 
|-
 
| m_city.cityManager.resource.gold.amount<br>  
 
| m_city.cityManager.resource.gold.amount<br>  
| <br>  
+
| Appending '.amount' to this reference creates an error.<br>  
| <br>
+
| Proper usage is above.<br>
 
|-
 
|-
 
| m_city.cityManager.resource.gold.increaseRate<br>  
 
| m_city.cityManager.resource.gold.increaseRate<br>  
| <br>
 
| <br>
 
|-
 
| m_city.cityManager.resource.gold.max<br>
 
 
| <br>  
 
| <br>  
 
| <br>
 
| <br>
Line 451: Line 469:
 
| <br>  
 
| <br>  
 
| <br>
 
| <br>
|-
 
| m_city.cityManager.resource.iron<br>
 
| <br>
 
| Not implemented in YAEB<br>
 
 
|-
 
|-
 
| m_city.cityManager.resource.iron.amount<br>  
 
| m_city.cityManager.resource.iron.amount<br>  
Line 479: Line 493:
 
| <br>  
 
| <br>  
 
| <br>
 
| <br>
|-
 
| m_city.cityManager.resource.stone<br>
 
| <br>
 
| Not implemented in YAEB<br>
 
 
|-
 
|-
 
| m_city.cityManager.resource.stone.amount<br>  
 
| m_city.cityManager.resource.stone.amount<br>  
Line 496: Line 506:
 
| <br>
 
| <br>
 
|-
 
|-
| m_city.cityManager.resource.stone.storeRercent<br>  
+
| m_city.cityManager.resource.stone.storePercent<br>  
 
| <br>  
 
| <br>  
 
| <br>
 
| <br>
Line 504: Line 514:
 
| <br>
 
| <br>
 
|-
 
|-
| m_city.cityManager.resource.support<br>  
+
| m_city.cityManager.resource.support<br>
 +
| Loyalty of city.<br>
 
| <br>  
 
| <br>  
 
| <br>
 
| <br>
Line 519: Line 530:
 
| <br>  
 
| <br>  
 
| <br>
 
| <br>
|-
 
| m_city.cityManager.resource.wood<br>
 
| Total amount of wood<br>
 
| Unknown.<br>
 
 
|-
 
|-
 
| m_city.cityManager.resource.wood.amount<br>  
 
| m_city.cityManager.resource.wood.amount<br>  
Line 550: Line 557:
 
| m_city.cityManager.status<br>  
 
| m_city.cityManager.status<br>  
 
| <br>  
 
| <br>  
| Unknown<br>
+
| Unknown.<br>
 
|-
 
|-
 
| m_city.cityManager.troop.archer<br>  
 
| m_city.cityManager.troop.archer<br>  
| <br>  
+
| Number of this troop type that are in city but not active.<br>  
 
| <br>
 
| <br>
 
|-
 
|-
 
| m_city.cityManager.troop.ballista<br>  
 
| m_city.cityManager.troop.ballista<br>  
| <br>  
+
| Number of this troop type that are in city but not active.<br>  
 
| <br>
 
| <br>
 
|-
 
|-
 
| m_city.cityManager.troop.batteringRam<br>  
 
| m_city.cityManager.troop.batteringRam<br>  
| <br>  
+
| Number of this troop type that are in city but not active.<br>  
 
| <br>
 
| <br>
 
|-
 
|-
 
| m_city.cityManager.troop.carriage<br>  
 
| m_city.cityManager.troop.carriage<br>  
| <br>  
+
| Number of this troop type that are in city but not active.<br>  
 
| <br>
 
| <br>
 
|-
 
|-
 
| m_city.cityManager.troop.catapult<br>  
 
| m_city.cityManager.troop.catapult<br>  
| <br>  
+
| Number of this troop type that are in city but not active.<br>  
 
| <br>
 
| <br>
 
|-
 
|-
 
| m_city.cityManager.troop.heavyCavalry<br>  
 
| m_city.cityManager.troop.heavyCavalry<br>  
| <br>  
+
| Number of this troop type that are in city but not active.<br>  
 
| <br>
 
| <br>
 
|-
 
|-
 
| m_city.cityManager.troop.lightCavalry<br>  
 
| m_city.cityManager.troop.lightCavalry<br>  
| <br>  
+
| Number of this troop type that are in city but not active.<br>  
 
| <br>
 
| <br>
 
|-
 
|-
 
| m_city.cityManager.troop.militia<br>  
 
| m_city.cityManager.troop.militia<br>  
| <br>  
+
| Number of warriors that are in city but not active.<br>  
 
| <br>
 
| <br>
 
|-
 
|-
 
| m_city.cityManager.troop.peasants<br>  
 
| m_city.cityManager.troop.peasants<br>  
| <br>  
+
| Number of workers that are in city but not active.<br>  
 
| <br>
 
| <br>
 
|-
 
|-
 
| m_city.cityManager.troop.pikemen<br>  
 
| m_city.cityManager.troop.pikemen<br>  
| <br>  
+
| Number of this troop type that are in city but not active.<br>  
 
| <br>
 
| <br>
 
|-
 
|-
 
| m_city.cityManager.troop.scouter<br>  
 
| m_city.cityManager.troop.scouter<br>  
| <br>  
+
| Number of this troop type that are in city but not active.<br>  
 
| <br>
 
| <br>
 
|-
 
|-
 
| m_city.cityManager.troop.swordsmen<br>  
 
| m_city.cityManager.troop.swordsmen<br>  
| <br>  
+
| Number of this troop type that are in city but not active.<br>  
 
| <br>
 
| <br>
 +
|}
 +
 +
==Market Prices==
 +
 +
Beginning with version 2070, anew reference class,'' m_context,'' has been added.  The first members are calls to the current market prices of each commodity.<br>
 +
<br>
 +
To find the current buy/sell price of any resource:
 +
 +
{| border="1"
 +
|-
 +
!style="text-align: center;" |Reference:<br>
 +
!style="text-align: center;" |Usage:<br>
 +
!style="text-align: center;" |Example:<br>
 +
|-
 +
|sellprice()<br>
 +
|m_context.sellprice(x)<br>
 +
|m_context.sellprice(0)<br>
 +
|-
 +
|buyprice<br>
 +
|m_context.buyprice(x)<br>
 +
|m_context.buyprice(2)<br>
 
|-
 
|-
|
 
 
|}
 
|}
  
 +
 +
 +
<br>
 +
The constants for each resource:
 +
 +
{| border="1"
 +
|-
 +
!Commodity<br>
 +
! x <br>
 +
|-
 +
|Food||0<br>
 +
|-
 +
|Lumber||1<br>
 +
|-
 +
|Stone||2<br>
 +
|-
 +
|Iron||3<br>
 +
|}
 +
 +
 +
 +
Example: a completely runnable 5 minute script...
 +
 +
 +
  1: label check_market
 +
2: ifgoto ( m_city.cityManager.resource.gold < 400000000 ) we_are_broke
 +
3: ifgoto ( m_context.buyPrice(1) < 32 ) buywood
 +
4: ifgoto ( m_context.buyPrice(3) < 30 ) buyiron
 +
5: label we_are_broke
 +
6: ifgoto ( m_city.cityManager.resource.gold < 50000 ) we_are_really_broke
 +
7: ifgoto ( m_context.sellPrice(1) > 35 ) sellwood
 +
8: ifgoto ( m_context.sellPrice(1) > 38 ) selliron
 +
9: goto check_market
 +
10: label we_are_really_broke
 +
11: ifgoto ( m_city.cityManager.resource.lumber.amount < 30000 ) and_we_have_no_wood
 +
12: sell lumber 1000 20
 +
13: repeat 20
 +
14: goto we_are_broke
 +
15: label and_we_have_ne_wood
 +
16: ifgoto ( m_city.cityManager.resource.iron.amount < 30000 ) uhoh
 +
17: sell iron 1000 20
 +
18: repeat 20
 +
19: goto we_are_broke
 +
20: label uhoh
 +
21: sleep rnd:250
 +
22: goto we_are_really_broke
 +
23: label sellwood
 +
24: sell lumber 500000 35
 +
25: goto check_market
 +
26: label selliron
 +
27: sell iron 500000 38
 +
28: goto check_market
 +
29: label buywood
 +
30: buy lumber 500000 32
 +
31: goto checkmarket
 +
32: label buyiron
 +
33: buy iron 500000 30
 +
34: goto checkmarket
  
 
<br>
 
<br>

Latest revision as of 00:42, 23 September 2011

TEMPORARY COPY - NEEDS REFORMATTED STILL

All of the following references have been tested. The results, including the script used to access the variables is availible in the Reference Test section of this wiki.

Every effort has been made in an attempt to make them work. An examination of the code, for example, showed that 'taxrate' was non-functional due to being spelt incorrectly in the Evony code. The proper syntax for all variables is demonstated in the test.

Those that returned errors and could not be made to work were deleted from the output. Generally, this means that no reference to them could be found within the code.


Script References

References allow for the smooth operation of a City.

Resources, Troops, Walldefenses, & Miscellaneous City Information can be referenced from within a script.

Note: All references must begin with ‘m_city.’


When used within a script references are gereally compared to a desired limit in order to determine whether or not to perform the action or subroutine indicated.

Format: ifgoto ( [reference] [operator] [value] ) [label]
Format: ifgosub ( [reference] [operator] [value] ) [label]
Example: ifgosub ( m_city.cityManager.troop.lightCavalry < 20000 ) buildcav

Proper spacing and spelling is essential.

In certain cases the reference returns only a true/false in which case it will compare as either 0 if false or 1 if true.

Creating a script that is both easy to use and functional can be a tricky task for a seasoned veteran, much more so to a raw beginner. Remember, this is your city and troops you are attempting to control, a slight slip in logic can lead to disaster. To avoid such pitfalls it is reccommended that you check out the Tips and Tricks section of this wiki.

A test script has been created to test the output of all of the following references. The script and its resulting output can be found at the Reference Test page.Welcome to Scripts



Material Resources

Applicable Resources : food, wood, stone, iron

Summary of Reference Resource Parameters
amount

current amount of resources
increaseRate

Total Resource Rate of Production
max

Max Production of Resources at Current Levels
storeRercent

 Storage Percentage
workPeople

Total number of workers used in production of the resource


Examples :

//===================================================
// Check current amount of Wood, if greater than 10,000 gosub JumpToTraining
// Check if enough Iron is Being Produced, if not, gosub buildMoreMines
//===================================================
      ifgosub ( m_city.cityManager.resource.wood.amount > 10000 ) JumpToTraining
      ifgosub ( m_city.cityManager.resource.iron.increaseRate < 5000 ) buildMoreMines

Troops


Reference Troops Names to EvoBot Equivalent
archer
arch,a
ballista
balli,b
batteringRam
ram,r
carriage
tran,t
catapult
pult,cp
heavyCavalry
cata
lightCavalry
cav
militia
warr,w
peasants
worker,wo
pikemen
pike,p
scouter
scout,s
swordsmen
sword,sw


Example :

      ifgosub ( m_city.cityManager.troop.archer < 100000 ) buildArchers
      ifgosub ( m_city.cityManager.troop.heavyCavalry < 100000 ) buildPhracts
      ifgosub ( m_city.cityManager.troop.catapults < 15000 ) buildPults


IsHeroInCastle


Arg : m_city.IsHeroInCastle(heroname)
Explanation : Checks your city for a named Hero.
*Note: Checks only if your city has hero registered not if he/she is idle.


Coded Example :


      ifgoto ( m_city.IsHeroInCastle(AtkA) == true ) buildArcher
      ifgoto ( m_city.IsHeroInCastle(AtkS) == true ) buildScout
      ifgoto ( m_city.IsHeroInCastle(AtkP) == true ) buildPike
      ifgoto ( m_city.IsHeroInCastle(AtkW) == true ) buildWarr
      ifgoto ( m_city.IsHeroInCastle(AtkSw) == true ) buildSword
      //
      label buildArcher
      …


Note : Reference Must be spelled & spaced exactly as shown.


AnyIdleHero


Arg : m_city.AnyIdleHero(heroname/any)
Explanation : Checks your city for a named Hero or any Hero that is idle.

Coded Example :


//=======================================
// Attack lvl5 NPC
// goto Check subroutine
// train archers
// Check if ATK295 is Idle, if yes then goto TrainBig
// CHeck if any Hero is Idle, if yes then return to Farming
//=======================================
      attack XXX,YYY any b:400,t:400
      gosub Check
      …
      //
      label Check
      train a:2000 any all
      ifgosub ( m_city.AnyIdleHero(ATK295) == true ) TrainBig
      ifgoto ( m_city.AnyIdleHero(any) == true ) goBack
      sleep 600
      loop Check 0
      label goBack
      gosubreturn
      //
      label TrainBig
      train cata:400 any all
      gosubreturn


Note : Reference Must be spelled & spaced exactly as shown.


City References


Note : Reference Must be spelled & spaced exactly as shown.

Reference
Usage
*Notes
gold
m_city.cityManager.resource.gold
'.amount' is not needed to display total
complaint
m_city.cityManager.resource.complaint
Public Grievances
curPopulation
m_city.cityManager.resource.curPopulation

maxPopulation
m_city.cityManager.resource.maxPopulation

heroSalary
m_city.cityManager.resource.heroSalary

support
m_city.cityManager.resource.support
Loyalty
taxIncome
m_city.cityManager.resource.taxIncome

hasEnemy
m_city.cityManager.hasEnemy
Not Sure if this one actually works, I've tried it & while under attack still displays false



Edited City References

All of the following references have been tested. The results, including the script used to access the variables is availible in the Reference Test section of this wiki. Exceptions in orange.

Every effort has been made in an attempt to make them work. An examination of the code, for example, showed that 'taxrate' was non-functional due to being spelt incorrectly in the Evony code.

Those that returned errors and could not be made to work were deleted from the output.


Reference
Usage
Notes
m_city.AnyIdleHero(any)
Checks for an idle hero.
Either true or false.
m_city.AnyIdleHero(ATK295)
Checks if hero ATK295 is idle.
Either true or false.
m_city.IsHeroInCastle(HeroName)
Checks if hero HeroName is based in this castle.
Either true or false.



m_city.cityManager.allowAlliance

Unknown.
m_city.cityManager.buildings[#]
[object BuildingBean]
Any use?
m_city.cityManager.buildings[#].endTime
Construction end time.
0 if finnished.
m_city.cityManager.buildings[#].level
Building level that is in location #

m_city.cityManager.buildings[#].name
Building type for building #
e.g. Farm, Cottage (# = 0 - Number of buildings ... 73 max)
m_city.cityManager.buildings[#].positionId
Gives the position id of building number #
e.g. 1015 outside city, 27 inside city (# = 0 - 73)
m_city.cityManager.buildings[#].startTime
Construction start time.
0 if complete.
m_city.cityManager.buildings[#].status
Construction status.
0 = no construction, 1 = upgrading
m_city.cityManager.buildings[#].typeId
Numeric type of building.

m_city.cityManager.fields[#].id
Valley Id of valley No #.

m_city.cityManager.fields[#].level
Level of valley No #

m_city.cityManager.fields[#].name
Type of valley No #.

m_city.cityManager.fields[#].status

Unknown.
m_city.cityManager.fields[#].type
Numeric type of valley.

m_city.cityManager.fortification.abatis
Number of abatis
Does not include those in queue.
m_city.cityManager.fortification.arrowTower
Number of archers towers.
Does not include those in queue.
m_city.cityManager.fortification.rockfall
Number of trebuchev.
Does not include those in queue.
m_city.cityManager.fortification.rollingLogs
Number of rolling logs
Does not include those in queue.
m_city.cityManager.fortification.trap
Number of traps.
Does not include those in queue.
m_city.cityManager.goOutForBattle
true => gates open, false => gates closed.

m_city.cityManager.hasEnemy

Unknown.
m_city.cityManager.heros[#].experience

Unknown.
m_city.cityManager.heros[#].id

Unknown.
m_city.cityManager.heros[#].itemAmount

Unknown.
m_city.cityManager.heros[#].itemId

Unknown.
m_city.cityManager.heros[#].level

Unknown.
m_city.cityManager.heros[#].logoUrl

Unknown.
m_city.cityManager.heros[#].loyalty

Unknown.
m_city.cityManager.heros[#].management

Unknown.
m_city.cityManager.heros[#].managementAdded

Unknown.
m_city.cityManager.heros[#].managementBuffAdded

Unknown.
m_city.cityManager.heros[#].name


m_city.cityManager.heros[#].power


m_city.cityManager.heros[#].powerAdded


m_city.cityManager.heros[#].powerBuffAdded


m_city.cityManager.heros[#].remainPoint


m_city.cityManager.heros[#].staus
0 = IDLE, 1 = MAYOR, 2 = DEFENDING, 3 = MARCHING, 4 = CAPTIVE, 5 = RETURNING

m_city.cityManager.heros[#].stratagem


m_city.cityManager.heros[#].stratagemAdded


m_city.cityManager.heros[#].stratagemBuffAdded


m_city.cityManager.heros[#].upgradeExp


m_city.cityManager.id


m_city.cityManager.logUrl

Unknown.
m_city.cityManager.name


m_city.cityManager.resource.buildPeople


m_city.cityManager.resource.complaint


m_city.cityManager.resource.curPopulation


m_city.cityManager.resource.food.amount


m_city.cityManager.resource.food.increaseRate


m_city.cityManager.resource.food.max
Figure at which production stops.

m_city.cityManager.resource.food.storePercent


m_city.cityManager.resource.food.workPeople
Number of people tied up in food production.

m_city.cityManager.resource.gold
The amount of gold on hand.

m_city.cityManager.resource.gold.amount
Appending '.amount' to this reference creates an error.
Proper usage is above.
m_city.cityManager.resource.gold.increaseRate


m_city.cityManager.resource.heroSalary


m_city.cityManager.resource.iron.amount


m_city.cityManager.resource.iron.increaseRate


m_city.cityManager.resource.iron.max
Figure at which production stops.

m_city.cityManager.resource.iron.storePercent


m_city.cityManager.resource.iron.workPeople
Number of people tied up in iron production.

m_city.cityManager.resource.maxPopulation


m_city.cityManager.resource.stone.amount


m_city.cityManager.resource.stone.increaseRate


m_city.cityManager.resource.stone.max
Figure at which production stops.

m_city.cityManager.resource.stone.storePercent


m_city.cityManager.resource.stone.workPeople
Number of people tied up in stone production.

m_city.cityManager.resource.support
Loyalty of city.


m_city.cityManager.resource.taxIncome


m_city.cityManager.resource.taxRate


m_city.cityManager.resource.troopCostFood


m_city.cityManager.resource.wood.amount
Current amount of wood

m_city.cityManager.resource.wood.increaseRate
Total Resource Rate of Production

m_city.cityManager.resource.wood.max
Figure at which production stops.

m_city.cityManager.resource.wood.storePercent


m_city.cityManager.resource.wood.workPeople


m_city.cityManager.resource.workPeople


m_city.cityManager.status

Unknown.
m_city.cityManager.troop.archer
Number of this troop type that are in city but not active.

m_city.cityManager.troop.ballista
Number of this troop type that are in city but not active.

m_city.cityManager.troop.batteringRam
Number of this troop type that are in city but not active.

m_city.cityManager.troop.carriage
Number of this troop type that are in city but not active.

m_city.cityManager.troop.catapult
Number of this troop type that are in city but not active.

m_city.cityManager.troop.heavyCavalry
Number of this troop type that are in city but not active.

m_city.cityManager.troop.lightCavalry
Number of this troop type that are in city but not active.

m_city.cityManager.troop.militia
Number of warriors that are in city but not active.

m_city.cityManager.troop.peasants
Number of workers that are in city but not active.

m_city.cityManager.troop.pikemen
Number of this troop type that are in city but not active.

m_city.cityManager.troop.scouter
Number of this troop type that are in city but not active.

m_city.cityManager.troop.swordsmen
Number of this troop type that are in city but not active.

Market Prices

Beginning with version 2070, anew reference class, m_context, has been added. The first members are calls to the current market prices of each commodity.

To find the current buy/sell price of any resource:

Reference:
Usage:
Example:
sellprice()
m_context.sellprice(x)
m_context.sellprice(0)
buyprice
m_context.buyprice(x)
m_context.buyprice(2)



The constants for each resource:

Commodity
x
Food 0
Lumber 1
Stone 2
Iron 3


Example: a completely runnable 5 minute script...


 1: label check_market
2: ifgoto ( m_city.cityManager.resource.gold < 400000000 ) we_are_broke
3: ifgoto ( m_context.buyPrice(1) < 32 ) buywood 
4: ifgoto ( m_context.buyPrice(3) < 30 ) buyiron 
5: label we_are_broke
6: ifgoto ( m_city.cityManager.resource.gold < 50000 ) we_are_really_broke
7: ifgoto ( m_context.sellPrice(1) > 35 ) sellwood
8: ifgoto ( m_context.sellPrice(1) > 38 ) selliron
9: goto check_market
10: label we_are_really_broke
11: ifgoto ( m_city.cityManager.resource.lumber.amount < 30000 ) and_we_have_no_wood
12: sell lumber 1000 20
13: repeat 20
14: goto we_are_broke
15: label and_we_have_ne_wood
16: ifgoto ( m_city.cityManager.resource.iron.amount < 30000 ) uhoh
17: sell iron 1000 20
18: repeat 20
19: goto we_are_broke
20: label uhoh
21: sleep rnd:250
22: goto we_are_really_broke
23: label sellwood
24: sell lumber 500000 35
25: goto check_market
26: label selliron 
27: sell iron 500000 38
28: goto check_market
29: label buywood
30: buy lumber 500000 32
31: goto checkmarket
32: label buyiron 
33: buy iron 500000 30
34: goto checkmarket