future il y a 1 an
Parent
commit
530cae41ef

+ 1 - 1
assets/data/data.ts

@@ -483,7 +483,7 @@ export class event_item_be_event extends base_event_item{ // 被动事件
 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 binding_event_id:number = -1; //绑定某一个事件
+    public executeOnlyOnce:boolean = true; //只执行一次
 }
 
 export class UserData {

Fichier diff supprimé car celui-ci est trop grand
+ 830 - 209
assets/resources/prefab/edit_event.prefab


+ 1 - 2
assets/script/config.ts

@@ -69,7 +69,6 @@ export class config {
         config.clcik_type_map.set(config.clcik_type.click_not_auto_finish,"单击(不自动完成)")
 
         //event_type_map
-        config.event_type_map.set(config.event_type.switch_scene_event,"切换场景事件")
         config.event_type_map.set(config.event_type.be_event,"被动触发事件")
         config.event_type_map.set(config.event_type.delay_exe_event,"延迟时间调用一个事件")
         config.event_type_map.set(config.event_type.active_event,"激活交互")
@@ -82,7 +81,7 @@ export class config {
         config.event_type_map.set(config.event_type.stop_active_event,"停用交互")
         config.event_type_map.set(config.event_type.collect_event,"收集事件")
         config.event_type_map.set(config.event_type.change_one_item_status,"改变指定道具资源")
-        // config.event_type_map.set(config.event_type.switch_scene_event,"切换场景事件")
+        config.event_type_map.set(config.event_type.switch_scene_event,"切换场景事件")
         config.event_type_map.set(config.event_type.show_scene_title,"显示场景标签")
         config.event_type_map.set(config.event_type.start_event,"开始事件")
         config.event_type_map.set(config.event_type.fail_event,"失败事件")

+ 1 - 1
assets/script/edit/event/edit_event.ts

@@ -172,7 +172,7 @@ export class edit_event extends Component {
         this.widget_map.set(config.event_type.be_event,this.be_event)
         this.widget_map.set(config.event_type.hide,this.hide)
         this.widget_map.set(config.event_type.delay_exe_event,this.delay_exe_event)
-        this.widget_map.set(config.event_type.switch_scene_event, this.switch_scene_event)
+        this.widget_map.set(config.event_type.switch_scene_event,this.switch_scene_event)
 
         this.widget_map.set(config.event_type.fail_event,this.fail_event)
         this.widget_map.set(config.event_type.play_sound,this.play_sound)

+ 6 - 0
assets/script/edit/event/event_switch_scene_event.ts

@@ -13,6 +13,7 @@ export class event_switch_scene_event extends Component {
     @property(Node) down_node:Node = null;
     @property(Node) left_node:Node = null;
     @property(Node) right_node:Node = null;
+    @property(Node) only_once_node:Node = 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){
@@ -21,6 +22,7 @@ export class event_switch_scene_event extends Component {
         this.updateSceneStatus()
         this.updateLabStatus()
         this.updateDirectionNodeStatus()
+        this.only_once_node.getComponent(Toggle).isChecked = this.m_data.executeOnlyOnce
     }
 
     start() {
@@ -43,6 +45,10 @@ export class event_switch_scene_event extends Component {
         this.right_node.on(Node.EventType.TOUCH_END,()=> {
             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
+        })
     }
 
     change(direction = config.switch_scene_page_direction.unknown) {

+ 2 - 1
assets/script/edit/search/search_node.ts

@@ -149,7 +149,8 @@ export class search_node extends Component {
             } else if(direction == config.switch_scene_page_direction.right) {
                 direction_str = '按钮-右'
             }
-            c_text = `${direction_str} ${c_event_item.event_item_switch_scene_event_data.binding_event_id}`
+            let executeOnlyOnce_string = c_event_item.event_item_switch_scene_event_data.executeOnlyOnce ? '是' : '否'
+            c_text = `方向:${direction_str} 页数:${c_event_item.event_item_switch_scene_event_data.binding_page_index+1} 仅执行一次:${executeOnlyOnce_string}`
             break;
 
         }   

+ 1 - 1
assets/script/run/TaskSchedule/taskServce.ts

@@ -230,7 +230,7 @@ export class taskServce {
                 ClientEvent.dispatchEvent(config.EventRun.NOTICE_EVENT,-11,event)
             break;
             case config.event_type.switch_scene_event:
-                ClientEvent.dispatchEvent(config.EventRun.NOTICE_EVENT,event.event_item_switch_scene_event_data.binding_event_id,event)
+                
             break;
 
         }

+ 23 - 14
assets/script/run/scene_layer.ts

@@ -8,13 +8,18 @@ import { gameManager } from './gameManager';
 import { taskServce } from './TaskSchedule/taskServce';
 const { ccclass, property } = _decorator;
 
+class EventTarget{
+    event_item: event_item;
+    is_finish:boolean;
+}
+
 @ccclass('scene_layer')
 export class scene_layer extends Component {
     @property(Node) content:Node = null;
     @property(Prefab) scenePagePrefab:Prefab = null;
     @property(Node) scenePageDir:Node = null;
     protected mSceneTask:task_data = null;
-    private mTaskEventItemList:Map<string,event_item> = new Map;
+    private mTaskEventItemList:Map<string,EventTarget> = new Map;
     protected mScenePages:scene_item_data[] =[]
     private mCurPage:number = 0;
     private mAudioList:Map<string,Node> = new Map;
@@ -180,22 +185,23 @@ export class scene_layer extends Component {
         if(this.mSceneTask == null) {
             return
         }
-        let cur_page = this.mCurPage
         let event_id = -1
-        var key = ''
+        var key = this.mCurPage + ''
         if(isUp) { 
-            key = cur_page + '_up' 
+            key = key + '_up' 
         } else {
-            key = cur_page + '_next' 
+            key = key + '_next' 
         }
-        let element = this.mTaskEventItemList.get(key)
-        if(element != null) {
-            event_id = element.event_id
+        let eventTarget:EventTarget = this.mTaskEventItemList.get(key)
+        if(eventTarget != null && eventTarget.is_finish == false) {
+            event_id = eventTarget.event_item.event_id
+            if(eventTarget.event_item.event_item_switch_scene_event_data.executeOnlyOnce) {
+                eventTarget.is_finish = true
+            }
         }
         // console.log('event_id event_id=',event_id)
         if(event_id != -1) {
-            // 切换场景有延时0.7
-            this.scheduleOnce(()=>{
+            this.scheduleOnce(()=>{ // 切换场景有延时0.7
                 ClientEvent.dispatchEvent(config.EventRun.MORE_SCENE_DIRECTION_BUTTON_CLICK_FINISH, event_id)
             },0.7)
         }
@@ -210,13 +216,16 @@ export class scene_layer extends Component {
             let element_switch_scene_event_data:event_item_switch_scene_event = element.event_item_switch_scene_event_data
             if(element.type == config.event_type.switch_scene_event && element_switch_scene_event_data != null) {
                 if(element_switch_scene_event_data.binding_page_index != -1 && element_switch_scene_event_data.direction != config.switch_scene_page_direction.unknown) {
-                    var key = ''
+                    var key = element_switch_scene_event_data.binding_page_index + ''
                     if(element_switch_scene_event_data.direction == config.switch_scene_page_direction.up || element_switch_scene_event_data.direction == config.switch_scene_page_direction.left) {
-                        key = element_switch_scene_event_data.binding_page_index + '_up'
+                        key = key + '_up'
                     } else {
-                        key = element_switch_scene_event_data.binding_page_index + '_next' 
+                        key = key + '_next' 
                     }
-                    this.mTaskEventItemList.set(key, element)
+                    let eventTarget = new EventTarget()
+                    eventTarget.event_item = element
+                    eventTarget.is_finish = false
+                    this.mTaskEventItemList.set(key, eventTarget)
                 }
             }
         }

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff