def do_09c4(self, data_io): #アイテム使用 item_iid = io_unpack_int(data_io) target_id = io_unpack_int(data_io) x = io_unpack_unsigned_byte(data_io) y = io_unpack_unsigned_byte(data_io) with self.pc.lock: item = self.pc.item.get(item_iid) if not item: return event_id = item.event_id item_event_id = item.item_id item_skill_id = item.skill_id p = self.pc if target_id == -1: #対象:地面 pass elif target_id != self.pc.id: #対象:単体 p = users.get_pc_from_id(target_id) if not (p and p.online): return if event_id: script.run(p, event_id, item_event_id) else: #アイテム使用結果 #success self.send("09c5", self.pc, item_event_id, target_id, x, y) #アイテム使用効果 (対象:地面) self.send("09c6", self.pc, item_event_id, target_id, x, y) skills.use(self.pc, target_id, x, y, item_skill_id, 1)
def do_1387(self, data_io): #スキル使用 skill_id = io_unpack_unsigned_short(data_io) target_id = io_unpack_int(data_io) x = io_unpack_unsigned_byte(data_io) y = io_unpack_unsigned_byte(data_io) skill_lv = io_unpack_byte(data_io) skills.use(self.pc, target_id, x, y, skill_id, skill_lv)