def checkReviveAndLogin(self): val, self.timerDead = OpenLib.timeSleep(self.timerDead, self.TIME_DEAD) if not val: return if self.restartHere and player.GetStatus(player.HP) <= 0: OpenLib.Revive() if self.autoLogin and OpenLib.GetCurrentPhase() == OpenLib.PHASE_LOGIN: net.DirectEnter(0, 0)
def OnUpdate(self): if self.STATE_STOPPED == self.State: return val, self.generalTimer = OpenLib.timeSleep(self.generalTimer, self.time_wait) if not val: return if OpenLib.GetCurrentPhase() != OpenLib.PHASE_GAME: return if self.State == self.STATE_WATING: return if not self.DoChecks(): self.Frame()
def OnUpdate(self): val, self.lastTime = OpenLib.timeSleep(self.lastTime,self.speed) if(val and self.enableButton.isOn and not self.pause): if OpenLib.GetCurrentPhase() != OpenLib.PHASE_GAME: return isArch = self.IsWeaponArch() main_vid = net.GetMainActorVID() x,y,z = chr.GetPixelPosition(main_vid) self.lastPos = (x,y) lst = list() chat.AppendChat(3,str(len(net_packet.InstancesList))) for vid in net_packet.InstancesList: if vid == main_vid: continue if not chr.HasInstance(vid): continue if self.playerClose.isOn and chr.GetInstanceType(vid) == OpenLib.PLAYER_TYPE and vid != net.GetMainActorVID(): return if self.MetinButton.isOn and chr.GetInstanceType(vid) != OpenLib.METIN_TYPE: continue if player.GetCharacterDistance(vid) < self.range and not net_packet.IsDead(vid): lst.append(vid) hit_counter = 0 i = 0 while len(lst) > 0 and hit_counter < self.maxMonster: vid = lst[0] mob_x, mob_y, mob_z = chr.GetPixelPosition(vid) if net_packet.IsPositionBlocked(mob_x,mob_y): lst.remove(vid) continue #Checking the distance between teleports might increase the range and make it more stable if isArch: hit_counter+=self.AttackArch(lst,mob_x, mob_y) else: hit_counter+=self.TeleportAttack(lst,mob_x, mob_y) i+=1 Movement.TeleportStraightLine(self.lastPos[0],self.lastPos[1],x,y)
def PickUp(self): if self.pickUp: val, self.pickUpTimer = OpenLib.timeSleep(self.pickUpTimer, self.pickUpSpeed) if not val: return if OpenLib.GetCurrentPhase() != OpenLib.PHASE_GAME: return x, y, z = player.GetMainCharacterPosition() vid, itemX, itemY = net_packet.GetCloseItemGround(x, y) if vid == 0: return dst = OpenLib.dist(x, y, itemX, itemY) allowedRange = max(self.pickUpRange, OpenLib.MAX_PICKUP_DIST) if dst <= allowedRange: #Teleport to item if dst >= OpenLib.MAX_PICKUP_DIST: if not self.useRangePickup: return Movement.TeleportStraightLine(x, y, itemX, itemY) net_packet.SendPickupItem(vid) Movement.TeleportStraightLine(itemX, itemY, x, y) else: net_packet.SendPickupItem(vid)