|初心者補助魔法			|クリスマス補助魔法
|ID  lv name		val	|				本家xml	custom.xml
|4322 1 WindWalk	33	|4262 2 Christmas.WindWalk	33	20 34
|4323 1 Shield		1.15	|4266 3 Christmas.Shield	1.15	1.08 1.12 1.15
|4338 1 Life Cubic	-	|
|4324 1 Bless the Body	1.35	|
|4325 1 Vampiric Rage	9	|
|4326 1 Regeneration	1.20	|
|4327 1 Haste		1.15	|4263 1 Christmas.Haste		1.15	1.15 1.33
|				|4264 1 Christmas.Empower	1.55	1.55
|				|4265 3 Christmas.Might		1.15	1.08 1.12 1.15
--------------------------------+--------------------------------
|4322 1 WindWalk		|4262   Christmas.WindWalk
|4323 1 Shield			|4266   Christmas.Shield
|4338 1 Life Cubic		|
|4328 1 Bless the Soul		|
|4329 1 Acumen			|
|4330 1 Concentration		|
|4331 1 Empower			|
|				|4263   Christmas.Haste
|				|4264   Christmas.Empower
|				|4265   Christmas.Might

■画面上部のエンチャント アイコンがおかしい
4200-4299.xml -- levels がすべて１になっているので、正しく書き換える。
skillname-j.dat
4262	2	クリスマス ウィンド ウォーク	一定時間、移動速度が向上した状態。効力2。	none	none
4263	1	クリスマス ヘイスト	一時的に攻撃速度を向上させる。効力1。	none	none
4264	1	クリスマス エンパワー	一時的に魔力が向上した状態。効力1。	none	none
4265	3	クリスマス マイト	一時的に攻撃力が向上した状態。効力3。	none	none
4266	3	クリスマス シールド	一時的に防御力が向上した状態。効力3。	none	none

ファイル オリジナル4200-4299.xml と 4200-4299.XML を比較しています
***** オリジナル4200-4299.xml
<skill id="4262" levels="1" name="Holiday Wind Walk">
***** 4200-4299.XML
<skill id="4262" levels="2" name="Holiday Wind Walk">
*****

***** オリジナル4200-4299.xml
<skill id="4265" levels="1" name="Holiday Might">
***** 4200-4299.XML
<skill id="4265" levels="3" name="Holiday Might">
*****

***** オリジナル4200-4299.xml
<skill id="4266" levels="1" name="Holiday Shield">
***** 4200-4299.XML
<skill id="4266" levels="3" name="Holiday Shield">
*****

■クリスマス魔法が１つしかかからない
⇒hitTime に関する処理

△とりあえず、4200-4299.xml の hitTime= "500" を ０にする

○もしくは、L2NpcInstance.java 書き換え
public void makeSupportMagic(L2PcInstance player)

[変更前]
        for (L2HelperBuff helperBuffItem : HelperBuffTable.getInstance().getHelperBuffTable())
        {
           if( helperBuffItem.isMagicClassBuff() == player.isMageClass())
           {
              if(player_level>=helperBuffItem.getLowerLevel() && player_level<=helperBuffItem.getUpperLevel())
              {
                  skill = SkillTable.getInstance().getInfo(helperBuffItem.getSkillID(),helperBuffItem.getSkillLevel());
-                  if (skill.getSkillType() == SkillType.SUMMON)
-                      player.doCast(skill);
-                  else
-                      doCast(skill);
              }
           }
        }

[変更後]
        for (L2HelperBuff helperBuffItem : HelperBuffTable.getInstance().getHelperBuffTable())
        {
           if( helperBuffItem.isMagicClassBuff() == player.isMageClass())
           {
              if(player_level>=helperBuffItem.getLowerLevel() && player_level<=helperBuffItem.getUpperLevel())
              {
                  skill = SkillTable.getInstance().getInfo(helperBuffItem.getSkillID(),helperBuffItem.getSkillLevel());
+                  //XXX:[JOJO]
+            	  L2Character pc = skill.getSkillType() == SkillType.SUMMON ? player : this;
+            	  if (pc.isCastingNow())
+            	  {
+                	  long t = (pc.getCastEndTime() - GameTimeController.getGameTicks()) * GameTimeController.MILLIS_IN_TICK;
+                	  //player.sendMessage(pc.getName() + " is casting now. Time=" + t + " m-sec.");	//XXX:DEBUG
+            		  try { Thread.sleep(t); } catch (InterruptedException e) { }
+            	  }
+            	  pc.doCast(skill);
+                  //XXX:[/JOJO]
              }
           }
        }

■helper_buff_list テーブル
変更無し
