1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Moongate check issue

Discussion in 'Script Support' started by sahisahi, Apr 16, 2018.

  1. sahisahi
    Offline

    sahisahi Member

    Joined:
    Jan 13, 2016
    Messages:
    639
    Likes Received:
    18
    I tried to add a backpack check to my moongate script

    and server throw an out of range exception, whenever a summoned creature tried to enter the gate i understand the error

    i want player to prevent use moongate if they are carrying a certain item, can anyone help me?

    Exception:
    System.InvalidCastException: Unable to cast object of type 'Server.Mobiles.SummonedDaemon' to type 'Server.Mobiles.PlayerMobile'.
    at Server.Items.Moongate.UseGate(Mobile m) in c:\Users\\Items\Skill Items\Magical\Misc\Moongate.cs:line 175
    at Server.Items.Moongate.EndConfirmation(Mobile from) in c:\Users\\Scripts\Items\Skill Items\Magical\Misc\Moongate.cs:line 298
    at Server.Items.Moongate.DelayTimer.OnTick() in c:\Users\\Scripts\Items\Skill Items\Magical\Misc\Moongate.cs:line 337
    at Server.Timer.Slice()
    at Server.Core.Main(String[] args)

    So i added a playermobile checking and now moongates DONT work

    thanks!


    Code (C#):
    1. public virtual void UseGate( Mobile m )
    2.         {
    3.             ClientFlags flags = m.NetState == null ? ClientFlags.None : m.NetState.Flags;
    4.  
    5.             bool hasstonewall = false;
    6.             bool hasgate = false;
    7.             Item paralyzeField = null;
    8.  
    9.             IPooledEnumerable eable;
    10.  
    11.             if (m_TargetMap != null)
    12.             {
    13.                 eable = m_TargetMap.GetItemsInRange(m_Target, 0);
    14.  
    15.                 foreach (Item i in eable)
    16.                 {
    17.                     if (i.ItemID == 0x80) //Stonewall
    18.                         hasstonewall = true;
    19.                     if (i.ItemID == 0xF6C) //Gate
    20.                         hasgate = true;
    21.                     if (i.ItemID >= 14695 && i.ItemID <= 14730) //Paralyze field
    22.                         paralyzeField = i;
    23.                 }
    24.  
    25.                 eable.Free();
    26.             }
    27.  
    28.             if ( Sigil.ExistsOn( m ) )
    29.             {
    30.                 m.SendLocalizedMessage( 1061632 ); // You can't do that while carrying the sigil.
    31.             }
    32.             if (m is PlayerMobile)   / ///my edit after the out of range exception error
    33.                 {
    34.     PlayerMobile mobile = (PlayerMobile)m;
    35.        Container pack = m.Backpack;
    36.  
    37.         Item am = m.Backpack.FindItemByType(typeof(myitem));
    38.         if (am != null)
    39.         {
    40.             m.LocalOverheadMessage(MessageType.Regular, 906, true, "You cannot enter while carrying that item!");
    41.         }
    42.        
    43.         }      ///my edit after the out of range exception error
    44.          
    45.             else if ( m_TargetMap != null && m_TargetMap != Map.Internal)
    46.             {
    47.                 if ( (hasgate || !Dispellable) && !hasstonewall )
    48.                 {
    49.                     BaseCreature.TeleportPets(m, m_Target, m_TargetMap);
    50.  
    51.                     m.MoveToWorld(m_Target, m_TargetMap);
    52.  
    53.                     if (m.AccessLevel == AccessLevel.Player || !m.Hidden)
    54.                     {
    55.                         //Iza - Teleport Poof
    56.                         Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x3728, 10, 10, 2023);
    57.                         Effects.SendLocationParticles(EffectItem.Create(m_Target, m.Map, EffectItem.DefaultDuration), 0x3728, 10, 10, 5023);
    58.                         m.PlaySound(0x1FE);
    59.                     }
    60.  
    61.                     if (paralyzeField != null)
    62.                         paralyzeField.OnMoveOver(m); //Paralyze player if paralyze field exist
    63.  
    64.                     OnGateUsed(m);
    65.                 }
    66.                 else
    67.                     m.SendAsciiMessage("You cannot teleport to that location.");
    68.             }
    69.             else
    70.             {
    71.                 m.SendMessage( "This moongate does not seem to go anywhere." );
    72.             }
    73.         }
     
  2. Juzzver
    Offline

    Juzzver Member

    Joined:
    Sep 17, 2013
    Messages:
    175
    Likes Received:
    17
    I can't see there problem with: Unable to cast object of type 'Server.Mobiles.SummonedDaemon' to type 'Server.Mobiles.PlayerMobile'
    but I see where you create variable "mobile" and continue use "m"(Mobile) variable.

    Post all script with correct lines of exception.
     
  3. sahisahi
    Offline

    sahisahi Member

    Joined:
    Jan 13, 2016
    Messages:
    639
    Likes Received:
    18
    Code (C#):
    1. using System;
    2. using Server.Factions;
    3. using Server.Gumps;
    4. using Server.Misc;
    5. using Server.Mobiles;
    6. using Server.Network;
    7. using Server.Regions;
    8.  
    9. namespace Server.Items
    10. {
    11.     [DispellableField]
    12.     public class Moongate : Item
    13.     {
    14.         private Point3D m_Target;
    15.         private Map m_TargetMap;
    16.         private bool m_bDispellable;
    17.         private bool m_Creatures;
    18.  
    19.         [CommandProperty( AccessLevel.GameMaster )]
    20.         public Point3D Target
    21.         {
    22.             get
    23.             {
    24.                 return m_Target;
    25.             }
    26.             set
    27.             {
    28.                 m_Target = value;
    29.             }
    30.         }
    31.  
    32.         [CommandProperty( AccessLevel.GameMaster )]
    33.         public Map TargetMap
    34.         {
    35.             get
    36.             {
    37.                 return m_TargetMap;
    38.             }
    39.             set
    40.             {
    41.                 m_TargetMap = value;
    42.             }
    43.         }
    44.  
    45.         [CommandProperty( AccessLevel.GameMaster )]
    46.         public bool Dispellable
    47.         {
    48.             get
    49.             {
    50.                 return m_bDispellable;
    51.             }
    52.             set
    53.             {
    54.                 m_bDispellable = value;
    55.             }
    56.         }
    57.  
    58.         [CommandProperty(AccessLevel.GameMaster)]
    59.         public bool Creatures
    60.         {
    61.             get { return m_Creatures; }
    62.             set { m_Creatures = value; }
    63.         }
    64.  
    65.  
    66.         public virtual bool ShowFeluccaWarning{ get{ return false; } }
    67.  
    68.         [Constructable]
    69.         public Moongate() : this( Point3D.Zero, null )
    70.         {
    71.             m_bDispellable = true;
    72.         }
    73.  
    74.         [Constructable]
    75.         public Moongate(bool bDispellable, bool creatures) : this( Point3D.Zero, null )
    76.         {
    77.             m_bDispellable = bDispellable;
    78.             m_Creatures = creatures;
    79.         }
    80.  
    81.         [Constructable]
    82.         public Moongate( Point3D target, Map targetMap) : base( 0xF6C )
    83.         {
    84.             Movable = false;
    85.             Light = LightType.Circle300;
    86.  
    87.             m_Target = target;
    88.             m_TargetMap = targetMap;
    89.  
    90.             m_Creatures = true;
    91.         }
    92.  
    93.         public Moongate( Serial serial ) : base( serial )
    94.         {
    95.         }
    96.  
    97.         public override void OnDoubleClick( Mobile from )
    98.         {
    99.             return;
    100.             //if ( !from.Player )
    101.             //    return;
    102.  
    103.             //if ( from.InRange( GetWorldLocation(), 1 ) )
    104.             //    CheckGate( from, 1 );
    105.             //else
    106.             //    from.SendLocalizedMessage( 500446 ); // That is too far away.
    107.         }
    108.  
    109.         public override bool OnMoveOver( Mobile m )
    110.         {
    111.              bool allowGate;
    112.  
    113.             if ( m.Player )
    114.                 allowGate = true;
    115.             else if ( m_Creatures && m is BaseCreature && !(m is BaseVendor) && ((BaseCreature)m).CanUseMoonGates)
    116.                 allowGate = true;
    117.             else
    118.                 allowGate = false;
    119.  
    120.             IPooledEnumerable eable = Map.GetItemsInRange(GetWorldLocation(), 0);
    121.  
    122.             foreach (Item i in eable)
    123.             {
    124.                 if (i.ItemID >= 14695 && i.ItemID <= 14730) //If paralyze field exists on gate, don't teleport player
    125.                     return true;
    126.             }
    127.  
    128.             if (allowGate)
    129.                 CheckGate( m, 0 );
    130.  
    131.             return true;
    132.         }
    133.  
    134.         public virtual void CheckGate( Mobile m, int range )
    135.         {
    136.             new DelayTimer( m, this, range ).Start();
    137.         }
    138.  
    139.         public virtual void OnGateUsed( Mobile m )
    140.         {
    141.         }
    142.  
    143.         public virtual void UseGate( Mobile m )
    144.         {
    145.             ClientFlags flags = m.NetState == null ? ClientFlags.None : m.NetState.Flags;
    146.  
    147.             bool hasstonewall = false;
    148.             bool hasgate = false;
    149.             Item paralyzeField = null;
    150.  
    151.             IPooledEnumerable eable;
    152.  
    153.             if (m_TargetMap != null)
    154.             {
    155.                 eable = m_TargetMap.GetItemsInRange(m_Target, 0);
    156.  
    157.                 foreach (Item i in eable)
    158.                 {
    159.                     if (i.ItemID == 0x80) //Stonewall
    160.                         hasstonewall = true;
    161.                     if (i.ItemID == 0xF6C) //Gate
    162.                         hasgate = true;
    163.                     if (i.ItemID >= 14695 && i.ItemID <= 14730) //Paralyze field
    164.                         paralyzeField = i;
    165.                 }
    166.  
    167.                 eable.Free();
    168.             }
    169.  
    170.             if ( Sigil.ExistsOn( m ) )
    171.             {
    172.                 m.SendLocalizedMessage( 1061632 ); // You can't do that while carrying the sigil.
    173.             }
    174.            
    175.     PlayerMobile mobile = (PlayerMobile)m;
    176.        Container pack = m.Backpack;
    177.  
    178.         Item am = m.Backpack.FindItemByType(typeof(myitem));
    179.         if (am != null)
    180.         {
    181.             m.LocalOverheadMessage(MessageType.Regular, 906, true, "You cannot enter while carrying that item!");
    182.         }
    183.             //else if ( m_TargetMap == Map.Felucca && m is PlayerMobile && ((PlayerMobile)m).Young )
    184.             //{
    185.             //    m.SendLocalizedMessage( 1049543 ); // You decide against traveling to Felucca while you are still young.
    186.             //}
    187.             //else if ( (m.Kills >= 5 && m_TargetMap != Map.Felucca) || ( m_TargetMap == Map.Tokuno && (flags & ClientFlags.Tokuno) == 0 ) || ( m_TargetMap == Map.Malas && (flags & ClientFlags.Malas) == 0 ) || ( m_TargetMap == Map.Ilshenar && (flags & ClientFlags.Ilshenar) == 0 ) )
    188.             //{
    189.             //    m.SendLocalizedMessage( 1019004 ); // You are not allowed to travel there.
    190.             //}
    191.             //else if ( m.Spell != null )
    192.             //{
    193.             //    m.SendLocalizedMessage( 1049616 ); // You are too busy to do that at the moment.
    194.             //}
    195.             else if ( m_TargetMap != null && m_TargetMap != Map.Internal)
    196.             {
    197.                 if ( (hasgate || !Dispellable) && !hasstonewall )
    198.                 {
    199.                     BaseCreature.TeleportPets(m, m_Target, m_TargetMap);
    200.  
    201.                     m.MoveToWorld(m_Target, m_TargetMap);
    202.  
    203.                     if (m.AccessLevel == AccessLevel.Player || !m.Hidden)
    204.                     {
    205.                         //Iza - Teleport Poof
    206.                         Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x3728, 10, 10, 2023);
    207.                         Effects.SendLocationParticles(EffectItem.Create(m_Target, m.Map, EffectItem.DefaultDuration), 0x3728, 10, 10, 5023);
    208.                         m.PlaySound(0x1FE);
    209.                     }
    210.  
    211.                     if (paralyzeField != null)
    212.                         paralyzeField.OnMoveOver(m); //Paralyze player if paralyze field exist
    213.  
    214.                     OnGateUsed(m);
    215.                 }
    216.                 else
    217.                     m.SendAsciiMessage("You cannot teleport to that location.");
    218.             }
    219.             else
    220.             {
    221.                 m.SendMessage( "This moongate does not seem to go anywhere." );
    222.             }
    223.         }
    224.  
    225.         public override void Serialize( GenericWriter writer )
    226.         {
    227.             base.Serialize( writer );
    228.  
    229.             writer.Write( 1 ); // version
    230.  
    231.             writer.Write( m_Target );
    232.             writer.Write( m_TargetMap );
    233.            
    234.             // Version 1
    235.             writer.Write( m_bDispellable );
    236.             writer.Write(m_Creatures);
    237.         }
    238.  
    239.         public override void Deserialize( GenericReader reader )
    240.         {
    241.             base.Deserialize( reader );
    242.  
    243.             int version = reader.ReadInt();
    244.  
    245.             m_Target = reader.ReadPoint3D();
    246.             m_TargetMap = reader.ReadMap();
    247.  
    248.             switch ( version )
    249.             {
    250.                 case 1:
    251.                     {
    252.                         m_bDispellable = reader.ReadBool();
    253.                         goto case 0;
    254.                     }
    255.                 case 0:
    256.                     {
    257.                         m_Creatures = reader.ReadBool();
    258.                         break;
    259.                     }
    260.             }
    261.         }
    262.  
    263.         public virtual bool ValidateUse( Mobile from, bool message )
    264.         {
    265.             if ( from.Deleted || Deleted )
    266.                 return false;
    267.  
    268.             if ( from.Map != Map || !from.InRange( this, 1 ) )
    269.             {
    270.                 if ( message )
    271.                     from.LocalOverheadMessage(MessageType.Regular, 0x3B2, 1019045); // I can't reach that.
    272.  
    273.                 return false;
    274.             }
    275.  
    276.             return true;
    277.         }
    278.  
    279.         public virtual void BeginConfirmation( Mobile from )
    280.         {
    281.             if ( IsInTown( from.Location, from.Map ) && !IsInTown( m_Target, m_TargetMap ) || (from.Map != Map.Felucca && TargetMap == Map.Felucca && ShowFeluccaWarning) )
    282.             {
    283.                 from.Send( new PlaySound( 0x20E, from.Location ) );
    284.                 from.CloseGump( typeof( MoongateConfirmGump ) );
    285.                 from.SendGump( new MoongateConfirmGump( from, this ) );
    286.             }
    287.             else
    288.             {
    289.                 EndConfirmation( from );
    290.             }
    291.         }
    292.  
    293.         public virtual void EndConfirmation( Mobile from )
    294.         {
    295.             if ( !ValidateUse( from, true ) )
    296.                 return;
    297.  
    298.             UseGate( from );
    299.         }
    300.  
    301.         public virtual void DelayCallback( Mobile from, int range )
    302.         {
    303.             if ( !ValidateUse( from, false ) || !from.InRange( this, range ) )
    304.                 return;
    305.  
    306.             if ( m_TargetMap != null )
    307.                 BeginConfirmation( from );
    308.             else
    309.                 from.SendMessage( "This moongate does not seem to go anywhere." );
    310.         }
    311.  
    312.         public static bool IsInTown( Point3D p, Map map )
    313.         {
    314.             if ( map == null )
    315.                 return false;
    316.  
    317.             GuardedRegion reg = (GuardedRegion) Region.Find( p, map ).GetRegion( typeof( GuardedRegion ) );
    318.  
    319.             return ( reg != null && !reg.IsDisabled() );
    320.         }
    321.  
    322.         private class DelayTimer : Timer
    323.         {
    324.             private readonly Mobile m_From;
    325.             private readonly Moongate m_Gate;
    326.             private int m_Range;
    327.  
    328.             public DelayTimer( Mobile from, Moongate gate, int range ) : base( TimeSpan.Zero )
    329.             {
    330.                 m_From = from;
    331.                 m_Gate = gate;
    332.                 m_Range = range;
    333.             }
    334.  
    335.             protected override void OnTick()
    336.             {
    337.                 m_Gate.EndConfirmation(m_From);
    338.             }
    339.         }
    340.     }
    341.  
    342.     public class ConfirmationMoongate : Moongate
    343.     {
    344.         private int m_GumpWidth;
    345.         private int m_GumpHeight;
    346.  
    347.         private int m_TitleColor;
    348.         private int m_MessageColor;
    349.  
    350.         private int m_TitleNumber;
    351.         private int m_MessageNumber;
    352.  
    353.         private string m_MessageString;
    354.  
    355.         [CommandProperty( AccessLevel.GameMaster )]
    356.         public int GumpWidth
    357.         {
    358.             get{ return m_GumpWidth; }
    359.             set{ m_GumpWidth = value; }
    360.         }
    361.  
    362.         [CommandProperty( AccessLevel.GameMaster )]
    363.         public int GumpHeight
    364.         {
    365.             get{ return m_GumpHeight; }
    366.             set{ m_GumpHeight = value; }
    367.         }
    368.  
    369.         [CommandProperty( AccessLevel.GameMaster )]
    370.         public int TitleColor
    371.         {
    372.             get{ return m_TitleColor; }
    373.             set{ m_TitleColor = value; }
    374.         }
    375.  
    376.         [CommandProperty( AccessLevel.GameMaster )]
    377.         public int MessageColor
    378.         {
    379.             get{ return m_MessageColor; }
    380.             set{ m_MessageColor = value; }
    381.         }
    382.  
    383.         [CommandProperty( AccessLevel.GameMaster )]
    384.         public int TitleNumber
    385.         {
    386.             get{ return m_TitleNumber; }
    387.             set{ m_TitleNumber = value; }
    388.         }
    389.  
    390.         [CommandProperty( AccessLevel.GameMaster )]
    391.         public int MessageNumber
    392.         {
    393.             get{ return m_MessageNumber; }
    394.             set{ m_MessageNumber = value; }
    395.         }
    396.  
    397.         [CommandProperty( AccessLevel.GameMaster )]
    398.         public string MessageString
    399.         {
    400.             get{ return m_MessageString; }
    401.             set{ m_MessageString = value; }
    402.         }
    403.  
    404.         [Constructable]
    405.         public ConfirmationMoongate() : this( Point3D.Zero, null )
    406.         {
    407.         }
    408.  
    409.         [Constructable]
    410.         public ConfirmationMoongate( Point3D target, Map targetMap ) : base( target, targetMap )
    411.         {
    412.         }
    413.  
    414.         public ConfirmationMoongate( Serial serial ) : base( serial )
    415.         {
    416.         }
    417.  
    418.         public virtual void Warning_Callback( Mobile from, bool okay, object state )
    419.         {
    420.             if ( okay )
    421.                 EndConfirmation( from );
    422.         }
    423.  
    424.         public override void BeginConfirmation( Mobile from )
    425.         {
    426.             if ( m_GumpWidth > 0 && m_GumpHeight > 0 && m_TitleNumber > 0 && (m_MessageNumber > 0 || m_MessageString != null) )
    427.             {
    428.                 from.CloseGump( typeof( WarningGump ) );
    429.                 from.SendGump( new WarningGump( m_TitleNumber, m_TitleColor, m_MessageString == null ? m_MessageNumber : (object)m_MessageString, m_MessageColor, m_GumpWidth, m_GumpHeight, Warning_Callback, from ) );
    430.             }
    431.             else
    432.             {
    433.                 base.BeginConfirmation( from );
    434.             }
    435.         }
    436.  
    437.         public override void Serialize( GenericWriter writer )
    438.         {
    439.             base.Serialize( writer );
    440.  
    441.             writer.Write( 0 ); // version
    442.  
    443.             writer.WriteEncodedInt( m_GumpWidth );
    444.             writer.WriteEncodedInt( m_GumpHeight );
    445.  
    446.             writer.WriteEncodedInt( m_TitleColor );
    447.             writer.WriteEncodedInt( m_MessageColor );
    448.  
    449.             writer.WriteEncodedInt( m_TitleNumber );
    450.             writer.WriteEncodedInt( m_MessageNumber );
    451.  
    452.             writer.Write( m_MessageString );
    453.         }
    454.  
    455.         public override void Deserialize( GenericReader reader )
    456.         {
    457.             base.Deserialize( reader );
    458.  
    459.             int version = reader.ReadInt();
    460.  
    461.             switch ( version )
    462.             {
    463.                 case 0:
    464.                 {
    465.                     m_GumpWidth = reader.ReadEncodedInt();
    466.                     m_GumpHeight = reader.ReadEncodedInt();
    467.  
    468.                     m_TitleColor = reader.ReadEncodedInt();
    469.                     m_MessageColor = reader.ReadEncodedInt();
    470.  
    471.                     m_TitleNumber = reader.ReadEncodedInt();
    472.                     m_MessageNumber = reader.ReadEncodedInt();
    473.  
    474.                     m_MessageString = reader.ReadString();
    475.  
    476.                     break;
    477.                 }
    478.             }
    479.         }
    480.     }
    481.  
    482.     public class MoongateConfirmGump : Gump
    483.     {
    484.         private readonly Mobile m_From;
    485.         private readonly Moongate m_Gate;
    486.  
    487.         public MoongateConfirmGump( Mobile from, Moongate gate ) : base( Core.AOS ? 110 : 20, Core.AOS ? 100 : 30 )
    488.         {
    489.             m_From = from;
    490.             m_Gate = gate;
    491.  
    492.             if ( Core.AOS )
    493.             {
    494.                 Closable = false;
    495.  
    496.                 AddPage( 0 );
    497.  
    498.                 AddBackground( 0, 0, 420, 280, 5054 );
    499.  
    500.                 AddImageTiled( 10, 10, 400, 20, 2624 );
    501.                 AddAlphaRegion( 10, 10, 400, 20 );
    502.  
    503.                 AddHtmlLocalized( 10, 10, 400, 20, 1062051, 30720, false, false ); // Gate Warning
    504.  
    505.                 AddImageTiled( 10, 40, 400, 200, 2624 );
    506.                 AddAlphaRegion( 10, 40, 400, 200 );
    507.  
    508.                 if ( from.Map != Map.Felucca && gate.TargetMap == Map.Felucca && gate.ShowFeluccaWarning )
    509.                     AddHtmlLocalized( 10, 40, 400, 200, 1062050, 32512, false, true ); // This Gate goes to Felucca... Continue to enter the gate, Cancel to stay here
    510.                 else
    511.                     AddHtmlLocalized( 10, 40, 400, 200, 1062049, 32512, false, true ); // Dost thou wish to step into the moongate? Continue to enter the gate, Cancel to stay here
    512.  
    513.                 AddImageTiled( 10, 250, 400, 20, 2624 );
    514.                 AddAlphaRegion( 10, 250, 400, 20 );
    515.  
    516.                 AddButton( 10, 250, 4005, 4007, 1, GumpButtonType.Reply, 0 );
    517.                 AddHtmlLocalized( 40, 250, 170, 20, 1011036, 32767, false, false ); // OKAY
    518.  
    519.                 AddButton( 210, 250, 4005, 4007, 0, GumpButtonType.Reply, 0 );
    520.                 AddHtmlLocalized( 240, 250, 170, 20, 1011012, 32767, false, false ); // CANCEL
    521.             }
    522.             else
    523.             {
    524.                 AddPage( 0 );
    525.  
    526.                 AddBackground( 0, 0, 420, 400, 5054 );
    527.                 AddBackground( 10, 10, 400, 380, 3000 );
    528.  
    529.                 AddHtml( 20, 40, 380, 60, @"Dost thou wish to step into the moongate? Continue to enter the gate, Cancel to stay here", false, false );
    530.  
    531.                 AddHtmlLocalized( 55, 110, 290, 20, 1011012, false, false ); // CANCEL
    532.                 AddButton( 20, 110, 4005, 4007, 0, GumpButtonType.Reply, 0 );
    533.  
    534.                 AddHtmlLocalized( 55, 140, 290, 40, 1011011, false, false ); // CONTINUE
    535.                 AddButton( 20, 140, 4005, 4007, 1, GumpButtonType.Reply, 0 );
    536.             }
    537.         }
    538.  
    539.         public override void OnResponse( NetState state, RelayInfo info )
    540.         {
    541.             if ( info.ButtonID == 1 )
    542.                 m_Gate.EndConfirmation( m_From );
    543.         }
    544.     }
    545. }
     
  4. Juzzver
    Offline

    Juzzver Member

    Joined:
    Sep 17, 2013
    Messages:
    175
    Likes Received:
    17
    Okay, now I'm understand what u mean.

    You forget added OnGateUsed(m); for your "myitem" checks.

    try next:
    Code (C#):
    1.  
    2.             if (m is PlayerMobile)  
    3.             {
    4.                 PlayerMobile mobile = (PlayerMobile)m;
    5.                 Container pack = mobile.Backpack;
    6.  
    7.                 Item am = mobile.Backpack.FindItemByType(typeof(myitem));
    8.                 if (am != null)
    9.                 {
    10.                     mobile.LocalOverheadMessage(MessageType.Regular, 906, true, "You cannot enter while carrying that item!");
    11.                 }
    12.                 else
    13.                     OnGateUsed(mobile);
    14.  
    15.             }      
    16.  
     
    • Thanks! Thanks! x 1
  5. sahisahi
    Offline

    sahisahi Member

    Joined:
    Jan 13, 2016
    Messages:
    639
    Likes Received:
    18
    You are absolutely right thanks for your help!

    Well ive test it and it stil doesnt work, when i move over a gate it does nothing and im not even carrying the item
     
    #5 sahisahi, Apr 17, 2018
    Last edited: Apr 18, 2018
Similar Threads: Moongate check
Forum Title Date
Archived Bug Reports PK travel via moongates with active Siege Ruleset Jul 24, 2018
Archived Bug Reports Royal City Moongate is a few tiles off Feb 17, 2018
Archived Bug Reports Issue with Moongates Feb 16, 2018
Script Support PublicMoongates Jan 4, 2018
Script Support Public Moongate with destination for a new player only on siege ruleset server Nov 13, 2017
Archived Bug Reports Public moongate with siege ruleset bug Nov 13, 2017
Archived Bug Reports Confirmation Moongate Title Strings Nov 6, 2017