For bug fixes, updates, and so forth, please visit the OasisOLC Bug Fix Project at: http://www.exiled.iceworld.com/oasisbug/ ----------------------------------------------------------------------- I took all of the bugfixes and patches that go into OasisOLC, put them all into the base code, shook them around a bit. Made it all work. And Made a patch file for ya. Includes: OasisOLCv1.2 Improved_Oasis_editor.patch oasisolc_v1.3.diff < Thanks to the creators to all of these> All are put into one patch as well as premade olc.h olc.c medit.c oedit.c sedit.c redit.c just pop the files into your src directory type : patch < OasisOLC.new.patch cross your fingers and compile. I take no credit for this patch for all I did was put other peoples work into one. I take no responsibility to the damage this code may produce. I do not know what your code looks like. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - OasisOLC - Rv's Circle 3 On-Line Creation System Harvey Gilpin v1.2 (12/5/96) release -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Contents: 1 - Introduction 2 - What is OasisOLC? 3 - Conditions of use 4 - Installing OasisOLC 5 - Upgrading to v1.2 6 - Configuring OasisOLC 7 - Using OasisOLC 8 - Fixed bugs since v1.0 9 - Known bugs 10 - Credits -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 1 - Introduction Congratulations on reading this. If you are anything like me then you've got hold of your new toy and the last thing you want to do is read through heaps of junk telling you how to get it working. However most of the information in this file is important so I urge you to read it all before installing anything. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 2 - What is OasisOLC? First off, the three big "it's" : It's written by me, Rv, a.k.a. Harvey Gilpin. It's a menu based OnLine Creation system for CircleMUD 3.0. CircleMUD was created and is maintained by Jermey Elson. It is based on an earlyer OLC system that just included 'iedit' and 'redit'. I have been informed the original author goes by the handle of "Levork". I cleaned up and semi-reorganised the redit/iedit code, renamed iedit to oedit and wrote the medit/zedit/sedit and olc modules. IMPORTANT: It is not intended as an all singing, all dancing OLC, but rather as a damn good starting point. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 3 - Conditions of use 1) If you use this code you must email me to let me know at: rv@twylite.demon.co.uk (It's not asking much is it? I'd like to know how many people use it) Just a quick message saying: "It's crap! You suck!" would do. 2) You must not use the code to make a profit in ANY way. 3) Any derivative works must give credit to the original author, Levork, and are subject to the same conditions of use. 4) You accept any damage caused by the use of this software to be your own fault. (i.e. Don't sue me :) Harvey Gilpin -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 4 - Installing OasisOLC Although desgined in Circle3.0pl9, this version has been released to work with pl10 and I've been told it works fine with pl11. Beyond that, who can tell? Anyways, here's how you install it: FIRST BACK UP YOUR WORLD FILES ! - This system (like all others) WILL have bugs and WILL destroy your world files from time to time. Be ready for it. To backup your world files go into the 'lib' directory and type: tar cvf world.tar world To restore them again, go into the 'lib' directory and type: tar xvf world.tar Most of the code for the OLC system is held in files seperate files but some circle files do need modifying so that the MUD knows that it has the OLC atattched to it. Basically you just untar the files into your 'src' directory and then apply the patch files by doing this: patch < OasisOLC.patch These are the files the patch will affect: Makefile, structs.h, comm.c, modify.c, interpreter.h, interpreter.c, act.wizard.c, constants.c, shop.h & shop.c IMPORTANT: All the changes made to the code are required by the OLC engine, so if any of them do not work automatically, you will have to look through the rejected files and change the code manually. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 5 - Upgrading to v1.2 This is just a bugfix version; there are no new features. So if you are upgrading to it from the earlier version of Oasis, all you need do is copy the new files over the old. The patch file hasn't changed (much) so you can more or less ignore that. However, if you have changed a lot of the original Oasis code and don't want to write over them with this version, then at least go through the bugfix list found later in this file so you know what needs fixing. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 6 - Configuring OasisOLC I have tried to make this system as reliant as possible on the tables that already exist in the Circle code, so that when the mud changes, the OLC will be able to deal with it. However, the system does need to know some information about the tables sizes, and those that are not already defined in structs.h have been placed in olc.h. If you want the OLC to react to changes you make to tables within your mud you must update the defines in the top of olc.h. Also, the system uses colours for the menus, if the player has a colour level of 'normal' or 'complete'. If you don't like the colour scheme used, you can edit the function get_char_cols() in olc.c, and this will change the colours for the entire OLC system. If you want to add new features to the OLC, for pointers on how to go about it, look at the commented out code for object level flags in oedit.c. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 7 - Using OasisOLC To understand what all the fields in the menus mean, refer to the building.doc file that is found in the 'doc' directory of the Circle3.0 distribution. Here's how all the commands for the OLC system are used: redit - edit the room you are standing in redit - edit/create room redit save - save all the rooms in zone to disk zedit - edit the zone info for the room you are standing in zedit - edit the zone info for that room zedit save - save all the zone info for that zone to disk zedit new - IMPLs only - create a new zone. oedit - edit/create object oedit save - save all the objects in zone to disk medit - edit/create mobile medit save - save all the mobiles in zone to disk sedit - edit/create shop sedit save - save all shops in zone to disk. set olc - IMPLs only - allow player to edit zone. olc - List all the things that have been edited but not yet saved. WARNING: This OLC will let you set values to values that shouldn't be set. For example, it'll let you set a mobile with a GROUP flag. This is good in the sense that it allows you to test anything you please, but bad in the sense that builders can crash the mud with ease. (Hey, that rymes!). In short: only allow builders you trust to use it. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 8 - Fixed bugs since v1.0 The original release was pretty stable, and only has a few major bugs. Most of the fixes are just sanity checks, but for those that are interested, here's what's been changed: Major bug fixes: o ALL the save_internally routines had a fence post bug in that goes one step to far each time, and corrupts memory at the end of the new table it is creating. On strict systems this caused protection faults, and no doubt caused weired errors on others. o medit_save_internally didn't check to see if the chars in the character_list it was updating were mobiles. Hence, the IMPL could get overwritten with Puff's strings. *snicker* o ALL the save_to_disk functions needed to check for NULL values in all the strings the saved. Minor bug fixes: o Default position for mobs defaults to 'standing'. o sedit, types list needed to be extended to 15 characters make room for LIQ_CONTAINER flag name. o zedit, changing 'top' of zone did not flag the zone as being changed. o ALL string edits that use more than one line didn't flag what was being edited as being changed. o sedit, the compact rooms list would not return to the long rooms list. o zedit_disp_arg3, type of 'container' o zedit, pressing command after choosing 'New Command' bailed out. o sedit, namelist for buy types was screwy for non-Linux systems. o oedit, object values needed clearing before editing as old values from previous edits were being left there. o oedit, scrolls an potions didn't allow NULL spells. o Added a LVL_BUILDER setting for easy configuration. o zedit_disp_menu function needed to check for a NULL zone name. o Changed strdup() to use Circle's own str_dup throughout o Changed "== IMPL" comparisons to ">= IMPL" for muds with more levels than just IMPL. o Changed the typo of "db.c" to "db.h" in the Makefile for the *edit.c dependencies. o olc.c, strip_string() optimised. o Some other stuff I never bothered to write down... -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 9 - Known bugs. Like most software, this system has bugs. Here are those that I know of: Access to zone 0 bug Initially, all your GODs will have edit access to zone 0 (limbo). You may want to set thier olc flags to -1 by default. Extended mob bug. Due to the way Extended mobs are implemented it is impossible to know what individual MUDs do with them. So when medit writes the mob files out to disk it can only deal with those it knows about. Any other one that were there get _erased_. If you want to use extended mobs in your mud you MUST edit the medit_save_to_disk() function in medit.c so that it knows how to save them. Zone header info If two builders change the zone header information (zone name, reset type, etc) at the same time, one of the changes will be lost. No big deal. Object weight: Objects that have there weight changed will mess up with the weight that players currently in the game owning that object can carry, until they rent. Add new zone: This seems to be buggy for some users, but I can't find what's wrong with it. Also, it doesn't check to see if it will overwrite any existing files, only that the zone does not already exist in -MEMORY-. Be carefull with this command. Flying monitor bug: Throwing your monitor out of the window while using Oasis will break it, unless you are on the ground floor and have several matresses carefully positioned outside the window. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 10 - Credits Finally, I'd just like to thank the following for thier bug reports, ideas and feedback: Adam Days Chris A. Epler Edward Almasy Paul Jones Con (a.k.a Rasmus) Sean P. Mouncastle Trevor Man Ryan A. J. Biggs -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-