Updates file 15th April, 2001 (Build 24b) Greater use of DisableMagic(), fixing up an intermittent skill usage problem Added NOHAIR tag for races. Ensures a person is bald when transfering to that race via a gate Tidied up race gate function, reducing complexity and increasing readability Fixed house owner sign usage Fixed house transferance via sign Fixed few console messages to include newlines / be more meaningful Fixed firewall crash bug under non-windows operating systems Removed display of C key from console (no backing code) Fixed fame decay on death Added proper relay support for multiple servers on different ports. Note the change to uox3.ini's server layout. New format: Server Name Server IP ServerPort eg Loopback 127.0.0.1 2593 LAN 192.168.0.1 2594 ### WIthout the port, server will NOT start. 10th April, 2001 (Build 24a) Beneficial spells (Heal, Night Sight, Agility, Cunning, Cure, Protection, Strength, Bless, Greater Heal, Inivisibility ) on murderers will flag you criminal Races constructor/destructor modified to not cause crashes Fixed inability to repeatedly cast magic Fixed cannot use items equipped on other players bug Shitlist read in as a vector at startup, and run through in memory on login F key on console will reload the shitlist.ini file Cannot hide while mounted Attempting to resurrect a murderer via bandages results in criminality Attempting to cure a murderer via bandages results in criminality Attempting to heal a murderer via bandages results in criminality If you don't have the skill to heal a character, it tells you that you apply the bandages but it barely helps. Their health only goes up by 1 HP. If somehow on horse while stealthing, will go out of stealth when attempting to walk Few pathfinding corrections (fleeing NPCs work better) Slight change to teleport, may fix black liche thing Stack being refreshed when items added to it If hidden when mounting a horse, become unhidden When mounting, creature attacking the mount will stop attacking. Mount will lose any target they may have. Slight changes to readw3(), to prevent overruns. Explicit NULLing of files when closed. Races added a new tag, to help streamline scripts. PARENTRACE # where # is the parent race. This essentially is just a cut/paste job ie SECTION RACE 0 // Just happens to be the parent { NAME Human STRCAP 150 DEXCAP 30 INTCAP 120 PLAYERRACE 1 } SECTION RACE 1 { PARENTRACE 0 // by using this, they automatically get strcap of 150, dexcap of 30, and intcap of 120, as well as being a player race with the name Human NAME Midget // we override the name given to us DEXCAP 60 // increase the dexterity cap } In essence, you can picture race 1 being like: SECTION RACE 1 { NAME Human STRCAP 150 DEXCAP 30 INTCAP 120 PLAYERRACE 1 NAME Midget DEXCAP 60 } This allows you to streamline races, if you need to. You can extend this to grandchildren, or grand gran children, if so desired. If you have a group of classes belonging to a race, then all the common aspects of those classes could be put in a parent race, and specialize in the child race. 9th April, 2001 (Build 24) Network.cpp refresh for Linux only. Corrects structure issues involved with firewalling 7th April, 2001 (Build 24) Provocation will only turn you criminal if target is innocent Significant alterations to weight.cpp, fixing a number of container issues Probable fix for multi skiing Boats can be turned into models Boats respond properly to OSI macro speech Writeable books should work correctly Should fix player logins with third dawn Inability cast another spell while having a target cursor for current spell Few memory clearance optimizations Sound effects corrections Guild code tidy up (no functional difference) Can't resurrect offline players GMs can redeed player houses NPCs will gain/lose fame/karma on death/kill. Operate same as PCs now. So a nasty mongbat that kills lots of newbs will slowly go very evil. Player casted gates appear on player, to remove house break in exploit Map assert changed to if condition. Will print out error messages if attempt to get statics across boundary of map Fixed unicode emote not displaying str2num internally calls atoi Murder dcay timer reset on world load (to fix possible timer issues on both win and lin) NPCs talk out loud, so that all can hear IFRACE trigger added eg IFRACE # // # is a race number from races.scp Used for item triggers Changes to HTML status pages Addition of player information New section in htmlstrm.scp SECTION DIRECTORY { C:\Inetpub\wwwroot\guilds // Guilds physical directory C:\inetpub\wwwroot\player // Player physical directory C:\inetpub\wwwroot\images // Images physical directory /guilds // web server guild location /player // web server player location /images // web server images location } In section guild_main, only one file entry now. Put name of file name, it will automatically attach guilds directory in front of it So if it used to be c:\inetpub\wwwroot\guilds\guilds.htm, it would now just be guilds.htm So it looks kinda like SECTION GUILD_MAIN { guilds.htm LINE LINE } New section, PLAYERPAGE SECTION PLAYER_PAGE { LINE LINE LINE Player Status LINE LINE LINE

Test Player Status!

LINE LINE
Name NAME LINE
Title TITLE LINE
Strength STR LINE
Dexterity DEX LINE
Intelligence INT LINE
Kills KILLS LINE
Race RACE LINE
Best skills LINE
TOPSKILLS 9 LINE
This page generated at: TIME LINE
LINE LINE } The valid tags player specific are: NAME // player's name STR // player's strength DEX // player's dex INT // player's intelligence KILLS // player's kills RACE // player's race (name) TITLE // player's title TIME // real world time FAME // player's fame (number) KARMA // player's karma (number) PROWESSTITLE // Grand Master, and so forth NOTOTITLE // noto title (ie Infamous, Glorious, and so on) SKILLTITLE // bowyer, fletcher, skill title TOPSKILLS # // # is the number of skills to show Player HTML is dumped out if HTML generation is on, and dumped at world save / player login IP Firewalling New file added into uox3 shard directory, shitlist.ini. This CAN be empty if so desired Format: x.x.x.x // x can either be a number or a * eg 192.168.0.* // disconnects any from that subnet 127.*.*.* // all localhost disconnected 1.2.3.4 // specific host disconnected This will disconnect a client before processing anything 21st March, 2001 (Build 23) Linux criminality fixes Removed double sell/buy vendor bug Removed lag steal exploit Corrected player vendor description/pricing system Tweaked the basic heal spell a bit lower Unified linux/windows section searches (should remove ordering problems) Corrected snooping problem (wrong names, probably skill gain as well) Converted all findbyserials to calcItemFromSer/calcCharFromSer Removed double fame/karma/murder count bug Corrected pet guards Implemented array/percentages for combat hit messages NPC Mindblast reduced to 1/3rd of existing power unmounthorse() converted to character based, not socket based unmounthorse() moved further up death list Removal of LSD Added MAGICEQUIPCHECK to SECTION COMBAT in server.scp. If non-0, then hands checked for equipment. If 0, then can cast with items in hand Fixed tweak so direction doesn't adjust body Fixed tweak so can't adjust char's primary stats to 0 or below Hopefully fixed wholist displaying [] in list DefaultChar for char handler set to NPC with no account Reduced rate at which rsist gained from field spells Inscription resource deletion fix Healing skill range check performed before skill check (no gain skill from distant player) str2num adjustments (increases * 10 only on proper digits) Random drop of things in pack when dropped on PV backpack Guarding pets added to npcattacktarget() Added IsCriminal(), IsMurderer() and IsInnocent() to help with simplicity and readability Poison damage should work in town correctly Fixed magic invisibility (magic invis allows walking invis, no perma hiding) Delete single lockpick and not entire pile Provocation/Enticement code cleanup Can't stealth while on horseback Hopefully a working FreeBSD Makefile 28th February, 2001 (Build 22) Begging fixed so you can no longer beg from offline characters or player vendors Player vendor bug correction. Can't get items for free any more Running southwest/east bounce fix Piled campfire stuff only deletes single item, not stack Mounting your horse won't delete the character, but move it to a nonreachable position. Same horse will appear when you get off it. Fixes horse stat issues. NPCs on horses will have onhorse == true on server load (should fix combat animations) 16th February, 2001 (Build 21d) Makemenu changes to fix coloured ingot issues Old New 2117 | 1600 2020 | 1520 2025 | 1525 2000 | 1500 2000 | 1500 2000 | 1500 2010 | 1510 2005 | 1505 2005 | 1505 2015 | 1515 2015 | 1515 more1 of spellbook locks it so no more can be added Summoned creatures leave no corpse Slowed down shopkeepers some Title display fixes Opening pack adjustments (works properly in all circumstances) Snooping tidied up/made own function Memsets used in some array clearances Fixed memset potential crash bug Dragonskin armour should work better Shield/weapon holding issues should be greatly improved (Thunderstorm) Parrying debugging message when combat hit messages are on Using doors requires 1/2 object delay time Fixed char -1 issue with potion usage GMs can place houses anywhere GMs casting teleport don't have same inhibitions as players Chopping tree makes character turn to targeted location Can't GM NPCs Ghosts can't equip things SNOOPISCRIME in repsys section of server.scp controls whether snooping is a criminal action. 1 == true, 0 == false 6th February, 2001 (Build 21c2) Correa backpack usability fix Integrated makefile from Knox, with minor change, as well as header changes More combat code changes 5th February, 2001 (Build 21c) Numerous amounts of tidying up done to source Taming adjusted: Skill gained from TOTAME to TOTAME * 1.5, no longer open ended Speech issues with Client 2.0.7 corrected (courtesy of Punt) Doubled up speech issue corrected Increased compatability with Non-MSVC compilers 1st February, 2001 (Build 21b) Corrected an issue that crashed clients if a spellbook was opened 31st January, 2001 (Build 21a) Lose stamina at reduced rate when on horse Closed contsp loophole which may have caused late decaying of corpses Included __cdecl parts on functions that require it (main, any with ... parameters) Changed default processor optimizations from Blend to Pentium class Made source __fastcall safe. Class member functions need to be explicitly __fastcall specified to have optimizations Liche and one snake's sounds fixed (Raftina) Summoned elementals have proper names (Jedda) Fishing code mods (Jedda/Chaos) Corrected a number of the copyright information. Information still not accurate, missing number of bits and pieces. Known that most files didn't exist in 1997. NW Submissions ============== * Only GMs retain hidden status on logging in * Combat speed tuned down slightly * NPC Archers will only move towards target in combat when LOS is broken. Keeps turning to target * Offline chars appear to GMs based on server.scp setting * Weight added to player's cursor when carrying pile of items * NPCs don't attack through floors * Taming distance increased to 4 * Object delays disregarded for GMs * Can't mark locked down rune * Laston added to 'cstats Freelancer submissions ====================== * GCC Warning-free compiliation (on default level) * Fixed some MSVC level 4 warnings. * Moved some stuff from uox3.cpp to files where it is more approperate. * Removed some unnecessary pestering of the heap. * regions is now an unsigned char also in linux. (donnot know why exactly there was a difference) * Some small general beautifies. * Removed UDP * Added copyright information on each file 17th January, 2001 (Build 21) Removal of commands: dry, rain, snow MINGW32 compatability fixes Linux compatability fixes 66% chance of totally missing target if archery and closer than 3 paces More random combat animations (Xuri) Removed structure packing (untested, should work okay) Enhanced tweak command (Xuri) Extraneous comments removed Can equip tile's with flag3 of 0xC0 in second hand with a single handed weapon (equipable/light source... most lit lanterns, candles, and torches fit this bill) Fixed exploit so that if you're below minimum skill level you have NO chance of gaining skill checktimers() slight optimization Wholist is bigger Logging in will use the hidden status of when you logged out Races.scp reloading added to console Instant logout if near campfire and bedroll (Retalin) Walking fix for ladders/stages/some stairs (Xuri) Containergump for tubs fixed (Jedda) Fishing animation while on horseback fixed (Tom2) MORE3 and MORE4 will decide the spawning area for Area Spawners(Type 69) (Xuri) Other fixes (can't remember who did what) done by Correa, Tom2, and Knox. 20th December, 2000 (Build 20g) Magery should now rise, regardless (though as a temp measure it will rise from scrolls and wands as well). NPCs can walk into gates More things are blocked by using teleport: was unable to reproduce tele on water or up vertical axis Gate fixed Should fizzle much less with high level skill now (it should be impossible to fizzle at GM level of a 1st circle spell) Knox's CLUOX wrapper implemented (allows automated restarting, minimize to tray icon) Many sounds corrected (1st pass only, source submission. Second pass at later date will validate Raftina's list) House owner targeting shouldn't corrupt housing anywhere near as badly Number of variables removed from code, due to L4 warnings with VC Killing with magic will gain you a murder count Targeting an innocent character with an aggressive spell will turn you criminal. Failing skill check during casting of a spell will force the spell's delay before casting another spell (avoid exploit). Slight fixes to NPC restocking (container checks enforced). 6th December, 2000 (Build 20f) Think fixed stat bug due to dying (needs testing) Fixed auto account creation bug (password not saving) NPCs can dispel creatures, bit 17 of SPAttack (KKung) Items with a DEF of 0 will not be destroyable in combat (Xuri) Fixed that nasty vial usage bug which would totally corrupt your character Put in tweak so that AI 2 and not race 0 will attack other AI 2 (subject to other rules, like racial allies) Veterinary skill used in healing/curing/resurrecting nonhuman body types (Xuri) Can't train past the skill cap (KKung) Status bars should work correctly in combat Can only be interrupted during a spell while casting, not after getting target cursor 23rd November, 2000 (Build 20e TR2) Believe the 2 on 1 attacker bug is now finally solved More walking revisions from Knox Fixed being frozen when casting spell and getting target cursor bug (Knox: One thing that happened with the merge, was that you lost the ability for things to swim and things to fly. My guess is that a lot of the tile comparisons are done based on movement type. ie some things won't block for fish that will for people so I imagine we need to figure out how to make use of CanGMWalk(), CanNPCWalk(), CanFishWalk() and what not) 22nd November, 2000 (Build 20e TR1) Walking updates (does have probs) Explosion delay (scripted, server.scp, combat section, EXPLODEDELAY, floating point value) Hunger healing threshold (server.scp, hunger section, HUNGERTHRESHOLD, 0->6) Lots of flagging issues resolved Non-ignition protection Idle timeout activity (CHARTIMEOUT in server.scp) Guards should work better Combat modified, needs testing No skill check for bandages Falling forward/backward death animations (random) 25th October, 2000 (Build 20a) Slight walking correction (Knoxos) 24th October, 2000 (Build 20) DEVTEAM FIXES Spam message on console gone RefreshItem optimization Lock down checks on items with skills (not all skills) Balance works correctly Vendor item restock code cleanup Displaying of locked down status of an item with single click INCZ command added Hair Dye gump (item ID 0x0E27 new style, 0x0EFF old style) Problematic hue removal (transparent items will persist) FREELANCER FIXES Optionable potion usage delay (simple delay, doesn't take type into account) (Thaliq) Purchasing goods from vendor with money in bank (Gunther/Chaos/Abaddon, scriptable threshold) Item repairing (Thaliq) Scriptable health and stamina checks for spell casting (Thaliq) Combat animations and sound effects cleaned up (Chaos) 9th October, 2000 (Build 19c) DEVTEAM FIXES Magic Spellbook memory reduction NOTE: We have limited legacy spellbook support. As long as you don't add a spell to your spellbook, your old spellbooks should continue to work, but as soon as you add the first spell to it, only that spell will be in it (switches to new spellbook type). To the GMs out there, I would find all your players with spellbooks, take note of the spells they have, and construct new spellbooks for them, deleting the old ones. It also allows for spellbooks to be "prefilled". The new spellbook layout is like this: MOREX, MOREY and MOREZ are reserved on spellbooks. Each is a 32 bit word, representing a possible 32 spells each word. So the traditional spellbook is represented by MOREX and MOREY only. MOREX contains info on circles 1->4, and MOREY on circles 5->8. Think of each of these as a 32 bit long BINARY number. An empty spellbook would look like: 00000000 00000000 00000000 00000000 Those are your 4 circles. Each circle has 8 bits. Circle 4 is on the left, circle 1 is on the right. Within a circle, the spells count down from left to right. ie 10000000 In this case, the person has spell 8. For windows users, it is easy to setup the scripts. Open up windows calc, set it to scientific mode. Choose binary. Now fill in the spell configuration you want for a spellbook (we'll use an example of spells 1 and 3 in circles 1->4). It would look like this: 00000101 00000101 00000101 00000101 Now hit the decimal radio button, and it will convert it back to base 10. You should get the number 84215045. Put this in the MOREX section, and the spellbook is prefilled! That's circles 1->4, the same applies to 5->8 but it's for MOREY instead. Reputation flagging of other creatures should be greatly improved Monsters of AI type 2 now search a scriptable distance for targets. SECTION COMBAT and the MAXRANGE value determines how far away a monster considers a "valid" target. AI type 2 updated so they won't attack their owner, and there's a slim (less than 10%) chance they'll attack their own race if not the default race. Also, they will not attack racial allies. Guard attack delay bug should be fixed Spell interruption should occur for all spells that do damage FREELANCER FIXES Gem based armour creation (sorry, can't remember the nickname, and didn't want to put public without permission) Spawnregions won't save chars. When server starts back up, the spawnregions will respawn, no extra NPCs (Dodger) Walking corrections (Knoxos) Boat updated source (Zippy-) Newbie Item fix (no repeated items) (Thyme) 25 September, 2000 (Build 19b) DEVTEAM FIXES Further Mark, Gate, Recall region check stuff (precasting fixes) Inscription corrections Build # now in console title on Windows Spell interruption Weather bug fix 'wtrig command fix (new syntax 'wtrig hail) Slight optimizations in combat code Should disconnect any accounts in use when logging in FREELANCER FIXES Tailoring changes for bolts of cloth (Thyme) Animation corrections (Chaos) Stat advancement fixes (Gunther) VERy walking exploit fix (Knoxos) 2 Attacker combat bug (Thyme) Linux compilation fixes (Knoxos) Chaos&Order gate stuff (item type 206, WIG) No requiring house and key for placing vendors (Thyme) breakConcentration function added (knoxos) Poison tweaking on EV/BS (Thyme) Invulnerable character skill gain exploit fix (Thyme) Invulnerable character damage fix (Thyme) Summon creature location fix (Thyme) Healer attacking flag issues (Thyme) New makefile for linux (Knoxos) .... and probably more, it's too late to be thinking coherently /**********************/ What does the STATADVANCE number do? Simply put, this number represents the percent chance that the stat associated with a skill that is used will go up by one. Each increment of 1 is a 1/10th percent chance. Example: To give players a 4% chance of raising a stat set this number to 40. The default value of this setting is 20, or a 2% chance. (players would be lucky to gain 1 stat point in a day) Setting this number to 0 will disable stat advancement completely. A setting of 20 is fairly close to the advancement rate seen from build 19a and earlier. To slow things down to a more OSI-like setting, set this value to a range between 7 and 10. /**********************/ 11 September, 2000 (Build 19a) DEVTEAM FIXES Mark, Gate, Recall region check bug fix Explosion Potion exploit fix Header cleanup Source tidy up to work with STLPort INDIVIDUAL FIXES Colour stacking (Gunther/Thyme) Carving fix (Thyme) Criminal when carving human corpse (Thyme) Mining timing fix (Thyme) 22 August, 2000 (Build 19) DEVTEAM FIXES NPCS should be 4x faster (NPCSPEED dropped from 0.5 to 0.125) Wholist/Offlist added (Offlist accessed via 'wholist off) Tailoring fix Murder bug fix INDIVIDUAL FIXES Stat bounce fix (Gunther) 1st August, 2000 (Build 18C) Inscription duping fix should be corrected Smithing code greatly simplified Tailoring, Carpentry, Tinkering, Fletching and Bowyering now only need resources in one of your packs, not your main pack Fishing fixes Players can delete their own chars 15th June, 2000 (COMMITTED BY THE DEVTEAM AS BUILD 18B) Disable trigger fix IGNITION compliance 30th May, 2000 (COMMITTED BY THE DEVTEAM AS BUILD 18A) Healing exploit fix + timing issues corrected Anatomy check added to healing Vendor sell fix 29th May, 2000 (COMMITTED BY THE DEVTEAM AS BUILD 18) SetID fixed, works correctly Ghosts cannot die PUT trigger fixed Healing fixes + time delays Elemental corpse fixes Can't sell > 1 of any item that isn't pileable 26th April, 2000 (COMMITTED BY THE DEVTEAM) OpenDoor macro exploit fix Horse summoning exploit fix Writeable book fixes Slight combat fixes 19th April, 2000 Committed newer crypt for client 2.0.0 (Abaddon) GetMsg receives new packet 0xBF properly, but doesn't process (Abaddon) 7th April, 2000 COMMITTED BY THE DEVTEAM Deathstuff no longer has a charcount loop Port UOX runs on is scriptable, defaulting to 2593 Running uox with the # parameter will now work correctly Writeable books have been implemented 8th March, 2000 Committing of 15g source 25th February, 2000 Plugged a crapload of memory leaks, stability fixes (EviLDeD) Few == tests being made now, rather than = (Abaddon) Proper string comparisons with townstones (Abaddon) PathFind routine finds correctly (Abaddon/EviLDeD) 20th February, 2000 Rewrote smithing / smelting / mining funcs, work cleaner/quicker (Abaddon) 16th February, 2000 Fixed up carpentry so non-GMs can now create things (Abaddon) You can now target resources in any of your packs for carpentry (Abaddon) 15th February, 2000 Guards no longer smack down pets in cities (Homey) 14th February, 2000 All item targeted spells (Lock/Unlock/Trap/Untrap) now work (Abaddon) Xtele and such resend the items in range (Abaddon) Dupe now dupes a stack correctly (Abaddon) Added footsteps option to server.scp. In top section, add.... FOOTSTEPS 1 to turn on, 0 to turn off (Abaddon) Arrows and fireballs fly straight (Ripper) 13th February, 2000 Partial class implementation of wholist, can someone who understands it PLEASE take a look at it, it's got me stumped completely (Abaddon) Removed a nasty crash where AddRespawnNPC would open, but not close the npc.scp. After a long enough period, it died, causing a server crash. This has been resolved (Abaddon) Tweaked up protection/arch protection, lasts longer, does more (Abaddon) Guest entry in accounts.adm now saves properly (Abaddon) 12th February, 2000 Added Protection to spells, it boosts parrying only at the moment (Abaddon) Arch Protection works, need to enable it in spells.scp (Abaddon) 11th February, 2000 Addition of /removeshop to remove the shopkeeper status of an NPC (Abaddon) Added the TEffect class as a replacement for the global teffect array due to the fact that with VC 5 deleting that array caused a crash This way it's cleaner, code's easier, and works just as well Tested with 3 open doors, curse, strength and agility all at once (Abaddon) 10th February, 2000 Fix so that you can't equip a 2 handed weapon when already having equipped a single-handed one (Abaddon) Addition of bar doors (id 190E) E/W only (doesn't block) (Abaddon) Added LOS and 10 pace check to opening packs on ground (Abaddon) Addition of /reportbug, any text following command is logged (Abaddon) Only make carving motion with fletching if got resources and target is valid (Abaddon) Summon creature works, edit NPCLIST 10000 for list of creatures that can be summoned (Abaddon) xGM status saved along with the accounts (Abaddon) Public member of accounts added (EvilDeD) Reduced item_st by a further 156 bytes. Desc member of item_st was 256 bytes. The only way this was written to was via speech and the client won't allow that long a string to be typed in so we can relatively safely assume we don't need 256 bytes and that 100 is likely to be sufficient (Abaddon) Item's desc field saved/loaded to/from disk (Abaddon) xGM and Public for accounts default and initialize to false (Abaddon) Added default summon creature list (Xuri) 9th February, 2000 Took out talkingto[], spattackvalue[], oldserials[], and contcache[]. These arrays did NOTHING, just taking up space.... (Zippy) Changed loscache[] and itemids[] to static 1000 size arrays. This is PLENTY for them, they did NOT need to be itemcount size, they could even be smaller. (Zippy) (Depends on the area size, and whether people use a lot of tiles there's a distinct chance you could exceed 1000) A few more boat fixes (Zippy) Reduced item & char struct sizes a bit.(use CHARs, and SHORTs) (Zippy) 8th February, 2000 Brought whomenudata into alignment sizewise with serial whomenudata was an int, serial is a long, data loss (Abaddon) Numerous comments, smithing partial fixes (coloured ore) (Abaddon) 7th February, 2000 Major boat fixes, large and medium boats need to be rescripted. Boat blocking should work *pretty* well now although there are some places where you can still go PART way into the land and get stuck. (Zippy) You can board and leave boats correctly now (Zippy) 3rd Febuary, 2000 Fixed the bug where you could attack a healer to get healed (Eagle) 31st January, 2000 Fixed up setcharflag to use a switch, works cleaner/better (Abaddon) 30th January, 2000 Fixed up a number of triggers like fishing / healing (Abaddon) Made all the large whomenu arrays the same size (Abaddon) 29th January, 2000 added Name Deeds (type 186) (Eagle) 28 January, 2000 Messageboard.cpp blanked out (per Evils approval) No OS specific submissions without approval (punt) 27th January, 2000 New loginkeys for 1.26.4 series clients (Westy) 24th January, 2000 Cannot cast teleport and teleport onto a water tile (Ripper) You can now use hairdye once again (Ripper) Addition of CALL # to spawn.scp. If greater than 1, then every time it spawns from an NLIST or ILIST, it generates # amount (Abaddon) Must be within MAX_RANGE_SPELL of a char to attack it with magic(Abaddon) Must be within MAX_RANGE_SPELL of item to target it with magic (Abaddon) Must be within MAXRANGE (SECTION COMBAT) to use Anatomy (Abaddon) WEATHERTIME in server.scp now indicates how often light/weather gets updated (Abaddon) MoveToBag command works once again (Abaddon) Redeeding a house now removes all keys attached to it, and generates a proper player vendor deed for each vendor. However, note when you place that vendor again his name will change. (Abaddon) 23rd January, 2000 Removed an archiving crash Anatomy exploit removed (Abaddon) NPC Response fix (Zippy) Should print out to console save state better (Zippy) Put back in a line so that /tile works again (accidentally removed after testing previous fix) (Abaddon) Must be online to become hungry (Abaddon) Fixed up the "Can't use skill while casting" bug (Abaddon) Slight revision to that fix so it will work better (Abaddon) 22nd January, 2000 Fixed a bug where if you smithed an item, but dropped your ingots between choosing the ingot and the item to make, it would make the item without removing the ingots. You must have the ingots in your pack now. (Abaddon/Ripper) Added support for Fame/Karma tags in advancement objects (Abaddon) Range check added to Anatomy, must be within 10 paces (Abaddon) Can no longer lock down a field spell or door in house lockdown (Abaddon) Can't target someone more than 20 paces away for a spell (Abaddon) Can't use a skill while casting a spell (Abaddon) Added function ValidLockDown that determins if an item can be locked down or not, to help with Lockdown/Release (Abaddon) Doubleclicking on door of house you own when locked works again (Abaddon) Dropping a scroll on a spellbook puts it in the spellbook (Abaddon) (This wasn't working, it was never updating new cont serial) Fixed a bug so that you only need your key in your pack to open your house if the door is locked (Abaddon) MENTAL NOTE: Spellbooks are done horribly. Right now, a full spell book has 64 items within it, and that seems wasteful when you start to scale the books up a lot. One option is to have a series of fields, you'd only need 8 bytes, 9 for extras potentially, and there is one bit for each spell, present or absent. Granted, if the spells ever increase in number, then you'll need to add more fields to support the larger number of spells, but I think that the size decrease tradeoff would be quite significant. Item_st is fairly big, and to remove 64 of them and replace them with 8 bytes seems like a boon. Then again, there may not be that many spellbooks in the world either. Just a consideration. (Abaddon) 21st January, 2000 CreateScriptRandomItem() now returns it's index, spawns work properly again (Abaddon) Can move invisible light source around in pack as GM (AntiChrist) Number of numerous gump corrections (Xuri) (Potion keg, barrel with lids, bushel, basket, belt pouch, wooden box) Senditem() revisions (AntiChrist) single clicking a player now shows if they are guarded or not (Ripper) [Murderer] appended on single click if a murderer (AntiChrist) Criminal highlighting fixes (AntiChrist) Monstergate() rewritten to use a switch (Abaddon) /Tile fixed and works correctly (JustMichael) Char creation for account 0 properly initializes priv2 setting (Abaddon) GMs by default no longer see house icons (Xuri) 20th January, 2000 DRASTIC restructure of CWorldMain: (Zippy) - World is now saved in peices, so the server continues to work during a save. - The number saved is scriptable ( server.scp ) SAVE_PER_LOOP Set this to -1 or 0 to save the entire world all at once HUGE Lagfixes: Cut out about 30 itemcount and 30 charcount (Zippy) for loops, replaced with hashtables and maRegions some of these were in widely used code, should be a big boost Declared ptr in SpawnItem (Abaddon) Walking fix (Dupois) MagicArrowSpellItem potential crash fix (AntiChrist) Tweak to reflected MindBlastSpellItem (Abaddon) Slight crashavoidances in newCastSpell() (AntiChrist) RefreshItem added so item's spawned from spawn.scp display (Abaddon/JM) Reveal spell no longer reveals perma-hidden people (AntiChrist) Chain lightning can be resisted and reflected (AntiChrist) Magic property set correctly for field spells (AntiChrist) case 35 added to sound effect for magic (AntiChrist) Removed rotating crypt check in network.cpp (no longer relevant)(Abaddon) few changes of *256 to <<8 in npcs.cpp (Abaddon) RandomSteal weight tweak (Abaddon) DyeTarget() console print message commented out (Abaddon) Hides after carving are now in the right layer (AntiChrist) Can't trigger a disabled item (Magius) MENTAL NOTE: Monstergate could be switch'd (Abaddon) Monstergate() tightened with slight script stuff (AntiChrist) Fix in sellaction() for advanced trade system (Magius) Fix in buyaction() for advanced trade system (Magius) PlayerVendors can't be tamed/released (Ripper) Slight boat plank fixes 19th January, 2000 Fixed html not opening, add FILE tag to html script (Zippy) Added FILE tag to html script, for writing multipul files (Zippy) Fixed so that a script now reads a tab as a space removing the "Invalid command ..." bug (Abaddon) 18th January, 2000 Cancelling axle with gear creation no longer deletes item (Abaddon) Can no longer combine 2 axles or 2 gears to get axle with gear (Abaddon) Can no longer combine axle with self, or gear with self (Abaddon) When in combat, with a target, if you run, you get a 2 sec attack delay (Abaddon) Empty shelves gump correction (JM/Abaddon) If fail spell, saids words of power (Abaddon) Using an axe on logs works correctly (Abaddon) Adding scroll to spellbook will no longer spam (JustMichael) ALL BY DUPOIS - NPC's (monster/vendors) walking over blocking static objects (ie display cases) - Vendor training - Door Macro - Moongates work just like OSI (you wind up in the gate after teleporting not offset by +1) - Vendor selling, they now look through your entire backpack for items they will buy. - Sound effects being sent to everyone on screen when your moving items in your own backpack (removed, should only send sfx to player who owns the pack) - Sound effects added when other player in a trade window adds or removes an item - message boards now have a few more features (see msgboard.txt in DOCS dir and msgboard.scp in SCRIPTS dir) - escort quests added / integrated with message board enhancements 17th January, 2000 Multis set correctly in walking (CheckForHouseBan()) (Zippy) Endtrade possession fix (Dupois) No name player made items (JustMichael) name2 initialized in inititem (Abaddon) Horses dying no longer die on dismount (JustMichael) Weight being way too high on trade window fix (JustMichael) 16th January, 2000 HTML Code fix (Zippy) Added ifdef for crash protection and took out realmain() (Zippy) Gender bender bug fix (Dupois) Few script/item load fixes (Abaddon) Racial effect save on item (Abaddon) /zerokills now flags properly (AntiChrist) /setmurder updates flag quickly (Abaddon) /tilew crash catch (AntiChrist) all_items_all() added to /wanim (AntiChrist) cCommands::MakeShop spawnitem crash prevention (AntiChrist) cCommands::AddHere crash prevention (AntiChrist) cCommands::DupeItem requires a pack (AntiChrist) Guildstone placement crash avoidances (AntiChrist) |1 changed to &1 in cGump::input (AntiChrist) Deedhouse crash prevention (AntiChrist) addthere with a crash prevention, and RefreshItemusage (AntiChrist) House release code slight textual change (Abaddon) closescript() added into cItem::CreateScriptItem (AntiChrist) closescript() added into cItem::CreateRandomItem (AntiChrist) cItem::CreateRandomItem crashfix (AntiChrist) closescript() added into cItem::CreateScriptRandomItem (AntiChrist) closescript() added into cItem::SpawnItemBackpack2 (AntiChrist) closescript() added into cItem::AddRandomItem (AntiChrist) Numerous more closescript() added (AntiChrist) Item -1 checks in necro (AntiChrist) healing speech revision (AntiChrist) TreeTarget fixes (AntiChrist) Enticement fixes (AntiChrist) CreatePotion crash fix (AntiChrist) AdvanceStats fix (AntiChrist) Buying from a player vendor now requires a backpack (AntiChrist) NPCs will trigger in case 24 of targ::multitarg (Magius) House list code revised and debugged (AntiChrist) Crashfix in targ::ownertarget 11th January, 2000 /getlight command added for aiding in debugging (Abaddon) Day/Night cycling partially works (Abaddon) Removed some old commented out code (Abaddon) cGuilds::Read changed from ifs to if/elseif (Abaddon) cItem::CreateScriptItem changed ifs to switch (Abaddon) cItem::GetScriptItemSetting changed ifs to switch (Abaddon) cGump::Button changed to have some switch statements (Abaddon) Addition of /showdetail command (Abaddon) NOTE: CreateScriptItem and GetScriptItemSetting should call a function so there's a unified read. NPC class should also add that in the future as well. 10th January, 2000 Newbie begger crash fix (Abaddon) try/catch no longer execute if crash protection is off (Abaddon) Hidden players show up when they walk again (Abaddon) Beard colour restrictions work correctly (Abaddon) Hair colour restrictions work correctly (Abaddon) Skin colour restrictions work correctly (Abaddon) Singleclicking a murderer will show their name in red (Abaddon) Impowncreate now highlights murderers correctly (Abaddon) Earthquake is now in racial highlighting alignment (Abaddon) 9th January, 2000 cItem/CharacterHandle classes for handling item/char memory (Zippy) Addition of try{}catch(...){} to main for crash protection (Zippy) (Note, this slows things down, and now it won't crash to the correct line in the debugger, it's nice and shuts down (with crash protection of 0. Try/catch takes a 5-10% performance hit in C++, because of extra stuff it needs to track, you may want to not actually release a switch based version, but a #ifdef one, because even with a switch turned off, you will find that it still takes the performance hit because of what it needs to track... Abaddon) CRASH_PROTECTION added to server.scp SECTION SERVER: 0 - Off, on an unhandled exception server will shutdown 1 - Save only, on an unhandled exception server will save and shutdown 2+ Save & Restart, server will save and restart on an unhandled exception, after 10 restarts, server will shutdown. (Zippy) Items/characters that are hidden will only be sent to GM clients(Zippy) 5th January, 2000 Stealing crash fixes (Abaddon) Paperdoll crash fix (Abaddon) 20 December, 1999 Townstone deed switched to type 35 (Mithos) Linux compile fixes (Mithos) bank balance should spam less (Abaddon) 19 December, 1999 AddNPCxyz rewrite to use switch (Guards fixed) (Abaddon,Homey) Char deletion works again (Abaddon) Further skill window crash bug enhancement (Abaddon,Homey) Metal box gump fix (Daemar) Skill use exploit fix (Mike) 18 December, 1999 CommandLevel privs copy over now when you possess someone (Abaddon) NPC display walk fix (Homey) /unhide fix (Abaddon,Homey) Proper fix to /setrace for GMs (Abaddon) Wallmounted torch problems fixed (Quippl) Magic anim on horse properly fixed up (Abaddon) Locked skill could raise stats, fixed so it doesn't (Abaddon) 17 December, 1999 Guards fix (Abaddon) Potential combat swing fix (Abaddon) Shouldn't be able to steal from a vendor's buy or sell layer (Abaddon) Murderer's should highlight correctly now (Abaddon) Lockdown/Release for housing (Abaddon) Skill management fixups (Abaddon) Removed the not dead message when being resurrected as ghost (Abaddon) Keytable overrun fix (fur) 16 December, 1999 Skill window crash fix (Abaddon) NPC highlighting fix and speedups (Abaddon) 15 December, 1999 Memory leak fix (Eagle) Mining fix (Mithos) Lag fix (Eagle) Proper specialbank fix (Abaddon) Alchemy fix (no more access denied message when grinding) (Abaddon) Stealing fixes (can steal from a pack now, with weight of 100 + 2 * baseskill in stealing) (Abaddon) Sent Xuri updated PlayerRace docs (Abaddon) Sent EvilDeD guildstone potential design information (Daemar) GetScriptItemSetting fix (Ripper) Current Command table added to bottom of this document (Abaddon) /SetRace command will change the GM who executes it (Abaddon) 14 December, 1999 Paperdoll fix (Abaddon) Specialbank fix (Abaddon) 13 December, 1999 Fixes from Ripper (Abaddon) Combat crash fix, archery butte fix, mantra say fix (Abaddon) 12 December, 1999 another round of walking fixes, added new RegionIterator class (fur) fix for loading skills twice for some reason (fur) 11 December, 1999 fixes for spawning, map stuff, and walking (fur) fixed call to memset() to pass a pointer (fur) fix for monsters falling thru the floor in dungeons (fur) Some xGM code + some skill fixes + AUTO ACCOUNT CREATION (Zippy) 10 December, 1999 Racial speech fix, and /add fix (Abaddon) CommandLevel priv fixes (Abaddon) Spelling fixes (Abaddon) 9 December, 1999 Racial fixes (Abaddon) 8 December, 1999 Script reloading crash fix (Abaddon & fur) Slight race fixes and script revisions (Abaddon) Uncommented out DISPZ in saving (fur) Renamed several cMapStuff functions to help keep them straight (fur) Added /wstats command for testing walking code (fur) multiple fixes for walking-related/cache bugs (fur) created an AverageMapHeight() function in the cMapStuff class (fur) Racial script revision PLAYERRACE 0 // 0 is not playerrace, 1 is playerrace 7 December, 1999 Couple of command fixes, GM priv fixes, racial fleshing out, attempt to dump menu of scripts (Abaddon) Priv fixes (Abaddon) moved the const record lengths into .h file so could be used in other .cpp's (fur) fixed bugs & improved the Map0 caching to search smarter (fur) fixes to keep monsters from spawning into black areas (fur) 6 December, 1999 minor skills update (Abaddon) Command table made scriptable, added commands.scp (see bottom) (Abaddon) Slight speed tweaks to townstones (Abaddon) Townstones and Races reserved for change by Abaddon and Daemar only fixes to reading in multi's (fur) fixed /npccircle command (fur) 5 December, 1999 Removal of metagm and menupriv as EvilDeD wanted (Abaddon) 4 December, 1999 Race fix, skill management packet dump, and attempt at invis spawner fix (Abaddon) Some fixes and small changes, clean ups for muh boats (Zippy) Invisible spawner now invisble, and makegm fix (Abaddon) 3 December, 1999 fix to NULL vendor items (fur & Quipple) 2 December, 1999 fixes for item/region spawning and npcwander bounding areas when created (fur) fix for spawn type 62/69. still needs some work for wander areas (fur) 1 December, 1999 bumped the supported client version so they are correctly reported (fur) 30 November, 1999 Improved error out with HTML file creation (fur) Fixed crash bug with creating new chars on linux (fur) fix to memory corruption bug in MemCharFree()!!! (fur) fix to make animals grey by default again (lost on a merge) (fur) change to item spawning, but is probably not sufficient fix yet (fur) 29 November, 1999 added more checking for when fopen() fails to avoid crashes (fur) 26 November, 1999 Fireworks wands and some fixes (Zippy) 24 November, 1999 Put new encryptions fixes in (Abaddon) Few more skill management updates (Abaddon) 23 November, 1999 Put fixes back in for Nov 17 changes (Abaddon) 22 November, 1999 Fix to newbieitems() (fur) House redeeding done (Eagle) More changes of sprintf() to strcpy() (fur) 21 November, 1999 Fixed several crash bugs with closescript() (fur) made the cMapStuff caching methods private (fur) 19-20 November, 1999 Fixed CVS after it had accidentally had some old stuff checked in (fur) Fixed makefile to work under linux again (fur) fixes for sending socket = -1 to SpawnItem() by adding extra argument to it (fur) removed PACKED attribute for linux and hand-padded some structs to avoid bus errors on linux (fur) 17 November, 1999 Removed redundant references, changed sprintf()s to strcpy()s (Abaddon) added racial weapons back to combat (Abaddon) minor strcopy updates (Eagle) newbie gold fixes (Eagle) fur's crash fixes including SpawnItem() changes (fur) fixes to avoid blowing up when deleting spells[] (fur) rewrote misleading map file loading messages to hopefully cut down on tech support issues in the future (fur) added documentation for flags/packets (fur) made sure everything was cleared out when cMapStuff is created (fur) 16 November, 1999 Inserted fixes made by LB(?), fixed to compile under VC++ (fur) fixes to compile under linux, also crash bug fix (fur) >>>>>>> 1.18 15 November, 70.0101 Z change error fixes, doors opening, some triggers (LB?) 9 November, 1999 69.04.05t Five more crash bugs fixed (fur) 7 November, 1999 Fixed NPC/Item save in wind and some dungeons (Abaddon) Fixed a couple of racial weather affect bugs (Abaddon) 5 November, 1999 Fixed crash bug with /glow and /unglow (fur) Added missing iron gate (0x0824) to doortypes (fur) Made /add automatically settype=12 for doors (fur) Fixed region spawning/NLIST bug (fur) Fix to items made with /tile disappearing (fur) 3 November, 1999 Rewrites of map and map caching (fur) *Note, Although it now uses less memory than it previously did, it reports that it is using about 5M instead of the previous 2M. This is because it previously did not report the 3M required to hold the static index. It also allocates this 3M static index whether you have caching enabled or not. I am reluctant to fix this now, and rewrite even more than I already have since I'm trying to get the map/walking code to stabalize again for the .05f release. Fixed monsters walking thru walls which I broke earlier (fur) 2 November - 29 October, 1999 (69.04.04t release) Rewrites/fixes to walking (fur) Fix to static caching (CACHE_MULL 1 in server.scp) (fur) Fix for /npccircle not getting saved (fur) More porting fixes for linux (fur) NPCs walking speed halved (Abaddon) 16 October, 1999 Magic bug properly fixed (Abaddon) Day/night now is definitely fixed (Abaddon) Vectors were merged, but taken out again, cause VC 5 doesn't (Abaddon) build it well at all (major errors, 670 errors) Major speedups to item and npc script loading (Krazyglue) Speedups to InitItem (Krazyglue) Weather spams less (Abaddon) 14 October, 1999 Magic should be fixed now (Abaddon) memset used in InitItem, rather than a bunch of =0; (Krazyglue) Weather should be fixed, as well as day and night cycles (Abaddon) (Doesn't use a timer, currently. Static counter type thing) Fatal magic exception got fixed (Abaddon) 13 October, 1999 Tuning to the memory allocation and deallocation (Krazyglue) Item decay fixes (item in container no decay) (JustMichael) NPC dyeing fixes (DyeItem and DyeTarget) (Abaddon) Magic should be fixed (Abaddon) Removed the possibility of NOT caching spells (Abaddon) Weather should be fixed (Abaddon) Significant amount of xGM implemented server side (Abaddon) 12 October, 1999 Minor tweak, but not a real bug fix, to magic (Abaddon) 11 October, 1999 malloc and realloc completely replaced with new (Krazyglue) item and npc loading speedups (Krazyglue) fixed "delete magic" problem (Krazyglue) spells permanently cached (Abaddon) 10 October, 1999 Fixed a very nasty crash bug with magic (Abaddon) Server crashes on exit, when trying to "delete Magic" (Abaddon) Merged in Zippy's new walking code (Abaddon) 09 October, 1999 Apparantely, Linux doesn't have atoi, even though it has itoa (Abaddon) Merged in some of Krazy's stuff... new instead of mallocs (Krazyglue) Better memory and file cleanup (Krazyglue) Possible fix for the blue monsters problem (Abaddon) Some Dead and commented code removed (Abaddon) 08 October, 1999 Implemented fire and ice arrows (Abaddon) Many sprintf's converted to strcpy's (Krazyglue's team) Spells are cacheable (Krazyglue's team) Spell cache is optionable (Abaddon) Found a potential way to remove the monsters weakening (Abaddon) STR, DEX and INT cap only applies to PCs (includes GMs) (Abaddon) newSelectSpell2Cast streamlined a touch (Abaddon) GMs no longer need reagants to cast spells (Abaddon) GMs no longer can cast spells in jail (we want to jail em!) (Abaddon) Fixed a potential you can't cast in region bug (Abaddon) A Win32 script fix broke a linux fix... both fixes in now (Abaddon & Tseramed) 07 October, 1999 Chaos gate fixes (Kashyyyk) playTileSound fixes (Kashyyyk) 06 October, 1999 playTileSound fixes (Abaddon & Kashyyyk) new NPC walking code, with pathfinding (Zippy) xGM support in server now (Zippy) Pets highlight same colour as owner (Zippy) StaticInit returns int, not char (Abaddon) 05 October, 1999 Pets that guard now follow you (Abaddon) New smoking sound (Abaddon) Chaos/Order gates fixed (Abaddon & Kashyyyk) Early playTileSound function implemented (Abaddon) A minor Linux fix (Abaddon) Burning meat makes burnt meat (Abaddon) 04 October, 1999 Running NPCs now scriptable (Abaddon) Linux fixes (Tseramed) npcattacktarget should no longer spam as much (Abaddon) 03 October, 1999 Pet Guarding for owner added (Abaddon) Running NPCs (Abaddon courtesy of Ripper) Pet attack fixes (Abaddon) Walking fixes (JustMichael) Some sprintfs turned to strcpys (Krazyglue) Borland fixes merged in (Krazyglue) Moved most #defines to typedefs.h (Abaddon) Moved structures to uoxstruct.h (Abaddon) Borland, makefile and Visual C project information put in (Abaddon) 02 October, 1999 Smoking in and revised (Abaddon) Decay fixes (JustMichael) 01 October, 1999 Pet attack stuff put in (Ripper) Warnings reduced down to 5 (Abaddon) Useful information: AI Types: 32 Pet's that guard Item types: 185 can smoke item setting ITEMSDECAY 1 in house.scp allows items to decay there New Commands: /glow Makes an item glow /unglow Turns off the glowing item xGM Updates 0x03: // Add item 0x04: // where am I? 0x05: // kill 0x06: // Resend 0x07: // teleport 0x08: // Make GM 0x09: // Jail 0x0A: // xbank Older updates: September 1999 Lots and lots of Bug Fixes (Abaddon,Zippy,Revana,JustMichael) August 1999 Player Races added (Abaddon) Weather System added (Abaddon)