|
楼主 |
发表于 2012-3-23 22:07:00
|
显示全部楼层
//-------------MAIN---------------
thread 'SHEN'
:SHEN_11
wait 0
Actor.StorePos($PLAYER_ACTOR, 4@, 5@, 6@) (设置主角当前坐标保存为 4 5 6)
0A3E: unknown_get_actor_in_sphere 4@ 5@ 6@ radius 3.0 3.0 3.0 handle_as 0@ (在456 坐标周围3米内选取路人存为变量0@)
if
056D: actor 0@ defined (如果0@变量是存在的,也就是说角色已经找到并选好了)
else_jump @SHEN_11 (不然就返回11,也就是如果没有选到的话)
if or (重点1)
Actor.Animation(0@) == "FIGHTA_1" (如果路人0@施展了以下几种姿势的任意一种,以下的flght_1 2 3等等是普通出拳的三个姿势)
Actor.Animation(0@) == "FIGHTA_2"
Actor.Animation(0@) == "FIGHTA_3"
else_jump @SHEN_11 (没有施展的话就跳回开头)
jump @SHEN_137 (判断成功,跳到137)
:SHEN_137 (特级重点2)
0209: 10@ = random_int_in_ranges 1 2 (随机安排数字1-2,在这之间随机选择一个结果存储为变量10@,你可以把范围加的更多,比如0209: 10@ = random_int_in_ranges 1 20 ,就是随机安排数字1-20,这样做的用意是增加更多的变化)
jump @SHEN_153 (跳到153)
:SHEN_153
if
10@ == 1 (如果随机数字结果出来是1)
else_jump @SHEN_291 (不然跳到291,也就是说不是1,是其他的,上文因为只有1-2,所以其他的肯定是2,而2我没有设置新变化,直接跳回从头,所以该CLEO只有10@ ==1 才有下文,2为终结)
if
not Actor.Dead(0@) (如果0@角色没有死亡,这里再判断一次角色是否死了,后文施展动作需要)
else_jump @SHEN_11
04ED: load_animation "YOMI" (一切就绪,条件全部达成,读取所需姿势文件,飞雷神的)
0812: AS_actor 0@ perform_animation "ETC1" IFP "YOMI" rate 10.0 loopA 0 lockX 1 lockY 1 lockF 0 time -1 // versionB
wait 150 (让0@角色施展攻击动作)
05E2: AS_actor 0@ kill_actor $PLAYER_ACTOR (让0@角色的意志为始终追杀主角,不然0@施展完CLEO设定动作后会放弃之前行为)
0812: AS_actor $PLAYER_ACTOR perform_animation "KO_SPIN_L" IFP "PED" rate 10.0 loopA 0 lockX 1 lockY 1 lockF 0 time -1 // versionB (让玩家施展被攻击动作)
04EF: release_animation "YOMI" (这个过程完结,为了内存稳定,拆除放进内存里的动作文件)
jump @SHEN_11 (跳回开头)
:SHEN_291 (这是之前10@= 2发生的结果, 由于随机范围只有1-2两种,我必须留一种为角色不使用技能,所以选择了2)
wait 200 (重点3) 为什么要设置等待200毫秒?因为不设置的话该CLEO会因为过程处理过快,而发生快速的重复使用和判定, 那么由于太快,之前使用的随机判断的CLEO新风格写法就失去了意义,角色会不断使用技能攻击玩家,而不是偶尔,这个200建议设置的和角色在 重点1 处使用的动作时间为最佳)
jump @SHEN_11 完结
|
|