日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python写梦幻西游脚本精灵_python写的梦幻手游辅助工具,非外 挂

發(fā)布時(shí)間:2024/3/12 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python写梦幻西游脚本精灵_python写的梦幻手游辅助工具,非外 挂 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本帖最后由 天福 于 2015-3-5 10:58 編輯

寫的一般都是B/S的東西,第一次寫C/S:

一般功能:

1.夢幻西游手游10個(gè)鬼抓完自動(dòng) 領(lǐng) 取下一輪

2.自動(dòng) 領(lǐng) 取 隊(duì)長禮盒和使用

3.自動(dòng)打圖

附加功能:

寫完之后因?yàn)榻o群內(nèi)小伙伴用的,就做了個(gè)加密,對軟件加密也是學(xué)習(xí)和愛好,免得用不上我的 大 B /S

可以控制這個(gè)軟件有一個(gè)固定的密碼,錯(cuò)誤不讓操作,服務(wù)端可以隨時(shí)改密碼

也可以服務(wù)端控制這個(gè)軟件每幾分鐘自動(dòng)給自己變換密碼,每次點(diǎn)開軟件都需要找我索要密碼,保證軟件不會(huì)傳播出去

本人初學(xué)者,僅供一起交流學(xué)習(xí)

**1. **

**2. 代碼**

#!/usr/bin/python

# coding=utf-8

# 夢幻手游輔助-by 專業(yè) 20150215

from __future__ import division

import sys,os

import threading

import win32api,win32gui,win32con

import ImageGrab

import time,datetime,string

import autopy

import urllib2

import hashlib

import wx

salt = '******'

sign = '******'

ver = '1.0'

defPwd = '******'

threads = []

isStart = True

def startTh():

global isStart

for t in threads:

t.setDaemon(True)

t.start()

def endAllTh(param):

global isStart

isStart = False

def md5Val(src):

myMd5 = hashlib.md5()

myMd5.update(src)

myMd5_Digest = myMd5.hexdigest()

return myMd5_Digest

#校驗(yàn)密碼

def CheckPwd():

if(valArr != ver):

win32api.MessageBox(0,u'不是最新版本,請更新')

exit()

mdVal = md5Val(serverArr salt)

if(mdVal != serverArr):

win32api.MessageBox(0,u'操作失敗,請重試')

exit()

if(valArr == '1'):

nTime = string.atof(valArr) #字符串轉(zhuǎn)浮點(diǎn)

nDate = time.strftime('%Y-%m-%d %H:00:00',time.localtime(nTime));

nDate = datetime.datetime.strptime(nDate,"%Y-%m-%d %H:%M:%S")

nDate = time.mktime(nDate.timetuple())

limi = string.atoi(valArr)

diff = int((nTime - nDate)/limi)*limi

date1 = '%d'%(nDate diff)

pwd1 = md5Val(md5Val(date1) valArr sign)

pwd1 = pwd1

date2 = '%d'%(nDate diff - limi)

pwd2 = md5Val(sign)

pwd2 = pwd2

else:

pwd1 = md5Val(sign)

pwd1 = pwd1;

pwd2 = pwd1

if(frame.doPwd.GetValue() == pwd1 or frame.doPwd.GetValue() == pwd2):

return True

else:

win32api.MessageBox(0,u'口令錯(cuò)誤')

exit()

def initWin():

if (hmw > 0):

win32gui.SetWindowPos(hmw,win32con.HWND_TOPMOST,0,0,640,362,win32con.SWP_SHOWWINDOW)

return True

else:

win32api.MessageBox(0,u'沒有檢測到最新的海馬玩模擬器窗口')

return False

def closeMhxy():

mhName = u"夢幻手游輔助v" ver

mhwin = win32gui.FindWindow(None,mhName)

if(mhwin > 0):

win32api.PostMessage(mhwin, win32con.WM_QUIT, 0, 0)

def closeWin():

#autopy.mouse.smooth_move(1255, 8)#最大化

autopy.mouse.smooth_move(610, 10)

time.sleep(1)

autopy.mouse.click()

time.sleep(1)

#autopy.mouse.smooth_move(580, 450)#最大化

autopy.mouse.smooth_move(260, 245)

time.sleep(1)

autopy.mouse.click()

return True

def closePC():

autopy.mouse.smooth_move(27, 783)

time.sleep(1)

autopy.mouse.click()

time.sleep(1)

autopy.mouse.smooth_move(303, 740)

time.sleep(1)

autopy.mouse.click()

return True

def oneKeyDo(param):

win32api.MessageBox(0,u'待開發(fā)')

return True

#打圖

def daTu():

global isStart

if(isStart == False):

time.sleep(5)

while isStart:

if(frame.setRows.GetValue() == '1'):

autopy.mouse.smooth_move(540, 125)

elif(frame.setRows.GetValue() == '2'):

autopy.mouse.smooth_move(540, 168)

elif(frame.setRows.GetValue() == '3'):

autopy.mouse.smooth_move(540, 214)

else:

win32api.MessageBox(0,u'行號超出范圍')

return False

time.sleep(1)

autopy.mouse.click() # 單擊 `

time.sleep(3)

isStart = True

return True

#抓鬼

def zhuaGui():

global isStart

if(isStart == False):

time.sleep(20)

width = 20

height = 20

t = 0

while isStart:

#box = (605, 435, 605 50, 435 50)

box = (310, 215, 310 width, 215 height)

img = ImageGrab.grab(box)

cont = 0

for h in range(0, height):

for w in range(0, width):

pix = img.getpixel((w, h))

if ((abs(237 - pix) <= 30) and (abs(224 - pix) <= 30) and (abs(207 - pix) <= 30)):

cont = cont 1

del img

if((cont/(height*width)) > 0.6):

t = 0

#autopy.mouse.move(730, 460)

autopy.mouse.smooth_move(372, 222)

time.sleep(1)

autopy.mouse.click()

time.sleep(5)

#autopy.mouse.toggle(True) # 按下左鍵

#autopy.mouse.toggle(False) # 松開左鍵

autopy.mouse.smooth_move(512, 222)

time.sleep(1)

autopy.mouse.click()

time.sleep(1)

#autopy.mouse.smooth_move(1090, 260)

if(frame.setRows.GetValue() == '1'):

autopy.mouse.smooth_move(550, 126)

elif(frame.setRows.GetValue() == '2'):

autopy.mouse.smooth_move(540, 170)

else:

win32api.MessageBox(0,u'行號超出范圍')

return False

time.sleep(1)

autopy.mouse.click()

time.sleep(1)

if(frame.setRows.GetValue() == '1'):

autopy.mouse.smooth_move(550, 126)

elif(frame.setRows.GetValue() == '2'):

autopy.mouse.smooth_move(540, 170)

else:

win32api.MessageBox(0,u'行號超出范圍')

return False

time.sleep(1)

autopy.mouse.click()

time.sleep(1)

else:

box = (500, 285, 544, 304)

img = ImageGrab.grab(box)

cont = 0

for h in range(0, 19):

for w in range(0, 44):

pix = img.getpixel((w, h))

if ((abs(240 - pix) <= 30) and (abs(200 - pix) <= 30) and (abs(100 - pix) <= 30)):

cont = cont 1

del img

if(cont/836 > 0.5):

autopy.mouse.move(520, 295)

autopy.mouse.click()

time.sleep(1)

autopy.mouse.click()

t = t 1

if(t > 1000):

break

else:

#autopy.mouse.move(1134, 146)#桌面空白

#autopy.mouse.click()

time.sleep(5)

isStart = True

return True

#closeWin()

#closePC()

#打圖線程

def daTuTh(param):

allThs(param,daTu)

#抓鬼線程

def zhuaGuiTh(param):

allThs(param,zhuaGui)

#線程管理

def allThs(param,someDo):

endAllTh(param)

if(CheckPwd() != True):

return False

#if(initWin() == False):

# return False

#frame.OnIconfiy(param)#最小化

t = threading.Thread(target=someDo)

threads.append(t)

startTh()

class TaskBarIcon(wx.TaskBarIcon):

ID_About = wx.NewId()

ID_Minshow=wx.NewId()

ID_Maxshow=wx.NewId()

ID_Closeshow=wx.NewId()

def __init__(self, frame):

wx.TaskBarIcon.__init__(self)

self.frame = frame

self.SetIcon(wx.Icon(name='mhxy.ico', type=wx.BITMAP_TYPE_ICO), u'夢幻手游輔助工具') #wx.ico為ico圖標(biāo)文件

self.Bind(wx.EVT_TASKBAR_LEFT_DCLICK, self.OnTaskBarLeftDClick) #定義左鍵雙擊

self.Bind(wx.EVT_MENU, self.OnAbout, id=self.ID_About)

self.Bind(wx.EVT_MENU, self.OnMinshow, id=self.ID_Minshow)

self.Bind(wx.EVT_MENU, self.OnMaxshow, id=self.ID_Maxshow)

self.Bind(wx.EVT_MENU, self.OnCloseshow, id=self.ID_Closeshow)

def OnTaskBarLeftDClick(self, event):

if self.frame.IsIconized():

self.frame.Iconize(False)

if not self.frame.IsShown():

self.frame.Show(True)

self.frame.Raise()

def OnAbout(self,event):

wx.MessageBox(u'夢幻手游輔助工具v' ver u'-"夢幻"群內(nèi)部使用', u'關(guān)于工具')

def OnMinshow(self,event):

self.frame.Iconize(True)

def OnMaxshow(self,event):

if self.frame.IsIconized():

self.frame.Iconize(False)

if not self.frame.IsShown():

self.frame.Show(True)

self.frame.Raise()

#self.frame.Maximize(True) #最大化顯示

def OnCloseshow(self,event):

self.frame.Close(True)

# 右鍵菜單

def CreatePopupMenu(self):

menu = wx.Menu()

#menu.Append(self.ID_Minshow, u'最小化')

menu.Append(self.ID_Maxshow, u'顯示窗口')

menu.Append(self.ID_About, u'關(guān)于工具')

menu.Append(self.ID_Closeshow, u'退出')

return menu

class Frame(wx.Frame):

def __init__(self, parent=None, id=wx.ID_ANY,title=u"夢幻手游輔助v" ver,pos=None,size=(400,300),style=wx.**_MENU|wx.MINIMIZE_BOX|wx.CLOSE_BOX|wx.CAPTION):

wx.Frame.__init__(self, parent, id, title, pos, size, style)

self.SetIcon(wx.Icon('mhxy.ico', wx.BITMAP_TYPE_ICO))

panel = wx.Panel(self, wx.ID_ANY)

self.taskBarIcon = TaskBarIcon(self)

# 綁定事件

self.Bind(wx.EVT_CLOSE, self.OnClose)

self.Bind(wx.EVT_ICONIZE, self.OnIconfiy) # 窗口最小化時(shí),調(diào)用OnIconfiy,注意Wx窗體上的最小化按鈕,觸發(fā)的事件是 wx.EVT_ICONIZE,而根本就沒有定義什么wx.EVT_MINIMIZE,但是最大化,有個(gè)wx.EVT_MAXIMIZE。

self.tripText3 = wx.StaticText(panel,wx.ID_ANY,label=u'輔助的操作在任務(wù)欄第幾行?:',pos=(0, 10))

self.tripText3.SetFont(wx.Font(16, wx.SWISS, wx.NORMAL, wx.NORMAL))

self.setRows= wx.TextCtrl(panel,wx.ID_ANY,pos=(290,10),size=(90,25))

self.setRows.SetValue('1');

self.tripText2 = wx.StaticText(panel,wx.ID_ANY,label=u'在點(diǎn)下任務(wù)之前,先確定此處的任務(wù)欄行正確與否',pos=(25, 30))

self.oneKeyAutoDo = wx.Button(panel,wx.ID_ANY,label=u"一鍵自動(dòng)任務(wù)",pos=(10,60),size=(80,25))

self.autoZhuaGui = wx.Button(panel,wx.ID_ANY,label=u"自動(dòng)帶隊(duì)抓鬼",pos=(95,60),size=(80,25))

self.autoDaTu = wx.Button(panel,wx.ID_ANY,label=u"自動(dòng)打圖",pos=(180,60),size=(80,25))

self.endDo = wx.Button(panel,wx.ID_ANY,label=u"停止操作",pos=(265,60),size=(80,25))

self.Bind(wx.EVT_BUTTON, oneKeyDo, self.oneKeyAutoDo)

self.Bind(wx.EVT_BUTTON, zhuaGuiTh, self.autoZhuaGui)

self.Bind(wx.EVT_BUTTON, daTuTh, self.autoDaTu)

self.Bind(wx.EVT_BUTTON, endAllTh, self.endDo)

self.tripText1 = wx.StaticText(panel,wx.ID_ANY,label=u'請?jiān)诖溯斎肟騼?nèi)輸入操作口令:',pos=(0, 160))

self.tripText1.SetFont(wx.Font(16, wx.SWISS, wx.NORMAL, wx.NORMAL))

self.doPwd= wx.TextCtrl(panel,wx.ID_ANY,pos=(290,160),size=(90,25))

self.doPwd.SetValue(defPwd);

if( valArr == '1' ):

pwTrip = u'令牌模式'

else:

pwTrip = u'密碼模式'

self.tripText2 = wx.StaticText(panel,wx.ID_ANY,label=u'當(dāng)前口令模式:' pwTrip u'——一般此處一般勿動(dòng)',pos=(25, 180))

self.tripText5 = wx.StaticText(panel,wx.ID_ANY,label=u'注:\n口令分為:密碼模式和令牌模式\n密碼模式:一般不用改,如果提示錯(cuò)誤,群內(nèi)公告有最新口令,\n令牌模式:每幾分鐘自動(dòng)變換口令,需要群內(nèi)吼一聲',pos=(25, 200))

def OnHide(self, event):

self.Hide()

def OnIconfiy(self, event):

self.Hide()

event.Skip()

def OnClose(self, event):

self.taskBarIcon.Destroy()

self.Destroy()

def OnCloseMe(self, event):

self.SetBackgroundColour('Red')

self.Refresh()

if __name__ == '__main__':

closeMhxy()

try:

servetStr = urllib2.urlopen("http://www.baidu.com/").read()

except:

win32api.MessageBox(0,u'啟動(dòng)失敗,請檢查游戲網(wǎng)絡(luò)')

exit()

#校驗(yàn)通訊

serverArr = servetStr.split(',')

valArr = serverArr.split('|')

#winName = u'海馬玩模擬器(Droid4X) 0.7.3 Beta'

winName = valArr.decode("UTF-8", 'ignore');

hmw = win32gui.FindWindow(None,winName)

app = wx.App()

frame = Frame(size=(400, 300))

frame.Centre()

frame.Show()

app.MainLoop()

總結(jié)

以上是生活随笔為你收集整理的python写梦幻西游脚本精灵_python写的梦幻手游辅助工具,非外 挂的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。