def remote_removeFromParty(self, cname): # Do not allow a player to change party members while in a trade. if self.player.trade: self.player.sendGameText(RPG_MSG_GAME_DENIED,"You must finish a trade before using the Inn.\\n") return try: c = Character.byName(cname) except: return if c not in self.player.party.members: return if len(self.player.party.members) == 1: return if not c.dead: gotone = False for dc in self.player.party.members: if dc == c: continue if not dc.dead: gotone = True break if not gotone: self.player.sendGameText(RPG_MSG_GAME_DENIED,"You must have at least one living member of your party!\\n") return self.player.party.removeCharacter(c) self.player.alliance.allianceInfo.refresh() self.sendLists()
def gotCharacterBuffer(self,cbuffer,cname): if not self.player: return player = self.player if cbuffer: cbuffer = loads(decodestring(cbuffer)) c = None try: c = Character.byName(cname) try: c.destroySelf() except: print "ERROR SWAPPING TO %s"%cname return except: pass InstallCharacterBuffer(self.player.id,cname,cbuffer) c = Character.byName(cname) if c.dead: c.dead = False c.health = -999999 c.stamina = -999999 c.mana = -999999 ec = self.player.party.members[0] self.player.party.addCharacter(c) ec.backupItems() self.player.party.removeCharacter(ec) self.player.alliance.allianceInfo.refresh() self.sendLists() ExtractPlayer(player.publicName,player.id,ec.id) ec.destroySelf() player.world.sendCharacterInfo(player) player.charName = c.name player.zone.simAvatar.setDisplayName(player)
def install(self, player): spawn = self.spawn.install() FilterColumns(Character, self.dbAttr) self.dbAttr["name"] = spawn.name #may be renamed self.dbAttr["spawnID"] = spawn.id self.dbAttr["playerID"] = player.id char = Character(**self.dbAttr) spawn.character = char #version 1.0 didn't have a foreign key to character from spawn spawn.playerName = player.publicName # Restore spawn resists of this character. for a in self.sresists: a.install(spawn) # Restore spawn stats of this character. for a in self.sstats: a.install(spawn) # Restore advancements of this character. for a in self.advancements: a.install(char) # Restore spells of this character. for s in self.spells: s.install(char) # Restore skills of this character. for s in self.skills: s.install(char) # Restore this characters items. for i in self.items: i.install(char) # Restore this characters vault items. for i in self.vaultItems: i.install(char) # Restore this characters factions. for f in self.factions: f.install(char) # Restore this characters dialog choices. for dc in self.dc: dc.install(char) # Restore stored spells active on this character. for sps in self.spellStore: sps.install(char)
def remote_addToParty(self, cname): # Get a handle to the player. player = self.player # Do not allow a player to change party members while in a trade. if player.trade: player.sendGameText(RPG_MSG_GAME_DENIED,"You must finish a trade before using the Inn.\\n") return from mud.world.cserveravatar import AVATAR if AVATAR: if player.cserverInfos: for ci in player.cserverInfos: if ci.rename == 2 and ci.name.lower() == cname.lower(): player.sendGameText(RPG_MSG_GAME_DENIED,"You must rename this character before bringing them into the game. You can rename the character by logging in with them from the main world login screen.\\n") return #should be on client if cname == player.party.members[0].name: return t = sysTime() - player.lastInnAddTime if t < 30: player.sendGameText(RPG_MSG_GAME_DENIED,"You can change characters in %i seconds.\\n"%(31-t)) return player.lastInnAddTime = sysTime() d = AVATAR.mind.callRemote("getCharacterBuffer", \ player.publicName,cname) d.addCallback(self.gotCharacterBuffer,cname) return d else: try: c = Character.byName(cname) except: return if c.player != player: print "WARNING: Player at inn attempting to add a character that isn't theres!" return if len(player.party.members) == 6: return if len(player.party.members) >= CoreSettings.MAXPARTY: player.sendGameText(RPG_MSG_GAME_DENIED,"This world allows at most %i characters in your party.\\n"%(CoreSettings.MAXPARTY)) return if c in player.party.members: return #add the character!!!! player.party.addCharacter(c) # Monsters don't like to party... if player.realm == RPG_REALM_MONSTER: for member in player.party.members: if member != c: player.party.removeCharacter(member) player.sendGameText(RPG_MSG_GAME_EVENT, \ "Rawr! Monsters don't like to party.\\n") player.alliance.allianceInfo.refresh() self.sendLists() return