[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