2016年2月28日 星期日

[仙境傳說] Openkore死亡記錄修改


前言
------
本篇主要是介紹Openkore在死亡log的修改,原版的code在做死亡紀錄時,資訊如下圖:


老實說,什麼資訊都沒有,尤其當有些人是共用同個資料夾去開啟多個帳號時,根本不知道是哪位角色或是怪物造成的死亡紀錄…

因此,本篇就是稍微看了Soure code之後,教大家怎麼改些程式碼增加更多訊息。






本篇開始
------
本次就不針對源碼做解釋,直接切入怎麼改code吧。

源碼部分有興趣的玩家就自己打開src資料夾看吧!不算太難survey


首先,負責做死亡紀錄的方程式在 src/Misc.pm 內。

該方程式如下:
sub deadLog {
 my $crud = shift;
 return if (!$config{'logDead'});
 open DEADLOG, ">>:utf8", $Settings::dead_log_file;
 print DEADLOG "[DEAD] $crud\n";
 close DEADLOG;

}

我們可以看到就真的是只記錄時間而已,實在雞肋到不行。

假設我們想加入玩家角色名稱資訊進去該怎麼做呢?

只要將該方程式修改為如下:
sub deadLog {
 my $crud = shift;
 my $dead_player_name = Actor::name($Globals::char);
 return if (!$config{'logDead'});
 open DEADLOG, ">>:utf8", $Settings::dead_log_file;
 print DEADLOG "[DEAD] Player:$dead_player_name,Time:$crud\n";
 close DEADLOG;

}

如此一來,死亡紀錄就會變成下面這樣啦,例圖是同資料夾負責五個帳號的死亡紀錄





---------

如果還想要紀錄是哪個怪物打死你的,就比較麻煩一點點囉。

首先要加入一個變數來記錄怪物名稱,檔案路徑為 src/Globals.pm





變數名稱當然是隨便各位命名拉。


接下來,在更新攻擊傷害紀錄的部分偷偷加一行:



這一行是在被攻擊時,紀錄該怪物名稱

然後在deadlog的方程式改成如下:



如此一來,死亡紀錄就會如下圖拉:






沒有留言:

張貼留言