Omni

Member
founnd a old script that i was going to update into a new custom system .

The script itself complies just find the only problem im having is it crashes the client but the servuo core remains active..

Crash
Code:
---------------------------
Error
---------------------------
The UO game client has crashed.  To report this crash, hit Control-C and paste the contents of your clipboard
 
into an email addressed to [email protected] with a description of what you were doing when it crashed.
 
 
 
Version: 7.0.3.0
 
Exception Id: 3221225477
 
Module: client.exe
 
Checksum: 1551725400
 
 
 
 
---------------------------
OK   
---------------------------

Script

Code:
using System;
using System.Collections;
using Server.Items;
using Server.ContextMenus;
using Server.Misc;
using Server.Network;
 
namespace Server.Mobiles
{
	public class Goku : BaseCreature
	{
		private static readonly double[] m_Offsets = new double[]
		{
			Math.Cos(000.0 / 180.0 * Math.PI), Math.Sin(000.0 / 180.0 * Math.PI),
			Math.Cos(040.0 / 180.0 * Math.PI), Math.Sin(040.0 / 180.0 * Math.PI),
			Math.Cos(080.0 / 180.0 * Math.PI), Math.Sin(080.0 / 180.0 * Math.PI),
			Math.Cos(120.0 / 180.0 * Math.PI), Math.Sin(120.0 / 180.0 * Math.PI),
			Math.Cos(160.0 / 180.0 * Math.PI), Math.Sin(160.0 / 180.0 * Math.PI),
			Math.Cos(200.0 / 180.0 * Math.PI), Math.Sin(200.0 / 180.0 * Math.PI),
			Math.Cos(240.0 / 180.0 * Math.PI), Math.Sin(240.0 / 180.0 * Math.PI),
			Math.Cos(280.0 / 180.0 * Math.PI), Math.Sin(280.0 / 180.0 * Math.PI),
			Math.Cos(320.0 / 180.0 * Math.PI), Math.Sin(320.0 / 180.0 * Math.PI),
		};
		private bool m_TrueForm;
		
		
 
		[Constructable]
		public Goku()
			: base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
		{
			SpeechHue = Utility.RandomDyedHue();
			Hue = 33770;
 
			{
				Body = 0x190;
				Name = "Goku";
			}
 
			SetStr(250, 255);
			SetDex(100, 125);
			SetInt(61, 75);
 
			SetDamage(15, 23);
 
			SetHits(2500, 3500);
 
			SetSkill(SkillName.Fencing, 88.8, 97.5);
			SetSkill(SkillName.Macing, 99.9, 110.0);
			SetSkill(SkillName.MagicResist, 25.0, 47.5);
			SetSkill(SkillName.Swords, 65.0, 87.5);
			SetSkill(SkillName.Tactics, 99.9, 110.0);
			SetSkill(SkillName.Wrestling, 15.0, 37.5);
 
			Fame = 10000;
			Karma = -10000;
								
 
			AddItem(new ShortHair(1));
		}
 
 
		[CommandProperty(AccessLevel.GameMaster)]
		public override int HitsMax
		{
			get
			{
				return this.m_TrueForm ? 65000 : 30000;
			}
		}
		[CommandProperty(AccessLevel.GameMaster)]
		public override int ManaMax
		{
			get
			{
				return 5000;
			}
		}
		
			
		public void Morph()
		{
			if (this.m_TrueForm)
				return;
 
			this.m_TrueForm = true;
 
			Name = "Super Saiyan Goku";
			BodyValue = 0x190;
			Hue = 33770;
			AddItem(new ShortHair(1174));
 
			this.Hits = this.HitsMax;
			this.Stam = this.StamMax;
			this.Mana = this.ManaMax;
 
			this.ProcessDelta();
 
			this.Say(1049499); // Behold my true form!
 
		   
 
			Map map = this.Map;
 
			if (map != null)
			{
				for (int i = 0; i < m_Offsets.Length; i += 2)
				{
					double rx = m_Offsets[i];
					double ry = m_Offsets[i + 1];
 
					int dist = 0;
					bool ok = false;
					int x = 0, y = 0, z = 0;
 
					while (!ok && dist < 10)
					{
						int rdist = 10 + dist;
 
						x = this.X + (int)(rx * rdist);
						y = this.Y + (int)(ry * rdist);
						z = map.GetAverageZ(x, y);
 
						if (!(ok = map.CanFit(x, y, this.Z, 16, false, false)))
							ok = map.CanFit(x, y, z, 16, false, false);
 
						if (dist >= 0)
							dist = -(dist + 1);
						else
							dist = -(dist - 1);
						if (!ok)
							continue;
 
					}
				}
			}
		}
 
		public override void GenerateLoot()
		{
			AddLoot(LootPack.SuperBoss);
		}
 
		public override bool AlwaysMurderer { get { return true; } }
 
		public Goku(Serial serial)
			: base(serial)
		{
		}
 
		public override void Serialize(GenericWriter writer)
		{
			base.Serialize(writer);
 
			writer.Write((int)0); // version
 
			writer.Write(this.m_TrueForm);
		}
 
		public override void Deserialize(GenericReader reader)
		{
			base.Deserialize(reader);
 
			int version = reader.ReadInt();
 
			switch (version)
			{
				case 0:
					{
						this.m_TrueForm = reader.ReadBool();
						break;
					}
			}
		}
	}
}

I am looking at creating a group of mobiles like super Sayajins that transform and create special effects around the map..
 
I'm not seeing Morph called anywhere, is that something from your BaseCreature?

Regardless, the only thing that looks maybe off to me is that when Morph might be called you're adding hair on top of already existing hair...

In Constructable:
AddItem(new ShortHair(1));

In Morph:
AddItem(new ShortHair(1174));
 
Morph is simullar to Harrower and actually taken from that.. Harrower and true form harrower.

Ill check the hair but it seems weird it crashes the client and not the server :S
 

Active Shards

Donations

Total amount
$0.00
Goal
$1,000.00
Back