def CmdGimme(mob,args): from item import ItemProto,getTomeAtLevelForScroll argUpper = args[0].upper() if argUpper == 'TOME': itemname = argUpper tomename = ' '.join(args[2:-1]) # strip "Tome of" and tome level elif argUpper not in ("PLEVEL","SLEVEL","TLEVEL","SKILL","MONEY","XP","RENEW","PRESENCE"): itemname = ' '.join(args) else: itemname = argUpper levels = 0 if len(args) > 1: try: levels = int(args[1]) except: pass if itemname == 'MONEY': if len(args) > 1: try: amount = int(args[1]) except: amount = 1000 else: amount = 1000 mob.player.platinum += amount if mob.player.platinum < 0: mob.player.platinum = 0 if amount > 0: mob.player.sendGameText(RPG_MSG_GAME_GAINED,"Gained %i platinum.\\n"%amount) else: mob.player.sendGameText(RPG_MSG_GAME_DENIED,"Lost %i platinum.\\n"%(-amount)) return elif itemname == 'XP': for c in mob.player.party.members: c.gainXP(1000000) return elif itemname == 'PLEVEL': if levels == 0: return #no point in trying for x in xrange(0,levels): mob.player.curChar.gainLevel(0) return elif itemname == 'SLEVEL': if levels == 0: return #no point in trying for x in xrange(0,levels): mob.player.curChar.gainLevel(1) return elif itemname == 'TLEVEL': if levels == 0: return #no point in trying for x in xrange(0,levels): mob.player.curChar.gainLevel(2) return elif itemname == 'SKILL': if levels == 0: return #no point in trying m = mob.player.curChar.mob for x in xrange(0,levels): for skname in m.skillLevels.iterkeys(): mob.player.curChar.checkSkillRaise(skname,0,0) return elif itemname == 'PRESENCE': if levels < 0: mob.player.sendGameText(RPG_MSG_GAME_DENIED,"The value provided must be a positive integer.\\n") return if levels > RPG_MAX_PRESENCE: levels = RPG_MAX_PRESENCE currentCharacter = mob.player.curChar currentCharacter.mob.pre = levels currentCharacter.mob.preBase = levels currentCharacter.spawn.preBase = levels currentCharacter.mob.derivedDirty = True mob.player.sendGameText(RPG_MSG_GAME_GAINED,"You now have %i presence.\\n"%levels) return elif itemname == 'RENEW': for c in mob.player.party.members: m = c.mob m.health = m.maxHealth m.mana = m.maxMana m.stamina = m.maxStamina m.skillReuse = {} m.recastTimers = {} if m.pet: m.pet.health = m.pet.maxHealth mob.player.cinfoDirty = True return elif itemname == 'TOME': char = mob.player.curChar levels = ['1','2','3','4','5','6','7','8','9','10'] lupper = args[-1].upper() try: tomelevel = levels.index(lupper) + 1 except: try: tomelevel = RPG_ROMAN.index(lupper) + 1 except: mob.player.sendGameText(RPG_MSG_GAME_DENIED,"%s isn't a valid tome level!\\n"%args[-1]) return if tomelevel <= 1: mob.player.sendGameText(RPG_MSG_GAME_DENIED,"%s isn't a valid tome level!\\n"%args[-1]) return try: con = ItemProto._connection.getConnection() scroll = ItemProto.get(con.execute("SELECT id FROM item_proto WHERE lower(name)=lower(\"Scroll of %s\") LIMIT 1;"%tomename).fetchone()[0]) except: mob.player.sendGameText(RPG_MSG_GAME_DENIED,"%s is no spell name!\\n"%tomename) return nitem = getTomeAtLevelForScroll(scroll,tomelevel) if not char.giveItemInstance(nitem): nitem.destroySelf() mob.player.sendGameText(RPG_MSG_GAME_DENIED,"%s doesn't have enough inventory space\\n"%char.name) return char.refreshItems() mob.player.sendGameText(RPG_MSG_GAME_GAINED,"Gained %s\\n"%nitem.name) return from crafting import FocusGenSpecific item = FocusGenSpecific(itemname) if item: if not mob.player.curChar.giveItemInstance(item): item.destroySelf() mob.player.sendGameText(RPG_MSG_GAME_DENIED,"%s doesn't have enough inventory space\\n"%char.name) return else: item = mob.player.giveItem(itemname,True,True) if item: if RPG_SLOT_WORN_END > item.slot >= RPG_SLOT_WORN_BEGIN: mob.equipItem(item.slot,item) mob.player.sendGameText(RPG_MSG_GAME_GAINED,"Gained %s\\n"%item.name) return mob.player.sendGameText(RPG_MSG_GAME_DENIED,"Failure getting %s\\n"%itemname)
def CmdGimme(mob, args): from item import ItemProto, getTomeAtLevelForScroll argUpper = args[0].upper() if argUpper == 'TOME': itemname = argUpper tomename = ' '.join(args[2:-1]) # strip "Tome of" and tome level elif argUpper not in ("PLEVEL", "SLEVEL", "TLEVEL", "SKILL", "MONEY", "XP", "RENEW", "PRESENCE"): itemname = ' '.join(args) else: itemname = argUpper levels = 0 if len(args) > 1: try: levels = int(args[1]) except: pass if itemname == 'MONEY': if len(args) > 1: try: amount = int(args[1]) except: amount = 1000 else: amount = 1000 mob.player.platinum += amount if mob.player.platinum < 0: mob.player.platinum = 0 if amount > 0: mob.player.sendGameText(RPG_MSG_GAME_GAINED, "Gained %i platinum.\\n" % amount) else: mob.player.sendGameText(RPG_MSG_GAME_DENIED, "Lost %i platinum.\\n" % (-amount)) return elif itemname == 'XP': for c in mob.player.party.members: c.gainXP(1000000) return elif itemname == 'PLEVEL': if levels == 0: return #no point in trying for x in xrange(0, levels): mob.player.curChar.gainLevel(0) return elif itemname == 'SLEVEL': if levels == 0: return #no point in trying for x in xrange(0, levels): mob.player.curChar.gainLevel(1) return elif itemname == 'TLEVEL': if levels == 0: return #no point in trying for x in xrange(0, levels): mob.player.curChar.gainLevel(2) return elif itemname == 'SKILL': if levels == 0: return #no point in trying m = mob.player.curChar.mob for x in xrange(0, levels): for skname in m.skillLevels.iterkeys(): mob.player.curChar.checkSkillRaise(skname, 0, 0) return elif itemname == 'PRESENCE': if levels < 0: mob.player.sendGameText( RPG_MSG_GAME_DENIED, "The value provided must be a positive integer.\\n") return if levels > RPG_MAX_PRESENCE: levels = RPG_MAX_PRESENCE currentCharacter = mob.player.curChar currentCharacter.mob.pre = levels currentCharacter.mob.preBase = levels currentCharacter.spawn.preBase = levels currentCharacter.mob.derivedDirty = True mob.player.sendGameText(RPG_MSG_GAME_GAINED, "You now have %i presence.\\n" % levels) return elif itemname == 'RENEW': for c in mob.player.party.members: m = c.mob m.health = m.maxHealth m.mana = m.maxMana m.stamina = m.maxStamina m.skillReuse = {} m.recastTimers = {} if m.pet: m.pet.health = m.pet.maxHealth mob.player.cinfoDirty = True return elif itemname == 'TOME': char = mob.player.curChar levels = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] lupper = args[-1].upper() try: tomelevel = levels.index(lupper) + 1 except: try: tomelevel = RPG_ROMAN.index(lupper) + 1 except: mob.player.sendGameText( RPG_MSG_GAME_DENIED, "%s isn't a valid tome level!\\n" % args[-1]) return if tomelevel <= 1: mob.player.sendGameText( RPG_MSG_GAME_DENIED, "%s isn't a valid tome level!\\n" % args[-1]) return try: con = ItemProto._connection.getConnection() scroll = ItemProto.get( con.execute( "SELECT id FROM item_proto WHERE lower(name)=lower(\"Scroll of %s\") LIMIT 1;" % tomename).fetchone()[0]) except: mob.player.sendGameText(RPG_MSG_GAME_DENIED, "%s is no spell name!\\n" % tomename) return nitem = getTomeAtLevelForScroll(scroll, tomelevel) if not char.giveItemInstance(nitem): nitem.destroySelf() mob.player.sendGameText( RPG_MSG_GAME_DENIED, "%s doesn't have enough inventory space\\n" % char.name) return char.refreshItems() mob.player.sendGameText(RPG_MSG_GAME_GAINED, "Gained %s\\n" % nitem.name) return from crafting import FocusGenSpecific item = FocusGenSpecific(itemname) if item: if not mob.player.curChar.giveItemInstance(item): item.destroySelf() mob.player.sendGameText( RPG_MSG_GAME_DENIED, "%s doesn't have enough inventory space\\n" % char.name) return else: item = mob.player.giveItem(itemname, True, True) if item: if RPG_SLOT_WORN_END > item.slot >= RPG_SLOT_WORN_BEGIN: mob.equipItem(item.slot, item) mob.player.sendGameText(RPG_MSG_GAME_GAINED, "Gained %s\\n" % item.name) return mob.player.sendGameText(RPG_MSG_GAME_DENIED, "Failure getting %s\\n" % itemname)