champion.old
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· OLD 代码 · 共 150 行
OLD
150 行
// this npc will duplicate anyone who he/she lost his fight to....#include <ansi.h>#define CHAMPION_FILE "/d/biwu/champion.o"inherit NPC;void loadall(object me);string id1;void find(string id);void changeshape(object winner);void create(){ string info,name,id,file; set_name( "盟主" , ({ "numberone" }) ); setup(); info = read_file(CHAMPION_FILE); if( info && sscanf(info,"%s %s %s",file,id,name) == 3) { restore_object(file); set_name( name , ({ id }) ); delete("env"); set("attitude", "aggressive"); reset_action(); delete_temp("already_loaded"); loadall(this_object()); set("title", HIC "正派盟主" NOR); } }void lose_enemy(object winner){ remove_call_out("changeshape"); call_out("changeshape",2,winner); return;}void changeshape( object winner){ string winner_file; string name,id,nick;
winner_file = winner->query_save_file(); CHANNEL_D->do_channel(this_object(), "chat", sprintf( "%s从现在开始是我们新的正派盟主了!! \n", winner->name(1))); write_file(CHAMPION_FILE,sprintf("%s %s %s", winner_file,winner->query("id"),winner->query("name")),1); restore_object(winner_file); set("name",winner->query("name")); set("id" , winner->query("id")); set_name( name , ({ id }) ); set("nick",winner->query("nickname")); delete("env"); set("attitude", "aggressive"); reset_action(); delete_temp("already_loaded"); loadall(this_object()); set("title", HIC "正派盟主" NOR); set("nickname",nick); return;}void loadall(object me){ int MAX = 3; string name,id, *created; int i,j; object thing, *inv; inv = all_inventory(me); for(i=0; i<sizeof(inv); i++) { destruct(inv[i]); } id = me->query("id"); created = get_dir(DATA_DIR + "login/" + id[0..0] + "/" + id + "/"); for(j=0; (j<sizeof(created) && j < (MAX+1) ); j++) if( sscanf(created[j], "%s.c", name) == 1 ) { thing = new( DATA_DIR + "login/" + id[0..0] + "/" + id + "/" + name + ".c"); if(thing->move(me)) { thing->wield(); thing->wear(); } } me->reset_action(); me->set_temp("already_loaded",1); return;}void init(){ add_action("do_yao","yaozhang"); if(!query_temp("already_loaded")) loadall(this_object()); return;}int accept_fight(object me){ return 1;}void die(){ object ob; if( !ob = query_temp("last_damage_from") ) ob = this_player(1); if( !ob ) return; changeshape(ob); return;}int do_yao(){ object zhang,me,ob; me = this_player(); ob = this_object(); zhang = new(__DIR__"zheng"); if(ob->query("id")==me->query("id") && (!present("shenstaff",me))) {find(id1); zhang->move(me); message_vision("$N给了$n一根神杖。\n",ob,me); return 1; }tell_object(me,"你瞎要什么?\n");return 1;}void find(string id){object *ulist,*ilist;object ob;int i,j;ulist = users(); i = sizeof(ulist);while (i--) { //if(ulist[i]->query("id")== id ) { if (present ("shenstaff",ulist[i])) { ilist = all_inventory(ulist[i]); j=sizeof(ilist); while (j--) { ob = ilist[j]; if(ob->query("id")=="shenstaff") destruct(ob); }message_vision(HIY"$N身上的神杖化作一道金芒飞向了远方。\n"NOR,ulist[i]); }}}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?