【问题】如何在script中获取script自身所在alarm编号
gamemaker吧
全部回复
仅看楼主
level 5
🍁针巢衣 楼主
[黑线]
例:这个自定script放在alarm[n]中运行(我想以后可以随时将它放在任何一号alarm中),如何在script脚本内部获得此脚本所在alarm的第几号?
注:除了把alarm编号作为argument参数带入进脚本
2018年07月07日 14点07分 1
level 15
据我所知没有直接办法。如果你能保证这个实例同时只有一个alarm运行,那你可以通过检测哪个alarm刚好等于0。(我记得0是触发,-1是关闭,可能记错了可以查查F1)如果同时可能有多个alarm就没啥办法了。。。
2018年07月07日 15点07分 2
level 9
并不能获取到,不过你可以给script多写一个参数,用来表示alarm的编号
2018年07月08日 04点07分 3
吧务
level 13
事先传递的方法比事后追踪要靠谱。而且某些情况下(比如LZ当前提到的情况)根本就不存在事后追踪的方法,毕竟调用script的不只是alarm事件,还可能是其他的某个事件、其他的(或是自身)script甚至是房间的creation code。不过好在除了把alarm作为argument传递以外,事先传递还有其他方法能做到,比如……
alarm事件是先给某个global变量赋值再调用script,script去读取那个global值。不过感觉这样做没什么意义就是了。
2018年07月20日 02点07分 4
吧务
level 14
楼上各位,其实可以的[阴险]这就要看f1看得仔细不仔细了
event_type* 当前开始执行的事件类型。
event_number* 当前开始执行的事件号码。
event_object* 当前执行的事件的对象索引。
event_action* 当前执行的事件的动作索引。
均为只读变量
另外,event_type的类型有
ev_create
ev_destroy
ev_step
ev_alarm
ev_keyboard
ev_keypress
ev_keyrelease
ev_mouse
ev_collision
ev_other
ev_draw
其中ev_alarm的event_number最为简单,为0-11
用这几个变量便可判断,目前我所知,gm8,gms1均支持,gms2不常用不清楚
2018年07月20日 05点07分 6
甚至可以得知这段代码发生在那个对象的哪个事件的哪个动作中 @sunyubokkkkk @q糖豆p @积极而小米
2018年07月20日 05点07分
好吧是我孤陋寡闻了[滑稽]
2018年07月20日 09点07分
还有这东西,不愧是百度()
2018年07月20日 12点07分
哇,厉害了,看来F1无敌
2018年07月20日 15点07分
1