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
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().
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...