クリスマス イベント ver 1.3
---------------------------
概要:
TSLさんのポモナイベントをパクって、クリスマスイベントをこしらえました。
非常に稚拙ですが・・・
クリスマスツリーは、召還しても何の役にも立ちません。ただの鑑賞用です。
"にぎやかし"に使ってください。
かわりに初心者案内人と見習いサンタさんからクリスマス補助魔法が受けられます。
(クリスマス補助魔法の方は、いじる箇所が結構多いです)
動作環境:
言語 日本語
サーバ L2J_JP Interlude
内容物:
gameserver\data\script\Christmas.zip
-- イベント開始日・終了日、アイテムドロップ率の設定ファイル
gameserver\data\html\default\31863.htm
-- 見習いサンタのセリフ(入り口)
gameserver\data\jscript\custom\5802_Christmas\__init__.py
gameserver\data\jscript\custom\5802_Christmas\main.htm
gameserver\data\jscript\custom\5802_Christmas\1.htm
gameserver\data\jscript\custom\5802_Christmas\2.htm
gameserver\data\jscript\custom\5802_Christmas\NG.htm
-- 見習いサンタのスクリプト&セリフ
gameserver\sql\event_christmas\OnEventBegin.sql
-- イベント開始時、見習いサンタを配置するSQL
-- NaviCAT や phpMyAdmin で。
gameserver\sql\event_christmas\OnEventEnd.sql
-- イベント終了後、見習いサンタ・ツリー等を消去するSQL
-- NaviCAT や phpMyAdmin で。
gameserver\data\stats\skills\custom.xml
-- クリスマス補助魔法 スキル定義。
既にあなたのサーバにcustom.xmlがあるときは、
テキストエディタで開いて中身をくっ付けてください
配置方法:
壱.内容物を解凍する。
内容物は、自鯖に不都合が無いか確認すること。
また、好みに応じて改造するも良し。
下記補足も読んでください。補足1・2は必須。補足3・4は好みで適用してください。
弐.内容物をサーバにコピーする。(ディレクトリ構造はそのままで)
参.gameserver\data\jscript\custom\__init__.py に次の1行を追加する。
'5802_Christmas',
四.gameserver\sql\event_christmas\OnEventBegin.sql をNaviCATやphpMyAdmin等で実行する。
Go.サーバをリスタートする。
撤収方法:
gameserver\sql\event_christmas\OnEventEnd.sql をNaviCATやphpMyAdmin等で実行する。
補足1(必須):
gameserver\data\script\Christmas.zip
解凍するとxmlファイルが出て来ます。
最初の1行にイベント開始日-終了日が記述されています。
来年は書き換えてください。
書き換えたら、zipに戻してください。
補足2(必須):
見習いサンタさんからの補助魔法は、新規プレイヤーの補助魔法を利用して実現しています。
イベント期間中のみ全てのプレイヤーを初心者扱いにしてしまうという処理が必要です。
まず、helper_buff_list テーブルにクリスマス補助魔法を追加します。
(SQLバッチファイル gameserver\sql\event_christmas\OnEventBegin.sql で)
あと、
gameserver\config\altsettings.properties
で
AltNewCharAlwaysIsNewbie = True
と設定しなければならないのですが、バグってるような気がするのでjavaソースも
改変してください。
-----------------------------
ファイル名:java/net/sf/l2j/gameserver/handler/itemhandlers/ChristmasTree.java
場所:わりと最初の方 isNewbie() 関数
変更前:
public boolean isNewbie()
{
return _newbie;
}
変更後:
public boolean isNewbie()
{
return Config.ALT_GAME_NEW_CHAR_ALWAYS_IS_NEWBIE | _newbie;
}
補足3(任意):
召還したクリスマスツリーは、鯖が落ちると消えてしまいます。
消えないように、spawnlist テーブルに強引に登録してしまいましょう。
重くなるかもしれませんが、どうせイベント期間中だけです。
終わったら spawnlist から削除すればいいんです。
-----------------------------
ファイル名:java/net/sf/l2j/gameserver/handler/itemhandlers/SummonItems.java
場所:useItem()関数 の case 0: // static summons (like christmas tree) の終わりのほう
変更前:
case 0: // static summons (like christmas tree)
(中略)
activeChar.sendMessage("Created " + npcTemplate.name + " at x: " + spawn.getLocx() + " y: " + spawn.getLocy() + " z: " + spawn.getLocz());
}
変更後:
case 0: // static summons (like christmas tree)
(中略)
activeChar.sendMessage("Created " + npcTemplate.name + " at x: " + spawn.getLocx() + " y: " + spawn.getLocy() + " z: " + spawn.getLocz());
SpawnTable.getInstance().addNewSpawn(spawn, true);
}
蛇足:
java ソースを改変したら、当然、ビルドしなおしてサーバにアップロードし
サーバをリブートすんですよ。
変更履歴:
2007.08.14 ver1.3
クエストAPIの仕様変更に伴い、__init__.py を修正。
スキルxmlファイル名をcustom.xmlとした。
2006.12.27 ver 1.2b
クリスマス ツリーを召還する方法が変わってしまい
ChristmasTree.java はゴミになったので
javaソース改造箇所の説明文を変更。
2006.12.21 ver 1.2a
OnEventBegin.sql を修正。
初心者補助魔法を受けられるレベル制限をなくします。
これでサンタさんから初心者補助魔法ももらえます。
2006.12.20 ver 1.2
見習いサンタから補助魔法を受けられるようにした。
高級クリスマス ツリーかサンタ帽子か選べるようにした。
2006.12.05 ver 1.1
とりあえず作成
参考:
ポモナイベントスクリプトを参考にさせていただきました。
http://svn.tslroom.net/forum/viewtopic.php?t=268