def at_post_login(self, sessid=None): super(Player, self).at_post_login(sessid) try: if (settings.TEST_SERVER): self.permissions.add('Builders') except AttributeError: pass character = self.character # Вероятно, этот код нужно убрать в at_first_login хук try: homeLocation = character.search(u"1-Общий дворик", global_search=True, quiet=True)[0] except IndexError: # сервер после вайпа, нужно выполнить инцилизацию локаций вручную # bathccommand mu2ch_init # пока заглушка return if (homeLocation and character.home != homeLocation): character.home = character.location = homeLocation character.move_to(homeLocation) apartment = None if (character.db.flat): return i = 1 while (apartment is None): try: building = character.search(u"1-Дом%d" % i, global_search=True, quiet=True)[0] except IndexError: try: building_home = character.search(u"Преддомовая территория", global_search=True, quiet=True)[0] except IndexError: # что то пошло не так return building = create_object('typeclasses.building.Hrushevka', key=u"Дом%d" % i) locationTunnel(building, u"Дом%d" % i, building_home, u"Улица") if (not building): print "Что-то пошло не так" # never happend break # db.flat - локация хаты персонажа apartment = building.assignCharacter(character) if (apartment): character.msg("Тебя заселили по адресу: %s" % repr(apartment)) i = i + 1
def at_post_login(self, sessid = None): super(Player, self).at_post_login(sessid) try: if (settings.TEST_SERVER): self.permissions.add('Builders') except AttributeError: pass character = self.character # Вероятно, этот код нужно убрать в at_first_login хук try: homeLocation = character.search(u"1-Общий дворик", global_search = True, quiet = True)[0] except IndexError: # сервер после вайпа, нужно выполнить инцилизацию локаций вручную # bathccommand mu2ch_init # пока заглушка return if (homeLocation and character.home != homeLocation): character.home = character.location = homeLocation character.move_to(homeLocation) apartment = None if (character.db.flat): return i = 1 while (apartment is None): try: building = character.search(u"1-Дом%d" % i, global_search = True, quiet = True)[0] except IndexError: try: building_home = character.search(u"Преддомовая территория", global_search = True, quiet = True)[0] except IndexError: # что то пошло не так return building = create_object('typeclasses.building.Hrushevka', key = u"Дом%d" % i) locationTunnel(building, u"Дом%d" % i , building_home, u"Улица") if (not building): print "Что-то пошло не так" # never happend break # db.flat - локация хаты персонажа apartment = building.assignCharacter(character) if (apartment): character.msg("Тебя заселили по адресу: %s" % repr(apartment)) i = i + 1
def build(self): i = 0 prev_floor = None for i in xrange(1, self.db.floor_n): new_floor = create_object('floor.BuildingFloor', key = u"%d Этаж" % i) new_floor.build(self, i) new_floor.move_to(self, quiet = True, move_hooks = False) locationTunnel(self, self.db.desc, new_floor, None) if (prev_floor): locationTunnelDefault(prev_floor, new_floor) prev_floor = new_floor
def build(self, building, n): self.db.n = n self.db.key = self.db.desc = u"%d этаж" % n self.db.building = building per_floor = building.db.apartment_per_floor i = 1 for i in xrange(1, per_floor + 1): room_n = ((n - 1) * per_floor) + i roomEntryLocation = create_object('apartment.BuildingApartmentUnused', key = u"Кв-%d" % room_n) roomEntryLocation.build(self, room_n) roomEntryLocation.move_to(self, quiet = True, move_hooks = False) locationTunnel(roomEntryLocation, roomEntryLocation.key, self, u"Лестничная площадка") return self
def build(self): i = 0 prev_floor = None for i in xrange(1, self.db.floor_n): new_floor = create_object('floor.BuildingFloor', key=u"%d Этаж" % i) new_floor.build(self, i) new_floor.move_to(self, quiet=True, move_hooks=False) locationTunnel(self, self.db.desc, new_floor, None) if (prev_floor): locationTunnelDefault(prev_floor, new_floor) prev_floor = new_floor
def create_room(self, room): new_room = create_object('typeclasses.rooms.Box', key = room['name']) new_room.db.desc = room['desc'] if (new_room.name == u'Кухня'): new_room.scripts.add(KitchenKnife) try: for npc in room['npc']: create_object(npc['typeclass'], key = npc['name'], location = new_room) except KeyError: pass #locationTunnelDefault(self, new_room); locationTunnel(self, "Прихожка", new_room, new_room.name); return new_room
def assignApartmentToCharacter(self, apartment_location, character): # TODO проверяеть тип локации который нам дают floor = apartment_location.db.floor # Уничтожаем пустую квартиру room_n = apartment_location.db.n db_key = apartment_location.name apartment_location.delete() # Создаем кваритру с комнатами new_apartment = create_object('apartment.BuildingApartmentUsed', key = db_key) new_apartment.build(floor, room_n) new_apartment.db.assign_to = character exits = locationTunnel(new_apartment, new_apartment.name, floor, u"Лестничная площадка") exits[1].locks.add("traverse: id(%d) or perm(Wizard)" % character.id) new_apartment.move_to(floor, quiet = True, move_hooks = False) return new_apartment
def assignApartmentToCharacter(self, apartment_location, character): # TODO проверяеть тип локации который нам дают floor = apartment_location.db.floor # Уничтожаем пустую квартиру room_n = apartment_location.db.n db_key = apartment_location.name apartment_location.delete() # Создаем кваритру с комнатами new_apartment = create_object('apartment.BuildingApartmentUsed', key=db_key) new_apartment.build(floor, room_n) new_apartment.db.assign_to = character exits = locationTunnel(new_apartment, new_apartment.name, floor, u"Лестничная площадка") exits[1].locks.add("traverse: id(%d) or perm(Wizard)" % character.id) new_apartment.move_to(floor, quiet=True, move_hooks=False) return new_apartment