Example #1
0
 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.")
Example #2
0
 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() + "." )
Example #3
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 )
Example #4
0
    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, "" )
Example #5
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() + "." )



                
Example #6
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 )
        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, "" )
Example #7
0
    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" )
Example #8
0
 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." )
Example #9
0
    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, "")
Example #10
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, "")
Example #11
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 )
            
Example #12
0
    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")
Example #13
0
    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
Example #14
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)
Example #15
0
 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)
Example #16
0
 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() + ".")
Example #17
0
    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")
Example #18
0
    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.")
Example #19
0
 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
Example #20
0
    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." )
Example #21
0
 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
Example #22
0
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()
Example #23
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 )
        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] )
Example #24
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.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] )
Example #25
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.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])
Example #26
0
    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" )
Example #27
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)
        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])
Example #28
0
    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" )
Example #29
0
    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!" )
Example #30
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() + ".")
Example #31
0
    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 )



            
Example #32
0
    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")
Example #33
0
    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")
Example #34
0
    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" )
Example #35
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, "" )
Example #36
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] + "!" )
Example #37
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
     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] + "!" )
Example #38
0
 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
Example #39
0
    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!")
Example #40
0
 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!" )
Example #41
0
    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" )
Example #42
0
 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() + "!")
Example #43
0
 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)
Example #44
0
 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
Example #45
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,
                                   "")
Example #46
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 + "!!!!" )
Example #47
0
 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
Example #48
0
    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")
Example #49
0
    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!")
Example #50
0
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()
Example #51
0
 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!" )
Example #52
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] + "!")
Example #53
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
     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] + "!")
Example #54
0
    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")
Example #55
0
    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, "")
Example #56
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
Example #57
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