View Full Version: Tuto : Target

RunUO.FR Support > Tutorial en Français > Tuto : Target


Title: Tuto : Target
Description: par Elthan


crystal - June 22, 2003 10:17 AM (GMT)
Avant de lire ce Tuto assurer vous d'avoir des base en C# (savoir ce qu'est l'heritage de classe,ce qu'est un constructeur etc) il y a plein de site pour ca.

donc sous RunUo un Target est un objet (classe) derivé d'une classe principal nommé : Target
pour utiliser une classe Target il faut declarer : using Server.Targeting; au debut de votre fichier.


donc pour cree votre class il suffit de faire :
CODE
private class MonTarget : Target
{
}



pour faire le constructeur il suffit de regarder l'aide de RunUo ou on trouve :
QUOTE
(ctor) Target( int range, bool allowGround, TargetFlags flags )

donc le constructeur de notre target ressamblera a :
CODE
public MonTarget() :   base(10,true,TargetFlags.None)
{
}


ensuite pour effectuer un code au moment ou le joueur clic sur le target on utilise la methode OnTarget :

CODE
protected override void OnTarget( Mobile Pj, object o )
{
// le code
}

notre classe Target fini donne donc :
CODE
private class MonTarget : Target
{
public MonTarget() :   base(10,true,TargetFlags.None)
{
}
protected override void OnTarget( Mobile Pj, object o )
{
// le code
}
}

il suffit de cree un nouvel objet pour l'appeller. par example dans le OnDoubleClick d'un objet on aura :
CODE
public override void OnDoubleClick( Mobile Pj )
{
Pj.Target=new MonTarget();
}

PS : il existe d'autre class target (StaticTarget,LandTarget etc) mais celle la permet de tout faire.

Kaervek - November 12, 2003 03:50 PM (GMT)
En faisant ceci:

CODE
private class TargetMalediction003 : Target
{
public TargetMalediction003() :   base(1,true,TargetFlags.None)
{
}
protected override void OnTarget( Mobile from, object o )
{
TimerMalediction003 timer = new TimerMalediction003(from);
timer.Start();
from.BodyValue = 182;
from.HueMod = 2308;
from.Emote("*Se transforme en Poulet*");
from.Str -= 10;
from.Dex -= 10;
from.Int -= 10;
from.GuildTitle = from.Title;
from.Title = null;
from.NameMod = "Poulet";
from.PlaySound( 0x209 );
from.SendMessage(1161, "Vous devenez un ridicule Poulet !");
}
}


Ca me dit que Namespace elements cannot be explicitly declared as private, protected, or protected internal (à la ligne : private class TargetMalediction003 : Target)

Que faire contre ceci? :)



EDIT: SOLUTION: Remplacer "private class" par "public class"




Hosted for free by InvisionFree