三区一服葡萄牙的HodakDu奉献的采集玛瑙脚本(第一版)
两个月前去埃及北岸采玛瑙,先是找了几个网上的脚本,无论是什么最完美脚本,终级脚本,智能脚本。。。。。。几乎每个脚本都有缺陷,要么人物采集地点乱跑,要么玛瑙600砂6000的摆摊,要么把所有的玛瑙全丢了。。。。。。
世上没有救世主,一切只能靠自己。于是,自己写了个脚本。此脚本特点如下:
1. 1024*768*32位系统分辨率设置,800*600窗口模式运行大航海时代OL;
2. 不需要调整窗口位置,脚本中采用的全部是相对坐标;
3. 快捷方式按键F1,装载按键F7,露天市场按键F9,使用技能按键F11;
4. 采集快捷键F1,吃料理快捷键F2,F3,F4,F5,F6依次为料理1,料理2,料理3,料理4,料理5;
5. 自动判断料理数量,用户可以自定义5种料理,请自行修改“料理恢复数值数组”部分的数值;
6. 自动调整露天市场的价格,可以设置不同的时间段,丢弃不同的货物,销售不同的价格;
7. 脚本编写的相当规范,任何人都能够看懂;
8. 自动喊话,自动保存日志,以观察脚本运行状态;
9. 定时下线,定时关机功能;
10.自动判断疲劳度,自动判断行动力,自动判断网络连接,自动判断船舱容量;
11.日志文件保存在C盘根目录下。
HodakDu使用这个脚本两个月以来,从未出现过任何BUG,本人现在已经不再继续挖玛瑙,因此又编写了各地的挖矿石生产宝石的脚本,以后会陆续提供出来。
目前已经完成的脚本有:
汉堡挂机练铸造脚本、波尔多挂机练工艺脚本:自动使用星书,自动使用身体语言,自动购买原料,自动生产,自动卖出产品,料理和星书足够的情况下,直接挂上到满级,而且能赚近千万的钱。
另外还有波尔图制作料理脚本、各地采矿石加工脚本、特产单个卖出脚本、暴港脚本、护港脚本等等,目前都尚未到公开的时机,请大家耐心等待。
本人算是一个起步比较晚的玩家,但是我的目标是三围全满,六大技能全满,白兵技能全满。呵呵,目前这个愿望即将在月底实现,向本人的生日献礼。
目标实现以后,准备解散目前的商会,重新组建新的商会,准备只招收单项等级40以上的玩家各10名,人不在多,而在精。有兴趣的请联系HodakDu。
最后,感谢在我最初升级的日子里帮助过本人的所有的朋友,坚哥(我从北海回里斯本的时候主动带我使任务得以完成),猪哥(我去伊斯坦布尔造船时,没有加伪装的衣服和鞋子,好心的猪哥帮我买了送出来),还有和我一起冲战等级的老鼠仔兄弟、天外..兄弟、为国..兄弟、火妖兄弟等等。
以下是脚本:
[General]
Description=超级挖玛瑙
BeginHotkey=49
BeginHotkeyMod=2
PauseHotkey=32775
PauseHotkeyMod=0
StopHotkey=123
StopHotkeyMod=0
RunOnce=1
EnableWindow=
Enable=1
[Repeat]
Type=0
Number=1
[CallBack]
OnSetup=
[Comment]
Content=
[Script]
//变量定义开始
//
//三区一服葡萄牙的HodakDu奉献的采集玛瑙脚本(第一版)
//
//功能键代码
//F1=112,F2=113,F3=114,F4=115,F5=116,F6=117
//F7=118,F8=119,F9=120,F10=121,F11=122,F12=123,ESC=27
//丢弃货物中心点坐标
//Pos1=116,138;Pos2=172,138;Pos3=228,138;Pos4=284,138;Pos5=340,138;(X+56)
//Pos6=116,194;Pos7=172,194;Pos8=228,194;Pos9=284,194;Pos10=340,194;(Y+56)
//货物中心点颜色
//姜=4088BB,砂=8B9FB5,玛瑙=5B74A3,石材=B1B8AF
//
//
//快捷键设置
//快捷方式按键F1,装载按键F7,露天市场按键F9,使用技能按键F11
//采集快捷键F1,吃料理快捷键F2,F3,F4,F5,F6依次为料理1,料理2,料理3,料理4,料理5
//
//
//其它设置
UserVar UpdateTimeInterval=8 刷新时间间隔(分钟)
UserVar ShutDownTime="17:45|18:15" 定时关机时间(HH:MM)
UserVar AutoShutDown=0 自动关机设置
UserVar TimeShutDownSet=1 定时关机设置
UserVar AutoSayPrice=1 自动报价设置
UserVar AutoSellGoods=1 自动露天市场设置
UserVar GoodsCount=4 货物种类总数设置
UserVar BloodValueSet=200 行动力维持数值设置
UserVar PriceAdjustValueSet=10 价格调整幅度设置
UserVar OutputMessageSet=0 输出消息设置
//0-输出喊话消息,系统日志记录 3不记录
//1-输出全部消息,系统日志记录 4不记录
//2-公开输出消息,系统日志记录 5不记录
//
//显示消息类型 Ctrl+P:舰队80,Ctrl+S:公开83
VBS Dim OutputType
//
//料理名称数组
VBS Dim Food_Name(5)
//料理恢复数值数组
VBS Dim Food_AddValue(5)
//
VBS Food_Name(1)="海鲜披萨"
VBS Food_AddValue(1)=50
//
VBS Food_Name(2)="希腊肉末茄盒"
VBS Food_AddValue(2)=55
//
VBS Food_Name(3)="土耳其烤牛肉"
VBS Food_AddValue(3)=60
//
VBS Food_Name(4)="荷兰干酪奶汁烤菜"
VBS Food_AddValue(4)=50
//
VBS Food_Name(5)="炸鱼"
VBS Food_AddValue(5)=50
//
//货物中心点颜色数组
VBS Dim Goods_Color(20)
//货物名称数组
VBS Dim Goods_Name(20)
//货物初始价格数组
VBS Dim Goods_Price(20)
//货物价格调整参数数组(12个数字,5表示初始价格,4表示-10%,6表示+10%)
VBS Dim Goods_PriceAdjust(20)
//货物展销价格数组
VBS Dim Goods_SellPrice(20)
//货物展销旧价格
VBS Dim Goods_OldPrice(20)
//上次价格调整时间
VBS Dim OldPriceAdjustTime
//货物设置
VBS Goods_Color(1)="4088BB"
VBS Goods_Name(1)="姜"
VBS Goods_Price(1)=400
VBS Goods_PriceAdjust(1)="000333111111"
//价格调整时间段标记 "000001111122"
//价格调整时间段标记 "024680246802"
//
VBS Goods_Color(2)="8B9FB5"
VBS Goods_Name(2)="砂"
VBS Goods_Price(2)=0
VBS Goods_PriceAdjust(2)="000000000000"
//价格调整时间段标记 "000001111122"
//价格调整时间段标记 "024680246802"
//
VBS Goods_Color(3)="5B74A3"
VBS Goods_Name(3)="玛瑙"
VBS Goods_Price(3)=4000
VBS Goods_PriceAdjust(3)="444666665555"
//价格调整时间段标记 "000001111122"
//价格调整时间段标记 "024680246802"
//
VBS Goods_Color(4)="B1B8AF"
VBS Goods_Name(4)="石材"
VBS Goods_Price(4)=300
VBS Goods_PriceAdjust(4)="000000000000"
//价格调整时间段标记 "000001111122"
//价格调整时间段标记 "024680246802"
//
//时间段数组
VBS Dim Time_Area(13)
//价格时间段设置(HH:MM)
VBS Time_Area(1)="00:00"
VBS Time_Area(2)="02:00"
VBS Time_Area(3)="04:00"
VBS Time_Area(4)="06:00"
VBS Time_Area(5)="08:00"
VBS Time_Area(6)="10:00"
VBS Time_Area(7)="12:00"
VBS Time_Area(8)="14:00"
VBS Time_Area(9)="16:00"
VBS Time_Area(10)="18:00"
VBS Time_Area(11)="20:00"
VBS Time_Area(12)="22:00"
VBS Time_Area(13)="24:00"
//
//当前料理设置
VBS Dim CurrentFoodNo
//结束采集标志
VBS Dim EndFlag
//行动力数值
VBS Dim Blood
//
Plugin hwn = Window.GetKeyFocusWnd()
//变量定义结束
//
//主脚本开始
EndFlag = 0
CurrentFoodNo = 0
OldPriceAdjustTime = 0
If PriceAdjustValueSet < 10
PriceAdjustValueSet = 10
EndIf
Gosub 建立日志文件
Gosub 当前时间
Message = CurrentTime & "脚本开始......"
Gosub 输出消息
//
Rem 自动采集开始
Gosub 自动采集
//
Rem 完成采集
Gosub 当前时间
Message = CurrentTime & "本次采集结束, 自动登出游戏......"
Gosub 输出消息
Gosub 自动登出
Gosub 自动登出
//
Rem 脚本结束
If AutoShutDown = 1
Gosub 自动关机
EndIf
//
Beep
Beep
EndScript
//
//主脚本结束
//
//输出消息(参数Message)
Sub 输出消息
If (Left(Message,3) <> "07-")
OutputType = 83
Gosub 显示消息
Goto 输出消息结束
EndIf
If (OutputMessageSet = 1) Or (OutputMessageSet = 4)
OutputType = 80
Gosub 显示消息
EndIf
If (OutputMessageSet = 2) Or (OutputMessageSet = 5)
OutputType = 83
Gosub 显示消息
EndIf
If (OutputMessageSet < 3)
Gosub 写入日志文件
EndIf
Rem 输出消息结束
Beep
Return 输出消息
//建立日志文件
Sub 建立日志文件
VBS Set File = CreateObject("Scripting.FileSystemObject")
LogFileName = "C:\日志" & Right("0000" & Year(Date),2) & "-" & Right("00" & Month(Date),2) & "-" & Right("00" & Day(Date),2) & ".TXT"
If File.FileExists(LogFileName)=0
VBS Set LogFile = File.CreateTextFile(LogFileName,2)
VBS LogFile.Close
EndIf
Return 建立日志文件
//写入日志文件
Sub 写入日志文件
VBS Set LogFile = File.OpenTextFile(LogFileName,8)
VBS LogFile.WriteLine(Message)
VBS LogFile.Close
Return 写入日志文件
//显示消息
Sub 显示消息
Plugin OldWindow = Window.Foreground()
If hwn = OldWindow
VBS Set objIE = CreateObject("InternetExplorer.Application")
VBS objIE.Navigate("about:blank")
VBS objIE.document.parentwindow.clipboardData.SetData "text", Message
VBS objIE.Quit
Delay 500
KeyDown 17 1
If OutputType = 80
KeyPress 80 1
Else
KeyPress 83 1
EndIf
KeyUp 17 1
Delay 500
KeyDown 17 1
KeyPress 86 1
KeyUp 17 1
Delay 500
KeyPress 13 1
Delay 500
EndIf
Return 显示消息
//坐标转换(参数PosX,PosY)
Sub 坐标转换
Plugin winRect=Window.GetClientRect(hwn)
winPoint = Split(winRect, "|", -1, 1)
AbsX = CInt(winPoint(0)) + PosX
AbsY = CInt(winPoint(1)) + PosY
PosX = AbsX
PosY = AbsY
Return 坐标转换
//移动鼠标到指定点(以窗口为准参数PosX,PosY相对坐标)
Sub 移动鼠标
Plugin winRect=Window.GetClientRect(hwn)
winPoint = Split(winRect, "|", -1, 1)
AbsX = CInt(winPoint(0)) + PosX
AbsY = CInt(winPoint(1)) + PosY
MoveTo AbsX AbsY
PosX = AbsX
PosY = AbsY
Delay 500
Return 移动鼠标
//常规吃料理
Sub 常规吃料理
//F1-快捷方式按键
Plugin Window.SendKeyPress(hwn,112)
Delay 1500
If CurrentFoodNo = 1
//F2-吃料理快捷键
Plugin Window.SendKeyPress(hwn,113)
Goto 常规吃料理结束
EndIf
If CurrentFoodNo = 2
//F3-吃料理快捷键
Plugin Window.SendKeyPress(hwn,114)
Goto 常规吃料理结束
EndIf
If CurrentFoodNo = 3
//F4-吃料理快捷键
Plugin Window.SendKeyPress(hwn,115)
Goto 常规吃料理结束
EndIf
If CurrentFoodNo = 4
//F5-吃料理快捷键
Plugin Window.SendKeyPress(hwn,116)
Goto 常规吃料理结束
EndIf
If CurrentFoodNo = 5
//F6-吃料理快捷键
Plugin Window.SendKeyPress(hwn,117)
Goto 常规吃料理结束
EndIf
Rem 常规吃料理结束
Delay 1500
Return 常规吃料理
//前台吃料理
Sub 前台吃料理
Rem 前台吃料理开始
VBSCall ReadMemory(&h00998dcc,2,Blood)
If Blood > BloodValueSet
Goto 前台吃料理结束
EndIf
Plugin Window.SendKeyPress(hwn,27)
Delay 1000
Plugin Window.SendKeyPress(hwn,122)
Delay 1000
Gosub 常规吃料理
VBSCall ReadMemory(&h00998dcc,2,NewBlood)
If NewBlood <= Blood
CurrentFoodNo = CurrentFoodNo + 1
If CurrentFoodNo > 5
Goto 前台吃料理结束
EndIf
EndIf
Goto 前台吃料理开始
Rem 前台吃料理结束
Return 前台吃料理
//紧急吃料理
Sub 紧急吃料理
Gosub 窗口初始化
//F1-快捷方式按键
Plugin Window.SendKeyPress(hwn,112)
Delay 1500
//F2-吃料理快捷键
Plugin Window.SendKeyPress(hwn,113)
Delay 1500
//F11-使用技能(刷新用)
Plugin Window.SendKeyPress(hwn,122)
Delay 1500
//F1-快捷方式按键
Plugin Window.SendKeyPress(hwn,112)
Delay 1500
//F3-吃料理快捷键
Plugin Window.SendKeyPress(hwn,114)
Delay 1500
//F11-使用技能(刷新用)
Plugin Window.SendKeyPress(hwn,122)
Delay 1500
//F1-快捷方式按键
Plugin Window.SendKeyPress(hwn,112)
Delay 1500
//F4-吃料理快捷键
Plugin Window.SendKeyPress(hwn,115)
Delay 1500
//F11-使用技能(刷新用)
Plugin Window.SendKeyPress(hwn,122)
Delay 1500
//F1-快捷方式按键
Plugin Window.SendKeyPress(hwn,112)
Delay 1500
//F5-吃料理快捷键
Plugin Window.SendKeyPress(hwn,116)
Delay 1500
//F11-使用技能(刷新用)
Plugin Window.SendKeyPress(hwn,122)
Delay 1500
//F1-快捷方式按键
Plugin Window.SendKeyPress(hwn,112)
Delay 1500
//F6-吃料理快捷键
Plugin Window.SendKeyPress(hwn,117)
Delay 1500
//F11-使用技能(刷新用)
Plugin Window.SendKeyPress(hwn,122)
Delay 1500
Gosub 窗口初始化
//再次检查疲劳度
PosX = 115 : PosY = 100
Gosub 坐标转换
IfColor PosX PosY 0080ff 0
CheckFlag = 1
Goto 紧急吃料理结束
Else
CheckFlag = 0
EndIf
Delay 500
//再次检查行动力
PosX = 50 : PosY = 115
Gosub 坐标转换
IfColor PosX PosY f77cf7 1
CheckFlag = 1
Goto 紧急吃料理结束
Else
CheckFlag = 0
EndIf
Rem 紧急吃料理结束
Return 紧急吃料理
//断线保护
Sub 断线保护
//断线提示窗口坐标
PosX = 411 : PosY = 315
Gosub 坐标转换
IfColor PosX PosY 3a2815 0
EndFlag = 1
Goto 脚本结束
Else
Message = Message & "网络连接:正常" & " "
EndIf
Return 断线保护
//疲劳度保护
Sub 疲劳度保护
CheckFlag = 0
//疲劳度显示坐标
PosX = 115 : PosY = 100
Gosub 坐标转换
IfColor PosX PosY 0080ff 0
CheckFlag = 1
Gosub 紧急吃料理
If CheckFlag = 1
EndFlag = 1
Gosub 当前时间
Message = CurrentTime & "疲劳度过高, 自动登出游戏......"
Gosub 输出消息
Gosub 自动登出
Goto 脚本结束
EndIf
EndIf
Message = Message & "疲劳度:正常" & " "
Return 疲劳度保护
//无行动力保护
Sub 无行动力保护
CheckFlag = 0
//行动力显示坐标
PosX = 50 : PosY = 115
Gosub 坐标转换
IfColor PosX PosY f77cf7 1
CheckFlag = 1
Gosub 紧急吃料理
If CheckFlag = 1
EndFlag = 1
Gosub 当前时间
Message = CurrentTime & "行动力不足, 自动登出游戏......"
Gosub 输出消息
Gosub 自动登出
Goto 脚本结束
EndIf
EndIf
Message = Message & "行动力:正常" & " "
Return 无行动力保护
//行动力过高处理
Sub 行动力过高处理
VBSCall ReadMemory(&h00998dcc,2,Blood)
If Blood > BloodValueSet + 60
Gosub 当前时间
Message = CurrentTime & "行动力过高, 追加采集10次......"
Gosub 输出消息
For 10
Gosub 采集一次
EndFor
EndIf
Return 行动力过高处理
//自动登出
Sub 自动登出
//系统按钮坐标
PosX = 775 : PosY = 20
Gosub 移动鼠标
IfColor PosX PosY bbd3ee 0
LeftClick 1
Delay 500
//登出菜单坐标
PosX = 745 : PosY = 120
Gosub 移动鼠标
LeftClick 1
Delay 500
//确认窗<是>按钮坐标
PosX = 370 : PosY = 325
Gosub 移动鼠标
IfColor PosX PosY 1e1c17 0
LeftClick 1
Delay 500
EndIf
EndIf
Delay 30000
Return 自动登出
//自动关机
Sub 自动关机
Set ShutDownObj = CreateObject("WScript.Shell")
VBSCall ShutDownObj.Popup("系统将在30秒后关机!!",5,"自动关机",48)
Delay 30000
VBS ShutDownObj.Run "shutdown /f /s /t 0"
Return 自动关机
//定时关机
Sub 定时关机
If TimeShutDownSet <> 1
Goto 定时关机结束
EndIf
If Len(ShutDownTime) <> 11
Goto 定时关机结束
EndIf
If (Mid(ShutDownTime,3,1) <> ":") Or (Mid(ShutDownTime,6,1) <> "|") Or (Mid(ShutDownTime,9,1) <> ":")
Goto 定时关机结束
EndIf
ShutDownTimeSet = Split(ShutDownTime, "|", -1, 1)
ShutDownTimeLow = ShutDownTimeSet(0)
ShutDownTimeHigh = ShutDownTimeSet(1)
NowTimeSet = Right("00" & Hour(Time),2) & ":" & Right("00" & Minute(Time),2)
If (NowTimeSet > ShutDownTimeLow) And (NowTimeSet < ShutDownTimeHigh)
Gosub 当前时间
Message = CurrentTime & "定时关机时间已到, 自动登出游戏......"
Gosub 输出消息
Gosub 自动登出
Goto 脚本结束
EndIf
Rem 定时关机结束
Return 定时关机
//当前时间
Sub 当前时间
CurrentTime = Right("0000" & Year(Date),2) & "-" & Right("00" & Month(Date),2) & "-" & Right("00" & Day(Date),2)
CurrentTime = CurrentTime & "/" & Right("00" & Hour(Time),2) & ":" & Right("00" & Minute(Time),2) & ":" & Right("00" & Second(Time),2) & " "
Return 当前时间
//价格调整
Sub 价格调整
NowTimeSet = Right("00" & Hour(Time),2) & ":" & Right("00" & Minute(Time),2)
TimeSetCount = 1
For 12
If (NowTimeSet >= Time_Area(TimeSetCount)) And (NowTimeSet < Time_Area(TimeSetCount+1))
Goto 执行价格调整
EndIf
TimeSetCount = TimeSetCount + 1
EndFor
Rem 执行价格调整
If OldPriceAdjustTime <> TimeSetCount
OldPriceAdjustTime = TimeSetCount
Gosub 当前时间
AdjustPriceSetCount = 1
Message = CurrentTime & "进行价格调整......"
For GoodsCount
OldPrice = Goods_SellPrice(AdjustPriceSetCount)
AdjustPriceValue = Mid(Goods_PriceAdjust(AdjustPriceSetCount), TimeSetCount, 1)
If AdjustPriceValue = 0
Goods_SellPrice(AdjustPriceSetCount) = 0
Goto 继续价格调整
EndIf
If AdjustPriceValue = 9
Goods_SellPrice(AdjustPriceSetCount) = -1
Goto 继续价格调整
EndIf
Goods_SellPrice(AdjustPriceSetCount) = Goods_Price(AdjustPriceSetCount) * (100 + (AdjustPriceValue - 5) * PriceAdjustValueSet) / 100
If (Goods_Name(AdjustPriceSetCount) <> "")
Message = Message & Goods_Name(AdjustPriceSetCount) & ":" & Goods_SellPrice(AdjustPriceSetCount) & " "
EndIf
Rem 继续价格调整
AdjustPriceSetCount = AdjustPriceSetCount + 1
EndFor
Gosub 输出消息
EndIf
Return 价格调整
//料理检查
Sub 料理检查
Gosub 当前时间
Message = CurrentTime & "检查料理数量......"
Gosub 输出消息
Plugin Window.SendKeyPress(hwn,122)
Delay 2000
Plugin Window.SendKeyPress(hwn,112)
Delay 2000
PosX = 690
PosY = 111
Gosub 坐标转换
IfColor PosX PosY ffffff 0
CurrentFoodNo = 1
Goto 料理检查结束
EndIf
PosX = 690
PosY = 165
Gosub 坐标转换
IfColor PosX PosY ffffff 0
CurrentFoodNo = 2
Goto 料理检查结束
EndIf
PosX = 690
PosY = 219
Gosub 坐标转换
IfColor PosX PosY ffffff 0
CurrentFoodNo = 3
Goto 料理检查结束
EndIf
PosX = 748
PosY = 58
Gosub 坐标转换
IfColor PosX PosY ffffff 0
CurrentFoodNo = 4
Goto 料理检查结束
EndIf
PosX = 748
PosY = 111
Gosub 坐标转换
IfColor PosX PosY ffffff 0
CurrentFoodNo = 5
Goto 料理检查结束
EndIf
Rem 料理检查结束
Gosub 当前时间
If CurrentFoodNo = 0
EndFlag = 1
Message = CurrentTime & "料理全部用完......, 自动登出游戏......"
Gosub 输出消息
Gosub 自动登出
Goto 脚本结束
Else
Gosub 当前时间
Message = CurrentTime & "当前使用料理: " & Food_Name(CurrentFoodNo)
Gosub 输出消息
EndIf
Return 料理检查
//窗口初始化
Sub 窗口初始化
//ESC键
Plugin Window.SendKeyPress(hwn,27)
Delay 500
Plugin Window.SendKeyPress(hwn,27)
PosX = 400 : PosY = 300
Gosub 移动鼠标
RightClick 1
Delay 500
Return 窗口初始化
//执行展销货物
Sub 执行展销货物
If AutoSellGoods <> 1
GoodsSetCount = 1
For GoodsCount
Goods_SellPrice(GoodsSetCount) = Goods_Price(GoodsSetCount)
GoodsSetCount = GoodsSetCount + 1
EndFor
Else
Gosub 价格调整
GoodsSetCount = 1
For GoodsCount
If (Goods_SellPrice(GoodsSetCount) > 0) And (Goods_Name(GoodsSetCount) <> "")
Gosub 露天展销
Goto 完成展销
EndIf
GoodsSetCount = GoodsSetCount + 1
EndFor
Rem 完成展销
If AutoSayPrice = 1
Gosub 自动报价
EndIf
EndIf
Return 执行展销货物
//执行丢弃货物
Sub 执行丢弃货物
GoodsSetCount = 1
For GoodsCount
If (Goods_SellPrice(GoodsSetCount) = 0) And (Goods_Name(GoodsSetCount) <> "")
Gosub 丢弃货物
Goto 完成丢弃
EndIf
GoodsSetCount = GoodsSetCount + 1
EndFor
Rem 完成丢弃
Return 执行丢弃货物
//执行定时任务
Sub 执行定时任务
Plugin OldWindow = Window.Foreground()
Plugin Window.Active(hwn)
Delay 500
Plugin Window.Restore(hwn)
Delay 500
Gosub 窗口初始化
LockMouse
Gosub 料理检查
Gosub 前台吃料理
Gosub 当前时间
Message = CurrentTime
Gosub 断线保护
Gosub 疲劳度保护
Gosub 无行动力保护
Gosub 输出消息
Gosub 行动力过高处理
If TimeShutDownSet = 1
Gosub 定时关机
EndIf
If EndFlag = 0
Gosub 执行展销货物
Delay 500
Gosub 执行丢弃货物
Delay 500
Gosub 当前时间
Message = CurrentTime & "继续采集......"
Gosub 输出消息
EndIf
UnlockMouse
//Plugin Window.Min(hwn)
Plugin Window.Active(OldWindow)
Delay 500
Plugin Window.Restore(OldWindow)
Return 执行定时任务
//自动采集
Sub 自动采集
//
VBS StartTime = Timer
Gosub 执行定时任务
//
Rem 自动采集循环
VBS CurrentTime = Timer
VBS TimeInterval = CurrentTime - StartTime
If (TimeInterval >= UpdateTimeInterval * 60) Or (TimeInterval < 0)
Gosub 执行定时任务
VBS StartTime = Timer
EndIf
Gosub 执行采集
If EndFlag = 0
Goto 自动采集循环
EndIf
Return 自动采集
//执行采集
Sub 执行采集
FoodGetCount = Food_AddValue(CurrentFoodNo) \ 5 - 1
For FoodGetCount
Gosub 采集一次
EndFor
Gosub 边吃料理边采集
Return 执行采集
//边吃料理边采集
Sub 边吃料理边采集
Plugin Window.SendKeyPress(hwn,112)
Delay 1500
Plugin Window.SendKeyPress(hwn,112)
Delay 1500
Gosub 常规吃料理
Delay 1500
Return 边吃料理边采集
//采集一次
Sub 采集一次
//F1-快捷方式按键
Plugin Window.SendKeyPress(hwn,112)
Delay 1500
//F1-采集快捷键
Plugin Window.SendKeyPress(hwn,112)
Delay 1500
//F11-使用技能(刷新用)
Plugin Window.SendKeyPress(hwn,122)
Delay 4500
Return 采集一次
//丢弃货物
Sub 丢弃货物
Gosub 当前时间
Message = CurrentTime & "开始丢弃货物......"
Gosub 输出消息
Delay 500
//F7-丢弃货物
Plugin Window.SendKeyPress(hwn,118)
Delay 1000
For 5
//丢弃货物按钮坐标
PosX = 430
PosY = 365
Gosub 移动鼠标
IfColor PosX PosY d5db8c 0
LeftClick 1
Delay 500
Goto 丢弃货物窗口正常
EndIf
Delay 1000
EndFor
Goto 丢弃货物结束
Rem 丢弃货物窗口正常
PosSet = 0
For GoodsCount
PosX = 116 + (PosSet Mod 5) * 56
PosY = 138 + (PosSet \ 5) * 56
Gosub 坐标转换
GoodsSetCount = 1
For GoodsCount
If Goods_SellPrice(GoodsSetCount) = 0
IfColor PosX PosY Goods_Color(GoodsSetCount) 0
Gosub 选择丢弃
EndIf
EndIf
GoodsSetCount = GoodsSetCount + 1
EndFor
PosSet = PosSet + 1
EndFor
//检查船装载量
PosX = 369 : PosY = 360
Gosub 坐标转换
IfColor PosX PosY 7c7cf7 0
Gosub 当前时间
Message = CurrentTime & "船已经超载, 自动登出游戏......"
Gosub 输出消息
Gosub 自动登出
Goto 脚本结束
EndIf
Delay 1000
//确定按钮坐标
PosX = 630 : PosY = 390
Gosub 移动鼠标
IfColor PosX PosY d4dd84 0
LeftClick 1
Delay 500
EndIf
Rem 丢弃货物结束
Gosub 窗口初始化
Return 丢弃货物
//选择丢弃
Sub 选择丢弃
MoveTo PosX PosY
Delay 500
LeftClick 1
Delay 500
//Max按钮
PosX = 116 + (PosSet Mod 5) * 56 + 94 : PosY = 138 + (PosSet \ 5) * 56 + 102
Gosub 移动鼠标
LeftClick 1
Delay 500
//OK按钮
PosX = 116 + (PosSet Mod 5) * 56 + 94 : PosY = 138 + (PosSet \ 5) * 56 + 172
Gosub 移动鼠标
LeftClick 1
Delay 500
PosSet = PosSet - 1
Return 选择丢弃
//露天展销
Sub 露天展销
Gosub 当前时间
Message = CurrentTime & "开始露天展销......"
Gosub 输出消息
Delay 500
//F9-露天市场
Plugin Window.SendKeyPress(hwn,120)
Delay 1000
For 5
PosX = 440
PosY = 140
Gosub 坐标转换
IfColor PosX PosY 44d8e1 0
Goto 露天展销窗口正常
EndIf
Delay 1000
EndFor
Goto 露天展销结束
Rem 露天展销窗口正常
PosSet = 0
For GoodsCount
PosX = 136 + (PosSet Mod 5) * 56
PosY = 123 + (PosSet \ 5) * 56
Gosub 坐标转换
GoodsSetCount = 1
For GoodsCount
If Goods_SellPrice(GoodsSetCount) > 0
IfColor PosX PosY Goods_Color(GoodsSetCount) 0
SalesPrice = Goods_SellPrice(GoodsSetCount)
MoveTo PosX PosY
Delay 500
Gosub 选择展销
Goods_OldPrice(GoodsSetCount) = Goods_SellPrice(GoodsSetCount)
EndIf
EndIf
GoodsSetCount = GoodsSetCount + 1
EndFor
PosSet = PosSet + 1
EndFor
//确定按钮坐标
PosX = 610 : PosY = 405
Gosub 移动鼠标
IfColor PosX PosY d1de83 0
LeftClick 1
Delay 500
EndIf
//变更展销内容按钮坐标
PosX = 490 : PosY = 405
Gosub 移动鼠标
IfColor PosX PosY ccde86 0
LeftClick 1
Delay 500
EndIf
Rem 露天展销结束
Gosub 窗口初始化
Return 露天展销
//选择展销
Sub 选择展销
//价格变化时重新设置价格
If SalesPrice <> Goods_OldPrice(GoodsSetCount)
SaveMousePos
DeleteSet = 0
For GoodsCount
PosX = 492 + (DeleteSet Mod 5) * 56
PosY = 123 + (DeleteSet \ 5) * 56
Gosub 坐标转换
IfColor PosX PosY Goods_Color(GoodsSetCount) 0
MoveTo PosX PosY
Delay 500
LeftClick 1
Delay 500
EndIf
DeleteSet = DeleteSet + 1
EndFor
RestoreMousePos
Delay 500
EndIf
//设置展销价格
LeftClick 1
Delay 500
//Max按钮
PosX = 350
PosY = 220
Gosub 移动鼠标
LeftClick 1
Delay 500
PosX = 465
PosY = 393
Gosub 移动鼠标
IfColor PosX PosY b4c15e 0
LeftClick 1
Delay 500
Else
NumPos = 1
For 5
NumSet = Mid(SalesPrice,NumPos,1)
If NumSet = "9"
PosX = 473 : PosY = 220
EndIf
If NumSet = "8"
PosX = 449 : PosY = 220
EndIf
If NumSet = "7"
PosX = 425 : PosY = 220
EndIf
If NumSet = "6"
PosX = 473 : PosY = 245
EndIf
If NumSet = "5"
PosX = 449 : PosY = 245
EndIf
If NumSet = "4"
PosX = 425 : PosY = 245
EndIf
If NumSet = "3"
PosX = 473 : PosY = 270
EndIf
If NumSet = "2"
PosX = 449 : PosY = 270
EndIf
If NumSet = "1"
PosX = 425 : PosY = 270
EndIf
If NumSet = "0"
PosX = 437 : PosY = 292
EndIf
If NumSet <> ""
Gosub 移动鼠标
LeftClick 1
EndIf
NumPos = NumPos + 1
EndFor
PosX = 465
PosY = 393
Gosub 移动鼠标
IfColor PosX PosY b4c15e 0
LeftClick 1
EndIf
EndIf
Delay 500
PosSet = PosSet - 1
Return 选择展销
//自动报价
Sub 自动报价
Message = "出售:"
GoodsSetCount = 1
For GoodsCount
If (Goods_Name(GoodsSetCount) <> "") And (Goods_SellPrice(GoodsSetCount) > 0)
Message = Message & Goods_Name(GoodsSetCount) & ":" & Goods_SellPrice(GoodsSetCount) & " "
EndIf
GoodsSetCount = GoodsSetCount + 1
EndFor
Message = Message & "(欢迎加入 航海英雄联盟 商会)"
Gosub 输出消息
Return 自动报价
此篇文章为17173玩家原创作品,获得积分奖励 Z。 17173全新积分兑换系统上线 点卡周边等你拿>>>详情点击 |