admin 发表于 2021-5-27 06:31:28

投保脚本

;NPC如下
;------------------------------------------------------------------
[@main]
<ITEMBOX:0:0:1549:50:50:1:10:*:250#请放入你要投保的装备>\
 \
 \
 \
  <投保|输入你要投保的次数/@@InputInteger250>\

[@InputInteger250]
#IF
NOT EQUAL N250 0
#ACT
MOV S$投保类型
MOV N$投保金额 0
MOV N$投保金额 <$BOXITEM.INSURANCEGOLD>
MUL N$投保金额 <$STR(N250)>
#ELSEACT
MessageBox 请正确的输入你要投保的次数
break

#IF
Equal <$BOXITEM.INSURANCECURRENCY> 0
#ACT
MOV S$投保类型 元宝
#Define $检测数量$ CHECKGAMEGOLD
#Define $收取数量$ GAMEGOLD

#IF
Equal <$BOXITEM.INSURANCECURRENCY> 1
#ACT
MOV S$投保类型 金币
#Define $检测数量$ checkgold
#Define $收取数量$ GOLDCOUNT

#IF
Equal <$BOXITEM.INSURANCECURRENCY> 2
#ACT
MOV S$投保类型 泡点
#Define $检测数量$ CHECKGAMEPOINT
#Define $收取数量$ GAMEPOINT

#IF
Equal <$BOXITEM.INSURANCECURRENCY> 3
#ACT
MOV S$投保类型 金刚石
#Define $检测数量$ CHECKGAMEDIAMOND
#Define $收取数量$ GAMEDIAMOND

#IF
Equal <$BOXITEM.INSURANCECURRENCY> 4
#ACT
MOV S$投保类型 灵符
#Define $检测数量$ CHECKGAMEGIRD
#Define $收取数量$ GAMEGIRD

#IF
Equal <$BOXITEM.INSURANCEGOLD> 0
#ACT
MessageBox 此装备无法进行投保
break

#IF
NOT $检测数量$ < N$投保金额
#ACT
$收取数量$ - N$投保金额
SETINSURANCECOUNTXX boxitem0 + <$STR(N250)>
UpdateItem boxitem0
MessageBox 你花费<$STR(N$投保金额)><$STR(S$投保类型)>将<$BOXITEM.NAME>投保了<$STR(N250)>次\ \当前共投保了<$BOXITEM.INSURANCECOUNT>次
break
#ELSEACT
MessageBox 投保<$STR(N250)>次<$BOXITEM.NAME>需要<$STR(N$投保金额)><$STR(S$投保类型)>
break

;QF如下:
;------------------------------------------------------------------
[@DropInsuranceItem]
#IF
LARGE <$DROPINSURANCEITEMCOUNT> 0
#ACT
sendmsg 6 你的<$DROPINSURANCEITEMNAME>因为已经投保了,所以此次没有掉落
#ELSEACT
break

#IF
CheckKillByHum
#ACT
CalcPercent <$DROPINSURANCEITEMGOLD> 50 N$获得投保金额
SetHumVar <$KILLER> N$获得投保金额 N$获得投保金额
SetHumVar <$KILLER> S$获得装备名字 <$DROPINSURANCEITEMNAME>
#ELSEACT
sendmsg 6 你被怪物[<$KILLER>]杀死,<$KILLER>无法获得保费
break

#IF
Equal <$DROPINSURANCEITEMCURRENCY> 0
#ACT
M.GAMEGOLD + N$获得投保金额
sendmsg 6 <$KILLER>获得投保金额<$STR(N$获得投保金额)>元宝
M.sendmsg 6 由于<$CURRRTARGETNAME>的<$STR(S$获得装备名字)>进行了投保,所以没有爆出
M.sendmsg 6 本次你获得<$STR(S$获得装备名字)>的50%投保金额<$STR(N$获得投保金额)>元宝

#IF
Equal <$DROPINSURANCEITEMCURRENCY> 1
#ACT
M.GOLDCOUNT + N$获得投保金额
sendmsg 6 <$KILLER>获得投保金额<$STR(N$获得投保金额)>金币
M.sendmsg 6 由于<$CURRRTARGETNAME>的<$STR(S$获得装备名字)>进行了投保,所以没有爆出
M.sendmsg 6 本次你获得<$STR(S$获得装备名字)>的50%投保金额<$STR(N$获得投保金额)>金币

#IF
Equal <$DROPINSURANCEITEMCURRENCY> 2
#ACT
M.GAMEPOINT + N$获得投保金额
sendmsg 6 <$KILLER>获得投保金额<$STR(N$获得投保金额)>泡点
M.sendmsg 6 由于<$CURRRTARGETNAME>的<$STR(S$获得装备名字)>进行了投保,所以没有爆出
M.sendmsg 6 本次你获得<$STR(S$获得装备名字)>的50%投保金额<$STR(N$获得投保金额)>泡点

#IF
Equal <$DROPINSURANCEITEMCURRENCY> 3
#ACT
M.GAMEDIAMOND + N$获得投保金额
sendmsg 6 <$KILLER>获得投保金额<$STR(N$获得投保金额)>金刚石
M.sendmsg 6 由于<$CURRRTARGETNAME>的<$STR(S$获得装备名字)>进行了投保,所以没有爆出
M.sendmsg 6 本次你获得<$STR(S$获得装备名字)>的50%投保金额<$STR(N$获得投保金额)>金刚石

#IF
Equal <$DROPINSURANCEITEMCURRENCY> 4
#ACT
M.GAMEGIRD + N$获得投保金额
sendmsg 6 <$KILLER>获得投保金额<$STR(N$获得投保金额)>灵符
M.sendmsg 6 由于<$CURRRTARGETNAME>的<$STR(S$获得装备名字)>进行了投保,所以没有爆出
M.sendmsg 6 本次你获得<$STR(S$获得装备名字)>的50%金额<$STR(N$获得投保金额)>灵符

a117211385 发表于 2022-4-15 22:56:41

你这个脚本GOM需要增加字段吗? 还是直接照你这么做就行?

sxemp1 发表于 2022-8-10 05:27:19

InsuranceGold 和 InsuranceCurrency字段已添加 把数据库复制到其它GOM端中测试投保功能正常,自己用的那个GOM端中投保总是无法读到投保金额,一直显示是0. 两个GOM引擎都是同日期的 不知道为什么。请楼主指教

renyicai 发表于 2024-4-13 13:31:40

没用的,一看这个脚本内容就知道用了铁定报错。
首先,脚本里有#Define字样,仅在这里出现,那么只会导致一个问题:无法读取到投保金额,肯定是还漏写了其他地方的脚本。
其次,GOM原版是无法实现这个的,只有配合功能插件,但是只放了一个脚本,不告知使用的是什么厂家插件,例如ESP,GOMPJ等等,根本实现不了,M2里一堆的错误。
总结:看看就好了。
页: [1]
查看完整版本: 投保脚本