Welcome To ________ The Darkening Sun v3 ###########:::. a##########:#::::::. Based on: ,--. a############:##:::::##:. Diku by Hans, Katya, ) #############::::::::::#::. Tom, Michael and Sebastian _'-. _ ##############:::##:::#::::: Merc 2.1 by Hatchet, ( ) ),--.#############::##::::::#::::: Furey and Kahn )##########:::#:::::#:::::::: Rom 2.4 ©1993-1996 by Russ ______________)#########:/ \#::::::::::::: Oblivion 2.0 ©1996-1997 #############/ \::::::::::::: by Wes Wagner ###########:/_____\:#:::::#/\' Dawn of Time v1.7 ###########\=====/:::::::/==\ ©1997-2008 by Michael Garratt ###########:|# |/\:#::::(: ) The Darkening Sun v3 ©2000-2008 ###########|===/ \:::::[==] Marc Garrett .---- #########:| [--]:::=/ : \=http://darkeningsun.com .-----( `#/ \##:#| ::|==|::::\ :/ .--( .--. /---\#::|===| |::' (====) ( ( ) |===| `| | |H__H__H | (_________________ | H__H|__H|==| / | |===\ /:: |====|H__H__H { ..|| ..| ::| :: | / \==||===|/\ /\____|====|____ __________/\ || /__\/__\ ___ ___ \ ______/ \||===||| || |:| |:| \____ |===||| || | | | | \ |___|||[]||__|_|__|_| \ :: ::' ::' <==========================> THE IMMORTAL STAFF <==========================> $% /$$%/ ::$ $/// /;//;/ /%% /+%%%$$%% %X;:%//;%=+////;X%+++%%++%%+%++%%%%%%%%%%%%%$$%%%%$%%+; %;:%;//;;+/=//;H$+%;+%%++//++%%+%%%%%%+%%$$$$$%%%$%$, %%:%;/% ///X%;%% %%%%% %%%$% +-+$ //X$/ $+%% :%$+ +%$ /%$% Founder +%%/ ++% //$ +$ Daos /+/: ++/ /X/ $: :/: $/= %+$ $: Implementors ;= //: ;;X ;$ Davenor :-: //: /X/ $: Tilthian :/: $/= /X/ $: :/: $/= %+$ :/ Admin ;= //: ;;X Veremus ;$ :-: Tzera //: ;+H ;$ :=: /:; ;%H /% Council Heads :-= +:; ;%H RP /% Support :=: Balance ;;; ;%X Eilinel ++ :==Pheolaeria/:; /%$ Malaana /% ;;: +;; /%$ /% ;;: $:; /%X Lore /$ Kingdoms/Clans :;: Realm %;/ /%X Malaana +$ ;;: Eilinel %/+ ;E% +$ :=: /:; ;+% ;$ Law :=: /:; ;E% ;$ Davenor :=: /:; ;+H /$ :/: /:; +%% +$ Immortals :;; +:/ +@x $x Seethe :/L /:; +$; %$X Ordyn $% Asmodeous /;/ Kierra +%$ +$%; +%$; %$X Alatariel X$ Fynrierre /+% Korduk %++ :$%; %+$; %$X Eyterix X% Drazhad /;+ Mikynlea /%$ :$%%; %$$/ %%$ %% Nehkaras /+/ %%%, ;X%+/ %$$/ %%$ %% /+/ %%%, ;X%+/ X$$/ %$% :$+: /+/: :$%+= /$%%+ ;%$%+% %$$ =/%$%: =/++= ;%;%%%: /%+%/: :;%$$$$XXXX$$$$$$%%%%%%%%%$%%%%+++++++++++++++%%%%%%%%%%$$$$$$$%$%$$$$$%%%+ <=======================> THE IMMORTAL CONTACTS <=========================> The Founder Daos The Administrative Staff Davenor Jazryth Tilthian Tzera Veremus The Immortals Eilinel Kierra Malaana Nehkaras Nessa Ordyn Pheolaeria The Darkening Sun Emails Admin Histories <=======================> COPYRIGHT INFORMATION <=========================> **************************************************************************** * The Darkening Sun v3.00 ©2000-2008 Marc Garrett * * >> The Darkening Sun is a MUD that derives from The Dawn of Time parent * * codebase written primarily by Michael Garratt. The code written on * * The Darkening Sun MUD has had contributors throughout time, with a * * majority of all primary developments being designed and programmed * * by Marc Garrett throughout the last seven years. * * >> All work herein is owned by its respective author with credit granted * * to all contributing parties. With the exception of code that is * * contributed to the Dawn community, all design concepts and programs * * are the property of The Darkening Sun administration and may not be * * publically released without the expressed permission from its admin. * * >> This notice of copyright & intellectual property rights in particular * * may not be removed. * **************************************************************************** *************************************************************************** * The Dawn of Time v1.69s (c)1997-2007 Michael Garratt * * >> A number of people have contributed to the Dawn codebase, with the * * majority of code written by Michael Garratt - www.dawnoftime.org * * >> To use this source code, you must fully comply with all the licenses * * in licenses.txt... In particular, you may not remove this copyright * * notice. * *************************************************************************** * >> Original Diku Mud copyright (c)1990, 1991 by Sebastian Hammer, * * Michael Seifert, Hans Henrik Staerfeldt, Tom Madsen, & Katja Nyboe. * * >> Merc Diku Mud improvements copyright (C) 1992, 1993 by Michael * * Chastain, Michael Quan, and Mitchell Tse. * * >> ROM 2.4 is copyright 1993-1995 Russ Taylor and has been brought to * * you by the ROM consortium: Russ Taylor(rtaylor@pacinfo.com), * * Gabrielle Taylor(gtaylor@pacinfo.com) & Brian Moore(rom@rom.efn.org) * * >> Oblivion 1.2 is copyright 1996 Wes Wagner * *************************************************************************** ######################################################################################## ### Below is the technical version of the v3 change log. The purpose of this change ### ### log is to publically display the time and effort that is contributed to the ### ### codebase by its author(s) on a detailed level. It is in no way to be considered ### ### or construed as a public release of any DS-related designs or code. - Daos ### ######################################################################################## PARENT VERSION UPGRADE = Dawn 1.69r+extras -> Dawn 1.69s_beta4 PARENT VERSION TOTAL CHANGES = 241 DEVELOPMENT PERIOD = 02/02/2004 - 08/04/2007 SUB-VERSION UPGRADE = DS v2.64 -> DS v3 SUB-VERSION v2 -> v3 TOTAL NEW CHANGES = 356 DEVELOPMENT PERIOD = 6/29/2006 - 9/29/2007 TOTAL v3 -> 1.69s_beta4 CHANGES = 1261 SUB-VERSION DEVELOPMENT PERIOD = 8/21/2000 - 9/29/2007 NEW VERSION = Dawn 1.69s_beta4+v3 TOTAL Dawn 1.69s_beta4+v3 CHANGES = 597 LEGEND: v1 = DS subversion 1.00+ to parent Dawn. v2 = DS subversion 2.00+ to parent Dawn. v3 = DS subversion 3.00 to parent Dawn. V3e = DS subversion 3.00+ extension to parent Dawn. © = Copyrighted (only found in the copyright statement at top). * = New Change. - = Detailed information about a multi-scale change. % = Incomplete code. # = Commented section. RC_1 = Release Candidate 1. RC_2 = Release Candidate 2. RC_3 = Release Candidate 3. RC_4 = Release Candidate 4. RC_5 = Release Candidate 5. FRC = Final Release Candidate. .cpp = cplusplus code source file. .h = header of code source file. <====================> START THE DARKENING SUN V3 CHANGE LOG <=========================> 29June06 - Daos * Implementation of new DS score sheet design within void show_score(); in score.cpp * Wrote CONFIG2_SCORE_DAWN_DEFAULT & CONFIG2_SCORE_DS_DEFAULT to support two score sheet configs. * Wrote void do_scoreformat(); to enable a player menu to choose between two score formats. * Wrote CONFIG2_SCORE_COMPACT_VER to support a compact score sheet version. August06 - Daos * Coded CONFIG2_USES_SPEC_CLASS_NAME. * Coded core structure of prestige class system. * Coded core structure of prestige points. * Wrote code to prevent the gain of prestige points without being flagged CONFIG2_USES_SPEC_CLASS_NAME (the core of the entire prestige class system). * Coded void do_set_point(); for dynamic bonus & prestige point control. * Modified do_sedit(); to support prestige points and special skill/spell gaining. Doing this increases the bar of gaining prestige skills/spells by introducing a prestige point cost other than trains. * Modified d2magsys.cpp to moderate prestige-class based spell gaining. * Coded do_mpsetgender(); to enables mudprogs to dynamically change a player's gender. * Coded do_mpsetspecconf(); for mudprog support of the prestige class system. * Coded do_mpsetwealth(); to support dynamic wealth setting for mudprogs (gold currency only). * Coded do_mpsethp(); to support mudprogs setting HP values on their targets. * Coded do_mpsetmana(); to support mudprogs setting MANA values on their targets. * Coded do_mpclone(); to enable mudprogs to clone other mobs or objects. * Coded do_mpopurge(); to enable mudprogs to purge items worn on players - idea by Kierra. September06 - Daos * Wrote void do_setrecall(); to enable players to change their recall locations if they are with both a kingdom and a clan to prevent recall point conflicts. * Wrote void do_nowear(); to enable players to toggle a flag to prevent them from wearing articles of equipment they do not wish to wear. * Wrote both do_requestic(); and do_declineic(); * Implemented gender reference fix in void do_channel(); - pointed out to me by Kierra. * Implemented fix for the spell "alarm" which would trigger when an invisible immortal would poof in the room - spotted by Kierra. 13May07 - Daos * General revision of score.cpp which includes: - changed void show_score() to void show_dawn_score_format(); void show_darksun_Score_format(); void show_compact_score_format(); and void show_basic_score_format(); - Rewrote void do_score(); to call new score format functions. - Wrote CONFIG2_SCORE_BASIC_FORMAT to support basic format score sheet. - Rewrote void do_scoreformat(); to support additional score formats. 14May07 - Daos * Removed EQ_FORMAT CONFIG2 defines and removed do_eqformat() for rewrite. * Moved void do_control(); written by Ganieda from skill_ga.cpp to conjurer.cpp 15May07 - Daos * Wrote code to support new CONFIG3 table. * Modified void do_mstat(); to support new config3 table. * Moved CONFIG2_EQ_DAWN_FORMAT & CONFIG2_EQ_DS_FORMAT to CONFIG3 defines. * Added prestige point cap to prevent players from accumulating more than 10 prestige points. * Coded CON_GET_SCOREFORMAT define for scoreformat menu. * Coded void nanny_get_scoreformat(); and its base code for the option menu. 16May07 - Daos * Wrote do_eqformat(); & its command interp code based on an idea by Cora. Revisions will be necessary. 17May07 - Daos * Redesigned the score format selection menu in character creation to be two sections of code rather than one. The original code included the intro/explanation text and code to set the score format config. The new revisions are: - Removed creation titlebar for score format menu & selection menu from void nanny_get_scoreformat(); - Coded void connected_to_CON_GET_SCOREFORMAT(d); and placed all intro/explanation text within that function which changes character connected_state to CON_GET_SCOREFORMAT; at the end of the function which macros to void nanny_get_scoreformat(); - Redesigned void nanny_get_scoreformat(); to perform the basic score format config setting task on the character during creation - which subsequently proceeds to the stat roll menu by calling connected_to_CON_REROLL_STATS(d); * Wrote do_mpsetprac(); for mudprog support. This enables mudprogs to dynamically set a players practice count. * Wrote do_mpsettrain(); for mudprog support. This enables mudprogs to dynamically set a players train count. * Changed the (R) who flag to (RP) to show players that are RPonly. I felt (RP) would be more definitive. 18May07 - Daos * Started core implementation of dawn 1.69s_beta3 parent base which consists of 27 removals, 530 insertions, and 246 changes in which I am not going to list :P. 19May07 - Daos * Patched in 350 various changes into the dawn 1.69s_beta3 parent source code. 20May07 - Daos * Removed old IRC port offset code since it can be manually set in gameset.txt through listen_on. 21May07 - Daos * Changed get_recallvnum within do_goic(); to support 2 parameters. * Changed all pointers to support *player_id rather than *id. * Moved AFF2_DOPPELGANGER to be on the AFF3 table. * Commented out Ylerin's version of do_dream(); because we have our own. * Commented out Tristan's version of do_apurge(); because we have our own. * Implemented new v3 copyright text in all DS source files. * Applied/Rewrote nearly 800 various DS changes to 1.69s_beta3 parent source code. * Changed all skills & spells in the dynamic spell/skill table to SKTYPE from DYNTYPE. * Finished Dawn 1.69s_beta3 upgrade. * Changed #define IS_REALM macro to point to the dynamic realms between gsn_abjuration & gsn_requiem rather than gsn_abjuration & gsn_time. ######## Successful compile and launch of v3_beta_1.exe @ 21:26 of 21May07 ######## 22May07 - Daos * Wrote #define CONFIG3_USES_DS_NOTE_SYSTEM for the new config system. * Wrote #define CONFIG3_USES_DAWN_NOTE_SYSTEM for the new config system. * Wrote void show_dawn_unread_note(); to support note format duality. * Started void show_darksun_unread_note(); - returns 1 warning because it is not finished. * Rewrote void do_unread(); to call two seperate functions, show_dawn_unread_note(); & show_darksun_unread_note(); to support two different outputs. * Wrote void do_noteconfig(); to enable the player to switch back & forth between both formats. * Wrote void do_mprvalue(); to enable the mob or obj to dynamically change room values. * Bug fix - Fixed void do_rvalue(); which was setting a room to sector_inside whenever the "swamp" option was chosen. * Wrote CON_GET_RPONLY_OPTION, void connected_to_CON_GET_RPONLY_OPTION();, and nanny_get_rponly_option(); implementing a RPonly selection menu for character creation. * Wrote CON_GET_NOTE_CONFIG, void connected_to_CON_GET_NOTE_CONFIG();, and nanny_get_note_config(); implementing a note configuration menu for character creation. 23May07 - Daos * Updated makefile.in for the GCC compiler. * Wrote a player version of laston for the integrated mud webserver. 24May07 - Daos * Updated dawn.are to support 1.69s_beta3 merge w/ v3 code. * Removed various mob & room flags from certain areas that are no longer available within the DS code to prevent bootup area bugs. * Removed clan_only flags from various clan-based help files since clan_only is no longer a valid help flag within the 1.69s or v3 code. Doing this has removed a few bootup errors. * Wrote OBJEXTRA2_SPEC_CLASS_ONLY and SKFLAGS_SPEC_CLASS_ONLY flags to mark items or skills/spells to be only available to prestige classes. This subsequently disables non-prestige class players from wearing prestige-class based equipment or prevents them from acquiring prestige-class based skills/spells. ########################################################################################### ### The code below this point is related to the DS bootup process. The definition of ### ### exit_error() is to call a segmentation fault due to a unrecognized value or word ### ### within an area file during bootup. These general redesigns flag objs, mobs, etc... ### ### with generic values to generate a successful bootup with no interruptions. - Daos ### ########################################################################################### * In void load_objects_NAFF(); - the system would call an exit_error() during bootup if a undefined item type was discovered during the area reading process. I have rewritten it to now set the item type to ITEM_TRASH as a generic setting with a log to report the object vnum in question. This will quicken the bootup process without the inconvenience of seeking out a dynamic bootup problem. * In void fread_mob_NAFF(); - the system would call an exit_error() during the bootup process if a mob would have an invalid hitdice (ie. 5d7+3) - and requested that you manually edit the area file to fix the problem before another bootup attempt. The new design now sets a generic hitdice (1d1+1) and logs the report during bootup to prevent the call of exit_error() - which naturally makes the bootup process a lot smoother. * In AFFECT_DATA *fread_affect(); - the system would call an exit_error() during bootup if it found an unrecognized affect location (ie. ST, CO, HP). The code has been redesigned to set a generic affect location of APPLY_NONE - which naturally would set a NULL (zero) location. The second redesign which is related is the code would call an exit_error() if it found an unrecognized bitvector which defines as the value of the affect location (ie. CO +10). The generic redesign is to set the bitvector value to 0. Additionally, the bug report originally pointed to the affect -location- if it aborted on a bad bitvector. This was naturally changed to report a bad bitvector, not affect location. 26May07 - Daos * Started void do_pstat(); and all of its support structs. 28May07 - Daos * Wrote CON_GET_EXTENDED_COLOUR, connected_to_CON_GET_EXTENDED_COLOUR();, and nanny_get_extended_colour(); to support extended colour option for player creation. * Removed defunct clan headers from the clan.txt file. * Wrote CON_GET_RPSHEET, connected_to_CON_GET_RPSHEET();, & nanny_get_rpsheet_option(); to enable players the ability to fill out their rpsheet during player creation or to bypass the option and fill out the rpsheet later. 29May07 - Daos * Wrote connected_to_CON_GET_RPSHEET_CREST, connected_to_CON_GET_RPSHEET_SURNAME, connected_to_CON_GET_RPSHEET_BIRTHPLACE, connected_to_CON_GET_RPSHEET_HAIRCOLOUR, connected_to_CON_GET_RPSHEET_EYECOLOUR, connected_to_CON_GET_RPSHEET_HEIGHT, connected_to_CON_GET_RPSHEET_WEIGHT, connected_to_CON_GET_RPSHEET_FEATURE, connected_to_CON_GET_RPSHEET_PROFESSION, connected_to_CON_GET_RPSHEET_HOBBY, connected_to_CON_GET_RPSHEET_FEELING, connected_to_CON_GET_RPSHEET_GOD, connected_to_CON_GET_RPSHEET_HEALTH, connected_to_CON_GET_RPSHEET_TRAIT1, connected_to_CON_GET_RPSHEET_TRAIT2, and connected_to_CON_GET_RPSHEET_TRAIT3. * Coded new #defines CON_GET_RPSHEET_CREST, CON_GET_RPSHEET_SURNAME, CON_GET_RPSHEET_BIRTHPLACE, CON_GET_RPSHEET_HAIRCOLOUR, CON_GET_RPSHEET_EYECOLOUR, CON_GET_RPSHEET_HEIGHT, CON_GET_RPSHEET_WEIGHT, CON_GET_RPSHEET_FEATURE, CON_GET_RPSHEET_PROFESSION, CON_GET_RPSHEET_HOBBY, CON_GET_RPSHEET_FEELING, CON_GET_RPSHEET_GOD, CON_GET_RPSHEET_HEALTH, CON_GET_RPSHEET_TRAIT1, CON_GET_RPSHEET_TRAIT2, and CON_GET_RPSHEET_TRAIT3 which macros to void nanny_get_rpsheet_/\__________(); to enable the ability for players to set their rpsheet values during character creation. 30May07 - Daos * Finished character creation code that allows players to fill out their RPsheet while creating their character. * Made modifications to the score format & note config selection screens for character creation. ######## Successful compile & launch of v3_RC_1.exe @ 01:15 of 30May07 ######## 31May07 - Daos * Started the code show_compact_score_format(); * Wrote new macro define HAS_SPEC_CLASS which macros to CONFIG2_USES_SPEC_CLASS_NAME which ultimately will be effective for prestige class design and cut down on program length. * Fixed bug in do_scoreformat(); which disallowed someone from switching to the basic score format from the compact version. * Wrote char *get_ic_birthyear(); to support player-age output in compact & basic score format. * Finished struct & counter code for void do_pstat(); 01June07 - Daos * Fixed bug in MAX_REALMS define which was causing an error in check_realm_improve(); 03June07 - Daos * Updated void do_mpsetclass() to support prime & secondary stat updating. * Wrote new class flag "CLASSFLAG_NO_CREATION_STAT" to prevent prime & secondary stat bonuses during character creation. Also updated nanny.cpp code to support new flag. * Wrote code to autoset noteconfig to dawn if no noteconfig is found. 04June07 - Daos * Wrote #define CONFIG3_USES_DAWN_WORTH & #define CONFIG3_USES_DS_WORTH * Wrote void show_dawn_worth(); * Wrote void show_darksun_worth(); * Wrote void do_worthformat(); * Wrote autoset worthformat to dawn if no worthformat is found on pfile. * Wrote autoset scoreformat to dawn if no scoreformat is found on pfile. * Redesigned void do_worth(); to support duality in worth formats. * Designed void char_data::scorebar(); * Designed void char_data::scorebarf(); 05June07 - Daos * Finished void show_compact_score_format(); * Wrote new custom creation code to support 3rd score format option. 06June07 - Daos * Wrote void do_mpsetlevel(); to enable mudprogs to set the player's level dynamically. Make notation that this just sets the level. It in no way includes the increment or decrement of trains, pracs, spells, skills, and/or stats. * Wrote enhancement code to do_mpsetlevel(); to offset the player's exp based on set level. * Wrote new bust_a_prompt() code (%J) to project an HP gauge on a player's prompt. * Wrote new command - void do_hpmeter(); which enables the player's ability to turn on/off their opponents health bar during battle or when looking/glancing at a player. * Wrote new bust_a_prompt() code (%j) to project a MANA gauge on a player's prompt. * Updated code_help "CODE_AUTOMAP_OPTION" to display plaza of Kyldara rather than plaza of Byranth. * Changed char *author to char *creator in mob_index_data(), obj_index_data(), and room_index_data() in structs.h - this inheritingly will enhance OLC to display the creator of each room, mob, & object in an area and display the last person(s) of whom edited it and it's edit date. This is something I started nearly two years ago, but never got around to finishing it. * Added code to support "Created By" for redit, medit, & oedit to display the original creator of the room, mob, and/or object. * Wrote code to support "Last Edited By" & "Edit Date" for redit, medit, & oedit to display the last person to have edited said room, mob, or object, and its respected edit date. * Wrote autonote code to inform OLC & Realm when a room has been deleted. * Wrote autonote code to inform OLC & Realm when a mob has been deleted. * Wrote autonote code to inform OLC & Realm when an object has been deleted. * Wrote autonote code to inform OLC & Realm when a mudprog has been deleted. 09June07 - Daos * Wrote commoner -> warrior mudprog quest. (mainly for testing) * Wrote void connected_to_CON_GET_HINT_OPTION * Wrote #define CON_GET_HINT_OPTION * Wrote void nanny_get_hint_option(); which inheritingly will give players the ability to disable the hint system before they start the game. * Wrote commoner -> cleric mudprog quest. (mainly for testing) 12June07 - Daos * Finished show_darksun_unread_note(); which can be displayed through the noteconfig option cmd. * Finished new pstat command for players. * Added revised do_mprvalue() code by Yusha. ######## Successful compile & launch of v3_RC_2.exe @ 11:49 of 12June07 ######## 13June07 - Daos * Added replace_string() code to fix memory leak in mudprog system spotted by Yusha. * Added memory leak prevention code for new room, obj, & mob creator/last_editor info. 14June07 - Daos * Wrote #define CONFIG2_SCORE_CONTEXTUAL_FORMAT * Started void show_contextual_score_format(); which will be based on a narrative output. * Updated void do_scoreformat() to support 5th score format option. * Updated void do_score() to support 5th score format option. 15June07 - Daos * Wrote void do_areadone(); which will enable players building to quickly inform the imms of a completed area on OLC. * Wrote void do_requestolc(); which will enable players to quickly request to build a new area on the OLC port. * In nanny_get_extended_colour(); - I wrote code to detect if a player has a MXP supported client to prevent the player from selecting the extended colour option if they don't have MXP or have a flawed implementation of MXP on their MUD client. The code subsequently leaves them a message and moves them to the next part of character creation. 17June07 - Daos * Wrote code to support worth counter stat for pstat command. * Wrote code to support login counter stat for pstat command. * Wrote code to support logout counter stat for pstat command. * Finished show_basic_score_format() - a score output for players using screen reading software. * Wrote hero-class promotion struct code char *c_prom_name and all other related code. * Wrote new config3 define (#define CONFIG3_USES_CLASS_PROMO_NAME) * Wrote new macro #define IS_PROMOTED_CLASS(ch) which macros to CONFIG3_USES_CLASS_PROMO_NAME. * Updated void do_mpsetspecconf() to support the removal of the CONFIG3_USES_CLASS_PROMO_NAME. * Changed void do_mpsetspecconf() to void do_mpmakeprestige() - makes more sense. * Wrote new mudprog command - void do_mpcpromote() to promote hero-level class promotions for the tiered class system. * Wrote do_presxp(); for the prestige class system. (core #2 of the prestige level gain code.) * Wrote #define SKFLAGS_PROMOTED_CLASS_ONLY which will be used to prevent the gain of promoted class based skills/spells on non-promoted classes. * Fixed bug in do_wear() involving the CONFIG2_USES_SPEC_CLASS_NAME() check. * Fixed bug in do_second() involving the CONFIG2_USES_SPEC_CLASS_NAME() check. * Wrote #define OBJEXTRA2_PROMOTED_CLASS_ONLY to flag various objects to be equippable only by those of the promoted class. * Cut down the class detection code in show_dawn_score_format(), show_compact_score_format(), show_basic_score_format(), and show_contextual_score_format() by using HAS_SPEC_CLASS(v) and IS_PROMOTED_CLASS(v) macros rather than the CONFIG3 checks. * Renamed command "void do_set_spec_class()" to "void do_setprestige()" * Wrote void do_cpromote(); * Major problem prevented -> Wrote REMOVE_CONFIG code in both do_setprestige & do_cpromote to prevent either config flags from overlapping each other and creating an internal flag conflict. 18June07 - Daos * Removed do_prtalk(); - old defunct code from DSv1 * Removed do_preply(); - old defunct code from DSv1 * Removed do_prspeak(); - old defunct code from DSv1 * Removed do_prtell(); - old defunct code from DSv1 * Removed do_unprteam(); - old defunct code from DSv1 * Rewrote do_prteam(); - originally written in 2002 based on a collaborated idea with Kiro that sadly never got implemented. The original system consisted of the abovementioned commands that has been removed that was for DSv1.37 based on parent source 1.69p - The new and improved system is based on this one command with -nine- sub-parameters! This eliminates command cluster and generates a more organized system. * Implemented note_to target "prteam" to allow players of the prteam to receive those notes. * Wrote new #define IS_PRTEAM(ch) macro to for programming ease. * Updated both worth formats to support PRteam info. * Wrote new PRTALK_LOGFILE parameter. * Updated Yusha's do_check() command to support PRTALK option. * Added [PRteam] who flag to let players know which PRteam member is online. * Added new PRnote spool. ######## Successful compile & launch of v3_RC_3.exe @ 00:00 of 19June07 ######## 19June07 - Daos * Modified show_darksun_score_format() to support 3 tier class system. * Finished show_contextual_score_format(). * Wrote code to support Linkdead count for pstat. * Wrote code to support Reconnect count for pstat. * Wrote code to support say, sayto, & saymote count which is defined as Talk Count for pstat. * Wrote note checking counter for pstat. * Wrote note posted counter for pstat. * Wrote rpnote posted counter for pstat. * Wrote prnote posted counter for pstat. * Wrote idea posted counter for pstat. * Wrote misc posted counter for pstat. * Updated makefile.in to support prteam.o on GCC unix compiler. 20June07 - Daos * Wrote mxp support tags for darksun note board to display the next unread item. * Changed do_noteconfig() to do_noteboard() - makes more sense. * Changed CON_GET_NOTE_CONFIG() to CON_GET_NOTE_BOARD. * Changed connected_to_CON_GET_NOTE_CONFIG(d); to connected_to_CON_GET_NOTE_BOARD(d); * Changed nanny_get_note_config() to nanny_get_note_board() * Wrote code to inform player if they have a flawed implementation or no implementation of MXP when switching to the DS note board format using the noteboard command. * Greatly enhanced darksun note board by making it -fully- mxp supported. 21June07 - Daos * Updated MOTD - cut down length primarily. 25June07 - Daos * Made do_worthformat() fully mxp supported. * Made do_noteboard() fully mxp supported. * Made do_scoreformat() fully mxp supported. * Added preview option to scoreformat. * Made preview option fully mxp supported. * Made basic score format available for character creation. * Made contextual score format available for character creation. * Added prestige point, prestige level, and hero level counter to all score formats. * Added code to show if a player is a noble or not in the 2nd score format. * Removed a lot of unnecessary if_checks from all score format code to induce a faster & cleaner compile. * Implemented prestige level gain. * Prestige class players will now have a chance of receiving a stat upgrade bonus to any potential stat under 100 (throughout time, this could enable a player of acquiring 99+ stats) * Added code to void do_mset() to support dynamic alteration of prestige levels. * Added code to void do_mset() to support dynamic alteration of hero levels. * Wrote do_credit() command to show a menu of various credits from past codebases w/ MXP support. 28June07 - Daos * Wrote new class flag, CLASSFLAG_IS_COMMONER_CLASS to support various features supported only for commoners. * Wrote new iftype CHK_ISPROMOTED (if ispromoted $n) for mudprogs. * Wrote new iftype CHK_ISPRESTIGE (if isprestige $n) for mudprogs. * Wrote new iftype CHK_ISPRTEAM (if isprteam $n) for mudprogs. 29June07 - Daos * Wrote new mud command, do_mpsetstat(); which will enable mudprogs to set potential stats on their target. 30June07 - Daos * Made the command do_setrecall() MXP enhanced. * Made the command do_logwipe() MXP enhanced. * Added code to prevent potential stats from exceeding -0 or 101+ for do_mpsetstat() 01July07 - Daos * Completed core hero level & prestige level gain system which involved revising half of the void gain_exp() call in the update code. A player must acquire 91 hero levels before they will be allowed to progress to the next tier of levels. 02July07 - Daos * Took out Ganiedas stat gain code for heros and wrote void gain_bonus_stat() to be called when a player gains a hero level or prestige level. Credit still remains for her initial design. * Wrote new command called do_setlevel() which will be used for debugging of the hero & prestige level system - (note: this command does not increment or decrement the gain of trains, pracs, or spells.) 03July07 - Daos * `? now supports extended (HTML) colours while generating a random colour code. * Modified do_heroxp & do_presxp for a more efficient tiered level system. * Wrote char *c_mast_name as core for master_class. * Wrote new config3 #define - CONFIG3_USES_MASTER_CLASS_NAME. * Wrote new macro IS_MASTER_CLASS(ch) for programming efficiency. * Wrote new OBJEXTRA2_MASTER_CLASS_ONLY #define. (for object restrictions) * Wrote new SKFLAGS_MASTER_CLASS_ONLY #define. (for skill/spell restrictions) * Finished implementation of tiered class system w/ all support flags & code. DS now supports a five tiered class system! (commoner->normal_clss->hero_clss->prestige_clss->master_clss) * Added MASTER_CLASS code to the score code. 04July07 - Daos * Wrote new AFF3_DEMON_PLAGUE affect. * Rewrote 'demon plague' spell to make use of the AFF3_DEMON_PLAGUE affect flag rather than the AFF_PLAGUE flag. * Wrote new support code to cause the spread of the demon plague if conditions are favorable. * Decided to rewrite the prestige & hero level gain system. The original system consisted of the use of (continue;) statements - which worked ok - however, the behavior of the actual gain system was not satisfactory. The new and improved gain system works with much more efficiency. * Removed do_setprestige(); command. * Removed do_cpromote(); command. * Wrote master command do_classconf() which controls flag toggling of hero, prestige, & master class control - which inheritingly makes abovementioned commands (setprestige & cpromote) defunct, hence, the purpose of their removal. 06July07 - Daos * Rewrote gain_bonus_stat() function on hero & prestige level gain to two seperate functions: - gain_hero_stat(); - gain_prestige_stat(); * Removed bonus point gain from hero levels. With the new tiered class & level system in place, that feature would be abundantly underbalanced. * Removed `< emphasis/bold colour code. (I have something else planned.) * Removed `> italics colour code. (I have something else planned.) 07July07 - Daos * Wrote new IS_COMMONER macro define which points to CLASSFLAG_IS_COMMONER_CLASS for programming efficiency. * Wrote code to grant commoners an improved haggling ability. In short, commoners can save 50% more on purchase costs with haggle than non-commoner players. This includes the purchase of pets & renting rooms. Selling items, you can earn an extra 25% with haggle versus non-commoner players. Idea by Malaana. * Say goodbye to the weenie 5 gold surcharge for deposits & withdrawels. Banks will now charge 15% of your gold for deposit & 25% for withdrawel. May seem excessive, but will promote a strong internal mud economy among the players. This is also starting code for loans & interest bearing accounts code (future implementation). * Those of the commoner class will NOT have to pay a surcharge at the bank for withdrawels & deposits. Idea by Malaana. * Commoners upon reaching level 21 and not joining a guild at level 20 will automatically be set to RPONLY. Idea by Malaana. 08July07 - Daos * Added code to "withdraw" & "deposit" bank commands to show you either how much you need to have to make a successful deposit/withdrawel or show you how much your deposit/withdrawel expenses are after a successful transaction. * Wrote new PLR2 bit define - PLR2_IS_BANK_MEMBER. * Wrote new IS_BANK_MEMBER macro define for programming efficiency. * Changed IS_PROMOTED_CLASS macro to IS_HERO_CLASS. Makes more sense. * Changed iftype CHK_ISPROMOTED (if ispromoted $n) to CHK_ISHEROCLASS (if isheroclass $n). * Wrote an enhanced banking code to enable players to become members of a bank which generates benefits of a lower surcharge percentage (5% deposit, 10% withdrawel). * Added code to char_data to support banking of both silver & gold. * Enhanced the banking code to support the deposit & withdrawel of silver and gold with applied bank fee structures. * Wrote code to automatically convert players with gold in their bank account to transfer from ch->bank to ch->bankgold - this will prevent the loss of player bank accounts with the newly enhanced banking system running. * Wrote new banking system as void do_improved_banking(); which interprets to the 'bank' command. * Wrote new iftype CHK_GOLDINBANK (if goldinbank $n ) for mudprogs. * Wrote new iftype CHK_SILVINBANK (if silvinbank $n ) for mudprogs. * Wrote code to grant players the ability to -cancel- their bank membership. * Finished interest gaining system for players at banks. Interest rates depend if the player is a bank member or not, either way, players will automatically earn some extra gold & silver through the bank on a monthly basis. * Wrote new iftype CHK_ISBANKMEMBER (if isbankmember $n) for mudprogs. * Removed skill_ky.cpp (Kyron's skill file) from the source code - moved bandage skill to the new source code file - commoner.cpp - where all relevant skill & function code for the commoner class will be called. * Implemented commoner skill 'bandage' - originally written by Kyron in October 2003, updated it to meet our current programming defines and structs. * Removed magic_ix.cpp & magic_ix.h (Ixyltryxyl's magic file) from the source code - All items from within were copy/pasted functions from Kerenos' magic file (magic_ke.cpp) and generally had no purpose or function - just wasted compile time. * Wrote dowsing skill for commoners. Idea by Malaana. 09July07 - Daos * Created bankedit.h which is the start of the core implementation of BankEdit OLC interface. This will enable the creation of a variety of different financial institutions with different fee structures, interest rates, etc... * Created the bankedit interpreter prototype. * Wrote the olc_cmd_type bankedit_table[]; * Wrote EDIT_BANK(); macro. * Wrote core bank implementation files bank.cpp & bank.h 10July07 - Daos * Finished BankEdit OLC interface. * Finished core implementation of bank.cpp & bank.h to support virtual banking. The function - do_improved_banking() will need modifications to support the new virtual banking code. The original function design was for static banking. This inheritingly will make all changes posted on 07July07 regarding bank fees obsolete. * Wrote do_bankedit(); as main interpreter to enter into BankEdit OLC interface. 11July07 - Daos * Wrote int rclassallowance for mixedit to generate a specified result classallowance from a successful mixture for herbalism. * Wrote new AFF3 flag define, AFF3_NATURE_SKIN. * Wrote new ds_gsn.h file to support v3 global spell numbering. * Organized the case handling in move_char() when confusion spell is called. * Wrote 12 new prestige druid summons: - naturetap() - manadraw() - natureskin() - summon_elemental() - earth_bind() - lava_burst() - crashing_wave() - avalanche() - hurricane() - commute_land() - natures_providence() - gentle() 13July07 - Daos * Wrote 4 new druid elements: - wave() - flame() - wind() - stone() * Wrote new prestige druid spell, clip_wings() * Wrote vn_int bmember_room to identify if a player is a bank member or not - anything >0 is assuming a player belongs to a bank. * Removed BankType() bankmember from chardata.h since bmember_room has made it defunct. * Removed PLR2_IS_BANK_MEMBER bitflag since it was based on a static bank system. * Redefined IS_BANK_MEMBER() macro to check player's bmember_room rather than PLR2_IS_BANK_MEMBER bitflag for the new virtual banking code. This should not have an affect on the mudprog ifcheck (if isbankmember $n). 14July07 - Daos * Wrote do_savebanks(); for manual bank saving. * Wrote do_loadbanks(); for manual bank loading. 16July07 - Daos * Went through Krivlarik's magic file (magic_kv.cpp) and modified all code he wrote for clerics back in 2000. These four spells will be added to the prestige spell list. For historical reasons, I have decided to allow the spells he created to remain in magic_kv.cpp rather than move the spells into the source file dedicated for prestige clerical prayers. 23July07 - Daos * Wrote new bitflag PLR2_IS_BEING_CARRIED. * Wrote new bitflag PLR2_IS_CARRYING_PLAYER. * Wrote new macro pointer IS_BEING_CARRIED which points to PLR2_IS_BEING_CARRIED. * Wrote new macro pointer IS_CARRYING_PC which points to PLR2_IS_CARRYING_PLAYER. * Fixed bug in IS_WIZARD macro pointer which pointed to mob->act, ACT2_IS_WIZARD rather than mob->act2, ACT2_IS_WIZARD. * Wrote new bitflag PLR2_NOCARRY. Don't want players being carried off without consent. * Wrote void do_nocarry() - prevent people from carrying you. * Wrote void do_carry() - carry a player. * Wrote void do_setdown() - set down a player. * Finished core implementation of player carry code. * Wrote new bitflag ACT2_NECROTAHN. Idea by Eilinel. * Wrote bool spec_cast_necrotahn() which will enable mobs with the necrotahn act2 flag to cast necrotahn based spells. Idea by Eilinel. * Wrote code to convert `Z & `z HTML colour code to `R ANSI. 25July07 - Daos * Wrote code to prevent players from carrying translucent targets, or from carrying targets if they are translucent themselves. * Cleaned up the code in void do_bell() for a cleaner message output. * Enhanced void do_bell() to autonote support & law when a newbie uses the bell command. * Wrote do_nreport() command to enable players to send in a report to the immortals if they do not receive any assistance when using the bell command or to elaborate on a positive experience with our newbie support team. * Wrote new bitflag CONFIG3_CAN_USE_NREPORT. * Wrote new macro pointer CAN_USE_NREPORT(ch). * Updated do_check() to allow viewing of nreport. * Cut down length of void do_check(). ######## Successful compile & launch of v3_RC_4.exe @ 23:00 of 25July07 ######## 05August07 - Daos * Upgraded parent base from 1.69s_beta3 to 1.69s_beta4. * Redesigned all DS game flags: - Changed GAMESETTING6 to GAMESETTINGDS1. - Changed GAMESET6 to GAMESETDS1. - Changed flags6 to flagsds1. # This subsequently will make flags6 available for all dawn related development and will end # all conflicting code. Idea by Kalahn. * Wrote new command called 'nopkill' or 'nopk' - to prevent players from accidently attacking one another. Idea by Caeru. * Wrote new bitflag - PLR2_IS_NOT_PKILLING to support 'nopk' command. * Wrote new macro pointer NOT_PKILLING(ch) to support new PLR2 bitflag for 'nopk' command. * Finished base code of nopkill flag in fight.cpp - if someone intentionally attacks you while you have this flag toggled, the flag will automatically be removed so you can engage in combat. This feature in no way should be construed as means to avoid pkill - it is simply designed to prevent players from accidently using aggressive spells or skills within the vicinity of other players. 08August07 - Daos * Wrote new prompt code (%y) to display a the percentage of a player's tiredness. # ie. 37% Tired * Wrote build expansion code to support the building of torches. 12August07 - Daos * Wrote following HTML -> ANSI conversion code based on Malaana's suggestion: - `E `H `k `L HTML converts to `B ANSI. - `Q `q `u HTML converts to `M ANSI. - `d HTML converts to `Y ANSI. - `P `T `z `Z HTML converts to `R ANSI. - `4 HTML converts to `y ANSI. - `V HTML converts to `W ANSI. - `6 HTML converts to `C ANSI. - `2 HTML converts to `w ANSI. * Wrote code to make a carried player fall off the carrier if they attempt to move causing minor damage and the removal of the IS_BEING_CARRIED bitflag. Primary reason of this code is a potential exploit I discovered in which a carried player can move off the carrier, and freely walk around without incurring the loss of movement points. This also prevents pkill-related exploits. * Added code to prevent players from carrying a target that is affected by the sleep spell or is in too deep of a slumber. (ie. if you passed out from exhaustion) * Added necessary case handlers to handle various positions the carriers target may be in. * Added conditional code to prevent the player from carrying a player that is in a fight or to prevent the player involved in a fight from carrying another player. * Added condition to prevent player that is in a position lesser than standing to be unable to carry any player. 13August07 - Daos * Added letgain condition to enabled players under level 8 to use the OOC channels if they are letgained. Idea by Lowana. 16August07 - Daos * Implemented new command "struggle" as means to break away from a player that is carrying you. This command does inflict minor damage when you struggle free and fall to the ground. * Rewrote void do_improved_banking() to call seperate banking functions for organization. 17August07 - Daos * Wrote new command do_reportbug() which breaks down the bug types into three categories (code, realm, typo) - this makes it easier for players and prevents bug logging going to inappropiate councils. 19August07 - Daos * Changed dynamic banking function prototype to do_new_improved_banking(); from do_improved_banking(); * Commented out function prototype do_new_improved_banking(); due to the dynamic system not being fully ready for live use & I want to get v3 released. This will be released as part of the v3 extension code. * Designed function prototype do_improved_banking(); to be based on static banking. This will enable players to continue to use the banking code with the enhanced features such as interest rates & silver deposits/withdrawels. * Implemented "transfer" argument to do_improved_banking(); based on an idea by Scoral. * Established static based interest rate code to enable players to accrue 0.22% interest on gold and 0.33% interest on silver per IC month. * Implemented new ACT2 flag, ACT2_DISCRIMINATE_XPMODS, which will enable mobs with this flag toggled to bypass the xpmod formula during the hotreboot/bootup process. Idea by Eilinel. * Wrote code in int xp_compute(); to check for new ACT2_DISCRIMINATE_XPMOD flag - if expressed condition is met, the substitute xpmod formula is called in place of the default formula. Idea by Eilinel. * Implemented new mudprog trigger MTRIG2_STEAL (activates on failed attempts at theft) - Idea by Davenor. Still requires additional code to support new MTRIG2 defines. 21August07 - Daos * Enhanced AFK prompt to display game time. - Idea by Ordyn. 25August07 - Daos * Fixed various player carry bugs. * Fixed bank deposit bug. * Fixed OOC channel bug. * Fixed crash bug involving missing bitflag w/ prteam. * Fixed MXP bug in special noteboard #2. * Fixed various compile warnings. * Fixed crash bug involving config flag misdirect with scoreformat. ######################################################################### # A special thanks to the beta testers of whom spotted these problems # ######## Lasgha, Solomon, Adilay, Caeru, Ramuh, Drisdale, Rourry ######## ######################################################################### ######## Successful compile & launch of v3_RC_5.exe @ 00:22 of 25August07 ######## 26August07 - Daos * Removed sublevel gain requirement for hero/prestige class players. * Implemented condition to automatically set established heroes to be hero class. * Changed hero bitflag CONFIG3_USES_PROMO_CLASS_NAME to CONFIG3_USES_HERO_CLASS_NAME. * Changed SKFLAGS_PROMOTED_CLASS_ONLY to SKFLAGS_HERO_CLASS_ONLY. * Changed OBJEXTRA2_PROMOTED_CLASS_ONLY to OBJEXTRA2_HERO_CLASS_ONLY. * Changed char *c_prom_name; to char *c_hero_name;. * Changed classedit_prom_name to classedit_hero_name. 30August07 - Daos * Wrote fix for noteboard option 2; the unread count was not incrementing appropiately. 04September07 - Daos * Wrote code to prevent a player carrying another player from casting magic. * Wrote code to prevent a player from casting a spell on a carried player. * Wrote code to decrease the chance of rain from 25% to 12.5%. * Added additional sky condition types to do_weather(). 05September07 - Daos * Wrote #define CON_GET_PAGING_OPTION. * Wrote connected_to_CON_GET_PAGING_OPTION(d). * Wrote nanny_get_paging_option(). 06September07 - Daos * Wrote code to make hero level gain only cost 500xp. * Wrote code to make prestige level gain only cost 750xp. * Wrote code to automatically enable established heroes to gain 30 hero levels upon conversion. * Wrote wizard eye fix from a bug spotted by Thaus. * Wrote hero point code (1 in 3 chance of gaining a hero point per hero level gain). * Wrote conversion code to grant established heroes a set number of hero points based on herolvl. * Modified do_set_point(); to support the manual setting of hero points. 12September07 - Daos * Wrote new object trigger OTRIG_SIT_REST_ON_POST. * Wrote new OLC command void do_olcsetlevel(); 19September07 - Daos * Wrote new ROOM2 flag; ROOM2_ARENA - to enable player sparring with 100% subdue accuracy. * Added code to call function prototype do_unread(); if no note types are found. 20September07 - Daos * Wrote fix for check_phase(); ######## Successful compile & launch of v3_FRC.exe @ 13:00 of 21September07 ######## 29Septemeber07 - Daos * Wrote void do_hpoint() as point distributor for hero points. * Wrote conditions to remove IS_BEING_CARRIED or IS_CARRYING_PC macro bitflags on quit_char(). * Wrote conditions to prevent the casting of gate or teleport on a player being carried or a player carrying a player. ######## Successful compile & launch of v3.exe @ 18:40 of 29September07 ######### <========================> END THE DARKENING SUN V3 CHANGE LOG <=========================> NOTE: v3_FRC.exe is defined as final release candidate. INCOMPLETE DUE TO LACK OF TIME: % EQFORMAT. This is going to take considerable time considering equipment is based on a const table[]. I could create a second const table[] or int iWear2, but, it will frag up the wear defines in the primary header file. I will release it in a future v3-extension implementation (v3e). % RACIAL WEAR SLOTS. This will also be released in a future v3e implementation. % RANGED ATTACKS. I wasn't happy with an earlier design I made, and because I want to get v3 released, I will present this as a future code feature. % CLAN/KINGDOM ALLIANCES. I have yet to design a perfect & balanced faction system. I have developed various systems on an -ALPHA- level with varying results. This will be released in the near future. EXPERIMENTAL: % MXP SUPPORTED IMG TAGS (MUD GRAPHICS). I really don't care about this because it was an experiment anyway. I was successful to a point, however, there are no MUD clients that really support IMG tags - so attempting to develop this any further would be a general waste of time. % MXP SUPPORTED HYPERLINKS. This actually does work (http://) - however, I don't have the time to devote to create a fully supported hyperlink mud interface. You can expect to see this in a future installment of code. Please send all bug reports to either of the following address: daos_AT_att:DOT:net (no spam) - Daos Founder & Head Program Director The Darkening Sun v3.00