This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
2.2. Multi-server support 多服务器支持
Support a new server 增加新的服务器支持
GUI
Copy ./module/config/argparser.py to argparser_xx.py and change the args.
Create a dictionary in ./module/config/dictionary.py that translate your language to english.
Copy alas_cn.py to alas_xx.py and import argparser_xx.py . Then, edit server name.
Format of .pyw file name: <sctipt_name>_<server_name>.pyw
Script name is used to load ini file under
./config, For example, alas_cn.pyw and alas_en.pyw both loads./config/alas.ini, but in different languages.
Assets
Copy folder ./assets/cn to ./assets/<your server>, and replace the image. This will cost a lot of time to find, crop and test. Fortunately, if a image does not contain any charactors, it may works in all servers.
Add server name to dev_tools/button_extract.py VALID_SERVER = ['cn', 'en', 'jp'].
After replacing an image, don't forget to run ./dev_tools/button_extract.py
Class methods
Some method may be different in different servers. This decoractor is use to calls different function with a same name according to config (AzurLaneConfig instance).
from module.base.decorator import Config
from module.base.base import ModuleBase
class AnotherModule(ModuleBase):
@Config.when(SERVER='en')
def function(self):
# This method will be called only in EN server
pass
@Config.when(SERVER=None)
def function(self):
# This method will be called in other server
pass
OCR
There area also some modules difficult to change: the commission module.
In ./module/reward/commission.py, I use cnocr to recognize commission name in chinese, it may not works well in other languages.
Set server 设置服务器
这段代码所设置的服务器,将在全局生效。未设置服务器时,默认为 cn。
可以设置的服务器有 cn,en,jp。
import module.config.server as server
server.server = 'cn' # Edit your server here.
注意
你需要在导入任意 Alas 模块之前设置服务器。在模块导入时,就会读取服务器设置,如果服务器设置晚于模块导入,设置不生效。
使用例子:
import numpy as np
from tqdm import tqdm
import module.config.server as server
server.server = 'cn' # Edit your server here.
from module.logger import logger
from module.statistics.battle_status import BattleStatusStatistics
from module.statistics.get_items import GetItemsStatistics
from module.statistics.utils import *
Timezone awareness 考虑时区
一些用户可能不与服务器在同一时区,所以不能简单地使用本地时间或本地日期。
以下是一些服务器的时区:
| Server | Timezone |
|---|---|
| CN | UTC+8 |
| EN | UTC-7 |
| JP | UTC+9 |
在 module/config/config.py 类 AzurLaneConfig 中有处理时区的函数。
get_server_timezone(self)
返回当前服务器的时区。
get_server_last_update(self, since)
返回服务器上次刷新时,所对应的本地时间。这个时间可以直接与本地时间进行比较。since 是含有一个或多个元素的集合,表示服务器在一天内刷新的整点时间。
>>> # 2020-06-06 12:56:45 UTC+2
>>> import module.config.server as server
>>> server.server = 'en'
>>> from module.config.config import AzurLaneConfig
>>> cfg = AzurLaneConfig()
>>> cfg.get_server_last_update(since=(0,))
2020-06-06 09:00:00
Getting Started
- Installation [EN]
- Installation [CN]
- Installation With Docker [EN]
- Emulator Support [CN]
- FAQ [EN/CN]
- FAQ [JP]
- Troubleshooting [EN]
- Another Installation guide
- Research Filter String [EN]
- Research Filter String [CN]
- Reward Shop Filter String [EN/CN]
- Onepush Configuration [EN]
- Onepush Configuration [CN]
Development
- Perspective [CN]
- Perspective [EN]
- Debug perspective [CN]
- Debug perspective [EN]
- Item Statistics [EN]
- 1. Start
- 2.1. Debugging
- 2.2. Multi-server support
- 3.1. Utils
- 3.2. Decorators
- 3.3. Log
- 3.4. Exception
- 4.1. Detection objects
- 4.2. UI control
- 4.3. OCR
- 4.4. State loop
- 5.1. Local Map
- 5.2. Create globe Map
- 5.3. Globe Map
- 6.1. GUI Option
MISC