View Full Version: Probleme

RunUO.FR Support > Probleme de script > Probleme


Title: Probleme


Cooper - August 8, 2004 09:09 PM (GMT)
Voila j'ai un probleme avec le script au niveau de
CODE
public override void OnEquip( Mobile from )


Voila le script en entier si quelqun pourrait m'aider a savoir ce que je dois modifier :)

CODE
using System;
using Server.Network;
using Server.Items;
using Server.Mobiles;
using Server.Gumps;
using Server.Misc;

namespace Server.Items
{
public class AnneauDuVampire : Item
{
[Constructable]
public AnneauDuVampire() : base(GoldRing )
{

LootType = LootType.Newbied;
Name = "Anneau Du Vampire";  

}

public override void OnEquip( Mobile from )
{
 
  TimerMalediction002 timer = new TimerMalediction002(from);
  timer.Start();
  from.SendMessage (1161, "Vous mettez l'anneau, de la chaleur se répands a la surface de votre peau ");  
return true;
}


public AnneauDuVampire( 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();
}  
}

public class TimerMalediction002 : Timer
{
private Mobile m;
private int t_Nbr2;


public TimerMalediction002(Mobile from ) : base
( TimeSpan.FromMinutes (60.0), TimeSpan.FromMinutes (60.0) )
//( TimeSpan.FromSeconds (10.0), TimeSpan.FromSeconds (10.0) )
{
m = from;
}

protected override void OnTick()
{

t_Nbr2++;
if (t_Nbr2 == 1)
{
m.Hue = 0x3EA;
m.Emote("*Sa peau rosit*");
m.Title = ",Humain";
m.PlaySound( 0x209 );
m.SendMessage(1161, "l'anneau se serre autour de votre doigt, il deviens impossible a enlever");
this.Movable = false;
}
else if (t_Nbr2 == 2)
{
m.Hue = 0x3EA;
m.Emote("*Devient de plus en plus livide*");
m.Title = ",Vampire";
m.PlaySound( 0x209 );
m.SendMessage(1161, "Votre peau redeviens peu a peu glacee");
}
else if (t_Nbr2 == 3)
{
this.Movable = true;
m.SendMessage(1161, "l'anneau magique se relache autour de votre doigt");
}

}


}
}

slade15 - August 8, 2004 10:00 PM (GMT)
on vois ici
CODE
public override void OnEquip( Mobile from )


tu a mis void

cela signifie qu'il retourne rien

et on vois que tu fait
CODE
return true;


forme corecte :

CODE
public override bool OnEquip(Mobile from)

slade15 - August 8, 2004 10:03 PM (GMT)
je voulais just ajouter quelque chose , quand vous avez des probleme de compilation affichez ici aussi le message d'erreur ca nous aide a trouver plus facilement ce qui ne vas pas

Cooper - August 8, 2004 10:20 PM (GMT)
Ha vi desoler j'avai oublier :lol:

Cooper - August 8, 2004 10:30 PM (GMT)
Apparemment y a encore un probleme a ce niveau :blink: genre: Server Item .goldrine'denotes a class where a variable was expepted

CODE
public AnneauDuVampire() : base(GoldRing )

contain a defointition
encore un prob :Server Item.malediction002' does not contain a definitition for Movable

CODE
this.Movable = false;


Encore la :unsure:

CODE
this.Movable = true;
il y a encore un prob au niveau du Movable et il me parle de Variable si on pourrait m'aider a corriger *Total debutant*

Enola - August 9, 2004 09:06 AM (GMT)
c'est du au fait que le "this" reference le timer et pas l'item

pour corriger ca tu devrai passer ton item en parametre au timer
CODE

TimerMalediction002 timer = new TimerMalediction002(from, this);


ainsi dans ton timer, tu pourra referencer l'item sans probleme

slade15 - August 9, 2004 09:36 AM (GMT)
solution sans avoir testé

CODE
using System;
using Server.Network;
using Server.Items;
using Server.Mobiles;
using Server.Gumps;
using Server.Misc;

namespace Server.Items
{
public class AnneauDuVampire : Item
{
[Constructable]
public AnneauDuVampire() : base(GoldRing )
{

LootType = LootType.Newbied;
Name = "Anneau Du Vampire";  

}

public override bool OnEquip( Mobile from )
{


 TimerMalediction002 timer = new TimerMalediction002(from, this);
 timer.Start();
 from.SendMessage (1161, "Vous mettez l'anneau, de la chaleur se répands a la surface de votre peau ");  
return true;
}


public AnneauDuVampire( 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();
}  
}

public class TimerMalediction002 : Timer
{
private Mobile m;
private int t_Nbr2;
private AnneauDuVampire  i_anneau;


public TimerMalediction002(Mobile from , AnneauDuVampire anneau) : base
( TimeSpan.FromMinutes (60.0), TimeSpan.FromMinutes (60.0) )
//( TimeSpan.FromSeconds (10.0), TimeSpan.FromSeconds (10.0) )
{
m = from;
i_anneau = anneau;
}

protected override void OnTick()
{

t_Nbr2++;
if (t_Nbr2 == 1)
{
m.Hue = 0x3EA;
m.Emote("*Sa peau rosit*");
m.Title = ",Humain";
m.PlaySound( 0x209 );
m.SendMessage(1161, "l'anneau se serre autour de votre doigt, il deviens impossible a enlever");
i_anneau.Movable = false;
}
else if (t_Nbr2 == 2)
{
m.Hue = 0x3EA;
m.Emote("*Devient de plus en plus livide*");
m.Title = ",Vampire";
m.PlaySound( 0x209 );
m.SendMessage(1161, "Votre peau redeviens peu a peu glacee");
}
else if (t_Nbr2 == 3)
{
i_anneau.Movable = true;
m.SendMessage(1161, "l'anneau magique se relache autour de votre doigt");
}

}


}
}


pour ton premiere erreur tu essayer de donner a ton anneaux le skin de GoldRing ? si c'est le cas dans le base() tu doit mettre le id du GoldRing et pas ecrire GoldRing

et donc
CODE
public AnneauDuVampire() : base(4234)

Cooper - August 9, 2004 10:45 AM (GMT)
Enfin ca yest il marche!!! :D Je vous remercie tous :)

Cooper - August 9, 2004 10:47 AM (GMT)
Et la pôisse revien encore..... Il marche mais le probleme ces que l'anneau on peu pas le mettre...... :(

slade15 - August 9, 2004 12:30 PM (GMT)
il met quoi quand tu essaye de le mettre ?

cela concerne pas ce prob la mais je constate que dans ton OnTick()
tu a jamais de Stop

et d'appres ce que j'ai compris du scripte , je croi que tu devrai ajouter dans le OnTick()

else if (t_Nbr2 == 4 )
{
Stop();
}

Cooper - August 9, 2004 12:50 PM (GMT)
Justement ca me dis rien je deplace l'anneau vers la main met ca fais rien il veu pas se mettre il retourne direct dans le sac je vais essayer ce que tu ma dis esperant que ca marche :rolleyes:

Cooper - August 9, 2004 12:57 PM (GMT)
J'ai rajouter ce que tu ma dit le script est toujour bon mais L'anneau se met toujour pas



CODE
using System;
using Server.Network;
using Server.Items;
using Server.Mobiles;
using Server.Gumps;
using Server.Misc;

namespace Server.Items
{
public class AnneauDuVampire : Item
{
[Constructable]
public AnneauDuVampire() : base(4234 )
{

LootType = LootType.Newbied;
Name = "Anneau Du Vampire";  

}

public override bool OnEquip( Mobile from )
{


TimerMalediction002 timer = new TimerMalediction002(from, this);
timer.Start();
from.SendMessage (1161, "Vous mettez l'anneau, de la chaleur se répands a la surface de votre peau ");  
return true;
}


public AnneauDuVampire( 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();
}  
}

public class TimerMalediction002 : Timer
{
private Mobile m;
private int t_Nbr2;
private AnneauDuVampire  i_anneau;


public TimerMalediction002(Mobile from , AnneauDuVampire anneau) : base
( TimeSpan.FromMinutes (60.0), TimeSpan.FromMinutes (60.0) )
//( TimeSpan.FromSeconds (10.0), TimeSpan.FromSeconds (10.0) )
{
m = from;
i_anneau = anneau;
}

protected override void OnTick()
{

t_Nbr2++;
if (t_Nbr2 == 1)
{
m.Hue = 0x3EA;
m.Emote("*Sa peau rosit*");
m.Title = ",Humain";
m.PlaySound( 0x209 );
m.SendMessage(1161, "l'anneau se serre autour de votre doigt, il deviens impossible a enlever");
i_anneau.Movable = false;
}
else if (t_Nbr2 == 2)
{
m.Hue = 0x3EA;
m.Emote("*Devient de plus en plus livide*");
m.Title = ",Vampire";
m.PlaySound( 0x209 );
m.SendMessage(1161, "Votre peau redeviens peu a peu glacee");
}
else if (t_Nbr2 == 3)
{
i_anneau.Movable = true;
m.SendMessage(1161, "l'anneau magique se relache autour de votre doigt");
}
else if (t_Nbr2 == 4 )
{
Stop();
}

}


}
}


Pour le moment mon script donne ca :)

Didi - August 9, 2004 02:49 PM (GMT)
CODE
using System;
using Server.Network;
using Server.Items;
using Server.Mobiles;
using Server.Gumps;
using Server.Misc;

namespace Server.Items
{
public class AnneauDuVampire : GoldRing
{
[Constructable]
public AnneauDuVampire() : base()
{

LootType = LootType.Newbied;
Name = "Anneau Du Vampire";  

}

public override bool OnEquip( Mobile from )
{


TimerMalediction002 timer = new TimerMalediction002(from, this);
timer.Start();
from.SendMessage (1161, "Vous mettez l'anneau, de la chaleur se répands a la surface de votre peau ");  
return true;
}


public AnneauDuVampire( 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();
}  
}

public class TimerMalediction002 : Timer
{
private Mobile m;
private int t_Nbr2;
private AnneauDuVampire  i_anneau;


public TimerMalediction002(Mobile from , AnneauDuVampire anneau) : base
( TimeSpan.FromMinutes (60.0), TimeSpan.FromMinutes (60.0) )
//( TimeSpan.FromSeconds (10.0), TimeSpan.FromSeconds (10.0) )
{
m = from;
i_anneau = anneau;
}

protected override void OnTick()
{

t_Nbr2++;
if (t_Nbr2 == 1)
{
m.Hue = 0x3EA;
m.Emote("*Sa peau rosit*");
m.Title = ",Humain";
m.PlaySound( 0x209 );
m.SendMessage(1161, "l'anneau se serre autour de votre doigt, il deviens impossible a enlever");
i_anneau.Movable = false;
}
else if (t_Nbr2 == 2)
{
m.Hue = 0x3EA;
m.Emote("*Devient de plus en plus livide*");
m.Title = ",Vampire";
m.PlaySound( 0x209 );
m.SendMessage(1161, "Votre peau redeviens peu a peu glacee");
}
else if (t_Nbr2 == 3)
{
i_anneau.Movable = true;
m.SendMessage(1161, "l'anneau magique se relache autour de votre doigt");
}
else if (t_Nbr2 == 4 )
{
Stop();
}

}


}
}

Cooper - August 9, 2004 03:36 PM (GMT)
Merci beaucoup ca marche enfin! lol bon ben je vous previen pour mon deuxieme script :lol:




Hosted for free by InvisionFree