future 1 gadu atpakaļ
vecāks
revīzija
526538d401

+ 2 - 1
assets/data/data.ts

@@ -388,7 +388,8 @@ export class zhao_xi_jie_item_data{
     public res_name:string = "";
     public tips_res:string = "";
     public tips_res_name:string = "";
-    public finish_event_id:number = -1; //完成事件id
+    public finish_event_id:number = -1;  //完成事件id
+    public finish_widget_id:number = -1; //完成控件id
 }
 export class zhao_xi_jie_data{
     public tip_type:number = config.zhao_xi_jie_tip_type.select_tips;

+ 8 - 8
assets/resources/prefab/task/select_task_zhao_xi_jie.prefab

@@ -578,7 +578,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 12,
-      "height": 1700
+      "height": 1800
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -819,7 +819,7 @@
     "_lpos": {
       "__type__": "cc.Vec3",
       "x": 0,
-      "y": 850,
+      "y": 900,
       "z": 0
     },
     "_lrot": {
@@ -860,7 +860,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 2500,
-      "height": 1700
+      "height": 1800
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -1133,7 +1133,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 2500,
-      "height": 1700
+      "height": 1800
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -1230,8 +1230,8 @@
     },
     "_lpos": {
       "__type__": "cc.Vec3",
-      "x": 1058.494,
-      "y": 846,
+      "x": 1059.494,
+      "y": 898,
       "z": 0
     },
     "_lrot": {
@@ -1432,7 +1432,7 @@
     "_lpos": {
       "__type__": "cc.Vec3",
       "x": -1013.012,
-      "y": 846,
+      "y": 898,
       "z": 0
     },
     "_lrot": {
@@ -1765,7 +1765,7 @@
     "_contentSize": {
       "__type__": "cc.Size",
       "width": 2500,
-      "height": 1800
+      "height": 1900
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 694 - 144
assets/resources/prefab/task/select_task_zhao_xi_jie_item.prefab


+ 2 - 0
assets/script/config.ts

@@ -385,6 +385,8 @@ export class config {
         TOP_VIEW_CLOSE:"TOP_VIEW_CLOSE", //弹窗关闭
         TOP_VIEW_FINISH:"TOP_VIEW_FINISH", //弹窗完成
         TOP_VIEW_FAIL:"TOP_VIEW_FAIL", //弹窗失败
+        TOP_VIEW_HIDE:"TOP_VIEW_HIDE", //弹窗隐藏
+        TOP_VIEW_ALL_HIDE:"TOP_VIEW_ALL_HIDE", //弹窗所有隐藏
         ON_WIDGET_FINISH_COLLECT_EVENT:"ON_WIDGET_FINISH_COLLECT_EVENT", //当控件完成事件
         ON_COUNT_DOWN_FAIL:"ON_COUNT_DOWN_FAIL",  //倒计时结束 失败
         ON_COUNT_DOWN_START:"ON_COUNT_DOWN_START",  //倒计时开始

+ 12 - 0
assets/script/edit/Attributes.ts

@@ -617,6 +617,18 @@ export class Attributes extends Component {
         return data._task_data.event_list
     }
 
+    getEventListByType(type:number) {
+        let data = this._main.edit_scene_view.getCurSelectScene()
+        let temp = []
+        for (let index = 0; index < data._task_data.event_list.length; index++) {
+            const element = data._task_data.event_list[index];
+            if(element.type==type){
+                temp.push(element)
+            }
+        }
+        return temp
+    }
+
     getBeActionEventList(){
         let data = this._main.edit_scene_view.getCurSelectScene()
         let temp = []

+ 43 - 3
assets/script/edit/task/select_task_zhao_xi_jie_item.ts

@@ -2,6 +2,7 @@ import { _decorator, Component, Label, Node, Sprite } from 'cc';
 import { tools } from '../../tools';
 import { bag_item_data, event_item, widget_item_data, zhao_xi_jie_item_data } from '../../../data/data';
 import { Attributes } from '../Attributes';
+import { config } from '../../config';
 const { ccclass, property } = _decorator;
 
 @ccclass('select_task_zhao_xi_jie_item')
@@ -15,6 +16,9 @@ export class select_task_zhao_xi_jie_item extends Component {
     @property(Node) btn_select_finishi_event:Node = null;
     @property(Node) lab_select_finishi_event:Node = null;
     @property(Node) btn_clear_finishi_event:Node = null;
+    @property(Node) btn_select_finishi_widget:Node = null;
+    @property(Node) lab_select_finishi_widget:Node = null;
+    @property(Node) btn_clear_finishi_widget:Node = null;
     protected m_call_back = null;
     protected m_data:zhao_xi_jie_item_data = null;
     protected m_index:number = 0;
@@ -32,6 +36,9 @@ export class select_task_zhao_xi_jie_item extends Component {
         if(this.m_data.finish_event_id==undefined||this.m_data.finish_event_id==null) {
             this.m_data.finish_event_id = -1
         }
+        if(this.m_data.finish_widget_id==undefined||this.m_data.finish_widget_id==null) {
+            this.m_data.finish_widget_id = -1
+        }
         this.btn_add_tip_res.on(Node.EventType.TOUCH_END,()=>{
             tools.select_res_list((data:bag_item_data)=>{
                 this.m_data.tips_res = data.url;
@@ -63,7 +70,7 @@ export class select_task_zhao_xi_jie_item extends Component {
             }
         })
         this.btn_select_finishi_event.on(Node.EventType.TOUCH_END, ()=>{
-            let list = Attributes.Singleton.getEventList()
+            let list = Attributes.Singleton.getEventListByType(config.event_type.text_sound)
             tools.show_select_evele_list(list,(data:event_item)=>{
                 this.m_data.finish_event_id = data.event_id
                 this.updateShowStatus()
@@ -73,12 +80,32 @@ export class select_task_zhao_xi_jie_item extends Component {
             if(this.m_data.finish_event_id==-1) {
                 return
             }
-            tools.show_dialog("是否清空完成事件?",()=>{
+            tools.show_dialog("是否清空?",()=>{
                 this.m_data.finish_event_id = -1
                 this.updateShowStatus()
             })
         })
 
+        this.btn_select_finishi_widget.on(Node.EventType.TOUCH_END, ()=>{
+            let list = Attributes.Singleton.get_cur_scene_widget_by_type(config.Widget_Type_List.UI_TOP)
+            if(list.length<=0){
+                return tools.showToast("当前场景没有弹窗控件!")
+            }
+            tools.show_select_widget_list(list,(item:widget_item_data)=>{
+                this.m_data.finish_widget_id = item.att.id;
+                this.updateShowStatus()
+            },this.m_data.finish_widget_id)
+        })
+        this.btn_clear_finishi_widget.on(Node.EventType.TOUCH_END, ()=>{
+            if(this.m_data.finish_widget_id==-1) {
+                return
+            }
+            tools.show_dialog("是否清空?",()=>{
+                this.m_data.finish_widget_id = -1
+                this.updateShowStatus()
+            })
+        })
+
         this.updateShowStatus()
     }
 
@@ -90,8 +117,21 @@ export class select_task_zhao_xi_jie_item extends Component {
         tools.loadUrl(this.m_data.res,this.node.getComponent(Sprite))
         this.lab_select_widget.getComponent(Label).string = this.m_data.widget_id!=-1?`当前选择的控件:${this.m_data.widget_id}`:"选择控件"
         this.lab_select_res.getComponent(Label).string = this.m_data.res_name.length>0?this.m_data.res_name:"选择资源"
-        this.lab_select_finishi_event.getComponent(Label).string = this.m_data.finish_event_id!=-1?`当前完成的事件:${this.m_data.finish_event_id}`:"选择完成事件"
         tools.loadUrl(this.m_data.tips_res,this.btn_add_tip_res.getComponent(Sprite))
+
+        this.lab_select_finishi_event.getComponent(Label).string = this.m_data.finish_event_id!=-1?`文字及语音事件id:${this.m_data.finish_event_id}`:"选择文字及语音完成事件"
+        if(this.m_data.finish_event_id==-1) {
+            this.btn_clear_finishi_event.active = false
+        } else {
+            this.btn_clear_finishi_event.active = true
+        }
+
+        this.lab_select_finishi_widget.getComponent(Label).string = this.m_data.finish_widget_id!=-1?`弹窗控件id:${this.m_data.finish_widget_id}`:"选择完成弹窗控件"
+        if(this.m_data.finish_widget_id==-1) {
+            this.btn_clear_finishi_widget.active = false
+        } else {
+            this.btn_clear_finishi_widget.active = true
+        }
     }
 }
 

+ 36 - 7
assets/script/run/TaskSchedule/taskServce.ts

@@ -19,6 +19,7 @@ export class taskServce {
     public static guo_ju_qing_binding_event_id:number = -1;
     private static isFinishZhaoXiJieTask:boolean = false;
     private static finishZhaoXiJieLastEventId:number = -1;
+    private static finishZhaoXiJieLastWidgetId:number = -1;
 
     //子场景
     private static mChildSceneData:task_data = null;
@@ -60,6 +61,7 @@ export class taskServce {
         taskServce.guo_ju_qing_binding_event_id = -1;
         taskServce.isFinishZhaoXiJieTask = false;
         taskServce.finishZhaoXiJieLastEventId = -1;
+        taskServce.finishZhaoXiJieLastWidgetId = -1;
     }
 
     public static initZhaoXiJieTask(){
@@ -406,23 +408,46 @@ export class taskServce {
         }
     }
 
+    public static checkFinishZhaoXiJieWidget(widget_id:number) {
+        if(taskServce.mTaskData.type!=config.task_type.zhao_xi_jie) {
+            return
+        }
+        if(taskServce.isFinishZhaoXiJieTask==false) {
+            return
+        }
+        if(taskServce.finishZhaoXiJieLastEventId!=-1) {
+            return
+        }
+        if(widget_id == taskServce.finishZhaoXiJieLastWidgetId) {
+            this.zhaoXiJieDirectFinish(false)
+        }
+    }
+
     public static checkFinishZhaoXiJieEventItem(finish_event_item:event_item) {
         if(!finish_event_item) { return }
         if(taskServce.isFinishZhaoXiJieTask) {
             if(finish_event_item.event_id == taskServce.finishZhaoXiJieLastEventId) {
-                // console.log('事件完成 事件完成 事件完成 执行')
-                gameManager.Singleton.unscheduleAllCallbacks()
-                let zhaoxijie_data = taskServce.mTaskData._zhao_xi_jie_data
-                ClientEvent.dispatchEvent(config.EventRun.ON_ZHAO_BU_TONG_ALL_FINISH, zhaoxijie_data)
-                let id = zhaoxijie_data.finish_event_id
-                taskServce.DistributedEvent(taskServce.getEventById(id))
+                this.zhaoXiJieDirectFinish(true)
             }
         }
     }
 
+    public static zhaoXiJieDirectFinish(isDispatchEventTopViewAllHide:boolean) {
+        // console.log('事件完成 事件完成 事件完成 执行')
+        gameManager.Singleton.unscheduleAllCallbacks()
+        let zhaoxijie_data = taskServce.mTaskData._zhao_xi_jie_data
+        ClientEvent.dispatchEvent(config.EventRun.ON_ZHAO_BU_TONG_ALL_FINISH, zhaoxijie_data)
+        if(isDispatchEventTopViewAllHide) {
+            ClientEvent.dispatchEvent(config.EventRun.TOP_VIEW_ALL_HIDE)
+        }
+        let id = zhaoxijie_data.finish_event_id
+        taskServce.DistributedEvent(taskServce.getEventById(id))
+    }
+
     public static checkFinishZhaoXiJieTask(widget_id:number) {
         let isFinish  = true;
         taskServce.finishZhaoXiJieLastEventId = -1
+        taskServce.finishZhaoXiJieLastWidgetId = -1
         for (let index = 0; index < taskServce.mTaskData._zhao_xi_jie_data.widget_id_list.length; index++) {
             const element = taskServce.mTaskData._zhao_xi_jie_data.widget_id_list[index];
             if(!taskServce.finishZhaoXiJie.get(element.widget_id)){
@@ -433,6 +458,9 @@ export class taskServce {
                     if(element.finish_event_id) { // if(element.finish_event_id!=undefined)
                         taskServce.finishZhaoXiJieLastEventId = element.finish_event_id
                     }
+                    if(element.finish_widget_id) { // if(element.finish_widget_id!=undefined)
+                        taskServce.finishZhaoXiJieLastWidgetId = element.finish_widget_id
+                    }
                 }
             }
         }
@@ -452,9 +480,10 @@ export class taskServce {
             if(id==-1){
                 taskServce.isFinishZhaoXiJieTask = false
                 taskServce.finishZhaoXiJieLastEventId = -1
+                taskServce.finishZhaoXiJieLastWidgetId = -1
                 return tools.showToast("未设置全部找完任务的下一个事件!")
             }else{
-                if(taskServce.finishZhaoXiJieLastEventId==-1) {
+                if(taskServce.finishZhaoXiJieLastEventId==-1&&taskServce.finishZhaoXiJieLastWidgetId==-1) {
                     // console.log('直接执行了 直接执行了 直接执行了')
                     taskServce.DistributedEvent(taskServce.getEventById(id))                
                 }

+ 6 - 0
assets/script/run/gameManager.ts

@@ -244,6 +244,7 @@ export class gameManager extends Component {
         ClientEvent.offAll(config.EventRun.TOP_VIEW_CLOSE)
         ClientEvent.offAll(config.EventRun.TOP_VIEW_FINISH)
         ClientEvent.offAll(config.EventRun.TOP_VIEW_FAIL)
+        ClientEvent.offAll(config.EventRun.TOP_VIEW_HIDE)
         ClientEvent.offAll(config.EventRun.ON_COUNT_DOWN_FAIL)
         ClientEvent.offAll(config.EventRun.ON_COUNT_DOWN_START)
         ClientEvent.offAll(config.EventRun.ON_SHOW_RULE_BTN)
@@ -254,6 +255,7 @@ export class gameManager extends Component {
         ClientEvent.on(config.EventRun.TOP_VIEW_CLOSE,this.onUiCloseEvent.bind(this),this)
         ClientEvent.on(config.EventRun.TOP_VIEW_FINISH,this.onUiFinishEvent.bind(this),this)
         ClientEvent.on(config.EventRun.TOP_VIEW_FAIL,this.onUiFailEvent.bind(this),this)
+        ClientEvent.on(config.EventRun.TOP_VIEW_HIDE,this.onUiHideEvent.bind(this),this)
         ClientEvent.on(config.EventRun.ON_COUNT_DOWN_FAIL,this.onCountDownFailEvent.bind(this),this)
         ClientEvent.on(config.EventRun.ON_COUNT_DOWN_START,this.onStartCountDownEvent.bind(this),this)
     }
@@ -469,6 +471,10 @@ export class gameManager extends Component {
         taskServce.extEventByEventId(event_id)
     }
 
+    onUiHideEvent(widget_id:number) {
+        taskServce.checkFinishZhaoXiJieWidget(widget_id)
+    }
+
     onCountDownFailEvent(event_id:number){
         taskServce.extEventByEventId(event_id)
     }

+ 6 - 1
assets/script/run/ui/ui_base.ts

@@ -25,9 +25,11 @@ export class ui_base extends Component {
         }
         if(this.mTopData.is_open_close){
             this.btn_close.active = true;
+            this.btn_close.off(Node.EventType.TOUCH_END)
             this.btn_close.on(Node.EventType.TOUCH_END,()=>{
                 this.close()
             })
+            this.node.off(Node.EventType.TOUCH_START)
             this.node.on(Node.EventType.TOUCH_START,()=>{
                 this.close()
             })
@@ -73,8 +75,11 @@ export class ui_base extends Component {
         
     }
 
-    public hide(){
+    public hide(isDispatchEvent:boolean=true){
         this.node.active = false;
+        if(isDispatchEvent) {
+            ClientEvent.dispatchEvent(config.EventRun.TOP_VIEW_HIDE,this.mData.att.id)
+        }
     }
 
     protected loadBg(bgInfo:ui_att_item){

+ 10 - 0
assets/script/run/ui_layer.ts

@@ -47,6 +47,7 @@ export class ui_layer extends Component {
         this.back_title_node.getComponent(back_title).initView(scene_des,this.onBack.bind(this))
         ClientEvent.on(config.EventRun.NOTICE_EVENT,this.beActive.bind(this),this)
         ClientEvent.on(config.EventRun.ON_SHOW_RULE_BTN,this.onChangeShowRuleStatus.bind(this),this)
+        ClientEvent.on(config.EventRun.TOP_VIEW_ALL_HIDE,this.onTopViewAllHide.bind(this),this)
     }
 
     public unInit(){
@@ -63,6 +64,7 @@ export class ui_layer extends Component {
         this.dai_dao_ju_bag.active =false;
         ClientEvent.off(config.EventRun.NOTICE_EVENT,this.beActive.bind(this),this)
         ClientEvent.off(config.EventRun.ON_SHOW_RULE_BTN,this.onChangeShowRuleStatus.bind(this),this)
+        ClientEvent.off(config.EventRun.TOP_VIEW_ALL_HIDE,this.onTopViewAllHide.bind(this),this)
     }
 
     onBack(){
@@ -290,6 +292,14 @@ export class ui_layer extends Component {
         this.content_rule_and_tips.getComponent(content_rule_and_tips).showRuleBtn()
     }
 
+    onTopViewAllHide() {
+        let ui_list = Array.from(this.mUIList.values())
+        for (let index = 0; index < ui_list.length; index++) {
+            const element = ui_list[index];
+            element.getComponent(ui_base).hide(false)
+        }
+    }
+
 }
 
 

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels