13号避难所
标题:
用sfall腳本給武器加上AC修正值
[打印本页]
作者:
novarain
时间:
2015-11-18 22:45
标题:
用sfall腳本給武器加上AC修正值
原本遊戲內只有子彈才有AC修正值(AC mod),武器本身最多就那幾個加命中率的perk而已。
前幾天有人在NMA問有沒有辦法做到
給武器加上AC修正值
,所以今晚沒打算玩FO4就試著寫腳本看看了,結果意外地簡單:
// hs_tohit.ssl
procedure start;
#include ".\HEADERS\DEFINE.H"
#include ".\HEADERS\sfall.h"
#define usewpn(PID) (obj_pid(critter_inven_obj(attacker, INVEN_TYPE_RIGHT_HAND)) == PID) or (obj_pid(critter_inven_obj(attacker, INVEN_TYPE_LEFT_HAND)) == PID)
procedure start begin
variable tohit;
variable attacker;
variable target;
if not init_hook then begin
tohit := get_sfall_arg;
attacker := get_sfall_arg;
target := get_sfall_arg;
if (usewpn(PID_10MM_PISTOL) or usewpn(PID_DESERT_EAGLE)) then begin
if (get_critter_stat(target, STAT_ac) < 5) then begin
tohit := tohit + get_critter_stat(target, STAT_ac);
end else begin
tohit := tohit + 5;
end
end
if (tohit > 95) then begin
set_sfall_return(95);
end else begin
set_sfall_return(tohit);
end
end
end
复制代码
藉由hs_tohit這個hook script實現,範例內是給10mm手槍和沙漠之鷹等同AC mod -5的效果。
簡單解釋是先看攻擊者用的武器是不是10mm手槍或沙漠之鷹,是的話就再檢查目標AC值,如果目標AC值小於5,那命中率就增加目標AC值(當成目標AC值已經被扣到零),如果目標AC值在5以上,命中率就加5(等同對方AC值少了5)
另外加上一個判斷把命中率最大值限制在原本的95%,不然一些情況下攻擊者的命中率可以到100%,因為hs_tohit是在遊戲本身命中率計算完(包括鎖95%上限)才會執行,如果沒額外加限制判斷就會在原本95%上限之上再加5%。
欢迎光临 13号避难所 (https://bn13.net/)
Powered by Discuz! X3.2