m (example market script added\) |
m (script) |
||
Line 668: | Line 668: | ||
− | label check_market | + | 1: label check_market |
− | ifgoto ( m_city.cityManager.resource.gold < 400000000 ) we_are_broke | + | 2: ifgoto ( m_city.cityManager.resource.gold < 400000000 ) we_are_broke |
− | ifgoto ( m_context. | + | 3: ifgoto ( m_context.buyPrice(1) < 32 ) buywood |
− | ifgoto ( m_context. | + | 4: ifgoto ( m_context.buyPrice(3) < 30 ) buyiron |
− | label we_are_broke | + | 5: label we_are_broke |
− | ifgoto ( m_city. | + | 6: ifgoto ( m_city.cityManager.resource.gold < 50000 ) we_are_really_broke |
− | ifgoto ( m_context. | + | 7: ifgoto ( m_context.sellPrice(1) > 42 ) sellwood |
− | ifgoto ( m_context. | + | 8: ifgoto ( m_context.sellPrice(1) > 38 ) selliron |
− | goto | + | 9: goto check_market |
− | label we_are_really_broke | + | 10: label we_are_really_broke |
− | ifgoto ( m_city.cityManager.resource.lumber.amount < 30000 ) and_we_have_no_wood | + | 11: ifgoto ( m_city.cityManager.resource.lumber.amount < 30000 ) and_we_have_no_wood |
− | sell lumber 1000 20 | + | 12: sell lumber 1000 20 |
− | repeat 20 | + | 13: repeat 20 |
− | goto we_are_broke | + | 14: goto we_are_broke |
− | label and_we_have_ne_wood | + | 15: label and_we_have_ne_wood |
− | ifgoto ( m_city.cityManager.resource.iron.amount < 30000 ) uhoh | + | 16: ifgoto ( m_city.cityManager.resource.iron.amount < 30000 ) uhoh |
− | sell iron 1000 20 | + | 17: sell iron 1000 20 |
− | repeat 20 | + | 18: repeat 20 |
− | goto we_are_broke | + | 19: goto we_are_broke |
− | label uhoh | + | 20: label uhoh |
− | sleep rnd:250 | + | 21: sleep rnd:250 |
− | goto we_are_really_broke | + | 22: goto we_are_really_broke |
− | label sellwood | + | 23: label sellwood |
− | sell lumber 5000000 m_context. | + | 24: sell lumber 5000000 m_context.sellPrice(1) |
− | goto | + | 25: goto check_market |
− | label selliron | + | 26: label selliron |
− | sell iron 5000000 m_context. | + | 27: sell iron 5000000 m_context.sellPrice(3) |
− | goto | + | 28: goto check_market |
− | label buywood | + | 29: label buywood |
− | buy lumber 5000000 m_context. | + | 30: buy lumber 5000000 m_context.buyPrice(1) |
− | goto checkmarket | + | 31: goto checkmarket |
− | label buyiron | + | 32: label buyiron |
− | buy iron 5000000 m_context. | + | 33: buy iron 5000000 m_context.buyPrice(3) |
− | goto checkmarket | + | 34: goto checkmarket |
− | |||
− | |||
<br> | <br> |
Revision as of 23:40, 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.
Contents
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.
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. |
|
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) > 42 ) 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 5000000 m_context.sellPrice(1) 25: goto check_market 26: label selliron 27: sell iron 5000000 m_context.sellPrice(3) 28: goto check_market 29: label buywood 30: buy lumber 5000000 m_context.buyPrice(1) 31: goto checkmarket 32: label buyiron 33: buy iron 5000000 m_context.buyPrice(3) 34: goto checkmarket