特拉维安:王国公用事业为您的需要。
tkp的Python项目详细描述
TKPY
travian:kingdom(tk)实用程序,满足您的需要。它提供了几个主要用于传统知识的对象,例如map
,村庄
,记事本
,以及农场列表
安装
< Buff行情>建议使用virtualenv
由于tkpy
依赖于primordial
包,因此首先安装原始包
之后,运行tkpy init
以创建用于存储gameworld
对象的数据库。
(venv)$ pip install git+https://github.com/lijok/primordial.git (venv)$ pip install tkpy (venv)$ tkpy-init
入门
tkpy
needgameworld
对象以便它可以从tk获取数据。使用login
函数检索gameworld
对象。
fromtkpyimportlogindriver=login(email='your@email.com',password='your password',gameworld='com12')# login as sitter or dualdriver=login(email='your@email.com',password='your password',gameworld='dual/sitter gameworld',avatar='avatar name of sitter/dual account')# once you have `Gameworld` object, you can use another object of tkpy.fromtkpyimportMapm=Map(driver)m.pull()# pulling map datam.coordinate(0,0)<Cell({'id':'536887296','landscape':'9013','owner':'0'})>unoccupied_oasis_list=[oasisforoasisinm.oasisifoasis['oasis']['oasisStatus']=='3']unoccupied_oasis_list[0]<Cell({'id':'535019499','landscape':'2755','owner':'0','oasis':{'bonus':{'1':0,...},...}...})>
用法
MAP
map
对象通过使用pull
方法提供了从tk map访问数据的简单方法。
fromtkpyimportMapm=Map(driver)m.pull()
- 提取地图数据后,可以使用
坐标
方法访问每个单元格。
m.coordinate(0,0)<Cell({'id':'536887296','landscape':'9013','owner':'0'})>
- 由于tk在您提取地图数据时为您提供播放器数据和王国数据,因此
map
对象也为您提供了访问此类数据的简单方法。
m.player('player name')<Player({'name':'player name','country':'en','tribeId':'1',...})>m.kingdom('kingdom name')<Kingdom({'tag':'kingdom name','kingdomId':'9999'})>
map
对象具有充当生成器函数并产生单元格的属性,因此您可以从每个单元格获取所有数据。
cell_list=list(m.cell)< Buff行情>
map.cell
属性的旁注:
有些单元格对象有不同的数据。一次有村庄数据,而另一次没有村庄数据。
通过map.cell
属性查找特定单元格可能会导致keyerror异常。要防止这种用法,请尝试except
子句。
forcellinm.cell:try:village=cell['village']exceptKeyError:# this cell didn't have village datacontinue...
map
对象还具有过滤单元格数据的属性,因此它只提供特定数据。
# make a list of cell that have village data on itvillages=list(m.villages)# make a list of cell that have oasis data on itoasis=list(m.oasis)# make a list of cell that have 15c and 9c but didn't have village data on it (unsettled croppers)croppers=[tilefortileinm.tilesiftile['resType']=='3339'ortile['resType']=='11115']# make a list of cell that have village data on it and have population lower than 100village_list=[villageforvillageinm.villagesifint(village['village']['population'])<100]
- 还有一个用于生成玩家和王国数据的属性
# make a list of inactive playerinactive_list=[playerforplayerinm.playersifplayer.is_activeisFalse]# make a list of kingdoms datakingdoms=list(m.kingdoms)
村庄
村庄
对象提供了一种使用村庄名称访问游戏中每个村庄的简单方法。
但首先,对象需要从传统知识中提取数据。
(venv)$ pip install git+https://github.com/lijok/primordial.git (venv)$ pip install tkpy (venv)$ tkpy-init0 < Buff行情>
村庄
对象的旁注:
如您所知,您可以用相同的名称命名您的村庄(如"我的村庄"和"我的村庄")
问题是村庄
对象不能访问这两种同名的村庄
对象,
结果村庄
对象将随机返回具有相同名称的村庄
对象。
农场列表
farmlist
通过使用farmlist名称,为您提供一种在游戏中访问farmlist的简单方法。
首先,farmlist对象需要从tk中提取数据。
(venv)$ pip install git+https://github.com/lijok/primordial.git (venv)$ pip install tkpy (venv)$ tkpy-init1 <再见>
farmlist
对象的旁注:
如您所知,您可以使用相同的名称命名farmlist(如"farmlist 1"和"farmlist 1")
问题是farmlist
对象不能访问这两种同名的farmlistentry
对象,
结果farmlist
对象将随机返回具有相同名称的farmlistentry
对象。
记事本
记事本
是一个在实例化时将在游戏中创建新记事本的对象。
(venv)$ pip install git+https://github.com/lijok/primordial.git (venv)$ pip install tkpy (venv)$ tkpy-init2
文档
有关文档,请访问Tkpy Wiki