def Run(self, args): if not args: raise PythonCommand.UsageError me = BetterMUD.character(self.me) t = BetterMUD.charactertemplate(int(args)) me.DoAction("announce", 0, 0, 0, 0, "Spawning Character...") self.mud.DoAction("spawncharacter", t.ID(), me.Room(), 0, 0, "") me.DoAction("announce", 0, 0, 0, 0, "Success.")
def Disarm( self, itemtype ): if itemtype == 1: me = BetterMUD.character( self.me ) if me.GetAttribute( "weapon" ) != 0: weapon = BetterMUD.item( me.GetAttribute( "weapon" ) ) me.SetAttribute( "weapon", 0 ) self.mud.AddActionAbsolute( 0, "vision", me.Room(), 0, 0, 0, me.Name() + " disarms " + weapon.Name() + "." )
def Run( self, args ): me = BetterMUD.character( self.me ) string = "<#FFFFFF>--------------------------------------------------------------------------------\r\n" string += "<#00FF00> Your Inventory\r\n" string += "<#FFFFFF>--------------------------------------------------------------------------------\r\n" string += "<$reset> " if me.Items() == 0: string += "NOTHING!!!\r\n" else: me.BeginItem() while me.IsValidItem(): item = BetterMUD.item( me.CurrentItem() ) string += item.Name() string += "<#00FF00>, <$reset>" me.NextItem() string += "\r\n<#FFFFFF>--------------------------------------------------------------------------------\r\n" string += "<#FFFFFF> Weapon: <$reset>"; if me.GetAttribute( "weapon" ) == 0: item = BetterMUD.itemtemplate( me.GetAttribute( "defaultweapon" ) ) else: item = BetterMUD.item( me.GetAttribute( "weapon" ) ) string += item.Name() + "\r\n" string += "<#FFFFFF> Total Weight: <$reset>" + str( me.GetAttribute( "encumbrance" ) ) + "\r\n" string += "<#FFFFFF> Max Weight: <$reset>" + str( me.GetAttribute( "maxencumbrance" ) ) + "\r\n" string += "<#FFFFFF>--------------------------------------------------------------------------------\r\n" me.DoAction( "announce", 0, 0, 0, 0, string )
def Run( self, args ): if not args: raise PythonCommand.UsageError me = BetterMUD.character( self.me ) quantity = 0 item = args if string.digits.find( args[0] ) != -1: # first letter is a digit, so get quantity split = args.split( None, 1 ) try: quantity = int( split[0] ) item = split[1] except: # do nothing pass i = BetterMUD.item( FindTarget( me.SeekItem, me.IsValidItem, me.CurrentItem, item ) ) # if user didn't specify the quantity of a quantity item, # just get the entire amount. if i.IsQuantity() and quantity == 0: quantity = i.GetQuantity() self.mud.DoAction( "attemptdropitem", me.ID(), me.CurrentItem(), quantity, 0, "" )
def Run( self, action, arg1, arg2, arg3, arg4, data ): me = BetterMUD.character( self.me ) if action == "do" and data == "list": character = BetterMUD.character( arg3 ) character.DoAction( "announce", 0, 0, 0, 0, "<#7F7F7F>--------------------------------------------------------------------------------" ) character.DoAction( "announce", 0, 0, 0, 0, "<#FFFFFF> Item | Cost" ) character.DoAction( "announce", 0, 0, 0, 0, "<#7F7F7F>--------------------------------------------------------------------------------" ) for x in self.iteminventory: item = BetterMUD.itemtemplate( x ) character.DoAction( "announce", 0, 0, 0, 0, "<#7F7F7F> " + item.Name().ljust( 42 ) + "| " + str( item.GetAttribute( "value" ) ) ) character.DoAction( "announce", 0, 0, 0, 0, "<#7F7F7F>--------------------------------------------------------------------------------" ) return if action == "do" and data[:3] == "buy": itemname = data.split( None, 1 ) itemname = itemname[1] character = BetterMUD.character( arg3 ) id = FindName( BetterMUD.itemtemplate, self.iteminventory, itemname ) if id == 0: character.DoAction( "announce", 0, 0, 0, 0, "Sorry, you can't buy " + itemname + "here!" ) return t = BetterMUD.itemtemplate( id ) if not HasEnoughCurrency( character, t.GetAttribute( "value" ) ): character.DoAction( "announce", 0, 0, 0, 0, "Sorry, you don't have enough money to buy " + t.Name() + "!" ) return GiveCurrency( character, me, t.GetAttribute( "value" ) ) self.mud.DoAction( "spawnitem", id, character.ID(), 1, 0, "" ) self.mud.AddActionAbsolute( 0, "vision", character.Room(), 0, 0, 0, character.Name() + " buys " + t.Name() + "." )
def Run( self, args ): if not args: raise PythonCommand.UsageError parms = args.split( None, 1 ) if len(parms) < 2: raise PythonCommand.UsageError me = BetterMUD.character( self.me ) r = BetterMUD.room( me.Room() ) recipient = FindTarget( r.SeekCharacter, r.IsValidCharacter, r.CurrentCharacter, parms[0] ) if recipient == me.ID(): me.DoAction( "error", 0, 0, 0, 0, "You can't give yourself an object!" ) return quantity = 0 item = parms[1] if string.digits.find( parms[1][0] ) != -1: # first letter is a digit, so get quantity split = parms[1].split( None, 1 ) try: quantity = int( split[0] ) item = split[1] except: # do nothing pass i = BetterMUD.item( FindTarget( me.SeekItem, me.IsValidItem, me.CurrentItem, item ) ) # if user didn't specify the quantity of a quantity item, # just get the entire amount. if i.IsQuantity() and quantity == 0: quantity = i.GetQuantity() self.mud.DoAction( "attemptgiveitem", me.ID(), r.CurrentCharacter(), me.CurrentItem(), quantity, "" )
def Run( self, args ): if not args: raise PythonCommand.UsageError me = BetterMUD.character( self.me ) r = BetterMUD.room( me.Room() ) m = BetterMUD.character( FindTarget( r.SeekCharacter, r.IsValidCharacter, r.CurrentCharacter, args ) ) m.DoAction( "do", 0, 0, me.ID(), 0, "list" )
def Run( self, args ): if not args: raise PythonCommand.UsageError me = BetterMUD.character( self.me ) t = BetterMUD.charactertemplate( int( args ) ) me.DoAction( "announce", 0, 0, 0, 0, "Spawning Character..." ) self.mud.DoAction( "spawncharacter", t.ID(), me.Room(), 0, 0, "" ) me.DoAction( "announce", 0, 0, 0, 0, "Success." )
def Run(self, args): if not args: raise PythonCommand.UsageError me = BetterMUD.character(self.me) quantity = 0 item = args if string.digits.find(args[0]) != -1: # first letter is a digit, so get quantity split = args.split(None, 1) try: quantity = int(split[0]) item = split[1] except: # do nothing pass i = BetterMUD.item( FindTarget(me.SeekItem, me.IsValidItem, me.CurrentItem, item)) # if user didn't specify the quantity of a quantity item, # just get the entire amount. if i.IsQuantity() and quantity == 0: quantity = i.GetQuantity() self.mud.DoAction("attemptdropitem", me.ID(), me.CurrentItem(), quantity, 0, "")
def Run(self, args): if not args: raise PythonCommand.UsageError me = BetterMUD.character(self.me) r = BetterMUD.room(me.Room()) quantity = 0 item = args if string.digits.find(args[0]) != -1: # first letter is a digit, so get quantity split = args.split(None, 1) try: quantity = int(split[0]) item = split[1] except: # do nothing pass i = BetterMUD.item( FindTarget(r.SeekItem, r.IsValidItem, r.CurrentItem, item)) if i.IsQuantity() and quantity == 0: quantity = i.GetQuantity() self.mud.DoAction("attemptgetitem", me.ID(), r.CurrentItem(), quantity, 0, "")
def Run( self, action, arg1, arg2, arg3, arg4, data ): me = BetterMUD.character( self.me ) if action == "query" and data == "canarm": item = BetterMUD.item( arg1 ) if item.GetAttribute( "arms" ) == 1: return 1 return 0 if action == "do" and data == "arm": item = BetterMUD.item( arg3 ) self.Disarm( 1 ) self.Arm( item ) if action == "do" and data == "disarm": self.Disarm( arg3 ) if action == "dropitem" and arg1 == me.ID(): self.Lose( me, arg2 ) if action == "giveitem" and arg1 == me.ID(): self.Lose( me, arg3 ) if action == "destroyitem": self.Lose( me, arg1 )
def Run(self, args): if not args: raise PythonCommand.UsageError me = BetterMUD.character(self.me) r = BetterMUD.room(me.Room()) time = self.mud.GetTime() if time < self.executiontime: me.DoAction( "error", 0, 0, 0, 0, "You need to wait " + str( (self.executiontime - time) / 1000) + " more seconds to use this again!") return id = FindTarget(r.SeekItem, r.IsValidItem, r.CurrentItem, args) item = BetterMUD.item(id) name = item.Name() # add 120 seconds; 2 minutes self.executiontime = time + 120000 self.mud.AddActionAbsolute(0, "addlogic", 1, id, 0, 0, "uberweight") self.mud.AddActionAbsolute( 0, "vision", r.ID(), 0, 0, 0, "<#FF0000>" + me.Name() + " just cast UBERWEIGHT on " + name + "!") self.mud.AddActionRelative(20000, "messagelogic", 1, id, 0, 0, "uberweight remove")
def Run( self, action, arg1, arg2, arg3, arg4, data ): me = BetterMUD.character( self.me ) if action == "say" and data.find( "pies" ) != -1 and arg1 != me.ID(): c = BetterMUD.character( arg1 ) self.mud.AddActionAbsolute( 0, "attemptsay", me.ID(), 0, 0, 0, c.Name() + ": YES!!! PIES!!!!!" ) return 0
def Run(self, args): me = BetterMUD.character(self.me) string = "<#FFFFFF>--------------------------------------------------------------------------------\r\n" string += "<#00FF00> Your Inventory\r\n" string += "<#FFFFFF>--------------------------------------------------------------------------------\r\n" string += "<$reset> " if me.Items() == 0: string += "NOTHING!!!\r\n" else: me.BeginItem() while me.IsValidItem(): item = BetterMUD.item(me.CurrentItem()) string += item.Name() string += "<#00FF00>, <$reset>" me.NextItem() string += "\r\n<#FFFFFF>--------------------------------------------------------------------------------\r\n" string += "<#FFFFFF> Weapon: <$reset>" if me.GetAttribute("weapon") == 0: item = BetterMUD.itemtemplate(me.GetAttribute("defaultweapon")) else: item = BetterMUD.item(me.GetAttribute("weapon")) string += item.Name() + "\r\n" string += "<#FFFFFF> Total Weight: <$reset>" + str( me.GetAttribute("encumbrance")) + "\r\n" string += "<#FFFFFF> Max Weight: <$reset>" + str( me.GetAttribute("maxencumbrance")) + "\r\n" string += "<#FFFFFF>--------------------------------------------------------------------------------\r\n" me.DoAction("announce", 0, 0, 0, 0, string)
def Execute(self, args): try: self.Run(args) except UsageError: me = BetterMUD.character(self.me) me.DoAction("error", 0, 0, 0, 0, "Usage: " + self.Usage()) except TargetError, e: me = BetterMUD.character(self.me) me.DoAction("error", 0, 0, 0, 0, "Cannot find: " + e.value)
def Disarm(self, itemtype): if itemtype == 1: me = BetterMUD.character(self.me) if me.GetAttribute("weapon") != 0: weapon = BetterMUD.item(me.GetAttribute("weapon")) me.SetAttribute("weapon", 0) self.mud.AddActionAbsolute( 0, "vision", me.Room(), 0, 0, 0, me.Name() + " disarms " + weapon.Name() + ".")
def Run(self, args): if not args: raise PythonCommand.UsageError me = BetterMUD.character(self.me) r = BetterMUD.room(me.Room()) m = BetterMUD.character( FindTarget(r.SeekCharacter, r.IsValidCharacter, r.CurrentCharacter, args)) m.DoAction("do", 0, 0, me.ID(), 0, "list")
def Run(self, args): if not args: raise PythonCommand.UsageError me = BetterMUD.character(self.me) t = BetterMUD.itemtemplate(int(args)) print t.ID() me.DoAction("announce", 0, 0, 0, 0, "Spawning Item...") self.mud.DoAction("spawnitem", t.ID(), me.ID(), 1, 0, "") me.DoAction("announce", 0, 0, 0, 0, "Success.")
def Run(self, action, arg1, arg2, arg3, arg4, data): if action == "cangetitem": c = BetterMUD.character(arg1) me = BetterMUD.item(arg2) self.mud.AddActionAbsolute( 0, "vision", c.Room(), 0, 0, 0, c.Name() + " almost has a hernia, trying to pull " + me.Name() + " out of the ground!") return 1
def Run( self, args ): if not args: raise PythonCommand.UsageError me = BetterMUD.character( self.me ) t = BetterMUD.itemtemplate( int( args ) ) print t.ID() me.DoAction( "announce", 0, 0, 0, 0, "Spawning Item..." ) self.mud.DoAction( "spawnitem", t.ID(), me.ID(), 1, 0, "" ) me.DoAction( "announce", 0, 0, 0, 0, "Success." )
def Run( self, action, arg1, arg2, arg3, arg4, data ): if action == "canreceiveitem": g = BetterMUD.character( arg1 ) if not g.IsPlayer(): return 0 # accept stuff from NPC's with the implcit promise that they aren't malicious i = BetterMUD.item( arg3 ) me = BetterMUD.character( self.me ) me.DoAction( "error", 0, 0, 0, 0, g.Name() + " tried to give you " + i.Name() + " but you have item receiving turned off. Type \"/receive on\" to turn receiving back on." ) g.DoAction( "error", 0, 0, 0, 0, me.Name() + " refuses to take " + i.Name() + "!" ) return 1
def GiveCurrency(character, recipient, amount): character.BeginItem() mud = BetterMUD.GameWrap() while character.IsValidItem(): item = BetterMUD.item(character.CurrentItem()) if item.TemplateID() == 1: # copper pieces mud.DoAction("attemptgiveitem", character.ID(), recipient.ID(), item.ID(), amount, "") return character.NextItem()
def Run( self, args ): if not args: raise PythonCommand.UsageError parms = args.split( None, 1 ) if len( parms ) < 2: raise PythonCommand.UsageError me = BetterMUD.character( self.me ) r = BetterMUD.room( me.Room() ) m = BetterMUD.character( FindTarget( r.SeekCharacter, r.IsValidCharacter, r.CurrentCharacter, parms[0] ) ) m.DoAction( "do", 0, 0, me.ID(), 0, "buy " + parms[1] )
def Run( self, args ): if not args: raise PythonCommand.UsageError parms = args.split( None, 1 ) if len(parms) < 2: raise PythonCommand.UsageError me = BetterMUD.character( self.me ) id = self.mud.FindPlayerOnlinePart( parms[0] ) if not id: me.DoAction( "error", 0, 0, 0, 0, "Cannot find player: " + parms[0] ) return c = BetterMUD.character( id ) self.mud.AddActionAbsolute( 0, "command", c.ID(), 0, 0, 0, parms[1] )
def Run(self, args): if not args: raise PythonCommand.UsageError parms = args.split(None, 1) if len(parms) < 2: raise PythonCommand.UsageError me = BetterMUD.character(self.me) id = self.mud.FindPlayerOnlinePart(parms[0]) if not id: me.DoAction("error", 0, 0, 0, 0, "Cannot find player: " + parms[0]) return c = BetterMUD.character(id) self.mud.AddActionAbsolute(0, "command", c.ID(), 0, 0, 0, parms[1])
def Run( self, args ): if not args: raise PythonCommand.UsageError me = BetterMUD.character( self.me ) item = BetterMUD.item( FindTarget( me.SeekItem, me.IsValidItem, me.CurrentItem, args ) ) if not me.DoAction( "query", item.ID(), 0, 0, 0, "canarm" ): me.DoAction( "error", 0, 0, 0, 0, "Cannot arm item: " + item.Name() + "!" ) return me.DoAction( "do", 0, 0, item.ID(), 0, "arm" )
def Run(self, args): if not args: raise PythonCommand.UsageError parms = args.split(None, 1) if len(parms) < 2: raise PythonCommand.UsageError me = BetterMUD.character(self.me) r = BetterMUD.room(me.Room()) m = BetterMUD.character( FindTarget(r.SeekCharacter, r.IsValidCharacter, r.CurrentCharacter, parms[0])) m.DoAction("do", 0, 0, me.ID(), 0, "buy " + parms[1])
def Run( self, args ): if not args: raise PythonCommand.UsageError me = BetterMUD.character( self.me ) r = BetterMUD.room( me.Room() ) t = FindTarget( r.SeekCharacter, r.IsValidCharacter, r.CurrentCharacter, args ) target = BetterMUD.character( t ) if not target.DoAction( "query", me.ID(), 0, 0, 0, "canattack" ): return me.DoAction( "do", 0, 0, t, 0, "initattack" )
def DoRead( self, character, item, name ): c = BetterMUD.character( character ) i = BetterMUD.item( item ) if c.HasCommand( name ): c.DoAction( "error", 0, 0, 0, 0, "You already know this spell!" ) return c.AddCommand( name ) self.mud.AddActionAbsolute( 0, "vision", c.Room(), 0, 0, 0, c.Name() + " reads " + i.Name() + "!" ) self.mud.AddActionAbsolute( 1, "destroyitem", i.ID(), 0, 0, 0, "" ) c.DoAction( "announce", 0, 0, 0, 0, "You now know the spell " + name + "!" ) c.DoAction( "announce", 0, 0, 0, 0, "The " + i.Name() + " disappears in a bright flash of flame!" )
def Run(self, action, arg1, arg2, arg3, arg4, data): me = BetterMUD.character(self.me) if action == "do" and data == "list": character = BetterMUD.character(arg3) character.DoAction( "announce", 0, 0, 0, 0, "<#7F7F7F>--------------------------------------------------------------------------------" ) character.DoAction( "announce", 0, 0, 0, 0, "<#FFFFFF> Item | Cost") character.DoAction( "announce", 0, 0, 0, 0, "<#7F7F7F>--------------------------------------------------------------------------------" ) for x in self.iteminventory: item = BetterMUD.itemtemplate(x) character.DoAction( "announce", 0, 0, 0, 0, "<#7F7F7F> " + item.Name().ljust(42) + "| " + str(item.GetAttribute("value"))) character.DoAction( "announce", 0, 0, 0, 0, "<#7F7F7F>--------------------------------------------------------------------------------" ) return if action == "do" and data[:3] == "buy": itemname = data.split(None, 1) itemname = itemname[1] character = BetterMUD.character(arg3) id = FindName(BetterMUD.itemtemplate, self.iteminventory, itemname) if id == 0: character.DoAction( "announce", 0, 0, 0, 0, "Sorry, you can't buy " + itemname + "here!") return t = BetterMUD.itemtemplate(id) if not HasEnoughCurrency(character, t.GetAttribute("value")): character.DoAction( "announce", 0, 0, 0, 0, "Sorry, you don't have enough money to buy " + t.Name() + "!") return GiveCurrency(character, me, t.GetAttribute("value")) self.mud.DoAction("spawnitem", id, character.ID(), 1, 0, "") self.mud.AddActionAbsolute( 0, "vision", character.Room(), 0, 0, 0, character.Name() + " buys " + t.Name() + ".")
def Execute( self, args ): try: self.Run( args ) except UsageError: me = BetterMUD.character( self.me ) me.DoAction( "error", 0, 0, 0, 0, "Usage: " + self.Usage() ) except TargetError, e: me = BetterMUD.character( self.me ) me.DoAction( "error", 0, 0, 0, 0, "Cannot find: " + e.value )
def Run(self, args): if not args: raise PythonCommand.UsageError me = BetterMUD.character(self.me) r = BetterMUD.room(me.Room()) t = FindTarget(r.SeekCharacter, r.IsValidCharacter, r.CurrentCharacter, args) target = BetterMUD.character(t) if not target.DoAction("query", me.ID(), 0, 0, 0, "canattack"): return me.DoAction("do", 0, 0, t, 0, "initattack")
def Run(self, args): if not args: raise PythonCommand.UsageError me = BetterMUD.character(self.me) item = BetterMUD.item( FindTarget(me.SeekItem, me.IsValidItem, me.CurrentItem, args)) if not me.DoAction("query", item.ID(), 0, 0, 0, "canarm"): me.DoAction("error", 0, 0, 0, 0, "Cannot arm item: " + item.Name() + "!") return me.DoAction("do", 0, 0, item.ID(), 0, "arm")
def Run( self, args ): if not args: raise PythonCommand.UsageError me = BetterMUD.character( self.me ) r = BetterMUD.room( me.Room() ) # find the name: id = FindTarget( r.SeekCharacter, r.IsValidCharacter, r.CurrentCharacter, args ) c = BetterMUD.character( id ) name = c.Name() self.mud.AddActionAbsolute( 0, "addlogic", 0, id, 0, 0, "superglue" ) self.mud.AddActionAbsolute( 0, "vision", r.ID(), 0, 0, 0, "<#FF0000>OMG!!! " + me.Name() + " just SUPERGLUED " + name + " to the floor!!!!!" ) self.mud.AddActionRelative( 20000, "messagelogic", 0, id, 0, 0, "superglue remove" )
def Run( self, args ): if not args: raise PythonCommand.UsageError me = BetterMUD.character( self.me ) room = BetterMUD.room( me.Room() ) room.SeekCharacter( args ) if room.IsValidCharacter(): character = room.CurrentCharacter() else: me.DoAction( "error", 0, 0, 0, 0, "Cannot find character: " + args ) return c = BetterMUD.character( character ) me.DoAction( "announce", 0, 0, 0, 0, "Destroying Character: " + c.Name() ) self.mud.AddActionAbsolute( 0, "destroycharacter", character, 0, 0, 0, "" )
def Run( self, args ): if not args: raise PythonCommand.UsageError parms = args.split( None, 1 ) if len(parms) < 2: raise PythonCommand.UsageError me = BetterMUD.character( self.me ) id = self.mud.FindPlayerPart( parms[0] ) if not id: me.DoAction( "error", 0, 0, 0, 0, "Cannot find player: " + parms[0] ) return t = BetterMUD.character( id ) if not t.DelCommand( parms[1] ): me.DoAction( "error", 0, 0, 0, 0, "Could not delete command: " + parms[1] ) return me.DoAction( "announce", 0, 0, 0, 0, "Successfully removed " + t.Name() + "s command " + parms[1] + "." ) t.DoAction( "announce", 0, 0, 0, 0, me.Name() + " deleted your command: " + parms[1] + "!" )
def Run( self, args ): if not args: raise PythonCommand.UsageError parms = args.split( None, 1 ) if len(parms) < 2: raise PythonCommand.UsageError me = BetterMUD.character( self.me ) id = self.mud.FindPlayerPart( parms[0] ) if not id: me.DoAction( "error", 0, 0, 0, 0, "Cannot find player: " + parms[0] ) return c = BetterMUD.character( id ) if not c.AddLogic( parms[1] ): me.DoAction( "error", 0, 0, 0, 0, "Could not add logic: " + parms[1] ) return me.DoAction( "announce", 0, 0, 0, 0, "Successfully gave " + c.Name() + " logic module " + parms[1] + "." ) c.DoAction( "announce", 0, 0, 0, 0, me.Name() + " gave you a new logic module: " + parms[1] + "!" )
def Run(self, action, arg1, arg2, arg3, arg4, data): if action == "canreceiveitem": g = BetterMUD.character(arg1) if not g.IsPlayer(): return 0 # accept stuff from NPC's with the implcit promise that they aren't malicious i = BetterMUD.item(arg3) me = BetterMUD.character(self.me) me.DoAction( "error", 0, 0, 0, 0, g.Name() + " tried to give you " + i.Name() + " but you have item receiving turned off. Type \"/receive on\" to turn receiving back on." ) g.DoAction("error", 0, 0, 0, 0, me.Name() + " refuses to take " + i.Name() + "!") return 1
def DoRead(self, character, item, name): c = BetterMUD.character(character) i = BetterMUD.item(item) if c.HasCommand(name): c.DoAction("error", 0, 0, 0, 0, "You already know this spell!") return c.AddCommand(name) self.mud.AddActionAbsolute(0, "vision", c.Room(), 0, 0, 0, c.Name() + " reads " + i.Name() + "!") self.mud.AddActionAbsolute(1, "destroyitem", i.ID(), 0, 0, 0, "") c.DoAction("announce", 0, 0, 0, 0, "You now know the spell " + name + "!") c.DoAction( "announce", 0, 0, 0, 0, "The " + i.Name() + " disappears in a bright flash of flame!")
def Run( self, action, arg1, arg2, arg3, arg4, data ): if action == "getitem": item = BetterMUD.item( arg2 ) if item.TemplateID() == 2: self.mud.AddActionRelative( 5000, "vision", self.me, 0, 0, 0, "The Baker puts a new pie into the oven!" ) self.mud.AddActionRelative( 1200000, "spawnitem", 2, self.me, 0, 0, "" ) self.mud.AddActionRelative( 1200001, "vision", self.me, 0, 0, 0, "A freshly baked Pie pops out of the oven!" )
def Run( self, args ): if not args: raise PythonCommand.UsageError me = BetterMUD.character( self.me ) r = BetterMUD.room( me.Room() ) try: item = BetterMUD.item( FindTarget( me.SeekItem, me.IsValidItem, me.CurrentItem, args ) ) except: item = BetterMUD.item( FindTarget( r.SeekItem, r.IsValidItem, r.CurrentItem, args ) ) if not item.DoAction( "query", 0, 0, 0, 0, "canread" ): me.DoAction( "error", 0, 0, 0, 0, "Cannot read " + item.Name() + "!" ) return item.DoAction( "do", 0, 0, me.ID(), 0, "read" )
def Arm(self, item): me = BetterMUD.character(self.me) if item.GetAttribute("arms") == 1: me.SetAttribute("weapon", item.ID()) self.mud.AddActionAbsolute( 0, "vision", me.Room(), 0, 0, 0, me.Name() + " arms " + item.Name() + "!")
def Run(self, args): if not args: raise PythonCommand.UsageError me = BetterMUD.character(self.me) s = string.replace(args, "<br>", "\n") me.DoAction("announce", 0, 0, 0, 0, "Executing Python Code, check your console window.") exec(s)
def Break( self, me ): if self.target == 0: return t = BetterMUD.character( self.target ) me.KillHook( "do", "attack" ) self.mud.AddActionAbsolute( 0, "vision", me.Room(), 0, 0, 0, me.Name() + " stops attacking " + t.Name() + "!!" ) t.DoAction( "do", 0, 0, self.me, 0, "brokeattack" ) self.target = 0
def Run(self, args): if not args: raise PythonCommand.UsageError me = BetterMUD.character(self.me) room = BetterMUD.room(me.Room()) room.SeekCharacter(args) if room.IsValidCharacter(): character = room.CurrentCharacter() else: me.DoAction("error", 0, 0, 0, 0, "Cannot find character: " + args) return c = BetterMUD.character(character) me.DoAction("announce", 0, 0, 0, 0, "Destroying Character: " + c.Name()) self.mud.AddActionAbsolute(0, "destroycharacter", character, 0, 0, 0, "")
def Run( self, args ): me = BetterMUD.character( self.me ) r = BetterMUD.room( me.Room() ) # find the name: if not args: name = "himself" else: r.SeekCharacter( args ) if not r.IsValidCharacter(): me.DoAction( "error", 0, 0, 0, 0, "Cannot find character: " + args ) return id = r.CurrentCharacter() c = BetterMUD.character( id ) name = c.Name() self.mud.AddActionAbsolute( 0, "vision", r.ID(), 0, 0, 0, "<#00FF00>OMG!!! " + me.Name() + " just threw a huge <#FFFF00>CUSTARD PIE<#00FF00> at " + name + "!!!!" )
def Run( self, action, arg1, arg2, arg3, arg4, data ): if action == "canenterregion": character = BetterMUD.character( arg1 ) if character.TemplateID() == 2: character.SeekItem( "Dwarven Mine Pass" ) if character.IsValidItem(): return 0 character.DoAction( "error", 0, 0, 0, 0, "As an elf, you are morally obligated to not enter these mines!" ) return 1
def Run(self, args): if not args: raise PythonCommand.UsageError me = BetterMUD.character(self.me) r = BetterMUD.room(me.Room()) # find the name: id = FindTarget(r.SeekCharacter, r.IsValidCharacter, r.CurrentCharacter, args) c = BetterMUD.character(id) name = c.Name() self.mud.AddActionAbsolute(0, "addlogic", 0, id, 0, 0, "superglue") self.mud.AddActionAbsolute( 0, "vision", r.ID(), 0, 0, 0, "<#FF0000>OMG!!! " + me.Name() + " just SUPERGLUED " + name + " to the floor!!!!!") self.mud.AddActionRelative(20000, "messagelogic", 0, id, 0, 0, "superglue remove")
def Run(self, action, arg1, arg2, arg3, arg4, data): if action == "cangetitem": c = BetterMUD.character(arg1) me = BetterMUD.item(arg2) self.mud.AddActionAbsolute( 0, "vision", c.Room(), 0, 0, 0, c.Name() + " struggles like a madman trying to pull " + me.Name() + " off the ground, but it's stuck!") return 1 if action == "messagelogic": if data == "uberweight remove": self.mud.AddActionAbsolute(0, "dellogic", 1, self.me, 0, 0, "uberweight") me = BetterMUD.item(self.me) self.mud.AddActionAbsolute( 0, "vision", me.Room(), 0, 0, 0, "The uberweight on " + me.Name() + " wears off!")
def GiveCurrency( character, recipient, amount ): character.BeginItem() mud = BetterMUD.GameWrap() while character.IsValidItem(): item = BetterMUD.item( character.CurrentItem() ) if item.TemplateID() == 1: # copper pieces mud.DoAction( "attemptgiveitem", character.ID(), recipient.ID(), item.ID(), amount, "" ) return character.NextItem()
def Run( self, action, arg1, arg2, arg3, arg4, data ): me = BetterMUD.character( self.me ) if action == "canleaveroom": me.DoAction( "error", 0, 0, 0, 0, "You're superglued to the ground. Sit tight, you ain't goin nowhere." ) return 1 if action == "messagelogic": if data == "superglue remove": self.mud.AddActionAbsolute( 0, "dellogic", 0, self.me, 0, 0, "superglue" ) self.mud.AddActionAbsolute( 0, "vision", me.Room(), 0, 0, 0, "The superglue on " + me.Name() + " wears off!" )
def Run(self, args): if not args: raise PythonCommand.UsageError parms = args.split(None, 1) if len(parms) < 2: raise PythonCommand.UsageError me = BetterMUD.character(self.me) id = self.mud.FindPlayerPart(parms[0]) if not id: me.DoAction("error", 0, 0, 0, 0, "Cannot find player: " + parms[0]) return t = BetterMUD.character(id) if not t.DelCommand(parms[1]): me.DoAction("error", 0, 0, 0, 0, "Could not delete command: " + parms[1]) return me.DoAction( "announce", 0, 0, 0, 0, "Successfully removed " + t.Name() + "s command " + parms[1] + ".") t.DoAction("announce", 0, 0, 0, 0, me.Name() + " deleted your command: " + parms[1] + "!")
def Run(self, args): if not args: raise PythonCommand.UsageError parms = args.split(None, 1) if len(parms) < 2: raise PythonCommand.UsageError me = BetterMUD.character(self.me) id = self.mud.FindPlayerPart(parms[0]) if not id: me.DoAction("error", 0, 0, 0, 0, "Cannot find player: " + parms[0]) return r = BetterMUD.character(id) if not r.AddCommand(parms[1]): me.DoAction("error", 0, 0, 0, 0, "Could not add command: " + parms[1]) return me.DoAction( "announce", 0, 0, 0, 0, "Successfully gave " + r.Name() + " command " + parms[1] + ".") r.DoAction("announce", 0, 0, 0, 0, me.Name() + " gave you a new command: " + parms[1] + "!")
def Run(self, args): if not args: raise PythonCommand.UsageError me = BetterMUD.character(self.me) r = BetterMUD.room(me.Room()) try: item = BetterMUD.item( FindTarget(me.SeekItem, me.IsValidItem, me.CurrentItem, args)) except: item = BetterMUD.item( FindTarget(r.SeekItem, r.IsValidItem, r.CurrentItem, args)) if not item.DoAction("query", 0, 0, 0, 0, "canread"): me.DoAction("error", 0, 0, 0, 0, "Cannot read " + item.Name() + "!") return item.DoAction("do", 0, 0, me.ID(), 0, "read")
def Run(self, args): if not args: raise PythonCommand.UsageError me = BetterMUD.character(self.me) me.SeekItem(args) if me.IsValidItem(): item = me.CurrentItem() else: room = BetterMUD.room(me.Room()) room.SeekItem(args) if room.IsValidItem(): item = room.CurrentItem() else: me.DoAction("error", 0, 0, 0, 0, "Cannot find item: " + args) return i = BetterMUD.item(item) me.DoAction("announce", 0, 0, 0, 0, "Destroying Item: " + i.Name()) self.mud.AddActionAbsolute(0, "destroyitem", item, 0, 0, 0, "")
def Run( self, action, arg1, arg2, arg3, arg4, data ): if action == "getitem": item = BetterMUD.item( arg2 ) print item.TemplateID() print "lies" if item.TemplateID() == 2: print "pies" self.mud.AddActionAbsolute( 0, "attemptsay", self.me, 0, 0, 0, "Hey!!!! Thos-a Pies aren't-a FREE!" ) print "cries" return 0
def Run( self, args ): if not args: raise PythonCommand.UsageError me = BetterMUD.character( self.me ) parms = args.split( None, 1 ) if parms[0] == "all": me.DoAction( "announce", 0, 0, 0, 0, "Beginning Complete Database Save" ) self.mud.AddActionAbsolute( 0, "savedatabases", 0, 0, 0, 0, "" ) return if parms[0] == "region": if len(parms) < 2: raise PythonCommand.UsageError region = BetterMUD.region( int(parms[1]) ) me.DoAction( "announce", 0, 0, 0, 0, "Beginning Region Database Save: " + region.Name() ) self.mud.AddActionAbsolute( 0, "saveregion", int(parms[1]), 0, 0, 0, "" ) return if parms[0] == "players": me.DoAction( "announce", 0, 0, 0, 0, "Beginning Player Database Save" ) self.mud.AddActionAbsolute( 0, "saveplayers", 0, 0, 0, 0, "" ) return raise PythonCommand.UsageError