RunUO Community

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Flying Gryphon RUNUO 2.0 SVN 156

Tru

Knight
Rosey1;707003 said:
well i added this but how high are you supposed to be able to move? I can't get off the ground.

Just confused a little bit

When you mount the gump should pop up if you have enough taming
 

Nemercry

Wanderer
Tru;705374 said:
How about sharing your system......

Hrm... I dont know. At this time we have a lack of players :). Not the best time for Sharing :)....

At least i have no time this days...
But i will post this eventually in 2-3 weeks.

greetings Nemris
 

madron

Wanderer
GoddessRevivedShard;707535 said:
Just installed! AWSOME! only been live for 3 hours and my players are flying everywhere and having a blast!

Great Job!


glad you are enjoying this. True credit goes to the original author and to Tru, for his Z fixes. I am glad others are enjoying the gryphon :)
 

Contagious

Wanderer
Sweet script i was quite amazed that this would work in uo so i jammed it into my runuo directory and edited a few things and wow i was amazed.

Thx great script.
 

Hands Of God

Sorceror
Okay one ? how do i make it so when they are moving forward they dont stop every three feet then start again. maybe i am to tired but i cant find it in the script anywhere
 

madron

Wanderer
Hands Of God;712803 said:
Okay one ? how do i make it so when they are moving forward they dont stop every three feet then start again. maybe i am to tired but i cant find it in the script anywhere

This is a new issue I have not come across before, can you explain more? also have you added Tru fixes for the Z? post your gryphon gump.

~M
 

Hands Of God

Sorceror
My gump
Code:
using System;
using Server;
using Server.Items;
using Server.Multis;
using Server.Network;
using Server.Mobiles;
using Server.ContextMenus;
using System.Collections;
using Server.Misc;


namespace Server.Gumps
{
	public class Gryphongump : Gump
	{
		private Mobile m_Owner;
		public Mobile Owner{ get{ return m_Owner; } set{ m_Owner = value; } }

		public Gryphongump(Mobile owner, int page) : base( 20, 20 )
		{
			owner.CloseGump( typeof( Gryphongump ) );

			int gumpX = 0; int gumpY = 0;

			m_Owner = owner;

			Closable = false;
			Disposable = false;
			Dragable = true;
			Resizable = false;

			AddPage( 0 );

			AddPage( 1 ); 

			gumpX = 10; gumpY = 10;
			AddImage( gumpX, gumpY, 0x1392 );

                        if ( page != 1 ) 
		        {
			gumpX = 87; gumpY = 40;
			AddButton( gumpX, gumpY, 0x1194, 0x1194, 1, GumpButtonType.Reply, 0);
                        }                        
                        if ( page != 2 ) 
		        {
			gumpX = 118; gumpY = 53;
			AddButton( gumpX, gumpY, 0x1195, 0x1195, 2, GumpButtonType.Reply, 0);
                        } 
                        if ( page != 3 ) 
		        {
			gumpX = 131; gumpY = 86;
			AddButton( gumpX, gumpY, 0x1196, 0x1196, 3, GumpButtonType.Reply, 0);
                        }
                        if ( page != 4 ) 
		        {
			gumpX = 114; gumpY = 117;
			AddButton( gumpX, gumpY, 0x1197, 0x1197, 4, GumpButtonType.Reply, 0);
                        }
                        if ( page != 5 ) 
		        {
			gumpX = 86; gumpY = 131;
			AddButton( gumpX, gumpY, 0x1198, 0x1198, 5, GumpButtonType.Reply, 0);
                        }
                        if ( page != 6 ) 
		        {
			gumpX = 54; gumpY = 119;
			AddButton( gumpX, gumpY, 0x1199, 0x1199, 6, GumpButtonType.Reply, 0);
                        }
                        if ( page != 7 ) 
		        {
			gumpX = 41; gumpY = 86;
			AddButton( gumpX, gumpY, 0x119A, 0x119A, 7, GumpButtonType.Reply, 0);
                        }
                        if ( page != 8 ) 
		        {
			gumpX = 54; gumpY = 52;
			AddButton( gumpX, gumpY, 0x119B, 0x119B, 8, GumpButtonType.Reply, 0);
                        }
                        if ( page != 9 ) 
		        {
			gumpX = 101; gumpY = 89;
			AddButton( gumpX, gumpY, 0x26AC, 0x26AE, 9, GumpButtonType.Reply, 0);
                        }
                        if ( page != 10 )
		        {
			gumpX = 102; gumpY = 112;
			AddButton( gumpX, gumpY, 0x26B2, 0x26B4, 10, GumpButtonType.Reply, 0);
                        }


                        if ( page == 1) 
		        {
			gumpX = 87; gumpY = 40;
			AddButton( gumpX, gumpY, 0x1194, 0x1194, 11, GumpButtonType.Reply, 0);

			gumpX = 87; gumpY = 40;
			AddImage( gumpX, gumpY, 0x1194, 69 );
                        }
                        else if ( page == 2 )              
		        {
			gumpX = 118; gumpY = 53;
			AddButton( gumpX, gumpY, 0x1195, 0x1195, 12, GumpButtonType.Reply, 0);

			gumpX = 118; gumpY = 53;
			AddImage( gumpX, gumpY, 0x1195, 69 );
                        }
                        else if ( page == 3 )             
		        {
			gumpX = 131; gumpY = 86;
			AddButton( gumpX, gumpY, 0x1196, 0x1196, 13, GumpButtonType.Reply, 0);

			gumpX = 131; gumpY = 86;
			AddImage( gumpX, gumpY, 0x1196, 69 );
                        }
                        else if ( page == 4 )              
		        {
			gumpX = 114; gumpY = 117;
			AddButton( gumpX, gumpY, 0x1197, 0x1197, 14, GumpButtonType.Reply, 0);

			gumpX = 114; gumpY = 117;
			AddImage( gumpX, gumpY, 0x1197, 69 );
                        }
                        else if ( page == 5 )             
		        {
			gumpX = 86; gumpY = 131;
			AddButton( gumpX, gumpY, 0x1198, 0x1198, 15, GumpButtonType.Reply, 0);

			gumpX = 86; gumpY = 131;
			AddImage( gumpX, gumpY, 0x1198, 69 );
                        }
                        else if ( page == 6 )             
		        {
			gumpX = 54; gumpY = 119;
			AddButton( gumpX, gumpY, 0x1199, 0x1199, 16, GumpButtonType.Reply, 0);

			gumpX = 54; gumpY = 119;
			AddImage( gumpX, gumpY, 0x1199, 69 );
                        }
                        else if ( page == 7 )             
		        {
			gumpX = 41; gumpY = 86;
			AddButton( gumpX, gumpY, 0x119A, 0x119A, 17, GumpButtonType.Reply, 0);

			gumpX = 41; gumpY = 86;
			AddImage( gumpX, gumpY, 0x119A, 69 );
                        }
                        else if ( page == 8 )             
		        {
			gumpX = 54; gumpY = 52;
			AddButton( gumpX, gumpY, 0x119B, 0x119B, 18, GumpButtonType.Reply, 0);

			gumpX = 54; gumpY = 52;
			AddImage( gumpX, gumpY, 0x119B, 69 );
                        }
                        else if ( page == 9 )            
		        {
			gumpX = 101; gumpY = 89;
			AddButton( gumpX, gumpY, 0x26AC, 0x26AE, 19, GumpButtonType.Reply, 0);

			gumpX = 101; gumpY = 89;
			AddImage( gumpX, gumpY, 0x26AC, 69 );
                        }
                        else if ( page == 10 )           
		        {
			gumpX = 102; gumpY = 112;
			AddButton( gumpX, gumpY, 0x26B2, 0x26B4, 20, GumpButtonType.Reply, 0);

			gumpX = 102; gumpY = 112;
			AddImage( gumpX, gumpY, 0x26B2, 69 );
                        }

		}

		public override void OnResponse( NetState state, RelayInfo info )
		{
			Mobile from = state.Mobile;

	                PlayerMobile pm = (PlayerMobile)from;

			Tile landTile = pm.Map.Tiles.GetLandTile(pm.X, pm.Y );

                      	bool location = ( landTile.Z <= ( pm.Z -6 )  );

                      	if (location )
                      	animateflying(from);

			switch( info.ButtonID )
			{
                          	case 0:
				break;

                                case 1:
                                from.Direction = Direction.Up;
                                from.SendGump(new Gryphongump( from , 1) );
 			       	if ( pm.m_Flyingtimer != null )
                               	pm.m_Flyingtimer.Stop();
                               	pm.m_Flyingtimer = new Flyingtimer( pm, 1 );  
                               	pm.m_Flyingtimer.Start();                          
				break;

				case 2:
                                from.Direction = Direction.North;
                                from.SendGump(new Gryphongump( from , 2) ); 
 			       	if ( pm.m_Flyingtimer != null )
                               	pm.m_Flyingtimer.Stop();
                               	pm.m_Flyingtimer = new Flyingtimer( pm, 2 );  
                               	pm.m_Flyingtimer.Start();     
				break;

				case 3:
                                from.Direction = Direction.Right;
                                from.SendGump(new Gryphongump( from , 3) ); 
 			       	if ( pm.m_Flyingtimer != null )
                               	pm.m_Flyingtimer.Stop();
                               	pm.m_Flyingtimer = new Flyingtimer( pm, 3 );  
                               	pm.m_Flyingtimer.Start();     
				break;

				case 4:
                                from.Direction = Direction.East;
                                from.SendGump(new Gryphongump( from , 4) ); 
 			       	if ( pm.m_Flyingtimer != null )
                               	pm.m_Flyingtimer.Stop();
                               	pm.m_Flyingtimer = new Flyingtimer( pm, 4 );  
                               	pm.m_Flyingtimer.Start();     
				break;

				case 5:
                                from.Direction = Direction.Down;
                                from.SendGump(new Gryphongump( from , 5) ); 
 			       	if ( pm.m_Flyingtimer != null )
                               	pm.m_Flyingtimer.Stop();
                               	pm.m_Flyingtimer = new Flyingtimer( pm, 5 );  
                               	pm.m_Flyingtimer.Start();     
				break;

				case 6:
                                from.Direction = Direction.South;
                                from.SendGump(new Gryphongump( from , 6) ); 
 			       	if ( pm.m_Flyingtimer != null )
                               	pm.m_Flyingtimer.Stop();
                               	pm.m_Flyingtimer = new Flyingtimer( pm, 6 );  
                               	pm.m_Flyingtimer.Start();     
				break;

				case 7:
                                from.Direction = Direction.Left;
                                from.SendGump(new Gryphongump( from , 7) ); 
 			       	if ( pm.m_Flyingtimer != null )
                               	pm.m_Flyingtimer.Stop();
                               	pm.m_Flyingtimer = new Flyingtimer( pm, 7 );  
                               	pm.m_Flyingtimer.Start();     
				break;

				case 8:
                                from.Direction = Direction.West;
                                from.SendGump(new Gryphongump( from , 8) ); 
 			       	if ( pm.m_Flyingtimer != null )
                               	pm.m_Flyingtimer.Stop();
                               	pm.m_Flyingtimer = new Flyingtimer( pm, 8 );  
                               	pm.m_Flyingtimer.Start();     
				break;

				case 9:
                                from.SendGump(new Gryphongump( from , 9) ); 
 			       	if ( pm.m_Flyingtimer != null )
                               	pm.m_Flyingtimer.Stop();
                               	pm.m_Flyingtimer = new Flyingtimer( pm, 9 );  
                               	pm.m_Flyingtimer.Start();     
				break;

				case 10:
                                from.SendGump(new Gryphongump( from , 10) );                           
 			       	if ( pm.m_Flyingtimer != null )
                               	pm.m_Flyingtimer.Stop();
                               	pm.m_Flyingtimer = new Flyingtimer( pm, 10 );  
                               	pm.m_Flyingtimer.Start();     
				break;

				case 11:
			        if ( pm.m_Flyingtimer != null )
                                pm.m_Flyingtimer.Stop();
                                if ( location )
			        {
                                	pm.m_Flyingtimer = new Flyingtimer( pm, 0 );
                                	pm.m_Flyingtimer.Start();
	                        }
                                else
                                pm.m_Flyingtimer = null;
                                from.SendGump(new Gryphongump( from , 0) );  
				break;

				case 12:
			        if ( pm.m_Flyingtimer != null )
                                pm.m_Flyingtimer.Stop();
                                if ( location )
			        {
                                	pm.m_Flyingtimer = new Flyingtimer( pm, 0 );
                                	pm.m_Flyingtimer.Start();
	                        } 
                                else
                                pm.m_Flyingtimer = null;
                                from.SendGump(new Gryphongump( from , 0) );  
				break;

				case 13:
			        if ( pm.m_Flyingtimer != null )
                                pm.m_Flyingtimer.Stop();
                                if ( location )
			        {
                                	pm.m_Flyingtimer = new Flyingtimer( pm, 0 );
                                	pm.m_Flyingtimer.Start();
	                        } 
                                else
                                pm.m_Flyingtimer = null;
                                from.SendGump(new Gryphongump( from , 0) );  
				break;

				case 14:
			        if ( pm.m_Flyingtimer != null )
                                pm.m_Flyingtimer.Stop();
                                if ( location )
			        {
                                	pm.m_Flyingtimer = new Flyingtimer( pm, 0 );
                                	pm.m_Flyingtimer.Start();
	                        } 
                                else
                                pm.m_Flyingtimer = null;
                                from.SendGump(new Gryphongump( from , 0) );  
				break;

				case 15:
			        if ( pm.m_Flyingtimer != null )
                                pm.m_Flyingtimer.Stop();
                                if ( location )
			        {
                                	pm.m_Flyingtimer = new Flyingtimer( pm, 0 );
                                	pm.m_Flyingtimer.Start();
	                        } 
                                else
                                pm.m_Flyingtimer = null;
                                from.SendGump(new Gryphongump( from , 0) );  
				break;

				case 16:
			        if ( pm.m_Flyingtimer != null )
                                pm.m_Flyingtimer.Stop();
                                if ( location )
			        {
                                	pm.m_Flyingtimer = new Flyingtimer( pm, 0 );
                                	pm.m_Flyingtimer.Start();
	                        } 
                                else
                                pm.m_Flyingtimer = null;
                                from.SendGump(new Gryphongump( from , 0) );  
				break;

				case 17:
			        if ( pm.m_Flyingtimer != null )
                                pm.m_Flyingtimer.Stop();
                                if ( location )
			        {
                                	pm.m_Flyingtimer = new Flyingtimer( pm, 0 );
                                	pm.m_Flyingtimer.Start();
	                        } 
                                else
                                pm.m_Flyingtimer = null;
                                from.SendGump(new Gryphongump( from , 0) );  
				break;

				case 18:
			        if ( pm.m_Flyingtimer != null )
                                pm.m_Flyingtimer.Stop();
                                if ( location )
			        {
                                	pm.m_Flyingtimer = new Flyingtimer( pm, 0 );
                                	pm.m_Flyingtimer.Start();
	                        } 
                                else
                                pm.m_Flyingtimer = null;
                                from.SendGump(new Gryphongump( from , 0) );  
				break;

				case 19:
			        if ( pm.m_Flyingtimer != null )
                                pm.m_Flyingtimer.Stop();
                                if ( location )
			        {
                                	pm.m_Flyingtimer = new Flyingtimer( pm, 0 );
                                	pm.m_Flyingtimer.Start();
	                        } 
                                else
                                pm.m_Flyingtimer = null;
                                from.SendGump(new Gryphongump( from , 0) );  
				break;

				case 20:
			        if ( pm.m_Flyingtimer != null )
                                pm.m_Flyingtimer.Stop();
                                if ( location )
			        {
                                	pm.m_Flyingtimer = new Flyingtimer( pm, 0 );
                                	pm.m_Flyingtimer.Start();
	                        } 
                                else
                                pm.m_Flyingtimer = null;
                                from.SendGump(new Gryphongump( from , 0) );  
				break;
	                }
		}

		public static void animateflying( Mobile m )
		{
               		m.PlaySound( 0x2D0 );
			m.Animate( 24, 5, 1, true, false, 0 );
		}

		public static bool checkmap( Mobile m )
		{
                	if ( m.Map == Map.Malas && m.Z >= 0 )
			return true;

                	if ( m.Map == Map.Trammel && m.Z >= 100 )
			return true;

                	if ( m.Map == Map.Ilshenar && m.Z >= 100 )
			return true;


			return false;
		}

		private class Flyingtimer : Timer 
                { 
                	private PlayerMobile m_Mobile; 
                	private int d;
			private int anim = 0;

                	public Flyingtimer( PlayerMobile m, int seq ) : base( TimeSpan.FromSeconds( 0.2 ) )
                	{
                		m_Mobile = m;
                		d = seq;
                	} 

                	protected override void OnTick() 
                	{
				bool location1 = false;               
                		bool location2 = false;  

				if ( !m_Mobile.Alive || m_Mobile.NetState == null || !( m_Mobile.Mount is Gryphon ) )
                		{
					m_Mobile.Animate( 23, 5, 1, true, false, 0 );
                			Stop();
                		}
                 		else if (d == 0)
                 		{
				Tile landTile = m_Mobile.Map.Tiles.GetLandTile( m_Mobile.X, m_Mobile.Y );

				if ( landTile.Z >= ( m_Mobile.Z -5 )  )
                           	location1 = true;

                             		if ( location1 )
		             		{
                             			m_Mobile.CloseGump( typeof( Gryphongump ) );
                             			m_Mobile.SendGump(new Gryphongump( m_Mobile , 0) ); 
                             			Stop();
                             		}
                             		else
                             		{
						if ( anim <= 0)
                				{
                					animateflying(m_Mobile);
                					anim = 2;
                				}
                				else
                				{
                					anim -= 1;
                				}
						Start();
                 			}
				}           
                 		else if (d == 1) 
                 		{
                      			Tile[] tiles = m_Mobile.Map.Tiles.GetStaticTiles( ( m_Mobile.X - 1 ), ( m_Mobile.Y - 1 ), true );
		      			Tile landTile = m_Mobile.Map.Tiles.GetLandTile( m_Mobile.X, m_Mobile.Y );

					for ( int i = 0; i < tiles.Length; ++i )
		           		{
		           			Tile tile = tiles[i];
                           			if ( tile.Z >= ( m_Mobile.Z -5 ))
                           			location1 = true;
                           		}
                             		if ( landTile.Z >= ( m_Mobile.Z -5 )  )
                           		{
                           			location1 = true;
                           			location2 = true;
                           		}
					if ( location1 )
		             		{
                             			m_Mobile.CloseGump( typeof( Gryphongump ) );
                             			m_Mobile.SendGump(new Gryphongump( m_Mobile , 0) ); 

                             			if (location2)
                             			Stop();
                             			else
                             			{
                             				d = 0;
                             				Start();
                             			}
					}
                             		else
		             		{
						if ( anim <= 0)
                				{
                					animateflying(m_Mobile);
                					anim = 2;
                				}
                				else
                				{
                				anim -= 1;
                				}

						m_Mobile.Direction |= Direction.Running;
						m_Mobile.X -= 1;
                             			m_Mobile.Y -= 1;

						Start(); 
                             		}
				}
                		else if ( d == 2) 
                		{
                      			Tile[] tiles = m_Mobile.Map.Tiles.GetStaticTiles( ( m_Mobile.X ), ( m_Mobile.Y - 1 ), true );
		      			Tile landTile = m_Mobile.Map.Tiles.GetLandTile( m_Mobile.X, m_Mobile.Y );

					for ( int i = 0; i < tiles.Length; ++i )
		           		{
		           			Tile tile = tiles[i];
                           			if ( tile.Z >= ( m_Mobile.Z -5 ))
                           			location1 = true;
                           		}
                             
                           		if ( landTile.Z >= ( m_Mobile.Z -5 )  )
                           		{
                           			location1 = true;
                           			location2 = true;
                           		}

					if ( location1 )
		             		{
                             			m_Mobile.CloseGump( typeof( Gryphongump ) );
                            	 		m_Mobile.SendGump(new Gryphongump( m_Mobile , 0) ); 

                             			if (location2)
                             			Stop();
                             			else
                             			{
                             				d = 0;
                             				Start();
                             			}
					}
                             		else
		             		{
						if ( anim <= 0)
                				{
                					animateflying(m_Mobile);
                					anim = 2;
                				}
                				else
                				{
                				anim -= 1;
                				}

						m_Mobile.Direction |= Direction.Running;
						m_Mobile.Y -= 1;
                             			Start(); 
                             		}
                		}
                		else if ( d == 3)
                		{
                      			Tile[] tiles = m_Mobile.Map.Tiles.GetStaticTiles( ( m_Mobile.X + 1 ), ( m_Mobile.Y - 1 ), true );
		      			Tile landTile = m_Mobile.Map.Tiles.GetLandTile( m_Mobile.X, m_Mobile.Y );

					for ( int i = 0; i < tiles.Length; ++i )
		           		{
		           			Tile tile = tiles[i];
                           			if ( tile.Z >= ( m_Mobile.Z -5 ))
                           			location1 = true;
                           		}
                             
                           		if ( landTile.Z >= ( m_Mobile.Z -5 )  )
                           		{
                           			location1 = true;
                           			location2 = true;
                           		}
					
					if ( location1 )
		             		{
                             			m_Mobile.CloseGump( typeof( Gryphongump ) );
                             			m_Mobile.SendGump(new Gryphongump( m_Mobile , 0) ); 

                             			if (location2)
                             			Stop();
                             			else
                             			{
                             				d = 0;
                             				Start();
                             			}
					}
                             		else
		             		{
						if ( anim <= 0)
                				{
                					animateflying(m_Mobile);
                					anim = 2;
                				}
                				else
                				{
                					anim -= 1;
                				}

						m_Mobile.Direction |= Direction.Running;
						m_Mobile.X += 1;
                             			m_Mobile.Y -= 1;
                             			Start(); 
                             		}
                		}
                		else if ( d == 4)
                		{
                      			Tile[] tiles = m_Mobile.Map.Tiles.GetStaticTiles( ( m_Mobile.X + 1 ), ( m_Mobile.Y ), true );
		      			Tile landTile = m_Mobile.Map.Tiles.GetLandTile( m_Mobile.X, m_Mobile.Y );

					for ( int i = 0; i < tiles.Length; ++i )
		           		{
		           			Tile tile = tiles[i];
                           			if ( tile.Z >= ( m_Mobile.Z -5 ))
                           			location1 = true;
                           		}
                             
                           		if ( landTile.Z >= ( m_Mobile.Z -5 )  )
                           		{
                           			location1 = true;
                           			location2 = true;
                           		}

					if ( location1 )
		             		{
                             			m_Mobile.CloseGump( typeof( Gryphongump ) );
                             			m_Mobile.SendGump(new Gryphongump( m_Mobile , 0) ); 

                             			if (location2)
                             			Stop();
                             			else
                             			{
                             				d = 0;
                             				Start();
                             			}
					}
                             		else
		             		{
						if ( anim <= 0)
                				{
                					animateflying(m_Mobile);
                					anim = 2;
                				}
                				else
                				{
                				anim -= 1;
                				}

						m_Mobile.Direction |= Direction.Running;
						m_Mobile.X += 1;
                             			Start(); 
                             		}
                		}
                		else if ( d == 5)
                		{
                      			Tile[] tiles = m_Mobile.Map.Tiles.GetStaticTiles( ( m_Mobile.X + 1 ), ( m_Mobile.Y + 1 ), true );
		      			Tile landTile = m_Mobile.Map.Tiles.GetLandTile( m_Mobile.X, m_Mobile.Y );

					for ( int i = 0; i < tiles.Length; ++i )
		           		{
		           			Tile tile = tiles[i];
                           			if ( tile.Z >= ( m_Mobile.Z -5 ))
                           			location1 = true;
                           		}
                             
                           		if ( landTile.Z >= ( m_Mobile.Z -5 )  )
                           		{
                           			location1 = true;
                          	 		location2 = true;
                           		}

					if ( location1 )
		             		{
                            	 		m_Mobile.CloseGump( typeof( Gryphongump ) );
                             			m_Mobile.SendGump(new Gryphongump( m_Mobile , 0) ); 

                             			if (location2)
                             			Stop();
                             			else
                             			{
                             				d = 0;
                             				Start();
                             			}
					}
                             		else
		             		{
						if ( anim <= 0)
                				{
                					animateflying(m_Mobile);
                					anim = 2;
                				}
                				else
                				{
                				anim -= 1;
                				}
	
						m_Mobile.Direction |= Direction.Running;
						m_Mobile.X += 1;
                             			m_Mobile.Y += 1;
                             			Start(); 
                             		}
                		}
                		else if ( d == 6)
                		{
                      			Tile[] tiles = m_Mobile.Map.Tiles.GetStaticTiles( ( m_Mobile.X ), ( m_Mobile.Y + 1 ), true );
		      			Tile landTile = m_Mobile.Map.Tiles.GetLandTile( m_Mobile.X, m_Mobile.Y );

					for ( int i = 0; i < tiles.Length; ++i )
		           		{
		           			Tile tile = tiles[i];
                           			if ( tile.Z >= ( m_Mobile.Z -5 ))
                           			location1 = true;
                           		}
                             
                           		if ( landTile.Z >= ( m_Mobile.Z -5 )  )
                           		{
                           			location1 = true;
                           			location2 = true;
                           		}
				
					if ( location1 )
		             		{
                            		 	m_Mobile.CloseGump( typeof( Gryphongump ) );
                             			m_Mobile.SendGump(new Gryphongump( m_Mobile , 0) ); 

                             			if (location2)
                             			Stop();
                             			else
                             			{
                             				d = 0;
                             				Start();
                             			}
					}
                             		else
		             		{
						if ( anim <= 0)
                				{
                					animateflying(m_Mobile);
                					anim = 2;
                				}
                				else
                				{
                				anim -= 1;
                				}

						m_Mobile.Direction |= Direction.Running;
						m_Mobile.Y += 1;
                             			Start(); 
                             		}
                		}
                		else if ( d == 7)
                		{
                      			Tile[] tiles = m_Mobile.Map.Tiles.GetStaticTiles( ( m_Mobile.X - 1 ), ( m_Mobile.Y + 1 ), true );
		      			Tile landTile = m_Mobile.Map.Tiles.GetLandTile( m_Mobile.X, m_Mobile.Y );

					for ( int i = 0; i < tiles.Length; ++i )
		           		{
		           			Tile tile = tiles[i];
                           			if ( tile.Z >= ( m_Mobile.Z -5 ))
                           			location1 = true;
                           		}
                             
                           		if ( landTile.Z >= ( m_Mobile.Z -5 )  )
                           		{
                           			location1 = true;
                           			location2 = true;
                           		}
				
					if ( location1 )
		             		{
                             			m_Mobile.CloseGump( typeof( Gryphongump ) );
                             			m_Mobile.SendGump(new Gryphongump( m_Mobile , 0) ); 

                             			if (location2)
                             			Stop();
                             			else
                             			{
                             				d = 0;
                             				Start();
                             			}
					}
                             		else
		             		{
						if ( anim <= 0)
                				{
                					animateflying(m_Mobile);
                					anim = 2;
                				}
                				else
                				{
                					anim -= 1;
                				}

						m_Mobile.Direction |= Direction.Running;
						m_Mobile.X -= 1;
                             			m_Mobile.Y += 1;
                             			Start(); 
                             		} 
                		}
                		else if ( d == 8)
                		{
                      			Tile[] tiles = m_Mobile.Map.Tiles.GetStaticTiles( ( m_Mobile.X - 1 ), ( m_Mobile.Y ), true );
		      			Tile landTile = m_Mobile.Map.Tiles.GetLandTile( m_Mobile.X, m_Mobile.Y );

					for ( int i = 0; i < tiles.Length; ++i )
		           		{
		           			Tile tile = tiles[i];
                           			if ( tile.Z >= ( m_Mobile.Z -5 ))
                           			location1 = true;
                           		}

                             		if ( landTile.Z >= ( m_Mobile.Z -5 )  )
                           		{
                           			location1 = true;
                           			location2 = true;
                           		}
					
					if ( location1 )
		             		{
                             			m_Mobile.CloseGump( typeof( Gryphongump ) );
                            	 		m_Mobile.SendGump(new Gryphongump( m_Mobile , 0) ); 

                             			if (location2)
                             			Stop();
                             			else
                             			{
                             				d = 0;
                             				Start();
                             			}
					}
                             		else
		             		{
						if ( anim <= 0)
                				{
                					animateflying(m_Mobile);
                					anim = 2;
                				}
                				else
                				{
                				anim -= 1;
                				}

						m_Mobile.Direction |= Direction.Running;
						m_Mobile.X -= 1;
                             			Start(); 
                             		}
                		}
                		else if ( d == 9) 
                		{
                      			Tile[] tiles = m_Mobile.Map.Tiles.GetStaticTiles( ( m_Mobile.X ), ( m_Mobile.Y ), true );
		      			Tile landTile = m_Mobile.Map.Tiles.GetLandTile( m_Mobile.X, m_Mobile.Y );

					for ( int i = 0; i < tiles.Length; ++i )
		           		{
		           			Tile tile = tiles[i];
                           			if ( tile.Z >= ( m_Mobile.Z +5 ) )
                           			location1 = true;
                           		}
                             
                           		if ( landTile.Z >= ( m_Mobile.Z +5 )  )
                           		location1 = true;

					if ( location1 || checkmap( m_Mobile ) )
		             		{
                            			m_Mobile.CloseGump( typeof( Gryphongump ) );
                             			m_Mobile.SendGump(new Gryphongump( m_Mobile , 0) ); 
                             			Start();
                             		}
                             		else
		             		{
						if ( anim <= 0)
                				{
                					animateflying(m_Mobile);
                					anim = 2;
                				}
                				else
                				{
                				anim -= 1;
                				}	
		
						m_Mobile.Direction |= Direction.Running;
						m_Mobile.Z += 1;
                             			Start(); 
                             		}
                		}
                		else if ( d == 10) 
                		{
                      			Tile[] tiles = m_Mobile.Map.Tiles.GetStaticTiles( ( m_Mobile.X ), ( m_Mobile.Y ), true );
		      			Tile landTile = m_Mobile.Map.Tiles.GetLandTile( m_Mobile.X, m_Mobile.Y );

					for ( int i = 0; i < tiles.Length; ++i )
		           		{
		           			Tile tile = tiles[i];
                           			if ( tile.Z >= ( m_Mobile.Z -6 ))
                           			location1 = true;
                           		}
                             
                           		if ( landTile.Z >= ( m_Mobile.Z -6 )  )
                           		location1 = true;

					if ( location1 )
		             		{
                             			m_Mobile.CloseGump( typeof( Gryphongump ) );
                             			m_Mobile.SendGump(new Gryphongump( m_Mobile , 0) ); 
		             			m_Mobile.Animate( 23, 5, 1, true, false, 0 );
                             			Stop();
                             		}
                             		else
		             		{
						if ( anim <= 0)
                				{
                					animateflying(m_Mobile);
                					anim = 2;
                				}
                				else
                				{
                					anim -= 1;
                				}

						m_Mobile.Direction |= Direction.Running;
	 					m_Mobile.Z -= 1;
                             			Start(); 
                             		}
                		}
                		else
                		{
                		Stop();
                		} 
			} 
		} 
	}
}

and its not really a problem its more of a inconvinace.
what is happing is when the gryphon stops flaping its wings it stops in mid air. it can be a long ride if u stop ever ten feet.
 

madron

Wanderer
Hands of God* Your saying that the script makes you stop every 3 to 10 feet, or are you removing your mouse from the control?

It is by design that if you let up off the button the Gryphon stops, else all kinds of strange and odd things can happen...getting stuck in places you don't want to be in.

Let me know please.
 

Hands Of God

Sorceror
Nah i stay on the gump and it still does it. i mean, the gyphon flys for lets say 20 secs, stops the wings stop moving and he is in a stand stance, then takes off again. then about 15 to 20 secs later stops for a sec then goes. like he flys and then stops for a breath.
if u want to see u can come to my shard and ill show u more.
 

Tru

Knight
Hands Of God;716707 said:
Nah i stay on the gump and it still does it. i mean, the gyphon flys for lets say 20 secs, stops the wings stop moving and he is in a stand stance, then takes off again. then about 15 to 20 secs later stops for a sec then goes. like he flys and then stops for a breath.
if u want to see u can come to my shard and ill show u more.

I would be willing to bet your issue comes from the actual flyingtimer in PlayerMobile.cs. Look at the timer duration does it match the time length you describe? (I would check but I'm in a hotel in Texas away from my scripts). Your Animation returns to normal at the end of each flyingtimer cycle then changes again when the timer starts again, I Believe.
 

greywolf79

Sorceror
Just out of curiousity, does anyone know if this will work on RunUO 2.0 RC1? I do not use the SVN yet, since I am so new to scripting and some of my scripts do not work on SVN (including some customs others have written).

GreyWolf.
 

madron

Wanderer
greywolf79;716748 said:
Just out of curiousity, does anyone know if this will work on RunUO 2.0 RC1? I do not use the SVN yet, since I am so new to scripting and some of my scripts do not work on SVN (including some customs others have written).

GreyWolf.

Greywolf:
Make a copy of the files your going to change, as a backup, you should backup your server files everyday anyway. But this way if you run into issues, you can restore the server files to their original content while you figure out the error, if any.

Post your errors and we will try and help you. RC2 is about to be released BTW.

~M
 

Tru

Knight
greywolf79;716748 said:
Just out of curiousity, does anyone know if this will work on RunUO 2.0 RC1? I do not use the SVN yet, since I am so new to scripting and some of my scripts do not work on SVN (including some customs others have written).

GreyWolf.

It should I don't remember editing it for svn updates.
 

greywolf79

Sorceror
Thanks for the replyes. I tried it with the edits to the playermobile.cs and it compiles (but I am also working on other scripts with a slow pc, so finishing those too before logging on). I think it will work though. Thanks again.

GreyWolf.
 

Varkasal

Sorceror
Just Curious

Is the fix that Tru made to this in the original file now or do i need to grab that also? Sounds and from the screenshot looks like a great addition and i cant wait to try it out.
 

madron

Wanderer
Varkasal;727514 said:
Is the fix that Tru made to this in the original file now or do i need to grab that also? Sounds and from the screenshot looks like a great addition and i cant wait to try it out.

They are not in the original download.
 
Top