def run(pc, event_id, item_event_id=0): #vulnerability: #* send a lot of event or skill request can make thread number #* reached the system limits #if pc.event_id is not None or pc.item_event_id is not None: # general.log_error("script.run error: event duplicate", pc, pc.event_id) # return if not event_id: general.log_error("[event] event_id null", pc, event_id) return general.start_thread(run_script, (pc, event_id, item_event_id))
def damage(self, i): with self.lock: if self.status.hp <= 0: general.log_error("[monster] monster.hp <= 0", self) return 0 state_list = dict((j, 0) for j in xrange(10)) self.status.hp -= i if self.status.hp <= 0: self.status.hp = 0 state_list[0] |= 0x200 #行動不能 general.start_thread(monsters.delete_monster_thread, (self,)) script.send_map_obj(self.map_obj, (), "021c", self) #現在のHP/MP/SP/EP script.send_map_obj(self.map_obj, (), "157c", self, state_list) #キャラの状態 return self.status.hp
def damage(self, i): with self.lock: if self.status.hp <= 0: general.log_error("[monster] monster.hp <= 0", self) return 0 state_list = dict((j, 0) for j in xrange(10)) self.status.hp -= i if self.status.hp <= 0: self.status.hp = 0 state_list[0] |= 0x200 #行動不能 general.start_thread(monsters.delete_monster_thread, (self, )) script.send_map_obj(self.map_obj, (), "021c", self) #現在のHP/MP/SP/EP script.send_map_obj(self.map_obj, (), "157c", self, state_list) #キャラの状態 return self.status.hp
def use(pc, target_id, x, y, skill_id, skill_lv): general.log("[skill] use skill (%s, %s) -> (%s, %s, %s)"%( skill_id, skill_lv, target_id, x, y, )) mod = name_map.get(str(skill_id)) if mod is None: skill_obj = db.skill.get(skill_id) skill_name = skill_obj.name if skill_obj else "unknow" script.msg(pc, "skill %s %s not define"%(skill_id, skill_name)) #スキル使用 #スキルを使用できません pc.map_send("1389", pc, -1, x, y, skill_id, skill_lv, 13, -1) #スキル使用通知 #スキルを使用できません pc.map_send("138a", pc, 13) return general.start_thread(use_thread, (mod, pc, target_id, x, y, skill_id, skill_lv)) return True
def use(pc, target_id, x, y, skill_id, skill_lv): general.log("[skill] use skill (%s, %s) -> (%s, %s, %s)" % ( skill_id, skill_lv, target_id, x, y, )) mod = name_map.get(str(skill_id)) if mod is None: skill_obj = db.skill.get(skill_id) skill_name = skill_obj.name if skill_obj else "unknow" script.msg(pc, "skill %s %s not define" % (skill_id, skill_name)) #スキル使用 #スキルを使用できません pc.map_send("1389", pc, -1, x, y, skill_id, skill_lv, 13, -1) #スキル使用通知 #スキルを使用できません pc.map_send("138a", pc, 13) return general.start_thread(use_thread, (mod, pc, target_id, x, y, skill_id, skill_lv)) return True
def shutdown_server(pc, confirm_word=""): if confirm_word != env.SHUTDOWN_CONFIRM_WORD: warning(pc, "use /shutdown_server %s" % env.SHUTDOWN_CONFIRM_WORD) return general.start_thread(sys.modules["__main__"].atexit, ())
def shutdown_server(pc, confirm_word=""): if confirm_word != env.SHUTDOWN_CONFIRM_WORD: warning(pc, "use /shutdown_server %s"%env.SHUTDOWN_CONFIRM_WORD) return general.start_thread(sys.modules["__main__"].atexit, ())