/*New Note Board snippet by Kai of Nivean Gensis*/ /*Eloria.net Port 9000*/ /*add to merc.h*, with rest of note board delcarations*/ #define INOTE_FILE "inotes.not" #define ANOTE_FILE "anotes.not" #define PNOTE_FILE "pnotes.not" #define CNOTE_FILE "cnotes.not" /*add to merc.h, with rest of note data structures*/ #define NOTE_INOTE 6 #define NOTE_ANOTE 7 #define NOTE_PNOTE 8 #define NOTE_CNOTE 9 /*add to pc_data, under last_rnote*/ time_t last_inote; time_t last_anote; time_t last_pnote; time_t last_cnote; /*add to note.c*/ /*with the rest of the note data types*/ NOTE_DATA *inote_list; NOTE_DATA *anote_list; NOTE_DATA *pnote_list; NOTE_DATA *cnote_list; /*do_board, by Kai July 2002*/ void do_board(CHAR_DATA *ch,char *argument) { char buf[MAX_STRING_LENGTH]; int count; if (IS_NPC(ch)) return; sprintf(buf, "{c+----------------------------------------------+{x\n\r" ); send_to_char(buf, ch); sprintf(buf, "{c| |{x\n\r" ); send_to_char(buf,ch); sprintf(buf, "{c| {D>Note Board<{c |{x\n\r" ); send_to_char( buf, ch); sprintf(buf, "{c| |{x\n\r" ); send_to_char(buf,ch); sprintf(buf, "{c+----------------------------------------------+{x\n\r" ); send_to_char( buf, ch); count = count_spool(ch, note_list); sprintf(buf,"{c|{WNotes{x [{D%d{x]{W General OOC Notes {c |{x\n\r",count); send_to_char(buf,ch); count = count_spool(ch,rnote_list); sprintf(buf,"{c|{WRoleplay{x [{D%d{x]{W Roleplay Notes {c |{x\n\r",count); send_to_char(buf,ch); count = count_spool(ch,cnote_list); sprintf(buf,"{c|{WClan{x [{D%d{x]{W Notes to Clans {c |{x\n\r"); send_to_char(buf, ch); count = count_spool(ch,news_list); sprintf(buf,"{c|{WNews{x [{D%d{x]{W News for the MUD {c |{x\n\r",count); send_to_char(buf,ch); count = count_spool(ch,idea_list); sprintf(buf,"{c|{WIdeas{x [{D%d{x]{W Ideas for Improvement {c |{x\n\r",count); send_to_char(buf,ch); count = count_spool(ch,changes_list); sprintf(buf,"{c|{WChanges{x [{D%d{x]{W Changes that have been Made{c |{x\n\r",count); send_to_char(buf,ch); count = count_spool(ch,inote_list); sprintf(buf,"{c|{WImmortal{x [{D%d{x]{W Notes for Immortals {c |{x\n\r"); send_to_char(buf, ch); count = count_spool(ch,anote_list); sprintf(buf,"{c|{WAdmin{x [{D%d{x]{W Notes for Admin {c |{x\n\r"); send_to_char(buf,ch); if (IS_TRUSTED(ch,ANGEL)) { count = count_spool(ch,penalty_list); sprintf(buf,"{c|{WPenalties{x [{D%d{x]{W Penalties Added {c |{x\n\r",count); send_to_char(buf,ch); } count = count_spool(ch,pnote_list); sprintf(buf,"{c|{WPersonal{x [{D%d{x]{W Personal Notes {c |{x\n\r"); send_to_char(buf,ch); sprintf( buf, "{c+----------------------------------------------+{x"); send_to_char(buf, ch); } /*do save_notes*/ case NOTE_INOTE: name = INOTE_FILE; pnote = inote_list; break; case NOTE_ANOTE: name = ANOTE_FILE; pnote = anote_list; break; case NOTE_PNOTE: name = PNOTE_FILE; pnote = pnote_list; break; case NOTE_CNOTE: name = CNOTE_FILE; pnote = cnote_list; break; /*void load_notes*/ load_thread(INOTE_FILE,&inote_list,NOTE_INOTE, 0); load_thread(ANOTE_FILE,&anote_list,NOTE_ANOTE, 0); load_thread(PNOTE_FILE,&pnote_list,NOTE_PNOTE, 0); load_thread(CNOTE_FILE,&cnote_list,NOTE_CNOTE, 0); /* void append_note*/ case NOTE_INOTE: name = INOTE_FILE; list = &inote_list; break; case NOTE_ANOTE: name = ANOTE_FILE; list = &anote_list; break; case NOTE_PNOTE: name = PNOTE_FILE; list = &pnote_list; break; case NOTE_CNOTE: name = CNOTE_FILE; list = &cnote_list; break; /* void note_remove */ case NOTE_INOTE: list = &inote_list; break; case NOTE_ANOTE: list = &anote_list; break; case NOTE_PNOTE: list = &pnote_list; break; case NOTE_CNOTE: list = &cnote_list; break; /* void hide_note */ case NOTE_INOTE: last_read = ch->pcdata->last_inote; break; case NOTE_ANOTE: last_read = ch->pcdata->last_anote; break; case NOTE_PNOTE: last_read = ch->pcdata->last_pnote; break; case NOTE_CNOTE: last_read = ch->pcdata->last_cnote; break; /* void update_read */ case NOTE_INOTE: ch->pcdata->last_inote = UMAX(ch->pcdata->last_inote,stamp); break; case NOTE_ANOTE: ch->pcdata->last_anote = UMAX(ch->pcdata->last_anote,stamp); break; case NOTE_PNOTE: ch->pcdata->last_pnote = UMAX(ch->pcdata->last_pnote,stamp); break; case NOTE_CNOTE: ch->pcdata->last_cnote = UMAX(ch->pcdata->last_cnote,stamp); break; /* void parse_note*/ case NOTE_INOTE: list = &inote_list; list_name = "immortal_notes"; break; case NOTE_ANOTE: list = &anote_list; list_name = "admin_notes"; break; case NOTE_PNOTE: list = &pnote_list; list_name = "personal_notes"; break; case NOTE_CNOTE: list = &cnote_list; list_name = "clan_notes"; break; /*down father*/ case NOTE_INOTE: send_to_char("{YThere are no immortal notes for you.{x\n\r",ch); break; case NOTE_ANOTE: send_to_char("{YThere are no admin notes for you.{x\n\r",ch); break; case NOTE_PNOTE: send_to_char("{YThere are no personal notes for you.{x\n\r",ch); break; case NOTE_CNOTE: send_to_char("{YThere are no clan notes for you.{x\n\r",ch); break; /*father down*/ case NOTE_INOTE: ch->pcdata->last_inote = current_time; break; case NOTE_ANOTE: ch->pcdata->last_anote = current_time; break; case NOTE_PNOTE: ch->pcdata->last_pnote = current_time; break; case NOTE_CNOTE: ch->pcdata->last_cnote = current_time; break; /*under do_changes*/ void do_personal(CHAR_DATA *ch, char *argument) { parse_note(ch,argument,NOTE_PNOTE); } void do_immortal(CHAR_DATA *ch, char *argument) { parse_note(ch,argument,NOTE_INOTE); } void do_admin(CHAR_DATA *ch, char *argument) { parse_note(ch,argument,NOTE_ANOTE); } void do_cnote(CHAR_DATA *ch, char *argument) { parse_note(ch,argument,NOTE_CNOTE); } /*after the stuff about you are writing a different kind of note in if(!str_prefix(arg, "to")*/ if (( ch->pnote->type == NOTE_NOTE ) && (str_cmp(argument, "all"))) { send_to_char( "{CNotes are to all.{x\n\r", ch); free_string( ch->pnote->to_list ); ch->pnote->to_list = "all"; return; } if (( ch->pnote->type == NOTE_INOTE ) && (str_cmp(argument, "Immortal"))) { send_to_char( "{CImmortal notes are to Immortals.{x\n\r", ch); free_string( ch->pnote->to_list ); ch->pnote->to_list = "Immortal"; return; } if (( ch->pnote->type == NOTE_ANOTE ) && (str_cmp(argument, "Admin"))) { send_to_char( "{CAdmin notes are to Admin.{x\n\r", ch); free_string( ch->pnote->to_list ); ch->pnote->to_list = "Admin"; return; } if (( ch->pnote->type == NOTE_RNOTE) && (str_cmp(argument, "all"))) { send_to_char( "{CRoleplay notes are to all.{x\n\r",ch); free_string( ch->pnote->to_list ); ch->pnote->to_list = "all"; return; } if ( ch->pnote->type == NOTE_CNOTE) { if (ch->cid->short_name == NULL) { send_to_char("You are not in a clan.{x\n\r", ch); return; } else { send_to_char( "{CClan notes are written to your clan.{x\n\r", ch); free_string( ch->pnote->to_list); ch->pnote->to_list = ch->cid->short_name; return; } } if ((ch->pnote->type == NOTE_PNOTE) && (!str_cmp(argument, "all"))) { send_to_char( "{CPersonal notes cannot be written to all.{x\n\r", ch); return; } if ((ch->pnote->type == NOTE_IDEA) && (str_cmp(argument, "all"))) { send_to_char( "{CIdeas are to be written to all.{x\n\r", ch); free_string(ch->pnote->to_list); ch->pnote->to_list = "all"; return; } if ((ch->pnote->type == NOTE_CHANGES) && (str_cmp(argument,"all"))) { send_to_char( "{CChanges are to be written to all{x.\n\r", ch); free_string( ch->pnote->to_list); ch->pnote->to_list = "all"; return; } if ((ch->pnote->type == NOTE_NEWS) && (str_cmp(argument, "all"))) { send_to_char( "{CNews is to be written to all{x.\n\r", ch); free_string( ch->pnote->to_list); ch->pnote->to_list = "all"; return; } /*interp.c*/ /*at the bottom of the section with the command note*/ { "personal", do_personal, POS_SLEEPING, 0,LOG_NORMAL,1,CMV }, { "immortal", do_immortal, POS_SLEEPING, 0,LOG_NORMAL,1,CMV }, { "admin", do_admin, POS_SLEEPING, 0,LOG_NORMAL,1,CMV }, { "cnote", do_cnote, POS_SLEEPING, 0,LOG_NORMAL,1,CMV }, /*interp.h*/ DECLARE_DO_FUN( do_personal ); DECLARE_DO_FUN( do_immortal ); DECLARE_DO_FUN( do_admin ); DECLARE_DO_FUN( do_cnote );