[wizs] questing 新增 farm 功能項

作者: laechan (揮淚斬馬雲)   2023-12-26 19:29:47
case "farm":
tmp="/u/l/laechan/skycastle/room/"+names[0..0]+"/"+names+"-main";
if(file_exists(tmp+".c"))
{
if(!catch(ob=find_object_or_load(tmp)))
{
switch(quest_num)
{
case "crops": return (mapping)ob->query("crops"); break;
case "sizeof_crops":
return sizeof(keys((mapping)ob->query("crops")));
break;
case "nobu_money": return (int)ob->query("nobu_money"); break;
case "farm_level": return (int)ob->query("farm_level"); break;
case "farm_land_num": return (int)ob->query("farm_land_num"); break;
default: write("farm 沒有這個 quest_num 功能項喔.\n"); return -1; break;
}
}
}
return ob;
break;
玩家天空城之家的 data 與 farm 有關的主要是底下參數
data["crops"] 玩家已收成的農作物資料
比方 data["crops"]["kiwi"] 就是玩家已收成未賣出的奇異果數量
sizeof(keys(data["crops"])) 即玩家已收成的農作物種類數量
data["nobu_money"] 即玩家天空城之家的挪布幣數量
這個我記得是玩家可領,但不可存。假設 wiz 有想要補發挪布幣給
玩家時,只要去 call 他的家;"add";"nobu_money";數量
這樣玩家就能從家裡領出這個挪布幣
data["farm_level"] 即玩家的農地等級
data["farm_land_num"] 即玩家的農地數量
現在寫一個 running code
str="";
foreach(me in users())
{
if(environment(me))
{
tmp=me->query("name");
if(questing("farm",tmp,"farm_level")>0)
str+=sprintf("%-11s %3d %3d\n",tmp,
questing("farm",tmp,"farm_level"),
questing("farm",tmp,"farm_land_num"));
}
}
this_player()->more(explode(str,"\n"),1,1);
========== 程式執行區 ==========
noras 1 6
khblade 3 12
.
.
這樣即可知道,farm_level 最大為 3,farm_land_num 最大為 12。
那其實還有另一個參數,是與玩家農地的作物生長狀態有關的,不過
因為平常並不會沒事去讀那個東西,幾乎是用不太到的,就跳過。
(一樣是在 data 內,並沒有寫成另外的變數)

Links booklink

Contact Us: admin [ a t ] ucptt.com