From NEAT Portal Wiki
Jump to: navigation, search
m (Undid the red highlights)
m (add marketprice references)
Line 31: Line 31:
 
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.
 
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>
 +
==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>
 +
<br>
 +
<br>
 +
 
 +
 
 +
{| border="1" cellpadding="1" align="left"
 +
|-
 +
!Reference:<br>
 +
!Usage:<br>
 +
!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>
 +
|-
 +
|}
  
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>
 
==Material Resources==
 
==Material Resources==
  
Line 620: Line 646:
  
 
<br>
 
<br>
 +
The constants for each resource:
 +
 +
{| border="1" cellpadding="1" align="left"
 +
|-
 +
!Commodity<br>
 +
! x <br>
 +
|-
 +
|Food||0<br>
 +
|-
 +
|Lumber||1<br>
 +
|-
 +
|Stone||2<br>
 +
|-
 +
|Iron||3<br>
 +
|}

Revision as of 22:50, 20 July 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


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.




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



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.

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.


This is Under construction dull green.

This is Under construction dull blue.

This is Under construction brown.

This is Under construction pale cyan.

This is Under construction calm blue.

</font>

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

Unknown.
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


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 this troop type that are in city but not active.

m_city.cityManager.troop.peasants
Number of this troop type 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.



The constants for each resource:

Commodity
x
Food 0
Lumber 1
Stone 2
Iron 3