-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - OasisOLC - Rv's Circle 3 On Line Creation Harvey Gilpin v1.0 (7/4/96) release This is OasisOLC version 2.0.6 for STOCK CircleMUD 3.1 (10/08/03) -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Contents: 1 - Introduction 2 - What is OasisOLC? 3 - Conditions of use 4 - Installing OasisOLC 5 - Configuring OasisOLC 6 - Using OasisOLC 7 - Known bugs. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 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 (now it's four) big "it's" : It's written by me, Rv, a.k.a. Harvey Gilpin. It's later been modified by several people, lastly by Welcor, to become a more solid piece of software. It's a menu based OnLine Creation system for CircleMUD 3.0. CircleMUD was created and is maintained by Jeremy Elson. It is based on an earlyer OLC system that just included 'iedit' and 'redit'. Unfortunately, the original author(s) are unknown. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 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(s) (should they become known) and to myself, 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 A large thanks goes to: Nathan Winters, Jamie Nelson, "Kras Kresh", "The Fungi" and Mark Garringer for feedback and bug reports. OasisOLC would never have gotten past 2.0.1 without you. Regards, Thomas Arp, aka Welcor of The Builders Academy. http://www.builderacademy.net/ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 4 - Installing OasisOLC 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 To add to _unaltered_ Circle3.1 code, copy the patch file to your src/ dir and type: patch < OasisOLC_2.0.6_for_Circle3.1.patch cd .. config.status cd src make And copy the socials.new file to your lib/misc/ dir. It is not needed to run the mud, but if you wish to use AEDIT, the new format is required. Another approach, if you wish to keep your old socials; boot with old style socials, enter CEDIT, and set new socials ON, then edit _any_ social, and save. Your social file should be converted to the new format. If you've altered the mud code already, I recommend handpatching. Please note: This is a major change to most, if not all of the files included in CircleMud. We have gone to great lengths to remove bugs and make the code stable. However, if applying this patch makes it impossible to boot your mud, make your house burn down or your girl/boyfriend break up, we're not taking the blame. Apply the patch at your own risk! AND PLEASE BACK UP YOUR CODE FIRST!!! (been there...) Bug reports should go to kip_potter@hotmail.com, welcor@builderacademy.net, circle@post.queensu.ca or /dev/null. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 5 - 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. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 6 - 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. Check out http://www.builderacademy.net for more info. 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. Since the above was written, a lot of safeguards have been put in. It's now a lot safer, but make sure you don't put new zones into your game without checking them first. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 7 - 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. No doubt there will be more. Please send -detailed- descriptions of any bugs you find to: welcor@builderacademy.net -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Changes in Version 2.0.6: * Upped version number to 2.0.6 * Added AEDIT support for editing socials online. * Added display of OLC mode to who list. * Added Buildwalk. * Added Cedit option to disable Aedit and use old socials (default is to disable Aedit). * Added Cedit option to auto save to disk in OLC. * Added toggle to clear screen when using OLC. * Added display of zone commands when doing 'stat room'. * Made OLC 'unsigned-safe' - It actually works with CIRCLE_UNSIGNED_INDEX defined now. * Changed 'echo' to echo to people in OLC as well. * Changed E-desc keywords to be listed in brackets in 'stat'. * Enhanced 'show zone' to include number of rooms/mob/objs/shops. * Fixed the 'disconnected from OLC and can't reconnect' bug, and added code that forces people to use wovels in their name. * Added -f command line option to specify config file to use. (Thanks to The Fungi for this). * Fixed saving of texts in Cedit from adding newlines. * Added some memory freeing helpers to debug memory problems (specifically free_mail_index, free_bufpool and free_followers). * Added missing "Config edit" in connected_types[]. * Added error checking to do_reboot. * Fixed /fi in the improved editor, when extra descs had been saved with the tilde in the wrong place~ * smash_tilde() and fread_string now handles tildes nicer. You still can't end the string with a ~, though. * Fixed errors in shop.c, introduced by removing -1 from the expression parser. * Added abbreviation code to isname(). - is_name() still doesn't allow abbreviations. * Fixed bug when forcing builders in OLC to use OLC (Thanks to Mark Garringer for this bug report) * Added - arbitrary - limits to mobs/objs and zones. See Oasis.h * Removed redundant remove_room_from_memory() function. * Removed some of the many comments in oasis_list.c * Cleaned up a couple of the lists' output. * Cleaned up zedit. It no longer asks you what command you wish to add if the list is empty, and you can abort Edit and New (Which has been renamed to Insert new). Changes in Version 2.0.5: * Upped version number to 2.0.5 * Now can_edit_zone() works as advertised--reversed TRUE/FALSE * Rlist no longer displays exits to rooms that don't exist * Rlist shows exits even if low/high arguments aren't provided * Merged in some can_edit_zone() checks from DG Scripts * Combined ACMD(do_oasis_[morsz]list) into ACMD(do_oasis_list) * Made unaffect work when an object has been edited then removed * Added a links command for displaying exits from a zone * Added checks for CONFIG_AUTO_SAVE in [morsz]edit_parse() * Turn on smash_tilde() by default * Added smash_tilde() calls in MEDIT_(ALIAS|S_DESC|L_DESC) cases * REMOVE_BIT AFF_(CHARM|POISON|GROUP|SLEEP) in MEDIT_AFF_FLAGS case * Added an abort option to oedit * Fixed bounds checking in the OEDIT_TYPE case * Limit oedit weapon modifiers to +/-50 and dice to 50 * Check more out of range oedit values for scrolls and potions * Don't allow assigning shop_keeper specproc in sedit_parse() * Call zedit_save_to_disk() from zedit_new_zone() * Various int to rnum fixes throughout gen(mob|obj|wld).c * Cedit no longer accumulates MENU WELC_MESSG START_MESSG newlines Changes in Version 2.0.4: * Upped version number to 2.0.4 * Added empty builder field to lib/world/zon/*.zon * Moved Oasis docfiles into doc/ * Fixed missing/skewed menu items in cedit * Text editor cedit items now clean up properly on exit * Repaired cosmetic bug in munged circlemud_version string * Kludged around a chicken and egg problem in load_config() * Repaired a bunch of potential format string exploits * Added missing can_edit check to zedit * Fixed free_strings() crash for rooms with multiple ex_description Changes in Version 2.0.3: * RLIST command. Lists all rooms in a given zone. * (D) command in redit. Allows the builder to delete the room from memory. * Added a builders list for zones. * Alterations by Welcor: Upped version number to 2.0.3 (I think the new additions warrant it) oasis-ified tedit (a bit) and made d->olc a struct oasis_olc_data * instead of void * All olc files: Dependency on global buffers removed. All olc files: ->in_room -> IN_ROOM() change. All files (olc files + comm.c): update to circle 3.1 style All olc files: removed some buffers, changed to write_to_output and send_to_char db.c, db.h: Changed config_info to a static variable (to save some malloc/free'ing) structs.h: Embedded substructs in config_data struct instead of using pointers (same reason) utils.h: Added macros to configure options. All olc files: Removed some outdated comments. oasis_copy.c: Fixed serious buffer size error in do_dig and cleaned the code up. All olc files: Added support for unsigned IDXTYPE by removing checks for <0 and ==-1 comm.c: Added support for auto prompt. (hey, the bit was there...8) * BugFix zedit. Modified the message to the user from "Zone create successfully\r\n" to "Zone created successfully.\r\n". * BugFix (Not really) save Added a check to make sure the zone is in the save_list before calling remove_from_save_list. This was a problem because everytime a builder saved his/her zone, but it wasn't in the save list, an error was sent to the log file, erraneous.