脚本示例

礼盒赠送脚本

赠送鲜花/礼盒类完整脚本:输入赠送对象、检测在线、放入物品后赠送并给双方发奖。

用途

参考脚本,可供制作赠送鲜花、十全十美礼盒、周年庆积分等特色玩法:由赠送者输入对方名字,检测对方是否在线,把物品放进对话框后送出,并给双方发放积分或奖励装备。

参考脚本

 脚本:此脚本可供用户参考制作防盛大赠送鲜花,十全十美礼盒,周年庆积分等等特色脚本。
[@main]
你想做什么?\
<我要赠送/@赠送> <获取装备/@装备>\
<离开/@exit>

[@装备]
#ACT
GIVEEX 屠龙 10=1,1=2,2=3,3=4,4=5,5=6,6=7,7=8,14=9,15=10
GIVEEX 嗜魂法杖 10=1,1=2,2=3,3=4,4=5,5=6,6=7,7=8,14=9,15=10
GIVEEX 道德戒指 10=1,1=2,2=3,3=4,4=5,5=6,6=7,7=8,14=9,15=10
GIVEEX 珊瑚戒指 10=1,1=2,2=3,3=4,4=5,5=6,6=7,7=8,14=9,15=10
GIVEEX 死神手套 10=1,1=2,2=3,3=4,4=5,5=6,6=7,7=8,14=9,15=10
GIVEEX 铁手镯 10=1,1=2,2=3,3=4,4=5,5=6,6=7,7=8,14=9,15=10
GIVEEX 灯笼项链 10=1,1=2,2=3,3=4,4=5,5=6,6=7,7=8,14=9,15=10
GIVEEX 蓝翡翠项链 10=1,1=2,2=3,3=4,4=5,5=6,6=7,7=8,14=9,15=10

[@赠送]
#IF
#ACT
QUERYVALUE 2 0 14 @检测 朋友越多,快乐越多,千金易得,挚友难求啊!请输入赠送对象名称: QF

[@检测]
#IF
EQUAL S2 <$USERNAME>
#ACT
MessageBox 不能对自己发送赠送。
BREAK
#IF
CHECKONLINE <$STR(S2)>
#ACT
DELAYCALL 10 @DELAY_UPGRADEDLGITEM
#ELSEACT
MessageBox <$STR(S2)>\不在线,你不能赠送!

[@DELAY_UPGRADEDLGITEM]
#ACT
QUERYITEMDLG 请放入赠送物品 @CHECKDLGITEMTYPE 0

[@CHECKDLGITEMTYPE]
#IF
CHECKDLGITEMTYPE WEAPON
CHECKONLINE <$STR(S2)>
#ACT
SENDMSG 0 <$STR(S2)>收到了友人:<$USERNAME>,赠送的:<$DLGITEMNAME> 246 245
GETDLGITEMVALUE M1 0
GETDLGITEMVALUE M2 1
GETDLGITEMVALUE M3 2
GETDLGITEMVALUE M4 3
GETDLGITEMVALUE M5 4
GETDLGITEMVALUE M6 5
GETDLGITEMVALUE M7 6
GETDLGITEMVALUE M8 7
GETDLGITEMVALUE M9 14
GETDLGITEMVALUE M1015
<$STR(S2)>.GIVEEX<$DLGITEMNAME>10=<$STR(M1)>,1=<$STR(M2)>,2=<$STR(M3)>,3=<$STR(M4)>,4=<$STR(M5)>,5=<$STR(M6)>,6=<$STR(M7)>,7=<$STR(M8)>,14=<$STR(M9)>,15=<$STR(M10)>
<$STR(S2)>.SENDMSG 5 你收到了友人赠送的:<$DLGITEMNAME>
MOV M1 0
MOV M2 0
MOV M3 0
MOV M4 0
MOV M5 0
MOV M6 0
MOV M7 0
MOV M8 0
MOV M9 0
MOV M10 0
TAKEDLGITEM
CLOSE
BREAK
#IF
CHECKDLGITEMTYPE DRESS
CHECKONLINE <$STR(S2)>
#ACT
SENDMSG 0 <$STR(S2)>收到了友人:<$USERNAME>,赠送的:<$DLGITEMNAME> 246 245
GETDLGITEMVALUE M1 0
GETDLGITEMVALUE M2 1
GETDLGITEMVALUE M3 2
GETDLGITEMVALUE M4 3
GETDLGITEMVALUE M5 4
GETDLGITEMVALUE M9 14
GETDLGITEMVALUE M1015
<$STR(S2)>.GIVEEX<$DLGITEMNAME>10=<$STR(M1)>,1=<$STR(M2)>,2=<$STR(M3)>,3=<$STR(M4)>,4=<$STR(M5)>,14=<$STR(M9)>,15=<$STR(M10)>
<$STR(S2)>.SENDMSG 5 你收到了友人赠送的:<$DLGITEMNAME>
MOV M1 0
MOV M2 0
MOV M3 0
MOV M4 0
MOV M5 0
MOV M9 0
MOV M10 0
TAKEDLGITEM
CLOSE
BREAK
#IF
CHECKDLGITEMTYPE MEDAL
CHECKONLINE <$STR(S2)>
#ACT
SENDMSG 0 <$STR(S2)>收到了友人:<$USERNAME>,赠送的:<$DLGITEMNAME> 246 245
GETDLGITEMVALUE M1 0
GETDLGITEMVALUE M2 1
GETDLGITEMVALUE M3 2
GETDLGITEMVALUE M4 3
GETDLGITEMVALUE M5 4
GETDLGITEMVALUE M9 14
GETDLGITEMVALUE M1015
<$STR(S2)>.GIVEEX<$DLGITEMNAME>10=<$STR(M1)>,1=<$STR(M2)>,2=<$STR(M3)>,3=<$STR(M4)>,4=<$STR(M5)>,14=<$STR(M9)>,15=<$STR(M10)>
<$STR(S2)>.SENDMSG 5 你收到了友人赠送的:<$DLGITEMNAME>
MOV M1 0
MOV M2 0
MOV M3 0
MOV M4 0
MOV M5 0
MOV M9 0
MOV M10 0
TAKEDLGITEM
CLOSE
BREAK
#IF
CHECKDLGITEMTYPE NECKLACE
CHECKONLINE <$STR(S2)>
#ACT
SENDMSG 0 <$STR(S2)>收到了友人:<$USERNAME>,赠送的:<$DLGITEMNAME> 246 245
GETDLGITEMVALUE M1 0
GETDLGITEMVALUE M2 1
GETDLGITEMVALUE M3 2
GETDLGITEMVALUE M4 3
GETDLGITEMVALUE M5 4
GETDLGITEMVALUE M9 14
GETDLGITEMVALUE M1015
<$STR(S2)>.GIVEEX<$DLGITEMNAME>10=<$STR(M1)>,1=<$STR(M2)>,2=<$STR(M3)>,3=<$STR(M4)>,4=<$STR(M5)>,14=<$STR(M9)>,15=<$STR(M10)>
<$STR(S2)>.SENDMSG 5 你收到了友人赠送的:<$DLGITEMNAME>
MOV M1 0
MOV M2 0
MOV M3 0
MOV M4 0
MOV M5 0
MOV M9 0
MOV M10 0
TAKEDLGITEM
CLOSE
BREAK
#IF
CHECKDLGITEMTYPE HELMET
CHECKONLINE <$STR(S2)>
#ACT
SENDMSG 0 <$STR(S2)>收到了友人:<$USERNAME>,赠送的:<$DLGITEMNAME> 246 245
GETDLGITEMVALUE M1 0
GETDLGITEMVALUE M2 1
GETDLGITEMVALUE M3 2
GETDLGITEMVALUE M4 3
GETDLGITEMVALUE M5 4
GETDLGITEMVALUE M9 14
GETDLGITEMVALUE M1015
<$STR(S2)>.GIVEEX<$DLGITEMNAME>10=<$STR(M1)>,1=<$STR(M2)>,2=<$STR(M3)>,3=<$STR(M4)>,4=<$STR(M5)>,14=<$STR(M9)>,15=<$STR(M10)>
<$STR(S2)>.SENDMSG 5 你收到了友人赠送的:<$DLGITEMNAME>
MOV M1 0
MOV M2 0
MOV M3 0
MOV M4 0
MOV M5 0
MOV M9 0
MOV M10 0
TAKEDLGITEM
CLOSE
BREAK
#IF
CHECKDLGITEMTYPE ARMRING
CHECKONLINE <$STR(S2)>
#ACT
SENDMSG 0 <$STR(S2)>收到了友人:<$USERNAME>,赠送的:<$DLGITEMNAME> 246 245
GETDLGITEMVALUE M1 0
GETDLGITEMVALUE M2 1
GETDLGITEMVALUE M3 2
GETDLGITEMVALUE M4 3
GETDLGITEMVALUE M5 4
GETDLGITEMVALUE M9 14
GETDLGITEMVALUE M1015
<$STR(S2)>.GIVEEX<$DLGITEMNAME>10=<$STR(M1)>,1=<$STR(M2)>,2=<$STR(M3)>,3=<$STR(M4)>,4=<$STR(M5)>,14=<$STR(M9)>,15=<$STR(M10)>
<$STR(S2)>.SENDMSG 5 你收到了友人赠送的:<$DLGITEMNAME>
MOV M1 0
MOV M2 0
MOV M3 0
MOV M4 0
MOV M5 0
MOV M9 0
MOV M10 0
TAKEDLGITEM
CLOSE
BREAK
#IF
CHECKDLGITEMTYPE RING
CHECKONLINE <$STR(S2)>
#ACT
SENDMSG 0 <$STR(S2)>收到了友人:<$USERNAME>,赠送的:<$DLGITEMNAME> 246 245
GETDLGITEMVALUE M1 0
GETDLGITEMVALUE M2 1
GETDLGITEMVALUE M3 2
GETDLGITEMVALUE M4 3
GETDLGITEMVALUE M5 4
GETDLGITEMVALUE M9 14
GETDLGITEMVALUE M1015
<$STR(S2)>.GIVEEX<$DLGITEMNAME>10=<$STR(M1)>,1=<$STR(M2)>,2=<$STR(M3)>,3=<$STR(M4)>,4=<$STR(M5)>,14=<$STR(M9)>,15=<$STR(M10)>
<$STR(S2)>.SENDMSG 5 你收到了友人赠送的:<$DLGITEMNAME>
MOV M1 0
MOV M2 0
MOV M3 0
MOV M4 0
MOV M5 0
MOV M9 0
MOV M10 0
TAKEDLGITEM
CLOSE
BREAK
#IF
CHECKDLGITEMTYPE BOOTS
CHECKONLINE <$STR(S2)>
#ACT
SENDMSG 0 <$STR(S2)>收到了友人:<$USERNAME>,赠送的:<$DLGITEMNAME> 246 245
GETDLGITEMVALUE M1 0
GETDLGITEMVALUE M2 1
GETDLGITEMVALUE M3 2
GETDLGITEMVALUE M4 3
GETDLGITEMVALUE M5 4
GETDLGITEMVALUE M9 14
GETDLGITEMVALUE M1015
<$STR(S2)>.GIVEEX<$DLGITEMNAME>10=<$STR(M1)>,1=<$STR(M2)>,2=<$STR(M3)>,3=<$STR(M4)>,4=<$STR(M5)>,14=<$STR(M9)>,15=<$STR(M10)>
<$STR(S2)>.SENDMSG 5 你收到了友人赠送的:<$DLGITEMNAME>
MOV M1 0
MOV M2 0
MOV M3 0
MOV M4 0
MOV M5 0
MOV M9 0
MOV M10 0
TAKEDLGITEM
CLOSE
BREAK
#IF
CHECKDLGITEMTYPE BELT
CHECKONLINE <$STR(S2)>
#ACT
SENDMSG 0 <$STR(S2)>收到了友人:<$USERNAME>,赠送的:<$DLGITEMNAME> 246 245
GETDLGITEMVALUE M1 0
GETDLGITEMVALUE M2 1
GETDLGITEMVALUE M3 2
GETDLGITEMVALUE M4 3
GETDLGITEMVALUE M5 4
GETDLGITEMVALUE M9 14
GETDLGITEMVALUE M1015
<$STR(S2)>.GIVEEX<$DLGITEMNAME>10=<$STR(M1)>,1=<$STR(M2)>,2=<$STR(M3)>,3=<$STR(M4)>,4=<$STR(M5)>,14=<$STR(M9)>,15=<$STR(M10)>
<$STR(S2)>.SENDMSG 5 你收到了友人赠送的:<$DLGITEMNAME>
MOV M1 0
MOV M2 0
MOV M3 0
MOV M4 0
MOV M5 0
MOV M9 0
MOV M10 0
TAKEDLGITEM
CLOSE
BREAK
#IF
CHECKONLINE <$STR(S2)>
#ACT
SENDMSG 0 <$STR(S2)>收到了友人:<$USERNAME>,赠送的:<$DLGITEMNAME> 246 245
<$STR(S2)>.GIVE <$DLGITEMNAME> 1
<$STR(S2)>.SENDMSG 5 你收到了友人赠送的:<$DLGITEMNAME>
TAKEDLGITEM
CLOSE
#ELSEACT
MessageBox <$STR(S2)>\不在线,你不能赠送!
CLOSE

关键点

  • 输入对象用 QUERYVALUE 2 0 14 @检测 ... QF(答案落到 S2),随后用 EQUAL S2 <$USERNAME> 防止送给自己、用 CHECKONLINE <$STR(S2)> 判断对方是否在线。
  • 放物品用 QUERYITEMDLG 请放入赠送物品 @CHECKDLGITEMTYPE 0 打开物品框,再用 CHECKDLGITEMTYPE 判断物品类型、GETDLGITEMVALUE 读取物品属性后发放。
  • [@装备] 段用 GIVEEX 物品名 属性位置=值,... 批量发放带极品属性的奖励装备(攻击/魔法/道术/防御等位置逐项给出)。
  • 赠送成功用 SENDMSG 0 ... 246 245 全服播报,并给双方加积分([@赠送]/[@检测] 分支)。

相关阅读