|
马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
恩 直接上代码 只有源码 界面不发 喜欢看代码的看看我的代码风格 是否可以优化 ,,请指教
空间 JJ
//定义默认空间
dm_tx = com("dm.dmsoft")
var 基址 = "<TKInterimdataDll.dll>+3AF4C"
var 状态基址 = "[<TkMCEx.exe>+699E4]+a9c"
function Get_Date(&内存地址,窗口句柄_temp,&dm_dm)//获取内存数据
var q_temp//全局临时变量
var q_temp_Err//错误变量
a:
q_temp = 0
q_temp = dm_dm.ReadInt(窗口句柄_temp,内存地址,0)
q_temp_Err = dm_dm.GetLastError()
if(q_temp_Err != 0)
goto a
endif
return q_temp
endfunction
function Get_Vacancy(&dm_dm,窗口句柄_temp)//获取游戏桌面上的空位
if(JJ.Get_Date("[["&基址&"]+140]+50",窗口句柄_temp,dm_dm)==0)
return 1
endif
if(JJ.Get_Date("[["&基址&"]+13c]+50",窗口句柄_temp,dm_dm)==0)
return 2
endif
if(JJ.Get_Date("[["&基址&"]+144]+50",窗口句柄_temp,dm_dm)==0)
return 3
endif
if(JJ.Get_Date("[["&基址&"]+138]+50",窗口句柄_temp,dm_dm)==0)
return 4
endif
if(JJ.Get_Date("[["&基址&"]+134]+50",窗口句柄_temp,dm_dm)==0)
return 5
endif
return 0//如果都没有空位那么就返回0
endfunction
function Get_Rs(窗口句柄_temp,&dm_dm)//获取当前桌面人数
var 人数 = 0
if(JJ.Get_Date("[["&基址&"]+140]+50",窗口句柄_temp,dm_dm)>0)
人数++
endif
if(JJ.Get_Date("[["&基址&"]+13c]+50",窗口句柄_temp,dm_dm)>0)
人数++
endif
if(JJ.Get_Date("[["&基址&"]+144]+50",窗口句柄_temp,dm_dm)>0)
人数++
endif
if(JJ.Get_Date("[["&基址&"]+138]+50",窗口句柄_temp,dm_dm)>0)
人数++
endif
if(JJ.Get_Date("[["&基址&"]+134]+50",窗口句柄_temp,dm_dm)>0)
人数++
endif
if(JJ.Get_Date(状态基址,窗口句柄_temp,dm_dm)>0)
人数--
endif
return 人数
endfunction
function Up(&dm_dm,窗口句柄_temp)//上位
var 空位
var 状态
空位 = JJ.Get_Vacancy(dm_dm,窗口句柄_temp)
状态 = JJ.Get_Date(状态基址,窗口句柄_temp,dm_dm)
if(状态 == 0)
if(空位 == 0)
return false
else
//dm_dm.SetWindowState(窗口句柄_temp,14)//12
窗口.激活(窗口句柄_temp)
help.sleep(500)
select(空位)
条件 1:
dm_dm.MoveTo(122,116)
dm_dm.LeftClick()
help.sleep(1000)
条件 2:
dm_dm.MoveTo(652,112)
dm_dm.LeftClick()
help.sleep(1000)
条件 3:
dm_dm.MoveTo(59,340)
dm_dm.LeftClick()
help.sleep(1000)
条件 4:
dm_dm.MoveTo(714,347)
dm_dm.LeftClick()
help.sleep(1000)
条件 5:
dm_dm.MoveTo(393,501)
dm_dm.LeftClick()
help.sleep(1000)
endselect
endif
endif
endfunction
function Under(&dm_dm,窗口句柄_temp)//下位
var 状态
var 筹码
状态 = JJ.Get_Date(状态基址,窗口句柄_temp,dm_dm)
筹码 = JJ.Get_Date("["&基址&"]+4",窗口句柄_temp,dm_dm)
if(状态==1)
if(筹码<5)
while(true)
状态 = JJ.Get_Date("<TKInterimdataDll.dll>+3C070",窗口句柄_temp,dm_dm)
if(状态 == 1)
return true
else
dm_dm.MoveTo(137,663)
dm_dm.LeftClick()
endif
endwhile
endif
endif
endfunction
空间结束
//空间结束语句
#include"JJ.t"
空间 Udate_JJ
//默认空间
d = com("dm.dmsoft")
//开始按钮_点击操作
var 掉线 = 数组[100]//对应ID
var Thread_State//线程空闲状态
var 窗口句柄_ID = 数组[100]//存放找到的游戏窗口句柄
var 窗口句柄_ID_id//窗口数量
function GetThread_Vacancy()//获取空位的线程号
var buff
for(i=1;i<100;i++)
buff = 表格.获得内容("表格0",i,0)
if(buff=="")
return i
endif
endfor
endfunction
function GetWindows_Hwnd()//获取全部游戏窗口
var 类名
var dx
var buff
var ckmc
if(单选框.获得状态("单选框0")==true)
类名 = "Afx:00400000:0"
else
类名 = "Afx:00400000:0"
endif
返回值=系统.枚举(类名,1)
while(字符串.分割(返回值,"|",buff)==false)
返回值=系统.枚举(类名,1)
endwhile
数组空间.大小(buff,dx)
for(i=0;i<dx;i++)
ckmc = 窗口.得到标题(buff)
if(字符串.查找字符串(ckmc,"JJ卡当")!= -1)
窗口句柄_ID[窗口句柄_ID_id] = buff
窗口句柄_ID_id++
表格.设置内容("表格0",窗口句柄_ID_id,1,"0")
表格.设置内容("表格0",窗口句柄_ID_id,2,"0")
表格.设置内容("表格0",窗口句柄_ID_id,3,"没有上桌")
表格.设置内容("表格0",窗口句柄_ID_id,4,"3")
表格.设置内容("表格0",窗口句柄_ID_id,5,"0")
endif
endfor
endfunction
function Thread_Major(线程_ID)//主要的线程
Thread_State = 1
thread_dm = com("dm.dmsoft")//线程里面的DM
var thread_jc//检测线程句柄
var 桌面筹码
var 桌面人数
var 自身状态
var thread_hwnd
if(单选框.获得状态("单选框0")==true)
thread_hwnd = d.EnumWindow(窗口句柄_ID[线程_ID],"","Afx:00400000:0:00010011:00000000:00000000",2+4+8+16)//上下位窗口
else
thread_hwnd = d.EnumWindow(窗口句柄_ID[线程_ID],"","Afx:00400000:0:00010003:00000000:00000000",2+4+8+16)//上下位窗口
endif
while(thread_dm.BindWindowEx(thread_hwnd,"normal","windows","normal","",101) !=1)
endwhile//绑定窗口
//检测线程
Thread_State = 0
表格.设置内容("表格0",(线程_ID+1),0,(线程_ID+1))
while(true)
桌面筹码 = JJ.Get_Date("["&JJ.基址&"]+4",窗口句柄_ID[线程_ID],thread_dm)
桌面人数 = JJ.Get_Rs(窗口句柄_ID[线程_ID],thread_dm)
自身状态 = JJ.Get_Date(JJ.状态基址,窗口句柄_ID[线程_ID],thread_dm)
表格.设置内容("表格0",(线程_ID+1),1,桌面人数)
表格.设置内容("表格0",(线程_ID+1),5,桌面筹码)
if(自身状态==1)
表格.设置内容("表格0",(线程_ID+1),3,"在桌上")
else
表格.设置内容("表格0",(线程_ID+1),3,"没有上桌")
endif
if(桌面人数<类型.转整型(表格.获得内容("表格0",(线程_ID+1),4)))
// if(Thread_State == 0)
Thread_State = 1
JJ.Under(thread_dm,窗口句柄_ID[线程_ID])
Thread_State = 0
//else
help.sleep(1000)
//endif
else
//if(Thread_State == 0)
Thread_State = 1
JJ.Up(thread_dm,窗口句柄_ID[线程_ID])
Thread_State = 0
//else
help.sleep(1000)
//endif
endif
if(窗口.是否有效(窗口句柄_ID[线程_ID])==false)
thread_dm.UnBindWindow()
表格.设置内容("表格0",(线程_ID+1),0,"")
表格.设置内容("表格0",(线程_ID+1),2,"窗口关闭")
return 0
endif
help.sleep(类型.转整型(编辑框.获得文本("编辑框0")))
endwhile
endfunction
功能 初始化()
//这里添加你要执行的代码
d.Reg("3s387","")
d.DmGuard(1,"np")
d.DmGuard(1,"phide")
for(i=0;i<100;i++)
掉线 = 0//初始化0代表未掉线,1代表掉线
endfor
窗口句柄_ID_id = 0
Thread_State = 0
功能结束
功能 按钮0_点击()
//这里添加你要执行的代码
窗口句柄_ID_id = 0
Udate_JJ.GetWindows_Hwnd()
help.messagebox("系统扫描到:"&Udate_JJ.窗口句柄_ID_id&" 个游戏窗口")
控件.有效("按钮0",false)
功能结束
function xx()
for(i=0;i<窗口句柄_ID_id;i++)
while(Thread_State==1)
help.sleep(100)
endwhile
线程.开启("Udate_JJ.Thread_Major",i)
help.sleep(500)
endfor
endfunction
功能 按钮1_点击()
//这里添加你要执行的代码
线程.开启("Udate_JJ.xx","")
控件.有效("按钮1",false)
功能结束
功能 表格0_左键单击()
//这里添加你要执行的代码
变量 r_beginRow,r_beginCol,r_endRow,r_end_Col
表格.获得选中范围("表格0",r_beginRow,r_beginCol,r_endRow,r_end_Col)
编辑框.设置文本("编辑框1",字符串.移除(窗口.得到标题(Udate_JJ.窗口句柄_ID[(r_beginRow-1)]),10,true))
功能结束
功能 热键0_热键()
//这里添加你要执行的代码
var 标题
var 句柄
句柄=窗口.鼠标所在窗口句柄()
标题=窗口.得到标题(句柄)
if(字符串.查找字符串(标题,"JJ卡当")!= -1)
窗口句柄_ID[窗口句柄_ID_id] = 句柄
窗口句柄_ID_id++
while(Thread_State==1)
help.sleep(100)
endwhile
for(i=0;i<100;i++)
if(表格.获得内容("表格0",i,0)=="")
线程.开启("Udate_JJ.Thread_Major",(i-1))
break
endif
endfor
endif
功能结束
空间结束
//空间结束语句
|
|