仙境传说RO:添加限购物品刷新物品库存教程
大家好我是艾西,在游戏中我们会有普通的基础装备那么必然就会有到顶的套装,往往可能一套到顶的套装就可能霸服。那么就需要GM去做游戏的设定以及限制,上一篇文章中我给大家讲述了如果创建NPC商人以及物品的添加以及设定价格,今天艾西跟大家分享下仙境传说RO中怎么添加限购物品以及刷新物品库存教学教程。
我们直接进入主题:
库存商店定义分为4个部分:地图,X坐标,Y坐标,NPC朝向
Marketshop (固定格式)
商店NPC名字 (这个名字不能有重复)
外观ID,道具ID:价格:库存{,道具ID:价格:库..}
Pandas服务端----npc----custom----tutorial目录test.ras 创建限购商人NPC
prontera,150,180,3 marketshop tab testmarketshop0 tab 726,714:1000:2,512:-1:20,513:-1:10
还是以普隆德拉(150,1 60)这个地方作为示例,朝向3 tab marketshop(固定格式) tab testmarketshop0(限购商人NPC名字) tab 726(精灵ID npc商人模型),714(贵金属):1000(售价):2(库存),512(苹果):-1(价格):20(库存),513(香蕉):-1(价格):10(库存)
注:价格-1为官方默认配置价格 15
回到游戏输入命令:@reloadscript (重新载入脚本)
这样我们的限购商人npc就算创建完成了,其实就是多了一个库存,跟创建商人NPC没有太大的差入。
限购商人NPC另外的一种定义方式:这种方式会告诉玩家每天只卖几个限购商品,然后每天点一下NPC自动刷新库存不需要手工添加
定义格式:- tab marketshop tab testmarketshop0 tab 726,714:1000
prontera, 152, 160,3 script 7 TestMarketshop1Npc 726,{
mes "[TestMarketshop1Npc]" ;
mes"我们每天限量销售2个<ITEM>华丽金属<INFO>714</INFO></ITEM>";
close2 ;
callshop” testmarketshop1" ;
end;
}
这种定义方式限购商人NPC不会出现在地图上,得点击NPC对话选择开启商店或是关闭商店。点击NPC时会告诉玩家商品限购两个会有对话以及提示,callshop(关闭商店NPC)
<ITEM>华丽金属<INFO>这个脚本是创建得超链接可以回到第四篇文章查看详细说明
脚本创建好后回到游戏输入命令:@reloadscript (重新载入脚本)
然后开始购买,会弹出限购的提示,当你买完后想再购买时会提示商品缺货,请稍后再来
那么在商品卖完后怎么让他刷新新的库存出来?这里就需要用到npcshopupdate这个命令:npcshopupdate "商店NPC名字",道具ID,价格,库存
prontera, 154, 160,3 tab script tab TestMarketshopRefresh tab 726,{
npctalk "商店刷新啦!
npcshopupdate "testmarketshop0" ,714,0,5;
npcshopupdate " testmarketshop0" ,512,0,5;
npcshopupdate "testmarketshop0" ,513,0,5;
npcshopupdate "tes tmarketshop1" ,714,0,5;
end;
}
Npctalk(npc说话用的是npctalk)
刷新的商品例714,0 0代表价格不变,后面填入库存
回到游戏输入命令:@reloadscript 加载脚本即可
prontera, 156,160,3 > script > TestMarketshop3Refresh- 4 M_ 04,{
mes
"请分别输入<ITEM>华丽金属< INFO> 714</ INFO>< / ITEM>的价格和数量" ;
next ;
input . @price;
input . @number ;
mes"价格是:”+. @price;
mes"数量是:”+ . @number;
mes"我将为您刷新";
close2;
npctalk "商店刷新啦! ";
npcshopupdate” tes tmarket shop0" ,714, . @price,. @number;
end ;
}
(脚本逻辑:input指令功能,弹窗让玩家输入数字或字符串 .@price变量 通过mes 把玩家输入的数据打出来。这个是可以让玩家指定刷新库存以及价格,这里大家知道就好了,自己开的话肯定是不可能让玩家这么玩的....hhhhhh 大家知道就好了)
我们也可以学习一下官方是怎么定义售卖华贵金属的限购NPC。
在Pandas服务端文件-----npc > re > merchants >Emperium Seller.txt 文档
(以下可作为参考,我们自己创建限制购买商人NPC创建定义逻辑以及官方的定义逻辑)
prt_ in,212,169,3 script- Guild Clerk 4 _M_ 04,{
if ( gettime(DT_ DAYOFWEEK) >= 1 && gettime(DT_ DAYOFWEEK) <= 6 && gettime(DT_HOUR) > >=18 && gettime(DT_ HOUR )<=23) {
mes”[Guild Clerk]";
mes "The Emperium to be distributed to the guild office today has arrived. If you want to purchase, please put as many as you want ~”;
next ;
(注释:The Emperium to be distributed to这句话的大概意思就是现在处于我们的xiao售时间你可以尽可能的去买,大家也可直接自行翻译)
mes”[Guild Clerk]";
mes "It seems that many people are looking for Emperium today. It's just a personal feling.”;
close2 ;
callshop "emp_ seller#slo" ;
end ;
}
(注释:gettime是获取服务器时间DT_ DAYOFWEEK返回时的星期几,这里表示的是星期一到星期六所以返回的是1-6,星期日是返回0 然后DT_HOUR是24小时制的小时数,18-23说明时间实在18点到23点之间。 整个if的逻辑定义就是如果是星期一到星期六并且小时是在18点到23点之间会执行 { 括号里面的 } 这段逻辑。 if的定义也比较简单,如果{}括号里面的条件为真就执行以上代码以end为一个总代码指令,否则的话执行一下代码)
mes”[Guild Clerk]";
mes"Our guild office actively supports the smooth gathering of adventurers." ;
next ;
mes "[Guild Clerk]";
mes"As part of that" ,
mes "we are selling a limited quantity of 100 <ITEM> Emperium< INFO> 714</INFO></ITEM> every day”;
mes"from ^0000ff18:00 to 23:59^000000 from ^0000ffMonday to Saturday^000000." ;
next;
mes "[Guild Clerk]";
mes' 'Please note that our guild office does not sell al1 the time because we have to run around to supply Emperium outside pof the hours .”
close ;
(注释:如果不是在这个时间段我们的office现在没有shou卖,因为我们要为了提供华贵金属我们要在外卖跑 这里它做了一个包装故事)
OnHour00 :
npcshopupdate” emp_ seller#s1o" ,714,0, 100;
end;
}
marketshop- emp_ seller#slo> FAKE_ NPC, 714: 1000000 : 100
(marketshop这是官方定义的一个专门卖华贵金属的NPC,价格是100万 库存100个,它通过emp_seller这个NPC来把商店打开)
OnHour00是一个标签 就是在每天的0点调用以下代码:
(他这边调用了一个npcshopupdate就是刷新时间在每天的0点刷新商品714的库存 0表示价格不边还是100wan 100表示库存)
以上代码就是官方定义售卖华贵金属的商人npc定义逻辑,算是把我们今天所说的创建限购npc 以及库存还有刷新时间全部定义完成了,大家可以学习参考
那么今天的分享教程就到这里啦我们下期再见! 我是驰网艾西
拥有一台服务器可以做很多有趣的事情!