future 1 жил өмнө
parent
commit
110191c14f

+ 1 - 0
assets/data/data.ts

@@ -484,6 +484,7 @@ export class event_item_switch_scene_event extends base_event_item { // 切换
     public binding_page_index:number = -1; //多场景-绑定页码索引(真实页数+1)
     public direction:number = config.switch_scene_page_direction.unknown;
     public executeOnlyOnce:boolean = true; //只执行一次
+    public delay_time:number = 0;
 }
 
 export class UserData {

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 973 - 241
assets/resources/prefab/edit_event.prefab


+ 9 - 2
assets/script/edit/event/event_switch_scene_event.ts

@@ -1,4 +1,4 @@
-import { _decorator, Component, Label, Node, Toggle } from 'cc';
+import { _decorator, Component, EditBox, Label, Node, Toggle } from 'cc';
 import { event_item_switch_scene_event, scene_item_data } from '../../../data/data';
 import { config } from '../../config';
 import { main } from '../../main';
@@ -14,6 +14,7 @@ export class event_switch_scene_event extends Component {
     @property(Node) left_node:Node = null;
     @property(Node) right_node:Node = null;
     @property(Node) only_once_node:Node = null;
+    @property(EditBox) edit_time:EditBox = null;
     private m_data:event_item_switch_scene_event = null;
     private m_scene_data:scene_item_data = null;
     public initView(data:event_item_switch_scene_event){
@@ -23,6 +24,10 @@ export class event_switch_scene_event extends Component {
         this.updateLabStatus()
         this.updateDirectionNodeStatus()
         this.only_once_node.getComponent(Toggle).isChecked = this.m_data.executeOnlyOnce
+        if(data.delay_time == undefined) {
+            data.delay_time = 0
+        }
+        this.edit_time.string = data.delay_time.toString()
     }
 
     start() {
@@ -46,9 +51,11 @@ export class event_switch_scene_event extends Component {
             this.change(config.switch_scene_page_direction.right)
         })
         this.only_once_node.on('toggle', ()=>{
-            // this.m_data.executeOnlyOnce = !this.m_data.executeOnlyOnce
             this.m_data.executeOnlyOnce = this.only_once_node.getComponent(Toggle).isChecked
         })
+        this.edit_time.node.on('editing-did-ended', ()=> {
+            this.m_data.delay_time = parseFloat(this.edit_time.string)
+        })
     }
 
     change(direction = config.switch_scene_page_direction.unknown) {

+ 51 - 36
assets/script/run/scene_layer.ts

@@ -23,7 +23,6 @@ export class scene_layer extends Component {
     protected mScenePages:scene_item_data[] =[]
     private mCurPage:number = 0;
     private mAudioList:Map<string,Node> = new Map;
-    private mIsClickDirectionButton:boolean = false;
     protected start(): void {
         this.node.addComponent(AudioSource)
     }
@@ -48,7 +47,6 @@ export class scene_layer extends Component {
         this.mCurPage = 0
         this.mAudioList.clear()
         this.unscheduleAllCallbacks()
-        this.mIsClickDirectionButton = false
         ClientEvent.off(config.EventRun.NOTICE_EVENT,this.beActive.bind(this),this)
     }
 
@@ -114,6 +112,10 @@ export class scene_layer extends Component {
     changePage(page:number){
         this.mCurPage = page;
         this.onChangeUpdatePages()
+        this.changeUpNextBtn()
+    }
+
+    changeUpNextBtn() {
         if(this.mScenePages.length>1){
             this.scenePageDir.getComponent(scene_page_dir).showAllBtn()
             if(this.mCurPage<=0){
@@ -123,7 +125,6 @@ export class scene_layer extends Component {
                 this.scenePageDir.getComponent(scene_page_dir).hideNextBtn() 
             }
         }
-     
     }
 
     onChangeUpdatePages(){
@@ -188,7 +189,6 @@ export class scene_layer extends Component {
         if(this.mSceneTask == null) {
             return
         }
-        this.mIsClickDirectionButton = true
         let event_id = -1
         var key = this.mCurPage + ''
         if(isUp) { 
@@ -203,46 +203,61 @@ export class scene_layer extends Component {
         // console.log('event_id=',event_id)
         if(event_id != -1) {
             this.scheduleOnce(()=>{ // 切换场景有延时0.7
-                ClientEvent.dispatchEvent(config.EventRun.MORE_SCENE_DIRECTION_BUTTON_CLICK_FINISH, event_id)
-                this.checkNextDelayEventUncompleted(eventTarget)
+                this.checkDelayTimeNextEvent(event_id, eventTarget)
             },0.7)
-        } else {
-            this.mIsClickDirectionButton = false
         }
     }
 
-    checkNextDelayEventUncompleted(eventTarget:EventTarget) {
-        if(eventTarget == null) { 
-            this.mIsClickDirectionButton = false
-            return 
+    checkDelayTimeNextEvent(event_id:number, eventTarget:EventTarget) {
+        if(eventTarget == null) {
+            return
         }
-        let trigger_event_id = eventTarget.event_item.success.trigger_event_id
-        if(trigger_event_id!=-1) {
-            let _event:event_item = taskServce.getEventById(trigger_event_id)
-            if(_event!=null && _event.type == config.event_type.delay_exe_event) {
-                let delay_time = _event.event_item_delay_exe_data.delay_time
-                // console.log('下一个是延迟事件 延迟时间=',delay_time)
-                if(delay_time > 0) { 
-                    this.scheduleOnce(()=> {
-                        if(this.mIsClickDirectionButton) {
-                            if(eventTarget.event_item.event_item_switch_scene_event_data.executeOnlyOnce) {
-                                eventTarget.is_finish = true
-                            }
-                        } else {
-                            // 取消 延迟事件 定时器
-                            gameManager.Singleton.unscheduleAllCallbacks()
-                        }
-                        this.mIsClickDirectionButton = false
-                    },delay_time)
-                } else {
-                    this.mIsClickDirectionButton = false
+        // 当前数据
+        let event_item:event_item = eventTarget.event_item
+        let switch_scene_event_data:event_item_switch_scene_event = event_item.event_item_switch_scene_event_data
+        // 下一个事件成功的id
+        var next_event_id = -1
+        let trigger_event_id = event_item.success.trigger_event_id
+        if(trigger_event_id != -1) {
+            let next_event = taskServce.getEventById(trigger_event_id)
+            next_event_id = next_event.event_id
+        }
+        // 延迟时间
+        let call = (()=> {
+            ClientEvent.dispatchEvent(config.EventRun.MORE_SCENE_DIRECTION_BUTTON_CLICK_FINISH, next_event_id)
+        })
+        if(switch_scene_event_data.delay_time > 0) {
+            this.scenePageDir.getComponent(scene_page_dir).hideAllBtn()
+            let delay_time = switch_scene_event_data.delay_time
+            this.scheduleOnce(()=> {
+                if(event_item.event_item_switch_scene_event_data.executeOnlyOnce) {
+                    eventTarget.is_finish = true
                 }
-            } else {
-                this.mIsClickDirectionButton = false
-            }
+                call()
+                this.changeUpNextBtn()
+            },delay_time)
         } else {
-            this.mIsClickDirectionButton = false
+            call()
         }
+
+        // 用于下一个是:"延迟时间调用一个事件"
+        // ClientEvent.dispatchEvent(config.EventRun.MORE_SCENE_DIRECTION_BUTTON_CLICK_FINISH, event_id)
+        // let trigger_event_id = eventTarget.event_item.success.trigger_event_id
+        // if(trigger_event_id!=-1) {
+        //     let _event:event_item = taskServce.getEventById(trigger_event_id)
+        //     if(_event!=null && _event.type == config.event_type.delay_exe_event) {
+        //         let delay_time = _event.event_item_delay_exe_data.delay_time
+        //         // console.log('下一个是延迟事件 延迟时间=',delay_time)
+        //         this.scenePageDir.getComponent(scene_page_dir).hideAllBtn()
+        //         this.scheduleOnce(()=> {
+        //             this.changeUpNextBtn()
+        //             if(eventTarget.event_item.event_item_switch_scene_event_data.executeOnlyOnce) {
+        //                 eventTarget.is_finish = true
+        //             }
+        //             this.changeUpNextBtn()
+        //         },delay_time)
+        //     }
+        // }
     }
 
     getTaskSwitchSceneEventList() {

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно