/****************************************************************************** * TinTin++ * * Copyright (C) 2004 (See CREDITS file) * * * * This program is protected under the GNU GPL (See COPYING) * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ******************************************************************************/ /****************************************************************************** * (T)he K(I)cki(N) (T)ickin D(I)kumud Clie(N)t * * * * coded by Igor van den Hoven 2009 * ******************************************************************************/ #include "tintin.h" struct advertisement_type { time_t start; time_t end; int value; char * desc; }; struct advertisement_type advertisement_table[] = { /* { 1260469590, * 10 Dec 2009 * 1323541590, * 10 Dec 2011 * "\n" "<138> Lowlands\n" "\n" "<078>Lowlands is an old school severely customized Merc derived Hack and Slash MUD\n" "<078>with an emphasis on exploration and solving challenging and immersive area\n" "<078>based quests.\n" "\n" "<078>A voluntary two faction player killing system is in place for the followers of\n" "<078>the two gods, Chaos and Order, combined with easy corpse retrieval, no corpse\n" "<078>looting, and a large 15,000 room world.\n" "\n" "<178>To connect to Lowlands enter: #session lo slackhalla.org 6969\n" "\n" }, { 1260469590, * 10 Dec 2009 * 1323541590, * 10 Dec 2011 * "\n" "<138> Maiden Desmodus - http://maidendesmodus.com\n" "\n" "<078>Maiden Desmodus is an immersive world of high adventure where your actions, or\n" "<078>inaction, will determine the fate of The Isle. Choose to be born unto one of\n" "<078>two opposing factions, join one of the six powerful guilds, and carve your\n" "<078>place in history through your cunning, your strategy, and your skill with magic\n" "<078>or a blade. At every turn are players who may ally themselves to you, or work\n" "<078>to destroy you. Shall you form your own cabal and command your peers, control\n" "<078>the politics of your city, or lead an army against those who oppose you?\n" "<078>Maiden Desmodus features a completely original world and a custom game engine.\n" "\n" "<178>To connect to Maiden Desmodus enter: #session md maidendesmodus.com 4000\n" "\n" }, { 1260469590, * 10 Dec 2009 * 1323541590, * 10 Dec 2011 * "\n" "<138> Lost Souls - http://lostsouls.org\n" "\n" "<078>\"Our world is fallen, boy. Aedaris is a ruin. My grandfather, he told me\n" "<078>of days, not so long gone, when everything you see was part of a great empire.\n" "<078>Peaceful, he said. Full of wonders. They called it eternal. Funny, eh, boy?\n" "<078>They thought it'd last forever, and it went crazy and tore itself apart. But\n" "<078>they left behind a few things for us, didn't they? Ha! Yes, lots for us. Now\n" "<078>give that wizard-stick here before you blow your fool horns off, and get to\n" "<078>work. Daylight's soon, and these faeries aren't going to skin themselves.\"\n" "<078>Lost Souls: chaos in the wreckage of empire. Be clever if you want to live.\n" "\n" "<178>To connect to Lost Souls enter: #session ls lostsouls.org 23\n" "\n" }, { 1260469590, * 10 Dec 2009 * 1323541590, * 10 Dec 2011 * "\n" "<138> Alter Aeon - http://www.alteraeon.com\n" "\n" "<078>Alter Aeon is a custom MUD written entirely from scratch. The story setting\n" "<078>is reminiscent of Dungeons and Dragons, but has elements of fantasy and a\n" "<078>unique spell and skill system. Our world has hundreds of areas to explore,\n" "<078>quests to complete, and puzzles to solve. There are always other players\n" "<078>available, whether for help, competition, or just to talk with. The game\n" "<078>is also blind-friendly and has a blind player login on port 3010.\n" "\n" "<178>To connect to Alter Aeon enter: #session aa alteraeon.com 3002\n" "\n" }, */ { 1291140000, /* 30 Nov 2010 */ 1354280000, /* 30 Nov 2012 */ 100, "\n" "<138> Alter Aeon - http://www.alteraeon.com\n" "\n" "<078>Alter Aeon is a custom MUD written entirely from scratch. The story setting\n" "<078>is reminiscent of Dungeons and Dragons, but has elements of fantasy.\n" "<078>There are unique spell, skill, and minion systems, player run shops, boats,\n" "<078>and many other features for nearly every kind of player. In development\n" "<078>since 1995, the world of Alter Aeon has hundreds of areas to explore, quests\n" "<078>to complete, and puzzles to solve.\n" "\n" "<178>To connect to Alter Aeon enter: #session aa alteraeon.com 3000\n" "\n" }, { 1291140000, /* 30 Nov 2010 */ 1354280000, /* 30 Nov 2012 */ 100, "\n" "<138> Threshold RPG - http://www.thresholdrpg.com\n" "\n" "<078>Join us as Threshold RPG, one of the oldest RP enforced games on the\n" "<078>internet. Add to thirteen years of player created history and make your own\n" "<078>mark on the world today. Join a hundred other players who are vying for\n" "<078>political and religious power in complex systems that reward skill, effort,\n" "<078>and social interactions. Threshold RPG is a custom code-base written in\n" "<078>LPC and features a completely unique and original world.\n" "\n" "<178>To connect to Threshold RPG enter: #session thresh thresholdrpg.com 23\n" "\n" }, { 1291140000, /* 30 Nov 2010 */ 1354280000, /* 30 Nov 2012 */ 100, "\n" "<138> Primordiax - http://www.primordiax.com\n" "\n" "<078>Primordiax is an in-character enforced MUD where roleplaying is heavily\n" "<078>encouraged. The exclusive design of Primordiax makes it extremely\n" "<078>accessible to new players without losing the intrigue and complexity that\n" "<078>continues to attract veterans of the genre. Primordiax offers a classic\n" "<078>gaming experience with a highly unique class system and an open skill tree.\n" "\n" "<178>To connect to Primordiax enter: #session prim primordiax.com 3000\n" "\n" }, { 1291140000, /* 30 Nov 2010 */ 1354280000, /* 30 Nov 2012 */ 100, "\n" "<138> Northern Crossroads - http://www.ncmud.org\n" "\n" "<078>Northern Crossroads is a diverse world of blade wielders, assassins and magic\n" "<078>users who use their powers together to seek out the darkest dungeons. Decide\n" "<078>between five classes, as allowed by your choice of ten races, and prove your\n" "<078>strength to ascend to an Advanced class. Venture to dangerous zones with other\n" "<078>mortals, claim the rarest of items, join one of several clubs and build your\n" "<078>character to challenge other mortals. NC has enthralled players with hundreds\n" "<078>of detailed areas of various themes since 1993 and is one of the oldest MUDs\n" "<078>in the world.\n" "\n" "<178>To connect to Northern Crossroads enter: #session NC ncmud.org 9000\n" "\n" }, { 0, 0, 0, "" } }; int valid_advertisement(int i) { time_t current_time = time(NULL); if (advertisement_table[i].start > current_time) { return 0; } if (advertisement_table[i].end < current_time) { return 0; } return advertisement_table[i].value; } int total_advertisements() { int i, count = 0; for (i = 0 ; *advertisement_table[i].desc ; i++) { count += valid_advertisement(i); } return count; } DO_COMMAND(do_advertise) { int i, max, cnt; char buf[BUFFER_SIZE]; max = total_advertisements(); for (i = 0 ; *advertisement_table[i].desc ; i++) { if (!valid_advertisement(i)) { continue; } cnt = advertisement_table[i].value; if (lrand48() % max < cnt) { char *pto, *ptf; substitute(ses, advertisement_table[i].desc, buf, SUB_COL); pto = buf; while (*pto) { ptf = strchr(pto, '\n'); if (ptf == NULL) { break; } *ptf++ = 0; tintin_puts(ses, pto); pto = ptf; } break; } max -= cnt; } // tintin_printf2(ses, "#NO SESSION ACTIVE. USE: %csession {name} {host} {port} TO START ONE.", gtd->tintin_char); return ses; }