def CmdGiveMonster(mob, args): if not len(args): return mspawn = ' '.join(args) lowerSpawn = mspawn.lower() for monsterSpawn in mob.player.monsterSpawns: if monsterSpawn.spawn.lower() == lowerSpawn: mob.player.sendGameText( RPG_MSG_GAME_DENIED, "You already have the %s monster template.\\n" % monsterSpawn.spawn) return from spawn import Spawn try: con = Spawn._connection.getConnection() spawn = Spawn.get( con.execute( "SELECT id FROM spawn WHERE lower(name)=\"%s\" LIMIT 1;" % lowerSpawn).fetchone()[0]) mspawn = spawn.name except: mob.player.sendGameText(RPG_MSG_GAME_DENIED, "No such spawn %s.\\n" % mspawn) return from player import PlayerMonsterSpawn PlayerMonsterSpawn(player=mob.player, spawn=mspawn) mob.player.sendGameText( RPG_MSG_GAME_GAINED, "You now have the %s monster template.\\n" % mspawn)
def CmdGrantMonster(mob, args): if len(args) < 2: return pname = args[0] lowerPName = pname.lower() args = args[1:] mspawn = ' '.join(args) lowerSpawn = mspawn.lower() from player import Player try: con = Player._connection.getConnection() player = Player.get( con.execute( "SELECT id FROM player WHERE lower(public_name) = \"%s\" LIMIT 1;" % lowerPName).fetchone()[0]) pname = player.publicName except: mob.player.sendGameText(RPG_MSG_GAME_DENIED, "No player by public name %s.\\n" % pname) return if not player.party or not len(player.party.members): mob.player.sendGameText(RPG_MSG_GAME_DENIED, "Player isn't logged in %s.\\n" % pname) return for monsterSpawn in player.monsterSpawns: if monsterSpawn.spawn.lower() == lowerSpawn: mob.player.sendGameText( RPG_MSG_GAME_DENIED, "%s already has the %s monster template.\\n" % (pname, monsterSpawn.spawn)) return from spawn import Spawn try: con = Spawn._connection.getConnection() spawn = Spawn.get( con.execute( "SELECT id FROM spawn WHERE lower(name) = \"%s\" LIMIT 1;" % lowerSpawn).fetchone()[0]) mspawn = spawn.name except: mob.player.sendGameText(RPG_MSG_GAME_DENIED, "No such spawn %s.\\n" % mspawn) return from player import PlayerMonsterSpawn PlayerMonsterSpawn(player=player, spawn=mspawn) mob.player.sendGameText( RPG_MSG_GAME_GAINED, "You have granted %s the %s monster template.\\n" % (pname, mspawn)) if player.zone: player.sendGameText( RPG_MSG_GAME_GAINED, "You now have the %s monster template.\\n" % mspawn)
def CmdSpawn(mob, args): try: # Check if there were coords supplied. if args[-1].endswith(']'): # Extract the coords argument. # It should look like this: [x.x y.y z.z]. x = float(args[-3][1:]) y = float(args[-2]) z = float(args[-1][:-1]) spawnName = ' '.join(args[:-3]) # Otherwise take the immortals position. else: mypos = mob.simObject.position x = mypos[0] y = mypos[1] z = mypos[2] spawnName = ' '.join(args) except: mob.player.sendGameText( RPG_MSG_GAME_DENIED, "Invalid arguments to immortal spawn command. Syntax is '/imm spawn <spawn name> [x-coord y-coord z-coord]' where the coords with their '[]' brackets are optional.\\n" ) return # Get the spawn. try: con = Spawn._connection.getConnection() spawn = Spawn.get( con.execute( "SELECT id FROM spawn WHERE lower(name)=lower(\"%s\") LIMIT 1;" % spawnName).fetchone()[0]) except: mob.player.sendGameText(RPG_MSG_GAME_DENIED, \ "Failure spawning %s, this spawn doesn't exist.\\n"%spawnName) return # Put the transform together. rot = mob.simObject.rotation transform = (x, y, z, rot[0], rot[1], rot[2], rot[3]) # Spawn the desired mob. mob.zone.spawnMob(spawn, transform, -1) # Give feedback about the successful spawning. mob.player.sendGameText(RPG_MSG_GAME_GAINED, \ "%s spawned at [%0.2f %0.2f %0.2f].\\n"%(spawnName,x,y,z))
def CmdGrantMonster(mob,args): if len(args) < 2: return pname = args[0] lowerPName = pname.lower() args = args[1:] mspawn = ' '.join(args) lowerSpawn = mspawn.lower() from player import Player try: con = Player._connection.getConnection() player = Player.get(con.execute("SELECT id FROM player WHERE lower(public_name) = \"%s\" LIMIT 1;"%lowerPName).fetchone()[0]) pname = player.publicName except: mob.player.sendGameText(RPG_MSG_GAME_DENIED,"No player by public name %s.\\n"%pname) return if not player.party or not len(player.party.members): mob.player.sendGameText(RPG_MSG_GAME_DENIED,"Player isn't logged in %s.\\n"%pname) return for monsterSpawn in player.monsterSpawns: if monsterSpawn.spawn.lower() == lowerSpawn: mob.player.sendGameText(RPG_MSG_GAME_DENIED,"%s already has the %s monster template.\\n"%(pname,monsterSpawn.spawn)) return from spawn import Spawn try: con = Spawn._connection.getConnection() spawn = Spawn.get(con.execute("SELECT id FROM spawn WHERE lower(name) = \"%s\" LIMIT 1;"%lowerSpawn).fetchone()[0]) mspawn = spawn.name except: mob.player.sendGameText(RPG_MSG_GAME_DENIED,"No such spawn %s.\\n"%mspawn) return from player import PlayerMonsterSpawn PlayerMonsterSpawn(player=player,spawn=mspawn) mob.player.sendGameText(RPG_MSG_GAME_GAINED,"You have granted %s the %s monster template.\\n"%(pname,mspawn)) if player.zone: player.sendGameText(RPG_MSG_GAME_GAINED,"You now have the %s monster template.\\n"%mspawn)
def CmdSpawn(mob, args): try: # Check if there were coords supplied. if args[-1].endswith(']'): # Extract the coords argument. # It should look like this: [x.x y.y z.z]. x = float(args[-3][1:]) y = float(args[-2]) z = float(args[-1][:-1]) spawnName = ' '.join(args[:-3]) # Otherwise take the immortals position. else: mypos = mob.simObject.position x = mypos[0] y = mypos[1] z = mypos[2] spawnName = ' '.join(args) except: mob.player.sendGameText(RPG_MSG_GAME_DENIED,"Invalid arguments to immortal spawn command. Syntax is '/imm spawn <spawn name> [x-coord y-coord z-coord]' where the coords with their '[]' brackets are optional.\\n") return # Get the spawn. try: con = Spawn._connection.getConnection() spawn = Spawn.get(con.execute("SELECT id FROM spawn WHERE lower(name)=lower(\"%s\") LIMIT 1;"%spawnName).fetchone()[0]) except: mob.player.sendGameText(RPG_MSG_GAME_DENIED, \ "Failure spawning %s, this spawn doesn't exist.\\n"%spawnName) return # Put the transform together. rot = mob.simObject.rotation transform = (x,y,z,rot[0],rot[1],rot[2],rot[3]) # Spawn the desired mob. mob.zone.spawnMob(spawn,transform,-1) # Give feedback about the successful spawning. mob.player.sendGameText(RPG_MSG_GAME_GAINED, \ "%s spawned at [%0.2f %0.2f %0.2f].\\n"%(spawnName,x,y,z))
def CmdGiveMonster(mob,args): if not len(args): return mspawn = ' '.join(args) lowerSpawn = mspawn.lower() for monsterSpawn in mob.player.monsterSpawns: if monsterSpawn.spawn.lower() == lowerSpawn: mob.player.sendGameText(RPG_MSG_GAME_DENIED,"You already have the %s monster template.\\n"%monsterSpawn.spawn) return from spawn import Spawn try: con = Spawn._connection.getConnection() spawn = Spawn.get(con.execute("SELECT id FROM spawn WHERE lower(name)=\"%s\" LIMIT 1;"%lowerSpawn).fetchone()[0]) mspawn = spawn.name except: mob.player.sendGameText(RPG_MSG_GAME_DENIED,"No such spawn %s.\\n"%mspawn) return from player import PlayerMonsterSpawn PlayerMonsterSpawn(player=mob.player,spawn=mspawn) mob.player.sendGameText(RPG_MSG_GAME_GAINED,"You now have the %s monster template.\\n"%mspawn)