View Full Version: Gate de classe

RunUO.FR Support > System > Gate de classe


Title: Gate de classe


Zenryl - September 5, 2004 02:32 PM (GMT)
CODE

using System;
using Server.Gumps;

namespace Server.Items
{
public class GateAssassin : Item
{
 [Constructable]
 public GateAssassin() : base( 0xF6C )
 {
  Movable = false;
  Name = "Assassin";
 }

 public GateAssassin( Serial serial ) : base( serial )
 {
 }

 public override bool OnMoveOver( Mobile m )
 {
  if (m.Map.CanFit( m.Location, 16, false, false ) )
  {
   m.Skills[SkillName.Alchemy].Cap = 75;
   m.Skills[SkillName.Anatomy].Cap = 100;
   m.Skills[SkillName.AnimalLore].Cap = 50;
   m.Skills[SkillName.AnimalTaming].Cap = 50;
   m.Skills[SkillName.Archery].Cap = 75;
   m.Skills[SkillName.ArmsLore].Cap = 50;
   m.Skills[SkillName.Begging].Cap = 50;
   m.Skills[SkillName.Blacksmith].Cap = 50;
   m.Skills[SkillName.Camping].Cap = 50;
   m.Skills[SkillName.Carpentry].Cap = 50;
   m.Skills[SkillName.Cartography].Cap = 50;
   m.Skills[SkillName.Chivalry].Cap = 50;
   m.Skills[SkillName.Cooking].Cap = 50;
   m.Skills[SkillName.DetectHidden].Cap = 50;
   m.Skills[SkillName.Discordance].Cap = 50;
   m.Skills[SkillName.EvalInt].Cap = 50;
   m.Skills[SkillName.Fencing].Cap = 125;
   m.Skills[SkillName.Fletching].Cap = 50;
   m.Skills[SkillName.Fishing].Cap = 50;
   m.Skills[SkillName.Focus].Cap = 100;
   m.Skills[SkillName.Forensics].Cap = 50;
   m.Skills[SkillName.Healing].Cap = 75;
   m.Skills[SkillName.Hiding].Cap = 50;
   m.Skills[SkillName.Herding].Cap = 50;
   m.Skills[SkillName.Inscribe].Cap = 50;
   m.Skills[SkillName.Lockpicking].Cap = 100;
   m.Skills[SkillName.Lumberjacking].Cap = 50;
   m.Skills[SkillName.ItemID].Cap = 50;
   m.Skills[SkillName.Macing].Cap = 50;
   m.Skills[SkillName.Magery].Cap = 50;
   m.Skills[SkillName.MagicResist].Cap = 100;
   m.Skills[SkillName.Meditation].Cap = 50;
   m.Skills[SkillName.Mining].Cap = 50;
   m.Skills[SkillName.Musicianship].Cap = 50;
   m.Skills[SkillName.Necromancy].Cap = 50;
   m.Skills[SkillName.Parry].Cap = 100;
   m.Skills[SkillName.Peacemaking].Cap = 50;
   m.Skills[SkillName.Poisoning].Cap = 125;
   m.Skills[SkillName.Provocation].Cap = 50;
   m.Skills[SkillName.RemoveTrap].Cap = 50;
   m.Skills[SkillName.Snooping].Cap = 50;
   m.Skills[SkillName.SpiritSpeak].Cap = 50;
   m.Skills[SkillName.Stealing].Cap = 100;
   m.Skills[SkillName.Stealth].Cap = 100;
   m.Skills[SkillName.Swords].Cap = 125;
   m.Skills[SkillName.Tactics].Cap = 100;
   m.Skills[SkillName.Tailoring].Cap = 50;
   m.Skills[SkillName.TasteID].Cap = 50;
   m.Skills[SkillName.Tracking].Cap = 100;
   m.Skills[SkillName.Tinkering].Cap = 50;
   m.Skills[SkillName.Veterinary].Cap = 50;
   m.Skills[SkillName.Wrestling].Cap = 125;
   
   m.RawStr = 50;
   m.RawDex = 50;
   m.RawInt = 50;
    return true;
  }
                       else
                       {
                        return false;
                       }
 }

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


Voila il suffit juste ensuite de rajouter une commande pour par exemple teleporter le joueur vers une zone choisi etc... le plus long ça été de trouver le nom de toutes les skills :P

Nezumi - September 5, 2004 08:56 PM (GMT)
Sans te contrarié, je crois que c'est plutôt "Assassin".
Je te suggère de faire une enum pour tes classes égualement, ça peu servir pour tester la classe d'un perso par la suite ;)

sinon c'est pas mal pour un premier submit ^^

Zenryl - September 6, 2004 04:04 PM (GMT)
Bon voila je vais joué mes incultes comme ça j'apprendrai surement quelque chose :D.

Voila je vois comment faire un enum, mais je comprend pas bien à quoi ça va me servir la concretement. Bref un petit cours sur: "de l'utilité de l'enum"

Ps: correction de l'orthographe au passage :P

Sibelle - September 12, 2004 06:52 PM (GMT)
petite question , en plus des nouvelle skill cap , est-ce possible déditer le stats cap a partir de ton systeme de gate ?

Example si je veux que mes guerrier puisse monter plus haut en str que mes mages , je sais que cest fesable dans le playermobile mais sa sauverais du temps avec ton systeme de gate si cest possible :P

Zenryl - September 12, 2004 08:06 PM (GMT)
Voila une premiere amelioration, j'vais essayer de faire encore quelque truc.

CODE

using System;
using Server.Gumps;

namespace Server.Items
{
public class GateAssassin : Item
{
 [Constructable]
 public GateAssassin() : base( 0xF6C )
 {
  Movable = false;
  Name = "Assassin";
 }

 public GateAssassin( Serial serial ) : base( serial )
 {
 }

 public override bool OnMoveOver( Mobile m )
 {
  if (m.Map.CanFit( m.Location, 16, false, false ) )
  {
   //On definie le skill cap
   m.Skills[SkillName.Alchemy].Cap = 75;
   m.Skills[SkillName.Anatomy].Cap = 100;
   m.Skills[SkillName.AnimalLore].Cap = 50;
   m.Skills[SkillName.AnimalTaming].Cap = 50;
   m.Skills[SkillName.Archery].Cap = 75;
   m.Skills[SkillName.ArmsLore].Cap = 50;
   m.Skills[SkillName.Begging].Cap = 50;
   m.Skills[SkillName.Blacksmith].Cap = 50;
   m.Skills[SkillName.Camping].Cap = 50;
   m.Skills[SkillName.Carpentry].Cap = 50;
   m.Skills[SkillName.Cartography].Cap = 50;
   m.Skills[SkillName.Chivalry].Cap = 50;
   m.Skills[SkillName.Cooking].Cap = 50;
   m.Skills[SkillName.DetectHidden].Cap = 50;
   m.Skills[SkillName.Discordance].Cap = 50;
   m.Skills[SkillName.EvalInt].Cap = 50;
   m.Skills[SkillName.Fencing].Cap = 125;
   m.Skills[SkillName.Fletching].Cap = 50;
   m.Skills[SkillName.Fishing].Cap = 50;
   m.Skills[SkillName.Focus].Cap = 100;
   m.Skills[SkillName.Forensics].Cap = 50;
   m.Skills[SkillName.Healing].Cap = 75;
   m.Skills[SkillName.Hiding].Cap = 50;
   m.Skills[SkillName.Herding].Cap = 50;
   m.Skills[SkillName.Inscribe].Cap = 50;
   m.Skills[SkillName.Lockpicking].Cap = 100;
   m.Skills[SkillName.Lumberjacking].Cap = 50;
   m.Skills[SkillName.ItemID].Cap = 50;
   m.Skills[SkillName.Macing].Cap = 50;
   m.Skills[SkillName.Magery].Cap = 50;
   m.Skills[SkillName.MagicResist].Cap = 100;
   m.Skills[SkillName.Meditation].Cap = 50;
   m.Skills[SkillName.Mining].Cap = 50;
   m.Skills[SkillName.Musicianship].Cap = 50;
   m.Skills[SkillName.Necromancy].Cap = 50;
   m.Skills[SkillName.Parry].Cap = 100;
   m.Skills[SkillName.Peacemaking].Cap = 50;
   m.Skills[SkillName.Poisoning].Cap = 125;
   m.Skills[SkillName.Provocation].Cap = 50;
   m.Skills[SkillName.RemoveTrap].Cap = 50;
   m.Skills[SkillName.Snooping].Cap = 50;
   m.Skills[SkillName.SpiritSpeak].Cap = 50;
   m.Skills[SkillName.Stealing].Cap = 100;
   m.Skills[SkillName.Stealth].Cap = 100;
   m.Skills[SkillName.Swords].Cap = 125;
   m.Skills[SkillName.Tactics].Cap = 100;
   m.Skills[SkillName.Tailoring].Cap = 50;
   m.Skills[SkillName.TasteID].Cap = 50;
   m.Skills[SkillName.Tracking].Cap = 100;
   m.Skills[SkillName.Tinkering].Cap = 50;
   m.Skills[SkillName.Veterinary].Cap = 50;
   m.Skills[SkillName.Wrestling].Cap = 125;
   
   //on remet toutes les skills à 0
   
   m.Skills[SkillName.Alchemy].Base = 0;
   m.Skills[SkillName.Anatomy].Base = 0;
   m.Skills[SkillName.AnimalLore].Base = 0;
   m.Skills[SkillName.AnimalTaming].Base = 0;
   m.Skills[SkillName.Archery].Base = 0;
   m.Skills[SkillName.ArmsLore].Base = 0;
   m.Skills[SkillName.Begging].Base = 0;
   m.Skills[SkillName.Blacksmith].Base = 0;
   m.Skills[SkillName.Camping].Base = 0;
   m.Skills[SkillName.Carpentry].Base = 0;
   m.Skills[SkillName.Cartography].Base = 0;
   m.Skills[SkillName.Chivalry].Base = 0;
   m.Skills[SkillName.Cooking].Base = 0;
   m.Skills[SkillName.DetectHidden].Base = 0;
   m.Skills[SkillName.Discordance].Base = 0;
   m.Skills[SkillName.EvalInt].Base = 0;
   m.Skills[SkillName.Fencing].Base = 0;
   m.Skills[SkillName.Fletching].Base = 0;
   m.Skills[SkillName.Fishing].Base = 0;
   m.Skills[SkillName.Focus].Base = 0;
   m.Skills[SkillName.Forensics].Base = 0;
   m.Skills[SkillName.Healing].Base = 0;
   m.Skills[SkillName.Hiding].Base = 0;
   m.Skills[SkillName.Herding].Base = 0;
   m.Skills[SkillName.Inscribe].Base = 0;
   m.Skills[SkillName.Lockpicking].Base = 0;
   m.Skills[SkillName.Lumberjacking].Base = 0;
   m.Skills[SkillName.ItemID].Base = 0;
   m.Skills[SkillName.Macing].Base = 0;
   m.Skills[SkillName.Magery].Base = 0;
   m.Skills[SkillName.MagicResist].Base = 0;
   m.Skills[SkillName.Meditation].Base = 0;
   m.Skills[SkillName.Mining].Base = 0;
   m.Skills[SkillName.Musicianship].Base = 0;
   m.Skills[SkillName.Necromancy].Base = 0;
   m.Skills[SkillName.Parry].Base = 0;
   m.Skills[SkillName.Peacemaking].Base = 0;
   m.Skills[SkillName.Poisoning].Base = 0;
   m.Skills[SkillName.Provocation].Base = 0;
   m.Skills[SkillName.RemoveTrap].Base = 0;
   m.Skills[SkillName.Snooping].Base = 0;
   m.Skills[SkillName.SpiritSpeak].Base = 0;
   m.Skills[SkillName.Stealing].Base = 0;
   m.Skills[SkillName.Stealth].Base = 0;
   m.Skills[SkillName.Swords].Base = 0;
   m.Skills[SkillName.Tactics].Base = 0;
   m.Skills[SkillName.Tailoring].Base = 0;
   m.Skills[SkillName.TasteID].Base = 0;
   m.Skills[SkillName.Tracking].Base = 0;
   m.Skills[SkillName.Tinkering].Base = 0;
   m.Skills[SkillName.Veterinary].Base = 0;
   m.Skills[SkillName.Wrestling].Base = 0;
   
   //les carc de base
   m.RawStr = 50;
   m.RawDex = 50;
   m.RawInt = 50;
   
        return true;
  }
                       else
                       {
                        return false;
                       }
 }

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

Injall - September 13, 2004 08:27 AM (GMT)
tu peux remplacer
CODE

//on remet toutes les skills à 0
 
  m.Skills[SkillName.Alchemy].Base = 0;
  m.Skills[SkillName.Anatomy].Base = 0;
  m.Skills[SkillName.AnimalLore].Base = 0;
  m.Skills[SkillName.AnimalTaming].Base = 0;
  m.Skills[SkillName.Archery].Base = 0;
  m.Skills[SkillName.ArmsLore].Base = 0;
  m.Skills[SkillName.Begging].Base = 0;
  m.Skills[SkillName.Blacksmith].Base = 0;
  m.Skills[SkillName.Camping].Base = 0;
  m.Skills[SkillName.Carpentry].Base = 0;
  m.Skills[SkillName.Cartography].Base = 0;
  m.Skills[SkillName.Chivalry].Base = 0;
  m.Skills[SkillName.Cooking].Base = 0;
  m.Skills[SkillName.DetectHidden].Base = 0;
  m.Skills[SkillName.Discordance].Base = 0;
  m.Skills[SkillName.EvalInt].Base = 0;
  m.Skills[SkillName.Fencing].Base = 0;
  m.Skills[SkillName.Fletching].Base = 0;
  m.Skills[SkillName.Fishing].Base = 0;
  m.Skills[SkillName.Focus].Base = 0;
  m.Skills[SkillName.Forensics].Base = 0;
  m.Skills[SkillName.Healing].Base = 0;
  m.Skills[SkillName.Hiding].Base = 0;
  m.Skills[SkillName.Herding].Base = 0;
  m.Skills[SkillName.Inscribe].Base = 0;
  m.Skills[SkillName.Lockpicking].Base = 0;
  m.Skills[SkillName.Lumberjacking].Base = 0;
  m.Skills[SkillName.ItemID].Base = 0;
  m.Skills[SkillName.Macing].Base = 0;
  m.Skills[SkillName.Magery].Base = 0;
  m.Skills[SkillName.MagicResist].Base = 0;
  m.Skills[SkillName.Meditation].Base = 0;
  m.Skills[SkillName.Mining].Base = 0;
  m.Skills[SkillName.Musicianship].Base = 0;
  m.Skills[SkillName.Necromancy].Base = 0;
  m.Skills[SkillName.Parry].Base = 0;
  m.Skills[SkillName.Peacemaking].Base = 0;
  m.Skills[SkillName.Poisoning].Base = 0;
  m.Skills[SkillName.Provocation].Base = 0;
  m.Skills[SkillName.RemoveTrap].Base = 0;
  m.Skills[SkillName.Snooping].Base = 0;
  m.Skills[SkillName.SpiritSpeak].Base = 0;
  m.Skills[SkillName.Stealing].Base = 0;
  m.Skills[SkillName.Stealth].Base = 0;
  m.Skills[SkillName.Swords].Base = 0;
  m.Skills[SkillName.Tactics].Base = 0;
  m.Skills[SkillName.Tailoring].Base = 0;
  m.Skills[SkillName.TasteID].Base = 0;
  m.Skills[SkillName.Tracking].Base = 0;
  m.Skills[SkillName.Tinkering].Base = 0;
  m.Skills[SkillName.Veterinary].Base = 0;
  m.Skills[SkillName.Wrestling].Base = 0;

par
CODE

int i = 0;
   
while (i < 52)
{
m.Skills[i].Base = 0; //Reset ALL other skills
i++;
}


:D

Dihel - September 13, 2004 10:02 AM (GMT)
ou encore
CODE
for(int i = 0;i<m.Skills.length;m.Skills[i++].base = 0);

Zenryl - September 13, 2004 05:27 PM (GMT)
Effectivement c'est moins long :lol:

Sibelle - September 13, 2004 08:47 PM (GMT)
cest possible ou non de changer le stat cap a laide de tes gates en plus des skills cap ?

slade15 - September 13, 2004 10:01 PM (GMT)
biensur que c'est possible , il suffi de l'ajouter a la suite

Kaervek - September 16, 2004 01:47 PM (GMT)
L'enum est pratique entre autre pour tes GM. Si un prob est sur une variable de classe, le GM aura juste à la selectionner dans la liste (dans le .props -- Classe).
Autrement, il est obligé de connaître la syntaxe exacte.

De plus, si je me souviens bien, on a rencontré quelques bugs (désolé mais je ne sais plus lesquels) avec les string. Chose qu'on a pas eu avec les enum.

Lil_Choy - October 3, 2004 08:07 PM (GMT)
dsl c'est surement bidon se que je vais demandé ms je debut
on le met ou le script ? et comment on s'en sert?

slade15 - October 3, 2004 10:48 PM (GMT)
tout nouveaux scripte suffi de l'ajouter dans ton dossier Custom

pour utiliser

[add GateAssassin


Lil_Choy - October 4, 2004 08:29 AM (GMT)
Oki merci
J'ai encore une question ( et oui encore) quand je faits la gate el disparait o bout d'un certain temps donc ma question est comment fair pour quel reste toujours?

Injall - October 8, 2004 11:46 AM (GMT)
:P Lil, je savais pas que tu voulais lancer ton serveur :)

Lil_Choy - October 8, 2004 10:15 PM (GMT)
LOL c'est juste un trip de passage sa va pas durée, c'est trop compliké d'apprendre le c# :D




Hosted for free by InvisionFree