• 仙境传说RO:添加限购物品刷新物品库存教程


    仙境传说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个华丽金属714";

    close2 ;

    callshop” testmarketshop1" ;

    end;

    }

    这种定义方式限购商人NPC不会出现在地图上,得点击NPC对话选择开启商店或是关闭商店。点击NPC时会告诉玩家商品限购两个会有对话以及提示,callshop(关闭商店NPC)

    华丽金属这个脚本是创建得超链接可以回到第四篇文章查看详细说明

    脚本创建好后回到游戏输入命令:@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

    "请分别输入华丽金属< INFO> 714< / 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 Emperium< INFO> 714> 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 以及库存还有刷新时间全部定义完成了,大家可以学习参考

    那么今天的分享教程就到这里啦我们下期再见! 我是驰网艾西

    拥有一台服务器可以做很多有趣的事情!

  • 相关阅读:
    RedisSearch深度解析:探索全文搜索的新境界
    [VNCTF2022]easyj4va
    Java的面向对象思想
    获取客户端请求IP及IP所属城市
    基于Springboot实现体质测试数据分析平台管理系统项目【项目源码+论文说明】计算机毕业设计
    sed去除文件中的引号
    计算机毕业设计Java演出票在线预定网站系统(源码+系统+mysql数据库+Lw文档)
    【极客时间-系列教程】深入剖析Kubernetes-预习篇 · 小鲸鱼大事记(二):崭露头角
    八大排序算法汇总(C语言实现)
    艾美捷衣霉素Tunicamycin 体内外研究&文献参考
  • 原文地址:https://blog.csdn.net/V13807970340/article/details/131106096