好友
- 积分
- 6726
注册时间2013-3-2
最后登录1970-1-1
收听
记录
|
如果想设置一个效果,拿一个变量在时间上的前后作比较,
比如影分身CLEO中,要做出分身血值低于出场血值就会破成烟雾的效果,
但是没有所谓的出场血值,(1@是代表分身1号)
只能在触发时设置成例如11@ = player 1@ health, //读取分身1号的血值视为11@
然后跳入循环照着逻辑再来一次12@ = player 1@ health ,//读取分身1号的血值视为12@
再设置条件if 12@ < 11@ //正如自己所想,翻译成 如果现在的血值低于出场血值就怎样怎样
但是11@是一个变量,和12@一个意义,不能在出场和之后的时间上区别开来,11@永远等于12@,
当初做那个没人要的PCGTA版影分身时遇到这个问题有点费脑,
想了一会就走奇葩路线尝试一下,把另一个不变的变量赋予同样的值作为介质,就可以作为每个循环中固定的量。
(简单理解为再虚设一个变量)
以上不必太深究,本来就有点不好解释。
还是说方法,
方法就是
2@ = create object #gun_boxbig at 0.0 0.0 0.0 //在某位置创建一个物件视为2@
set 2@ immunicate (1,1,1,1,1)//把它设置成无敌,那么它的血值就不会被游戏自身改变
3@ = player 1@ health //读取分身1号的血值为 3@
set object 2@ health to 3@ //把分身1号的血值3@赋予物件2@
get object 2@ health to 4@ //视物件2@ 的血值为4@
每次分身出场的血值就被指定为4@,
就允许
12@ = player1@ health
if
12@ < 4@ ,
这样一来,4@ 就是一个相对的常量了,问题奇葩地解决。
PS:不玩SA很久,主程序删了,
SannyBuilder没有游戏目录对应打不开.cs文件,
所以可能有Opcodes编码记错了。
|
评分
-
查看全部评分
|