whistle.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 90 行
C
90 行
#include <ansi.h>inherit F_CLEAN_UP;#define DEATH_PERIOD 1200int main(object me, string arg){ object pet; object *ob_list; int i; string id,name; string file; if(me->query("jing")<50) return notify_fail("你精气不够。\n"); if(me->is_busy()) return notify_fail("你现在不可以吹口哨。\n"); if(me->is_ghost()) return notify_fail("鬼魂不可以吹口哨。\n"); if(!me->query("marks/pet")) return notify_fail("你没有自己的宠物。\n"); write("你轻轻地吹了声口哨...\n");// if(environment(me)->query("NONPC")) return 1; file = me->query_save_file(); file += ".pet.o"; ob_list = children("/clone/npc/pet"); for(i=0; i<sizeof(ob_list); i++) if(ob_list[i]->query("possessed") == me) pet = ob_list[i]; if(!pet && file_size(file) > 0 ) { seteuid(getuid()); pet = new("/clone/npc/pet"); pet->set("owner",me->query("id")); pet->restore(); id = pet->query("id"); name = pet->query("name"); pet->set("id",id); pet->set_name(name,({id})); pet->set("possessed",me); pet->setup(); } me->add("jing",-50); if (present(pet, me)) return notify_fail("你不是正骑着吗?\n"); if(pet && environment(pet) != environment(me) && time() - (int)pet->query("deathstamp") > 1200 && !pet->is_fighting()) { pet->move(environment(me)); pet->reset_action(); pet->set_temp("owner",me); pet->set("ownmake",1); pet->set("no_drop",1); pet->set_temp("ownername",me->query("name")); pet->delele("is_rided_by"); message_vision("$N不知从哪里窜到$n面前.\n",pet,me); // let pet be our protector if(me->is_fighting()) { object *enemy; enemy = me->query_enemy(); i = sizeof(enemy); while(i--) { if( enemy[i] && living(enemy[i]) ) { pet->kill_ob(enemy[i]); if( userp(enemy[i]) ) enemy[i]->fight_ob(pet); else enemy[i]->kill_ob(pet); } }// me->remove_all_killer(); } pet->set_leader(me); } else if (pet) {pet->save(); message_vision("$N一闪就不见了。\n",pet); pet->delele("is_rided_by"); destruct(pet); } return 1;}int help(object me){ write(@HELP指令格式 : whistle详解请看帮助文件中的《宠物篇》HELP ); return 1;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?