guinu.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 181 行
C
181 行
//guinu.c 龟奴
#include <ansi.h>
inherit NPC;
void create()
{
set_name("龟奴", ({ "guinu", "slave" }) );
set("gender", "无性" );
set("title", "丽春院总管");
set("age", 32);
set("long",
"他是丽春院里里外外管事的,没有他丽春院就不会有今天的繁荣。"
"不过他也干尽了逼良为娼的坏事。此人两膀膂力过人,不好惹。\n");
set("str", 55);
set("dex", 35);
set("con", 25);
set("int", 25);
set("shen_type", -1);
set_skill("unarmed", 60);
set_skill("force", 20);
set_skill("dodge", 55);
set("combat_exp", 95000);
set("max_qi", 300);
set("max_jing", 100);
set("neili", 200);
set("max_neili", 200);
set("attitude", "friendly");
set("inquiry", ([
"name" : "我也不知道我原来叫什么。",
"韦小宝" : "那是我们老板娘的儿子。",
"丽春院" : "我们丽春院可是扬州城里头一份的找乐子去处。",
"here" : "我们丽春院可是扬州城里头一份的找乐子去处。",
"赎身" : "那可不行。我们这儿的姑娘是摇钱树。除非你加倍地给我钱。",
"从良" : "那可不行。我们这儿的姑娘是摇钱树。除非你加倍地给我钱。",
"姑娘" : "姑娘就是姑娘,连这都不懂还逛什么窑子。",
]) );
setup();
set("chat_chance", 3);
set("chat_msg", ({
"龟奴对你说道:客官,你要缺钱花就把你妹妹,女儿什么的卖到我这来吧。\n",
"龟奴对你说道:卖之前,最好先问问我们老板娘,谁漂亮谁才能卖个好价钱。\n",
}) );
carry_object("/d/city/obj/pink_cloth")->wear();
}
void init()
{
object ob;
::init();
if (interactive(ob = this_player()) && !is_fighting()) {
remove_call_out("greeting");
call_out("greeting", 1, ob);
}
add_action("do_sell","sell");
}
void greeting(object me)
{
object * ob;
int found,i;
found = 0;
if (me->query("hooker")) {
command("say 好啊,"+me->name() + ",我还当你要逃到天边呢,你又回来了!");
command("say 你要再逃我打断你的腿!");
return;
}
if (me->query("gender")!="无性") {
ob = all_inventory(environment());
for(i=sizeof(ob)-1; (i>=0) && !found; i--) {
if( !userp(ob[i]) ) continue;
if (ob[i]->query("hooker")) {
found = 1;
command ("say "+ob[i]->name() + ",看见客人来了还不快迎接! ");
command ("kick " + ob[i]->query("id"));
}
}
}
return ;
}
int do_sell(string arg)
{
object ob;
int value, per, extra = 1;
string* name1s = ({
"小", "春", "夏", "秋", "冬", "月" });
string* name2s = ({
"红", "兰", "月", "翠", "莲", "荷", "叶", "花", "蝶" });
string* name3s = ({
"姐姐", "妹妹", "姑娘" });
string nick;
if (!arg || !(ob = present(arg, this_player())))
return notify_fail("你要卖谁?\n");
if (!ob->is_character())
return notify_fail("这你得卖到当铺去。\n");
if (!userp(ob))
return notify_fail("我们只召玩家做妓女。\n");
if (ob->query("gender")!="女性")
return notify_fail("本院目前还不召男妓。\n");
if (ob->query("hooker"))
return notify_fail("她已经是我们丽春院的人了,你不能再卖了。\n");
if ((value = ob->query("combat_exp")) < 350000)
return notify_fail("她还是个雏儿呢,我可没工夫教她。\n");
per = ob->query("per")*100;
if( ob->query_temp("top_girl") ) {
extra = 10 ;
per = ob->query("per")*1000;
command("admire "+this_player()->query("id"));
command("say 这次的货色不错,这小妞真不赖!\n");
}
message_vision("$N把"+ ob->name()+"卖到了丽春院。\n", this_player());
MONEY_D->pay_player(this_player(), (per+value)*extra);
this_player()->set("shen",this_player()->query("shen")-(value/100));
this_player()->set("sell_woman/" + ob->query("id"), 1);
ob->move(this_object());
nick = name1s[random(sizeof(name1s))] + name2s[random(sizeof(name2s))]
+ name3s[random(sizeof(name3s))];
if (ob->query("age")<18)
ob->set("title","丽春院新人");
else if (ob->query("age")<25)
ob->set("title","丽春院头牌");
else if (ob->query("age")<45)
ob->set("title","丽春院皇后");
else ob->set("title","丽春院教师");
if( ob->query_temp("top_girl") ) {
ob->set("title",HIR"丽春院花魁"NOR);
ob->delete_temp("top_girl");
}
ob->set("nickname",nick);
command ("chat 我们丽春院新来了「"+nick+ "」"+ob->name()+",欢迎各位大爷光顾!");
ob->set("hooker",1);
return 1;
}
int accept_object(object me, object obj)
{
if(obj->query("money_id")) {
if(me->query("hooker")) {
if (obj->value()>= me->query("combat_exp")*2) {
command ("say 好吧,人各有志,你要从良我也不勉强,找个好人家嫁了吧。我们大家会想你的。");
command ("cry "+me->query("id"));
me->set("title",me->query("family/family_name")+"第"+
chinese_number(me->query("family/generation"))+
"代弟子");
command("bye "+me->query("id"));
me->delete("hooker");
return 1;
}
else {
command("say 谢谢"+me->query("nickname")+"赏钱。");
command("bow "+ me->query("id"));
return 1;
}
}
else {
command("say 谢谢赏钱。");
command("bow "+ me->query("id"));
return 1;
}
}
else return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?