Contents |
OpenKore 是以 Perl 所撰寫的,Perl 是一種命令稿語言。Perl 是一個不錯的語言,是因為該語言的寫作彈性極端地高,但仍有許多程式開發者(包含 Kura - Kore 的原始作者,與許多 modders)會犯程式寫作上的錯誤。本文件的目的是要告知程式開發者關於如何適當地撰寫 OpenKore 的程式碼。
createFile() attackMonster() $superWeapon
sub fooBar {
my $canProceed = $_[0];
if ($canProceed) {
bar(1);
} else {
bar(0);
}
}
錯誤範例:
sub
FooBar()
{
my $CanProceed = $_[0];
if ($CanProceed)
{ bar(1); }
else
{
bar(0);
}
}
假如該變數只是暫時使用的話(只存在於某一個函數或敘述裡),那麼請以 "my" 定義該變數為局部性。範例:
sub foo {
...
# 定義多個局部性變數:
my ($switch, $msg);
$msg = "01";
$switch = "ABCD";
if ($switch eq "ABCD") {
my $level = unpack("S1", substr($msg, 0, 2));
message "/me uses Dummy Skill lv $level\n";
}
}
請見 Log.pm 以獲得更多資訊。
註解很重要但常常做得不足。長遠來看,好的註解可以幫助你以及潛在的貢獻者。
} elsif ($switch eq "DEFG") {
# Someone used SuperBlessing lv 99 on you. All your stats
# are boosted by +99. Take advantage of this while we
# still can.
# (describe algorithm if you're doing something really
# complex)
...
(hundreds of lines follow)
...
你應該要把註解放在任何函數定義的前面,描述一下此函數是要做什麼的,它接受什麼參數,以及該函數回傳哪些數值。假如該函數很複雜,那麼可以加一個範例。註解應該要以 "##" 做開始。這可讓 makedoc.pl 自動產生 HTML 的文件。
Take a look at various places in the OpenKore source code for examples.
在 Readme.txt 裡,你可以寫下一個簡短的,高層次的修改概要。Readme.txt 是要給那些想知道每次版本釋出後什麼地方改變了的使用者看的。你也應該寫下新的 config 選項好讓使用者可以正確地更新他們的 config 檔。