作者laechan (小太保)
看板mud_sanc
标题[QC] virtue/npc
时间Mon Sep 3 08:38:37 2007
许多的 npc 都有底下的函数
int ask_question(string str)
{
int r;
r=random(3);
switch(r)
{
case 1:
command("say 托您的福,一切安好。");
break;
case 2:
command("say 能与您见面,感到很高兴。");
break;
default:
command("say 你想问什麽? 有关於 妖怪的各种疑惑 都可以问(ask)我。");
break;
}
return 1;
}
出个题目给你们两个, 假设要做一继承用物件, 使有使用
ask_question 函数的 npc 只需「做一些设定」+「继承
该物件」即可达到与原先写法相同的效果,要怎麽写?
会出这题目,是因为你们的 /mob 及 /npc 充斥着太多相
同的函数及程式段,在这情况下通常我会建议做继承用物
件,因为这可以减少 QC 的复杂度。
还有, n 个 write 最好合成一行。
if(ob1=present("xx1",ppl)) i++;
if(ob2=present("xx2",ppl)) i++;
if(ob3=present("xx3",ppl)) i++;
这种写法要尽量避免, 我有说过, 假设某 wiz 某区域内
的某物品若刚好也叫 xx1 而且不是你指定的那个 xx1 时
, 它一样能通过上述判断.
若该 xx1 刚好也是你目录下的东西, 最好给它一个可识
别的独特 ID 如 "virtue xx1", 这时你的 ob1 判断式就
可改为...
if(ob1=present("virtue xx1",ppl)) i++;
通常会叫做 virtue xx1 的只有你目录内的物件而已.
继续 QC npc, 今天会 qc 完毕.
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.131.222.160