lynzxcv 发表于 2012-3-25 18:59

求高手指教一下A大重生MOD中这段人造人的代码是什么意思吧

short DeleteMe
short DaysPassed
short sDay

Begin OnDeath
set DeleteMe to 1
End


Begin OnActivate
If GetDead == 0
      If IsActionRef Player
                StartConversation Player, GREETING
      endif
else
      if IsActionRef Player
                Activate Player
      endif
Endif
End

Begin GameMode

If DeleteMe == 1
      set DaysPassed to GameDaysPassed;e.g. 10
      set DeleteMe to 2
elseif DeleteMe == 2
      set sDay to DaysPassed - GameDaysPassed;e.g. 10- (10+1) for one day passed
                If sDay <= - 5
                        set Deleteme to 0
                        Disable
                        MarkForDelete
                Endif
Endif

只知道是NPC死了后就把DeleteMe设为1
接下来是猜的:DeleteMe为0的一段作用是不是加入队伍后按E可以直截对话的?
之后就完全不明白了:L

316a 发表于 2012-3-25 19:19

嗝屁了就给我把DeleteMe变量设为1
新来的默认DeleteMe变量是0,能喘气就给我跟主子打声招呼,要不是人就拉倒
死了的话DaysPassed开始几天数(其他地方用),这个计数启动后DeleteMe 变成2进入下一个功能
满足以上条件开始对sDay 进行计数,-5了就把这个生化人彻底蒸发掉,连ID都不留


不知我这么解释你看懂了没?



lynzxcv 发表于 2012-3-25 19:28

316a 发表于 2012-3-25 19:19 static/image/common/back.gif
嗝屁了就给我把DeleteMe变量设为1
新来的默认DeleteMe变量是0,能喘气就给我跟主子打声招呼,要不是人就拉 ...

多谢A大指教,差不多明白了,就是差点细节

MarkForDelete
这个不懂什么意思,前面不是已经有个Disable了,Disable应该已经把这个人物删了吧?

不知道GECK有没有谁作过什么中文的脚本教程说明之类的?自己摸索太困难了

316a 发表于 2012-3-25 19:55

lynzxcv 发表于 2012-3-25 19:28 static/image/common/back.gif
多谢A大指教,差不多明白了,就是差点细节

MarkForDelete


disable是使某物无效而非删除,其依然占用ID,其基本数据被转入后台,程序依然认为其存在,而当在disable后面加一个MarkForDelete就会彻底删除,连ID都不留,程序会释放及所占用的内存

lynzxcv 发表于 2012-3-25 22:25

本帖最后由 lynzxcv 于 2012-3-25 22:36 编辑



找到原因了,是我没设好条件和别的代码冲突了..............................{:3_164:}

页: [1]
查看完整版本: 求高手指教一下A大重生MOD中这段人造人的代码是什么意思吧