人物商铺价格比例分两层处理。一层是给某个角色设购买折扣比例,例如全部商铺物品按90%收款,用引擎脚本命令控制;另一层是直接改某个物品的固定售价,例如把疗伤药从5元宝改成3元宝。两层不要混用,按比例命令会影响整个商铺结算,改单品价格只影响这一件。
GOM、GEE、Hero类引擎用SetShopItemPriceRate做人物级比例。命令格式为SetShopItemPriceRate 比例值,比例填1到100,100表示原价,90表示9折,50表示5折。该状态按人物生效,下线后清空,下次上线要重新在登录脚本设置。 想在大于100级角色进商铺享9折,QManage.txt或登录触发写:
[@Login]
IF
CheckLevelEx > 99
ACT
SetShopItemPriceRate 90
想按职业给不同比例,加CheckJob判断;按VIP给比例用CheckVipLevel或本服VIP变量;按转生给比例用转生检查命令。多个条件不要写在同一行互相覆盖,按从大到小判断,例如转生9折、VIP95折、普通100,脚本顺序为:
IF
CheckRelevelEx > 0
ACT
SetShopItemPriceRate 90
IF
CheckVipLevel 1
ACT
SetShopItemPriceRate 95
上面这样写会后覆盖前,实际只保留最后一个命中。要做叠加或取最优,用私有变量记录比例再只执行一次SetShopItemPriceRate,避免反复设置造成结算异常。
M2列表里单品打折开关要同步开。GOM、GEE进M2查看、列表信息二、商铺,逐物品有是否允许打折选项;Hero进M2查看、列表信息、其他设置、商铺物品列表,单品属性里开允许打折后,SetShopItemPriceRate才会对该物品按比例收。列表未开允许打折,脚本设了比例也可能只对该物品原价。新加物品后游戏内不立即显示,重启登录器或重读商铺;改已上架价格后玩家小退重进更稳。
直接改单品固定价格用文本文件。Hero、部分LEG在Mir200\Envir\ShopItemList.txt,每行对应一件,结构大致为分类、物品名、售价、库存、限购、图片等,改售价列保存后M2重读或重启。 GOM、GEE部分版本同样走M2商铺列表,少数版本用Shopping.txt、ShopConfig.txt、商铺列表.txt,以M2实际路径为准。 示例原行:
1001 疗伤药 5 999 0
改为3元宝:
1001 疗伤药 3 999 0
BLUE、网蓝分旧商铺和新商铺。M2查看、列表信息、其他功能管理,第一个商铺是补丁类旧商铺,第二个新商铺是盛大客户端类商铺。静态改价打开Mir200\Envir\ShopItemList.txt,行结构含物品类别、物品名称、Item.wil序号、出售价格、Deco.wil序号1、Deco.wil序号2、描述,蓝色数字位置即价格,直接改数值保存。 动态按人物比例调价时,BLUE若不支持SetShopItemPriceRate,采用删物品重加方案:M2商铺里先删除目标物品,改价格后再加入;玩家必须小退才能看到新价。不要只改文本不删M2缓存,否则线上仍按旧价。
NPC普通商店和人物商铺不是一套。Market_Def里的NPC用[goods]卖东西,价格写法是物品名加数值,例如金创药100 3,前面是基准、后面是倍数或售价依版本而定;BLUE买价在[goods]脚本控制,卖回给NPC的回收价在StdItems.db的Price字段改。 若只想让NPC整体涨价降价,改脚本[goods]数值或用NPC倍率变量;若想让商铺按人物比例打折,仍用SetShopItemPriceRate,不要把NPC商店和界面商铺搞混。
货币类型与元宝比例单独处理。商铺物品可设金币、元宝、绑定元宝、声望、经验等,M2商铺添加物品时货币类型要选对;改了人物购买比例只改变应付倍数,不改变货币种类。充值元宝与游戏内货币兑换在M2系统设置、货币参数或Setup.txt的YuanBaoRatio一类参数调整,例如YuanBaoRatio=100表示1单位充值币换100元宝,改完重启M2。 若商铺卖的是“100元宝充值卡”类道具,价格比例和充值到账比例要分开:SetShopItemPriceRate只让玩家买卡少花钱,实际充值到账还要改充值脚本和支付对照,避免比例命令把充值卡打折扣造成元宝超发。
按会员、转生、活动做差异化比例用登录脚本集中写。示例:普通玩家100,VIP1为95,VIP2为90,转生1以上为85,活动期间全部80但VIP和转生不再额外叠:
[@Login]
IF
CheckVar <$GLOBALSHOPACT> = 1
ACT
SetShopItemPriceRate 80
ELSEIF
CheckRelevelEx > 0
ACT
SetShopItemPriceRate 85
ELSEIF
CheckVipLevel 2
ACT
SetShopItemPriceRate 90
ELSEIF
CheckVipLevel 1
ACT
SetShopItemPriceRate 95
全局活动开关用全局变量或M2临时命令在活动开始/结束切换;活动结束要把相关角色重新跑登录脚本或执行SetShopItemPriceRate 100,否则下线前一直保持活动折扣。部分引擎不支持CheckVar全局直接这样写,用本服全局变量命令替换,逻辑不变。
重载与排错按现象处理。改ShopItemList.txt后M2有重读商铺就点重读,没有就重启M2和登录器;GOM、GEE改完列表信息二商铺通常重读或重启登录器即可。 设了SetShopItemPriceRate但没打折,先确认该物品在商铺列表允许打折,再确认登录脚本确实跑到该分支,用SendMsg输出现在比例调试;例如登录脚本加SENDMSG 6 当前商铺比例<$SHOPPRICERATE>,不同引擎变量名可能不同,按本引擎帮助查。玩家小退重进仍原价,检查是否多处脚本重复设置比例,后设置覆盖前设置;检查是否用了NPC商店而不是界面商铺,NPC不走SetShopItemPriceRate。BLUE动态改价不生效,检查是否只改文本未删M2原物品,是否未小退,是否新商铺和旧商铺用错模块。
批量调价用M2比改文本安全。Hero、GOM、GEE在商铺界面按分类检索,Ctrl多选改价后保存重读;全服统一涨价10%不要手工改每行,先导出物品名和原价到表格,按新价生成再导入,导入前备ShopItemList和M2商铺库。DBC版本改完StdItems只影响NPC回收和基础价,不影响商铺售价字段;商铺售价以ShopItemList或M2商铺列表为准。SQL版本商铺若在数据库,按物品ID更新price字段,更新后重载商铺模块,不要直接改文本又改库造成两边不一致。
防错误折扣的三条底线。第一,SetShopItemPriceRate只给可信条件触发,别对全部角色写固定90,后期调价要改脚本多处;第二,单品允许打折和全局比例分开测试,先关全局比例验证单品原价,再开全局验证折扣叠加是否符合预期;第三,充值卡、元宝、货币兑换、绑定元宝分文件记录,商铺比例命令、Setup元宝比例、NPC回收价三者改动后各用测试号买一次,确认实扣货币、到账数量、库存限购都正确再放玩家。
传奇人物商铺购买价格比例全局设置单品折扣脚本命令与M2可视化改价教程
来源:
作者:
点击:

