WitchBalde Waffe der Götter

Hier könnt ihr eure Scripte vorstellen und Untereinander verbessern.
Antworten
Nachricht
Autor
Benutzeravatar
Niko
Senior Mitglied
Beiträge: 165
Registriert: 13 Jan 2004 22:56
Wohnort: Nürnberg
Kontaktdaten:

WitchBalde Waffe der Götter

#1 Beitrag von Niko » 29 Apr 2004 01:20

Ich hab mal nee WitchBlade aus Spass erstellt,

Hier mal der Code und das File in Anhang.

Vielleicht einwenig zu übermotzt :) ^^

Die Cliloc Nummer 600006 ist eine eigene erstellte.
Tithing Punkte werden Jeweils 300 abgezogen, und es wird ein Antidote erstellt das die Rückverwandlung setzt

Code: Alles auswählen

using System;
using Server;

namespace Server.Items
{
	public class WitchBlade : SilverBracelet
	{
		public override int ArtifactRarity{ get{ return 100; } }
		public override int LabelNumber{ get{ return 600006; } } // WitchBlade

		[Constructable]
		public WitchBlade()
		{
			Hue = 0x27;
			Name = "WitchBlade Waffe der Götter";
			Attributes.BonusStr = 20;
			Attributes.BonusDex = 20;
			Attributes.BonusInt = 20;
			Attributes.RegenHits = 20;
			Attributes.ReflectPhysical = 15;
			Attributes.AttackChance = 45;
			Attributes.RegenStam = 15;
			Attributes.Luck = 100;
			Resistances.Poison = 40;
			Resistances.Fire = 40;
			Resistances.Cold = 40;
			Resistances.Energy = 40;
			SkillBonuses.SetValues( 0, SkillName.Swords, 20.0 );
		}
       
            public override bool OnEquip( Mobile from ) 
               {
               	from.SendMessage( "Du fühlst die Macht der Witchblade!" ); 
         return true; 
      }
      	public override void OnRemoved( object parent )
	{
	base.OnRemoved( parent );
	}
      public override void OnDoubleClick( Mobile from ) 
      { 
         if ( Parent != from ) 
         { 
            from.SendMessage( "Du must die WitchBlade erst tragen um ihre Macht zu Nützen"); 
         } 
         else if ( from.Mounted ) 
         { 
            from.SendMessage( "Du kannst dich nicht verwandeln weil du auf dein Reittier bist"); 
         }
         else 
         { 
            if ( from.BodyValue == 0x190 || from.BodyValue == 0x191 ) 
            {
            from.TithingPoints = ( from.TithingPoints - 300 ); 
               from.BodyValue = 774; 
               from.HueMod = 1150; 
               from.PlaySound( 837 ); 
               from.NameMod = "Witchblade Trägerin"; 
               from.VirtualArmorMod = 50; 
              Effects.SendLocationParticles( EffectItem.Create( from.Location, from.Map, EffectItem.DefaultDuration ), 0x376A, 1, 29, 0x47D, 2, 9962, 0 ); 
              Effects.SendLocationParticles( EffectItem.Create( new Point3D( from.X, from.Y, from.Z - 7 ), from.Map, EffectItem.DefaultDuration ), 0x37C4, 1, 29, 0x47D, 2, 9502, 0 ); 
              from.AddToBackpack( new Antidote() ); 
            } 
            else 
            { 
               if (from.Female == true ) 
                { 
                  from.BodyValue = 0x191; 
                  from.PlaySound( 881 ); 
     from.NameMod = null; 
                  from.VirtualArmorMod = 0; 
                 Effects.SendLocationParticles( EffectItem.Create( from.Location, from.Map, EffectItem.DefaultDuration ), 0x376A, 1, 29, 0x47D, 2, 9962, 0 ); 
                 Effects.SendLocationParticles( EffectItem.Create( new Point3D( from.X, from.Y, from.Z - 7 ), from.Map, EffectItem.DefaultDuration ), 0x37C4, 1, 29, 0x47D, 2, 9502, 0 ); 
                } 
               else 
                { 
                  from.BodyValue = 0x190; 
                  from.PlaySound( 881 ); 
     from.NameMod = null; 
                  from.VirtualArmorMod = 0; 
                  from.HueMod = -1; 
                 Effects.SendLocationParticles( EffectItem.Create( from.Location, from.Map, EffectItem.DefaultDuration ), 0x376A, 1, 29, 0x47D, 2, 9962, 0 ); 
                 Effects.SendLocationParticles( EffectItem.Create( new Point3D( from.X, from.Y, from.Z - 7 ), from.Map, EffectItem.DefaultDuration ), 0x37C4, 1, 29, 0x47D, 2, 9502, 0 ); 
   		} 
               } 
              } 
             }
		public WitchBlade( Serial serial ) : base( serial )
		{
		}

		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );

			writer.Write( (int) 0 );
		}
		
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();
		}
	}
}
Dateianhänge
Antidote.cs
Anidote
(2.4 KiB) 493-mal heruntergeladen
WitchBlade.cs
WitchBlade der Götter
(3.78 KiB) 495-mal heruntergeladen
------------------->[u:82f94d98d3][b:82f94d98d3]Sic transit gloriam mundi![/u:82f94d98d3][/b:82f94d98d3]<-----------------

V1RTU4L

#2 Beitrag von V1RTU4L » 24 Jan 2005 21:16

hi,
wollt nur anmerken, dass man unter c# nun meist nicht mehr

Code: Alles auswählen

from.TithingPoints = ( from.TithingPoints - 300 );
schreibt, sondern man das durch

Code: Alles auswählen

from.TithingPoints -= 300 ;
abkürzen kann

Arahil
Moderator (RunUO)
Beiträge: 437
Registriert: 15 Jan 2004 09:32
Wohnort: Wien

#3 Beitrag von Arahil » 24 Jan 2005 21:35

das geht sogar in c - aber beeinflusst die funktion ja nicht :)

LOM|Iridath

#4 Beitrag von LOM|Iridath » 24 Jan 2005 21:59

der compiler optimiert es eh weg ;)

und obs der lesbarkeit hilft...

FloSoft

#5 Beitrag von FloSoft » 24 Jan 2005 23:11

ich glaub ein -= ist schöner zu lesen als ein verschachteltes konstrukt?

Irian
Gold Mitglied
Beiträge: 620
Registriert: 08 Apr 2004 14:28
Wohnort: Regensburg
Kontaktdaten:

#6 Beitrag von Irian » 25 Jan 2005 18:21

Pure Ansichtssache. Ich hab mit keinem ein Problem, aber -= ist schneller zu Tippen, während sich bei der anderen Methoden schneller ein Fiptehler einschleichen kann.

Antworten