|
||
|
|||||||
| New Join Forum So your new to RunUO and looking to work with people that are new, this is the place. |
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 (permalink) |
|
Join Date: Aug 2004
Age: 30
Posts: 546
|
First off yes i know if i change [props on a char i can set "walk on water" to true, but none of the chars i do that to can ever walk on water, neither can they walk over mountains or other things you'd expect them to be able to do. While i'm thinking about it, is there a way for gm/admin to dress or undress a player or take things from the players backpack? Every time i try to remove items i get "that does not belong to you, you can attempt to steal it" So far the only way i've found to get a robe off of a player is to [remove and i'd really rather not delete players items :-) Any help is welcome thx.
|
|
|
|
|
#2 (permalink) |
|
Join Date: May 2004
Location: FLorida
Age: 20
Posts: 2
|
well to walk on water and go accross mountains..all you have to do is [tele or [multi tele..well for the character thing just do [delete if it doesn't belong to them. and who ever the item belongs too just replace the item back. i am not sure why you want to dress and undress your players. but i hope my info will help ya
![]() |
|
|
|
|
#3 (permalink) |
|
Forum Expert
|
I believe walking on water is a cilent issue you can't do anything about. That is only for mobiles like a krakken. As gm or above you should be able to just take things out of players backpack or bank if you are close enough to them. To take stuff off of them you can try doing the [move command. Also [m tele would be the easiest to get around.
|
|
|
|
|
#4 (permalink) |
|
Join Date: May 2004
Age: 33
Posts: 39
|
To walk on water you can set your props canswim true then [add seahorse a horse will spawn get on him and ride all over the water. They cant walk on land mounted though. There isnt a way for the char its self to walk on water.
|
|
|
|
|
#5 (permalink) |
|
Moderate
Join Date: Nov 2002
Location: USA
Posts: 6,598
|
I can walk on water.
(oh... you mean in game. Sorry, not possible there.)
__________________
David Forum Moderator The RunUO.com Forum Moderator Team Forum Rules and Guidelines RunUO Forum Search Engine Download RunUO 2.0 RC2 |
|
|
|
|
#7 (permalink) |
|
Moderate
Join Date: Nov 2002
Location: USA
Posts: 6,598
|
![]()
__________________
David Forum Moderator The RunUO.com Forum Moderator Team Forum Rules and Guidelines RunUO Forum Search Engine Download RunUO 2.0 RC2 |
|
|
|
|
#8 (permalink) |
|
Join Date: Sep 2004
Age: 27
Posts: 5
|
This is a serious pain in the butt, However if you have the know how.... Script invisable Tiles... Then place massive ammounts of these across the rivers and other water sources, and then use 3rd party progs to freeze these items into static maps files
Will be a serious pain though, We did this on a Sphere Server once across the Holy Lake... Worked out ok. ![]() |
|
|
|
|
#9 (permalink) | |
|
Forum Expert
|
Quote:
Raven's right. Make it a spell or something for admins only... as in dont make a spellbook for it, make it only castable through the [cast command, therefore players wont be able to use it, then make it so no matter where the admin walks there's 9 tiles around him (or more, only 9 may effect his running). Increase it's time or something, and then you have your walk on water.
__________________
|
|
|
|
|
|
#11 (permalink) |
|
God of Pandora
Join Date: Jun 2003
Location: Gainesville GA
Age: 31
Posts: 2,000
|
I have Aquatic elves on my shard, they can ride sea horses on water... its not hard to do.
I don't get why one wouldn't want to ride a horse on the water... walking without a mount is just slow. I set the sea horses to look for the Race register (to be sure only Aquatics can do so) if found, it sets the walk on water to true, if not, it sets it to false. if you want everyone to use them, just add this line to the ethereal sea horses (and/or normal sea horses) public override void OnDoubleClick( Mobile from ) { from.CanSwim = true; base.OnDoubleClick( from ); } the sea horses (non ethy) can walk on land but not water... until they have a rider, then they can go on water but not land. Also you may want to place a few steps on docks around the world. When walking on water, you cant get on land unless you can step up to the land, and most places are too high for that... the only other way is by using a boat (or the stuck menu), and if a player doesn't have one, he/she will have a very hard time finding places to get back on land (not impossible though, there are a few such areas)
__________________
The Den of KillerBeeZ...Kender's Komments, uncensored commentary from the Kender. Plus anything else the Kender might have in his pouches.
|
|
|
|
|
#12 (permalink) |
|
Join Date: Feb 2003
Posts: 44
|
I think it's client side.
for those who remind that, on sphere shards (older client version) you could use the godverdata.mul that would clientside take anytile as "walkable", so u'd have a nasty bumpy effect if you were a player because your movement were checked by the server and the server was sending u back each time u were bumping. but if u were a gm you'd be able to walk anywhere (thru walls or water, anythin') so I guess it's probably the same problem. or at least can be fixed the same way. all the idees i've heard up to now to get to walk on water seem a bit too "heavy" for the server, just to get a gm to walk on water. ![]() |
|
|
|
|
#14 (permalink) |
|
Forum Novice
Join Date: Apr 2004
Posts: 158
|
Hey Killer...I tried that and for some reason, it didn't work. It compiled just fine, but the ethy seahorse still would not let me walk on the water...Here is my Ethereal.cs script.
Code:
using System;
using Server.Mobiles;
using Server.Items;
using Server.Spells;
namespace Server.Mobiles
{
public class EtherealMount : Item, IMount, IMountItem, Engines.VeteranRewards.IRewardItem
{
private int m_MountedID;
private int m_RegularID;
private Mobile m_Rider;
private bool m_IsRewardItem;
[CommandProperty( AccessLevel.GameMaster )]
public bool IsRewardItem
{
get{ return m_IsRewardItem; }
set{ m_IsRewardItem = value; }
}
[Constructable]
public EtherealMount( int itemID, int mountID ) : base( itemID )
{
m_MountedID = mountID;
m_RegularID = itemID;
m_Rider = null;
Layer = Layer.Invalid;
LootType = LootType.Blessed;
}
[CommandProperty( AccessLevel.GameMaster )]
public int MountedID
{
get
{
return m_MountedID;
}
set
{
if ( m_MountedID != value )
{
m_MountedID = value;
if ( m_Rider != null )
ItemID = value;
}
}
}
[CommandProperty( AccessLevel.GameMaster )]
public int RegularID
{
get
{
return m_RegularID;
}
set
{
if ( m_RegularID != value )
{
m_RegularID = value;
if ( m_Rider == null )
ItemID = value;
}
}
}
public EtherealMount( Serial serial ) : base( serial )
{
}
public override bool DisplayLootType{ get{ return false; } }
public virtual int FollowerSlots{ get{ return 1; } }
public void RemoveFollowers()
{
if ( m_Rider != null )
m_Rider.Followers -= FollowerSlots;
if ( m_Rider != null && m_Rider.Followers < 0 )
m_Rider.Followers = 0;
}
public void AddFollowers()
{
if ( m_Rider != null )
m_Rider.Followers += FollowerSlots;
}
public override void OnDoubleClick( Mobile from )
{
if ( !IsChildOf( from.Backpack ) )
from.SendLocalizedMessage( 1042001 ); // That must be in your pack for you to use it.
else if ( m_IsRewardItem && !Engines.VeteranRewards.RewardSystem.CheckIsUsableBy( from, this, null ) )
return;
else if ( !from.CanBeginAction( typeof( BaseMount ) ) )
from.SendLocalizedMessage( 1040024 ); // You are still too dazed from being knocked off your mount to ride!
else if ( from.Mounted )
from.SendLocalizedMessage( 1005583 ); // Please dismount first.
else if ( from.IsBodyMod && !from.Body.IsHuman )
from.SendLocalizedMessage( 1061628 ); // You can't do that while polymorphed.
else if ( from.HasTrade )
from.SendLocalizedMessage( 1042317, "", 0x41 ); // You may not ride at this time
else if ( (from.Followers + FollowerSlots) > from.FollowersMax )
from.SendLocalizedMessage( 1049679 ); // You have too many followers to summon your mount.
else if ( Multis.DesignContext.Check( from ) )
new EtherealSpell( this, from ).Cast();
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 2 ); // version
writer.Write( (bool) m_IsRewardItem );
writer.Write( (int)m_MountedID );
writer.Write( (int)m_RegularID );
writer.Write( m_Rider );
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
LootType = LootType.Blessed;
int version = reader.ReadInt();
switch ( version )
{
case 2:
{
m_IsRewardItem = reader.ReadBool();
goto case 0;
}
case 1: reader.ReadInt(); goto case 0;
case 0:
{
m_MountedID = reader.ReadInt();
m_RegularID = reader.ReadInt();
m_Rider = reader.ReadMobile();
if ( m_MountedID == 0x3EA2 )
m_MountedID = 0x3EAA;
break;
}
}
AddFollowers();
}
public override DeathMoveResult OnParentDeath( Mobile parent )
{
Rider = null;//get off, move to pack
return DeathMoveResult.RemainEquiped;
}
public static void Dismount( Mobile m )
{
IMount mount = m.Mount;
if ( mount != null )
mount.Rider = null;
}
[CommandProperty( AccessLevel.GameMaster )]
public Mobile Rider
{
get
{
return m_Rider;
}
set
{
if ( value != m_Rider )
{
if ( value == null )
{
Internalize();
UnmountMe();
RemoveFollowers();
m_Rider = value;
}
else
{
if ( m_Rider != null )
Dismount( m_Rider );
Dismount( value );
RemoveFollowers();
m_Rider = value;
AddFollowers();
MountMe();
}
}
}
}
public void UnmountMe()
{
Container bp = m_Rider.Backpack;
ItemID = m_RegularID;
Layer = Layer.Invalid;
Movable = true;
if ( Hue == 0x4001 )
Hue = 0;
if ( bp != null )
{
bp.DropItem( this );
}
else
{
Point3D loc = m_Rider.Location;
Map map = m_Rider.Map;
if ( map == null || map == Map.Internal )
{
loc = m_Rider.LogoutLocation;
map = m_Rider.LogoutMap;
}
MoveToWorld( loc, map );
}
}
public void MountMe()
{
ItemID = m_MountedID;
Layer = Layer.Mount;
Movable = false;
if ( Hue == 0 )
Hue = 0x4001;
ProcessDelta();
m_Rider.ProcessDelta();
m_Rider.EquipItem( this );
m_Rider.ProcessDelta();
ProcessDelta();
}
public IMount Mount
{
get
{
return this;
}
}
public static void StopMounting( Mobile mob )
{
if ( mob.Spell is EtherealSpell )
((EtherealSpell)mob.Spell).Stop();
}
private class EtherealSpell : Spell
{
private static SpellInfo m_Info = new SpellInfo( "Ethereal Mount", "", SpellCircle.Second, 230 );
private EtherealMount m_Mount;
private Mobile m_Rider;
public EtherealSpell( EtherealMount mount, Mobile rider ) : base( rider, null, m_Info )
{
m_Rider = rider;
m_Mount = mount;
}
public override bool ClearHandsOnCast{ get{ return false; } }
public override bool RevealOnCast{ get{ return false; } }
public override TimeSpan GetCastRecovery()
{
return TimeSpan.Zero;
}
public override TimeSpan GetCastDelay()
{
return TimeSpan.FromSeconds( 0.0 );
}
public override int GetMana()
{
return 0;
}
public override bool ConsumeReagents()
{
return true;
}
public override bool CheckFizzle()
{
return true;
}
private bool m_Stop;
public void Stop()
{
m_Stop = true;
Disturb( DisturbType.Hurt, false, false );
}
public override bool CheckDisturb( DisturbType type, bool checkFirst, bool resistable )
{
if ( type == DisturbType.EquipRequest || type == DisturbType.UseRequest/* || type == DisturbType.Hurt*/ )
return false;
return true;
}
public override void DoHurtFizzle()
{
if ( !m_Stop )
base.DoHurtFizzle();
}
public override void DoFizzle()
{
if ( !m_Stop )
base.DoFizzle();
}
public override void OnDisturb( DisturbType type, bool message )
{
if ( message && !m_Stop )
Caster.SendLocalizedMessage( 1049455 ); // You have been disrupted while attempting to summon your ethereal mount!
//m_Mount.UnmountMe();
}
public override void OnCast()
{
if ( !m_Mount.Deleted && m_Mount.Rider == null && m_Mount.IsChildOf( m_Rider.Backpack ) )
m_Mount.Rider = m_Rider;
FinishSequence();
}
}
}
public class EtherealHorse : EtherealMount
{
public override int LabelNumber{ get{ return 1041298; } } // Ethereal Horse Statuette
[Constructable]
public EtherealHorse() : base( 0x20DD, 0x3EAA )
{
}
public EtherealHorse( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( Name == "an ethereal horse" )
Name = null;
if ( ItemID == 0x2124 )
ItemID = 0x20DD;
}
}
public class EtherealLlama : EtherealMount
{
public override int LabelNumber{ get{ return 1041300; } } // Ethereal Llama Statuette
[Constructable]
public EtherealLlama() : base( 0x20F6, 0x3EAB )
{
}
public EtherealLlama( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( Name == "an ethereal llama" )
Name = null;
}
}
public class EtherealOstard : EtherealMount
{
public override int LabelNumber{ get{ return 1041299; } } // Ethereal Ostard Statuette
[Constructable]
public EtherealOstard() : base( 0x2135, 0x3EAC )
{
}
public EtherealOstard( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( Name == "an ethereal ostard" )
Name = null;
}
}
public class EtherealRidgeback : EtherealMount
{
public override int LabelNumber{ get{ return 1049747; } } // Ethereal Ridgeback Statuette
[Constructable]
public EtherealRidgeback() : base( 0x2615, 0x3E9A )
{
}
public EtherealRidgeback( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( Name == "an ethereal ridgeback" )
Name = null;
}
}
public class EtherealUnicorn : EtherealMount
{
public override int LabelNumber{ get{ return 1049745; } } // Ethereal Unicorn Statuette
[Constructable]
public EtherealUnicorn() : base( 0x25CE, 0x3E9B )
{
}
public EtherealUnicorn( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( Name == "an ethereal unicorn" )
Name = null;
}
}
public class EtherealBeetle : EtherealMount
{
public override int LabelNumber{ get{ return 1049748; } } // Ethereal Beetle Statuette
[Constructable]
public EtherealBeetle() : base( 0x260F, 0x3E97 )
{
}
public EtherealBeetle( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( Name == "an ethereal beetle" )
Name = null;
}
}
public class EtherealKirin : EtherealMount
{
public override int LabelNumber{ get{ return 1049746; } } // Ethereal Ki-Rin Statuette
[Constructable]
public EtherealKirin() : base( 0x25A0, 0x3E9C )
{
}
public EtherealKirin( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( Name == "an ethereal kirin" )
Name = null;
}
}
public class EtherealHellsteed : EtherealMount
{
[Constructable]
public EtherealHellsteed() : base( 0x2617, 0x3EBB )
{
Name = "an Ethereal Hellsteed";
}
public EtherealHellsteed( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( Name == "an Ethereal Hellsteed" )
Name = null;
}
}
public class EtherealSwampDragon : EtherealMount
{
public override int LabelNumber{ get{ return 1049749; } } // Ethereal Swamp Dragon Statuette
[Constructable]
public EtherealSwampDragon() : base( 0x2619, 0x3E98 )
{
Name = "an ethereal swamp dragon";
}
public EtherealSwampDragon( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( Name == "an ethereal swamp dragon" )
Name = null;
}
}
public class EtherealHiryu : EtherealMount
{
public override int LabelNumber{ get{ return 1049749; } } // Ethereal Hiryu Statuette
[Constructable]
public EtherealHiryu() : base( 0x276A, 0x3E94 )
{
Name = "an ethereal hiryu";
}
public EtherealHiryu( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( Name == "an ethereal hiryu" )
Name = null;
}
}
public class EtherealSeaHorse : EtherealMount
{
[Constructable]
public EtherealSeaHorse() : base( 0x25BA, 0x3EAA )
{
Name = "an Ethereal Sea Horse";
}
public override void OnDoubleClick( Mobile from )
{
from.CanSwim = true;
base.OnDoubleClick( from );
}
public EtherealSeaHorse( Serial serial ) : base( serial )
{
}
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 0 ); // version
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
if ( Name == "an Ethereal Sea Horse" )
Name = null;
}
}
}
|
|
|
|
|
#15 (permalink) | |
|
Master of the Internet
|
Quote:
*points at two little green squares under his name.* ![]()
__________________
Paranoia is what happens when you finally have all of the facts. |
|
|
|
|
|
#16 (permalink) | |
|
Super Newb Moderator
Join Date: Jan 2004
Location: East Coast
Age: 34
Posts: 638
|
Quote:
*cough cough* points to three under his. ![]()
__________________
Merlin Forum Moderator The RunUO.com Forum Moderator Team DON'T PANIC Forum Rules Forum Rules And Guidelines |
|
|
|
|
|
#18 (permalink) |
|
Super Newb Moderator
Join Date: Jan 2004
Location: East Coast
Age: 34
Posts: 638
|
Wow I missed that one.
__________________
Merlin Forum Moderator The RunUO.com Forum Moderator Team DON'T PANIC Forum Rules Forum Rules And Guidelines |
|
|
![]() |
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|