スクリプト

「スクリプト」の編集履歴(バックアップ)一覧に戻る

スクリプト - (2016/10/24 (月) 17:03:07) の編集履歴(バックアップ)


スクリプトはこちらのページにアップロード、説明、Tips等をお書きください。
希望するアップデートのスクリプトをアップロードしていただいてもOKですが、必ず採用するわけではないのでよろしくお願いします。
で・す・が
やはりこちらの作業無しで修正されている、アップデートされているファイルがあるなら利用することに基本的に前向きですw

こちらのリアル都合や力量の具合によりプレイヤーさんにスクリプト、修正などの協力を申し出ることがあります。
協力して頂けるととても助かります。

まさかのスクリプトまで、皆で作るラピスになります^^;

HSアップデート前のラピスのファイルはこちら
です。
パスワードは Lapis です。

現在のラピスのバージョンのServUOはこちら
です。
パスワードは同じく Lapis です。

これらファイルは適用しているバージョンを変更した際にリンク修正します。

現在の修正協力要請
様々なバグ除去w

釣り関連まとめ

生産関連修正まとめ

戦闘・報酬関連修正まとめ

Tips・アイテム関連修正まとめ

スキル関連修正まとめ

錬成関連修正まとめ

クエスト関連修正まとめ




ステータスウィンドウのFC表示不具合修正 修正済

「騎士道スキルが70.0未満」のときのみ最大4までとなり、それ以外は最大2までとなってしまっている。
ここは、「魔法スキルが70.0未満」の間違いです。
[Scripts\Misc\AOS.cs]
●276行目
 int max = from.Skills[SkillName.Chivalry].Value < 70.0 ? 4 : 2;
 ↓修正
 int max = from.Skills[SkillName.Magery].Value < 70.0 ? 4 : 2;
変化したときに、PDのSTATUSボタンを押さないと表示更新されないのは鹿さんと遊ぶときと同じようですが、FC=4になるのをローカルで確認しました。

10th Anniversary Sculpture(幸運壺)について

使用してもステータスウィンドウの幸運値が上昇しない不具合の修正

[Server\Mobile.cs]
●8452行目
 public virtual int LuckBonusSculpture { get { return 0; } } // ★行追加
 public virtual int LuckBonusFountain { get { return 0; } } // ★行追加

[Scripts\Mobiles\PlayerMobile.cs]
●3589行目
 public override int LuckBonusSculpture { get { return TenthAnniversarySculpture.GetLuckBonus(this); } } // ★行追加
 public override int LuckBonusFountain { get { return FountainOfFortune.GetLuckBonus(this); } } // ★行追加

[Server\Network\Packets.cs]
●3550行目
 m_Stream.Write((short)m.Luck); // Luck
 ↓変更
 m_Stream.Write((short)(m.Luck + m.LuckBonusSculpture + m.LuckBonusFountain)); // Luck
●3664行目
 m_Stream.Write((short)beheld.Luck); // Luck
 ↓変更
 m_Stream.Write((short)(beheld.Luck + beheld.LuckBonusSculpture + beheld.LuckBonusFountain)); // Luck
★注意★
Serverプロジェクト内ソースなので、反映にはCompile.WIN.batの実行かVisualStudioでのビルドが必要です。
また、ゲーム内では鹿さんと遊んぶときと同様に、自動では表示が更新されないため、PDのSTATUSボタンを押して最新状態に表示更新して下さい。

アカ歴による上昇値の追加(導入する場合)

[Scripts\Items\Artifacts\Decorative\TenthAnniversarySculpture.cs]
●2行目
 using Server.Accounting; // ★追加
 using Server.Engines.VeteranRewards; // ★追加
●新21行目
 private static readonly int LuckBonus = 200; // ★新規さん含めて底上げしたいときはこの値です
●新116行目
 // ★追加ここから
 private static int GetLuckExtend(Mobile from)
 {
   Account acct = from.Account as Account;
   if (acct == null) return 0;
 
   TimeSpan totalTime = (DateTime.UtcNow - acct.Created) + TimeSpan.FromDays(RewardSystem.RewardInterval.TotalDays * RewardSystem.StartingLevel);
 
   int luckExtend = (totalTime.Days / 30) * 50; // ★ここでアカ歴による上昇分を調整可能です
   if (luckExtend > 1000) luckExtend = 1000;
 
   return luckExtend;
 }
 // ★追加ここまで
●新134行目
 return LuckBonus + GetLuckExtend(from); // ★ + GetLuckExtend(from)を追加

★効果継続状態で別な壺を使うと、表示されるメッセージが変なのはServUO元々のようですw

ガーゴイル専用版のプリズムレンズがヒューマンやエルフでイヤリングとして装備できる不具合について 修正済

[Scripts\Items\Artifacts\Equipment\Glasses\GargishGlasses.cs]

以下の2行を追加します。
●8行目
 public override Race RequiredRace { get { return Race.Gargoyle; } } // ★追加
 public override bool CanBeWornByGargoyles { get { return true; } }  // ★追加
ローカルで試した際に、これを追加してもエルフで装備できてしまったので変だなと思ったのですが、GMキャラだと一時的に装備できてしまうのでしょうか。
いったん装備して、ステータスが変化するような別の装備を外したりすると、「プリズムレンズはもう着ていられません」と出て自動的に外されました。
上記の追加だけで、きちんとヒューマンやエルフの通常キャラが着用できなくなるかは未確認ですが、とりあえずガーゴイル専用の表記は付くようになりました。

ドーンのオルゴールが他人だと使えない

なぜかよくわからないけど内部的に2個存在する。
ラピスではどちらが採用されているかわからないので両方とも修正。
オルゴールを突っ込んだら取り外せない仕様のようなのでセキュリティ面は気にしなくてよさそう。

DawnsMusicBox

public override void OnDoubleClick(Mobile from)
{
  // Rev.1(Mod S) --------------------
  if (!this.IsChildOf(from.Backpack) && !this.IsLockedDown)
    from.SendLocalizedMessage(1061856); // You must have the item in your backpack or locked down in order to use it.
  else if (!this.IsLockedDown)
    from.SendLocalizedMessage(502436); // That is not accessible.
  else
  {
    from.CloseGump(typeof(DawnsMusicBoxGump));
    from.SendGump(new DawnsMusicBoxGump(this));
  }
  /*
  if (!this.IsChildOf(from.Backpack) && !this.IsLockedDown)
    from.SendLocalizedMessage(1061856); // You must have the item in your backpack or locked down in order to use it.
  else if (this.IsLockedDown && !this.HasAccces(from))
    from.SendLocalizedMessage(502436); // That is not accessible.
  else
  {
    from.CloseGump(typeof(DawnsMusicBoxGump));
    from.SendGump(new DawnsMusicBoxGump(this));
  }
  */
  // Rev.1(Mod E) --------------------
}

RewardVersionのDawnsMusicBox.cs

public override void OnDoubleClick(Mobile from)
{
  if (this.m_Tracks.Count < 1)
  {
    from.SendMessage("This music box is empty.");
  }
  // Rev.1(Del S) -------------------------
  //else if (this.IsOwner(from))
  //{
  // Rev.1(Del E) -------------------------
  if (!this.IsLockedDown)
    from.SendLocalizedMessage(502692); // This must be in a house and be locked down to work.
  else
  {
    if (from.HasGump(typeof(MusicGump)))
      from.CloseGump(typeof(MusicGump));
				
    from.SendGump(new MusicGump(this));
  }
  // Rev.1(Del S) -------------------------
  //}
  //else
  //{
  //    from.SendLocalizedMessage(502691); // You must be the owner to use this.
  //}
  // Rev.1(Del E) -------------------------
}

アイテムの置かれる位置がおかしいんだが?

置かれる位置がおかしいのはServUOのバグなんだけど、
コードにバグがあるからコメントアウトされてるのか不明。
コメントアウトにより小型テーブルにアイテム置くと妙に上に置かれたり、
本来積めるはずのアイテムが積めなかったりする。
旧ソースではコードが生きてます。

Item.cs

private Point3D FindDropPoint(Point3D p, Map map, int maxZ)
if (myTop != -255)
{
  int match = (1 << height) - 1;
  bool okay = false;

  for (int i = 0; i < 20; ++i)
  {
    if ((i + height) > 20)
    {
      match >>= 1;
    }

    okay = ((m_OpenSlots >> i) & match) == match;
                 
    if (okay)
    {
      z += i;
      break;
    }                   
  }
  if (!okay)
  {
    return Point3D.Zero;
  }
}
こいつがコメントアウトされてるのでコメントアウトをはずす。
また、旧ソースとあわせるため
if (myTop != -255)をコメントアウトする。
中括弧もね!