public override void Despawn() { if (!IsSpawned || this.Address == 0) { return; } Process process = Process.ThisProcess(); oCNpc npc = new oCNpc(process, this.Address); using (zVec3 vec = npc.GetPosition()) { Position = (Vec3f)(new float[] { vec.X, vec.Y, vec.Z }); } npc.HP = 0; npc.SetPosition(-1000, -100000, -100000); int WeaponMode = weaponMode; setWeaponMode(0); weaponMode = WeaponMode; oCGame.Game(process).World.DisableVob(npc); oCGame.Game(process).GetSpawnManager().DeleteNPC(npc); //oCGame.Game(process).GetSpawnManager().DeleteNPC(npc);//Bei verwandlung wird bedmempointer aufgerufen :/ //new DespawnTimer(this.Address); this.Address = 0; sWorld.SpawnedVobDict.Remove(npc.Address); foreach (Item it in itemList) { sWorld.SpawnedVobDict.Remove(it.Address); it.Address = 0; } }