Tips20


既にプレイヤーに出回っているアイテムのパラメータを修正、スキルキャップの変更など(Deserialize利用)

  • カテゴリー: スクリプト
  • 重要性: 普通
  • 投稿日: 2005-08-04 (木) 22:29:05

メッセージ

自作のアーティファクトを導入したは良いが、後から考えてみると強すぎてバランスを壊してしまう。でも削除するのはプレイヤーに悪い。 途中でステータスやスキルキャップを変更したくなったけど、プレイヤー一人一人修正しなくてはならない。 そんなことでお困りになったことはありませんか? 問題のアイテムを削除してプレイヤーに手作業で再配布したり、一人一人修正してまわるなんてもう古い! これからはDeserializeを利用して再起動一発で全部修正しちゃいましょう!

Deserializeとはなんぞやという人はTips5を読んでください。

Deserializeはデータのロードをするメソッドですが、ロードした後にデータを修正することも出来ます。

スキルキャップの変更

Scripts\Mobiles\PlayerMobile.cs Deserializeの一番最後の部分に

SkillsCap = 700;
StatCap = 225;

のように追加で再起動時に変更されます。

Skills[SkillName.MagicResist].Value = 100.0;
Skills[SkillName.MagicResist].Cap = 100.0;

のようにスキル値やスキル上限など、キャラクターに存在するパラメータなら変更できます。

アイテムのパラメータ変更

とりあえず分かり易そうなScripts\Items\Wands\BaseWand.csで

#code(csharp){{
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );

int version = reader.ReadInt();

switch ( version )
{
case 0:
{
m_WandEffect = (WandEffect)reader.ReadInt();
m_Charges = (int)reader.ReadInt();

break;
}
}
//ここから追加
if ( m_Charges >= 100 )
m_Charges = 100;//もしチャージ数が100以上ならば100
else if ( m_Charges < 5 );
++m_Charges; //もしチャージ数が5未満ならば1増加
}
}} このように条件で変更することも出来ます。



メニュー

オリジナル

T2A

  • InPorYelm?

UOR+T2A

AOS

  • なし

UOML

 

  • counter: 580
  • today: 1
  • yesterday: 0
  • online: 1