Example #1
0
    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)
Example #2
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()
Example #3
0
	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)
Example #4
0
 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)