def run(self): gm = self.q.gm[self.freegm]["i"] print "start %d %d" % (self.bbx, self.bby), self.freegm # GeoEditorListener.getInstance().getThread().addGM(gm) GeoEditorListener.getInstance().getThread().setMode(1) start = time.time() if self.q.fly256Block(self.freegm, self.bbx, self.bby): gm.sendMessage("finish %d %d %d sec" % (self.bbx, self.bby, time.time() - start)) gm.geoFree = True print "finish %d %d" % (self.bbx, self.bby), self.freegm, time.time() - start del self.q.gm[self.freegm]
def run(self): gm = self.q.gm[self.freegm]['i'] print "start %d %d" % (self.bbx, self.bby), self.freegm #GeoEditorListener.getInstance().getThread().addGM(gm) GeoEditorListener.getInstance().getThread().setMode(1) start = time.time() if self.q.fly256Block(self.freegm, self.bbx, self.bby): gm.sendMessage("finish %d %d %d sec" % (self.bbx, self.bby, time.time() - start)) gm.geoFree = True print "finish %d %d" % (self.bbx, self.bby), self.freegm, time.time() - start del self.q.gm[self.freegm]
def run(self): print "connect to GS" sgs = Socket("127.0.0.1", 9011) i = DataInputStream(sgs.getInputStream()) print "connect to GeoEditor" sge = Socket("127.0.0.1", 2109) # o = DataOutputStream(sge.getOutputStream()) o = sge.getOutputStream() Thread.sleep(5000) GeoEditorListener.getInstance().getThread().addListener(self.vpl) print "gsge Ready" bufsize = 4096 lastpos = 0 buf = String("\0" * bufsize).getBytes() fc = 0 while True: if not i.available(): Thread.sleep(10) fc += 1 if fc % 500 == 0: o.flush() fc = 0 continue lastpos += i.read(buf, lastpos, bufsize - lastpos) while lastpos > 0 and lastpos > buf[0]: if buf[1] == 2: pass elif buf[1] == 1: x = self.list2num(buf[2:6]) y = self.list2num(buf[6:10]) z = self.list2num(buf[10:12]) if z > -15000: rx, ry = GeoUtil.getRegionXY(x, y) if (rx, ry) == (22, 22): bx, by = GeoUtil.getBlockXY(x, y) cx, cy = GeoUtil.getCellXY(x, y) o.write(struct.pack(">BBBBh", bx, by, cx, cy, z)) newpos = buf[0] + 1 if len(buf) - newpos < bufsize: buf = buf[newpos:] + String("\0" * bufsize).getBytes() else: buf = buf[newpos:] lastpos -= newpos
def run(self): print "connect to GS" sgs = Socket("127.0.0.1", 9011) i = DataInputStream(sgs.getInputStream()) print "connect to GeoEditor" sge = Socket("127.0.0.1", 2109) #o = DataOutputStream(sge.getOutputStream()) o = sge.getOutputStream() Thread.sleep(5000) GeoEditorListener.getInstance().getThread().addListener(self.vpl) print "gsge Ready" bufsize = 4096 lastpos = 0 buf = String("\0" * bufsize).getBytes() fc = 0 while True: if not i.available(): Thread.sleep(10) fc += 1 if fc % 500 == 0: o.flush() fc = 0 continue lastpos += i.read(buf, lastpos, bufsize - lastpos) while lastpos > 0 and lastpos > buf[0]: if buf[1] == 2: pass elif buf[1] == 1: x = self.list2num(buf[2:6]) y = self.list2num(buf[6:10]) z = self.list2num(buf[10:12]) if z > -15000: rx, ry = GeoUtil.getRegionXY(x, y) if (rx, ry) == (22, 22): bx, by = GeoUtil.getBlockXY(x, y) cx, cy = GeoUtil.getCellXY(x, y) o.write(struct.pack('>BBBBh', bx, by, cx, cy, z)) newpos = buf[0] + 1 if len(buf) - newpos < bufsize: buf = buf[newpos:] + String("\0" * bufsize).getBytes() else: buf = buf[newpos:] lastpos -= newpos
def onAdvEvent(self, event, npc, player): #return if not self.gsge.isAlive(): print "gsge not connect" self.cancelQuestTimers("onTime1") return if event == "onTime1": for gm in GeoEditorListener.getInstance().getThread()._gms.toArray( ): #for player in L2World.getInstance().getAllPlayersArray(): name = gm.getName() if not name in self.gm: if gm.geoFree: gm.geoFree = False self.gm[name] = {'i': gm, 's': 0} b = self.getNotDoneBBlock() if b > -1: freegm = self.getFreeGM() if len(freegm): freegm = freegm[0] rt = Runtask() rt.setParam(self, freegm, b % 16, b >> 4) rt.start() else: print "no job" self.saveLastZ() #self.doneBBlock = [0]*1 self.doneBBlock = [0] * 16 * 16 doneCount = 0 for by in xrange(256): for bx in xrange(256): if self.checkOneBlock(bx, by): self.doneBlock[by * 256 + bx] = 2 #print "bx %d by %d done" % (bx, by) doneCount += 1 else: self.doneBlock[by * 256 + bx] = 0 print "Done %d, not done %d" % (doneCount, 256 * 256 - doneCount) #self.doneBlock = [0]*(256*256) #self.cancelQuestTimers("onTime1") return
def onAdvEvent(self, event, npc, player): # return if not self.gsge.isAlive(): print "gsge not connect" self.cancelQuestTimers("onTime1") return if event == "onTime1": for gm in GeoEditorListener.getInstance().getThread()._gms.toArray(): # for player in L2World.getInstance().getAllPlayersArray(): name = gm.getName() if not name in self.gm: if gm.geoFree: gm.geoFree = False self.gm[name] = {"i": gm, "s": 0} b = self.getNotDoneBBlock() if b > -1: freegm = self.getFreeGM() if len(freegm): freegm = freegm[0] rt = Runtask() rt.setParam(self, freegm, b % 16, b >> 4) rt.start() else: print "no job" self.saveLastZ() # self.doneBBlock = [0]*1 self.doneBBlock = [0] * 16 * 16 doneCount = 0 for by in xrange(256): for bx in xrange(256): if self.checkOneBlock(bx, by): self.doneBlock[by * 256 + bx] = 2 # print "bx %d by %d done" % (bx, by) doneCount += 1 else: self.doneBlock[by * 256 + bx] = 0 print "Done %d, not done %d" % (doneCount, 256 * 256 - doneCount) # self.doneBlock = [0]*(256*256) # self.cancelQuestTimers("onTime1") return