当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

单机传奇服务端添加充值道具元宝商城商品与充值NPC脚本配置完整教程

热度:
你已有架设经验,"添加充值道具"在单机版里通常指两件事:①在服务端物品库新建一种可用元宝购买的道具(装备/消耗品/礼包),②把它挂到元宝商城NPC或充值NPC供角色花元宝购买。以下按Hero/Blue/GOM主流引擎说明。

一、在物品数据库新建充值可买道具(StdItems.DB)

若只是把已有装备挂商城卖可跳过这步,要加全新命名道具(如"首充大礼包""元宝药水")需先入库。

1.打开BDEAdministrator→连HeroDB→打开StdItems.DB。
2.找一行空白记录或复制近似物品(如复制"祝福油"做消耗品,复制"裁决之杖"做武器)。
3.关键字段修改:
•Name:道具显示名,如首充大礼包(须唯一,不带特殊符号)

•Shape:外观编号(武器/衣服对应职业外观,消耗品一般0或参照原版)

-Looks(部分版叫Appr):图标格号,对应客户端Data\Items.wil里的帧序号
•Dura/DurMax:耐久

•AC/DC/MC/SC/NeedLevel等:按你要的属性填

-Price:NPC售价(金币价,元宝购买可不依赖它,但建议填个参考值)
•Stock:一般填0(不限制商店库存)

4.Ctrl+S保存→重启M2或重读物品数据。

图标素材:用WIL编辑器打开客户端Data\Items.wil导出某格改色再导回未占用格,记下格号填Looks字段。若懒得改图可直接复用已有图标。

二、添加元宝商城/充值NPC(花元宝购买道具)

方式A:普通元宝商人NPC(最常用,单机推荐)

①注册NPC
打开MirServer\Mir200\Envir\MerChant.txt(有的叫Merchants.txt)末尾加:

元宝商城0330270元宝商城04500

参数含义:脚本文件名地图号(X:330Y:270)显示名方向外观码预留预留。放比奇安全区附近方便测试(地图0=比奇)。

②写NPC脚本
在MirServer\Mir200\Envir\Market_Def\新建元宝商城-0.txt,内容示例:

;=====主页面=====
[@main]
#SAY
欢迎来到元宝商城!用元宝兑换以下物品:\\
<◆首充大礼包(888元宝) /@BuyGift>\
<◆随机传送石×10(200元宝) /@BuyRnd>\
<◆沃玛戒指(1500元宝) /@BuyWoMa>\
<离开/@exit>

;=====购买首充大礼包=====
[@BuyGift]
#IF
CHECKGAMEGOLD>887;检测元宝是否足够(实际需>=888写>887)
#ACT
TAKEGAMEGOLD888;扣除元宝
GIVE首充大礼包1
SENDMSG6购买成功,获得首充大礼包!
BREAK
#ELSEACT
#SAY
元宝不足,需要888元宝!\<返回/@main>

;=====购买随机传送石×10=====
[@BuyRnd]
#IF
CHECKGAMEGOLD>199
#ACT
TAKEGAMEGOLD200
GIVE随机传送石10
SENDMSG6购买成功,获得随机传送石×10!
BREAK
#ELSEACT
#SAY
元宝不足!\<返回/@main>

;=====购买沃玛戒指=====
[@BuyWoMa]
#IF
CHECKGAMEGOLD>1499
#ACT
TAKEGAMEGOLD1500
GIVE沃玛戒指1
SENDMSG6购买成功,获得沃玛戒指!
BREAK
#ELSEACT
#SAY
元宝不足!\<返回/@main>


保存→M2点【控制】→【重新加载NPC脚本】或输@ReloadNPC。进游戏去找NPC测试购买。

说明:CHECKGAMEGOLD检测元宝(GameGold),TAKEGAMEGOLD扣元宝。GIVE物品名数量的物品名须与StdItems.DB中Name字段完全一致(含空格括号)。

方式B:标准商城窗口(部分引擎支持)

GOM/GEE引擎支持弹标准商城购框,在脚本中用:

OPENSHOP1

其中Shop编号对应Mir200\Envir\Shop\下1.sop(文本格式写明物品名+元宝价),较适合批量商品。Hero老引擎一般只用方式A。

三、添加"充值使者"(模拟充值领元宝+NPC买道具二合一)

很多单机版喜欢做一个点一下就给元宝再引导去商城的NPC:

MerChant.txt加:

充值使者0328268充值使者0800


Market_Def\充值使者-0.txt:

[@main]
你说\\
<领取测试元宝(10万) /@getYG>\
<前往元宝商城购买道具 /@goMall>\
<离开/@exit>

[@getYG]
#IF
#ACT
GAMEGOLD+100000
SENDMSG6成功获得100000元宝,快去商城逛逛!
BREAK

[@goMall]
#IF
#ACT
MapMove0330270
BREAK


四、设置新建角色初始元宝(方便测试商城)

打开MirServer\Mir200\!Setup.txt(或Setup.ini)搜:

StartGameGold=0

改为StartGameGold=10000(新号登录自带元宝数),保存重启M2。部分版本在Mir200\Envir\Charge.ini设DefaultPoint=数值。

五、排错

•NPC不显示—MerChant.txt地图号错或坐标在障碍格,外观码先填0试;脚本文件名须与Market_Def下文件名前缀匹配(含地图号后缀)。

-点购买提示元宝不足但明明有—CHECKGAMEGOLD条件写错(应>需付-1),或TAKEGAMEGOLD写成TAKEGOLD(那是扣金币);确认你改的是GameGold不是BindGold(绑定元宝用CHECKBINDGAMEGOLD/TAKEBINDGAMEGOLD)。
-给完物品不显示/给不了—StdItems.DB里物品Name和你GIVE写的不一致(常见差空格如"沃玛戒指"vs"沃玛戒指"),去数据库确认精确名称。
•M2报脚本行错—Notepad++检查有无中文引号、漏写#ACT/#SAY、@标签拼写错。

-商城窗口弹空—GOM的.sop文件物品名不对或未放对应Shop目录,先验证方式A脚本能买再转标准商城。
[顶部]