Advertisement
Guest User

Lycan

a guest
Jun 13th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.81 KB | None | 0 0
  1. import ui
  2. import chr
  3. import grp
  4. import app
  5. import net
  6. import snd
  7. import math
  8. import event
  9. import wndMgr
  10. import uiToolTip
  11. import constInfo
  12. import musicInfo
  13. import localeInfo
  14. import networkModule
  15. import systemSetting
  16. import uiScriptLocale
  17. import playerSettingModule
  18.  
  19. MAN = 0
  20. WOMAN = 1
  21. SHAPE0 = 0
  22. SHAPE1 = 1
  23. PAGE_COUNT = 2
  24. SLOT_COUNT = 5
  25. BASE_CHR_ID = 3
  26. LOCALE_PATH = "uiscript/"+uiScriptLocale.CODEPAGE+"_"
  27.  
  28. class CreateCharacterWindow(ui.Window):
  29. CREATE_STAT_POINT = 0
  30.  
  31. STAT_CON = 0
  32. STAT_INT = 1
  33. STAT_STR = 2
  34. STAT_DEX = 3
  35. START_STAT = (
  36. [4, 3, 6, 3,],
  37. [3, 3, 4, 6,],
  38. [3, 5, 5, 3,],
  39. [4, 6, 3, 3,],
  40. [6, 2, 6, 2,],
  41. )
  42.  
  43. EMPIRE_NAME = {
  44. net.EMPIRE_A : localeInfo.EMPIRE_A,
  45. net.EMPIRE_B : localeInfo.EMPIRE_B,
  46. net.EMPIRE_C : localeInfo.EMPIRE_C
  47. }
  48.  
  49. STAT_DESCRIPTION = {
  50. STAT_CON : localeInfo.STAT_TOOLTIP_CON,
  51. STAT_INT : localeInfo.STAT_TOOLTIP_INT,
  52. STAT_STR : localeInfo.STAT_TOOLTIP_STR,
  53. STAT_DEX : localeInfo.STAT_TOOLTIP_DEX,
  54. }
  55.  
  56. DESCRIPTION_FILE_NAME = (
  57. uiScriptLocale.JOBDESC_WARRIOR_PATH,
  58. uiScriptLocale.JOBDESC_ASSASSIN_PATH,
  59. uiScriptLocale.JOBDESC_SURA_PATH,
  60. uiScriptLocale.JOBDESC_SHAMAN_PATH,
  61. uiScriptLocale.JOBDESC_WOLFMAN_PATH,
  62. )
  63.  
  64. RACE_DECT = {
  65. 0 : playerSettingModule.RACE_WARRIOR_M,
  66. 1 : playerSettingModule.RACE_ASSASSIN_M,
  67. 2 : playerSettingModule.RACE_SURA_M,
  68. 3 : playerSettingModule.RACE_SHAMAN_M,
  69. 4 : playerSettingModule.RACE_WOLFMAN_M,
  70. 5 : playerSettingModule.RACE_WARRIOR_W,
  71. 6 : playerSettingModule.RACE_ASSASSIN_W,
  72. 7 : playerSettingModule.RACE_SURA_W,
  73. 8 : playerSettingModule.RACE_SHAMAN_W,
  74. }
  75.  
  76. FACE_IMAGE_DICT = {
  77. 0 : "icon/face/warrior_m.tga",
  78. 1 : "icon/face/assassin_m.tga",
  79. 2 : "icon/face/sura_m.tga",
  80. 3 : "icon/face/shaman_m.tga",
  81. 4 : "icon/face/wolfman_m.tga",
  82. 5 : "icon/face/warrior_w.tga",
  83. 6 : "icon/face/assassin_w.tga",
  84. 7 : "icon/face/sura_w.tga",
  85. 8 : "icon/face/shaman_w.tga",
  86. 9 : "icon/face/wolfman_m.tga",
  87. }
  88.  
  89. RACE_NAME = {
  90. 0 : localeInfo.JOB_WARRIOR,
  91. 1 : localeInfo.JOB_ASSASSIN,
  92. 2 : localeInfo.JOB_SURA,
  93. 3 : localeInfo.JOB_SHAMAN,
  94. 4 : localeInfo.JOB_WOLFMAN,
  95. 5 : localeInfo.JOB_WARRIOR,
  96. 6 : localeInfo.JOB_ASSASSIN,
  97. 7 : localeInfo.JOB_SURA,
  98. 8 : localeInfo.JOB_SHAMAN,
  99. 9 : localeInfo.JOB_WOLFMAN,
  100. }
  101.  
  102. class DescriptionBox(ui.Window):
  103. def __init__(self):
  104. ui.Window.__init__(self)
  105. self.descIndex = 0
  106. def __del__(self):
  107. ui.Window.__del__(self)
  108. def SetIndex(self, index):
  109. self.descIndex = index
  110. def OnRender(self):
  111. event.RenderEventSet(self.descIndex)
  112.  
  113. class CharacterRenderer(ui.Window):
  114. def OnRender(self):
  115. grp.ClearDepthBuffer()
  116. grp.SetGameRenderState()
  117. grp.PushState()
  118. grp.SetOmniLight()
  119.  
  120. screenWidth = wndMgr.GetScreenWidth()
  121. screenHeight = wndMgr.GetScreenHeight()
  122. newScreenWidth = float(screenWidth - 270)
  123. newScreenHeight = float(screenHeight)
  124. grp.SetViewport(270.0/screenWidth, 0.0, newScreenWidth/screenWidth, newScreenHeight/screenHeight)
  125.  
  126. app.SetCenterPosition(0.0, 0.0, 0.0)
  127. app.SetCamera(1550.0, 15.0, 180.0, 95.0)
  128. grp.SetPerspective(10.0, newScreenWidth/newScreenHeight, 1000.0, 3000.0)
  129.  
  130. (x, y) = app.GetCursorPosition()
  131. grp.SetCursorPosition(x, y)
  132.  
  133. chr.Deform()
  134. chr.Render()
  135.  
  136. grp.RestoreViewport()
  137. grp.PopState()
  138. grp.SetInterfaceRenderState()
  139.  
  140. def __init__(self, stream):
  141. print "NEW CREATE WINDOW ----------------------------------------------------------------------------"
  142.  
  143. ui.Window.__init__(self)
  144. net.SetPhaseWindow(net.PHASE_WINDOW_CREATE, self)
  145. self.stream=stream
  146.  
  147. def __del__(self):
  148. print "---------------------------------------------------------------------------- DELETE CREATE WINDOW"
  149.  
  150. net.SetPhaseWindow(net.PHASE_WINDOW_CREATE, 0)
  151. ui.Window.__del__(self)
  152.  
  153. def Open(self):
  154. print "OPEN CREATE WINDOW ----------------------------------------------------------------------------"
  155.  
  156. playerSettingModule.LoadGameData("INIT")
  157. self.reservingRaceIndex = -1
  158. self.reservingShapeIndex = -1
  159. self.reservingStartTime = 0
  160. self.stat = [0, 0, 0, 0]
  161. self.slot = 0
  162. self.gender = 0
  163. self.shapeList = [[0, 0, 0, 0, 0],[0, 0, 0, 0, 0]]
  164. self.descIndex = 0
  165. try:
  166. dlgBoard = ui.ScriptWindow()
  167. pythonScriptLoader = ui.PythonScriptLoader()
  168. pythonScriptLoader.LoadScriptFile(dlgBoard, uiScriptLocale.LOCALE_UISCRIPT_PATH + "createcharacterwindow.py")
  169. except:
  170. import exception
  171. exception.Abort("CreateCharacterWindow.Open.LoadObject")
  172.  
  173. try:
  174. getChild = dlgBoard.GetChild
  175. self.backGroundImg1 = getChild("BackGround")
  176. self.backGroundImg2 = getChild("BackGround2")
  177. self.backGroundImg2.Hide()
  178. self.backGroundImg3 = getChild("BackGround3")
  179. self.backGroundImg3.Hide()
  180.  
  181. self.empireName = getChild("EmpireName")
  182. self.EmpireFlagA = getChild("EmpireFlag_A")
  183. self.EmpireFlagB = getChild("EmpireFlag_B")
  184. self.EmpireFlagC = getChild("EmpireFlag_C")
  185.  
  186. self.CharacterSlot_0 = getChild("WARRIOR")
  187. self.CharacterFace_0 = getChild("CharacterFace_0")
  188. self.CharacterSlot_1 = getChild("ASSASSIN")
  189. self.CharacterFace_1 = getChild("CharacterFace_1")
  190. self.CharacterSlot_2 = getChild("SURA")
  191. self.CharacterFace_2 = getChild("CharacterFace_2")
  192. self.CharacterSlot_3 = getChild("SHAMAN")
  193. self.CharacterFace_3 = getChild("CharacterFace_3")
  194. self.CharacterSlot_4 = getChild("WOLFMAN")
  195. self.CharacterFace_4 = getChild("CharacterFace_4")
  196. self.DiscFace = getChild("DiscFace")
  197. self.raceName = getChild("raceName_Text")
  198.  
  199. self.NameList = []
  200. self.NameList.append(getChild("name_warrior"))
  201. self.NameList.append(getChild("name_assassin"))
  202. self.NameList.append(getChild("name_sura"))
  203. self.NameList.append(getChild("name_shaman"))
  204. self.NameList.append(getChild("name_wolfman"))
  205.  
  206. self.GaugeList = []
  207. self.GaugeList.append(getChild("hth_gauge"))
  208. self.GaugeList.append(getChild("int_gauge"))
  209. self.GaugeList.append(getChild("str_gauge"))
  210. self.GaugeList.append(getChild("dex_gauge"))
  211.  
  212. self.btnCreate = getChild("create_button")
  213. self.btnCancel = getChild("cancel_button")
  214. self.btnPrev = getChild("prev_button")
  215. self.btnNext = getChild("next_button")
  216. self.textBoard = getChild("text_board")
  217.  
  218. self.genderButtonList = []
  219. self.genderButtonList.append(getChild("gender_button_01"))
  220. self.genderButtonList.append(getChild("gender_button_02"))
  221.  
  222. self.shapeButtonList = []
  223. self.shapeButtonList.append(getChild("shape_button_01"))
  224. self.shapeButtonList.append(getChild("shape_button_02"))
  225.  
  226. self.editCharacterName = getChild("character_name_value")
  227.  
  228. self.statValue = []
  229. self.statValue.append(getChild("hth_value"))
  230. self.statValue.append(getChild("int_value"))
  231. self.statValue.append(getChild("str_value"))
  232. self.statValue.append(getChild("dex_value"))
  233.  
  234. getChild("hth_slot").ShowToolTip = lambda arg=self.STAT_CON: self.OverInStatButton(arg)
  235. getChild("hth_slot").HideToolTip = lambda arg=self.STAT_CON: self.OverOutStatButton()
  236. getChild("int_slot").ShowToolTip = lambda arg=self.STAT_INT: self.OverInStatButton(arg)
  237. getChild("int_slot").HideToolTip = lambda arg=self.STAT_INT: self.OverOutStatButton()
  238. getChild("str_slot").ShowToolTip = lambda arg=self.STAT_STR: self.OverInStatButton(arg)
  239. getChild("str_slot").HideToolTip = lambda arg=self.STAT_STR: self.OverOutStatButton()
  240. getChild("dex_slot").ShowToolTip = lambda arg=self.STAT_DEX: self.OverInStatButton(arg)
  241. getChild("dex_slot").HideToolTip = lambda arg=self.STAT_DEX: self.OverOutStatButton()
  242. getChild("hth_slot").Hide()
  243. getChild("int_slot").Hide()
  244. getChild("str_slot").Hide()
  245. getChild("dex_slot").Hide()
  246.  
  247. self.genderButtonList[0].ShowToolTip = lambda arg=1: self.OverInButton(arg)
  248. self.genderButtonList[0].HideToolTip = lambda arg=1: self.OverOutButton()
  249. self.genderButtonList[1].ShowToolTip = lambda arg=2: self.OverInButton(arg)
  250. self.genderButtonList[1].HideToolTip = lambda arg=2: self.OverOutButton()
  251. self.shapeButtonList[0].ShowToolTip = lambda arg=3: self.OverInButton(arg)
  252. self.shapeButtonList[0].HideToolTip = lambda arg=3: self.OverOutButton()
  253. self.shapeButtonList[1].ShowToolTip = lambda arg=4: self.OverInButton(arg)
  254. self.shapeButtonList[1].HideToolTip = lambda arg=4: self.OverOutButton()
  255. getChild("prev_button").ShowToolTip = lambda arg=5: self.OverInButton(arg)
  256. getChild("prev_button").HideToolTip = lambda arg=5: self.OverOutButton()
  257. getChild("next_button").ShowToolTip = lambda arg=6: self.OverInButton(arg)
  258. getChild("next_button").HideToolTip = lambda arg=6: self.OverOutButton()
  259. getChild("create_button").ShowToolTip = lambda arg=7: self.OverInButton(arg)
  260. getChild("create_button").HideToolTip = lambda arg=7: self.OverOutButton()
  261. getChild("cancel_button").ShowToolTip = lambda arg=8: self.OverInButton(arg)
  262. getChild("cancel_button").HideToolTip = lambda arg=8: self.OverOutButton()
  263. getChild("WARRIOR").ShowToolTip = lambda arg=9: self.OverInButton(arg)
  264. getChild("WARRIOR").HideToolTip = lambda arg=9: self.OverOutButton()
  265. getChild("ASSASSIN").ShowToolTip = lambda arg=10: self.OverInButton(arg)
  266. getChild("ASSASSIN").HideToolTip = lambda arg=10: self.OverOutButton()
  267. getChild("SURA").ShowToolTip = lambda arg=11: self.OverInButton(arg)
  268. getChild("SURA").HideToolTip = lambda arg=11: self.OverOutButton()
  269. getChild("SHAMAN").ShowToolTip = lambda arg=12: self.OverInButton(arg)
  270. getChild("SHAMAN").HideToolTip = lambda arg=12: self.OverOutButton()
  271. getChild("WOLFMAN").ShowToolTip = lambda arg=13: self.OverInButton(arg)
  272. getChild("WOLFMAN").HideToolTip = lambda arg=13: self.OverOutButton()
  273. except:
  274. import exception
  275. exception.Abort("CreateCharacterWindow.Open.BindObject")
  276.  
  277. self.CharacterSlot_0.SAFE_SetEvent(self.__SelectSlot, 0)
  278. self.CharacterSlot_1.SAFE_SetEvent(self.__SelectSlot, 1)
  279. self.CharacterSlot_2.SAFE_SetEvent(self.__SelectSlot, 2)
  280. self.CharacterSlot_3.SAFE_SetEvent(self.__SelectSlot, 3)
  281. self.CharacterSlot_4.SAFE_SetEvent(self.__SelectSlot, 4)
  282. self.CharacterSlot_4.Hide()
  283. if constInfo.WOLF_MAN != "DISABLED" and constInfo.WOLF_MAN == "ENABLED":
  284. self.CharacterSlot_4.Show()
  285. elif constInfo.WOLF_WOMEN != "DISABLED" and constInfo.WOLF_WOMEN == "ENABLED":
  286. self.CharacterSlot_4.Show()
  287.  
  288. self.btnCreate.SetEvent(ui.__mem_func__(self.CreateCharacter))
  289. self.btnCancel.SetEvent(ui.__mem_func__(self.CancelCreate))
  290. self.btnPrev.SetEvent(ui.__mem_func__(self.PrevDescriptionPage))
  291. self.btnNext.SetEvent(ui.__mem_func__(self.NextDescriptionPage))
  292.  
  293. self.genderButtonList[0].SetEvent(ui.__mem_func__(self.__SelectGender), MAN)
  294. self.genderButtonList[1].SetEvent(ui.__mem_func__(self.__SelectGender), WOMAN)
  295.  
  296. self.shapeButtonList[0].SetEvent(ui.__mem_func__(self.__SelectShape), SHAPE0)
  297. self.shapeButtonList[1].SetEvent(ui.__mem_func__(self.__SelectShape), SHAPE1)
  298. self.editCharacterName.SetReturnEvent(ui.__mem_func__(self.CreateCharacter))
  299. self.editCharacterName.SetEscapeEvent(ui.__mem_func__(self.CancelCreate))
  300. self.dlgBoard = dlgBoard
  301.  
  302. self.curNameAlpha = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
  303. self.destNameAlpha = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
  304. self.curGauge = [0.0, 0.0, 0.0, 0.0]
  305. self.destGauge = [0.0, 0.0, 0.0, 0.0]
  306.  
  307. self.descriptionBox = self.DescriptionBox()
  308. self.descriptionBox.Show()
  309.  
  310. self.toolTip = uiToolTip.ToolTip()
  311. self.toolTip.ClearToolTip()
  312.  
  313. self.editCharacterName.SetText("")
  314.  
  315. self.EnableWindow()
  316.  
  317. app.SetCamera(500.0, 10.0, 180.0, 95.0)
  318.  
  319. self.__SelectSlot(0)
  320.  
  321. self.dlgBoard.Show()
  322. self.Show()
  323.  
  324. if musicInfo.createMusic != "":
  325. snd.SetMusicVolume(systemSetting.GetMusicVolume())
  326. snd.FadeInMusic("BGM/"+musicInfo.createMusic)
  327.  
  328. self.SetEmpire(net.GetEmpireID())
  329. app.ShowCursor()
  330.  
  331. def Close(self):
  332. print "---------------------------------------------------------------------------- CLOSE CREATE WINDOW"
  333.  
  334. self.editCharacterName.Enable()
  335. self.dlgBoard.ClearDictionary()
  336. self.stream = 0
  337. self.shapeButtonList = []
  338. self.genderButtonList = []
  339. self.btnCreate = 0
  340. self.btnCancel = 0
  341. self.btnPrev = 0
  342. self.btnNext = 0
  343. self.textBoard = 0
  344. self.editCharacterName = 0
  345. self.backGroundImg1 = None
  346. self.backGroundImg2 = None
  347. self.backGroundImg3 = None
  348. self.EmpireFlagA = None
  349. self.EmpireFlagB = None
  350. self.EmpireFlagC = None
  351. if musicInfo.createMusic != "":
  352. snd.FadeOutMusic("BGM/"+musicInfo.createMusic)
  353.  
  354. for id in xrange(BASE_CHR_ID + SLOT_COUNT * PAGE_COUNT):
  355. chr.DeleteInstance(id)
  356.  
  357. self.dlgBoard.Hide()
  358. self.Hide()
  359.  
  360. app.HideCursor()
  361. event.Destroy()
  362.  
  363. def SetEmpire(self, id):
  364. self.empireName.SetText(self.EMPIRE_NAME.get(id, ""))
  365. if id == 1:
  366. self.empireName.SetFontColor(1.0, 0, 0)
  367. self.EmpireFlagA.Show()
  368. self.EmpireFlagB.Hide()
  369. self.EmpireFlagC.Hide()
  370. self.BackGround = self.backGroundImg1
  371. self.backGroundImg1.Show()
  372. self.backGroundImg2.Hide()
  373. self.backGroundImg3.Hide()
  374.  
  375. self.chrRenderer = self.CharacterRenderer()
  376. self.chrRenderer.SetParent(self.backGroundImg1)
  377. self.chrRenderer.Show()
  378. elif id == 2:
  379. self.empireName.SetFontColor(1.0, 1.0, 0.0)
  380. self.EmpireFlagA.Hide()
  381. self.EmpireFlagB.Show()
  382. self.EmpireFlagC.Hide()
  383. self.BackGround = self.backGroundImg2
  384. self.backGroundImg1.Hide()
  385. self.backGroundImg2.Show()
  386. self.backGroundImg3.Hide()
  387.  
  388. self.chrRenderer = self.CharacterRenderer()
  389. self.chrRenderer.SetParent(self.backGroundImg2)
  390. self.chrRenderer.Show()
  391. elif id == 3:
  392. self.empireName.SetFontColor(0.0, 0, 1.0)
  393. self.EmpireFlagA.Hide()
  394. self.EmpireFlagB.Hide()
  395. self.EmpireFlagC.Show()
  396. self.BackGround = self.backGroundImg3
  397. self.backGroundImg1.Hide()
  398. self.backGroundImg2.Hide()
  399. self.backGroundImg3.Show()
  400.  
  401. self.chrRenderer = self.CharacterRenderer()
  402. self.chrRenderer.SetParent(self.backGroundImg3)
  403. self.chrRenderer.Show()
  404.  
  405. def EnableWindow(self):
  406. self.reservingRaceIndex = -1
  407. self.reservingShapeIndex = -1
  408. self.btnCreate.Enable()
  409. self.btnCancel.Enable()
  410. self.btnPrev.Enable()
  411. self.btnNext.Enable()
  412. self.editCharacterName.SetFocus()
  413. self.editCharacterName.Enable()
  414. chr_id = self.__GetSlotChrID(self.gender, self.slot)
  415. chr.SelectInstance(chr_id)
  416. chr.BlendLoopMotion(chr.MOTION_INTRO_WAIT, 0.1)
  417.  
  418. def DisableWindow(self):
  419. self.btnCreate.Disable()
  420. self.btnCancel.Disable()
  421. self.btnPrev.Disable()
  422. self.btnNext.Disable()
  423. self.editCharacterName.Disable()
  424. self.btnCreate.SetUp()
  425.  
  426. def __GetSlotChrID(self, gender, slot):
  427. return self.RACE_DECT[gender + slot]
  428.  
  429. def __MakeCharacter(self, race):
  430. chr_id = self.__GetSlotChrID(self.gender, self.slot)
  431. chr.CreateInstance(chr_id)
  432. chr.SelectInstance(chr_id)
  433. chr.SetVirtualID(chr_id)
  434. chr.SetRace(chr_id)
  435. chr.SetArmor(0)
  436. chr.SetHair(0)
  437. chr.Refresh()
  438. chr.SetMotionMode(chr.MOTION_MODE_GENERAL)
  439. chr.SetLoopMotion(chr.MOTION_INTRO_WAIT)
  440. chr.SetRotation(0.0)
  441.  
  442. distance = 50.0
  443. rotRadian = 82.0 * (math.pi*2) / 360.0
  444. x = distance*math.sin(rotRadian) + distance*math.cos(rotRadian)
  445. y = distance*math.cos(rotRadian) - distance*math.sin(rotRadian)
  446. chr.SetPixelPosition(int(x), int(y), 30)
  447. chr.Hide()
  448.  
  449. def __SelectGender(self, gender):
  450. slot = self.slot
  451. if constInfo.WOLF_WOMEN != "ENABLED" and constInfo.WOLF_WOMEN == "DISABLED" and slot == 4 and gender == 1:
  452. for button in self.genderButtonList:
  453. button.Down()
  454.  
  455. self.genderButtonList[gender].SetUp()
  456. return
  457. elif constInfo.WOLF_MAN != "ENABLED" and constInfo.WOLF_MAN == "DISABLED" and slot == 4 and gender == 0:
  458. for button in self.genderButtonList:
  459. button.Down()
  460.  
  461. self.genderButtonList[gender].SetUp()
  462. return
  463.  
  464. for button in self.genderButtonList:
  465. button.SetUp()
  466.  
  467. self.genderButtonList[gender].Down()
  468. self.gender = gender
  469. if gender == 0 and self.slot > 4:
  470. slot = self.slot - 4
  471. elif gender == 1 and self.slot < 4:
  472. slot = self.slot + 4
  473. if gender == 1 and self.slot > 8:
  474. slot = self.slot - 4
  475.  
  476. for i in xrange(9):
  477. chr.DeleteInstance(i)
  478.  
  479. chr_id = self.__GetSlotChrID(self.gender, slot)
  480. chr.CreateInstance(chr_id)
  481. chr.SelectInstance(chr_id)
  482. chr.SetVirtualID(chr_id)
  483. chr.SetRace(chr_id)
  484. chr.SetArmor(0)
  485. chr.SetHair(0)
  486. chr.Refresh()
  487. chr.SetMotionMode(chr.MOTION_MODE_GENERAL)
  488. chr.SetLoopMotion(chr.MOTION_INTRO_WAIT)
  489. chr.SetRotation(0.0)
  490.  
  491. distance = 50.0
  492. rotRadian = 82.0 * (math.pi*2) / 360.0
  493. x = distance*math.sin(rotRadian) + distance*math.cos(rotRadian)
  494. y = distance*math.cos(rotRadian) - distance*math.sin(rotRadian)
  495. chr.SetPixelPosition(int(x), int(y), 30)
  496. chr.Show()
  497.  
  498. def __SelectShape(self, shape):
  499. self.shapeList[self.gender][self.slot] = shape
  500. for button in self.shapeButtonList:
  501. button.SetUp()
  502.  
  503. self.shapeButtonList[shape].Down()
  504. chr_id = self.__GetSlotChrID(self.gender, self.slot)
  505. chr.SelectInstance(chr_id)
  506. chr.ChangeShape(shape)
  507. chr.SetMotionMode(chr.MOTION_MODE_GENERAL)
  508. chr.SetLoopMotion(chr.MOTION_INTRO_WAIT)
  509.  
  510. def GetSlotIndex(self):
  511. return self.slot
  512.  
  513. def RefreshStat(self):
  514. statSummary = self.stat[0] + self.stat[1] + self.stat[2] + self.stat[3]
  515. self.destGauge = (
  516. float(self.stat[0])/float(statSummary),
  517. float(self.stat[1])/float(statSummary),
  518. float(self.stat[2])/float(statSummary),
  519. float(self.stat[3])/float(statSummary),
  520. )
  521.  
  522. for i in xrange(4):
  523. self.statValue[i].SetText(str(self.stat[i]))
  524.  
  525. def __SelectSlot(self, slot):
  526. self.slot = slot
  527. self.ResetStat()
  528.  
  529. for i in xrange(9):
  530. chr.DeleteInstance(i)
  531.  
  532. self.genderButtonList[0].Show()
  533. self.genderButtonList[1].Show()
  534. self.DiscFace.LoadImage(self.FACE_IMAGE_DICT[slot])
  535. self.DiscFace.Show()
  536. self.raceName.SetText(self.RACE_NAME[slot])
  537. self.raceName.Show()
  538. if slot == 0:
  539. self.CharacterSlot_0.Down()
  540. self.CharacterSlot_1.SetUp()
  541. self.CharacterSlot_2.SetUp()
  542. self.CharacterSlot_3.SetUp()
  543. self.CharacterSlot_4.SetUp()
  544. elif slot == 1:
  545. self.CharacterSlot_1.Down()
  546. self.CharacterSlot_0.SetUp()
  547. self.CharacterSlot_2.SetUp()
  548. self.CharacterSlot_3.SetUp()
  549. self.CharacterSlot_4.SetUp()
  550. elif slot == 2:
  551. self.CharacterSlot_2.Down()
  552. self.CharacterSlot_0.SetUp()
  553. self.CharacterSlot_1.SetUp()
  554. self.CharacterSlot_3.SetUp()
  555. self.CharacterSlot_4.SetUp()
  556. elif slot == 3:
  557. self.CharacterSlot_3.Down()
  558. self.CharacterSlot_0.SetUp()
  559. self.CharacterSlot_1.SetUp()
  560. self.CharacterSlot_2.SetUp()
  561. self.CharacterSlot_4.SetUp()
  562. elif slot == 4:
  563. self.CharacterSlot_4.Down()
  564. self.CharacterSlot_0.SetUp()
  565. self.CharacterSlot_1.SetUp()
  566. self.CharacterSlot_2.SetUp()
  567. self.CharacterSlot_3.SetUp()
  568. if constInfo.WOLF_MAN != "DISABLED" and constInfo.WOLF_MAN == "ENABLED":
  569. self.genderButtonList[0].Show()
  570. else:
  571. self.genderButtonList[0].Hide()
  572.  
  573. if constInfo.WOLF_WOMEN != "DISABLED" and constInfo.WOLF_WOMEN == "ENABLED":
  574. self.genderButtonList[1].Show()
  575. else:
  576. self.genderButtonList[1].Hide()
  577.  
  578. self.__MakeCharacter(slot)
  579. self.__SelectGender(0)
  580. self.__SelectShape(0)
  581.  
  582. event.ClearEventSet(self.descIndex)
  583. self.descIndex = event.RegisterEventSet(self.DESCRIPTION_FILE_NAME[self.slot])
  584. if localeInfo.IsARABIC():
  585. event.SetEventSetWidth(self.descIndex, 170)
  586.  
  587. chr_id = self.__GetSlotChrID(self.gender, slot)
  588. if chr.HasInstance(chr_id):
  589. chr.SelectInstance(chr_id)
  590. self.__SelectShape(self.shapeList[self.gender][slot])
  591.  
  592. def CreateCharacter(self):
  593. if -1 != self.reservingRaceIndex:
  594. return
  595.  
  596. textName = self.editCharacterName.GetText()
  597. if self.__CheckCreateCharacter(textName) == FALSE:
  598. return
  599.  
  600. if musicInfo.selectMusic != "":
  601. snd.FadeLimitOutMusic("BGM/"+musicInfo.selectMusic, systemSetting.GetMusicVolume()*0.05)
  602.  
  603. self.DisableWindow()
  604. chr_id = self.__GetSlotChrID(self.gender, self.slot)
  605. chr.SelectInstance(chr_id)
  606. self.reservingRaceIndex = chr.GetRace()
  607.  
  608. print("========================================================")
  609. print("Race : %d" % (self.reservingRaceIndex))
  610. print("========================================================")
  611.  
  612. self.reservingShapeIndex = self.shapeList[self.gender][self.slot]
  613. self.reservingStartTime = app.GetTime()
  614. for eachSlot in xrange(SLOT_COUNT):
  615. sel_id = self.__GetSlotChrID(self.gender, eachSlot)
  616. chr.SelectInstance(sel_id)
  617. if eachSlot == self.slot:
  618. chr.PushOnceMotion(chr.MOTION_INTRO_SELECTED)
  619. else:
  620. chr.PushOnceMotion(chr.MOTION_INTRO_NOT_SELECTED)
  621. self.toolTip.Hide()
  622.  
  623. def CancelCreate(self):
  624. self.stream.SetSelectCharacterPhase()
  625.  
  626. def PrevDescriptionPage(self):
  627. if event.IsWait(self.descIndex) == TRUE:
  628. if event.GetVisibleStartLine(self.descIndex)-14 >= 0:
  629. event.SetVisibleStartLine(self.descIndex, event.GetVisibleStartLine(self.descIndex)-14)
  630. event.Skip(self.descIndex)
  631. else:
  632. event.Skip(self.descIndex)
  633.  
  634. def NextDescriptionPage(self):
  635. if TRUE == event.IsWait(self.descIndex):
  636. event.SetVisibleStartLine(self.descIndex, event.GetVisibleStartLine(self.descIndex)+14)
  637. event.Skip(self.descIndex)
  638. else:
  639. event.Skip(self.descIndex)
  640.  
  641. def __CheckCreateCharacter(self, name):
  642. if len(name) == 0:
  643. self.PopupMessage(localeInfo.CREATE_INPUT_NAME, self.EnableWindow)
  644. return FALSE
  645. elif name.find(localeInfo.CREATE_GM_NAME)!=-1:
  646. self.PopupMessage(localeInfo.CREATE_ERROR_GM_NAME, self.EnableWindow)
  647. return FALSE
  648. elif net.IsInsultIn(name):
  649. self.PopupMessage(localeInfo.CREATE_ERROR_INSULT_NAME, self.EnableWindow)
  650. return FALSE
  651.  
  652. return TRUE
  653.  
  654. def ResetStat(self):
  655. for i in xrange(4):
  656. self.stat[i] = self.START_STAT[self.slot][i]
  657.  
  658. self.lastStatPoint = self.CREATE_STAT_POINT
  659. self.RefreshStat()
  660.  
  661. def OnCreateSuccess(self):
  662. self.stream.SetSelectCharacterPhase()
  663.  
  664. def OnCreateFailure(self, type):
  665. if type == 1:
  666. self.PopupMessage(localeInfo.CREATE_EXIST_SAME_NAME, self.EnableWindow)
  667. else:
  668. self.PopupMessage(localeInfo.CREATE_FAILURE, self.EnableWindow)
  669.  
  670. def OnUpdate(self):
  671. chr.Update()
  672. (xposEventSet, yposEventSet) = self.textBoard.GetGlobalPosition()
  673. event.UpdateEventSet(self.descIndex, xposEventSet+7, -(yposEventSet+7))
  674. self.descriptionBox.SetIndex(self.descIndex)
  675. SLOT_COUNT_TWO = 4
  676. if constInfo.WOLF_WOMEN != "DISABLED" and constInfo.WOLF_WOMEN == "ENABLED":
  677. SLOT_COUNT_TWO += 1
  678. else:
  679. if constInfo.WOLF_MAN != "DISABLED" and constInfo.WOLF_MAN == "ENABLED":
  680. SLOT_COUNT_TWO += 1
  681.  
  682. if SLOT_COUNT_TWO > 5:
  683. SLOT_COUNT_TWO = 5
  684.  
  685. for page in xrange(PAGE_COUNT):
  686. SLOT_COUNT_RES = 5
  687. for i in xrange(SLOT_COUNT_RES):
  688. self.curNameAlpha[i] += (self.destNameAlpha[i] - self.curNameAlpha[i]) / 10.0
  689. self.NameList[i].SetAlpha(self.curNameAlpha[i])
  690.  
  691. for i in xrange(4):
  692. self.curGauge[i] += (self.destGauge[i] - self.curGauge[i]) / 10.0
  693. if abs(self.curGauge[i] - self.destGauge[i]) < 0.005:
  694. self.curGauge[i] = self.destGauge[i]
  695. self.GaugeList[i].SetPercentage(self.curGauge[i], 1.0)
  696.  
  697. if -1 != self.reservingRaceIndex:
  698. if app.GetTime() - self.reservingStartTime >= 1.5:
  699. chrSlot=self.stream.GetCharacterSlot()
  700. textName = self.editCharacterName.GetText()
  701. raceIndex = self.reservingRaceIndex
  702. shapeIndex = self.reservingShapeIndex
  703.  
  704. startStat = self.START_STAT[self.slot]
  705. statCon = self.stat[0] - startStat[0]
  706. statInt = self.stat[1] - startStat[1]
  707. statStr = self.stat[2] - startStat[2]
  708. statDex = self.stat[3] - startStat[3]
  709.  
  710. net.SendCreateCharacterPacket(chrSlot, textName, raceIndex, shapeIndex, statCon, statInt, statStr, statDex)
  711. self.reservingRaceIndex = -1
  712.  
  713. def EmptyFunc(self):
  714. pass
  715.  
  716. def PopupMessage(self, msg, func=0):
  717. if not func:
  718. func=self.EmptyFunc
  719.  
  720. self.stream.popupWindow.Close()
  721. self.stream.popupWindow.Open(msg, func, localeInfo.UI_OK)
  722.  
  723. def OnPressExitKey(self):
  724. self.CancelCreate()
  725. return TRUE
  726.  
  727. def OverInStatButton(self, stat):
  728. if not self.STAT_DESCRIPTION.has_key(stat):
  729. return
  730.  
  731. self.toolTip.ClearToolTip()
  732. self.toolTip.AppendTextLine(self.STAT_DESCRIPTION[stat])
  733. self.toolTip.Show()
  734.  
  735. def OverOutStatButton(self):
  736. self.toolTip.Hide()
  737.  
  738. def OverInButton(self, stat):
  739. if stat == 1:
  740. self.toolTip.ClearToolTip()
  741. self.toolTip.AlignHorizonalCenter()
  742. self.toolTip.AutoAppendNewTextLine(localeInfo.CHARACTER_CREATE_MALE, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  743. self.toolTip.Show()
  744. elif stat == 2:
  745. self.toolTip.ClearToolTip()
  746. self.toolTip.AlignHorizonalCenter()
  747. self.toolTip.AutoAppendNewTextLine(localeInfo.CHARACTER_CREATE_FEMALE, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  748. self.toolTip.Show()
  749. elif stat == 3:
  750. self.toolTip.ClearToolTip()
  751. self.toolTip.AlignHorizonalCenter()
  752. self.toolTip.AutoAppendNewTextLine(localeInfo.CHARACTER_CREATE_APPEARANCE1, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  753. self.toolTip.Show()
  754. elif stat == 4:
  755. self.toolTip.ClearToolTip()
  756. self.toolTip.AlignHorizonalCenter()
  757. self.toolTip.AutoAppendNewTextLine(localeInfo.CHARACTER_CREATE_APPEARANCE2, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  758. self.toolTip.Show()
  759. elif stat == 5:
  760. self.toolTip.ClearToolTip()
  761. self.toolTip.AlignHorizonalCenter()
  762. self.toolTip.AutoAppendNewTextLine(uiScriptLocale.CREATE_PREV, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  763. self.toolTip.Show()
  764. elif stat == 6:
  765. self.toolTip.ClearToolTip()
  766. self.toolTip.AlignHorizonalCenter()
  767. self.toolTip.AutoAppendNewTextLine(uiScriptLocale.CREATE_NEXT, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  768. self.toolTip.Show()
  769. elif stat == 7:
  770. self.toolTip.ClearToolTip()
  771. self.toolTip.AlignHorizonalCenter()
  772. self.toolTip.AutoAppendNewTextLine(uiScriptLocale.CREATE_CREATE, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  773. self.toolTip.Show()
  774. elif stat == 8:
  775. self.toolTip.ClearToolTip()
  776. self.toolTip.AlignHorizonalCenter()
  777. self.toolTip.AutoAppendNewTextLine(uiScriptLocale.CANCEL, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  778. self.toolTip.Show()
  779. elif stat == 9:
  780. self.toolTip.ClearToolTip()
  781. self.toolTip.AlignHorizonalCenter()
  782. self.toolTip.AutoAppendNewTextLine(localeInfo.JOB_WARRIOR, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  783. self.toolTip.Show()
  784. elif stat == 10:
  785. self.toolTip.ClearToolTip()
  786. self.toolTip.AlignHorizonalCenter()
  787. self.toolTip.AutoAppendNewTextLine(localeInfo.JOB_ASSASSIN, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  788. self.toolTip.Show()
  789. elif stat == 11:
  790. self.toolTip.ClearToolTip()
  791. self.toolTip.AlignHorizonalCenter()
  792. self.toolTip.AutoAppendNewTextLine(localeInfo.JOB_SURA, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  793. self.toolTip.Show()
  794. elif stat == 12:
  795. self.toolTip.ClearToolTip()
  796. self.toolTip.AlignHorizonalCenter()
  797. self.toolTip.AutoAppendNewTextLine(localeInfo.JOB_SHAMAN, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  798. self.toolTip.Show()
  799. elif stat == 13:
  800. self.toolTip.ClearToolTip()
  801. self.toolTip.AlignHorizonalCenter()
  802. self.toolTip.AutoAppendNewTextLine(localeInfo.JOB_WOLFMAN, grp.GenerateColor(1.0, 1.0, 0.0, 1.0))
  803. self.toolTip.Show()
  804.  
  805. def OverOutButton(self):
  806. self.toolTip.Hide()
  807.  
  808. if __name__ == "__main__":
  809.  
  810. import app
  811. import wndMgr
  812. import systemSetting
  813. import mouseModule
  814. import networkModule
  815.  
  816. app.SetMouseHandler(mouseModule.mouseController)
  817. app.SetHairColorEnable(TRUE)
  818. wndMgr.SetMouseHandler(mouseModule.mouseController)
  819. wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight())
  820. app.Create(localeInfo.APP_TITLE, systemSetting.GetWidth(), systemSetting.GetHeight(), 1)
  821. mouseModule.mouseController.Create()
  822.  
  823. mainStream = networkModule.MainStream()
  824. mainStream.Create()
  825.  
  826. test = CreateCharacterWindow(mainStream)
  827. test.Open()
  828.  
  829. app.Loop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement