using System;
using Server;
namespace Server.Items
{
public class TheDryadBow : Bow
{
public override int LabelNumber{ get{ return 1061090; } } // The Dryad Bow
public override int ArtifactRarity{ get{ return 11; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
private AosSkillBonuses m_AosSkillBonuses;
[CommandProperty( AccessLevel.GameMaster )]
public AosSkillBonuses SkillBonuses
{
get{ return m_AosSkillBonuses; }
set{}
}
private int m_Bonus;
private SkillName m_Skill;
private SkillMod m_SkillMod;
private static SkillName[] m_SkillsList = new SkillName[]
{
SkillName.Swords,
SkillName.Fencing,
SkillName.Macing,
SkillName.Archery,
SkillName.Wrestling,
SkillName.Parry,
SkillName.Tactics,
SkillName.Anatomy,
SkillName.Healing,
SkillName.Magery,
SkillName.Meditation,
SkillName.EvalInt,
SkillName.MagicResist,
SkillName.Chivalry,
SkillName.Focus,
SkillName.Necromancy,
SkillName.SpiritSpeak
};
[Constructable]
public TheDryadBow()
{
m_Bonus = Utility.RandomBool() ? 5 : 10;
m_Skill = m_SkillsList[Utility.Random(13)];
m_AosSkillBonuses = new AosSkillBonuses( this );
SkillBonuses.SetValues( 0, m_Skill, m_Bonus );
Hue = 0x47;
WeaponAttributes.SelfRepair = 5;
Attributes.WeaponSpeed = 50;
Attributes.WeaponDamage = 35;
WeaponAttributes.ResistPoisonBonus = 15;
}
public TheDryadBow( Serial serial ) : base( serial )
{
}
public override void GetProperties( ObjectPropertyList list )
{
base.GetProperties( list ); m_AosSkillBonuses.GetProperties( list );
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}
In pratica cercavo di implementarmi in locale il dryad bow.
Funziona tutto ... o quasi, il problema è che lo skill bonus c'è ma non si vede.
Dalle props in game risulta settata correttamente la variabile SkillBonus solo che se si passa col mouse sopra il dryad non compare nella lista della props e oltre tutto se equippato non si vede il messaggio:
Your skill xxxx in increased by +5/10
Nonostante sia effettivamente aumentata.
Per il prob della props non mostrata ho fatto l'override dal metodo
GetProperties guardando anche come era statto fatto sul base armour ma lo stesso non viene mostrato.
Qualcuno riesce ad illuminarmi ?
using Server;
namespace Server.Items
{
public class TheDryadBow : Bow
{
public override int LabelNumber{ get{ return 1061090; } } // The Dryad Bow
public override int ArtifactRarity{ get{ return 11; } }
public override int InitMinHits{ get{ return 255; } }
public override int InitMaxHits{ get{ return 255; } }
private AosSkillBonuses m_AosSkillBonuses;
[CommandProperty( AccessLevel.GameMaster )]
public AosSkillBonuses SkillBonuses
{
get{ return m_AosSkillBonuses; }
set{}
}
private int m_Bonus;
private SkillName m_Skill;
private SkillMod m_SkillMod;
private static SkillName[] m_SkillsList = new SkillName[]
{
SkillName.Swords,
SkillName.Fencing,
SkillName.Macing,
SkillName.Archery,
SkillName.Wrestling,
SkillName.Parry,
SkillName.Tactics,
SkillName.Anatomy,
SkillName.Healing,
SkillName.Magery,
SkillName.Meditation,
SkillName.EvalInt,
SkillName.MagicResist,
SkillName.Chivalry,
SkillName.Focus,
SkillName.Necromancy,
SkillName.SpiritSpeak
};
[Constructable]
public TheDryadBow()
{
m_Bonus = Utility.RandomBool() ? 5 : 10;
m_Skill = m_SkillsList[Utility.Random(13)];
m_AosSkillBonuses = new AosSkillBonuses( this );
SkillBonuses.SetValues( 0, m_Skill, m_Bonus );
Hue = 0x47;
WeaponAttributes.SelfRepair = 5;
Attributes.WeaponSpeed = 50;
Attributes.WeaponDamage = 35;
WeaponAttributes.ResistPoisonBonus = 15;
}
public TheDryadBow( Serial serial ) : base( serial )
{
}
public override void GetProperties( ObjectPropertyList list )
{
base.GetProperties( list ); m_AosSkillBonuses.GetProperties( list );
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 );
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}
In pratica cercavo di implementarmi in locale il dryad bow.
Funziona tutto ... o quasi, il problema è che lo skill bonus c'è ma non si vede.
Dalle props in game risulta settata correttamente la variabile SkillBonus solo che se si passa col mouse sopra il dryad non compare nella lista della props e oltre tutto se equippato non si vede il messaggio:
Your skill xxxx in increased by +5/10
Nonostante sia effettivamente aumentata.
Per il prob della props non mostrata ho fatto l'override dal metodo
GetProperties guardando anche come era statto fatto sul base armour ma lo stesso non viene mostrato.
Qualcuno riesce ad illuminarmi ?
Commenta