Hello tlm!
Voilà, j'aimerais bien créer un pnj qui dit une phrase automatiquement quand un PJ approche à moins de 5 cases de lui.
Puis, il enregistre le fait que le PJ est déjà apparu pres de lui et ne lui reparle que si le PJ lui dit un mot clé. (Histoire de ne pas redire la meme chose tout le temps au joueur...;)).
Je me doute bien que pour vous ca doit etre hyper simple mais bon... Je débute et j'aurais pas mal besoin d'un ptit exemple comme ca pour adapter ensuite pour mes quetes ;)
Merci d'avance :)
tien tu peu te base sur se scrypt que j ai trouve sur le net: le mot cle c "bonjour" ici :)
// created on 18/11/2003 at 16:06
using System;
using System.Collections;
using Server;
using Server.Items;
using Server.Network;
namespace Server.Mobiles
{
public class Migel : BaseCreature
{
private Mobile m_player;
#region NPC look
[Constructable]
public Migel():base(AIType.AI_Melee, FightMode.None, 20, 1, 0.9, 0.9)
{
Name = "Migel";
Title = "";
SpeechHue = Utility.RandomDyedHue();
Hue = Utility.RandomSkinHue();
Body = 0x190;
CantWalk = true;
AddItem( new Server.Items.Boots( GetBootsHue() ) );
int hairHue = 38;
switch ( Utility.Random( 1 ) )
{
case 0: AddItem( new LongHair( hairHue ) ); break;
}
switch ( Utility.Random( 1 ) )
{
case 0: AddItem( new LongBeard( hairHue ) ); break;
}
PackGold( 1000, 1200 );
AddItem( new Server.Items.PlateChest() );
AddItem( new Server.Items.TricorneHat( GetTricorneHatHue() ) );
AddItem( new Server.Items.FancyShirt( GetFancyShirtHue() ) );
AddItem( new Server.Items.ShortPants( GetShortPantsHue() ) );
AddItem( new Server.Items.PlateGloves() );
AddItem( new Server.Items.PlateGorget() );
AddItem( new Server.Items.Dagger() );
}
#endregion NPC look
public virtual int GetBootsHue()
{
return 1623;
}
public virtual int GetTricorneHatHue()
{
return 339;
}
public virtual int GetFancyShirtHue()
{
return 19;
}
public virtual int GetShortPantsHue()
{
return 38;
}
public override bool HandlesOnSpeech( Mobile from )
{
if ( from.InRange( this.Location, 10 ) )
return true;
return base.HandlesOnSpeech( from );
}
public override void OnSpeech( SpeechEventArgs e )
{
base.OnSpeech( e );
Mobile from = e.Mobile;
if ( from.InRange( this, 4 ))
{
if (e.Speech.ToLower() == "bonjour" || e.Speech.ToLower() == "salut")
{
string message = "bonjour ! S il vous plaît vous devez m'aider";
this.Say( message );
}
if (e.Speech.ToLower() == "Comment?" || e.Speech.ToLower() == "en quoi?")
{
string message = "Vous devez m aider a tuer la bestia!";
this.Say( message );
}
if (e.Speech.ToLower() == "ok" || e.Speech.ToLower() == "je vais t aider" || e.Speech.ToLower() == "ok")
{
string message = "Bien ! la bête n'échappera plus a ma lame! Constatez que bestia est bien morte et rapporte moi sa tête";
this.Say( message );
}
}
}
public override bool OnDragDrop( Mobile from, Item dropped )
{
if ( dropped is LaBestiaHead)
{
this.Say("Merci pour m avoir aider a assassine la bestia je peinne a croire qu elle est finalement morte");
return true;
}
return false;
}
public Migel( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}
huhu merci !
c'est ce que je cherchais :P