107 lines
2.6 KiB
Python
107 lines
2.6 KiB
Python
import os
|
|
|
|
import dbg
|
|
import app
|
|
import localeInfo
|
|
import wndMgr
|
|
import systemSetting
|
|
import mouseModule
|
|
import networkModule
|
|
import uiCandidate
|
|
import constInfo
|
|
import musicInfo
|
|
import stringCommander
|
|
|
|
|
|
|
|
#bind_me(locals().values())
|
|
|
|
|
|
def _GetHeadlessScenario():
|
|
return os.environ.get("M2_HEADLESS_SCENARIO", "").strip().lower()
|
|
|
|
|
|
def _WriteHeadlessTrace(message):
|
|
scenario = _GetHeadlessScenario()
|
|
if scenario == "map_load":
|
|
tracePath = "log/headless_map_load_trace.txt"
|
|
elif scenario == "gm_teleport":
|
|
tracePath = "log/headless_gm_teleport_trace.txt"
|
|
else:
|
|
return
|
|
|
|
try:
|
|
open(tracePath, "a").write("%s\n" % message)
|
|
except:
|
|
pass
|
|
|
|
|
|
def _GetHeadlessInt(name, default):
|
|
try:
|
|
return int(os.environ.get(name, str(default)))
|
|
except (TypeError, ValueError):
|
|
return default
|
|
|
|
|
|
def _SetInitialPhase(mainStream):
|
|
scenario = _GetHeadlessScenario()
|
|
if scenario == "map_load":
|
|
mapName = os.environ.get("M2_HEADLESS_MAP_NAME", "").strip()
|
|
globalX = _GetHeadlessInt("M2_HEADLESS_GLOBAL_X", 460800)
|
|
globalY = _GetHeadlessInt("M2_HEADLESS_GLOBAL_Y", 960000)
|
|
|
|
_WriteHeadlessTrace("Scenario begin map=%s global_x=%d global_y=%d" % (mapName, globalX, globalY))
|
|
mainStream.SetTestGamePhase(globalX, globalY)
|
|
return
|
|
|
|
if scenario == "gm_teleport":
|
|
_WriteHeadlessTrace("Scenario begin gm_teleport")
|
|
mainStream.SetLoginPhase()
|
|
return
|
|
|
|
mainStream.SetLoginPhase()
|
|
|
|
def RunApp():
|
|
musicInfo.LoadLastPlayFieldMusic()
|
|
|
|
app.SetHairColorEnable(constInfo.HAIR_COLOR_ENABLE)
|
|
app.SetArmorSpecularEnable(constInfo.ARMOR_SPECULAR_ENABLE)
|
|
app.SetWeaponSpecularEnable(constInfo.WEAPON_SPECULAR_ENABLE)
|
|
|
|
app.SetMouseHandler(mouseModule.mouseController)
|
|
wndMgr.SetMouseHandler(mouseModule.mouseController)
|
|
wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight())
|
|
|
|
try:
|
|
app.Create(localeInfo.APP_TITLE, systemSetting.GetWidth(), systemSetting.GetHeight(), 1)
|
|
except RuntimeError as msg:
|
|
msg = str(msg)
|
|
if "CREATE_DEVICE" == msg:
|
|
dbg.LogBox("Sorry, Your system does not support 3D graphics,\r\nplease check your hardware and system configeration\r\nthen try again.")
|
|
else:
|
|
dbg.LogBox("Metin2.%s" % msg)
|
|
return
|
|
|
|
app.SetCamera(1500.0, 30.0, 0.0, 180.0)
|
|
|
|
#Gets and sets the floating-point control word
|
|
#app.SetControlFP()
|
|
|
|
if not mouseModule.mouseController.Create():
|
|
return
|
|
|
|
mainStream = networkModule.MainStream()
|
|
mainStream.Create()
|
|
|
|
#mainStream.SetLoadingPhase()
|
|
_SetInitialPhase(mainStream)
|
|
#mainStream.SetSelectCharacterPhase()
|
|
#mainStream.SetCreateCharacterPhase()
|
|
#mainStream.SetSelectEmpirePhase()
|
|
#mainStream.SetGamePhase()
|
|
app.Loop()
|
|
|
|
mainStream.Destroy()
|
|
|
|
RunApp()
|