Май
08
2008
World of Warcraft — логин сервер написаный на Python-е. Часть 2.
Написал: Евгений Фомин в категорию Linux & Игры, Python, Python: Статьи, WoWНачало (часть 1).
И так далее. Нам нужно както хронить основные настройки для инициализации сервера. Для этого нужно создать класс который будет загружать настройки из ini-файла. В основной программе нужно добавить
from ConfigParser import ConfigParser |
это позволит программе читать файл настроек допустим такого вида
[mysql] dbhosh="localhost" dbname="pywow" dbuser="root" dbpass="pywow" dbport=3306 [pywow.command] pywowver=0.1.8 pywowhost="" pywowport=3724 pywowmax=10 |
Реализация класса будет такой
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # ini file reader class WoWLSConfig: """ Класс отвечающий за загрузку настроек """ setupf='' def __init__(self,inifile="config.ini"): self.file=os.getcwd()+"\\"+inifile try: if os.path.isfile(self.file): cf=open(self.file) self.setupf=ConfigParser() self.setupf.readfp(cf,self.file) cf.close() printlog('Init','config file is load') else: printlog('Init','file %s not found or corrupted'%self.file) os._exit() except: printlog('Init','error loading ini file\r\n %s'%str(sys.exc_info())) sys.exit() |
printlog — это моя процедура вывода логов в окно терминала.
def printlog(strcom,strinfo): from time import localtime, strftime ltime=strftime("%H:%M:%S", localtime()) print '[ %s ] %s %s'%(ltime,strcom,strinfo) |
Чтобы все это закрутилось и завертелос нужно в основной класс дописать
self.initfile=WoWLSConfig().setupf pywowport=self.initfile.get('pywow.command','pywowport') pywowver=self.initfile.get('pywow.command','pywowver') printlog('pyWoW','start Login server v %s'%pywowver) if pywowport!="": self.port=int(pywowport) else: self.port=int(port) |