在脚本执行子线程中,有一段打怪循环代码,没有操作和读取界面的任何数据 ,如果这段代码正在执行时,按了暂停线程的热键,就是导致辅助界面失去响应,按呼出和隐藏键都无效,但游戏界面正常。
线程用的是delphi线程类,想了一天,都没想到有什么好办法解决这个问题,求各位指点一下解决方法。
怎么样才可以在按了暂停键时,可以让子线程暂停和辅助界面不卡死。
贴上其中一段循环代码:
1:begin
LmonsterID:= FindRecentlyMonster;
if LmonsterID > 0 then
begin
Lmonster := checkMonster(LmonsterID);
AutoWalk((Lmonster.x+randinteger),(Lmonster.Y+randinteger));
while ((Abs(Lmonster.X - CheckPlayer.x)>3) or (Abs(Lmonster.y - CheckPlayer.y) > 3)) and(CheckPlayer.ShengShi= 0) and (CheckPlayer.zhaixianzhantai=True) do //and(FendBool=False)
begin
if FendBool = False then
begin
if CheckAutoWalk = 0 then
begin
AutoWalk((Lmonster.x+randinteger),(Lmonster.Y+randinteger));
Delay(1000);
end;
if CheckAutoWalk = 0 then
begin
Walk((Lmonster.x+randinteger),(Lmonster.Y+randinteger));
end;
end;
Delay(1000);
end;
LDoGameNextIndexEvent :=1;
end
else
LDoGameNextIndexEvent:= 2;
end;
线程用的是delphi线程类,想了一天,都没想到有什么好办法解决这个问题,求各位指点一下解决方法。
怎么样才可以在按了暂停键时,可以让子线程暂停和辅助界面不卡死。
贴上其中一段循环代码:
1:begin
LmonsterID:= FindRecentlyMonster;
if LmonsterID > 0 then
begin
Lmonster := checkMonster(LmonsterID);
AutoWalk((Lmonster.x+randinteger),(Lmonster.Y+randinteger));
while ((Abs(Lmonster.X - CheckPlayer.x)>3) or (Abs(Lmonster.y - CheckPlayer.y) > 3)) and(CheckPlayer.ShengShi= 0) and (CheckPlayer.zhaixianzhantai=True) do //and(FendBool=False)
begin
if FendBool = False then
begin
if CheckAutoWalk = 0 then
begin
AutoWalk((Lmonster.x+randinteger),(Lmonster.Y+randinteger));
Delay(1000);
end;
if CheckAutoWalk = 0 then
begin
Walk((Lmonster.x+randinteger),(Lmonster.Y+randinteger));
end;
end;
Delay(1000);
end;
LDoGameNextIndexEvent :=1;
end
else
LDoGameNextIndexEvent:= 2;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货