Go Back   RunUO - Ultima Online Emulation > RunUO > Custom Script Releases

Custom Script Releases This forum is where you can release your custom scripts for other users to use.

Please note: By releasing your scripts here you are submitting them to the public and as such agree to make them public domain. The RunUO Team has made its software GPL for you to use and enjoy you should do the same for anything based off of RunUO.

Reply
 
Thread Tools Display Modes
Old 03-23-2007, 09:20 PM   #251 (permalink)
Forum Expert
 
Lucid Nagual's Avatar
 
Join Date: Nov 2004
Location: Beyond the Gates of Hell
Age: 36
Posts: 3,509
Smile

Quote:
Originally Posted by Remo82 View Post
ok, commented those lines out now i get this:

RunUO - [www.runuo.com] Version 2.0, Build 2357.32527
Core: Running on .NET Framework Version 2.0.50727
Scripts: Compiling C# scripts...failed (2 errors, 2 warnings)
Warnings:
+ Custom/XmlQuest/XmlQuestHolderGumps.cs:
CS0219: Line 618: The variable 'edit_entry' is assigned but its value is nev
er used
+ Customs/Lucid's Systems/Advanced Archery/Items/Quivers/BaseQuiver.cs:
CS0162: Line 73: Unreachable code detected
CS0162: Line 114: Unreachable code detected
CS0162: Line 155: Unreachable code detected
CS0162: Line 222: Unreachable code detected
CS0162: Line 240: Unreachable code detected
Errors:
+ Customs/Lucid's Systems/Advanced Archery/SaveBaseRangedInfo.cs:
CS0117: Line 86: 'Server.Items.BaseRanged' does not contain a definition for
'm_HasBowString'
CS0117: Line 87: 'Server.Items.BaseRanged' does not contain a definition for
'm_HasBowString'
CS0117: Line 92: 'Server.Items.BaseRanged' does not contain a definition for
'm_Module'
CS0117: Line 96: 'Server.Items.BaseRanged' does not contain a definition for
'CheckStringCondition'
+ Mobiles/PlayerMobile.cs:
CS0234: Line 112: The type or namespace name 'DataCenter' does not exist in
the namespace 'Server.LucidNagual' (are you missing an assembly reference?)
CS0246: Line 113: The type or namespace name 'ClassGump' could not be found
(are you missing a using directive or an assembly reference?)
CS1502: Line 113: The best overloaded method match for 'Server.Mobile.SendGu
mp(Server.Gumps.Gump)' has some invalid arguments
CS1503: Line 113: Argument '1': cannot convert from 'ClassGump' to 'Server.G
umps.Gump'
CS0234: Line 115: The type or namespace name 'DataCenter' does not exist in
the namespace 'Server.LucidNagual' (are you missing an assembly reference?)
CS0246: Line 116: The type or namespace name 'RavensRaceGump' could not be f
ound (are you missing a using directive or an assembly reference?)
CS0103: Line 116: The name 'RavensRacePage' does not exist in the current co
ntext
CS1502: Line 116: The best overloaded method match for 'Server.Mobile.SendGu
mp(Server.Gumps.Gump)' has some invalid arguments
CS1503: Line 116: Argument '1': cannot convert from 'RavensRaceGump' to 'Ser
ver.Gumps.Gump'
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.

I'm completely lost now
Delete the SaveBaseRangedInfo.cs and comment out this section of the PlayerMobile:
Code:
/*private void SendLNGumps( Mobile from )
{
if ( LucidNagual.DataCenter.EnableClassSystem )
from.SendGump( new ClassGump( this ) );

if ( LucidNagual.DataCenter.EnableRaceSystem )
from.SendGump( new RavensRaceGump( this, RavensRacePage.Info ) );
}*/
__________________
Leader of the Anti-OSI Movement. Inventing a new game experience in an EA Games-free environment.

Don Juan Matus "The basic difference between an ordinary man and a warrior is that a warrior takes everything as a challenge, while an ordinary man takes everything as a blessing or as a curse."


My Customs:
Lucid Nagual is offline   Reply With Quote
Old 03-23-2007, 09:51 PM   #252 (permalink)
Forum Newbie
 
Join Date: Mar 2007
Posts: 27
Default

Hmmmm...

Now I get this:

RunUO - [www.runuo.com] Version 2.0, Build 2357.32527
Core: Running on .NET Framework Version 2.0.50727
Scripts: Compiling C# scripts...failed (1 errors, 0 warnings)
Errors:
+ Customs/Lucid's Systems/Modules/BaseRangedModule.cs:
CS0234: Line 30: The type or namespace name 'Saves' does not exist in the na
mespace 'Server' (are you missing an assembly reference?)
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.

What now?
Remo82 is offline   Reply With Quote
Old 03-24-2007, 06:53 AM   #253 (permalink)
Forum Expert
 
Lucid Nagual's Avatar
 
Join Date: Nov 2004
Location: Beyond the Gates of Hell
Age: 36
Posts: 3,509
Smile

Quote:
Originally Posted by Remo82 View Post
Hmmmm...

Now I get this:

RunUO - [www.runuo.com] Version 2.0, Build 2357.32527
Core: Running on .NET Framework Version 2.0.50727
Scripts: Compiling C# scripts...failed (1 errors, 0 warnings)
Errors:
+ Customs/Lucid's Systems/Modules/BaseRangedModule.cs:
CS0234: Line 30: The type or namespace name 'Saves' does not exist in the na
mespace 'Server' (are you missing an assembly reference?)
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.

What now?
Comment that out.
__________________
Leader of the Anti-OSI Movement. Inventing a new game experience in an EA Games-free environment.

Don Juan Matus "The basic difference between an ordinary man and a warrior is that a warrior takes everything as a challenge, while an ordinary man takes everything as a blessing or as a curse."


My Customs:
Lucid Nagual is offline   Reply With Quote
Old 03-24-2007, 09:57 AM   #254 (permalink)
Forum Newbie
 
Join Date: Mar 2007
Posts: 27
Default

Ok, I commented that out and recieved this:

RunUO - [www.runuo.com] Version 2.0, Build 2357.32527
Core: Running on .NET Framework Version 2.0.50727
Scripts: Compiling C# scripts...failed (1 errors, 0 warnings)
Errors:
+ Customs/Lucid's Systems/Modules/BaseRangedModule.cs:
CS0116: Line 29: A namespace does not directly contain members such as field
s or methods
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.

So I Commented that line out and recieved this:

RunUO - [www.runuo.com] Version 2.0, Build 2357.32527
Core: Running on .NET Framework Version 2.0.50727
Scripts: Compiling C# scripts...failed (1 errors, 0 warnings)
Errors:
+ Customs/Lucid's Systems/Modules/BaseRangedModule.cs:
CS0116: Line 28: A namespace does not directly contain members such as field
s or methods
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.

So I commented that one out and recieved this:

RunUO - [www.runuo.com] Version 2.0, Build 2357.32527
Core: Running on .NET Framework Version 2.0.50727
Scripts: Compiling C# scripts...failed (1 errors, 0 warnings)
Errors:
+ Customs/Lucid's Systems/Modules/BaseRangedModule.cs:
CS0116: Line 27: A namespace does not directly contain members such as field
s or methods
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.

So I commented that out and now got this:

RunUO - [www.runuo.com] Version 2.0, Build 2357.32527
Core: Running on .NET Framework Version 2.0.50727
Scripts: Compiling C# scripts...failed (1 errors, 0 warnings)
Errors:
+ Customs/Lucid's Systems/Modules/BaseRangedModule.cs:
CS0116: Line 26: A namespace does not directly contain members such as field
s or methods
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.

Looks like it just keeps going up the lines when I comment one out... should I uncomment those lines and try something else or should I just keep commenting until it compiles?

Hopefully I can get this working soon, sorry for all the questions - thx for the help
Remo82 is offline   Reply With Quote
Old 03-24-2007, 10:45 AM   #255 (permalink)
Forum Expert
 
Lucid Nagual's Avatar
 
Join Date: Nov 2004
Location: Beyond the Gates of Hell
Age: 36
Posts: 3,509
Smile

Quote:
Originally Posted by Remo82 View Post
Ok, I commented that out and recieved this:

RunUO - [www.runuo.com] Version 2.0, Build 2357.32527
Core: Running on .NET Framework Version 2.0.50727
Scripts: Compiling C# scripts...failed (1 errors, 0 warnings)
Errors:
+ Customs/Lucid's Systems/Modules/BaseRangedModule.cs:
CS0116: Line 29: A namespace does not directly contain members such as field
s or methods
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.

So I Commented that line out and recieved this:

RunUO - [www.runuo.com] Version 2.0, Build 2357.32527
Core: Running on .NET Framework Version 2.0.50727
Scripts: Compiling C# scripts...failed (1 errors, 0 warnings)
Errors:
+ Customs/Lucid's Systems/Modules/BaseRangedModule.cs:
CS0116: Line 28: A namespace does not directly contain members such as field
s or methods
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.

So I commented that one out and recieved this:

RunUO - [www.runuo.com] Version 2.0, Build 2357.32527
Core: Running on .NET Framework Version 2.0.50727
Scripts: Compiling C# scripts...failed (1 errors, 0 warnings)
Errors:
+ Customs/Lucid's Systems/Modules/BaseRangedModule.cs:
CS0116: Line 27: A namespace does not directly contain members such as field
s or methods
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.

So I commented that out and now got this:

RunUO - [www.runuo.com] Version 2.0, Build 2357.32527
Core: Running on .NET Framework Version 2.0.50727
Scripts: Compiling C# scripts...failed (1 errors, 0 warnings)
Errors:
+ Customs/Lucid's Systems/Modules/BaseRangedModule.cs:
CS0116: Line 26: A namespace does not directly contain members such as field
s or methods
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.

Looks like it just keeps going up the lines when I comment one out... should I uncomment those lines and try something else or should I just keep commenting until it compiles?

Hopefully I can get this working soon, sorry for all the questions - thx for the help

This is what I meant:
Attached Files
File Type: cs BaseRangedModule.cs (7.7 KB, 36 views)
__________________
Leader of the Anti-OSI Movement. Inventing a new game experience in an EA Games-free environment.

Don Juan Matus "The basic difference between an ordinary man and a warrior is that a warrior takes everything as a challenge, while an ordinary man takes everything as a blessing or as a curse."


My Customs:
Lucid Nagual is offline   Reply With Quote
Old 03-24-2007, 11:22 AM   #256 (permalink)
Forum Newbie
 
Join Date: Mar 2007
Posts: 27
Default

ok, replaced that file and now when I try to compile it spits this out:

RunUO - [www.runuo.com] Version 2.0, Build 2357.32527
Core: Running on .NET Framework Version 2.0.50727
Scripts: Compiling C# scripts...failed (1 errors, 2 warnings)
Warnings:
+ Custom/XmlQuest/XmlQuestHolderGumps.cs:
CS0219: Line 618: The variable 'edit_entry' is assigned but its value is nev
er used
+ Customs/Lucid's Systems/Advanced Archery/Items/Quivers/BaseQuiver.cs:
CS0162: Line 73: Unreachable code detected
CS0162: Line 114: Unreachable code detected
CS0162: Line 155: Unreachable code detected
CS0162: Line 222: Unreachable code detected
CS0162: Line 240: Unreachable code detected
Errors:
+ Mobiles/PlayerMobile.cs:
CS0103: Line 95: The name 'SendLNGumps' does not exist in the current contex
t
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.

I attached the BaseQuiver.cs and Playermobile.cs incase you need to see them.

PlayerMobile.cs

BaseQuiver.cs
Remo82 is offline   Reply With Quote
Old 03-24-2007, 04:43 PM   #257 (permalink)
Forum Expert
 
Lucid Nagual's Avatar
 
Join Date: Nov 2004
Location: Beyond the Gates of Hell
Age: 36
Posts: 3,509
Smile

Quote:
Originally Posted by Remo82 View Post
ok, replaced that file and now when I try to compile it spits this out:

RunUO - [www.runuo.com] Version 2.0, Build 2357.32527
Core: Running on .NET Framework Version 2.0.50727
Scripts: Compiling C# scripts...failed (1 errors, 2 warnings)
Warnings:
+ Custom/XmlQuest/XmlQuestHolderGumps.cs:
CS0219: Line 618: The variable 'edit_entry' is assigned but its value is nev
er used
+ Customs/Lucid's Systems/Advanced Archery/Items/Quivers/BaseQuiver.cs:
CS0162: Line 73: Unreachable code detected
CS0162: Line 114: Unreachable code detected
CS0162: Line 155: Unreachable code detected
CS0162: Line 222: Unreachable code detected
CS0162: Line 240: Unreachable code detected
Errors:
+ Mobiles/PlayerMobile.cs:
CS0103: Line 95: The name 'SendLNGumps' does not exist in the current contex
t
Scripts: One or more scripts failed to compile or no script files were found.
- Press return to exit, or R to try again.

I attached the BaseQuiver.cs and Playermobile.cs incase you need to see them.

Attachment 11226

Attachment 11227
You'll want to comment out this spot in the PlayerMobile, too:
Code:
         //SendLNGumps( this );
__________________
Leader of the Anti-OSI Movement. Inventing a new game experience in an EA Games-free environment.

Don Juan Matus "The basic difference between an ordinary man and a warrior is that a warrior takes everything as a challenge, while an ordinary man takes everything as a blessing or as a curse."


My Customs:
Lucid Nagual is offline   Reply With Quote
Old 03-24-2007, 05:02 PM   #258 (permalink)
Forum Newbie
 
Join Date: Mar 2007
Posts: 27
Default

Ok, I just got back in and commented that line out, it compiled now!

I will let you know if I come into any problems with the system as I test it out on the server.

Thanks again Can't wait to try this out.
Remo82 is offline   Reply With Quote
Old 03-24-2007, 05:37 PM   #259 (permalink)
Forum Newbie
 
Join Date: Mar 2007
Posts: 27
Default

When I double click the bow and target a stringer nothing happens... ive tried different stringers to make sure it was not just 1 kind and none of them will attach to the bow.

And when I try to equip a bow it gives the you can not use that without a string.

Any ideas?
Remo82 is offline   Reply With Quote
Old 03-25-2007, 01:42 PM   #260 (permalink)
Forum Newbie
 
Join Date: Mar 2007
Posts: 27
Default

I've been looking trying to figure out what is causing the issue with not being able to string the bows.

I do get the message that only a grandmaster can apply the string if someone with under 100 skill tries to apply the screen.

If someone with enough skill tries to string the bow (double click bow, target the stringer) no error message is given (no message at all actually) and the bow stays set to NoString and the stringer stays in your backpack.

Also, I was wondering about setting a default string to bows, because bows that drop or if you go and buy a bow from a vendor it is set to NoString and even when the issue with being able to string them is resolved it would mean anyone that wanted to train in archery (or started with a bow on a new char) would have to find a someone with atleast 100 skill to put a string on their bow before they could begin to use it.

Is there a way to set the bows to default to the weakest string that way they can atleast use the bow and upgrade the string later?

Anyone else had this issue or could offer some suggestions on how to fix either/both not being able to string the bows and bows having a default string of the weakest kind so that dropped bows / vendor bows / newb start bows can be used and you do not have to have atleast a GM bower online to put a string on it for you?

Any help is appreciated, Thanks
Remo82 is offline   Reply With Quote
Old 03-25-2007, 04:14 PM   #261 (permalink)
Forum Expert
 
Lucid Nagual's Avatar
 
Join Date: Nov 2004
Location: Beyond the Gates of Hell
Age: 36
Posts: 3,509
Smile

Quote:
Originally Posted by Remo82 View Post
I've been looking trying to figure out what is causing the issue with not being able to string the bows.

I do get the message that only a grandmaster can apply the string if someone with under 100 skill tries to apply the screen.

If someone with enough skill tries to string the bow (double click bow, target the stringer) no error message is given (no message at all actually) and the bow stays set to NoString and the stringer stays in your backpack.

Also, I was wondering about setting a default string to bows, because bows that drop or if you go and buy a bow from a vendor it is set to NoString and even when the issue with being able to string them is resolved it would mean anyone that wanted to train in archery (or started with a bow on a new char) would have to find a someone with atleast 100 skill to put a string on their bow before they could begin to use it.

Is there a way to set the bows to default to the weakest string that way they can atleast use the bow and upgrade the string later?

Anyone else had this issue or could offer some suggestions on how to fix either/both not being able to string the bows and bows having a default string of the weakest kind so that dropped bows / vendor bows / newb start bows can be used and you do not have to have atleast a GM bower online to put a string on it for you?

Any help is appreciated, Thanks
Yeah that's easy. BaseRanged.cs:

Under this line:
Code:
public BaseRanged( Serial serial ) : base( serial )
{
Add this:
Code:
this.HasBowString = true;
this.StringStrengthSelection = StringStrength.VeryWeak;
this.PullWeightSelection = PoundsPerPull.Forty;
__________________
Leader of the Anti-OSI Movement. Inventing a new game experience in an EA Games-free environment.

Don Juan Matus "The basic difference between an ordinary man and a warrior is that a warrior takes everything as a challenge, while an ordinary man takes everything as a blessing or as a curse."


My Customs:
Lucid Nagual is offline   Reply With Quote
Old 03-25-2007, 04:51 PM   #262 (permalink)
Forum Newbie
 
Join Date: Mar 2007
Posts: 27
Default

I put the code into the file, but it still does not attach a default string to a bow that is created and I cannot string the bow with any of the stringers.

Here is my Baseranged.cs file:

Code:
/*
    _________________________________
 -=(_)_______________________________)=-
   /   .   .   . ____  . ___      _/
  /~ /    /   / /     / /   )2006 /
 (~ (____(___/ (____ / /___/     (
  \ ----------------------------- \
   \    lucidnagual@charter.net    \
    \_     ===================      \
     \   -Owner of "The Conjuring"-  \
      \_     ===================     ~\
       )      Lucid's Mega Pack        )
      /~    The Mother Load v1.1     _/
    _/_______________________________/
 -=(_)_______________________________)=-

 */
using System;
using Server.Items;
using Server.Network;
using Server.Spells;
using Server.Mobiles;
using Server.Targeting;
using System.Collections;
using Server.Enums;
using Server.ACC.CM;
using Server.LucidNagual;


namespace Server.Items
{
	public abstract class BaseRanged : BaseMeleeWeapon
	{
		//--<<Advanced Archery Edit>>---------------------[Start 1/4]
		//SkillModule edit.
		private BaseRangedModule m_BaseRangedModule;
		
		[CommandProperty( AccessLevel.GameMaster )]
		public BaseRangedModule BaseRangedModule
		{
			get
			{
				BaseRangedModule existingModule = ( BaseRangedModule )CentralMemory.GetModule( this.Serial, typeof( BaseRangedModule ) );
				
				if ( existingModule == null )
				{
					CentralMemory.Flush();
					
					BaseRangedModule module = new BaseRangedModule( this.Serial );
					CentralMemory.AppendModule( this.Serial, module, true );
					
					return ( m_BaseRangedModule = module as BaseRangedModule );
				}
				else
				{
					if ( m_BaseRangedModule != null )
						return m_BaseRangedModule;
					
					return ( m_BaseRangedModule = existingModule as BaseRangedModule );
				}
			}
		}
		//SkillModule edit.
		
		public static int PlayerFreezeTimer = 2; 
		public static int NPCFreezeTimer = 2; 		
		
		public BoltType m_BoltType;
		public ArrowType m_ArrowType;
		public StringStrength m_Strength;
		public PoundsPerPull m_PullWeight;
		
		[CommandProperty(AccessLevel.GameMaster)]
		public ArrowType ArrowSelection	{ get { return m_BaseRangedModule.ArrowSelection; } set { m_BaseRangedModule.ArrowSelection = value; } }
		
		[CommandProperty(AccessLevel.GameMaster)]
		public BoltType BoltSelection { get { return m_BaseRangedModule.BoltSelection; } set { m_BaseRangedModule.BoltSelection = value; } }
		
		[CommandProperty(AccessLevel.GameMaster)]
		public StringStrength StringStrengthSelection { get { return m_BaseRangedModule.StringStrengthSelection; } set { m_BaseRangedModule.StringStrengthSelection = value; } }
		
		[CommandProperty(AccessLevel.GameMaster)]
		public PoundsPerPull PullWeightSelection { get { return m_BaseRangedModule.PullWeightSelection; } set { m_BaseRangedModule.PullWeightSelection = value; } }
		
		[CommandProperty( AccessLevel.GameMaster )]
		public bool HasBowString { get{ return m_BaseRangedModule.HasBowString; } set{ m_BaseRangedModule.HasBowString = value; } }		
		
		private static Mobile m_Mobile;
		private static BaseRanged BRanged;
		
		public static TimeSpan StringWarningDelay = TimeSpan.FromSeconds( 10.0 );
		public static DateTime m_NextStringWarning;
		public static TimeSpan AmmoWarningDelay = TimeSpan.FromSeconds( 10.0 );
		public static DateTime m_NextAmmoWarning;
		
		public static readonly TimeSpan PlayerFreezeDuration = TimeSpan.FromSeconds( 3.0 );
		public static readonly TimeSpan NPCFreezeDuration = TimeSpan.FromSeconds( 6.0 );
		//--<<Advanced Archery Edit>>---------------------[End 1/4]
		
		public abstract int EffectID{ get; }
		public abstract Type AmmoType{ get; }
		public abstract Item Ammo{ get; }
		
		public override int DefHitSound{ get{ return 0x234; } }
		public override int DefMissSound{ get{ return 0x238; } }
		
		public override SkillName DefSkill{ get{ return SkillName.Archery; } }
		public override WeaponType DefType{ get{ return WeaponType.Ranged; } }
		public override WeaponAnimation DefAnimation{ get{ return WeaponAnimation.ShootXBow; } }
		
		public override SkillName AccuracySkill{ get{ return SkillName.Archery; } }
		
		public BaseRanged( int itemID ) : base( itemID )
		{
		}
		
		public BaseRanged( Serial serial ) : base( serial )
		{
this.HasBowString = true;
this.StringStrengthSelection = StringStrength.VeryWeak;
this.PullWeightSelection = PoundsPerPull.Fourty;
			BRanged = this;
		}
		
		public static void Initialize()
		{
			Mobile from = m_Mobile;
			//Mobile m = (Mobile)parent;
			//BaseWeapon weapon = m.Weapon as BaseWeapon;
		}
		
		public override TimeSpan OnSwing( Mobile attacker, Mobile defender )
		{
			WeaponAbility a = WeaponAbility.GetCurrentAbility( attacker );
			
			// Make sure we've been standing still for .25/.5/1 second depending on Era
			if ( DateTime.Now > ( attacker.LastMoveTime + TimeSpan.FromSeconds( Core.SE ? 0.25 : (Core.AOS ? 0.5 : 1.0) )) || (Core.AOS && WeaponAbility.GetCurrentAbility( attacker ) is MovingShot) )
			{
				bool canSwing = true;
				
				if ( Core.AOS )
				{
					canSwing = ( !attacker.Paralyzed && !attacker.Frozen );
					
					if ( canSwing )
					{
						Spell sp = attacker.Spell as Spell;
						
						canSwing = ( sp == null || !sp.IsCasting || !sp.BlocksMovement );
					}
				}
				
				if ( canSwing && attacker.HarmfulCheck( defender ) )
				{
					attacker.DisruptiveAction();
					attacker.Send( new Swing( 0, attacker, defender ) );
					
					if ( OnFired( attacker, defender ) )
					{
						if ( CheckHit( attacker, defender ) )
							OnHit( attacker, defender );
						else
							OnMiss( attacker, defender );
					}
				}
				
				attacker.RevealingAction();
				
				return GetDelay( attacker );
			}
			else
			{
				attacker.RevealingAction();
				
				return TimeSpan.FromSeconds( 0.25 );
			}
		}
		
		public override void OnHit( Mobile attacker, Mobile defender )
		{
			//--<<Advanced Archery Edit>>---------------------[Start 2/4]
			if ( attacker == null || defender == null )
				return;
			
			MoreBaseRanged.CustomAmmoCheck( attacker, defender, AmmoType );
			
			if ( Ammo == null )
				attacker.SendMessage( "You are out of arrows, or may have to choose a different type of arrow by double clicking the bow." );
			//--<<Advanced Archery Edit>>---------------------[End 2/4]
			
			if ( attacker.Player && !defender.Player && ( defender.Body.IsAnimal || defender.Body.IsMonster ) && 0.4 >= Utility.RandomDouble() )
				defender.AddToBackpack( Ammo );
			
			base.OnHit( attacker, defender );
		}
		
		public override void OnMiss( Mobile attacker, Mobile defender )
		{
			if ( attacker.Player && 0.4 >= Utility.RandomDouble() )
				Ammo.MoveToWorld( new Point3D( defender.X + Utility.RandomMinMax( -1, 1 ), defender.Y + Utility.RandomMinMax( -1, 1 ), defender.Z ), defender.Map );
			
			base.OnMiss( attacker, defender );
		}
		
		public virtual bool OnFired( Mobile attacker, Mobile defender )
		{
			//--<<Advanced Archery Edit>>---------------------[Start 3/4]
			PlayerMobile a_pm = attacker as PlayerMobile;
			Container pack = attacker.Backpack;
			BaseQuiver quiver = attacker.FindItemOnLayer( Layer.MiddleTorso ) as BaseQuiver;
			//Container quiver = ( BaseQuiver )a_pm.Quiver;
			BaseRangedModule module = this.BaseRangedModule;

			if ( !module.HasBowString )
			{
				if ( DateTime.Now >= m_NextStringWarning )
				{
					m_NextStringWarning = DateTime.Now + StringWarningDelay;
					attacker.SendMessage( "You need a string to use this bow. See a local fletcher to apply the string." );
					return false;
				}
				else
					return false;
			}
			
			if ( Ammo == null )
			{
				if ( DateTime.Now >= m_NextAmmoWarning )
				{
					m_NextAmmoWarning = DateTime.Now + AmmoWarningDelay;
					attacker.SendMessage( "You are out of ammo." );
					return false;
				}
				else
					return false;
			}
			
			if( attacker.Player && quiver != null && quiver.LowerAmmoCost > Utility.Random( 100 ) )
			{
				attacker.MovingEffect( defender, EffectID, 18, 1, false, false );
				return true;
			}
			
			if( attacker.Player &&
			   ( quiver == null || !quiver.ConsumeTotal( AmmoType, 1 ) ) &&
			   (   pack == null ||   !pack.ConsumeTotal( AmmoType, 1 ) ) )
				return false;
			
			attacker.MovingEffect( defender, EffectID, 18, 1, false, false );
			return true;
			//--<<Advanced Archery Edit>>---------------------[End 3/4]
		}
		
		//--<<Advanced Archery Edit>>---------------------[Start 4/4]
		public override void OnDoubleClick( Mobile from )
		{
			BaseRangedModule module = this.BaseRangedModule;
			
			if ( IsChildOf( from.Backpack ) || Parent == from )
			{
				if ( module.HasBowString )
				{
					if ( this is Bow || this is CompositeBow || this is ElvenCompositeLongbow ||
					    this is MagicalShortbow || this is Yumi )
					{
						from.SendMessage( "Please choose which type of arrows you wish to use." );
						from.Target = new BowTarget( this );
					}
					
					if ( this is Crossbow || this is HeavyCrossbow || this is RepeatingCrossbow )
					{
						from.SendMessage( "Please choose which type of bolts you wish to use." );
						from.Target = new CrossbowTarget( this );
					}
				}
				else
				{
					from.SendMessage( "You must string your bow. Please select a bow stringer." );
					from.Target = new StringerTarget( this );
				}
			}
			
			else
				return;
		}
		
		/*		public override void OnDelete()
		{
			BaseRangedModule module = ( BaseRangedModule )CentralMemory.GetModule( BRanged.Serial, typeof( BaseRangedModule ) );
			
			if ( module != null )
			{
				module.Delete();
			}
			
			base.OnDelete();
		}*/
		
		public override bool OnEquip( Mobile from )
		{
			m_Mobile = from;
			
			return true;
		}
		
		public override bool CanEquip( Mobile from )
		{
			BaseRangedModule module = this.BaseRangedModule;

			if ( from != null && !module.HasBowString )
			{
				from.SendMessage( "You cannot use that without a string." );
				return false;
			}
			
			base.CanEquip( from );
			
			return true;
		}
		
		public virtual Item AmmoArrowSelected()
		{
			BaseRangedModule module = this.BaseRangedModule;
			
			switch ( module.m_ArrowType )
			{
				case ArrowType.Normal:
					return new Arrow();
				case ArrowType.Poison:
					return new PoisonArrow();
				case ArrowType.Explosive:
					return new ExplosiveArrow();
				case ArrowType.ArmorPiercing:
					return new ArmorPiercingArrow();
				case ArrowType.Freeze:
					return new FreezeArrow();
				case ArrowType.Lightning:
					return new LightningArrow();
					
				default:
					return new Arrow();
			}
		}
		
		public virtual Type GetArrowSelected()
		{
			BaseRangedModule module = this.BaseRangedModule;
			
			switch ( module.m_ArrowType )
			{
				case ArrowType.Normal:
					return typeof( Arrow );
				case ArrowType.Poison:
					return typeof( PoisonArrow );
				case ArrowType.Explosive:
					return typeof( ExplosiveArrow );
				case ArrowType.ArmorPiercing:
					return typeof( ArmorPiercingArrow );
				case ArrowType.Freeze:
					return typeof( FreezeArrow );
				case ArrowType.Lightning:
					return typeof( LightningArrow );
					
				default:
					return typeof( Arrow );
			}
		}
		
		public virtual Item AmmoBoltSelected()
		{
			BaseRangedModule module = this.BaseRangedModule;
			
			switch ( module.m_BoltType )
			{
				case BoltType.Normal:
					return new Bolt();
				case BoltType.Poison:
					return new PoisonBolt();
				case BoltType.Explosive:
					return new ExplosiveBolt();
				case BoltType.ArmorPiercing:
					return new ArmorPiercingBolt();
				case BoltType.Freeze:
					return new FreezeBolt();
				case BoltType.Lightning:
					return new LightningBolt();
					
				default:
					return new Bolt();
			}
		}
		
		public virtual Type GetBoltSelected()
		{
			BaseRangedModule module = this.BaseRangedModule;
			
			switch ( module.m_BoltType )
			{
				case BoltType.Normal:
					return typeof( Bolt );
				case BoltType.Poison:
					return typeof( PoisonBolt );
				case BoltType.Explosive:
					return typeof( ExplosiveBolt );
				case BoltType.ArmorPiercing:
					return typeof( ArmorPiercingBolt );
				case BoltType.Freeze:
					return typeof( FreezeBolt );
				case BoltType.Lightning:
					return typeof( LightningBolt );
					
				default:
					return typeof( Bolt );
			}
		}
		
		public override void GetProperties( ObjectPropertyList list )
		{
			base.GetProperties(list);
			
			BaseRangedModule module = this.BaseRangedModule;
			
			if ( module != null )
			{
				ArrayList strings = new ArrayList();
				
				strings.Add( ( "---------------" ) );
				
				if ( this is Bow || this is CompositeBow || this is ElvenCompositeLongbow ||
				    this is MagicalShortbow || this is Yumi )
				{
					strings.Add( ( "Quiver Using: " + module.m_ArrowType ) );
				}
				
				if ( this is Crossbow || this is HeavyCrossbow || this is RepeatingCrossbow )
				{
					strings.Add( ( "Quiver Using: " + module.m_BoltType ) );
				}
				
				strings.Add( ( "lbs per Pull: " + module.m_PullWeight ) );
				strings.Add( ( "String Str: "  + module.m_Strength ) );
				
				string toAdd = "";
				int amount = strings.Count;
				int current = 1;
				
				foreach ( string str in strings )
				{
					toAdd += str;
					
					if ( current != amount )
						toAdd += "\n";
					
					++current;
				}
				
				if ( toAdd != "" )
					list.Add( 1070722, toAdd );
			}
			else
			{
				return;
			}
		}
		//--<<Advanced Archery Edit>>---------------------[End 4/4]
		
		public override void Serialize( GenericWriter writer )
		{
			base.Serialize( writer );
			writer.Write( (int) 2 ); // version
		}
		
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );
			int version = reader.ReadInt();
			
			switch ( version )
			{
				case 2:
				case 1:
					{
						break;
					}
				case 0:
					{
						/*m_EffectID =*/ reader.ReadInt();
						break;
					}
			}
			
			if ( version < 2 )
			{
				WeaponAttributes.MageWeapon = 0;
				WeaponAttributes.UseBestSkill = 0;
			}
		}
	}
}
Any ideas on how to fix this?
Remo82 is offline   Reply With Quote
Old 03-25-2007, 06:37 PM   #263 (permalink)
Forum Expert
 
Lucid Nagual's Avatar
 
Join Date: Nov 2004
Location: Beyond the Gates of Hell
Age: 36
Posts: 3,509
Question

Quote:
Originally Posted by Remo82 View Post
I put the code into the file, but it still does not attach a default string to a bow that is created and I cannot string the bow with any of the stringers.

Here is my Baseranged.cs file:

Code:
 
/*
    _________________________________
 -=(_)_______________________________)=-
   /   .   .   . ____  . ___      _/
  /~ /    /   / /     / /   )2006 /
 (~ (____(___/ (____ / /___/     (
  \ ----------------------------- \
   \    lucidnagual@charter.net    \
    \_     ===================      \
     \   -Owner of "The Conjuring"-  \
      \_     ===================     ~\
       )      Lucid's Mega Pack        )
      /~    The Mother Load v1.1     _/
    _/_______________________________/
 -=(_)_______________________________)=-
 
 */
using System;
using Server.Items;
using Server.Network;
using Server.Spells;
using Server.Mobiles;
using Server.Targeting;
using System.Collections;
using Server.Enums;
using Server.ACC.CM;
using Server.LucidNagual;
 
 
namespace Server.Items
{
    public abstract class BaseRanged : BaseMeleeWeapon
    {
        //--<<Advanced Archery Edit>>---------------------[Start 1/4]
        //SkillModule edit.
        private BaseRangedModule m_BaseRangedModule;
 
        [CommandProperty( AccessLevel.GameMaster )]
        public BaseRangedModule BaseRangedModule
        {
            get
            {
                BaseRangedModule existingModule = ( BaseRangedModule )CentralMemory.GetModule( this.Serial, typeof( BaseRangedModule ) );
 
                if ( existingModule == null )
                {
                    CentralMemory.Flush();
 
                    BaseRangedModule module = new BaseRangedModule( this.Serial );
                    CentralMemory.AppendModule( this.Serial, module, true );
 
                    return ( m_BaseRangedModule = module as BaseRangedModule );
                }
                else
                {
                    if ( m_BaseRangedModule != null )
                        return m_BaseRangedModule;
 
                    return ( m_BaseRangedModule = existingModule as BaseRangedModule );
                }
            }
        }
        //SkillModule edit.
 
        public static int PlayerFreezeTimer = 2; 
        public static int NPCFreezeTimer = 2;         
 
        public BoltType m_BoltType;
        public ArrowType m_ArrowType;
        public StringStrength m_Strength;
        public PoundsPerPull m_PullWeight;
 
        [CommandProperty(AccessLevel.GameMaster)]
        public ArrowType ArrowSelection    { get { return m_BaseRangedModule.ArrowSelection; } set { m_BaseRangedModule.ArrowSelection = value; } }
 
        [CommandProperty(AccessLevel.GameMaster)]
        public BoltType BoltSelection { get { return m_BaseRangedModule.BoltSelection; } set { m_BaseRangedModule.BoltSelection = value; } }
 
        [CommandProperty(AccessLevel.GameMaster)]
        public StringStrength StringStrengthSelection { get { return m_BaseRangedModule.StringStrengthSelection; } set { m_BaseRangedModule.StringStrengthSelection = value; } }
 
        [CommandProperty(AccessLevel.GameMaster)]
        public PoundsPerPull PullWeightSelection { get { return m_BaseRangedModule.PullWeightSelection; } set { m_BaseRangedModule.PullWeightSelection = value; } }
 
        [CommandProperty( AccessLevel.GameMaster )]
        public bool HasBowString { get{ return m_BaseRangedModule.HasBowString; } set{ m_BaseRangedModule.HasBowString = value; } }        
 
        private static Mobile m_Mobile;
        private static BaseRanged BRanged;
 
        public static TimeSpan StringWarningDelay = TimeSpan.FromSeconds( 10.0 );
        public static DateTime m_NextStringWarning;
        public static TimeSpan AmmoWarningDelay = TimeSpan.FromSeconds( 10.0 );
        public static DateTime m_NextAmmoWarning;
 
        public static readonly TimeSpan PlayerFreezeDuration = TimeSpan.FromSeconds( 3.0 );
        public static readonly TimeSpan NPCFreezeDuration = TimeSpan.FromSeconds( 6.0 );
        //--<<Advanced Archery Edit>>---------------------[End 1/4]
 
        public abstract int EffectID{ get; }
        public abstract Type AmmoType{ get; }
        public abstract Item Ammo{ get; }
 
        public override int DefHitSound{ get{ return 0x234; } }
        public override int DefMissSound{ get{ return 0x238; } }
 
        public override SkillName DefSkill{ get{ return SkillName.Archery; } }
        public override WeaponType DefType{ get{ return WeaponType.Ranged; } }
        public override WeaponAnimation DefAnimation{ get{ return WeaponAnimation.ShootXBow; } }
 
        public override SkillName AccuracySkill{ get{ return SkillName.Archery; } }
 
        public BaseRanged( int itemID ) : base( itemID )
        {
        }
 
        public BaseRanged( Serial serial ) : base( serial )
        {
this.HasBowString = true;
this.StringStrengthSelection = StringStrength.VeryWeak;
this.PullWeightSelection = PoundsPerPull.Fourty;
            BRanged = this;
        }
 
        public static void Initialize()
        {
            Mobile from = m_Mobile;
            //Mobile m = (Mobile)parent;
            //BaseWeapon weapon = m.Weapon as BaseWeapon;
        }
 
        public override TimeSpan OnSwing( Mobile attacker, Mobile defender )
        {
            WeaponAbility a = WeaponAbility.GetCurrentAbility( attacker );
 
            // Make sure we've been standing still for .25/.5/1 second depending on Era
            if ( DateTime.Now > ( attacker.LastMoveTime + TimeSpan.FromSeconds( Core.SE ? 0.25 : (Core.AOS ? 0.5 : 1.0) )) || (Core.AOS && WeaponAbility.GetCurrentAbility( attacker ) is MovingShot) )
            {
                bool canSwing = true;
 
                if ( Core.AOS )
                {
                    canSwing = ( !attacker.Paralyzed && !attacker.Frozen );
 
                    if ( canSwing )
                    {
                        Spell sp = attacker.Spell as Spell;
 
                        canSwing = ( sp == null || !sp.IsCasting || !sp.BlocksMovement );
                    }
                }
 
                if ( canSwing && attacker.HarmfulCheck( defender ) )
                {
                    attacker.DisruptiveAction();
                    attacker.Send( new Swing( 0, attacker, defender ) );
 
                    if ( OnFired( attacker, defender ) )
                    {
                        if ( CheckHit( attacker, defender ) )
                            OnHit( attacker, defender );
                        else
                            OnMiss( attacker, defender );
                    }
                }
 
                attacker.RevealingAction();
 
                return GetDelay( attacker );
            }
            else
            {
                attacker.RevealingAction();
 
                return TimeSpan.FromSeconds( 0.25 );
            }
        }
 
        public override void OnHit( Mobile attacker, Mobile defender )
        {
            //--<<Advanced Archery Edit>>---------------------[Start 2/4]
            if ( attacker == null || defender == null )
                return;
 
            MoreBaseRanged.CustomAmmoCheck( attacker, defender, AmmoType );
 
            if ( Ammo == null )
                attacker.SendMessage( "You are out of arrows, or may have to choose a different type of arrow by double clicking the bow." );
            //--<<Advanced Archery Edit>>---------------------[End 2/4]
 
            if ( attacker.Player && !defender.Player && ( defender.Body.IsAnimal || defender.Body.IsMonster ) && 0.4 >= Utility.RandomDouble() )
                defender.AddToBackpack( Ammo );
 
            base.OnHit( attacker, defender );
        }
 
        public override void OnMiss( Mobile attacker, Mobile defender )
        {
            if ( attacker.Player && 0.4 >= Utility.RandomDouble() )
                Ammo.MoveToWorld( new Point3D( defender.X + Utility.RandomMinMax( -1, 1 ), defender.Y + Utility.RandomMinMax( -1, 1 ), defender.Z ), defender.Map );
 
            base.OnMiss( attacker, defender );
        }
 
        public virtual bool OnFired( Mobile attacker, Mobile defender )
        {
            //--<<Advanced Archery Edit>>---------------------[Start 3/4]
            PlayerMobile a_pm = attacker as PlayerMobile;
            Container pack = attacker.Backpack;
            BaseQuiver quiver = attacker.FindItemOnLayer( Layer.MiddleTorso ) as BaseQuiver;
            //Container quiver = ( BaseQuiver )a_pm.Quiver;
            BaseRangedModule module = this.BaseRangedModule;
 
            if ( !module.HasBowString )
            {
                if ( DateTime.Now >= m_NextStringWarning )
                {
                    m_NextStringWarning = DateTime.Now + StringWarningDelay;
                    attacker.SendMessage( "You need a string to use this bow. See a local fletcher to apply the string." );
                    return false;
                }
                else
                    return false;
            }
 
            if ( Ammo == null )
            {
                if ( DateTime.Now >= m_NextAmmoWarning )
                {
                    m_NextAmmoWarning = DateTime.Now + AmmoWarningDelay;
                    attacker.SendMessage( "You are out of ammo." );
                    return false;
                }
                else
                    return false;
            }
 
            if( attacker.Player && quiver != null && quiver.LowerAmmoCost > Utility.Random( 100 ) )
            {
                attacker.MovingEffect( defender, EffectID, 18, 1, false, false );
                return true;
            }
 
            if( attacker.Player &&
               ( quiver == null || !quiver.ConsumeTotal( AmmoType, 1 ) ) &&
               (   pack == null ||   !pack.ConsumeTotal( AmmoType, 1 ) ) )
                return false;
 
            attacker.MovingEffect( defender, EffectID, 18, 1, false, false );
            return true;
            //--<<Advanced Archery Edit>>---------------------[End 3/4]
        }
 
        //--<<Advanced Archery Edit>>---------------------[Start 4/4]
        public override void OnDoubleClick( Mobile from )
        {
            BaseRangedModule module = this.BaseRangedModule;
 
            if ( IsChildOf( from.Backpack ) || Parent == from )
            {
                if ( module.HasBowString )
                {
                    if ( this is Bow || this is CompositeBow || this is ElvenCompositeLongbow ||
                        this is MagicalShortbow || this is Yumi )
                    {
                        from.SendMessage( "Please choose which type of arrows you wish to use." );
                        from.Target = new BowTarget( this );
                    }
 
                    if ( this is Crossbow || this is HeavyCrossbow || this is RepeatingCrossbow )
                    {
                        from.SendMessage( "Please choose which type of bolts you wish to use." );
                        from.Target = new CrossbowTarget( this );
                    }
                }
                else
                {
                    from.SendMessage( "You must string your bow. Please select a bow stringer." );
                    from.Target = new StringerTarget( this );
                }
            }
 
            else
                return;
        }
 
        /*        public override void OnDelete()
        {
            BaseRangedModule module = ( BaseRangedModule )CentralMemory.GetModule( BRanged.Serial, typeof( BaseRangedModule ) );
 
            if ( module != null )
            {
                module.Delete();
            }
 
            base.OnDelete();
        }*/
 
        public override bool OnEquip( Mobile from )
        {
            m_Mobile = from;
 
            return true;
        }
 
        public override bool CanEquip( Mobile from )
        {
            BaseRangedModule module = this.BaseRangedModule;
 
            if ( from != null && !module.HasBowString )
            {
                from.SendMessage( "You cannot use that without a string." );
                return false;
            }
 
            base.CanEquip( from );
 
            return true;
        }
 
        public virtual Item AmmoArrowSelected()
        {
            BaseRangedModule module = this.BaseRangedModule;
 
            switch ( module.m_ArrowType )
            {
                case ArrowType.Normal:
                    return new Arrow();
                case ArrowType.Poison:
                    return new PoisonArrow();
                case ArrowType.Explosive:
                    return new ExplosiveArrow();
                case ArrowType.ArmorPiercing:
                    return new ArmorPiercingArrow();
                case ArrowType.Freeze:
                    return new FreezeArrow();
                case ArrowType.Lightning:
                    return new LightningArrow();
 
                default:
                    return new Arrow();
            }
        }
 
        public virtual Type GetArrowSelected()
        {
            BaseRangedModule module = this.BaseRangedModule;
 
            switch ( module.m_ArrowType )
            {
                case ArrowType.Normal:
                    return typeof( Arrow );
                case ArrowType.Poison:
                    return typeof( PoisonArrow );
                case ArrowType.Explosive:
                    return typeof( ExplosiveArrow );
                case ArrowType.ArmorPiercing:
                    return typeof( ArmorPiercingArrow );
                case ArrowType.Freeze:
                    return typeof( FreezeArrow );
                case ArrowType.Lightning:
                    return typeof( LightningArrow );
 
                default:
                    return typeof( Arrow );
            }
        }
 
        public virtual Item AmmoBoltSelected()
        {
            BaseRangedModule module = this.BaseRangedModule;
 
            switch ( module.m_BoltType )
            {
                case BoltType.Normal:
                    return new Bolt();
                case BoltType.Poison:
                    return new PoisonBolt();
                case BoltType.Explosive:
                    return new ExplosiveBolt();
                case BoltType.ArmorPiercing:
                    return new ArmorPiercingBolt();
                case BoltType.Freeze:
                    return new FreezeBolt();
                case BoltType.Lightning:
                    return new LightningBolt();
 
                default:
                    return new Bolt();
            }
        }
 
        public virtual Type GetBoltSelected()
        {
            BaseRangedModule module = this.BaseRangedModule;
 
            switch ( module.m_BoltType )
            {
                case BoltType.Normal:
                    return typeof( Bolt );
                case BoltType.Poison:
                    return typeof( PoisonBolt );
                case BoltType.Explosive:
                    return typeof( ExplosiveBolt );
                case BoltType.ArmorPiercing:
                    return typeof( ArmorPiercingBolt );
                case BoltType.Freeze:
                    return typeof( FreezeBolt );
                case BoltType.Lightning:
                    return typeof( LightningBolt );
 
                default:
                    return typeof( Bolt );
            }
        }
 
        public override void GetProperties( ObjectPropertyList list )
        {
            base.GetProperties(list);
 
            BaseRangedModule module = this.BaseRangedModule;
 
            if ( module != null )
            {
                ArrayList strings = new ArrayList();
 
                strings.Add( ( "---------------" ) );
 
                if ( this is Bow || this is CompositeBow || this is ElvenCompositeLongbow ||
                    this is MagicalShortbow || this is Yumi )
                {
                    strings.Add( ( "Quiver Using: " + module.m_ArrowType ) );
                }
 
                if ( this is Crossbow || this is HeavyCrossbow || this is RepeatingCrossbow )
                {
                    strings.Add( ( "Quiver Using: " + module.m_BoltType ) );
                }
 
                strings.Add( ( "lbs per Pull: " + module.m_PullWeight ) );
                strings.Add( ( "String Str: "  + module.m_Strength ) );
 
                string toAdd = "";
                int amount = strings.Count;
                int current = 1;
 
                foreach ( string str in strings )
                {
                    toAdd += str;
 
                    if ( current != amount )
                        toAdd += "\n";
 
                    ++current;
                }
 
                if ( toAdd != "" )
                    list.Add( 1070722, toAdd );
            }
            else
            {
                return;
            }
        }
        //--<<Advanced Archery Edit>>---------------------[End 4/4]
 
        public override void Serialize( GenericWriter writer )
        {
            base.Serialize( writer );
            writer.Write( (int) 2 ); // version
        }
 
        public override void Deserialize( GenericReader reader )
        {
            base.Deserialize( reader );
            int version = reader.ReadInt();
 
            switch ( version )
            {
                case 2:
                case 1:
                    {
                        break;
                    }
                case 0:
                    {
                        /*m_EffectID =*/ reader.ReadInt();
                        break;
                    }
            }
 
            if ( version < 2 )
            {
                WeaponAttributes.MageWeapon = 0;
                WeaponAttributes.UseBestSkill = 0;
            }
        }
    }
}
Any ideas on how to fix this?
Did you try deleting the existing bow and recreating a new one?
__________________
Leader of the Anti-OSI Movement. Inventing a new game experience in an EA Games-free environment.

Don Juan Matus "The basic difference between an ordinary man and a warrior is that a warrior takes everything as a challenge, while an ordinary man takes everything as a blessing or as a curse."


My Customs:
Lucid Nagual is offline   Reply With Quote
</
Old 03-25-2007, 06:43 PM   #264 (permalink)