仙境傳說(shuō)RO:添加限購(gòu)物品刷新物品庫(kù)存教程

仙境傳說(shuō)RO:添加限購(gòu)物品刷新物品庫(kù)存教程
大家好我是艾西,在游戲中我們會(huì)有普通的基礎(chǔ)裝備那么必然就會(huì)有到頂?shù)奶籽b,往往可能一套到頂?shù)奶籽b就可能霸服。那么就需要GM去做游戲的設(shè)定以及限制,上一篇文章中我給大家講述了如果創(chuàng)建NPC商人以及物品的添加以及設(shè)定價(jià)格,今天艾西跟大家分享下仙境傳說(shuō)RO中怎么添加限購(gòu)物品以及刷新物品庫(kù)存教學(xué)教程。
我們直接進(jìn)入主題:
庫(kù)存商店定義分為4個(gè)部分:地圖,X坐標(biāo),Y坐標(biāo),NPC朝向
Marketshop (固定格式)
商店NPC名字 (這個(gè)名字不能有重復(fù))
外觀ID,道具ID:價(jià)格:庫(kù)存{,道具ID:價(jià)格:庫(kù)..}
Pandas服務(wù)端----npc----custom----tutorial目錄test.ras ?創(chuàng)建限購(gòu)商人NPC
prontera,150,180,3 marketshop tab testmarketshop0 tab 726,714:1000:2,512:-1:20,513:-1:10
?
還是以普隆德拉(150,1 60)這個(gè)地方作為示例,朝向3 tab marketshop(固定格式) tab testmarketshop0(限購(gòu)商人NPC名字) tab 726(精靈ID npc商人模型),714(貴金屬):1000(售價(jià)):2(庫(kù)存),512(蘋果):-1(價(jià)格):20(庫(kù)存),513(香蕉):-1(價(jià)格):10(庫(kù)存)
注:價(jià)格-1為官方默認(rèn)配置價(jià)格 15
?

?
回到游戲輸入命令:@reloadscript (重新載入腳本)
?



?
這樣我們的限購(gòu)商人npc就算創(chuàng)建完成了,其實(shí)就是多了一個(gè)庫(kù)存,跟創(chuàng)建商人NPC沒(méi)有太大的差入。
限購(gòu)商人NPC另外的一種定義方式:這種方式會(huì)告訴玩家每天只賣幾個(gè)限購(gòu)商品,然后每天點(diǎn)一下NPC自動(dòng)刷新庫(kù)存不需要手工添加
?

?
?
定義格式:- tab marketshop tab testmarketshop0 tab 726,714:1000
?
prontera, 152, 160,3 script 7 TestMarketshop1Npc 726,{
mes "[TestMarketshop1Npc]" ;
mes"我們每天限量銷售2個(gè)<ITEM>華麗金屬<INFO>714</INFO></ITEM>";
close2 ;
callshop” testmarketshop1" ;
end;
}
這種定義方式限購(gòu)商人NPC不會(huì)出現(xiàn)在地圖上,得點(diǎn)擊NPC對(duì)話選擇開(kāi)啟商店或是關(guān)閉商店。點(diǎn)擊NPC時(shí)會(huì)告訴玩家商品限購(gòu)兩個(gè)會(huì)有對(duì)話以及提示,callshop(關(guān)閉商店NPC)
<ITEM>華麗金屬<INFO>這個(gè)腳本是創(chuàng)建得超鏈接可以回到第四篇文章查看詳細(xì)說(shuō)明
腳本創(chuàng)建好后回到游戲輸入命令:@reloadscript (重新載入腳本)
?



然后開(kāi)始購(gòu)買,會(huì)彈出限購(gòu)的提示,當(dāng)你買完后想再購(gòu)買時(shí)會(huì)提示商品缺貨,請(qǐng)稍后再來(lái)
那么在商品賣完后怎么讓他刷新新的庫(kù)存出來(lái)?這里就需要用到npcshopupdate這個(gè)命令:npcshopupdate "商店NPC名字",道具ID,價(jià)格,庫(kù)存
?
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說(shuō)話用的是npctalk)
刷新的商品例714,0 ???0代表價(jià)格不變,后面填入庫(kù)存
回到游戲輸入命令:@reloadscript 加載腳本即可
prontera, 156,160,3 > script > TestMarketshop3Refresh- 4 M_ 04,{
mes
"請(qǐng)分別輸入<ITEM>華麗金屬< INFO> 714</ INFO>< / ITEM>的價(jià)格和數(shù)量" ;
next ;
input . @price;
input . @number ;
mes"價(jià)格是:”+. @price;
mes"數(shù)量是:”+ . @number;
mes"我將為您刷新";
close2;
npctalk "商店刷新啦! ";
npcshopupdate” tes tmarket shop0" ,714, . @price,. @number;
end ;
}
(腳本邏輯:input指令功能,彈窗讓玩家輸入數(shù)字或字符串 .@price變量 ?通過(guò)mes 把玩家輸入的數(shù)據(jù)打出來(lái)。這個(gè)是可以讓玩家指定刷新庫(kù)存以及價(jià)格,這里大家知道就好了,自己開(kāi)的話肯定是不可能讓玩家這么玩的....hhhhhh 大家知道就好了)
?

?
我們也可以學(xué)習(xí)一下官方是怎么定義售賣華貴金屬的限購(gòu)NPC。
在Pandas服務(wù)端文件-----npc > re > merchants >Emperium Seller.txt 文檔?
(以下可作為參考,我們自己創(chuàng)建限制購(gòu)買商人NPC創(chuàng)建定義邏輯以及官方的定義邏輯)
?
?
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這句話的大概意思就是現(xiàn)在處于我們的xiao售時(shí)間你可以盡可能的去買,大家也可直接自行翻譯)
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是獲取服務(wù)器時(shí)間DT_ DAYOFWEEK返回時(shí)的星期幾,這里表示的是星期一到星期六所以返回的是1-6,星期日是返回0 然后DT_HOUR是24小時(shí)制的小時(shí)數(shù),18-23說(shuō)明時(shí)間實(shí)在18點(diǎn)到23點(diǎn)之間。 整個(gè)if的邏輯定義就是如果是星期一到星期六并且小時(shí)是在18點(diǎn)到23點(diǎn)之間會(huì)執(zhí)行 { 括號(hào)里面的 } 這段邏輯。 ??if的定義也比較簡(jiǎn)單,如果{}括號(hào)里面的條件為真就執(zhí)行以上代碼以end為一個(gè)總代碼指令,否則的話執(zhí)行一下代碼)
?
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 ;
(注釋:如果不是在這個(gè)時(shí)間段我們的office現(xiàn)在沒(méi)有shou賣,因?yàn)槲覀円獮榱颂峁┤A貴金屬我們要在外賣跑 ???這里它做了一個(gè)包裝故事)
?
OnHour00 :
npcshopupdate” emp_ seller#s1o" ,714,0, 100;
end;
}
marketshop- emp_ seller#slo> FAKE_ NPC, 714: 1000000 : 100
(marketshop這是官方定義的一個(gè)專門賣華貴金屬的NPC,價(jià)格是100萬(wàn) 庫(kù)存100個(gè),它通過(guò)emp_seller這個(gè)NPC來(lái)把商店打開(kāi))
?
OnHour00是一個(gè)標(biāo)簽 就是在每天的0點(diǎn)調(diào)用以下代碼:
(他這邊調(diào)用了一個(gè)npcshopupdate就是刷新時(shí)間在每天的0點(diǎn)刷新商品714的庫(kù)存 0表示價(jià)格不邊還是100wan 100表示庫(kù)存)
以上代碼就是官方定義售賣華貴金屬的商人npc定義邏輯,算是把我們今天所說(shuō)的創(chuàng)建限購(gòu)npc 以及庫(kù)存還有刷新時(shí)間全部定義完成了,大家可以學(xué)習(xí)參考
?
那么今天的分享教程就到這里啦我們下期再見(jiàn)! 我是馳網(wǎng)艾西
擁有一臺(tái)服務(wù)器可以做很多有趣的事情!
?