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, 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 ): 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): 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) 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, 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 init(): mud = BetterMUD.GameWrap() # add arms to every item mud.BeginItem() while mud.IsValidItem(): item = BetterMUD.item( mud.CurrentItem() ) template = BetterMUD.itemtemplate( item.TemplateID() ) if not item.HasAttribute( "arms" ): item.AddAttribute( "arms", template.GetAttribute( "arms" ) ) mud.NextItem() # add defaultweapon and weapon to every character mud.BeginCharacter() while mud.IsValidCharacter(): character = BetterMUD.character( mud.CurrentCharacter() ) template = BetterMUD.charactertemplate( character.TemplateID() ) if not character.HasAttribute( "defaultweapon" ): character.AddAttribute( "defaultweapon", template.GetAttribute( "defaultweapon" ) ) if not character.HasAttribute( "weapon" ): character.AddAttribute( "weapon", template.GetAttribute( "weapon" ) ) mud.NextCharacter()
def init(): mud = BetterMUD.GameWrap() # add weight to every item mud.BeginItem() while mud.IsValidItem(): item = BetterMUD.item(mud.CurrentItem()) template = BetterMUD.itemtemplate(item.TemplateID()) if not item.HasAttribute("weight"): item.AddAttribute("weight", template.GetAttribute("weight")) mud.NextItem() # add encumbrance to every character mud.BeginCharacter() while mud.IsValidCharacter(): character = BetterMUD.character(mud.CurrentCharacter()) template = BetterMUD.charactertemplate(character.TemplateID()) if not character.HasAttribute("encumbrance"): character.AddAttribute("encumbrance", template.GetAttribute("encumbrance")) if not character.HasAttribute("maxencumbrance"): character.AddAttribute("maxencumbrance", template.GetAttribute("maxencumbrance")) # now calculate encumbrance of carried items character.BeginItem() encumbrance = 0 while character.IsValidItem(): item = BetterMUD.item(character.CurrentItem()) if item.IsQuantity(): encumbrance = encumbrance + item.GetAttribute( "weight") * item.GetQuantity() else: encumbrance = encumbrance + item.GetAttribute("weight") character.NextItem() character.SetAttribute("encumbrance", encumbrance) if not character.HasLogic("encumbrance"): character.AddLogic("encumbrance") mud.NextCharacter()
def init(): mud = BetterMUD.GameWrap() # add arms to every item mud.BeginItem() while mud.IsValidItem(): item = BetterMUD.item(mud.CurrentItem()) template = BetterMUD.itemtemplate(item.TemplateID()) if not item.HasAttribute("arms"): item.AddAttribute("arms", template.GetAttribute("arms")) mud.NextItem() # add defaultweapon and weapon to every character mud.BeginCharacter() while mud.IsValidCharacter(): character = BetterMUD.character(mud.CurrentCharacter()) template = BetterMUD.charactertemplate(character.TemplateID()) if not character.HasAttribute("defaultweapon"): character.AddAttribute("defaultweapon", template.GetAttribute("defaultweapon")) if not character.HasAttribute("weapon"): character.AddAttribute("weapon", template.GetAttribute("weapon")) mud.NextCharacter()
def init(): mud = BetterMUD.GameWrap() # add weight to every item mud.BeginItem() while mud.IsValidItem(): item = BetterMUD.item( mud.CurrentItem() ) template = BetterMUD.itemtemplate( item.TemplateID() ) if not item.HasAttribute( "weight" ): item.AddAttribute( "weight", template.GetAttribute( "weight" ) ) mud.NextItem() # add encumbrance to every character mud.BeginCharacter() while mud.IsValidCharacter(): character = BetterMUD.character( mud.CurrentCharacter() ) template = BetterMUD.charactertemplate( character.TemplateID() ) if not character.HasAttribute( "encumbrance" ): character.AddAttribute( "encumbrance", template.GetAttribute( "encumbrance" ) ) if not character.HasAttribute( "maxencumbrance" ): character.AddAttribute( "maxencumbrance", template.GetAttribute( "maxencumbrance" ) ) # now calculate encumbrance of carried items character.BeginItem() encumbrance = 0 while character.IsValidItem(): item = BetterMUD.item( character.CurrentItem() ) if item.IsQuantity(): encumbrance = encumbrance + item.GetAttribute( "weight" ) * item.GetQuantity() else: encumbrance = encumbrance + item.GetAttribute( "weight" ) character.NextItem() character.SetAttribute( "encumbrance", encumbrance ) if not character.HasLogic( "encumbrance" ): character.AddLogic( "encumbrance" ) mud.NextCharacter()
def Run( self, action, arg1, arg2, arg3, arg4, data ): me = BetterMUD.character( self.me ) if action == "modifyattribute" and data == "experience": me.DoAction( "announce", 0, 0, 0, 0, "<#00FFFF>You gain " + str( arg4 ) + " experience!" ) return # check for death if action == "modifyattribute" and data == "hitpoints": if arg3 <= 0: me.DoAction( "do", 0, 0, 0, 0, "died" ) return # you killed someone... celebrate! if action == "do" and data == "killed": self.Break( me ) return if action == "do" and data == "died": self.Break( me ) self.mud.AddActionAbsolute( 0, "vision", me.Room(), 0, 0, 0, me.Name() + " dies!!!" ) # calculate how much experience to give to everyone attacking you experience = me.GetAttribute( "giveexperience" ) if len( self.attackedlist ) > 0: experience = experience / len( self.attackedlist ) # go through everyone, tell them you died, and give them their experience for x in self.attackedlist[:]: c = BetterMUD.character( x ) c.DoAction( "do", 0, 0, self.me, 0, "killed" ) self.mud.DoAction( "modifyattribute", 0, x, c.GetAttribute( "experience" ) + experience, experience, "experience" ) # clear the list self.attackedlist = [] # go through all his items and force them to drop me.BeginItem() while me.IsValidItem(): self.mud.DoAction( "dropitem", me.ID(), me.CurrentItem(), 0, 0, "" ) me.NextItem() # now figure out how to kill the character if not me.IsPlayer(): # just destroy non-players self.mud.AddActionAbsolute( 0, "destroycharacter", self.me, 0, 0, 0, "" ) else: # give the player some hitpoints back me.SetAttribute( "hitpoints", (me.GetAttribute( "maxhitpoints" ) / 10) * 7 ) # now spawn the player somewhere, checking the current room, current region, current character, # and finally giving up and sending the player to room 1. r = BetterMUD.room( me.Room() ) if r.DoAction( "do", me.ID(), 0, 0, 0, "deathtransport" ): return r = BetterMUD.region( me.Region() ) if r.DoAction( "do", me.ID(), 0, 0, 0, "deathtransport" ): return if me.DoAction( "do", me.ID(), 0, 0, 0, "deathtransport" ): return self.mud.DoAction( "forcetransport", me.ID(), 1, 0, 0, "" ) return # reset hp if maxhp goes down below hp. if action == "modifyattribute" and data == "maxhitpoints": if me.GetAttribute( "hitpoints" ) > me.GetAttribute( "maxhitpoints" ): me.SetAttribute( "hitpoints", me.GetAttribute( "maxhitpoints" ) ) return # people with the combat module can be attacked if action == "query" and data == "canattack": return 1 # add character to attacked list if he isn't there if action == "do" and data == "attacked": try: self.attackedlist.index( arg3 ) except: self.attackedlist.append( arg3 ) return # remove character from attacked list if action == "do" and data == "brokeattack": try: self.attackedlist.remove( arg3 ) except: pass return # initiate an attack if action == "do" and data == "initattack": if arg3 == self.me: return # clear the old target if attacking someone else if self.target != 0: t = BetterMUD.character( self.target ) t.DoAction( "do", 0, 0, self.me, 0, "brokeattack" ) else: self.mud.AddActionRelative( 0, "do", 0, self.me, 0, 0, "attack" ) # set the new target and tell him he's been attacked self.target = arg3 t = BetterMUD.character( arg3 ) t.DoAction( "do", 0, 0, self.me, 0, "attacked" ) self.mud.AddActionAbsolute( 0, "vision", me.Room(), 0, 0, 0, me.Name() + " begins attacking " + t.Name() + "!!" ) return # clear the old target if attacking someone else if action == "do" and data == "breakattack": self.Break( me ) return # break if target or you leaves room if action == "leaveroom": if arg1 == self.target or arg1 == self.me: self.Break( me ) return if action == "do" and data == "attack": # get the target target = BetterMUD.character( self.target ) # set another attack round self.mud.AddActionRelative( self.attacktime, "do", 0, self.me, 0, 0, "attack" ) # get the weapon if me.GetAttribute( "weapon" ) == 0: weapon = BetterMUD.itemtemplate( me.GetAttribute( "defaultweapon" ) ) else: weapon = BetterMUD.item( me.GetAttribute( "weapon" ) ) # calculate the accuracy accuracy = weapon.GetAttribute( "accuracy" ) accuracy += target.DoAction( "query", me.ID(), target.ID(), 0, 0, "getaccuracydelta" ) accuracy += me.DoAction( "query", me.ID(), target.ID(), 0, 0, "getaccuracydelta" ) # see if you hit him if accuracy <= random.randint( 0, 99 ): self.mud.AddActionAbsolute( 0, "vision", me.Room(), 0, 0, 0, me.Name() + " swings at " + target.Name() + " with " + weapon.Name() + ", but misses!" ) return # calculate damage and hit damage = random.randint( weapon.GetAttribute( "mindamage" ), weapon.GetAttribute( "maxdamage" ) ) self.mud.DoAction( "vision", me.Room(), 0, 0, 0, "<#FF0000>" + me.Name() + " hits " + target.Name() + " with " + weapon.Name() + " for " + str( damage ) + " damage!" ) self.mud.DoAction( "modifyattribute", 0, target.ID(), target.GetAttribute( "hitpoints" ) - damage, damage, "hitpoints" )