MirCoding

[996传奇脚本] 996PC端,商行快速交易脚本,实现NPC和快捷命令快速交易功能。(新NPC面板写法)

  • 相关图片
  • 视频演示

简要介绍:

游戏中的商人和玩家之间的交易变得更简单快捷,商人可以通过商人专属面板进行快速出售货币给其他玩家,并保存完整的交易记录,包括给谁?多给少?什么时候给的?同时玩家也可以通过快捷交易命令@发货给商行的玩家,实现快速交易,另外每笔交易记录都有总账保存(玩家无法操作),GM随时都可以查看,在纠纷时有据可依,解决不必要的矛盾(商行老板和玩家上方必须同时在线才能实现交易流程)。

涉及变量及参数:

先通过[变量查询器]查看自己版本中变量是否有冲突,代码中根据自己的实际情况进行修改变量名称。

# 私人变量 自定义变量 自定义命令
1 S10 VAR Integer HUMAN 今日累计发出 @UserCmd56
2 S11 VAR Integer HUMAN 历史合计发出
3 S28
4 S30
5 P9
5 N10
5 N28

Mirserver\Mir200\Envir\Market_Def\QFunction-0.txt

玩家通过快捷命令@发货 商人名字 数量,给在线的商行玩家进行快速交易,判断玩家是否为商行人员、是否在线、金额大小等信息,同时满足,便可快速交易,并记录到商行玩家的收货记录查询里,可以随时查看,以下为部分脚本示例,仅供参考,更多请下载完整脚本查看。


[@UserCmd56]
;如果收货人名字为空,金额为0,提示格式错误
#IF
EQUAL S30
#ACT
SENDMSG 6 格式错误!格式:@发货<$STR(S30)>玩家名字<$STR(S30)>数量!
MOV S30
break

#IF
SMALL P9 1
#ACT
messagebox 发货金额最低100元宝,最高1亿元宝!
MOV P9
BREAK

;不能给自己发
#IF
EQUAL S30 <$USERNAME>
#ACT
messagebox 对不起,不能输入自己的名字!
MOV S30
BREAK

;不在线不能发
#IF
<$STR(S30)>.checkonline
#ACT 
MOV S11 <$USERNAME>
#ELSEACT
messagebox 对不起,输入的玩家不在线,请核对输入的名字是否正确!
MOV S30
MOV P9
BREAK

;接受数量不能大于1亿小于100
#IF
LARGE P9 100000000
#ACT
messagebox  对不起,数量最多只能输入1亿!
MOV S30
MOV P9
BREAK

#IF
SMALL P9 100
#ACT
messagebox 对不起,数量最少只能输入100!
MOV S30
MOV P9
BREAK

;检测自身元宝余额
#IF
CHECKGAMEGOLD < <$STR(P9)>
#ACT
messagebox 对不起,您的元宝数量不够<$STR(P9)>个!
MOV S30
MOV P9
BREAK
......

部分脚本代码展示.txt

通过多级脚本,对指定的传奇在线玩家进行发货触发,包含了对方名字、金额等信息,并进行保存记录,同时商行玩家可以在线查看发出的历史数据(包括接收到的,没有意义列举),以下为部分脚本示例,仅供参考,更多请下载完整脚本查看。


[@确定发货]
#IF
<$STR(S28)>.checkonline
#ACT
<$STR(S28)>.messagebox 商人{【<$STR(S29)>】/fcolor=251}已发货给你元宝数量:{<$STR(N28)>/fcolor=249}
messagebox 玩家{【<$STR(S28)>】/fcolor=2451}已收到给你元宝数量:{<$STR(N28)>/fcolor=249}
GAMEGOLD - <$STR(N28)>
<$STR(S28)>.GAMEGOLD + <$STR(N28)>
;这里改成自定义变量
CALCVAR HUMAN 今日累计发出 + <$STR(N28)>
SAVEVAR HUMAN 今日累计发出
CALCVAR HUMAN 历史合计发出 + <$STR(N28)>
SAVEVAR HUMAN 历史合计发出
;下面把发货记录保存到文档中
AddTextListEx ..\QuestDiary\数据文件\发货数据\商人<$username>发送记录查询.txt <$STR(S28)>|<$STR(N28)>|<$YEAR>年<$MONTH>月<$DAY>日-<$HOUR>-<$MINUTE>-<$SECOND> 0 1
;后台记录,不可操作,方便GM在纠纷中随时查看
AddTextListEx ..\QuestDiary\数据文件\发货数据\商人<$username>发送记录查询(总).txt <$STR(S28)>|<$STR(N28)>|<$YEAR>年<$MONTH>月<$DAY>日-<$HOUR>-<$MINUTE>-<$SECOND> 0 1MOV S10
#elseact
messagebox 人物不在线!
break

[@发货记录查询]
#IF
#ACT
GetTextLineCount ..\QuestDiary\数据文件\发货数据\商人<$username>发送记录查询.txt N$条数
mov p1 0
while p1 < <$str(N$条数)>
GetListStringEx ..\QuestDiary\数据文件\发货数据\商人<$username>发送记录查询.txt <$str(p1)> S$发货内容列 |
inc S$显示发货记录 |children={fahuo_2_<$str(p1)>_1,fahuo_2_<$str(p1)>_2,fahuo_2_<$str(p1)>_3,fahuo_2_<$str(p1)>_4}|width=370|height=12|y=<$str(p2)>>
inc S$显示发货记录 _1|x=0|color=70|size=15|text=<$str(p1)>>
inc S$显示发货记录 _2|x=30|color=251|size=15|text=<$str(S$发货内容列0)>>
inc S$显示发货记录 _3|x=120|color=254|size=15|text=<$str(S$发货内容列1)>>
inc S$显示发货记录 _4|x=190|color=250|size=15|text=<$str(S$发货内容列2)>>
inc s$显示发货记录fahuo fahuo_2_<$str(p1)>,
inc p1 1
endwhile
MOV s$发货记录 
inc s$发货记录 
inc s$发货记录 
inc s$发货记录 
inc s$发货记录 
inc s$发货记录 }|x=20|y=35|width=365|height=125|direction=1|margin=6|bounce=0|cantouch=1|wil=newopui|Slider=1|Sdupnimg=1453|Sdupmimg=1454|Sduppimg=1455|Sddwnimg=1456|Sddwmimg=1457|Sddwpimg=1458|Sdbg=1468|Sdnimg=1444|Sdmimg=1445|Sdpimg=1446|reload=0>
inc S$发货记录 <$str(s$显示发货记录)>
#SAY 
<$str(s$发货记录)>
......

功能文件列表:

  • 安装说明.txt
  • Mir200\Envir\MerChant.txt
  • Mir200\Envir\UserCmds.txt
  • Mir200\Envir\Market_Def\QFunction-0.txt
  • Mir200\Envir\Market_Def\功能\商人发货-3.txt
  • Mir200\Envir\MapQuest_Def\QManage.txt
  • Mir200\Envir\Market_Def\QManage.txt
  • Mir200\Envir\Robot_def\AutoRunRobot.txt
  • Mir200\Envir\Robot_def\RobotManage.txt
  • Mir200\Envir\QuestDiary\数据文件\发货数据\发货记录.txt
  • Mir200\Envir\QuestDiary\元宝商人\商人列表.txt

安装说明:

使用前务必通过变量查询工具查看自己版本中的变量是否与该脚本冲突,若有冲突自行更换即可。
1、MerChant.txt 添加相关NPC坐标信息。
2、商人可以在线发送货币给其他玩家,其他玩家也可以通过命令@发货 商人名 数量 直接将货币发货给商人,实现快速交易。
3、添加脚本的时候务必查看自己当前版本中的变量和定时器是否有冲突,如果有需要换一个未占用的。
4、商人可以随时查看自己的发货和收货的交易记录,记录了交易人名、数量、时间,也可以一键快速清空。v 5、特别注意:该脚本只适合“新NPC面板使用”,老面板无法正常显示(改成老面板较简单可自行修改)。
6、其他相关请查看下载的脚本文件和查看演示图片及视频了解。

微信二维码