13号避难所

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: novarain
打印 上一主题 下一主题

sfall更新資訊與說明

[复制链接]
41#
 楼主| 发表于 2016-12-24 21:53:30 | 显示全部楼层
我在第一篇已經寫得很清楚了不要直接蓋掉ddraw.ini,是我寫的讓人看不懂嗎....?
官方版的ddraw.ini裡面已經有幾乎所有可以設定的項目了,只有四五個是一般情況用不到的我沒特別加上,ddraw.ini內沒有寫入的選項就是用默認值去跑。

RP 2.3.3地圖那亮度是地圖腳本的設定,你想改亮一點就去改腳本。
42#
 楼主| 发表于 2016-12-24 22:53:57 | 显示全部楼层
腳本當然是RP自己那堆.int的腳本。不是什麼玩意兒都可以在sfall內就搞定的,它從來就不是萬靈丹。
43#
 楼主| 发表于 2017-2-15 13:29:20 | 显示全部楼层
最近在做的事有兩項:一是把ddraw.ini內容翻譯成中文,二是慢慢測試要含在3.8.2的牛皮袋/背包相關修正。
前者差不多進行50%了,英文寫起來很順的要重新用中文敘述一遍反而變難了,或是該說在盡量別用太多字數又要讀起來通順的前提下。
後者是這週才開始進行的,牛皮袋/背包這種“容器”物品在一代時是明確說了可用,說明書也特別寫了一段相關介紹。但大概是因為相關bug太多,二代開發時程吃緊加上它們又不重要,沒多餘力氣花在它們身上,所以二代就直接從遊戲內拿掉了,除了Modoc地下那個漏網之魚之外。目前加了一兩個功能和修正讓它們能像一代一樣運作(例如打開袋子時,把物品直接拖到角色圖片上就等於拿出來放回主物品欄中),接下來就是要修一些東西會消失或造成遊戲卡死的問題。
44#
 楼主| 发表于 2017-3-27 23:34:35 | 显示全部楼层
sfall上個月底更新3.8.2,前幾天則是3.8.3,這兩個版本基本上沒加新選項,更新內容著重在sfall既有功能改進、sfall自身bug修正和更多遊戲引擎修正,其中最主要的是牛皮袋/背包相關的bug和漏洞。
例如:
在負重過重情況下,把物品拖拉到牛皮袋/背包上想放進去會讓該物品直接消失(一代就有的bug)
把牛皮袋/背包放在交易台上,試著打開它們會讓遊戲當機(二代才有的bug,一代會不讓你開)
物品欄處在牛皮袋/背包“之下”的物品無法被腳本函式移除,因為遊戲引擎內部負責計算物品欄內某物品數量的item_count函式在碰到容器類物品時會回傳錯誤的值,造成判定提前結束,這就是讓你可以保留任務物品的漏洞的原理。

另外有個我以前就有注意到的bug:把人物資料輸出成文字檔時,行動順序(Sequence)數值一直是錯的。前陣子想到就查了一下引擎內部運作,結果發現在輸出過程取數值時實際上不是看行動順序,而是重覆取到力量的值,現在有些相關知識之後就在sfall中自己動手修掉它了。
這個bug從一代就有了,到二代也沒修掉,就這樣存在了近二十年....我想大概是後來沒啥人會有興趣把自己人物資料輸出成文字檔吧,以前剛出那時一些BBS或古早論壇的討論還有人會分享自己人物的文字檔呢,這時就會發現自己老了。

如果沒什麼大意外,3.8.3會是3.x最後一版,下一次更新就直接跳到4.0了。
4.0把一大部份源碼都用C++的實行方式重寫(標準採用C++11),原本ASM的部份用wrapper包起來,減少在表面出現的場合,調用相關函式比較方便也增加易讀性,畢竟懂C++的人一定比懂ASM的多,這樣以後有其他人想了解sfall怎麼運作或要加新功能也容易一些。
另外原本一些用ASM寫死的選項/功能會被踢出sfall,改成用腳本函式接手本來的功能。像高亮物品功能在4.0就是從sfall內部拿掉,變成用一個全域腳本來實行,這樣誰想怎麼改(例如我想加上標記屍體)都可以不用動到sfall源碼本身。

最後我把sfall的ddraw.ini設定檔內容全翻譯成繁中了,放在首篇附件內,檔案編碼是UTF-8無BOM,所以sfall一樣可以吃,這樣至少一些選項內容會比較好懂一些,有人有興趣改成簡中的請自便。
再提醒一次:不要直接用那個ddraw.ini覆蓋掉你RP或其他mod既有的ddraw.ini。
翻譯ddraw.ini其實挺有意義的,因為會逼著自己把絕大多數選項都確認一遍,有些地方由於這樣發現一些可能造成bug或運作和敘述不合的情況就順便修掉了。
45#
 楼主| 发表于 2017-5-8 11:36:38 | 显示全部楼层
sfall今天更新至3.8.4,修正了兩個3.8.3的嚴重bug,其中一個會導致一些任務無法完成(交出某些任務物品就會讓遊戲當掉)。原因其實很蠢,出在VS2008/2010對某些code寫法的處理方式和VS2015不一樣,但那情況它們也不會報錯....
另外加上了一個4.0才有的設定。

OutlineColor(默認值0x10,即為16)
可以調整高亮物品/容器時的框線顏色,可用的顏色數值有:
  • 0x01 (1) - 閃爍的紅色
  • 0x02 (2) - 紅色
  • 0x04 (4) - 灰色
  • 0x08 (8) - 閃爍的綠色
  • 0x10 (16) - 亮黃色
  • 0x20 (32) - 暗黃色
  • 0x40 (64) - 紫色

而只要不是上述的數值就一律為紫色,例如你設個75給它也會顯示紫色,這是遊戲引擎本身的處理方式。我在sfall源碼內只有針對零與負數也用同樣方式處理。
首篇附件也更新了ddraw.ini的繁中翻譯。
46#
 楼主| 发表于 2020-6-18 05:01:45 | 显示全部楼层
sfall 4.x時相關設定移到sfall-mods.ini內了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-3 04:58 , Processed in 0.087390 second(s), 12 queries .

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