Creator: Rainer Roomet, Estonia. rainer_roomet@hotmail.com The Lost Lands of Arion telnet: irc.nohik.ee 4242 url: http://www.zone.ee/gain/ Snippet: This snippets adds some extra informative texts for your shopkeepers (You also may add these texts to bankers, receptionists, questmasters) If shop is closed, then shopkeeper tells you when he/she opens his/her shop. Credits: No need ANY credits. Code: Open the file 'act_object.c' Find the code 'CHAR_DATA *find_keeper( CHAR_DATA *ch )' after: CHAR_DATA *keeper; add: char buf[MAX_STRING_LENGTH]; Before: /* * Invisible or hidden people. */ if ( !can_see( keeper, ch ) ) { do_function(keeper, &do_say, "I don't trade with folks I can't see."); return NULL; } add: if ( time_info.hour == pShop->open_hour - 2 || time_info.hour == pShop->open_hour - 3 ) { act("$N tells you 'We are closed! We will open in a couple hours.'", ch, NULL, keeper, TO_CHAR); return NULL; } else if ( time_info.hour == pShop->open_hour - 1 ) { act("$N tells you 'We are closed! We will open in within the hour.'", ch, NULL, keeper, TO_CHAR); return NULL; } else if ( time_info.hour < pShop->open_hour ) { sprintf(buf, "$N tells you 'Sorry, we are closed. We will open at %d%s %s.'", pShop->open_hour, pShop->open_hour < 13 ? "am" : "pm", time_info.hour < pShop->open_hour ? "today" : "tomorrow"); act(buf, ch, NULL, keeper, TO_CHAR); return NULL; } SAVE and CLOSE the file 'act_obj.c' Open the file 'update.c' Find the code 'void char_update( void )' After: /* * Autosave and autoquit. * Check that these chars still exist. */ for ( ch = char_list; ch != NULL; ch = ch_next ) { ch_next = ch->next; if (ch->desc != NULL && ch->desc->descriptor % 30 == save_number) save_char_obj(ch); if (ch == ch_quit) do_function(ch, &do_quit, "" ); } /* * Shopkeepers informs the players when they open or close * their shops. Also, at open hour, we give some extra gold * to the Shopkeepers -- I hate bankryted shopkeepers :) * -- Ranka */ for ( ch = char_list; ch != NULL; ch = ch_next ) { ch_next = ch->next; if ( !IS_NPC(ch) || ch->in_room == NULL || IS_AFFECTED(ch,AFF_CHARM)) continue; if (ch->in_room->area->empty && !IS_SET(ch->act,ACT_UPDATE_ALWAYS)) continue; ADD: if ( (pShop = ch->pIndexData->pShop) != NULL) { if (time_info.hour == pShop->open_hour - 1 ) { { if (ch->gold < ch->pIndexData->wealth) ch->gold += ch->pIndexData->wealth; } act( "$n prepares to open the shop.", ch, NULL, NULL, TO_ROOM); } else if (time_info.hour == pShop->open_hour) act( "$n opens the shop.", ch, NULL, NULL, TO_ROOM); else if (time_info.hour == pShop->close_hour - 1) act( "$n prepares to close the shop.", ch, NULL, NULL, TO_ROOM); else if (time_info.hour == ch->pIndexData->pShop->close_hour) act( "$n closes the shop.", ch, NULL, NULL, TO_ROOM); }