Bonjour, savez vous pourquoi une fois IG lorsque j’exécute le reply du npc ayant pour action le code MercenaryReply j'obtient ceci : https://www.noelshack.com/2017-22-1496070299-capture.jpg
alors qu'en vraie j'obtiens ni alignement, ni titre et les conditions sur les tokens ne fontionnent pas. Voici les codes :
MercenaryReply :
[Discriminator("Mercenaire", typeof(NpcReply), new System.Type[]
{
typeof(NpcReplyRecord)
})]
public class MercenaryReply : NpcReply
{
private const uint _price = 50;
public MercenaryReply(NpcReplyRecord record) : base(record) { }
public override bool Execute(Npc npc, Character character)
{
bool result = true;
BasePlayerItem tokens = character.Inventory.TryGetItem(7919);
if (character.AlignmentSide != AlignmentSideEnum.ALIGNMENT_MERCENARY)
{
if (tokens != null && tokens.Stack >= _price)
{
BasePlayerItem shield = character.Inventory.TryGetItem(CharacterInventoryPositionEnum.ACCESSORY_POSITION_SHIELD);
if (shield != null)
{
character.Inventory.MoveItem(shield, CharacterInventoryPositionEnum.INVENTORY_POSITION_NOT_EQUIPED);
}
character.Inventory.RemoveItem(tokens, 50);
character.ChangeAlignementSide(AlignmentSideEnum.ALIGNMENT_MERCENARY);
character.SendServerMessage("Vous êtes désormais <b>Mercenaire.<b>");
result = true;
}
else
{
character.SendServerMessage("Vous n'avez pas assez de jetons.");
result = false;
}
}
else
{
character.SendServerMessage("Vous êtes déja mercenaire.");
result = false;
}
return result;
}
}
}
GiveTitleReply :
[Discriminator("GiveTitle", typeof(NpcReply), new Type[] { typeof(NpcReplyRecord) })]
public class GiveTitleReply : NpcReply
{
public short TitleId
{
get { return Record.GetParameter<short>(0u); }
set { Record.SetParameter<short>(0u, value); }
}
public GiveTitleReply(NpcReplyRecord record): base(record) { }
public override bool Execute(Npc npc, Character character)
{
bool result;
if (!base.Execute(npc, character))
{
result = false;
}
else
{
character.AddTitle(this.TitleId);
result = true;
}
return result;
}
}
Le problème provient du BasePlayerItem tokens = character.Inventory.TryGetItem(7919); tokens est toujours null, la propriété character.Inventory.Tokens également si je remplace.
Problème résolu , merci à SkezzR pour son aide.