public override void OnResponse(NetState sender, RelayInfo info) { int button = info.ButtonID; Mobile mob = sender.Mobile; switch (button) { case 0: break; case 1: mob.SendMessage("Enter a description:"); mob.Prompt = new SR_NewRunePrompt(this.RuneAcc, mob.Location, mob.Map); Send(mob, SR_Utilities.FetchInfo(mob.Account)); break; case 2: mob.SendMessage("Target a location to mark:"); mob.Target = new SR_NewRuneTarget(this.RuneAcc); Send(mob, SR_Utilities.FetchInfo(mob.Account)); break; case 3: mob.SendMessage("Enter a description:"); mob.Prompt = new SR_NewRunePrompt(this.RuneAcc); Send(mob, SR_Utilities.FetchInfo(mob.Account)); break; case 4: this.RuneAcc.RemoveRune(this.RuneAcc.PageIndex, true); Send(mob, SR_Utilities.FetchInfo(mob.Account)); break; case 5: this.RuneAcc.ResetPageIndex(); Send(mob, SR_Utilities.FetchInfo(mob.Account)); break; case 6: this.RuneAcc.ChildRune.ParentRune.RemoveRune(this.RuneAcc.ChildRune.ParentRune.PageIndex, true); Send(mob, SR_Utilities.FetchInfo(mob.Account)); break; case 7: this.RuneAcc.ChildRune.ParentRune.ResetPageIndex(); Send(mob, SR_Utilities.FetchInfo(mob.Account)); break; default: bool moongate = false; button -= 10; if (button >= 60000) { if (this.RuneAcc.ChildRune == null) { this.RuneAcc.RemoveRune(button - 60000); } else { this.RuneAcc.ChildRune.RemoveRune(button - 60000); } Send(mob, SR_Utilities.FetchInfo(mob.Account)); break; } if (button >= 30000) { button -= 30000; moongate = true; } SR_Rune rune = null; if (this.RuneAcc.ChildRune == null) { rune = this.RuneAcc.Runes[button]; } else { rune = this.RuneAcc.ChildRune.Runes[button]; } if (rune.IsRunebook) { if (this.RuneAcc.ChildRune == null) { this.RuneAcc.PageIndex = button; } else { this.RuneAcc.ChildRune.PageIndex = button; } Send(mob, SR_Utilities.FetchInfo(mob.Account)); } else { if (mob.Location == rune.TargetLoc && mob.Map == rune.TargetMap) { mob.SendMessage("You are already there."); } else if (!moongate) { mob.PlaySound(0x1FC); mob.MoveToWorld(rune.TargetLoc, rune.TargetMap); mob.PlaySound(0x1FC); } else { if (SR_Utilities.FindItem(typeof(Moongate), mob.Location, mob.Map)) { mob.SendMessage("You are standing on top of a moongate, please move."); } else if (SR_Utilities.FindItem(typeof(Moongate), rune.TargetLoc, rune.TargetMap)) { mob.SendMessage("There is already a moongate there, sorry."); } else { mob.SendLocalizedMessage(501024); // You open a magical gate to another location Effects.PlaySound(mob.Location, mob.Map, 0x20E); SR_RuneGate firstGate = new SR_RuneGate(rune.TargetLoc, rune.TargetMap); firstGate.MoveToWorld(mob.Location, mob.Map); Effects.PlaySound(rune.TargetLoc, rune.TargetMap, 0x20E); SR_RuneGate secondGate = new SR_RuneGate(mob.Location, mob.Map); secondGate.MoveToWorld(rune.TargetLoc, rune.TargetMap); } } } break; } }
public override void OnResponse( NetState sender, RelayInfo info ) { int button = info.ButtonID; Mobile mob = sender.Mobile; switch( button ) { case 0: break; case 1: mob.SendMessage("Enter a description:"); mob.Prompt = new SR_NewRunePrompt( this.RuneAcc, mob.Location, mob.Map ); Send( mob, SR_Utilities.FetchInfo( mob.Account ) ); break; case 2: mob.SendMessage("Target a location to mark:"); mob.Target = new SR_NewRuneTarget( this.RuneAcc ); Send( mob, SR_Utilities.FetchInfo( mob.Account ) ); break; case 3: mob.SendMessage("Enter a description:"); mob.Prompt = new SR_NewRunePrompt( this.RuneAcc ); Send( mob, SR_Utilities.FetchInfo( mob.Account ) ); break; case 4: RuneAcc.RemoveRune( RuneAcc.PageIndex, true ); Send( mob, SR_Utilities.FetchInfo( mob.Account ) ); break; case 5: RuneAcc.ResetPageIndex(); Send( mob, SR_Utilities.FetchInfo( mob.Account ) ); break; case 6: RuneAcc.ChildRune.ParentRune.RemoveRune( RuneAcc.ChildRune.ParentRune.PageIndex, true ); Send( mob, SR_Utilities.FetchInfo( mob.Account ) ); break; case 7: RuneAcc.ChildRune.ParentRune.ResetPageIndex(); Send( mob, SR_Utilities.FetchInfo( mob.Account ) ); break; default: bool moongate = false; button -= 10; if( button >= 60000 ) { if( RuneAcc.ChildRune == null ) RuneAcc.RemoveRune( button-60000 ); else RuneAcc.ChildRune.RemoveRune( button-60000 ); Send( mob, SR_Utilities.FetchInfo( mob.Account ) ); break; } if( button >= 30000 ) { button -= 30000; moongate = true; } SR_Rune rune = null; if( RuneAcc.ChildRune == null ) rune = RuneAcc.Runes[button]; else rune = RuneAcc.ChildRune.Runes[button]; if( rune.IsRunebook ) { if( RuneAcc.ChildRune == null ) this.RuneAcc.PageIndex = button; else this.RuneAcc.ChildRune.PageIndex = button; Send( mob, SR_Utilities.FetchInfo( mob.Account ) ); } else { if( mob.Location == rune.TargetLoc && mob.Map == rune.TargetMap ) mob.SendMessage( "You are already there." ); else if( !moongate ) { mob.PlaySound( 0x1FC ); mob.MoveToWorld( rune.TargetLoc, rune.TargetMap ); mob.PlaySound( 0x1FC ); } else { if( SR_Utilities.FindItem( typeof( Moongate ), mob.Location, mob.Map ) ) mob.SendMessage( "You are standing on top of a moongate, please move." ); else if( SR_Utilities.FindItem( typeof( Moongate ), rune.TargetLoc, rune.TargetMap ) ) mob.SendMessage( "There is already a moongate there, sorry." ); else { mob.SendLocalizedMessage( 501024 ); // You open a magical gate to another location Effects.PlaySound( mob.Location, mob.Map, 0x20E ); SR_RuneGate firstGate = new SR_RuneGate( rune.TargetLoc, rune.TargetMap ); firstGate.MoveToWorld( mob.Location, mob.Map ); Effects.PlaySound( rune.TargetLoc, rune.TargetMap, 0x20E ); SR_RuneGate secondGate = new SR_RuneGate( mob.Location, mob.Map ); secondGate.MoveToWorld( rune.TargetLoc, rune.TargetMap ); } } } break; } }