13号避难所

 找回密码
 立即注册
搜索
查看: 4188|回复: 7
打印 上一主题 下一主题

sfall的隱藏設定

[复制链接]
跳转到指定楼层
楼主
发表于 2010-5-21 08:53:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Timeslip從2.8版開始清理掉一些原本在ddraw.ini內的設定項目,因為他認為很多項目其實根本沒必要關掉,甚至可以說是要關掉的話你還用啥sfall?
一開始是Timeslip在2.8把按0可以強制跳離對話介面的"bug"拿掉了,然後我就和他要求說能不能把它加回來,後來也有一兩個modder說這“功能”在測試對話樹上很好用,至少可以在你不小心把對話設成無限迴圈時有辦法跳出來。

從2.7到2.8更動的部份:
    [li]一、移到ddraw.ini的[Debugging]區塊,而且只能用modder pack內附的trace版sfall才有效的選項:
    ExtraCRC(某些mod需要調整這邊,例如Megamod或是Last Hope)
    AllowUnsafeScripting(讓某些不是那麼“安全”的腳本執行下去而不是報錯)
    SkipCompatModeCheck(跳過相容性模式的檢查,沒特別情況不需要關)[/li]

    [li]二、從ddraw.ini移除,同時以後也關不掉的選項:
    SharpshooterFix、PathfinderFix、ScriptExtender、WorldMapCitiesListFix、CitiesLimitFix、NPCLevelFix、FixWithdrawalPerkDescCrash、ShivPatch、ImportedProcedureFix、PrintToFileFix
    基本上都是修正原本遊戲引擎內的bug與一些最基本的擴充功能,所以也沒關閉的必要。[/li]

    [li]三、從ddraw.ini移除,但如果你想用,還是可以自己另外加回去的選項:
    DialogueFix(取消按0可以強制跳離對話介面的「功能」)
    GainStatPerkFix(修正選了Gain XXX那些perk但沒完全生效的bug)
    BlackSkilldexFix(修正當你Pipboy內有太多磁片和任務項目時,主畫面右邊那個紅色技能按鈕變成黑色方塊不能點選的bug)
    SaveInCombatFix(讓你在戰鬥中,只能在未消耗任何行動點數之前存檔,以盡可能避免戰鬥中存讀檔會造成的各種問題)
    SingleCore(強制讓Fallout執行程序只占用CPU單一核心以節省資源耗用)
    這五個都是默認開啟(設定為1),要關掉的話得自己在ddraw.ini內加上該行並設定為0。[/li]

    [li]四、2.10a之後增加的項目,沒寫在ddraw.ini內,但可以自己在ini內加上以修改sfall默認的運作(全都是默認為1):
    WieldObjCritterFix - 修正wield_obj_critter這個腳本函式的運作,它造成的最主要問題是New Reno拳擊賽的屬性增加bug
    JetAntidoteFix - 修正Jet解毒劑在使用後不會像其他藥物消失掉的問題。
    DodgyDoorsFix - 讓門不會發生閃躲子彈的情況。
    FastShotFix - 修改Fast Shot的運作方式:原本FO2情況是你射擊與投擲武器所需AP -1,但不能瞄準的懲罰是連徒手與近戰都被影響,這部份是bug而非設計者原意,他們當初忘了對瞄準攻擊也做一樣的檢查。0是FO2原始運作方式,默認的1是讓你徒手與近戰攻擊可以瞄準(Fast Shot僅影響射擊與投擲武器),2則是和FO1一樣把AP -1的效果一併套用在徒手與近戰攻擊上。
    BonusHtHDamageFix - 修正Bonus HtH Damage的運作,它本來是只有在攻擊最大值上+2,修正後和Bonus Ranged Damage一樣是計算傷害時+2。
    SpecialUnarmedAttacksFix - 修正拳腳特別攻擊的暴擊加成效果沒有正常運作的問題。[/li]

第三四類的項目都不會在說明文件內提到怎麼加回去和做些什麼,等於是完全的隱藏項目,知道的人才知道有那些東西,或是要去翻源碼。另外還有幾個被拿掉,但還是有效的項目,我直接把它們打包整理如下,要用的就直接剪貼進ddraw.ini,其他的我就不說明了,請自己看英文敘述吧:

    [li]接在WorldMapDelay2項目之後的部份,原本是控制地圖移動速度和隨機事件機率,不過現在算過時的設定,正常來說不會用上:[/li]
    1. ;XX OBSOLETE  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    2. ;XX
    3. ;XX ;This will change the physical speed at which you move across the map
    4. ;XX ;Set to 0 to leave at the default. (i.e. limited by vwait in windowed mode, or by processor speed in fullscreen)
    5. ;XX ;If set to something other than 0, it enforces a maximum fps on the world map screen.
    6. ;XX ;Changing this to something other than 0 is not recommended if you've already applied a world map speed patch to your fallout exe.
    7. ;XX WorldMapFPS=0
    8. ;XX
    9. ;XX ;Only set to 1 if your systems high performance timer is unreliable for some reason
    10. ;XX ForceLowResolutionTimer=0
    11. ;XX
    12. ;XX ;Set to 1 to enable Ray's patch to make world map encounter rate independent of your travel speed
    13. ;XX WorldMapEncounterFix=0
    14. ;XX WorldMapEncounterRate=6
    15. ;XX
    16. ;XX ;Obsolete, but can still be used if you know what it does.
    17. ;XX ;WorldMapDelay=0
    18. ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    复制代码
    [li]接在DamageFormula項目之後的:[/li]
    1. ;XX HIDDEN  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    2. ;XX These options are removed from ddraw.ini since v2.8, but still recognized by sfall.
    3. ;XX NOTE: All options default to 1.
    4. ;XX
    5. ;XX ;Prevents you from using 0 to escape from dialogue at any time.
    6. ;XX DialogueFix=1
    7. ;XX
    8. ;XX ;Set to 1 for force fallout not to use multiple processor cores even if they are available
    9. ;XX SingleCore=1
    10. ;XX
    11. ;XX ;Set to 1 to fix issues with the GainXXX perks not giving all the bonuses that they should
    12. ;XX GainStatPerkFix=1
    13. ;XX
    14. ;XX ;Set to 1 to fix the issue with the skilldex button disappearing when you have many active quests and holodisks.
    15. ;XX BlackSkilldexFix=1
    16. ;XX
    17. ;XX ;Prevents you from saving in combat except at the start of your turn to avoid a few bugs
    18. ;XX ;Note that even with this option enabled, it is still not advisable to save in combat at all.
    19. ;XX SaveInCombatFix=1
    20. ;XX
    21. ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    22. ;XX These options never appear in ddraw.ini, but are recognized by sfall.
    23. ;XX NOTE: All options default to 1.
    24. ;XX
    25. ;XX ;Set to 1 to fix issues with the wield_obj_critter script function.
    26. ;XX WieldObjCritterFix=1
    27. ;XX
    28. ;XX ;Set to 1 to fix the issue that resulted in the jet antidote not being consumed.
    29. ;XX JetAntidoteFix=1
    30. ;XX
    31. ;XX ;Prevents doors from being able to dodge bullets.
    32. ;XX DodgyDoorsFix=1
    33. ;XX
    34. ;XX ;Two alternate fixes to the interaction between HtH attacks and the fast shot trait.
    35. ;XX ;0 - Fallout 2 original behavior.
    36. ;XX ;1 - Haenlomal's fix, enable called shots for HtH attacks.
    37. ;XX ;2 - Restore the -1 AP bonus for HtH attacks (i.e. Fallout 1 behavior)
    38. ;XX FastShotFix=1
    39. ;XX
    40. ;XX ;Set to 1 to fix the bug that caused bonus HtH damage to not be applied correctly.
    41. ;XX BonusHtHDamageFix=1
    42. ;XX
    43. ;XX ;Set to 1 to fix the issue that caused the critical hit bonuses from special unarmed attacks to not be applied correctly.
    44. ;XX SpecialUnarmedAttacksFix=1
    45. ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    复制代码

EDIT: 2012-04-26,加上2.10a之後新增但從未提及與出現在ddraw.ini內的設定。
沙发
发表于 2012-4-10 11:31:29 | 只看该作者
請問一下 novarain 他的 Debugging 版
ddraw.ini 內設置為
DebugMode=2

fallout2.cfg 也設置了
[debug]
mode=environment
output_map_data_info=1
show_load_info=1
show_script_messages=1
show_tile_num=1

但並沒有debug.log 輸出

該如何才能正確設置
板凳
 楼主| 发表于 2012-4-10 11:38:29 | 只看该作者
你用的是modderpack內的檔案沒錯吧。
我這邊照你那樣設定一切正常,該有的都有。
地板
发表于 2012-4-10 12:17:46 | 只看该作者
我錯了用到C++的Debug方案

看了他的C++後才知道

要在C++ 組態屬性分項裡

前置處理器(pre-processor)

添加 TRACE

並非在使用他的Debug方案
5#
发表于 2012-4-10 12:51:35 | 只看该作者
恩....对话太高端了....完全插不上嘴啊......
6#
发表于 2012-4-10 13:34:53 | 只看该作者
留下一些之資料以後比較好查

http://www.csie.nctu.edu.tw/~skyang/define.zhtw.htm

#ifdef, #else, #endif

語法:
#ifdef 名稱
    一段程式碼
#else
    另一段程式碼
#endif

如果名稱有在之前以 #define 定義過,那麼上面的程式碼就會被編譯,否則下面的程式碼被編譯。以上的語法長得很像 if-else 述句,其中的 #else 段落也不是必須的,但 #ifdef 不是在控制程式流程,而是在對程式碼做選擇性的編譯,換句話說,不符合條件的程式碼是完全不會被編譯到,也不會產生任何的機械碼,因此它的效果比較像是在之前的範例程式當中,以 /*  */ 將不使用的程式碼註解掉,只是又更方便了,你只要更動程式碼最初的 #define 那幾行,就可以控制整份程式碼當中哪些部分要被邊譯、哪些部分要被忽略。

除了 #ifdef,還有個 #ifndef 和 #ifdef 剛好相反,沒定義才被編譯,不過沒有 #elseif 這種東西喔。下面這個例子 GradeAdjust2.cpp 是某位教授用來調整學生期末分數的程式,他的需求是當他心情好的時候,分數就採取開根號乘以10的方式讓大家都開心,當他心情不好的時候就只加一點點分數,

#define EVERYBODY_HAPPY    // 控制要不要採用開根號乘以10的計分方式
#define SHIFT_GRADE 10     // 控制調分幅度
#define MAX_STUDENTS 10    // 控制學生人數

void main(void)
{
    float grade[MAX_STUDENTS]; // 輸入略...

    #ifdef EVERYBODY_HAPPY
    // 老子爽的時候學期成績就開根號乘以10 讓大家爽:
    for (int i=0; i< MAX_STUDENTS; ++i)
    {   grade = sqrt[grade] * 10;  }
    #else
    // 老子不爽的時候就只調一點點分數:
    for (int i=0; i< MAX_STUDENTS; ++i)
    {   grade += SHIFT_GRADE;  }
    #endif
}

甚麼人愛用 #define  呢?如果你是學術研究人員,你可能會用用 #define 調演算法的參數、用 #ifdef 關閉或選用某些演算法。如果你是代工廠的工程師,因為每個客戶要的都不一樣,所以使用 #define 來調整 DEMO 效果,用 #ifdef 區隔客製化的程式碼。在這些人的程式裡,你會看到一大堆 #define 和 #ifdef,最重要的是大家都用 #define 和 #ifdef 來偵錯!

前面提到 Visual Studio產生的專案預設就有 Debug 和 Release 兩個組態(configuration),而在 Debug 組態有定義 _DEBUG 而 Release 則沒有,所以你的程式可以這樣寫:

float *ptr = new float [1000000];
...裝填 ptr 陣列的內容...
#ifdef _DEBUG
    ...檢查 ptr 陣列的內容是否有不當的值...
    ...對 ptr 中的資料進行一些測試...
    ...輸出一些相關的數據到畫面上...
#endif
...處理 ptr 陣列中的資料...

上例中在 #ifdef _DEBUG 與 #endif 當中的程式碼片段只有在 Debug 組態下的時候才會被編譯,所以你可以盡量地在裡面放一些檢查或測試程式碼,甚至把數據輸出到畫面或檔案中。從這個 Visual Studio 組態功能你也可以看到,定義符號不一定都要經過 #define 語法,請你在方案總管中在任一個專案(例如 GradePassed)上點滑鼠右鍵、並在彈出選單中選擇屬性,你就會看到如下的屬性頁,如圖所示地在組態屬性分項下點選前置處理器(pre-processor),你可以看到右邊的前置處理器定義欄位有一些符號,在這裡鍵入的符號就相當於你在程式碼當中寫了 #ifdef WIN32, #ifdef _DEBUG...等等。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
7#
 楼主| 发表于 2012-4-29 18:19:14 | 只看该作者
以下是2.10a之後增加的項目,沒寫在ddraw.ini內,但可以自己在ini內加上以修改sfall默認的運\作(全都默認為1):

    [li]WieldObjCritterFix - 2.11a時加入,修正wield_obj_critter這個腳本函式的運\作,它造成的最主要問題是New Reno拳擊賽的屬性增加bug。[/li][li]JetAntidoteFix - 2.11a時加入,修正Jet解毒劑在使用後不會像其他藥物消失掉的問題。[/li][li]DodgyDoorsFix - 2.15a時加入,讓門不會發生閃躲子彈的情況。[/li][li]FastShotFix - 2.13a時加入,修改Fast Shot的運\作方式。
    原本FO2情況是你射擊與投擲武器所需AP -1,但不能瞄準的懲罰是連徒手與近戰都被影響,這部份是bug而非設計者原意,他們當初忘了對瞄準攻擊也做一樣的檢查。0是FO2原始運\作方式,默認的1是讓你徒手與近戰攻擊可以瞄準(Fast Shot僅影響射擊與投擲武器),2則是和FO1一樣把AP -1的效果一併套用在徒手與近戰攻擊上。[/li][li]BonusHtHDamageFix - 2.10a時加入,修正Bonus HtH Damage的運\作,它本來是只有在攻擊最大值上+2,修正後和Bonus Ranged Damage一樣是計算傷害時+2。[/li][li]SpecialUnarmedAttacksFix - 2.11a時加入,修正拳腳特別攻擊的暴擊加成效果沒有正常運\作的問題。[/li]

首篇內容也一併更新。
8#
发表于 2012-8-3 17:45:43 | 只看该作者
BonusHtHDamageFix - 2.10a時加入,修正Bonus HtH Attack的運\作,它本來是只有在攻擊最大值上+2,修正後和Bonus Ranged Damage一樣是計算傷害時+2。

好像打錯了
'修正Bonus HtH Attack的運\作' 應該是
修正Bonus HtH Damage的運\作

感謝 novarain 提供
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Archiver|13号避难所

GMT+8, 2024-5-8 00:21 , Processed in 0.059637 second(s), 14 queries .

快速评论 返回顶部 返回列表