// Petrarch // Merentha Lib 1.0 // socials.c // smile:smiles:$N smiles happily.:$N smiles happilly at $O.:$N smiles $V. #include <std.h> inherit DAEMON; mapping socials=(["wink":({"winks","$N winks knowingly.","$N winks at $O.","$N winks $V."})]); int get_message(string str) { object env,ob; string social, misc, you, me, them; if(!str) return 0; if(!env=environment(this_player())) return 0; if(sscanf(str, "%s %s", social, misc)!=2) { if(!socials[str]) return 0; them=replace_string(socials[str][1],"$N",this_player()->query_cap_name()); me=replace_string(socials[str][1],"$N","You"); me=replace_string(me,socials[str][0],str); message("emote", me, this_player()); message("emote", them, env, this_player()); return 1; } if(!socials[social]) return 0; if(ob=present(misc,env)) { you=replace_string(socials[social][2],"$N",this_player()->query_cap_name()); you=replace_string(you,"$O","you"); them=replace_string(socials[social][2],"$N",this_player()->query_cap_name()); them=replace_string(them,"$O",ob->query_cap_name()); me=replace_string(socials[social][2],"$N","You"); me=replace_string(me,"$O",ob->query_cap_name()); me=replace_string(me,socials[social][0],social); message("emote", me, this_player()); message("emote", you, ob); message("emote", them, env, ({this_player(),ob})); return 1; } them=replace_string(socials[social][3],"$N",this_player()->query_cap_name()); them=replace_string(them,"$V",misc); them=replace_string(them,"\n", ""); me=replace_string(socials[social][3],"$N","You"); me=replace_string(me,"$V",misc); me=replace_string(me,socials[social][0],social); me=replace_string(me,"\n", ""); message("emote", me, this_player()); message("emote", them, env, this_player()); return 1; } void load_socials() { string str, *s; int i=0; while(str=read_file("/cfg/socials.o", i, 1)) { if(sizeof(s=explode(str,":"))==5) socials[s[0]]=s[1..4]; i++; } } void create() { load_socials(); }