Bring out your bugs

Report core bugs regarding the Ultima Online Emulator Core release (version 097). You can attach your Core Dump. One bug per post.

Moderator: POL Developer

User avatar
Former Developer
Posts: 615
Joined: Wed Jan 25, 2006 2:30 am

Bring out your bugs

Post by Austin » Mon Aug 18, 2008 12:16 pm

We're looking to finally do a release of 097 and begin doing 097.x builds.
We have the release candidates going and right now want to collect any bugs that prevent us from doing an official release so we can begin working on 098.

If you post a bug, please provide details with how to reproduce it, to speed up the fixing.

We'll prioritize the ones in this thread I guess and take it as it goes.

User avatar
Forum Regular
Posts: 338
Joined: Fri Feb 10, 2006 8:08 am
Location: Myrtle Beach, South Carolina

Re: Bring out your bugs

Post by MontuZ » Mon Aug 18, 2008 9:55 pm

*Loading two POL's can cause corruption to accounts.txt/accounts.bak(Maybe others?). I only had two open for a little less than a minute and information got wiped from various accounts(Only on accounts that people logged into the same time two POL's are open using the same data of course.).

*If your computer shuts down(blue screen/power outage) even if POL isn't in the middle of saving; accounts.txt/accounts.bak can become corrupted(Usually entire sections are wiped.).

* ... &sk=t&sd=a

* ... &sk=t&sd=a

POL doesn't hold accounts.txt/accounts.bak into memory it seems(Like all the others?). I've had to warp numerous times due to accounts.txt/.bak corruption. (Nearly every time there's a storm in my area the fucking power goes out, lol.)

User avatar
Journeyman Poster
Posts: 63
Joined: Tue Apr 18, 2006 11:10 pm

Re: Bring out your bugs

Post by taxman » Tue Aug 19, 2008 12:40 am

User avatar
Former Developer
Posts: 615
Joined: Wed Jan 25, 2006 2:30 am

Re: Bring out your bugs

Post by Austin » Tue Aug 19, 2008 9:30 am

By the way - here is an up-to-date corechanges.txt

Code: Select all

-- POL097 --
08-16 Turley:
        Changed : Character.connected startup value is 0
        Added :   Accountname string struct member "account" added to
                  pre-character selection Packets
08-15 Austin: 
        Added :   Setting for servspecopt.cfg 'ScriptedAttackChecks' Default is disabled.
                  If enabled, the combat hook must check distance, line of sight, visibility
                  and if both combatants are alive.

07-29 Mehdorn:
        Changed : uo::ReserveItem() will return
                    1 - Item has been reserved by me.
                    2 - Item was already reserved by me.
                    Error - Item is in use by someone else, or invalid Parameter.

07-08 Turley:
        Changed : Status of other player (e.g. WarMode) will be shown correctly.
        Added :   Character.MoveMode member. Returns the MoveMode like given in NPCDesc.
        Added :   Item.Stackable member. Returns 0/1 based on stackability of Item.
                  uo::IsStackable(). Returns 0/1 if both Items can be stacked together.
        Changed : Random Number Generator based on "Numerical Recipes in C 3rd Edition" will be used.
        Added :   util::RandomIntMinMax(). Return Random Value between...

07-26 VeNdOr:
				Added : ApplyDamage now returns the real damage applied to the mobile.
05-28 VeNdOr:
				Fixed : In some conditions, when the AuxScript exited, the AuxConnection didn't close. 

05-23 Austin:
        Fixed : If MinCmdlevelToLogin was used, characters could not be created.
                POL will now check the account's default command level.
        Added : servspecopt.cfg CoreHitSounds    default: disabled
                If disabled, scripts will handle sounds when a mobile is damaged.
                If enabled, will work as it did before - but for npcs will use a DamagedSound 
		property from its config file.

02-9  Shinigami:
        Fixed : Bug in Unpack() with zero length Strings.

02-8  Austin: 
        Added : CharacterSlots setting in pol.cfg. Defaults to 5. This is to set the maximum number
                of slots an account can hold - to support clients that support 6 slots.

02-5  Austin:
        Changed : The freemove privilege will also allow targetting to be done when frozen / paralyzed.

02-2  Madman:
        Changed : Trying to move when Paralyzed will no longer spam your screen with 
                  "You are frozen and cannot move."

12-9  Shinigami:
        Fixed : Bug in Unpack() with Strings in Arrays, Dictionaries etc. in case that
                the String is not the last element.

11-5  MuadDib
        Added : Character.Cursor member. Returns 0/1 based on if character has an active
                Character.Gump member. Returns 0/1 based on if character has any active
                Character.Prompt member. Returns 0/1 based on if character has any active
                unicode and/or normal text prompt gumps open.
10-20 MuadDib
      Removed : Basic::Left and Basic::Mid. These functions reported not working since
                095, and code was set to not use them anyway. Val[int, int] works anyway
                and does what these functions do.
        Added : Basic::SubStr(string, start, length). Replace for left/right/mid. Works
                same way as virtual SubStrings in eScript (val[int, int]). This is for
                those who like the func methods instead.
        Added : Math::Min and Math::Max functions.
10-11 MuadDib
        Fixed : Changing realms with Season info would reset light levels until next
                light update in that realm. Send Season in core now sends light level
                whenever season info is sent to the client (Client issue). Also fixes
                an issue with seasons and 1.x clients.
        Added : servspecopt.cfg::DefaultLightLevel=ushort. New default light level
                setting for regions with no light level defined in regions cfg files.
                Default is 10. Replaced arbitrary setting in core.
        Fixed : Exploit in Create Character system.
10-10 MuadDib
        Fixed : uo::CreateAccount() will no longer accept non-alphanumeric characters
                for account name, will return error stating such if one is used. Also
                now passwords can contain all characters except whitespace and control
                characters. Please test heavily. I tested for the commons via script

10-04 MuadDib
      Changed : NPC::IsLegalMove() will now explicitly check for a MOVE in the given
                direction, regardless of NPC's current Facing. Will stop AI's that
                have NPC's using Bounding Boxes that walk out of the box by checking
                legal move, turning, then moving 1 step. Please be sure to check
                your AI's that use bounding boxes, to see if you coded that way!
                This check is for step movement. Facing should only be blockable if
                frozen, paralyzed, or stamina affected (if server set to use stam).
        Fixed : Exploit in Unpack() with Arrays and Dictionaries. If an element within
                the pack returns an error when unpacked, Unpack() halts and returns an
                error. Still ignores Uninit stuff as before. Same reasoning for fix as
                with Strings on 10-02. Dictionary will continue on and insert the error
                returns in key/value entries.
10-02 MuadDib
        Fixed : Exploit in unpacking Strings with length definition. Affected manual 
                building of packed versions such as in use by Aux connections etc.
                New error returns: 
                "Unable to unpack string length. Invalid length!" = 0 or less Length
                "Unable to unpack string length. Bad format. Colon not found!" = Duh.
                "Unable to unpack string length. String length excessive." = Said it 3,
                    but length was actually less.
                "Unable to unpack string length. String length short." = Said it was 3,
                    but length was actually more.
         Note : The following is acceptable in packed data sets.
                's' = String data, no length defined. Ex: sHello World!
                'S': String With Length defined. Ex: S12:Hello World!
                'i': Integer follows. Ex: i12
                'r': Double Integer format. Ex: r12.9
                'u': Unitialized Object format.
                'a': Array follows. Ex: a2:S12:Hello World!S12:Hello World.
                'd': Dictionary.
                't': Struct
                'e': Escript Error
                'x': Unitialized Object
                If you ever question the format for something packed, then just use
                the Pack() function on your data, to see the end result. 
9-05 VeNdOr
        Fixed : equipped items become invisible on realms different from britannia
9-04 VeNdOr
        Added : auxconnection.ip -- returns remote ip of connection as string

8-20 Shinigami
        Fixed : Bug in config/movecost.cfg - "Walking_Mounted" section was ignored

8-19 Shinigami
        Fixed : Memory Leak in PacketHook functions

7-09 Shinigami
        Added : added UO:KR login process
        Added : player.isUOKR -- returns 1 if player uses an UO:KR client

6-17 Shinigami
        Added : Entry to pol.cfg 'WorldDataPath' to set a different path to the data files.
                Defaults to 'data/'

5-4 Shinigami
        Added : uo::GetRegionName( object )                - get name of [justice] region
                uo::GetRegionNameAtLocation( x, y, realm ) - get name of [justice] region

4-12 Austin
     Added: Projectile support for NPC intrinsic weapons.
                Property keys are AttackProjectile, AttackProjectileAnim, AttackProjectileType and AttackProjectileSound

4-8  MuadDib
        Fixed : Crash involving Realms() and passing non-string param or empty param to it.
      Changed : Sending of worn items to inrange pcs has been optimized. Should help
                reduce load a little bit for fully dressed mobs and full packs. Maybe
                reduce server load during bashes? Would require testing of course to make
                that statement :)
      Removed : CreateNPCFromTemplate() will now only accept Struct for override props.
                Arrays was removed due to core changes in array handling since this
                function was updated to use arrays.

4-4  MuadDib
        Added : WornItms Container checks that look for and handle container class
                objects like Quivers, etc, will ignore the following layers for the
                obvious and specific reasons:
                11 (hair), 15 (shhhh), 16 (beard), 21 (pack), 25 (mount)
      Changed : WornItems container checks when looking for accessible items. If an
                item inside the WornItems container is a container itself, it will
                now check inside that. This affects for example, quivers added in
                the ML Expansion. Lets you make new equippable containers to
                hand layers, etc, and be usable fully for adding items into it
                and removing while equipped. This is in effect for layers 1-25
                so be very carefull when creating these items!
      Changed : WornItems container is now checked for legal containers when drag-n-drop
                attempts to drop an item onto the equipped container class object (quiver).
                THe above layer ignoring is in place here also.
        Added : Projectile weapons will now check equipped containers for ammo if it
                cannot find any in the backpack first.
         NOTE : I very strongly recommend making equip scripts and all for these
                items. Since it IS a container, you need to make sure the layer
                the client is putting it on, is the correct layer. So just have the
                equip script make sure the correct layer is empty on the character
                equipping this. Remember, these are CONTAINERS, not armor/weapons.
                The client will allow equipping only if the item is set as armor
                or weapon, and uses layers client side. Never trust the client, thus
                the need for an equipscript for containers when they can possibly be

3-28 Shinigami
       Changed: Adjustment to increasing the revision state for Equipment loosing
                HPs while fighting.

1-15 MuadDib
        Fixed : PrintTextAboveCL() now checks for object instead of mobile class
                being passed to it.
      Changed : Default of uc_text in cliloc.em. Just smack me.

1-3 MuadDib
        Added : Packets that are pre-character selection will now report a struct to
                a packethook with the member "ip". So far this is the only member in
                the struct. Future members might be added, but don't hold me to it.
                Account references at this time, cannot be added.

1-2 MuadDib
        Added : Native handling of 2D and 3D "Allnames" macro that uses CTRL+SHIFT.
                Added due to the nature of client to spam a lot of these in crowded
                areas, which would cause server lag due to packet hooks to handle each
                request individually in critical mode per client using it.

12-27 MuadDib
        Fixed : Server IP is now sent in correct order in the 0xA8 packet.

12-05 Shinigami
        Fixed : fixed a Bug in Walking-on-Multi-Code. A Multi-Definition Door upstairs could block walking.

11-02 Austin
     Changed : POL no longer requires the presence of the following files in pol/config/ in order to start up:
               combat.cfg, movecost.cfg, watch.cfg, armrzone.cfg, circles.cfg, spells.cfg npcdesc.cfg
               and pol/regions/resource.cfg

10-30 Austin
     Fixed : Error in the internal webserver where it would sometimes only send the first part of a file.

10-25 Austin
     Added : Entry to pol.cfg 'RealmDataPath' to set a different path to the data created by uoconvert.
             Defaults to 'realm/'

10-20 Austin
     Fixed : array{array{}} was appending as a single array as a result of a 10-17 change.

10-17 Austin
     Fixed : array += array will work properly now by merging the arrays.
             array += xxx will place 'xxx' at the ending index of the array.

09-28 Austin
     Added : account.AddCharacter(index)
             * If Index is 0 (.AddCharacter(0)), it will find the next available slot on the account.
               (Otherwise pass 1-5)
             Will create a naked, uncolored, male character named "new character" at 1, 1, 1 on Britannia.
             Character setup will need to be done in the script that creates it.
             Does not start "scripts/misc/oncreate.ecl"

09-27 Austin
     Added : File::FileExists( filename ) - returns 1 if a file exists, 0 if not.

09-26 Austin
     Fixed : Bug in repsys hook where highlight and name color params were backwards for player-player.
     Fixed : move_offline_mobiles method for boats.

09-23 Shinigami
       Changed : Profiling counter Script_Cycle and Sleep_Cycle uses 64bit now

09-20 Austin
       Changed: polsys::Realms() to polsys::Realms(realm:="")
                 If a realm name is passed, it will provide a struct for that specific realm,
                 otherwise will work as it did before.

09-17 MuadDib
        Added: NPC::SayUC(). Same thing as Say(), cept unicode formatted.
      Changed: NPC::Say() and SayUC() now check distances for different text types.
         Note: DoEvent for SayUC() is currently disabled.

09-17 Shinigami
        Changed : uo::SendEvent() and Script.sendevent() will return error
                  "Event queue is full, discarding event"

09-16 Shinigami
        Added : some Packet functions, same as original one, but with flipping Byte Order
                Packet.GetUnicodeStringFlipped(offset, length)
                Packet.SetUnicodeStringFlipped(offset, unicode character array, nullterminate)

09-15 Austin
       Added: ENUMERATE_ROOT_ONLY for EnumerateItemsInContainer(container, flags)
              Will cause it to only list the contents in the container passed and not
              the contents of any sub-containers.

09-05 MuadDib
       Added: UOConvert now adds "season 1" to the realm.cfg file for each realm during
              conversion. Season will default to 1, if no season entry is given (aka
              you was to lazy to run the newest uoconvert for your maps!). Seasons
              are listed as follows:
              0 = Spring
              1 = Summer
              2 = Fall
              3 = Winter
              4 = Desolation (Felucca)
       Added: Realms() will now also return .season for each realm.
       Fixed: Core not sending season information correctly when logging in or
              changing realms if non-encrypted clients was set up in pol.cfg.

09-03 MuadDib
       Added: character.shield member. Returns an ObjRef of shield equipped.

09-02 MuadDib
       Added: Polsys::IncRevision(object). Used to increase the Revision number of an
              object (mobile or item). It then also runs a check for resending the
              tooltip data to client. This can be used in scripts when you change
              CProps or other items that normaly do not update the tooltips for
              custom tooltip hooks.
     Changed: Internal handling of UO.EM Function execution. Should not affect
              scripts. As always, be sure to recompile your scripts when you
              upgrade to a new core release.

09-01 MuadDib
       Fixed: Bug causing Pre-AOS status bars to freeze clients and/or generate core
     Changed: Adjustments to increasing the revision state for stacks, items, and
              mobiles. Rule of thumb, if you change a member like newbie, title_race,
              and so on via script, this is not automatically updated. Names, amounts,
              and so on that are more critical ARE increased. This is pre to a an
              upcoming ability to increase via scripts and force tooltips to be
              resynced with the client for custom tooltip hooks to be fired.

08-31 MuadDib
     Removed: All instances, calls, used and unused, code for the permitems.txt
              data file. This was never fully implemented, and as such, has been
              removed by decision of several developers.

08-26 Austin
       Fixed: POL will check to make sure the corpse and backpack items are setup
              in an itemdesc.cfg when loading.
              If EnableSecureTrading is enabled in pol.cfg it will also check to
              make sure its container is setup.

08-25 MuadDib
       Fixed: Padding involving stats.

08-22 Austin
       Added: npc.alignment : 0 - Neutral, 1 - Evil, 2 - Good

08-19 Austin
       Added: Three more hooks to repsys.cfg's HookList elem.
              OnAttack Run when a mobile attacks another.
                        - Target with the TGTOPT_HARMFUL flag set.
                        - Mobile goes into warmode and double clicks another.

              OnDamage Run when a mobile damages another.
                        - ApplyDamage() or ApplyRawDamage() is used.

              OnHelp   Run when a mobile helps another.
                        - Target with TGTOPT_HELPFUL is used.

08-17 Austin
       Added: repsys.cfg
              New elem called 'HookList' which will support syste hook scripts for the reputation system.
              Currently name (single click) and highlight (health bar) colors are hookable.
              HookList HookList
                   NameColor :repsys:hookScript:NameColor
                   HighLightColor :repsys:hookScript:HighLightColor
              exported function NameColor(mobile, visible_to)
                   return CInt(GetObjProperty(mobile, "NameColor"));

              exported function HighLightColor(mobile, visible_to)
                   return CInt(GetObjProperty(mobile, "HighLightColor"));

              HighLightColor note: The client seems to only accept the following numbers
              0 - None, 1 - Innocent, 2 - Friend, 3 - Attackable,
              4 - Criminal, 5 - Enemy, 6 - Murderer, 7 - Invulnerable
              8 - Unknown (blue gump, pure black mobile)

08-14 MuadDib
       Added: uo.em command CancelTarget( of_whom). Can be used to kill an existing cursor
              if one exists, for a client.

08-12 Austin
       Changed: pol.cfg IgnoreLoadErrors=1 (enabled) changes
                  Instead of stopping the startup, the following will occur:
                * If an item belongs in a container or on a character and neither
                  are present, the item will be destroyed.
                * If an item has an undefined objtype greater than 0x3FFF, it will not be loaded.

08-11 Austin
       Added: Datafile::ListDataFiles()
              Returns an array of structs containing
              .pkg - name of the package the datafile belongs to
              .name - name of the file
              .descriptor - :pkg:name

07-24 MuadDib
       Changed: Handling of non-aos expansion accounts and status bars.

07-20 Austin
       Fixed : Spelling mistake for the method setcriminal
       Fixed : Guilds were not saving data.
       Changed: NPCs with the template set to 'Good' for alignment will now change highlight color
                if set to murderer or criminal.
06-29 Austin
       Added : Operator support for += -= *= /= and %=
               i += 5; would be the same as i := i+5;

06-23 Austin
        Added : PolSys::ListTextCommands() - Returns a dict of a dict of structs.
                Dict 1 - Package names Dict 2 - Command levels Struct - .dir .script
                  foreach package in ( commands )
                     foreach level in ( package )
                        Print(" CmdLvl:"+_level_iter);
                        foreach command in ( level )
                           Print("     "+command);

06-22 Austin
        Added : Attributes::GetAttributeName(alias) - Returns the real attribute name from an alias.
        Added : Vitals::GetVitalName(alias) - Returns the real vital name from an alias.
        Added : PolSys::GetCmdLvlName(alias/number) - Returns the real command level name from an alias.

06-21 MuadDib
        Added : Cliloc::PrintTextAboveCL() and PrintTextAbovePrivate().
        Added : Support for Talisman layer (layer 9) in core definitions.
        Hint : Quivers (added in ML) share layer 20 with cloaks. You can however
               on Origin equip cloaks AND quivers. Ewwww.

06-20 MuadDib
        Added : Cliloc.em added to the list of new EM Modules. Included in this is already
                the command SendSysMessageCL(). The new EM will have the commands
                commented for instruction of use. If you know about clilocs, you know
                they can be a pain and have additional arguments. Sending normal clilocs
                and ones with arguments are both supported in the single commands.
                Argument flag defaults to 0 in the EM for this.

06-20 Austin
        Changed : Moved guild functions to guilds.em

06-18 Austin
        Changed : Moved storage area functions to storage.em
        Changed : Moved vital functions, ApplyDamage, ApplyRawDamage and HealDamage
                  from uo.em to vitals.em

06-17 Austin
        Changed : Updated handling of object properties and methods. Should provide a slight
                  speed increase.
        Changed : Moved attribute functions from uo.em to a new attributes.em module.

06-16 MuadDib
        Changed : AddMenuItem() now has a color option. Default is 0.
        Hint : menus.cfg uses the color of the itemdesc entry of the objtype given,
               to get color. So if an item has no itemdesc entry, it defaults to 0.

06-16 Austin
        Removed: Skills.cfg is no longer used.
                 Instead skill IDs will be read from uoskills.cfg and redirected to
                 attributes.cfg. The attributes.cfg file now has support for the old entries.
                 skills.cfg entries supported now in attributes.cfg are:
                 DELAY, UNHIDES and SCRIPT

06-15 Austin
        Added : mobile.Privileges() - Returns a dictionary.
                The key is the privilege name. The value 0/1 is if it is enabled or not.
        Removed: Built-in text commands (you'll need to script them):
                 .eobjcount, .i_help, .log, .los, .objcount, .priv, .privs, .set, .turn,
                 .t_online, .unload, .unloadall, .wheretest

06-15 MuadDib
        Added : Function OpenURL(character, url_string) to OS.EM. Used to send Open Web
                Browser packet to client.

06-14 MuadDib
        Added : AOS style status bar is now generated correctly for AOS+ clients that ALSO
                have the UOExpansion set to AOS or higher. Only thing populated by core is
                the statcap entry. Rest can be done via packethooks.
        Added : UOClient.cfg entry "StatCap" in General. This is used with AOS era
                status bars to send the statcap in the packet. Default is 225. Can use
                packethooks to override this outgoing to client.

06-14 Austin
        Changed : All log files (pol.log, debug.log, start.log, etc.) will now be placed in pol/log/

06-13 Austin
        Changed : Config files in packages can now be in pkgname/config/cfgfile.cfg.
                  If it is not present there, it will look in the package root (pkgname/cfgfile.cfg)
                  pkg.cfg must still be at the root of the package.

06-13 MuadDib
        Changed : Handling of target request returns in core. Returns errors more efficiently
                  when client already has an active target cursor.

06-12 Austin
        Added : UO::CloseTradeWindow(mobile) - Will close the trade window for the mobile and the
                person it is trading with.

06-11 Austin
        Added : mobile.trading_with - Returns a mobile reference if a secure trade is taking place.
        Added : Util::StrFormatTime(format_string, time_stamp).
                Takes in the StrFTime() specifiers for the format string.
                If time_stamp is 0, it will use POLCore().systime.

06-11 MuadDib
        Changed : When a client already has a target cursor request, instead of core
                  just returning that to the new requesting call, now returns an error
                  code back to the calling cursor script.

06-10 MuadDib
        Cleanup : Removed last of stat advancement code. While this was depreciated
                  several versions ago, please remember stat advancement must be done
                  via the scripts.

06-09 MuadDib
        Cleanup : Cleaned out some old code.
        Removed : Removed depreciated UO.EM Function MoveCharacterToLocation(). Use
                  MoveObjectToLocation() now.
        Removed : Removed depreciated UO.EM Function MoveItemToLocation(). Use
                  MoveObjectToLocation() now.

POL Developer
Posts: 670
Joined: Sun Feb 05, 2006 4:45 am

Re: Bring out your bugs

Post by Turley » Wed Aug 20, 2008 1:40 am

Next 2 fixes are:

Code: Select all

08-20 Turley:
        Fixed : server-side check if item is stackable on drop

08-19 Turley:
        Fixed : Character.clientversion string

User avatar
POL Expert
Posts: 1151
Joined: Sat Feb 04, 2006 5:49 pm
Location: Chicago, IL USA

Re: Bring out your bugs

Post by CWO » Wed Aug 20, 2008 2:08 am

Is it possible to maybe look into UOConvert and see why sometimes maptile.dat generates a file of all 00's (Hex 00's)... This causes GetMapInfo().landtile to always return 0. When this file is generated correctly, it works again. This has happened to me before and now I hear its happened to someone else.

User avatar
Grandmaster Poster
Posts: 255
Joined: Fri Feb 10, 2006 12:15 am

Re: Bring out your bugs

Post by ncrsn » Thu Aug 28, 2008 11:47 am

These I didn't see fixed just yet:
I did not read thru the whole 097 bug reports forum, just took a few posts I *know* are valid and somewhat important ones.

On the other hand, the coming core has some neat stuff in it (Run_Script!!), which makes me think these don't have to be fixed in the 097.0 if it would require lots of time and effort.

User avatar
POL Expert
Posts: 657
Joined: Sat Feb 04, 2006 6:26 pm

Re: Bring out your bugs

Post by OldnGrey » Wed Sep 03, 2008 1:15 am

A bug that has been in the core since I started using it....

If you close pol forcibly by clicking the X in the console topright border, the "Pol" icon remains in the system tray until you move the mouse pointer over the top of the icon. Tested on Windows 2000 server only.

User avatar
Adept Poster
Posts: 81
Joined: Mon Dec 03, 2007 11:15 am

Re: Bring out your bugs

Post by Sadahar » Wed Sep 03, 2008 2:55 am

The icon remains if it crashes while starting up too.
Tested on Windows XP :P