|
|
发表于 2008-12-22 14:40:08
|
显示全部楼层
if udg_InitialExperience[id]<49999 and udg_Experience[id]>=49999 then
set udg_Experience[id] = 49999
call DisplayTimedTextToPlayer(p,0.0,0.0,60.0, "Officer proficiency test scheduled for the next insertion. You will be given seven questions relating to the USMC. Be prepared, Marine." )
endif
if udg_Experience[id]-udg_InitialExperience[id]<=3000 then //failsafe. no more than 3000 experience gain.
if udg_Experience[id]>240000 and (udg_Difficulty<4.0 or udg_Mode!=3 or udg_Mode!=5) then //Colonel. NM or DM experience gain only
if udg_InitialExperience[id]>240000 then
set udg_Experience[id]=udg_InitialExperience[id]
else
set udg_Experience[id]=240000
endif
endif
call SaveCode2(p)
if udg_SaveState[id]==1 then
call DisplayTimedTextToPlayer(p,0.0,0.0,60.0, "2 saves remaining." )
elseif udg_SaveState[id]==2 then
call DisplayTimedTextToPlayer(p,0.0,0.0,60.0, "1 save remaining." )
endif
else
call DisplayTimedTextToPlayer(p,0.0,0.0,60.0, "Biometric Error. Contact Azazel_ at www.notd-aftermath.com." )
endif
if udg_Mode==4 then
call DisableTrigger(GetTriggeringTrigger())
endif
这段代码是检验经验是否正常获得的代码。第一个if语句判定的是是否进入少尉军官问答。
第二个if语句检测当前局获得的经验是否超过3000(刷分图如果不删除这个if就只能刷3000经验,否则报错)
第三个if语句检测当前经验是否大于到240000“且”是否是在难度小于4,不是mode3不是mode5模式下。
第四个if语句判定你开始游戏的时候经验是否达到240000,如果是则将经验设置成你开始游戏时候的数字。(本局不获得经验)
如果否,则把你现有经验定为240000(本局最高存档经验为240000)
之后的代码就是判定存盘次数的了。
从上述代码中看出,难度系数小于4、不是mod3或不是mod5……
这个是bug的原因……,因为让这个条件成假的条件是 即是mod3也是mod5……
所以存在240000以上无法存储军衔的问题……
因为没有同时是恶梦的死亡模式……
[ 本帖最后由 angerking 于 2008-12-22 14:41 编辑 ] |
|