Reklam
class Login:
def __init__(self, name=None, password=None,server=None,char=1,otp=None):
self.name = name
self.password = password
self.driver = InputDriver()
self.server = server
self.char = char
self.otp = otp
def themepass(self):
kom.client_click(self.driver, 0.5, 0.5, 0.3)
time.sleep(0.2)
self.driver.nameddown('esc')
time.sleep(0.3)
self.driver.namedup('esc')
def _captcha(self):
gizli
def start_abas(self):
if sonuc := resmi_bultr_v2('mainpng/Lstart1.png'):
self.driver.leftclick(0.2, sonuc[0], sonuc[1], duration=0.05)
time.sleep(1)
self.driver.leftclick(0.2, sonuc[0], sonuc[1], duration=0.05)
return self.driver.leftclick(0.2, sonuc[0], sonuc[1], duration=0.05)
def login_id_pw(self):
for _ in range(20):
if resmi_bultr_v2('mainpng/login.png'):
self.driver.type(self.name)
self.driver.nameddown('tab')
time.sleep(0.3)
self.driver.namedup('tab')
self.driver.type(self.password)
self.driver.nameddown('enter')
time.sleep(0.3)
self.driver.namedup('enter')
break
else:
time.sleep(0.3)
def login_otp(self):
for _ in range(10):
if resmi_bultr_v2('mainpng/OTP.png'):
generator = OTPGenerator()
generator.otp_pass = self.otp
generator.custom_path = "C:\\Program Files (x86)\\AnyOTPSetup\\SpoofInfo.txt"
generator.use_custom_otp = True
OTPKOD = generator.generate_otp()
# OTPKOD = otp.main()
self.driver.type(OTPKOD)
self.driver.nameddown('enter')
time.sleep(0.3)
self.driver.namedup('enter')
break
else:
if resmi_bultr_v2('mainpng/notice1.png'):
self.driver.nameddown('enter')
time.sleep(0.2)
self.driver.namedup('enter')
break
time.sleep(0.3)
def login_notice1(self):
for _ in range(6):
if resmi_bultr_v2('mainpng/notice1.png'):
print('notice1found')
self.driver.nameddown('enter')
time.sleep(0.2)
self.driver.namedup('enter')
break
else:
time.sleep(0.5)
def login_select_server(self):
if not resmi_bultr_v2('mainpng/selectserver.png'):
return
server_name = self.server.lower().strip().replace(" ", "") # örn: "dryds3" → "dryds3"
# Üst grup adı = sadece harfler (örn. dryds3 → dryds)
import re
match = re.match(r"([a-z]+)", server_name)
base_name = match.group(1) if match else "dryads"
# Eşleştirme haritası: yazım → görsel
visual_map = {
"dryds": "Dryads",
"agartha": "Agartha",
"destan": "Destan",
"felis": "Felis",
"minark": "Minark",
"oreads": "Oreads",
"pandora": "Pandora",
"zero": "Zero"
}
base_img = visual_map.get(base_name, "Dryads")
upper_images = [f'mainpng/selectserver/{base_img}.png']
if os.path.exists(f'mainpng/selectserver/{base_img}v2.png'):
upper_images.append(f'mainpng/selectserver/{base_img}v2.png')
# Üst gruba tıkla
loc = resmi_bultr_v2(upper_images)
self.driver.leftclick(0.2, loc[0][0], loc[0][1], duration=0.05)
time.sleep(0.5)
# Alt kanal resmi (örn: dryads3.png, pandora4.png vs)
alt_img = f'mainpng/selectserver/{server_name}.png'
for _ in range(5):
if altloc := resmi_bultr_v2(alt_img):
self.driver.leftclick(0.2, altloc[0], altloc[1], duration=0.05)
time.sleep(0.2)
self.driver.nameddown('enter')
time.sleep(0.15)
self.driver.namedup('enter')
break
else:
time.sleep(0.5)
def login_captchatest(self):
if resmi_bultr_v2(['mainpng/captchatype.png','mainpng/captchatype2.png'])==None:
return
else:
if exclaim:=resmi_bultr_v2('mainpng/captchatype2.png'):
self.driver.leftclick(0.2,exclaim[0], exclaim[1], duration=0.05)
time.sleep(0.4)
return self.login_captcha()
def login_captcha(self):
while True:
for deneme in range(6):
if resmi_bultr_v2('mainpng/captchatype.png'):
cevap = self._captcha()
confirmloc = resmi_bultr_v2('mainpng/Confirm.png')
self.driver.leftclick(0.2, confirmloc[0] - 60, confirmloc[1], duration=0.05)
time.sleep(0.2)
self.driver.type(cevap)
time.sleep(0.2)
self.driver.leftclick(0.2, confirmloc[0], confirmloc[1], duration=0.05)
time.sleep(0.5)
captcha_retry = False
for _ in range(3):
if resmi_bultr_v2('mainpng/captchafailed.png'):
self.driver.nameddown('enter')
time.sleep(0.15)
self.driver.namedup('enter')
for _ in range(3):
if captchare:=resmi_bultr_v2('mainpng/captchare.png'):
# captchare = resmi_bultr_v2(['mainpng/captchare.png'])
self.driver.leftclick(0.2, captchare[0], captchare[1])
time.sleep(1)
captcha_retry = True
break
else:
time.sleep(0.5)
if captcha_retry:
break
else:
time.sleep(0.2)
if captcha_retry:
break
return
else:
time.sleep(1)
if deneme == 5:
print('no captcha detected')
return
continue
def login_start(self):
for _ in range(12):
if resmi_bultr_v2('mainpng/StartGame.png'):
for _ in range(self.char - 1):
self.driver.nameddown('left')
time.sleep(0.15)
self.driver.namedup('left')
for _ in range(10):
if resmi_bultr_v2('mainpng/StartGame.png'):
break
else:
time.sleep(0.5)
self.driver.nameddown('enter')
time.sleep(0.15)
self.driver.namedup('enter')
break
else:
time.sleep(0.5)
def login_after_clean(self):
for _ in range(100):
if resmi_bultr_v2('mainpng/Moradon.png'):
print('logged in')
break
else:
time.sleep(1)
for _ in range(10):
if resmi_bultr_v2('mainpng/notice2.png'):
ixy = resmi_bultr_v2('mainpng/notice2close.png')
self.driver.leftclick(0.2, ixy[0], ixy[1])
break
else:
time.sleep(0.1)
for _ in range(10):
if resmi_bultr_v2('mainpng/mail.png'):
jxy = resmi_bultr_v2('mainpng/mailconfirm.png')
self.driver.leftclick(0.2, jxy[0], jxy[1])
break
else:
time.sleep(0.1)
for h in range(7):
self.driver.wheel_down()
time.sleep((h + 1) / 20)