Advertisement
Guest User

introcreate.py

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