搜索
123
返回列表 发新帖
楼主: 深澜

[沟通中] 为什么现在的引擎很容易提示死循环

[复制链接]
发表于 2021-8-5 20:53:51 | 显示全部楼层
有脚本就发一段,我也写过你说的这些功能,GOTO基本不用

点评

大神,还在么,脚本发上来了,你看看,请问,这么多重逻辑,不用goto和call怎么写。  发表于 2021-8-5 21:22
 楼主| 发表于 2021-8-5 21:01:56 | 显示全部楼层
刘华强 发表于 2021-8-5 20:53
有脚本就发一段,我也写过你说的这些功能,GOTO基本不用

[@读取人物龙啸一键升级]
{
#IF
equal <$S(一重)> 开启
#ACT
GOTO @读取人物龙啸一重一键升级
BREAK
#IF
equal <$S(二重)> 开启
#ACT
GOTO @读取人物龙啸二重一键升级
BREAK
#IF
equal <$S(三重)> 开启
#ACT
GOTO @读取人物龙啸三重一键升级
BREAK
#IF
equal <$S(四重)> 开启
#ACT
GOTO @读取人物龙啸四重一键升级
BREAK
#IF
equal <$S(五重)> 开启
#ACT
GOTO @读取人物龙啸五重一键升级
BREAK
#IF
equal <$S(六重)> 开启
#ACT
GOTO @读取人物龙啸六重一键升级
BREAK

;=======================================================================
;人物龙啸一重等级
;=======================================================================
[@读取人物龙啸一重一键升级]
#IF
LARGE U21 99
#ACT
SENDMSG 7 龙啸功一重已升至最高等级。
BREAK

#IF
#ACT
MOV <$N(升1级所需点星珠数量)> 50
MOV <$N(可升级级数)> 2

MOV <$N(需升级级数)> 100
MOV <$N(人物龙啸一重等级)> U21
DEC <$N(需升级级数)> <$N(人物龙啸一重等级)>
MUL <$N(升满级所需点星珠总数)> <$N(升1级所需点星珠数量)> <$N(需升级级数)>
MUL <$N(人物龙啸一重进度)> <$N(人物龙啸一重等级)> 200
SetClientUIProp Usr_lxsjjm@Usr_lxjd.Max 20000
SetClientUIProp Usr_lxsjjm@Usr_lxjd.Position <$N(人物龙啸一重进度)>

#IF
CHECKKIMNEEDLE  点星珠 <$N(升满级所需点星珠总数)>
#ACT
TAKEKIMNEEDLE 点星珠 <$N(升满级所需点星珠总数)>
INC U21 <$N(需升级级数)>
SetClientUIProp DWStateWin@Usr_lxan_2.Abandon False
#CALL [\新任务系统\炼体系统\龙啸\人物龙啸一重.txt] @读取人物龙啸一重等级
GOTO @人物龙啸属性1
SENDMSG 7 龙啸功一重已升至最高等级。
BREAK

#IF
CHECKKIMNEEDLE  点星珠 <$N(升1级所需点星珠数量)>
#ACT
GOTO @计算人物龙啸一重可升级级数
BREAK
#ELSEACT
SENDMSG 7 点星珠数量不足<$N(升1级所需点星珠数量)>。
BREAK

[@计算人物龙啸一重可升级级数]
#IF
#ACT
MUL <$N(升多级所需点星珠数量)> <$N(升1级所需点星珠数量)> <$N(可升级级数)>

#IF
CHECKKIMNEEDLE  点星珠 <$N(升多级所需点星珠数量)>
#ACT
INC <$N(可升级级数)> 1
SENDMSG 7 计算人物龙啸一重可升级级数中……
GOTO @计算人物龙啸一重可升级级数
BREAK
#ELSEACT
DEC <$N(可升级级数)> 1
DEC <$N(升多级所需点星珠数量)> <$N(升1级所需点星珠数量)>
TAKEKIMNEEDLE 点星珠 <$N(升多级所需点星珠数量)>
INC U21 <$N(可升级级数)>
#CALL [\新任务系统\炼体系统\龙啸\人物龙啸一重.txt] @读取人物龙啸一重等级
GOTO @人物龙啸属性2
BREAK

[@人物龙啸属性1]
#IF
checkjob warrior
#ACT
MOV <$N(人物功体总等级)> U21
INC <$N(人物功体总等级)> U22
MUL <$N(人物功体属性)> <$N(人物功体总等级)> 23
MOV <$N(属性倍率)> 50
MUL <$N(人物功体属性)> <$N(人物功体属性)> <$N(属性倍率)>
SetClientUIProp DWStateWin@Usr_gtsxsm1_3.Text (无视所有防御伤害+<$N(人物功体属性)>)
MUL <$N(人物龙啸属性)> <$N(需升级级数)> 23
MOV <$N(属性倍率)> 50
MUL <$N(人物龙啸属性)> <$N(人物龙啸属性)> <$N(属性倍率)>
CHANGEHUMABILITY 24 + <$N(人物龙啸属性)> 8640000
BREAK

#IF
checkjob wizard
#ACT
MOV <$N(人物功体总等级)> U21
INC <$N(人物功体总等级)> U22
MUL <$N(人物功体属性)> <$N(人物功体总等级)> 35
MOV <$N(属性倍率)> 50
MUL <$N(人物功体属性)> <$N(人物功体属性)> <$N(属性倍率)>
SetClientUIProp DWStateWin@Usr_gtsxsm1_3.Text (无视所有防御伤害+<$N(人物功体属性)>)
MUL <$N(人物龙啸属性)> <$N(需升级级数)> 35
MOV <$N(属性倍率)> 50
MUL <$N(人物龙啸属性)> <$N(人物龙啸属性)> <$N(属性倍率)>
CHANGEHUMABILITY 24 + <$N(人物龙啸属性)> 8640000
BREAK

#IF
checkjob taoist
#ACT
MOV <$N(人物功体总等级)> U21
INC <$N(人物功体总等级)> U22
MUL <$N(人物功体属性)> <$N(人物功体总等级)> 42
MOV <$N(属性倍率)> 50
MUL <$N(人物功体属性)> <$N(人物功体属性)> <$N(属性倍率)>
SetClientUIProp DWStateWin@Usr_gtsxsm1_3.Text (无视所有防御伤害+<$N(人物功体属性)>)
MUL <$N(人物龙啸属性)> <$N(需升级级数)> 42
MOV <$N(属性倍率)> 50
MUL <$N(人物龙啸属性)> <$N(人物龙啸属性)> <$N(属性倍率)>
CHANGEHUMABILITY 24 + <$N(人物龙啸属性)> 8640000
BREAK

#IF
checkjob ASSASSIN
#ACT
MOV <$N(人物功体总等级)> U21
INC <$N(人物功体总等级)> U22
MUL <$N(人物功体属性)> <$N(人物功体总等级)> 17
MOV <$N(属性倍率)> 50
MUL <$N(人物功体属性)> <$N(人物功体属性)> <$N(属性倍率)>
SetClientUIProp DWStateWin@Usr_gtsxsm1_3.Text (无视所有防御伤害+<$N(人物功体属性)>)
MUL <$N(人物龙啸属性)> <$N(需升级级数)> 17
MOV <$N(属性倍率)> 50
MUL <$N(人物龙啸属性)> <$N(人物龙啸属性)> <$N(属性倍率)>
CHANGEHUMABILITY 24 + <$N(人物龙啸属性)> 8640000
BREAK

[@人物龙啸属性2]
#IF
checkjob warrior
#ACT
MOV <$N(人物功体总等级)> U21
INC <$N(人物功体总等级)> U22
MUL <$N(人物功体属性)> <$N(人物功体总等级)> 23
MOV <$N(属性倍率)> 50
MUL <$N(人物功体属性)> <$N(人物功体属性)> <$N(属性倍率)>
SetClientUIProp DWStateWin@Usr_gtsxsm1_3.Text (无视所有防御伤害+<$N(人物功体属性)>)
MUL <$N(人物龙啸属性)> <$N(可升级级数)> 23
MOV <$N(属性倍率)> 50
MUL <$N(人物龙啸属性)> <$N(人物龙啸属性)> <$N(属性倍率)>
CHANGEHUMABILITY 24 + <$N(人物龙啸属性)> 8640000
BREAK

#IF
checkjob wizard
#ACT
MOV <$N(人物功体总等级)> U21
INC <$N(人物功体总等级)> U22
MUL <$N(人物功体属性)> <$N(人物功体总等级)> 35
MOV <$N(属性倍率)> 50
MUL <$N(人物功体属性)> <$N(人物功体属性)> <$N(属性倍率)>
SetClientUIProp DWStateWin@Usr_gtsxsm1_3.Text (无视所有防御伤害+<$N(人物功体属性)>)
MUL <$N(人物龙啸属性)> <$N(可升级级数)> 35
MOV <$N(属性倍率)> 50
MUL <$N(人物龙啸属性)> <$N(人物龙啸属性)> <$N(属性倍率)>
CHANGEHUMABILITY 24 + <$N(人物龙啸属性)> 8640000
BREAK

#IF
checkjob taoist
#ACT
MOV <$N(人物功体总等级)> U21
INC <$N(人物功体总等级)> U22
MUL <$N(人物功体属性)> <$N(人物功体总等级)> 42
MOV <$N(属性倍率)> 50
MUL <$N(人物功体属性)> <$N(人物功体属性)> <$N(属性倍率)>
SetClientUIProp DWStateWin@Usr_gtsxsm1_3.Text (无视所有防御伤害+<$N(人物功体属性)>)
MUL <$N(人物龙啸属性)> <$N(可升级级数)> 42
MOV <$N(属性倍率)> 50
MUL <$N(人物龙啸属性)> <$N(人物龙啸属性)> <$N(属性倍率)>
CHANGEHUMABILITY 24 + <$N(人物龙啸属性)> 8640000
BREAK

#IF
checkjob ASSASSIN
#ACT
MOV <$N(人物功体总等级)> U21
INC <$N(人物功体总等级)> U22
MUL <$N(人物功体属性)> <$N(人物功体总等级)> 17
MOV <$N(属性倍率)> 50
MUL <$N(人物功体属性)> <$N(人物功体属性)> <$N(属性倍率)>
SetClientUIProp DWStateWin@Usr_gtsxsm1_3.Text (无视所有防御伤害+<$N(人物功体属性)>)
MUL <$N(人物龙啸属性)> <$N(可升级级数)> 17
MOV <$N(属性倍率)> 50
MUL <$N(人物龙啸属性)> <$N(人物龙啸属性)> <$N(属性倍率)>
CHANGEHUMABILITY 24 + <$N(人物龙啸属性)> 8640000
BREAK
}



[@读取人物龙啸一重等级]
{
#IF
#ACT
SetClientUIProp Usr_lxsjjm@Usr_lxcs.Text 龙啸一重(已经开启)

#IF
checkjob warrior
#ACT
MOV <$S(职业)> 力量

#IF
checkjob wizard
#ACT
MOV <$S(职业)> 灵气

#IF
checkjob taoist
#ACT
MOV <$S(职业)> 玄术

#IF
checkjob ASSASSIN
#ACT
MOV <$S(职业)> 影杀

#IF
LARGE U21 99
#ACT
SetClientUIProp DWStateWin@Usr_lxan_2.Abandon False
MOV <$N(人物功体总等级)> U21
INC <$N(人物功体总等级)> U22
MOV <$N(人物龙啸一重等级)> 100
MUL <$N(人物龙啸一重进度)> <$N(人物龙啸一重等级)> 200
SetClientUIProp DWStateWin@Usr_gtsxsm1_2.Text <$S(职业)>+<$N(人物功体总等级)>
SetClientUIProp Usr_lxsjjm@Usr_lxdj.Text 等级:<$N(人物龙啸一重等级)>/100
SetClientUIProp Usr_lxsjjm@Usr_lxsx_1.Text 当前属性:<$S(职业)>+<$N(人物龙啸一重等级)>
SetClientUIProp Usr_lxsjjm@Usr_lxsx_2.Abandon True
SetClientUIProp Usr_lxsjjm@Usr_lxjd.Max 20000
SetClientUIProp Usr_lxsjjm@Usr_lxjd.Position <$N(人物龙啸一重进度)>
SetClientUIProp Usr_lxsjjm@Usr_lxbq_4.Text <$N(人物龙啸一重进度)>/20000
BREAK

#IF
LARGE U21 0
#ACT
MOV <$N(人物功体总等级)> U21
INC <$N(人物功体总等级)> U22
MOV <$N(人物龙啸一重等级)> U21
MUL <$N(人物龙啸一重进度)> <$N(人物龙啸一重等级)> 200
SetClientUIProp DWStateWin@Usr_gtsxsm1_2.Text <$S(职业)>+<$N(人物功体总等级)>
SetClientUIProp Usr_lxsjjm@Usr_lxdj.Text 等级:<$N(人物龙啸一重等级)>/100
SetClientUIProp Usr_lxsjjm@Usr_lxsx_1.Text 当前属性:<$S(职业)>+<$N(人物龙啸一重等级)>
INC <$N(人物龙啸一重等级)> 1
SetClientUIProp Usr_lxsjjm@Usr_lxsx_2.Abandon False
SetClientUIProp Usr_lxsjjm@Usr_lxsx_2.Text 下级属性:<$S(职业)>+<$N(人物龙啸一重等级)>
SetClientUIProp Usr_lxsjjm@Usr_lxjd.Max 20000
SetClientUIProp Usr_lxsjjm@Usr_lxjd.Position <$N(人物龙啸一重进度)>
SetClientUIProp Usr_lxsjjm@Usr_lxbq_4.Text <$N(人物龙啸一重进度)>/20000
BREAK
#ELSEACT
MOV <$N(人物功体总等级)> U21
INC <$N(人物功体总等级)> U22
MOV <$N(人物龙啸一重等级)> 0
MUL <$N(人物龙啸一重进度)> <$N(人物龙啸一重等级)> 200
SetClientUIProp DWStateWin@Usr_gtsxsm1_2.Text <$S(职业)>+<$N(人物功体总等级)>
SetClientUIProp Usr_lxsjjm@Usr_lxdj.Text 等级:<$N(人物龙啸一重等级)>/100
SetClientUIProp Usr_lxsjjm@Usr_lxsx_1.Text 当前属性:<$S(职业)>+<$N(人物龙啸一重等级)>
INC <$N(人物龙啸一重等级)> 1
SetClientUIProp Usr_lxsjjm@Usr_lxsx_2.Abandon False
SetClientUIProp Usr_lxsjjm@Usr_lxsx_2.Text 下级属性:<$S(职业)>+<$N(人物龙啸一重等级)>
SetClientUIProp Usr_lxsjjm@Usr_lxjd.Max 20000
SetClientUIProp Usr_lxsjjm@Usr_lxjd.Position <$N(人物龙啸一重进度)>
SetClientUIProp Usr_lxsjjm@Usr_lxbq_4.Text <$N(人物龙啸一重进度)>/20000
BREAK
}
发表于 2021-8-9 18:48:06 | 显示全部楼层
楼主,你可以循环500次,分多几次就没事了啊。
发表于 2021-8-9 20:47:38 | 显示全部楼层
脚本太长, 很多都是重复的 没必要这样写
发表于 2021-8-9 20:48:07 | 显示全部楼层
UI控件刷新是不需要GOTO
 楼主| 发表于 2021-8-10 13:50:21 | 显示全部楼层
HGE领悟-hgeui 发表于 2021-8-9 20:48
UI控件刷新是不需要GOTO

是吗,以前是要刷新的,现在改了吗。

补充内容 (2021-8-10 13:53):
刚试了,ui控件的值改了后得刷新才显示的,不会自动刷新。

补充内容 (2021-8-10 13:57):
刷新用的goto和call这个其实都不是重点,主要是之前为了实现自动计算次数以免玩家手动一直点,现在已经改用lua计算好再输出结果最后让txt的脚本执行
发表于 2021-8-12 16:18:59 | 显示全部楼层
现在确实很容易出死循环,昨天UIF文件#CALL 到QU文件,QU文件是空的什么内容都没写,连着多点几次都能出死循环
发表于 2021-8-12 16:19:44 | 显示全部楼层
这玩意相当于不让用了。。。
发表于 2021-11-21 19:24:51 | 显示全部楼层
原来的 检测等级 内功 心法CALL 还有充值CALL。我现在直接把等级,内功,心法检测CALL合并到QF去,充值只让每次充100了。反正没提示死循环了。不然每次都是801次死循环。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|HGEM2论坛

GMT+8, 2024-11-25 17:28 , Processed in 0.626368 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表