シップサーバー 改造

シップサーバーのソースに含まれる部分の改造です。
ソースを改造したら[ サーバー改造 手引書 ]を参考にして
実行ファイルをビルドしてください。

アイテムを変更する場合は[ アイテムコード ]が必要です。
ソース内のアイテムコードはアイテム一覧表と表示形式が変わってます。

マテリアルの使用制限を解除

mat_exceed = 1;を
mat_exceed = 0;へ変更してください。

改造対象 : ship_server/ship_server.c

switch (i.item.data[2]) // Materials
{
case 0x00:
if ( totalMatUse < max_mat )
{
client->character.ATP += 2;
if (!client->mode)
client->matuse[0]++;
}
else
mat_exceed = 1;
break;

フォトンドロップの交換アイテムを変更

クエストのガロンズショップで登場する
ホプキンスのフォトンドロップ交換イベントです。

改造対象 : ship_server/def_tables.h
改造対象から以下を探して変更してください。

// Gallon's shop "Hopkins' Dad's" item list + Photon Drops required for each

unsigned gallons_shop_hopkins[] = {
0x000003, 1,
0x000103, 1,
0x000F03, 1,
0x4A0201, 1,
0x4B0201, 1,
0x050E03, 20,
0x060E03, 20,
0x000E03, 20,
0x4C0201, 20,
0x4C0201, 20,
0x4E0201, 20,
0x020D00, 20,
0x5900, 20,
0x5200, 20,
0x030E03, 50,
0x070E03, 50,
0x270E03, 50,
0x011003, 99
};

アイテムコードとフォトンドロップ必要数の順に並んでます。
カンマ(,)の入れ忘れに注意してください。

0x0000030x000103がアイテムコードです。
0x000003 = 000003 → 00 00 03 → 03 00 00 = 030000 ( モノメイト )
0x000103 = 000103 → 00 01 03 → 03 01 00 = 030100 (モノフルイド )


ギガシールドをフォトンドロップ5で追加したい場合は
010203 = 01 02 03 → 03 02 01 → 030201 = 0x030201,5, ( def_tables.hに書き込む値 )

カボチャ / イースターエッグからの出現アイテム変更

改造対象 : ship_server/def_tables.h
改造対象から以下を探して変更してください。

// Items Obtained from Jack-O-Lantern

unsigned jacko_drops[8] = { 0x0C03, 0x010C03, 0x0B0E03, 0x030C03, 0x260E03, 0x050C03, 0x020C03, 0x040C03 };

// Items Obtained from Easter Egg

unsigned easter_drops[9] = { 0x3700, 0x3100, 0x6100, 0x4A00, 0x4700, 0x5500, 0xA400, 0x5F00, 0x030F00 };

赤文字の8や9がアイテムの種類。
アイテムの個数にあわせて調整してください。
アイテムコードの間のカンマ(,)の入れ忘れに注意してください。

0x0C030x010C03がアイテムコードです。
 0x0C03 = 000C03 → 00 0C 03 → 03 0C 00 = 030C00 ( Cell Of MAG 502 )
0x010C03 = 010C03 → 01 0C 03 → 03 0C 01 = 030C01 ( Cell Of MAG 213 )

ギガシールドを追加したい場合は
010203 = 01 02 03 → 03 02 01 → 030201 = 0x030201 ( def_tables.hに書き込む値 )

グローバルGMによるローカルGMをBAN

グローバルGMがローカルGMをBANすることはできませんが
改造によりBANできるようにします。

改造対象 : ship_server/ship_server.c
改造対象から以下を探して変更してください。

if ((connections[connectNum]->isgm) || (isLocalGM(connections[connectNum]->guildcard)))



if ((connections[connectNum]->isgm) || ( (isLocalGM(connections[connectNum]->guildcard)) && (!client->isgm)) )

これはゲームサーバーの改造のため
ゲームサーバーを管理してるローカルGMをBANするにはあまり効果的ではありません。

ゲームサーバーもグローバルGMが管理している場合は
localgms.iniでローカルGMの権限を剥奪したあと、BANする方が簡単です。

ゲームサーバーを管理していない場合は
ログインサーバーからBANしたいキャラクタデータを削除してください。

▲ top