2009-10-12 POL 099 Win32 and Linux beta

Here you can post threads specific to the current release of the core (099)

Moderator: POL Developer

Post Reply
Shinigami
Former Developer
Posts: 308
Joined: Mon Jan 30, 2006 9:28 am

2009-10-12 POL 099 Win32 and Linux beta

Post by Shinigami »

Hello everyone,

here you can find smaller Updates/Changes for Pol099:

Code: Select all

10-12-2009 Turley:
   Changed: Method/Syshook definitions now supports :pkg: format - Tomi
     Added: ServSpecOpt SpeechRange default 12
            ServSpecOpt WhisperRange default 2
            ServSpecOpt YellRange default 25
            - Tomi

10-10-2009 Turley:
     Added: new Spellbook methods
            book.removespell(id) removes given spellid returns 1/0
            book.addspell(id) adds given spellid returns 1/0

10-09-2009 Turley:
     Added: new Spellbook methods
            book.spells() returns Array of SpellIDs
            book.hasspell(id) checks if SpellID is inside the spellbook returns 1/0

10-07-2009 Turley:
     Fixed: DestroyItem call inside CanInsert scripts

10-03-2009 MuadDib:
     Added: SysHook::CanDecay(item). Return 0, core decay will ignore item and continue on the cycler. If it
            returns 1, core decay will handle the item as normal. - Patch submitted by Tomi
     Fixed: Useage of plural forms for more than 1 word in the itemdesc desc entry. - Patch by Tomi
            
09-22-2009 Turley:
     Added: Combatcfg:SendDamagePacket 1/0 default 0 if set sends packet 0xB (0xBF sub 0x22 for clients<4.0.7a)
            to attacker(ScriptController) and defender on ApplyDamage and ApplyRawDamage
     Added: new param to ApplyDamage & ApplyDamage they are now:
            ApplyDamage( mobile, damage, userepsys := DAMAGE_USE_REPSYS );
            ApplyRawDamage( character, hits, userepsys := DAMAGE_USE_REPSYS );
            const DAMAGE_USE_REPSYS := 1;
            const DAMAGE_NO_REPSYS := 0;
            If userepsys is set to DAMAGE_NO_REPSYS repsys system isnt called (on_attack & on_damage)
 
09-22-2009 MuadDib:
   Changed: NPC/Char ar/ar_mod internal handling rewrote.
     Fixed: NPC Elemental Resist/Damage storage issues.
     Fixed: Lightlevel resetting in client during Login.
     
09-20-2009 MuadDib:
   Changed: Spell casting no longer unhides. Be sure to update your scripts to unhide.
   Changed: SpeakPowerWords() will now check if mob is hidden. If so, it uses Private Say Above.
            
09-18-2009 MuadDib:
     Added: Multi Walk On Script support. Works for player and npc. Just add Walkon itemdesc entry to the house.
      Note: This is in early stages. While it is working, not all cases may register and deregister where a mob
            gets put onto or removed from a house. If you find cases that do, report to bugtracker.
   Removed: Storing scrolls inside spellbooks. Destroyed after insert is complete.
   Changed: Pre-AOS Clients still get the same packet they always did when opening a spellbook, built entirely
            off the bitflag system for newer spellbooks. So no more keeping scrolls inside of books. :D
      Note: As spellbooks are loaded for the first time with newer cores and as added to books, scrolls are
            marked SaveOnExit 0. Newly inserted scrolls from then on, are destroyed during insertion after spell
            contents are updated on the book.
            
09-16-2009 Turley:
   Removed: char.isUOKR
   Added:   char.ClientType r/o bitfield
   Note:    current Flags are:
            CLIENTTYPE_4000  = 0x1,  // 4.0.0a   (new spellbookcontent packet 0xbf:0x1b)
            CLIENTTYPE_4070  = 0x2,  // 4.0.7a   (new damage packet 0x0b instead of 0xbf:0x22)
            CLIENTTYPE_5000  = 0x4,  // 5.0.0a   (compressed gumps)
            CLIENTTYPE_5020  = 0x8,  // 5.0.2a   (Buff/Debuff 0xdf)
            CLIENTTYPE_6017  = 0x10, // 6.0.1.7  (Grid locs)
            CLIENTTYPE_60142 = 0x20, // 6.0.14.2 (feature enable 0xb9 size change)
            CLIENTTYPE_UOKR  = 0x40,
            CLIENTTYPE_7000  = 0x80, // 7.0.0.0  (Gargoyle race)
            CLIENTTYPE_UOSA  = 0x100
   Note:    Pol will be now compiled with flag /LARGEADDRESSAWARE (win only flag) pol should now be able to consume more memory

09-14-2009 MuadDib:
   Removed: All import abilities built in to core for UOX data files. O_O
      Note: The file "import.txt" will be loaded each time POL loads, when found in the world data directory. This file's
            format is the same as, for example, the ITEMS.TXT file POL saves. You can use this for example, to store all your
            doors, decorations, etc, to ensure they are reloaded after a wipe, or loaded every time POL starts. These items
            are added to the real world, and saved to items.txt. However, if on load the same objtype is found at the same
            x y z as the item in IMPORT.TXT, it destroys that item, and loads the import one.
            
09-10-2009 Turley:
    Added:  CompressedGump support packet 0xdd
    Added:  flag param to SendDialogGump() SENDDIALOGMENU_FORCE_OLD/0 default 0
    Note:   SendDialogGump sends compressed gump if (client.isUOKR || (!SENDDIALOGMENU_FORCE_OLD && clientversion >=5.0.0a)) else old uncompressed
    Note:   Patch submitted by Grin

09-09-2009 Turley:
    Added:  ServSpecOpt CarryingCapacityMod (double default 1.0) as * modifier for mobile max_weight
    Note:   Formula is (40 + strength * 7 / 2) * ssopt.CarryingCapacityMod
    Note:   Since ML max weight is send for statusgump
    Note:   Patch submitted by Tomi
    
09-05-2009 MuadDib:
    Added:  POL Linux builds will now create a PID file when loading. Patch submitted by Crazyman

09-05-2009 Turley: 
    Added:  struct .? and .- as shortcut for .exists() and .erase()

09-03-2009 MuadDib:
   Changed: CoreHitSounds, ScriptedAttackChecks, ResetSwingOnTurn, SendSwingPacket all moved from SSOPT to Combat CFG.
   
08-19-2009 Turley:
    Added:  r/o member character.uo_expansion_client client sends this flag at packet 0x5D charselect and 0x00 createchar
    Note:   values are:
            FLAG_T2A         = 0x00,
            FLAG_RENAISSANCE = 0x01,
            FLAG_THIRD_DAWN  = 0x02,
            FLAG_LBR         = 0x04,
            FLAG_AOS         = 0x08,
            FLAG_SE          = 0x10,
            FLAG_SA          = 0x20,
            FLAG_UO3D        = 0x40,  // ?
            FLAG_RESERVED    = 0x80,
            FLAG_3DCLIENT    = 0x100  // 3d Client
            
08-14-2009 Turley:
    Changed: Stopped spam of unknown packet for 0xBF.5 & 0xBF.C

08-09-2009 MuadDib:
      Fixed: Better handling of sending poison updated to UO:KR Clients.
    Changed: UpdateCharacterWeight() now sends correct packets instead of calling on RefreshAR() to
             notify client of new weight. Reduces overhead.
             
08-07-2009 MuadDib:
      Fixed: New system in core for handling layers on items and corpses. On mobile death, only items equipped
             will be given the Layer prop in the corpse.
    Changed: New system for corpses also is affected by insert/remove of items to the corpse by script and
             drop into by player. Dropping new items into a corpse will cause it to set the layer accordingly
             long as nothing else is already using that layer on the corpse.
    Changed: Very small optimization to equip item code for handling the setting of layer.
    
08-06-2009 MuadDib:
    Changed: PasswordOnlyHash removed from core. Now only ClearText and Hashed Passwords will be used.
             Default is now PasswordHash instead of ClearText.
       Note: Using ClearText is not recommended as it leaves all your account's passwords wide open if
             the accounts.txt file is comprimised. You have been warned.
    Removed: Account.PasswordHash - This was for the PasswordOnlyHash.
      Added: Item.getgottenby Member. Returns CharRef of Player holding item, Error if not being held.
      
08-06-2009 Turley:
  Added:     new Methods
             Character.setAggressorTo(chr)
             Character.setLawfullydamagedTo(chr)
             sets aggressor/lawfullydamaged for repsys.cfg:AggressorFlagTimeout seconds for given chr
             Character.clearAggressorTo(chr)
             Character.clearLawfullydamagedTo(chr)
             clears aggressor/lawfullydamaged entry for given chr
             
08-04-2009 MuadDib:
  Changed:   RecalcVitals() and other internal parts of core that share recalc_vital_stuff() will now check to see if
             each vital has changed, before resending it to client. Reduces overhead.
             
08-03-2009 MuadDib:
  Removed:   uopacket.cfg::is6017 has been removed.
    Added:   uopacket.cfg::Version (1 or 2) Default 1
             uopacket.cfg::Client (client version string) Default 1.25.25.0
             Read packethooks.txt for details.
             
07-31-2009 Turley:
    Added:   ServSpecOpts::ResetSwingOnTurn=true/false default false
             Should SwingTimer be reset with projectile weapon on facing change
    Added:   ServSpecOpts::SendSwingPacket=true/false default true
             Should packet 0x2F be send on swing.
             Client sends automatically move packet to face the opponent

07-25-2009 MuadDib:
    Fixed:   Bug blocking equipping when intrinsic weapon was marked as two handed.
    
07-17-2009 Turley:
    Added:   "ShadowRealms"
             polsys::AddRealm(realm_name,base_realm);
             returns 1 or error ("BaseRealm not found.","BaseRealm is a ShadowRealm.","Realmname already defined.")
             Creates a new Realm based on an other realm, uses same map and regions
             polsys::DeleteRealm(realm);
             returns 1 or error ("Realm not found.","Realm is not a ShadowRealm.","Mobiles in Realm.","Items in Realm.")
             Deletes a ShadowRealm, only if the realm is "clean"
    Note:    ShadowRealms get saved/loaded in pol.txt
    Note:    if ServerSpecOpt is set AddRealm/startup creates a Decaythread
    Changed: On realm change client gets RemovePacket for all objects inrange

07-16-2009 MuadDib:
    Added:   Removal of Grid Index to items when Container::remove is called within the core.
    Added:   ItemDesc::Container::MaxSlots = 1-255, default ServSpecOpts::MaxSlots
    Added:   ServSpecOpts::UseContainerSlots=true/false, default false.
    Added:   UseContainerSlots check to can add bulk code to ensure not going over max slot capacity of 255 and a container's max slot capacity.
  Changed:   DropItem packets now redone for Slot support. Better handling internally, and core will move an item to next available slot
             if one sent is not available. Before code is used, it checks if UseContainerSlots is true.
    Note*:   UseContainerSlots is not yet fully implemented. Will cause core to ignore all grid setting for core moved items.
             The purpose of this, is since Legacy 2D clients ignore this setting anyway, you can use this to ignore Max Slots
             and allow core to move items into a container regardless of MaxSlots settings (which is kinda like a secondary Max Items).
             With this enabled, it will enfore MaxSlots when core and player moves items to containers. If Max Items is not reached,
             it will check MaxSlots. If MaxSlots is not reached, allows moving the item into container.
             This is being added to allow to turn grid support on and off based on the client versions (and types) that you will be
             supporting on your shard.
    
07-04-2009 Turley:
    Added:   new Object Class BinaryFile
             File::OpenBinaryFile( filename, mode := OPENMODE_IN, endian := LITTLE_ENDIAN );
             like the other file functions it checks file access rights (fileaccess.cfg) (Read and/or Write)
             mode constants:
             const OPENMODE_IN    := 0x01; // (input) Allow input operations on the stream
             const OPENMODE_OUT   := 0x02; // (output) Allow output operations on the stream
             const OPENMODE_ATE   := 0x04; // (at end) Set the stream's position indicator to the end of the stream on opening
             const OPENMODE_APP   := 0x08; // (append) Set the stream's position indicator to the end of the stream before each output operation
             const OPENMODE_TRUNC := 0x10; // (truncate) Any current content is discarded, assuming a length of zero on opening
             endian constants:
             const LITTLE_ENDIAN := 0x00;
             const BIG_ENDIAN    := 0x01;
             returns BinaryFile Object or error
    Note:    implemented BinaryFile comparisons are
             true/false (!) checks if filestream is open
             == checks if filename is the same
    Added:   BinaryFile methods:
             .close() closes the underlying stream returns 1
             .size() returns the filesize or error
             .seek(int offset, int seekdir) sets position returns 1/0 or error
             seekdir constants:
             const SEEKDIR_BEG := 0x00; // beginning of sequence
             const SEEKDIR_CUR := 0x01; // current position within sequence
             const SEEKDIR_END := 0x02; // end of sequence
             .tell() gets current position returns int
             .peek() Reads and returns the next byte without extracting it (-1 if eof is reached)
             .flush() writes all unwritten chars from buffer to file
             .getInt32() gets unsigned 32-bit (4 byte) 1 or error
             .getInt16() gets unsigned 16-bit (2 byte) 1 or error
             .getInt8() gets unsigned 8-bit (1 byte) 1 or error
             .getSInt32() gets signed 32-bit (4 byte) 1 or error
             .getSInt16() gets signed 16-bit (2 byte) 1 or error
             .getSInt8() gets signed 8-bit (1 byte) 1 or error
             .getString(length) gets a string (1-byte characters) string or error
             .setInt32() sets unsigned 32-bit (4 byte) 1 or error
             .setInt16() sets unsigned 16-bit (2 byte) 1 or error
             .setInt8() sets unsigned 8-bit (1 byte) 1 or error
             .setSInt32() sets signed 32-bit (4 byte) 1 or error
             .setSInt16() sets signed 16-bit (2 byte) 1 or error
             .setSInt8() sets signed 8-bit (1 byte) 1 or error
             .setString(string string, int nullterminate) sets a string 
             set nullterminate to 1 to append a 0 terminator 1 or error
             
07-01-2009 Turley:
    Changed: UoConvert now also saves the color of static tiles
    Added:   ListStatics* return struct member "hue"
    Note:    Rebuild of all realms is required

06-29-2009 MuadDib:
    Added:   Additional check in internal grid checks on containers, to speed up handling for full containers.
    Added:   ServSpecOpt.cfg::MaxContainerSlots=unsigned integer.
                 This will allow setting the internal overall allowed item count for containers. This is introduced for future KR support.
                 KR client is only 125, but we are making this here so custom clients later can support more slots.
                 If you have containers with max item count over 125 and use ONLY 2D, and not KR, set this to your highest amount used!
                 
06-27-2009 Turley:
    Fixed:   Item creation with ItemDescriptor can now override .Desc

06-25-2009 Turley:
    Added:   new r/o Members (Array{Struct{"serial","ref","seconds"}})
             Mobile.aggressorto
             Mobile.lawfullydamaged
             as interface for core repsyssystem

06-20-2009 Turley:
    Added:   new r/w Members (Double) default 1.0
             Mobile.movecost_walk_mod 
             Mobile.movecost_run_mod
             Mobile.movecost_walk_mounted_mod
             Mobile.movecost_run_mounted_mod
             used as multiplier see movecost.cfg doc for exact calculation

06-17-2009 Turley:
    Added:   Method Array.randomentry() shortcut for var entry:=array[RandomInt(array.size())+1];
    Added:   uo::GetRegionLightLevelAtLocation(x,y,realm) returns the current region lightlevel

05-02-2009 Turley:
    Added:   new TargetCoordinates return member "multi" with multiref if coords are inside a multi

04-17-2009 Turley:
    Changed: SpeechMul SysHook has now an additional parameter with the complete message as string
    Added:   party hooks:
             OnLeaveParty(who,fromwho)
             OnAddToParty(who)
             OnPartyCreate(party)
             OnDecline(who)
             OnLootPermChange(who)
    Note:    OnLeaveParty fromwho==who if who removes himself
    Added:   party General options:
             RemoveMemberOnLogoff 1/0 (default 0)
             RejoinPartyOnLogon 1/0 (default 0)
    Note:    RejoinPartyOnLogon is only used if RemoveMemberOnLogoff is true, if partyleader logoffs 
             the next member becomes the leader
and Changes/Fixes in Pol098 which are inside too:

Code: Select all

-- POL098.2 --
08-21-2009 Turley:
    Fixed:   Regions where limited to 128 due to intern (char)id, changed to ushort

07-31-2009 MuadDib:
    Fixed:   Cleanup crash in shutdown involving characters and combat. Now all clients and characters are disconnected by the
             core before any cleanup is intiated. This will begin the cleanup for client and character alike. 

07-20-2009 MuadDib:
    Fixed:   Item::Facing updates were no longer updating surrounding clients.
    Fixed:   Bug with stackables where graphic and crops may be different, still allowing to combine stack (of same objtype)

07-15-2009 Turley:
    Added:   Support for client 6.0.14.2 and latest UOKR (this change breaks every older UOKR)
             packet 0xB9 has now a length of 5

06-28-2009 MuadDib:
    Fixed:   Graphic/Layer bug when changing graphic and item is equipped. Now core will block this, returning a Error Struct to the script when attempting
             to change the graphic of an item with layer set.

06-27-2009 MuadDib:
    Fixed:   Layer bug with updating/sending equipped items

-- POL098.1 --
06-20-2009 MuadDib:
    Fixed:   Reset now occurs for tile_layer internal property when graphic is changed on item class.
    Fixed:   SetOpponent() for npcs will now once again correctly set the warmode.
    
05-20-2009 Turley:
    Fixed:   TypeOf() return of Error

05-14-2009 Turley:
    Fixed:   some Memoryleaks

04-29-2009 Turley:
    Fixed:   Exception on mobile.kill() if death/chrdeath.ecl does not exist

04-28-2009 MuadDib:
    Fixed:   Removal of items from containers not sending destroy object to nearby clients when object removed.
             This affects containers when was owned by a character.

04-21-2009 MuadDib:
    Fixed:   Crash at shutdown during character cleanup involving players that was in combat.

04-20-2009 Turley:
    Added:   Comparison check == for Boat,Multi,GuildRef

04-19-2009 MuadDib:
    Fixed:   Endian format for SendPartyMsg().
Win download : http://downloads.polserver.com/Core/Windows/099/
Linux download : http://downloads.polserver.com/Core/Linux/099/

FreeBSD build was not possible yesterday. In Linux Build we've some issues due in ecompile/runecl due to new STLport - but it worked fine with dynamic build - please try this.

Feel free to test and report...
User avatar
*Edwards
Forum Regular
Posts: 303
Joined: Fri Dec 28, 2007 11:19 pm

Re: 2009-10-12 POL 099 Win32 and Linux beta

Post by *Edwards »

It is a good work :) really appreciated from my side.
phao
Grandmaster Poster
Posts: 129
Joined: Fri Aug 31, 2007 2:25 pm

Re: 2009-10-12 POL 099 Win32 and Linux beta

Post by phao »

What is this shadowrealm feature for/?
User avatar
CWO
POL Expert
Posts: 1159
Joined: Sat Feb 04, 2006 5:49 pm

Re: 2009-10-12 POL 099 Win32 and Linux beta

Post by CWO »

If it is what I believe it is, it's a feature where you can create another instance of the same realm where everything within that realm is separate from the other. Think of this as the multi-realm support but with copies of the same realm that you can create and manage completely in the scripts.
Post Reply