950609 Hacklog begins anew. Attempting to combine some of the hacks I did earlier with the version that actually works. 1826 combined magic[123].c into magic.c and spells[123].c into spells.c. 2008 fixed signal handling for Linux. 2025 changed default whod to only show character names... not titles. 2035 eliminated log(), dlog(), and slog() functions from utils.c. added dlog() macro to bug.h and changed the two slog() calls into standard log() calls. 2051 created act_comm.h file for function definitions. 2345 restored old database routines so it should load the old format of database. 950610 0145 started removing all external references from all .c files... those should be in header files!!! 950611 0437 use more tricks from the running wiley..... dead bodies now have corpses, and you default to sleeping when you reappear in the inn. 950614 0345 finally fixed a few nagging bugs. nanny() has been rewritten. old routines like send_to_char() have been replaced with varargs routines like cprintf(). Now all places that used to sprintf to a local scratch var should be redone.... <sigh>. Rent is now done properly. Pro-rated by the second and rounded to the nearest gold piece (truncated actually). I believe the code is now stable enough to try indenting and removing warnings. This is now a backup copy that will run on a seperate port for testing, in case I'm wrong! 0354 did a global sed on all files: s/sbyte/BYTE/g s/ubyte/UBYTE/g s/sh_int/SHORT/g s/ush_int/USHORT/g s/byte/BYTE/g s/bool/BYTE/g 0402 ran all source through indent. 0412 It compiled perfectly.... warning debugging can begin tomorrow then! 950615 0300 fixed a bug in suicide. changed prompt and fixed a bug in do_score. 0500 changed who format and added more whod options. 950617 0530 made most menus file-based instead of hard-coded. changed group command to only allow the group leader to add people who are +/- 20%+1 of their level... thus a 2nd level character can only group with 1-3rd level. a 10th level could group with 7-13th, a 40th would be ok with 31-49th. We can adjust this figure if that sounds bad. 1120 caused villagers to wake people up on a 25% chance (always if they start following you). 950618 0412 fixed bug in villager code. 0446 added argument to score command (for immortals only). 0456 began ridding the code of warnings. yywrap.c is clean. bug.c is almost clean: global.h:462: warning: function declaration isn't a prototype global.h:1144: warning: function declaration isn't a prototype these are from declarations and typedefs of the form: form: foo (*bar)(); I don't know an easy and correct way to eliminate them. sound.c is almost clean. hash.c is almost clean. sign.c is almost clean. signals.c is almost clean. added a signals.h header file. magic_utils.c is almost clean. 1234 fixed long-standing bug in act(), comm.c. Checks for invalid character or location when doing a TO_ROOM action. 1348 multiclass.c is almost clean. 1404 act_social.c is almost clean. 1513 changed do_who() command to allow NPC's to use who. Why would an unswitched npc ever use it? 1547 trap.c would be clean if character attributes were not chars. We should change them to ints, but to do so would invalidate the player files... so until we get the ASCII save routines done and in place, we can't do anything about it. 1701 changed do_look() so that one cannot see outdoors after dark. (if the moon is not new, you can see monsters.) 950619 0331 tweaked do_look() a bit more to allow for dark hours between sunset/moonrise and especially moonset/sunrise. also changed do_exits() in a similar fashion. 0530 a bit more tweaking... added in cloud-cover. also, made hunger and thirst more devastating. They do damage now and can kill you! 950621 0600 changed switch command to try finding mob in room first. added ascii player save function.... this saves the char_file_u structure, rather than directly from the char_data. Done for ease of porting for now.... will add read routines later. Treat this as a report file until they are in. 1354 gave immortals the ability to walk through closed doors. 1655 found crasher in who routines... when whod ran through the character list, it didn't check for linkdead people, and thus segfaulted when it tried to access their descriptor for the idle time. 950622 1430 Neatened up the door-walk routine a little.... 950623 0212 Fixed bugs in score... including sneak bug. 0341 got order of class names right. 950624 1830 Fixed bug in score... uncleared buffer made a mess of affects. Made Eli tell evil people he won't heal them instead of just ignoring them... this should help people figure out why he heals villagers but not them after they slaughter lots of children. 950625 0530 Fixed a few more bugs (including pretitle) and neatened up code a bit. Set my room and muidnar's room to be rent areas. 1519 Added fuzz(x) function to utils.c. The returns a random number from -x to x, which can be used to slightly adjust things like zone reset times, etc... 950626 0305 added a red dragon to the polymorph list (wiz only), and fixed the parser for that spell. Started renaming levels (mage is done). 950630 2100 added "all" argument to restore.. will replace restoreall command. changed hunger again.. you don't lose move now. changed score a bit more.... player tracking now complete. 950701 0353 added a reset command to reset zones by hand. added a skeleton event command, which will allow wizards to do complex events with minimal effort... such as loading lots of rats into Shylar, or bringing forth a goblin raid. 1654 rat event done.. may need some tuning yet. must be set to NOT load mobs into rooms which are peaceful, or which have no exits. 950702 0600 added a zone purge command. fixed up rat event a bit.... seems ok now. fixed say bug when using ' command. 950706 1330 changed lightning bolt spell damage to be uncapped (L/10+ L/3 + 1)d6.... this provides a slightly lower damage at low levels but considerably higher damage at upper levels. Unlike magic missile, one should be able to channel more electricity as they get higher (mm has a physical limit on the number of missiles shot). Also changed rat exp worth. Also changed fireball from L/5 to L/3. 950709 2123 Hacked the shit out of the zombie master routines. Added our friendly mosquitos to the game. 950710 0600 Fixed all the bugs I could find in zombie master's new routine. MUCH more intelligent now. added event to bring xenthia and a few followers into the world. be careful around shylar.... highstaff is ok but she won't last long! OUt in the woods or the mountains is great. Shylar is ok, IF a few higher levels are on to take care of her. EVENTUALLY, code will be written to force her zombie hoard to disperse and attack Shylar when it hits 50 strong. (randomly distribute them throught the shylar zone until they are all gone... make them not follow her... make them aggressive, also make other mobs hate them... so the villagers will help) Added hate flags back to lovitar! 950717 0700 Caught Steve cheating like a dog. Wasted time dealing with him. Made defines for command numbers, and changed COMMANDO() calls to use them instead of the hard numbers.... This should let us shuffle the order around later and get rid of all the socials. Must go through all the code that is called by them (do_*) and change hard coded numbers to the defines. 950720 0600 Tweaked gain routines a little more. Found tics and reset them to 70 seconds (70 *4 instead of 75 * 5) Added in a line to randomize it by adding 20 seconds.... commented out until I see if the game CAN keep up with 70 second tics. If so, I'll add it in so tics will be 60..80 seconds. 950721 0831 Rewrote tick handling to use seperate counters... this makes it easier to see how long until the next tick occurs.... we will need to synchronize ticks with realtime somehow... I can't find anywhere that does this, so I think that's why it gets so far off. Tweaked a few more numbers.... ticks should now be between 70 and 95 seconds... Added ticks command to give a full summary of tick info. Added feature to tell immortals when the next tick will happen. 1715 Caused meat to spoil. Fixed invis level to work as described. Fixed bug in dispel_magic... more to be done.. lots of hardcoding. Possible Muidnar hack fixed :) 950722 0700 Made Eli cast refresh and bless people (make them less evil) Also made him cast fear at anyone > 4th level who was -900 align 1842 Did a little bit of the prototyping for future genericism of spellcasting. rangers seem to have been hacked into casting, instead of changing spell_info_type as should have been done... we'll have to change that later to accomodate druids and future classes. 950737 1720 Hacked in ascii restore files... not fully working yet. also redid who a bit to include start time. 950728 1000 Got ascii save routines to work finally. Tweaks to axe code and who routines. bug fixes for do_invis and a couple others.. minor. The save routines are the biggies... we can now edit player files with vi directly. object save files should be next. 950729 0700 Hopefully have Xenthia coded to disperse most of her army to Shylar when she gets 50 of them! This will be cool if it works. Fixed a couple more little things. 950907 0506 Yup.. haven't kept loggint thigns :) Added taunting to players who get killed: "A villager mocks..." Cleaned up spells a bit.... up to the c's. 950919 Quixadhal 0630 EEK! No logs! Argh! Ok, fixed astral a bit more.... Also changed whod to we level 59ers are something more than just a Whizz... :) 950922 Sedna 0417 Had a really bad day at work and decided to take it out on wiley players... :^) I made the butler friends with the banker. That is, if you have less gold on you than what it takes to rent, you can rent with what you have in the bank. Conversely, if you re- enter the game and ran out of gold in your pocket, the game will deduct the difference from your bank account, telling you: "You ran out of gold and had to make a quick trip to the bank." It will call you a deadbeat only after draining both your pocket and your bankbook. :^) 951003 Dirk 1800 Added cure blindness and remove poison to Eli, but only if you are very good (above 750 align) Right now it's cut and pasted from the other ones, so if you are under 750 and need help, he will either say you are wicked, or bless you. I may change that, so he won't cast bless on you if you are under 750. You'll just need to be that good for him to help you. 1950 Added the hack where he won't bless you now if you're under 750, he'll just tell you that you aren't good enough, and he will let you suffer 951106 Sedna 0140 Wrote a line in act_comm.c which sends a message to player when they appear which is identical to the message they receive when invisibility wears off. "You feel exposed." 951119 Quixadhal 0332 Lots of changes have not been logged... Here are a few. o Modified group code so that it works correctly. People can group withing lvl/2 of their leader. group members no longer get pasted by area affects. exp is PROPERLY distributed to all group members, but people who are not in the room will get 1/10 of their share. NOTE: the other 9/10 is LOST as a penalty for the rest of the group to discourage wimps and slackers. o summoning/animate spells now have a chance of making the target turn on the caster.... wouldn't YOU be pissed? o colour-spray can paralyze very low level monsters. o meat spoils and becomes poisonous. o a village guard patrols shylar. o charm monster/charm person are now based on the humanoid status of the target. o registered players get a 10% exp bonus, but can no longer disable summon or teleport. Also, anyone can now tell a reg'd player by looking at them. o added a rentmode command to enable/disable rent costs. it should eventually save the state in a file, but for now you can toggle it by hand. o added more parameters to pset command. o removed nasties that had energy_drain spells from the undead mobs in event undead.... that was too much. o probably more changes that I can't recall.. but that's what I get for ignoring logs.... let's all promise to be nice hackers and keep this file up to date ok? 0518 Added messages for rebooting... also neatened up the time command. Made Eli turn undead. Should change spell_turn() in magic.c so that: if the caster is good and they are maybe twice as high level as the mob, the mob should be killed instead of forced to flee. if the caster is evil and they are twice as high, the mob should become a follower for a limited duration. (IE: charm monster) 951125 Quixadhal 1944 Hacked comm.c to retry socket initialization every second for a minute. 951130 Sedna Modified the act_mobile to stop a mob from following a player after their charm wears off. Modified the puke function so that instead of a simple emote, it actually deducts 2 from the player's fullness and does one point of hit damage for puking. 951203 Quixadhal 2102 Fixed puke and exempted gods from the damaging effects. Reclaimed immortal status for myself alone while the minor Gods shuffle and fight amongst themselves. 951209 Quixadhal 1754 Fixed exit command to be friendly to immortals. 951210 Quixadhal 2334 Modified stat command, added doh social, added half-done clone spell. Minor tweaks that I forgot to log yesterday. 0006 Removed cust command... replaced with more useful doh emote :) Removed lroom command... replaced with " alias for tell. Modified interpreter to allow no-spaces between ' " , and : for the say, tell, gtell, and emote commands resp. 0101 Prevented slaying of greater gods by lesser gods... they have to kill us the hard way. 0118 Made emote tell you "You emote: ..." if echo is on. 951213 Quixadhal 2330 Alphabetized the spell assignment lists in spell_parser.c. 2235 Hacked rent-mode so it accepts an argument... this is a floating point number which is the rent multiplier. IE: rentmode 1.5 should make things cost half again as much as usual. 2356 Fixed restore to disallow any but "all" for < 56th level... we can now free the restoreall command slot. 951214 Quixadhal 0300 Started cleaning out old files. Freed up about 20 Meg! 0339 Fixed stat to work properly with objects and mobs... It still has the bug of not loading a mob if one doesn't exist in the world, but that is relatively minor. 0349 Changed whod for the external port so it doesn't show invis/hidden people. It also no longer shows the room, regardless of whod settings. Make people log in to find out where someone is. It WILL show those who are in dark areas though. 0354 Changed system command to wall, allspells to just spells. 0427 Added a randomized error message routine instead of just "Pardon?". Also made the idea/bug/typo messages more interesting. Maybe someone will use them... 0445 Closed a few more security holes. Maybe fixed noshout... I'm not clear on how the flags actually are used yet. 0450 Disabled saving of binary player files... 1554 Added CAN_CAST function to spell_parser.c. This determines if a character can cast the spell in question. It uses both their level and the antiquated HasClass() function that we want to do away with. 951216 Quixadhal 1415 Fixed special routine display for rooms. 0224 inlined several functions from utils.c and converted a few to use system calls instead of the old versions (str_cmp == strcasecmp). 0257 Replaced lots of hard-coded "<6" with "< ABS_MAX_CLASS", or "< MAX_NUM_EXITS" as appropriate... now we work on "<=5" 0317 Created new NAME() macro. This one works on both players and mobs, returning the name or short_descr field, respectively. It also returns "" if passed a NULL pointer, better than a seggie! 0337 Changed the consider command. It now introduces a fuzz factor into the level difference.. should make it even more random, and more importanly, it should give slightly different messages for the same mobs. 0356 Replaced all "<=5" with exits/class defines. We are now one step closer to being able to add more classes. 0433 I believe I've modified do_stat so that a given mob will be created if none exist in the world at all. Thus, if you type "stat mob eli" (or his vnum), it should first look in the room you are in. If no eli is present, it will look in the world. If no eli can be found in the entire world, it will try to search the mob table for the first match of eli. If one is found, an eli will be loaded where you stand and then stat will continue. 0440 Fixed trans so wizards cannot summon above their station. 0815 Skeleton of merged guildmaster routine is done. This still needs some work to integrate all classes and skills, but I think this will wait until skills and non-magi have been merged into the single spell_info structure. 951218 Quixadhal 0146 Got falling/drowning code back online. Fixed a bug with passing null pointers to strcmp(). Made guildmasters congratulate people for gaining a level. Made eli "congratulate" people for registering. Made Ned charge an extra 250 gold to look at a nut. 1715 Removed code for Cyric's new database format. Some of it anyways. myerror.h is no longer present. 1858 Fixed minor bug in date stamping routine... tm_mon is the month number from 0..11, so we had to add 1 for human consumption. Also fixed a bug in optimization of dice()... oops! I think it is correct now. First official PURGE of the player base! We cut out 1/4 of the users for inactivity. Basically, I deleted anyone who did not have a text-based save file. Also added a datestamp to the player list dump. 2354 Fixed prompts to distinguish between immortals who are switched and mortals who are polymorphed. 951219 Quixadhal 0154 Added a map command, which if it looks nice, may replace the exits command. It is quasi-graphical. 0412 Made chill touch spell force undead to flee if they fail their save. 0433 Replaced more assert()'s with if() return's in magic.c. Removed bug() statements from NudgeNudge. Time to compile one last time tonight.... the modems supposedly will die at 5am, so I have to get outta here! 0446 Added a description for cure_XXX spells so the person doing the healing can see how well it works. 1703 Made experimental map command (graphical exits) available to mortals. Fixed falling bug (I hope!) that got the sector types of the wrong room. 1801 Improved drowning routine so that people have a chance of drowning if in any water sector, not just underwater. Based off their swimming skill. 2213 Recoded earthquake spell! It is much more powerful now and does damage in adjacent rooms! It also requires one of three objects for a material component... one can be found in Highstaff! 951220 Quixadhal 0430 Fixed minor bug with printing uninitialized buffer variable in the remove command for message boards... Removed both the print statement and the buffer, since it wasn't used! 0510 Added timestamp to players log. 0520 Added immortal announcement when an imp logs in. 1630 Took the first step in eliminating seperate class tables and began merging the seperate "spells" block into "spell_info". 951221 Quixadhal 0131 Almost completed removing spells. It is still used in a couple of sticky places... I'll replace those AFTER verifying that it has worked for all the other commands. 0137 Global search and replace... spells_to_learn -> pracs. 0836 Finished creating new type 'C' mob. This is my first draft at a replacement format for the mob file. Allows class setting so perhaps we can do generic guildmasters and similar automatic class sensing. 1530 Made tell work like say.. that is use the punctuation at the end. 2120 Added support for ascii equipment files. The writing routines are in place, but a reader must be written. Slightly tricky to get the container/contained relationship right. Also eliminate all references to spells and r_spells. 2250 Fixed up no-magic rooms properly.... added more class checking routines for future extensions: IsWizard, IsPriest, IsSneak, etc... 951222 Quixadhal 0042 Added encryption to password entries. We still support the old passwords, but no longer write them out in clear text. 0044 Fixed suicide to also rename .obj files. 0201 Encrypted passwords are now functional. Support for restoring objects to their former positions (wielded or inside containers) has been added. 0525 Fixed prompts to distinguish between switched immortals, polymorphed players, normal players, and normal immortals. Changed many messages, especially in do_cast(). Allowed mobs to cast if the CanCast() function allows it... IE: If they have one of the magical classes set. This means only type 'C' mobs and those generated by spells or special routines. Added a save of all equipment immediately upon entry to the game because Cultist had himself seen briefly as carrying only one object when he had a whole bunch... This seems to have fixed it. 2024 Started writing ascii object reader. Changed do_cast() some more... mana loss now varies based on your spellcraft and meditation abilities. More random messages too! 951223 Quixadhal 0519 Rewrote puff() again. Simplified a bit. The values may need tweaking if he does stuff too often. 951229 Quixadhal 0608 Fixed a grouping bug caused by the variable victlvl not being initialized properly. 0715 Added IsAvian and IsDraconic functions. Gave Dragons hands (HasHands is now true for them). 0720 Found a design flaw with the hatred/fear system... (big surprise!) There are two interfaces to determine if one creature hates another... one is the Hates() function, the other is the FindAHatee() function. The first says "does a hate b?", while the second says "who in the room do I hate?" Problem: In some places this is used as you'd expect... "Can I clobber this creature?" However, in others it is "do I presently hate them?" The distinction is: if we make Hates() also check things like visibility (it does), paralysis, immortality of victim, etc... then when the second question is asked, we will give the wrong answer. If we don't check those, the first question will fail. The only solution I can find is: DoesHate() - says "do I hate this person?" CanHate() - says "can I kill this person by hatred?" 960105 Quixadhal 0512 Added a check to the CheckKill() function which says if the victim is POSITION_DEAD, return FALSE. This should keep the upper level calls to hit() and such from crashing due to hitting dead people. Also moved functionality to CanKill, which accepts a string to be printed on failure... such as "You can't bring yourself to backstab %s.\n\r" CheckKill is a small inline that calls CanKill with the traditional "It doesn't affect %s.\n\r". 960106 Quixadhal 0400 Hopefully fixed a bug with guildmasters shouting... optimized the code for GainLevel while I was at it. 0749 Cleaned up comm.c a little bit.... got rid of UNIX_COMM stuff. 1208 Finally figured out dependancy rules well enough to move all the object files into a subdirectory properly. obj/ now contains all object files so they are out of sight. 1210 Guildmasters now won't teach anything that is 20 levels BELOW their own level. This means guildmasters now have a "window" of 10 levels. IE: If the guildmaster is 15th level, he will teach up to 5th level skills. If the guildmaster is 25th level, he will teach skills that fall between 5th and 15th level. This ALSO means that the 25th level guildmaster will NOT teach 1st through 5th level skills, and they ALSO will not train anyone who is less than 5th level! So if a newbie makes his way to Highstaff, he has to go back to Shylar to train. <snicker> 1702 Added two more (!) fields to ASSIGN_SPELL().... We now also keep a generic level and generic class field. If a guildmaster is generic, he can teach any skill whose generic level falls into his range. He will teach it to anyone who has one (or more) of the classes that is stored in the generic class bitmask. Hence we have spellcraft at glev 7, gcl CLASS_MAGICAL = any mage, cleric, druid, or ranger can learn this skill at level 7. 1722 Mage, Cleric, Thief and Ranger guildmaster routines are now all nearly identical... With a clever table of response messages, I think I can reduce them to a single guildmaster routine soon. 960109 Quixadhal 1851 Fixed small bug in Congratulations message from guildmasters. 960110 Quixadhal 2034 Fixed bug with practice in guildmaster routines.... We can't use GET_LEVEL() until we have a unified routine AND the mobs actually have classes... had to switch back to GetMaxLevel(). 960111 Quixadhal 1858 Changed PULSE_LAW to PULSE_REBOOT since we only do reboot checking nowadays. 960217 Quixadhal 1350 Changed move so that immortals can enter private rooms. Also did more work on reception. ASCII object saves may be fixed. 960225 Quixadhal 0710 Raised gredth guildmasters to level 35.. this should let them train levels 16 to 25, thus not overlapping with Highstaff's 6 to 15 anymore. Level 25+ needs to be done in SR. (Dirk!!!) WHile doing so, I tweaked my type 'C' mobs a bit... you should now be able to specify stats by dice rolls OR constants... IE: I made the cleric guildmaster have: 3d6 0 3d6 3d6 1d6+12 18 A 0 for saving throws means "you figure it out" 0730 Hooray! It seems to have worked. The old man cleric in gredth has a 7 strength, but 18 int and wisdom. He successfully trained a 15th level cleric to 16th. Perhaps I should allow one level of overlap like practice... hmmmmm... we'll see.. time to sleep now. 960226 Quixadhal 0530 Changed at command to use the same search technique as score. This was because earlier today I found at 3.goblin didn't work! 0602 Redid 'C' mob loader... now uses fread_dice() throughout... this function scans in a dice roll of the format xdy+z and allows you to omit y and z, which default to 1 and 0. z can also be negative, but do NOT use spaces or omit x. 0610 Changed fight.c so that mobs gain exp for pkilling, just like players do... 500xp per level at present. I think I'd also like mobs to gain levels if they get enough exp. <grin> 0634 Cut out deadwood from utils.c. Removed olc support since it was never fully finished and won't be under my reign. My inheritor can grab the old code (or SillyMUD where it came from) if he/she wants it. 0740 Redid weather.c and optimized a bit. Group experience redid... I hope it works better now. 0800 Fixed bug with axe routine... when you are forced to attack a player, it got the name wrong.... also touched up group exp code and added a log statement to try and see if it's working right. 0830 YES! Fixed it... can you believe GetSecMaxLev and GetThirdMaxLev were off by one? They were returning third and fourth highest levels, and thus dropping to zero. Also made it so that kill comes before kiss in the command lookups, and made you enter the game grouped with yourself. 0845 Added synonyms of "me" and "myself" to get_char_vis() routines. This won't do everything, but it's a start. 1630 Fixed bug in moon-phase caused by stupid 1..32 indexing instead of normal C 0..31. Thanks Sedna! 960227 Quixadhal 0500 Tweaked experience code a bit... multi-classes should be ok. Changed astral-traveller to use fname(GET_NAME(x)), so we should get "goblin" instead of "a goblin" I hope. mobs now gain levels! If your mob manages to get enough exp, he will go up a level now, reaping the benefits. Hence, if you mobs stay alive, they can get more powerful... however, it also works with mobs who kill people. New event added: goodies. Will scatter gold around the zone and a few objects and thieves/bandits/etc... some of themobs are bigger, some are tiny.... good for mid-levelers, or newbies if a few mids are on to help. 960228 Quixadhal 0535 Tweaked mob exp a bit more. Mobs now only gain 1/4 what players do.... but they only NEED 1/20 to level. So they level four times as fast, but don't become worth so much exp. Fixed score so that mobs doing score get the right display. 960301 Quixadhal 1324 TOTALLY changed experience tables! Don't HIT me! Damnit! Sorry, but this was LONG overdue... as has been said before, this mud wasn't DESIGNED for 50 levels... it started life with only 20 levels and got HACKED! The experience tables need to keep it challenging, as it is NOT. If you doubt, look at this fact. Dorn took a good 10 DAYS of playing time to get his character up to level 20.... he then proceeded to get up to level 30 in about a week (not playing time... elapsed time). Thus level 30 didn't mean as much as level 20. If we're gonna have 50 levels, they need to be 50 level's worth of pain. Changed earthquake back to the old one for now.... damn bugs. 1330 Maybe closed a small bug that let non-grouped PC followers get a share of the leftover exp. I saw this happen once. 1335 Added fun effects to quaffing from fountains. <grin> 960302 Quixadhal 0507 Changed fountain so it only does the special thing if you are thirsty (or a god)... Also changed polymorph self spell so it is more random (I hope!). 0601 Damn... I have to get back to my story! Well, instead, I made corpses have a 40/60 chance of coming back to life as a RANDOM UNDEAD! If this happens in Shylar, It will be a wimpy one... Also added a bury command which lets people put their corpses to rest... They get an extra 50..100 exp for doing so, and their alignment shifts 5..50 towards good. They also incur 4 wait states as penalty. 0607 Correction... if zone is Shylar (10), we don't do this at all. 960308 Quixadhal 1609 Changed bury to take items on the corpse with it to the grave. Added a sign and pen to the minor creation spell... thanks Dorn! 1629 Changed objects for elemental summoning. 960313 Quixadhal 0200 Sedna did some stuff for new spells that aren't documented yet. I fiddled with one of them and maybe fixed it... maybe... 960315 Sedna 0857 Trying to add the standard special procedures for summoned monsters. Also, have changed turn to include the ability of good priests to slay undead if two saving throws fail, and charm for evil priests. Have added goodberry to ranger spells and added new spell (astral vision) to clerics. 960321 Quixadhal 2245 Added costs for gaining levels.... 960319 Sedna ???? Gave summoned mobs the abilities that members of their race should have. For example, summoned ghasts and ghouls can paralyze. Summoned dwarven clerics and ogre magi can cast as well. 960327 Quixadhal 2115 Added a desecrate command as equivalent to bury, but evil! 2155 HOPEFULLY modified code for zombies that rise or are created with animate dead so they wear all their equipment. I also modified the wear command so it should try to wear weapons (wield).... thus wear all might be sufficient to ready yourself for combat. This is MOSTLY for mobs as there is now "wield all" or "wield any" command. 960529 Quixadhal 0500 gcc 2.7.2 doesn't like wiley.... so since I have to go through and fix all the things -w was hiding, I removed send_to_char and replaced them all with cprintf. 0530 Got up to act_off.c. Decided to also rework all log() macros to remove sprintf(buf, fjdklsa);log(buf); pairs.... 960610 Quixadhal 1351 Got all warnings removed from source except two prototype complaints that have to do with the funcp declarations. Fixed numerous tiny bugs throughtout the source as this happened. 960612 Quixadhal 0234 Began splitting spec_procs.c up into seperate modules. I will probably also merge mob_actions.c into the new specials.c. I expect to have a main specials.c, which will contain general routines and defaults, and then each special routine will be in its own file. The include/specials.h will then have prototypes for all special routines (as it does now). 960617 Quixadhal 0048 Moved mkworld and sign into utils subdirectory. 961011 Sedna 1320 Fixed bug in colour spray which prevented registered players from being affected by the spell. 980917 Quixadhal 1937 Restored this mess from backup tapes. I have no idea if I will really do any work with it again, but if I don't, no one else will. Perhaps I can work with Jettero to some degree. He may accept some parts of Wiley in his own lpmud. 1952 Changed all occurances of dprintf() to dcprintf() to avoid a conflict with the newer libgcc function. 981005 Quixadhal 1500 Fixed a few things. Compilation requires -static for some reason under this versio of glibc. Bizzare. Memory handling seems more picky nowadays... it crashes on things it used to allow (and probably leak). Attempting to add validation strings to some variables. 1530 Will attempt to remove some of the creeping featurism that changed the way the game felt. To start with, allow Tate to heal evil people in Shylar... and make the random undead rising code percentage vary based on the moon phase (add a moon phase and a way to find out what it is). 2300 Hacked stat routine to list function names in mobs with specials. 981010 Quixadhal 0500 Fixed Tate up to be "nice". 980402 Quixadhal 0000 Reduced spam from puff. 000802 Quixadhal 0140 Started hacking makefile to work with modern linux again. 2222 Fixed reset_q bug by declaring it in db.c instead of db.h... how did this work to begin with??? 000804 Quixadhal 0058 Removed MOST of the calls to malloc/calloc/free and used the utils.h macro CREATE/et. al.... centralized error trapping. 031126 Quixadhal 2155 Got things going under Slackware linux again. 040724 Quixadhal 0240 Finally tracked down obscure fclose() bug that crept in since gcc 3.4 Things are running again under Debian! 040725 Quixadhal 1427 Changed do_debug command to accept on/off as params, or to toggle the debug state. DEBUG2 variable removed, as it was unused. 040809 Quixadhal 0319 A few more cleanups. 0750 Restored OLD signal handling, sigaction seems to be a bit flaky. 0846 Made a proper init.d script for debian. Also revamped my old .indent.pro file. 040810 Quixadhal 0510 Removed log() from bug.c and converted all logs to dlogs or bugs. Ran all code through indent to neaten it up a bit. 0717 Restored original DikuMUD license.... who was the naughty person that "lost" that file, eh? Also restored creators names to the login screen. I'm sure lots of code was grafted from OTHER diku derivatives as well, but there is no record, and I haven't the time to do a code audit against every other codebase out there. Suffice it to say, if *I* use code from elsewhere, it will be documented! 040813 Quixadhal 0418 Converted act() to use varargs, and tracked down a weird bug that showed up as a result. Apparently when you use vsprintf(), you get the string "(null)" wherever a %s maps to a NULL pointer. At least, if that's not where it comes from, I haven't a clue since that string occurs in no code, nor in the lib files. In any case, MakeSound() as being passed null pointers in a few cases, where there was a local sound but no distant sound, and the new version of cprintf was translating them to the string "(null)". When I was being "improper" and using cprintf(ch, foo) instead of cprintf(ch, "%s", foo), the NULL was getting in and being caught by my error check... no action happened, bug lies dormant. 040825 Quixadhal 0451 Began shoring up the debug log usage, and initializing ALL variables to some known value. I've done this for several other diku codebases, so it only makes sense to finally do it with my own. You may notice that I initialize char arrays to the constant string "\0\0\0".... that's NOT the same things as "". Specifically, I want to stuff 4 bytes of zeroes in there so that a pointer dereference on such a thing will correctly produce 0L instead of a random number from 0 to (2^24). You 64-bit people will have to change it to 7 bytes if you care, I have no way to test such a beast. 041102 Quixadhal 0656 Finished my main pass at debug messages. For the Love of God, don't turn debug up higher than level 2 on a running mud! Doing a few more cleanups, but it's about ready to release unless I was actually going to start working on it again. There are still (and always will be!) lots of places for improvement, but I think it's stable and no worse than most of the other diku's available out there! 1155 After going out to VOTE (Hanging Chads II : Bush vs. Kerry), added the ability to use arguments in wizhelp. No file yet, but hopefully that means the wizard commands can be documented properly. 041107 Quixadhal 0456 Fixed a bug I introduced into the board system when normalizing the calling parameters of several functions. I decided to make my official public release on Christmas, so I may yet tweak a few more things before I give it away. I'm thinking that adding the I3 channel code might be worth doing, and perhaps a simple colour parser, but that's about it. 041108 Quixadhal 0406 Nope. Adding I3 support will require either rewriting the I3 load/save routines, or finally rewriting Wiley's entire ancient load/save code. 080914 Quixadhal 1045 Fixed a LONG standing bug with a staff of weakness, thanks to a new warning by gcc 4.1.2 1230 Added SQL database support! Very simple, will move logging to the database first I think. 1400 Added SQL to logging system. Replaced dlog() with log_printf(). 2330 Replaced bug() with log_bug() and renamed abug() to bug_logger(). 080915 Quixadhal 0100 Replaced log_bug() with log_error() and log_printf() with log_info(). Added log_fatal(), log_boot(), and log_auth(). 0728 Added log_kill() and log_death(). Added a proper_exit() function and changed ALL cases of abort() or exit() to use it. 080924 Quixadhal 1314 Added a log_reset type and converted the zone reset functions to use it. This should help reduce space, since you can now filter them out. 080928 Quixadhal 1730 Fixed a bug I introduced with the log_reset addition, oops. Totally removed and rewrote my SQL code. It works the same, but we're now using ECPG to pre-process embedded SQL statements, right in the code. You'll want to add au! BufRead,BufNewFile *.pgc set filetype=esqlc to your .vimrc file so you can get syntax highlighting on your new .pgc files. For now, you edit the .pgc file and it generates a .c file to compile... At some point, I'll muck with the makefile to keep things tidy. 081002 Quixadhal 1432 Working with ban system to integrate SQL and add do_ban/do_unban commands. Modified check_playing() so you can pass it a NULL descriptor... if we're just checking a name, we don't have a character structure to compare against, but we still want to loop through all the existing descriptors to compare their character names. 1533 Got ban system working with do_ban and do_unban adding and removing names on the fly. IP Address banning is not yet implemented. 090605 Quixadhal 0513 Been doing some cleanup stuff, made logging NOT go to the database by default. Fixed a bug I introduced in the last const char * crap, nobody noticed. Merged IMC2 support in, except for socials! 100718 Quixadhal 1440 Naughy... not keeping the HACKLOG up to date! Well, let's see. Restored old WileyMUD characer files from archives. Restored old WileyMUD board messages from archives. Revamped board code to fully use SQL and abandoned flat file support. Moved WileyMUD into a git repository, so as much of the development history as I have is now in place. All future development will utilize git, making it easier to backup everything, and giving us a better safety net. Hopefully fixed a long-standing socket reuse bug that kept us from rebooting quickly. 100720 Quixadhal 2242 Fixed a bug with NPC shouts not being blocked for people in message board rooms. Also added local copies of the gitweb CGI script to our web directory so the local git repository can be browsed. Had to make the git files world readable since we don't have ACL's. This is a security concern (mild), since all the player files ARE in git. Not a big deal, IMHO, but there ya go. 110701 Quixadhal 0259 Many of the logs aren't here now since I started using git, lazy. In any case, one new thing is a proper backup script. It does full backups of the SQL database and the entire codebase + data files. It also makes a somewhat smaller distribution set which is what I now hand out to anyone wanting a copy. Among other things, this means if you do want to start up your own FooMUD from this, you'll need to copy the admin player files from src/lib/ply to the matching spot in lib/ply. 140406 Quixadhal 0738 Still not updating this log as I should... anyways, the big changes are the removal of SQL entirely. It never worked quite right, and since it was never a full conversion, it made more sense to get rid of it, than to try and debug it and STILL not fully use it. I also tried to fix hunger/thirst a bit. Apparently at some point, they stopped killing people. I fixed that, but then it killed everyone including immortals. I think it works almost right now, except maybe in peaceful rooms.