您不能選擇超過 %s 個話題 話題必須以字母或數字為開頭,可包含連接號 ('-') 且最長為 35 個字

326 行
12 KiB

  1. local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
  2. local MJSound = MJFramework.MJImport("mj.luaScript.MJSound")
  3. local MJFunction = MJFramework.MJImport("mj.luaScript.MJFunction")
  4. local MJRoomSettingView = MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Room.MJRoomSettingView")
  5. local ncmajRoomSettingView = class("ncmajRoomSettingView", MJRoomSettingView)
  6. local CheckBox_Nor_Color = cc.c4b(21,99,97,255)
  7. local CheckBox_Sel_Color = cc.c4b(213,46,11,255)
  8. function ncmajRoomSettingView:ctor()
  9. ncmajRoomSettingView.super.ctor(self);
  10. self:loadUi()
  11. self.languageRadioManager = import("luaScript.Tools.RadioManager"):new()
  12. self.majhongRadioManager = import("luaScript.Tools.RadioManager"):new()
  13. self.desktopRadioManager = import("luaScript.Tools.RadioManager"):new()
  14. self.colorRadioManager = import("luaScript.Tools.RadioManager"):new()
  15. end
  16. function ncmajRoomSettingView:loadUi()
  17. local ui = loadUI("mj_ncmaj/res/ui_fangjian/mj_ncmaj_setting.ui")
  18. self.ui = ui
  19. self:addChild(ui)
  20. ui.Items.ImageView_BG:setTouchEnabled(true)
  21. end
  22. function ncmajRoomSettingView:onEnter()
  23. if self.languageRadioManager then
  24. self.languageRadioManager:addItem(self.ui.Items.CheckBox_PuTongHua, 1)
  25. self.languageRadioManager:addItem(self.ui.Items.CheckBox_Fangyan, 2)
  26. local cacheLan = "mj_language"..(MJDefine.GameID or app.gameId)
  27. --saveUserInfo(cacheLan,1)--恒定为普通话
  28. local defaultValue = tonumber(loadUserInfo(cacheLan)) or 1
  29. self:setYuColor(defaultValue)
  30. self.languageRadioManager:setDefault(defaultValue)
  31. self.languageRadioManager:setCallback(function ( value )
  32. self:setYuColor(value)
  33. saveUserInfo(cacheLan,value)
  34. app:dispatchEvent({name = MJDefine.MJEvent.ChangeLanguage})
  35. end)
  36. end
  37. --self.ui.Items.CheckBox_Fangyan:setVisible(false)
  38. local ncmj_mj_color = loadUserInfo("mj_ncmaj_desktop_2d_mjType") or MJDefine.DesktopType.TwoDL
  39. if ncmj_mj_color == "" then
  40. ncmj_mj_color = MJDefine.DesktopType.TwoDL
  41. end
  42. if self.colorRadioManager then
  43. self.colorRadioManager:addItem(self.ui.Items.CheckBox_molv_3d, MJDefine.DesktopType.ThreeD)
  44. self.colorRadioManager:addItem(self.ui.Items.CheckBox_molv_2d, MJDefine.DesktopType.TwoD)
  45. self.colorRadioManager:addItem(self.ui.Items.CheckBox_molvL_2d, MJDefine.DesktopType.TwoDL)
  46. self.colorRadioManager:addItem(self.ui.Items.CheckBox_jinhuang_2d, MJDefine.DesktopType.TwoDGold)
  47. self.colorRadioManager:setDefault(ncmj_mj_color)
  48. self.colorRadioManager:setCallback(function ( value )
  49. saveUserInfo("mj_ncmaj_desktop_2d_mjType", value)
  50. app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType,desktopType = value})
  51. --saveUserInfo("ncmj_mj_color", value)
  52. --showTooltip("设置将在下一局生效!")
  53. end)
  54. end
  55. if self.desktopRadioManager then
  56. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_1, 1)
  57. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_2, 2)
  58. self.desktopRadioManager:addItem(self.ui.Items.CheckBox_desktop_3, 3)
  59. local defaultValue = tonumber(loadUserInfo("ncmaj_mj_desktop_group")) or 1
  60. self:setZhuoColor(defaultValue)
  61. self.desktopRadioManager:setDefault(defaultValue)
  62. self.desktopRadioManager:setCallback(function ( value )
  63. saveUserInfo("ncmaj_mj_desktop_group", value)
  64. self:setZhuoColor(value)
  65. app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewBG})
  66. --showTooltip("设置将在下一局生效!")
  67. end)
  68. end
  69. -- 关闭
  70. self.ui.Items.Button_guanbi:registerClick(handler(self , self.onClickClose))
  71. -- 音乐
  72. self.ui.Items.CheckBox_Music:addEventListener(handler(self , self.onClickMusic))
  73. self.ui.Items.CheckBox_Music:setSelectedState(app.systemSetting.info.music);
  74. --音乐音量
  75. self.ui.Items.Slider_Music:setPercent(app.systemSetting.info.musicVolume * 100 or 100)
  76. self.ui.Items.Slider_Music:addEventListener(handler(self, self.onMusicVolumeClickSlider))
  77. -- 音效
  78. self.ui.Items.CheckBox_Effect:addEventListener(handler(self , self.onClickEffect))
  79. self.ui.Items.CheckBox_Effect:setSelectedState(app.systemSetting.info.sound);
  80. --音效音量
  81. self.ui.Items.Slider_Effect:setPercent(app.systemSetting.info.soundVolume * 100 or 100)
  82. self.ui.Items.Slider_Effect:addEventListener(handler(self, self.onSoundVolumeClickSlider))
  83. --2D
  84. local function listener2D()
  85. if self.isFobidChangeDesktop then
  86. showTooltip("操作太频繁,请稍候再试!")
  87. self.ui.Items.CheckBox_2D:setSelectedState(false)
  88. return
  89. end
  90. self.ui.Items.CheckBox_3D:setSelectedState(false)
  91. self.ui.Items.CheckBox_3D:setTouchEnabled(true)
  92. self.ui.Items.CheckBox_2D:setTouchEnabled(false)
  93. self.ui.Items.CheckBox_2D:setSelectedState(true)
  94. --app.systemSetting.info.viewType=MJDefine.DesktopType.TwoD
  95. app.systemSetting:save()
  96. self:setZhuoBuText(2)
  97. self:setLanColor(2)
  98. app.systemSetting.info.viewType = MJDefine.DesktopType.TwoD
  99. app.systemSetting:save()
  100. --app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType,desktopType = MJDefine.DesktopType.TwoD})
  101. --showTooltip("设置将在下一局生效!")
  102. saveUserInfo("ncmj_mj_color", MJDefine.DesktopType.TwoD)
  103. --2d可以选择麻将颜色
  104. self.ui.Items.Layout_color_2d:setVisible(true)
  105. self.ui.Items.Layout_color_3d:setVisible(false)
  106. self.isFobidChangeDesktop = true
  107. self.colorRadioManager:setDefault(MJDefine.DesktopType.TwoD)
  108. self:runDelay(2.0, function ()
  109. self.isFobidChangeDesktop = false
  110. end)
  111. end
  112. self.ui.Items.CheckBox_2D:addEventListener(listener2D)
  113. --3D
  114. local function listener3D()
  115. if self.isFobidChangeDesktop then
  116. showTooltip("操作太频繁,请稍候再试!")
  117. self.ui.Items.CheckBox_3D:setSelectedState(false)
  118. return
  119. end
  120. self.ui.Items.CheckBox_3D:setSelectedState(true)
  121. self.ui.Items.CheckBox_3D:setTouchEnabled(false)
  122. self.ui.Items.CheckBox_2D:setTouchEnabled(true)
  123. self.ui.Items.CheckBox_2D:setSelectedState(false)
  124. --app.systemSetting.info.viewType=MJDefine.DesktopType.ThreeD
  125. app.systemSetting:save()
  126. self:setZhuoBuText(3)
  127. self:setLanColor(3)
  128. --app:dispatchEvent({name = MJDefine.MJEvent.ChangeViewType,desktopType = MJDefine.DesktopType.ThreeD})
  129. app.systemSetting.info.viewType = MJDefine.DesktopType.ThreeD
  130. app.systemSetting:save()
  131. --showTooltip("设置将在下一局生效!")
  132. --3d麻将颜色只能为墨绿
  133. self.ui.Items.Layout_color_2d:setVisible(false)
  134. self.ui.Items.Layout_color_3d:setVisible(true)
  135. saveUserInfo("ncmj_mj_color", MJDefine.DesktopType.ThreeD)
  136. self.colorRadioManager:setDefault(MJDefine.DesktopType.ThreeD)
  137. self.isFobidChangeDesktop = true
  138. self:runDelay(2.0, function ()
  139. self.isFobidChangeDesktop = false
  140. end)
  141. end
  142. self.ui.Items.CheckBox_3D:addEventListener(listener3D)
  143. if ncmj_mj_color==MJDefine.DesktopType.ThreeD or app.systemSetting.info.viewType == "3d" then
  144. self.ui.Items.CheckBox_3D:setSelectedState(true)
  145. self.ui.Items.CheckBox_3D:setTouchEnabled(false)
  146. self.ui.Items.CheckBox_2D:setTouchEnabled(true)
  147. self.ui.Items.CheckBox_2D:setSelectedState(false)
  148. self:setZhuoBuText(3)
  149. self:setLanColor(3)
  150. self.ui.Items.Layout_color_2d:setVisible(false)
  151. self.ui.Items.Layout_color_3d:setVisible(true)
  152. self.ui.Items.CheckBox_molv_3d:setSelectedState(true)
  153. else
  154. self.ui.Items.CheckBox_3D:setSelectedState(false)
  155. self.ui.Items.CheckBox_3D:setTouchEnabled(true)
  156. self.ui.Items.CheckBox_2D:setTouchEnabled(false)
  157. self.ui.Items.CheckBox_2D:setSelectedState(true)
  158. self:setZhuoBuText(2)
  159. self:setLanColor(2)
  160. self.ui.Items.Layout_color_2d:setVisible(true)
  161. self.ui.Items.Layout_color_3d:setVisible(false)
  162. end
  163. --互动表情
  164. local faceKG = tonumber(loadUserInfo("ncmajHuDongBiaoQingKG")) or 1--0关 1开
  165. self.ui.Items.Button_face_guan:setVisible(faceKG==0)
  166. self.ui.Items.Button_face_kai:setVisible(faceKG==1)
  167. self.ui.Items.Button_face_guan:registerClick(handler(self , self.setHuDongBiaoQingClose))
  168. self.ui.Items.Button_face_kai:registerClick(handler(self , self.setHuDongBiaoQingOpen))
  169. --屏蔽语音
  170. local voiceKG = tonumber(loadUserInfo("ncmajPingBiYuYinKG")) or 1--0关 1开
  171. self.ui.Items.Button_voice_guan:setVisible(voiceKG==0)
  172. self.ui.Items.Button_voice_kai:setVisible(voiceKG==1)
  173. self.ui.Items.Button_voice_guan:registerClick(handler(self , self.setPingBiYuYinClose))
  174. self.ui.Items.Button_voice_kai:registerClick(handler(self , self.setPingBiYuYinOpen))
  175. self.ui.Items.Layout_Prop:setVisible(not MJFunction.isPropFobided())
  176. self.ui.Items.Layout_Voice:setVisible(not MJFunction.isVoiceFobided())
  177. end
  178. function ncmajRoomSettingView:setZhuoBuText(zbType)--根据2d 3d设置桌布text 默认用红色2D 音效默认普通话
  179. if zbType == 2 then
  180. self.ui.Items.Text_16:setText("绿色")
  181. self.ui.Items.Text_17:setText("棕色")
  182. self.ui.Items.Text_18:setText("蓝色")
  183. self.ui.Items.CheckBox_desktop_1:setPosition(cc.p(127, 23))
  184. self.ui.Items.CheckBox_desktop_2:setPosition(cc.p(256, 23))
  185. self.ui.Items.CheckBox_desktop_3:setPosition(cc.p(385, 23))
  186. self.ui.Items.CheckBox_desktop_2:setVisible(true)
  187. saveUserInfo("ncmaj_ZhuoMian_BG_Type", MJDefine.DesktopType.TwoD)
  188. else
  189. self.ui.Items.Text_16:setText("墨绿")
  190. self.ui.Items.Text_17:setText("绿色")
  191. self.ui.Items.Text_18:setText("经典")
  192. self.ui.Items.CheckBox_desktop_1:setPosition(cc.p(127, 23))
  193. self.ui.Items.CheckBox_desktop_2:setPosition(cc.p(256, 23))
  194. self.ui.Items.CheckBox_desktop_3:setPosition(cc.p(350, 23))
  195. self.ui.Items.CheckBox_desktop_2:setVisible(false)
  196. saveUserInfo("ncmaj_ZhuoMian_BG_Type", MJDefine.DesktopType.ThreeD)
  197. end
  198. end
  199. --选择23D时,字体变颜色
  200. function ncmajRoomSettingView:setLanColor(ttype)
  201. end
  202. --选择语言时,字体变颜色
  203. function ncmajRoomSettingView:setYuColor(ttype)
  204. end
  205. --选择桌布时,字体变颜色
  206. function ncmajRoomSettingView:setZhuoColor(ttype)
  207. end
  208. --互动表情开
  209. function ncmajRoomSettingView:setHuDongBiaoQingOpen()
  210. self.ui.Items.Button_face_guan:setVisible(true)
  211. self.ui.Items.Button_face_kai:setVisible(false)
  212. saveUserInfo("ncmajHuDongBiaoQingKG",0)
  213. --app.room:dispatchEvent({name = "ontSetPropEnabled", value = 0});
  214. --saveUserInfo("propEnable",0)
  215. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  216. end
  217. --互动表情关
  218. function ncmajRoomSettingView:setHuDongBiaoQingClose()
  219. self.ui.Items.Button_face_guan:setVisible(false)
  220. self.ui.Items.Button_face_kai:setVisible(true)
  221. saveUserInfo("ncmajHuDongBiaoQingKG",1)
  222. --app.room:dispatchEvent({name = "ontSetPropEnabled", value = 1});
  223. --saveUserInfo("propEnable",1)
  224. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  225. end
  226. --屏蔽语音开
  227. function ncmajRoomSettingView:setPingBiYuYinOpen()
  228. self.ui.Items.Button_voice_guan:setVisible(true)
  229. self.ui.Items.Button_voice_kai:setVisible(false)
  230. saveUserInfo("ncmajPingBiYuYinKG",0)
  231. --app.room:dispatchEvent({name = "onSetVoiceEnabled", value = 0});
  232. --saveUserInfo("voiceEnable",0)
  233. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  234. end
  235. --屏蔽语音关
  236. function ncmajRoomSettingView:setPingBiYuYinClose()
  237. self.ui.Items.Button_voice_guan:setVisible(false)
  238. self.ui.Items.Button_voice_kai:setVisible(true)
  239. saveUserInfo("ncmajPingBiYuYinKG",1)
  240. --app.room:dispatchEvent({name = "onSetVoiceEnabled", value = 1});
  241. --saveUserInfo("voiceEnable",1)
  242. app:dispatchEvent({name = MJDefine.MJEvent.ChangeChatEnable})
  243. end
  244. -- 音乐
  245. function ncmajRoomSettingView:onClickMusic()
  246. app.systemSetting.info.music = not app.systemSetting.info.music
  247. app.systemSetting:save()
  248. end
  249. -- 音效
  250. function ncmajRoomSettingView:onClickEffect()
  251. app.systemSetting.info.sound = not app.systemSetting.info.sound
  252. if app.systemSetting.info.sound == false then
  253. app.systemSetting.info.soundVolume = 0
  254. self.ui.Items.Slider_Effect:setPercent(0)
  255. else
  256. self.ui.Items.Slider_Effect:setPercent(100)
  257. app.systemSetting.info.soundVolume = 1
  258. end
  259. app.systemSetting:save()
  260. app:dispatchEvent({name = "onChangeYinXiao"});
  261. end
  262. -- 音乐音量设置回调
  263. function ncmajRoomSettingView:onMusicVolumeClickSlider()
  264. local percent = self.ui.Items.Slider_Music:getPercent();
  265. local curValue = percent / 100;
  266. app.systemSetting.info.musicVolume = curValue;
  267. app.systemSetting:save()
  268. end
  269. -- 音效音量设置回调
  270. function ncmajRoomSettingView:onSoundVolumeClickSlider()
  271. local percent = self.ui.Items.Slider_Effect:getPercent();
  272. local curValue = percent / 100;
  273. app.systemSetting.info.soundVolume = curValue;
  274. app.systemSetting:save()
  275. end
  276. return ncmajRoomSettingView