项目

一般

简介

行为

行会红包 » 历史记录 » 修订 19

« 上一页 | 修订 19/29 (差异) | 下一页 »
chenjun, 2022-06-01 18:41


行会红包

玩家可以在行会中发红包给行会成员,也可以收取其他成员发放的红包


特戒引擎脚本示例:


[@main]
;行会红包UI显示处理
#if
#act
openMerchantBigDlg lc_chuangti 4 0 0 1 0 0
goto @生成红包列表
goto @红包数据
#say
<panelsize:1440:900>\
<Img:lc_quyufenge_01:255:95:1>\
<Img:lc_quyufenge_02:270:760:1>\
<text:灵符:<$gameGird>{scolor=250}:1100:840> \
<ImgButton:lc_anniuhui_4zi_da:1300:820:去发红包/@去发红包>\
;创建领取红包列表界面
<itemGrid:GridName,0,0,1:260:80:310,410:1,4,652,1:0>\
 
 
[@去发红包]
#if
#act
mov n$发红包金额显示值 1000
mov n$发红包数量显示值 10
goto @设置红包
 
 
[@设置红包]
#if
#act
openMerchantBigDlg lc_chuangti 4 0 0 1 0 0
#say
;红包展示
<Img:lc_hongbao_03:123:225:1:1.5>
<text:<$userName>的红包{scolor=151}:200:240> \
<text:恭喜发财,大吉大利{scolor=151}:128:374> \
<text:发放金额:{scolor=161}:500:230> \
<img:huatiao01:832:222:1:1>
;红包金额输入框
<Input:1:1:<$str(n$发红包金额显示值)>:161:400:40:161:30:6:921:237/@endInput1> \
 
<text:今日可发<$str(u$今日剩余可发灵符)>灵符{scolor=160}:803:317> \
<ImgButton:lc_shangcheng_jh_anniu:772:224:/@发放金额减>\
<ImgButton:lc_shangcheng_jiahao_anniu:1074:224:/@发放金额加>\
<text:红包数量:{scolor=161}:500:480> \
<img:huatiao01:832:474:1:1>
;红包数量输入框
<Input:2:1:<$str(n$发红包数量显示值)>:161:400:40:161:30:4:931:487/@endInput2> \
<ImgButton:lc_shangcheng_jh_anniu:772:476:/@红包数量减>\
<ImgButton:lc_shangcheng_jiahao_anniu:1074:476:/@红包数量加>\
<text:祝福语:{scolor=161}:500:700> \
<text:恭喜发财,大吉大利{scolor=161}:692:700> \
<text:注:未领取的红包将于24小时后退还{scolor=250}:100:850> \
<ImgButton:lc_anniuhui_4zi_da:1200:820:发送/@submitinput>\
 
 
[@endInput1]
;触发编辑结束,如未输入红包金额,会返回一个空字符
#act
mov n$新红包金额 <$str(s1)>
 
#if
not equal s1
small n$新红包金额 n$发红包金额显示值
#act
sendtipsmsg 红包金额最少需要1000灵符
mov s1 1000
mov n$发红包金额显示值 <$str(s1)>
goto @设置红包
#elseact
mov n$发红包金额显示值 <$str(s1)>
 
 
[@endInput2]
;触发编辑结束,如未输入红包数量,会返回一个空字符
#act
mov n$新红包数量 <$str(s2)>
 
#if
not equal s2
small n$新红包数量 n$发红包数量显示值
#act
sendtipsmsg 红包数量最少10个
mov s2 10
mov n$发红包数量显示值 <$str(s2)>
goto @设置红包
#elseact
mov n$发红包数量显示值 <$str(s2)>
 
 
;点击调整红包金额的减号按钮触发
[@发放金额减]
#if
small n$发红包金额显示值 1001
#act
mov n$发红包金额显示值 1000
sendtipsmsg 红包金额最少需要1000灵符
#elseact
mov n$显示值数字化金额 <$str(n$发红包金额显示值)>
dec n$显示值数字化金额 100
mov n$发红包金额显示值 <$str(n$显示值数字化金额)>
goto @设置红包
 
 
;点击调整红包金额的加号按钮触发
[@发放金额加]
#if
equal s1
#act
mov s1 10
mov n$显示值数字化金额 1000
inc n$显示值数字化金额 100
mov n$发红包金额显示值 <$str(n$显示值数字化金额)>
goto @设置红包
break
 
#if
#act
mov n$显示值数字化金额 <$str(n$发红包金额显示值)>
inc n$显示值数字化金额 100
mov n$发红包金额显示值 <$str(n$显示值数字化金额)>
goto @设置红包
 
 
;点击调整红包数量的减号按钮触发
[@红包数量减]
#if
small n$发红包数量显示值 11
#act
mov n$发红包数量显示值 10
sendtipsmsg 红包数量最少10个
#elseact
mov n$显示值数字化数量 <$str(n$发红包数量显示值)>
dec n$显示值数字化数量 1
mov n$发红包数量显示值 <$str(n$显示值数字化数量)>
goto @设置红包
 
 
;点击调整红包数量的加号按钮触发
[@红包数量加]
#if
equal s2
#act
mov s2 10
mov n$显示值数字化数量 10
inc n$显示值数字化数量 1
mov n$发红包数量显示值 <$str(n$显示值数字化数量)>
goto @设置红包
break
 
#if
#act
mov n$显示值数字化数量 <$str(n$发红包数量显示值)>
inc n$显示值数字化数量 1
mov n$发红包数量显示值 <$str(n$显示值数字化数量)>
goto @设置红包
 
 
[@submitinput]
;触发提交时,如果未输入过任何内容,则返回值为空格
#if
equal " " <$str(s1)>
#act
mov s1 <$str(n$发红包金额显示值)>
 
#if
equal " " <$str(s2)>
#act
mov s2 <$str(n$发红包数量显示值)>
 
;今日剩余可发灵符不足时,弹出提示
#act
mov n$新红包金额 <$str(s1)>
 
#if
large n$新红包金额 u$今日剩余可发灵符
#act
messageBox 今日剩余可发灵符不足
break
 
#if
small n$新红包金额 1000
#act
messageBox 红包金额最少需要1000灵符
break
 
#if
small n$新红包数量 10
#act
messageBox 红包数量最少10个
break
 
#if
#act
mov n$新红包金额 <$str(s1)>
;更新今日剩余可发灵符
dec u$今日剩余可发灵符 n$新红包金额
;扣除灵符
gameGird - <$str(s1)>
;添加新红包数据,时间戳,发放者角色名,红包总金额,红包数量
mov s$新红包数据 <$timeStamp>|<$userName>|<$str(s1)>|<$str(s2)>|:
inc s$新红包数据 <$guild2(行会红包)>
calcVar guild2 行会红包 = <$str(s$新红包数据)>
;更新自己发出的红包列表,过期退还红包余额时用
mov s1 <$str(t$自己发出的红包列表)>
inc s1 <$timeStamp>|
mov t$自己发出的红包列表 <$str(s1)>
sendMsg 6 发送红包成功
;重新加载红包列表界面
goto @main
 
 
[@生成红包列表]
;获取全部的行会红包,包括不能领取的
#act
mov s$红包列表含已领取 <$guild2(行会红包)>
pgExtractString : s$红包列表含已领取 s$红包列表含已领取分割后 n$行会红包总数
mov n$红包计数器 1
 
;循环取出列表中各红包的时间戳
#if loop n$行会红包总数
#act
;取出单个红包数据
mov n$var <$str(n$红包计数器)>
getListValue s$红包列表含已领取分割后 <$str(n$var)> s$红包
;取出红包的时间戳
pgExtractString | <$str(s$红包)> s$红包分割后 n$红包分割后
mov n$var 1
getListValue s$红包分割后 <$str(n$var)> s$红包的时间戳
goto @过滤红包
inc n$红包计数器 1
 
 
[@过滤红包]
;列表不展示自己已经领取过的行会红包,列表不展示发出超过24小时的行会红包
;检测时间戳是否在自己领过的红包列表中,检测时间戳与当前时间的差值是否大于24小时
#act
mov n$var1 <$timeStamp>
mov n$var2 <$str(s$红包的时间戳)>
dec n$var1 n$var2
div n$发出多少小时 n$var1 3600
 
#or
checkContainsText t$自己领过的红包列表 s$红包的时间戳
not small n$发出多少小时 24
#act
mov s$tmp
ansiReplaceText s$红包列表含已领取 <$str(s$红包)>: s$tmp
mov s$红包列表 <$str(s$红包列表含已领取)>
#elseact
mov s$红包列表 <$str(s$红包列表含已领取)>
 
 
[@红包数据]
#act
pgExtractString : s$红包列表 s$红包列表分割后 n$行会红包总数
 
;没有可领取的红包
#if
equal n$行会红包总数 0
#act
mov s$itemList
 
;红包界面第1个红包
#if
large n$行会红包总数 0
#act
mov n$var 1
getListValue s$红包列表分割后 <$str(n$var)> s$红包1
pgExtractString | <$str(s$红包1)> s$红包分割后 n$红包分割数
mov n$var 2
getListValue s$红包分割后 <$str(n$var)> s$红包角色名
mov s$item1 (<itemindex:1>
inc s$item1 <Img:lc_hongbao_01:25:10:1/@领取红包(1)>
inc s$item1 <Img:lc_qiang:100:250:1>
inc s$item1 <text:<$str(s$红包角色名)>的红包{scolor=151}:60:55>
inc s$item1 <text:恭喜发财,大吉大利{scolor=151}:35:175>)
mov s$itemList <$str(s$item1)>
 
;红包界面第2个红包
#if
large n$行会红包总数 1
#act
mov n$var 2
getListValue s$红包列表分割后 <$str(n$var)> s$红包2
pgExtractString | <$str(s$红包2)> s$红包分割后 n$红包分割数
mov n$var 2
getListValue s$红包分割后 <$str(n$var)> s$红包角色名
mov s$item2 (<itemindex:2>
inc s$item2 <Img:lc_hongbao_01:25:10:1/@领取红包(2)>
inc s$item2 <Img:lc_qiang:100:250:1>
inc s$item2 <text:<$str(s$红包角色名)>的红包{scolor=151}:60:55>
inc s$item2 <text:恭喜发财,大吉大利{scolor=151}:35:175>)
inc s$itemList <$str(s$item2)>
 
;红包界面第3个红包
#if
large n$行会红包总数 2
#act
mov n$var 3
getListValue s$红包列表分割后 <$str(n$var)> s$红包3
pgExtractString | <$str(s$红包3)> s$红包分割后 n$红包分割数
mov n$var 2
getListValue s$红包分割后 <$str(n$var)> s$红包角色名
mov s$item3 (<itemindex:3>
inc s$item3 <Img:lc_hongbao_01:25:10:1/@领取红包(3)>
inc s$item3 <Img:lc_qiang:100:250:1>
inc s$item3 <text:<$str(s$红包角色名)>的红包{scolor=151}:60:55>
inc s$item3 <text:恭喜发财,大吉大利{scolor=151}:35:175>)
inc s$itemList <$str(s$item3)>
 
;红包界面第4个红包
#if
large n$行会红包总数 3
#act
mov n$var 4
getListValue s$红包列表分割后 <$str(n$var)> s$红包4
pgExtractString | <$str(s$红包4)> s$红包分割后 n$红包分割数
mov n$var 2
getListValue s$红包分割后 <$str(n$var)> s$红包角色名
mov s$item4 (<itemindex:4>
inc s$item4 <Img:lc_hongbao_01:25:10:1/@领取红包(4)>
inc s$item4 <Img:lc_qiang:100:250:1>
inc s$item4 <text:<$str(s$红包角色名)>的红包{scolor=151}:60:55>
inc s$item4 <text:恭喜发财,大吉大利{scolor=151}:35:175>)
inc s$itemList <$str(s$item4)>
 
;红包界面第5个红包
#if
large n$行会红包总数 4
#act
mov n$var 5
getListValue s$红包列表分割后 <$str(n$var)> s$红包5
pgExtractString | <$str(s$红包5)> s$红包分割后 n$红包分割数
mov n$var 2
getListValue s$红包分割后 <$str(n$var)> s$红包角色名
mov s$item5 (<itemindex:5>
inc s$item5 <Img:lc_hongbao_01:25:10:1/@领取红包(5)>
inc s$item5 <Img:lc_qiang:100:250:1>
inc s$item5 <text:<$str(s$红包角色名)>的红包{scolor=151}:60:55>
inc s$item5 <text:恭喜发财,大吉大利{scolor=151}:35:175>)
inc s$itemList <$str(s$item5)>
 
;红包界面第6个红包
#if
large n$行会红包总数 5
#act
mov n$var 6
getListValue s$红包列表分割后 <$str(n$var)> s$红包6
pgExtractString | <$str(s$红包6)> s$红包分割后 n$红包分割数
mov n$var 2
getListValue s$红包分割后 <$str(n$var)> s$红包角色名
mov s$item6 (<itemindex:6>
inc s$item6 <Img:lc_hongbao_01:25:10:1/@领取红包(6)>
inc s$item6 <Img:lc_qiang:100:250:1>
inc s$item6 <text:<$str(s$红包角色名)>的红包{scolor=151}:60:55>
inc s$item6 <text:恭喜发财,大吉大利{scolor=151}:35:175>)
inc s$itemList <$str(s$item6)>
 
;红包界面第7个红包
#if
large n$行会红包总数 6
#act
mov n$var 7
getListValue s$红包列表分割后 <$str(n$var)> s$红包7
pgExtractString | <$str(s$红包7)> s$红包分割后 n$红包分割数
mov n$var 2
getListValue s$红包分割后 <$str(n$var)> s$红包角色名
mov s$item7 (<itemindex:7>
inc s$item7 <Img:lc_hongbao_01:25:10:1/@领取红包(7)>
inc s$item7 <Img:lc_qiang:100:250:1>
inc s$item7 <text:<$str(s$红包角色名)>的红包{scolor=151}:60:55>
inc s$item7 <text:恭喜发财,大吉大利{scolor=151}:35:175>)
inc s$itemList <$str(s$item7)>
 
;红包界面第8个红包
#if
large n$行会红包总数 7
#act
mov n$var 8
getListValue s$红包列表分割后 <$str(n$var)> s$红包8
pgExtractString | <$str(s$红包8)> s$红包分割后 n$红包分割数
mov n$var 2
getListValue s$红包分割后 <$str(n$var)> s$红包角色名
mov s$item8 (<itemindex:8>
inc s$item8 <Img:lc_hongbao_01:25:10:1/@领取红包(8)>
inc s$item8 <Img:lc_qiang:100:250:1>
inc s$item8 <text:<$str(s$红包角色名)>的红包{scolor=151}:60:55>
inc s$item8 <text:恭喜发财,大吉大利{scolor=151}:35:175>)
inc s$itemList <$str(s$item8)>
 
 
[@领取红包]
#if
#act
;取出单个红包的数据
mov n$var <$scriptParam1>
getListValue s$红包列表分割后 <$str(n$var)> s$点的红包
pgExtractString | <$str(s$点的红包)> s$红包分割后 n$红包分割数
;取出红包的金额和数量
mov n$var 1
getListValue s$红包分割后 <$str(n$var)> s$点的红包时间戳
mov n$var 3
getListValue s$红包分割后 <$str(n$var)> s$点的红包金额
mov n$var 4
getListValue s$红包分割后 <$str(n$var)> s$点的红包数量
mov n1 <$str(s$点的红包金额)>
mov n2 <$str(s$点的红包数量)>
 
;随机获得红包奖励
;如果红包数量大于1,领取后更新该红包
#if
large n2 1
;领过的红包不能再领
not checkContainsText t$自己领过的红包列表 s$点的红包时间戳
#act
div n$当前平均值 n1 n2
mul n$当前平均值的2倍 n$当前平均值 2
;一个行会红包只能再领2次时,最后1个玩家至少可以领取1个货币
dec n$当前平均值的2倍 1
movr n$随机红包领取值 1 n$当前平均值的2倍
dec n1 n$随机红包领取值
dec n2 1
mov s1 <$str(s$红包分割后_1)>|<$str(s$红包分割后_2)>|<$str(n1)>|<$str(n2)>|
mov s$红包列表 <$guild2(行会红包)>
ansiReplaceText s$红包列表 <$str(s$点的红包)> <$str(s1)>
calcVar guild2 行会红包 = <$str(s$红包列表)>
gameGird + n$随机红包领取值
sendtipsmsg 恭喜你抢到了<$str(n$随机红包领取值)>灵符的红包
mov s1 <$str(t$自己领过的红包列表)>
inc s1 <$str(s$点的红包时间戳)>|
mov t$自己领过的红包列表 <$str(s1)>
goto @main
 
;一个行会红包只能再领1次时,领取后删除该红包
#if
equal n2 1
;自己领过的红包不能再领
not checkContainsText t$自己领过的红包列表 s$点的红包时间戳
#act
mov s$tmp
mov s$红包列表 <$guild2(行会红包)>
ansiReplaceText s$红包列表 <$str(s$点的红包)>: s$tmp
calcVar guild2 行会红包 = <$str(s$红包列表)>
gameGird + n1
sendtipsmsg 恭喜你抢到了<$str(n1)>灵符的红包
goto @main
 
 
[@返还过期红包]
;循环取出自己发出的红包
#act
pgExtractString | <$str(t$自己发出的红包列表)> s1 n1
mov n$红包计数器 1
 
;循环取出自己发红包列表中红包的时间戳
#if loop n1
#act
;取出时间戳
mov n$var <$str(n$红包计数器)>
getListValue s1 <$str(n$var)> s$红包的时间戳
goto @过期处理
inc n$红包计数器 1
 
;返还过期的红包
#if
large u$过期返还的红包金额 0
#act
messageBox 您发出的行会红包超过24小时仍未领完\现将未领取的红包退还\共退还<$str(u$过期返还的红包金额)>灵符
gameGird + u$过期返还的红包金额
sendMsg 6 你获得了退还的<$str(u$过期返还的红包金额)>灵符
mov u$过期返还的红包金额 0
 
 
[@过期处理]
;根据时间戳判断该红包是否过期
#act
mov n$var1 <$timeStamp>
mov n$var2 <$str(s$红包的时间戳)>
dec n$var1 n$var2
div n$发出多少小时 n$var1 3600
 
#if
not small n$发出多少小时 24
#act
;从发红包数据中删除该红包
mov s$tmp
ansiReplaceText t$自己发出的红包列表 <$str(s$红包的时间戳)>| s$tmp
goto @找出仍在行会红包中的
 
;过期并且依然存在于行会红包中的,找出来
[@找出仍在行会红包中的]
#act
;获取全部的行会红包
mov s$红包列表含已领取 <$guild2(行会红包)>
pgExtractString : s$红包列表含已领取 s$红包列表含已领取分割后 n$行会红包总数
 
#if
checkContainsText s$红包列表含已领取 s$红包的时间戳
#act
mov n$红包计数器2号 1
;循环取出列表中红包们的时间戳
#if loop n$行会红包总数
#act
;取出红包
mov n$var <$str(n$红包计数器2号)>
getListValue s$红包列表含已领取分割后 <$str(n$var)> s$红包
pgExtractString | <$str(s$红包)> s$红包分割后 n$红包分割后
;取出红包的时间戳
mov n$var 1
getListValue s$红包分割后 <$str(n$var)> s$行会红包的时间戳
;取出红包的红包金额
mov n$var 3
getListValue s$红包分割后 <$str(n$var)> s$行会红包金额
goto @处理仍在行会红包中的
inc n$红包计数器2号 1
 
 
;将红包余额存个人变量,再从行会红包中删除
[@处理仍在行会红包中的]
#if
CompareText s$红包的时间戳 s$行会红包的时间戳
#act
;将红包余额存变量
mov n$var <$str(s$行会红包金额)>
inc u$过期返还的红包金额 n$var
;从行会红包中删除该红包
mov s$tmp
mov s$红包列表 <$guild2(行会红包)>
ansiReplaceText s$红包列表 <$str(s$红包)>: s$tmp
calcVar guild2 行会红包 = <$str(s$红包列表)>
 
 
;自己领红包数据中,删除时间超过24小时的红包
[@更新领红包数据]
;循环取出自己领取的红包
#act
pgExtractString | <$str(t$自己领过的红包列表)> s1 n1
mov n$红包计数器 1
 
;循环取出自己领取红包列表中红包的时间戳
#if loop n1
#act
;取出时间戳
mov n$var <$str(n$红包计数器)>
getListValue s1 <$str(n$var)> s$红包的时间戳
goto @领红包过期处理
inc n$红包计数器 1
 
 
[@领红包过期处理]
;根据时间戳判断该红包是否过期
#act
mov n$var1 <$timeStamp>
mov n$var2 <$str(s$红包的时间戳)>
dec n$var1 n$var2
div n$发出多少小时 n$var1 3600
 
#if
not small n$发出多少小时 24
#act
;从领红包数据中删除该红包
mov s$tmp
ansiReplaceText t$自己领过的红包列表 <$str(s$红包的时间戳)>| s$tmp
 
 
 
;..\Mir200\Envir\MapQuest_def\QManage.txt
[@Login]
#if
;登陆时返还过期红包
#call [\行会红包\行会红包.txt] @返还过期红包
;登陆时,自己领红包数据中,删除时间超过24小时的红包
#call [\行会红包\行会红包.txt] @更新领红包数据
 
;每日首次登陆时重置每日数据
#if
CHECKLOGINCOUNT = 1
#ACT
mov u$今日剩余可发灵符 10000000

由 chenjun 更新于 超过 2 年 之前 · 19 修订