POL 098 Win32, Linux and FreeBSD second beta

Here you can post threads requesting help on the official POL Ultima Online Emulator Core 098.
Post Reply
Shinigami
Former Developer
Posts: 308
Joined: Mon Jan 30, 2006 9:28 am

POL 098 Win32, Linux and FreeBSD second beta

Post by Shinigami »

Hello everybody,

Here you can find something to test:

Code: Select all

-- POL098 --
01-07 MuadDib
        Added:   Due to Ecompile always breaking for single file and right click compile useage when
                 no absolute path is given in the ecompile.cfg, added redundant code to verify drive
                 letter path in Windows environments. (aka, if you use "scripts" for include directory
                 instead of "c:\pol\scripts"). This should help in most cases. (Win32 Cores only right now)
        Note:    This works by checking if the core simply looked for "ecompile.cfg" or if it used the
                 -C <path to config> and handled accordingly. If you pass -C <path> it uses that to append
                 to the beginning of the dir structure in the config. Otherwise it appens the structure
                 based on the location of ecompile.exe being executed (since it's looking there for the cfg).
        Note:    In case people never realized. If you set the Evironment Variable called ECOMPILE_CFG_PATH
                 to point directly to the path where ecompile.cfg is kept, Ecompile.exe will use this to
                 locate your config file (Read core-changes people :D )
        Added:   ECompile.exe Flag "-E<path to ecompile cfg>". Correct, no space between them just like the
                 -Ppath Option. This is for Windows machines. It sets/changes the ECOMPILE_CFG_PATH Environment
                 Variable via the commandline so no need to add/edit it via the System Properties of the machine.
                 Remember, you must be logged in with Admin rights to change Environment Variables and this won't
                 show in the System Properties until Reboot. But it IS accessible WITHOUT rebooting.
                 
01-03 MuadDib
        Added:   Ability to send two commands to the POL Service via SCM (Service Control Manager).
                 Command 1200 is a Beep (just for Nando), and 1201 will initial POL Shutdown just like
                 via Script or clicking on Stop on the POL System Tray Icon.
                 More to come later.
        Fixed:   Drunken coder syndrome in the AOS Tooltip handling and oldschool Tooltip code too.
        Removed: Logging/Reporting of empty Attack Request Packets. Useless information that is unreliable.
        Removed: References to unused portions of POL.cfg (things no longer supported that was still being
                 checked for).
        
01-02 Turley
        Changed: Scriptname & PC info in .setprop log entry "wtf, setprop w/ an error"

12-26 MuadDib
        Added:   Ecompile.exe flag -xt defined in /? output.
        Added:   Ecompile.exe flag -Au added. This is same as -A but to only compile Updated Src.
        Added:   Ecompile.exe flag -s to Display Summary if -q is not set.
        Added:   Ecompile.exe flag -D to create .dep files (Dependency information).
        
12-20 Turley:
        Added:   new char member .clientver_detail returns struct of ints {major;minor;rev;patch}
                 new char method .compareversion(string) returns 1 if clientversion is >= then given version string
                 else 0 or error "Not enough parameters"/"Invalid parameter type"/"No client attached"
        Added:   new ssopt "ForceNewObjCachePackets" default false
        Added:   support for new ObjectCacheInfos introduced in 5.0.0
                 old behavior: Server sends 0xBF Sub 0x10 per object ->Client response also with 0xBF Sub 0x10 per item
                 new behavior: Server sends 0xDC per object -> Client response with 0xD6 (there can be more then one serial up to ~16)
                 intern check is 
                 if ((ssopt.ForceNewObjCachePackets) || (isUOKR) || (clientversion.major>=5))
                 since the client sends his clientversion not instantly the first few ObjCacheInfos are sent
                 the old way (thats why the new ssopt is added)
                 Note: since client 6.0.5.0 the clientversion is instantly known (new seed packet)
        Added:   support of new seed packet (>=6.0.5.0)
                 Note: right now no new packet is implementend (some packetsizes have changed)
                 
12-19 Turley:
        Changed: Extended PerformAction() it is now:
                 PerformAction(character,action,framecount:=5,repeatcount:=1,
                               backward:=ACTION_DIR_FORWARD,repeatflag:=ACTION_NOREPEAT,delay:=1);
12-18 MuadDib:
        Changed: Aux Client now sends "Connection closed" to a client that attempts to connect
		         from an invalid IP according to IPMATCH settings before closing the socket.

12-18 Turley:
        Added:   Setting for servspecopt.cfg 'PrivacyPaperdoll' Default is disabled.
                 If enabled, Paperdoll gives only char name for others (See Luth 09-28)

12-17 MuadDib:
        Fixed :  Item.layer gets reset to 0 when unequipped.
        Fixed :  When loading Realms, POL will shutdown if it cannot find any realms
		         and say so.
        Added :  Item.tile_layer returns the Layer setting in the Tiles.cfg/Tiledata.
                 This was added to always give the layer it uses, while leaving the
                 internal handling both of Core and Scripts that utilize the fact of
                 "if layer is set, it's equipped". This is ALWAYS set from the tile info
                 at server load. So changing your tiledata, re-creating tiles.cfg will
                 auto update your items.
        Note  :  Item.layer gets internally reset on server load if it is equipped, via
                 tiles.cfg entry as well.

12-16 MuadDib:
        Added :  AuxSvc Configs now accept an IPMATCH entry identical to /config/servers.cfg.
                 This is only an additional security feature, and not required to be in the .CFG :)
                 The illegal ip will be treated by immediately closing the connection.

12-14 Nando:
        Fixed:   Characters/Starting Location packet wasn't sending the correct characters number. This
                 was causing problems when enabling the 6th & 7th slot (or limiting to 1 slot). Characters
                 number will now be set to Max(CharacterSlot, 5). The number of CharacterSlots shown will
                 depend on the acct expansion. (If it´s more than AOS, it'll send > 6, else 5).
        Added:   Flags in the Characters/Starting Location packet and the Enable Features (0xB9) are
                 now being set according to the CharacterSlots option in pol.cfg. It only works now 
                 with 1, 5, 6 and 7 slots, as this is a client limitation. You can hook the 0xB9 packet
                 to change this in the future.

12-10 Nando:
        Removed: POL's Windows-systray-icon beep when right-clicking is now gone.
        Changed: Region's internal tile zone is now 4x4 (was 32x32).

12-05 Luth:
        Fixed:   A bug in Run_Script caused when a Parent script ended before the child script.

10-29 Luth:
        Changed: PrintTextAbove*() now takes one more optional parameter, journal_print, with acceptible values:
                 JOURNAL_[UC_]PRINT_NAME:    In the journal, it prints the item's description / npc's name, colon, the message (POL standard)
                 JOURNAL_[UC_]PRINT_YOU_SEE: In the journal, it prints "You see: " followed by the message (UO standard)
                 This does not affect the text that is printed above the item, ONLY what is shown in the Journal.
        Fixed:   OnRemoveScript and OnInsertScript now called with all appropriate parameters
                   program onremovescript(character, container, item, item_amount, movetype)
                   program oninsertscript(character, container, movetype, inserttype, adding_item, existing_stack, amount_to_add)

10-28 Luth:
        Changed: Set_Script_Option() now returns the previous value that was set for that option
        
09-28 Luth:
        Added:   npc::Face( direction );
        Added:   mobile.SetFacing( direction, flags := FACE_NORMAL );
        Note:    mobile.facing := [0-7];  is the same as calling:  mobile.SetFacing( [0-7], FACE_NORMAL );
        Added:   MOVEOBJECT_IGNOREMOVALBE flag to move an object regardless of its .movable property
        Fixed:   Paperdolls now give all information for self, and less information for others
                 
-- POL097.2 --
01-05 Turley
       Fixed  : URL percent decoding (like %2F= '/')

12-31 Nando:
       Fixed  : Internal webserver's threads weren't being reported in case there were threads
                hanging when shutting down. This might not solve the "zombie connections" bug,
                but will at least change it's name to "internal webserver bug", I'm hoping.

12-30 MuadDib:
       Added  : POL.Cfg::ReportMissingConfigs 0/1 (Default 1). Handles if Missing Config File
                reports are printed to the Debug.Log file. These are reports for example, when
                you use :*:npcdesc to open all npcdesc files in a script but not all packages
                of course will have this file.
       Changed: Weapons now have a Default Speed of 35 if no entry for Speed is in the itemdesc.cfg
                file if Delay is used. If no Delay, then will still throw an error and fail to load.
       Fixed  : Typo on spellbook reports.
                
12-17 MuadDib:
        Fixed : Possible memory leak with AOS Tooltips.
        
12-16 MuadDib:
        Fixed : Memory leak in Packet Class using .Setxxxx Methods on Variable Length Packets.
        Added : Error Struct "Offset value out of range on a fixed length packet" when trying
                to use packet.Setxxxx() whose value is out of range in a fixed length packet.
Win download : http://downloads.polserver.com/browser. ... indows/098
Linux download : http://downloads.polserver.com/browser. ... /Linux/098
FreeBSD download : http://downloads.polserver.com/browser. ... reeBSD/098

feel free to use it...
User avatar
CWO
POL Expert
Posts: 1160
Joined: Sat Feb 04, 2006 5:49 pm

Re: POL 098 Win32, Linux and FreeBSD second beta

Post by CWO »

12-10 Nando
...
Changed: Region's internal tile zone is now 4x4 (was 32x32).
Wasn't this 64x64 or do you mean something different?

(documentation)
IMPORTANT: Regions are limited to POL's internal 64x64 tile zones and will internally expand to fill all of these zones the Range is contained in. This sucks, we know.

This would be AWESOME if this is what you're talking about...
Nando
POL Developer
Posts: 284
Joined: Wed Sep 17, 2008 6:53 pm

Re: POL 098 Win32, Linux and FreeBSD second beta

Post by Nando »

It's four x four (yep, four.) It's the one used for the regions.cfg, justice.cfg, etc... :)

It was 32x32 (the docs were outdated on this one), but talking to Shini and Turley I learned that changing to 4x4 did almost nothing to this century computers (regarding memory and processing), with the benefits of having fine-grained regions. So, I decided to place it as default. Tell me what you think. ;)
Pierce
Forum Regular
Posts: 420
Joined: Thu Feb 02, 2006 8:33 am

Re: POL 098 Win32, Linux and FreeBSD second beta

Post by Pierce »

Thx to all the devs for the new core and their changes/fixes :D
Some work to do for me over the weekend now ;)
Nando wrote: Tell me what you think.
I hated the 32x32 restriction for all the years. It costs me a lot of work
to calculate so that nearby dungeons, islands ... don't overlap.
And it's not possible in each case.
With 4x4 that's not important anymore, cause a number of e.g. x=34 will
not include x until 63 anymore (only 35) :D
I really appreciate that, even if i didn't test it yet ;)
Tomi
POL Developer
Posts: 478
Joined: Tue Feb 21, 2006 5:08 pm

Re: POL 098 Win32, Linux and FreeBSD second beta

Post by Tomi »

MuadDib could you explain more what references of POL.cfg you did remove ?

Removed: References to unused portions of POL.cfg (things no longer supported that was still being
checked for).
MuadDib
Former Developer
Posts: 1091
Joined: Sun Feb 12, 2006 9:50 pm

Re: POL 098 Win32, Linux and FreeBSD second beta

Post by MuadDib »

Stuff from pre-.090 cores that haven't been used since like, what, 2001? hehe. Can't remember which 2 off hand, but they been out of core for a very long time :o
Nando
POL Developer
Posts: 284
Joined: Wed Sep 17, 2008 6:53 pm

Re: POL 098 Win32, Linux and FreeBSD second beta

Post by Nando »

UseNewStaticsFile, UsePolMapFile. Those were the ones removed. ;)
(that's why I love CVS :P)

By the way, those weren't being used for anything, before someone complains.
Luth
Former Developer
Posts: 200
Joined: Mon Jan 30, 2006 8:10 am

Re: POL 098 Win32, Linux and FreeBSD second beta

Post by Luth »

NOOOO! UsePolMapFile was critical to my takeover of the world! How am I supposed to make my zombie slaves now, huh? Tell me that!

:sick: :sick: :sick: :whip: (zombie slaves)


I would've gotten away with it too, if it weren't for you meddling kids....
Nando
POL Developer
Posts: 284
Joined: Wed Sep 17, 2008 6:53 pm

Re: POL 098 Win32, Linux and FreeBSD second beta

Post by Nando »

LOL. That's why you should always commit your changes, Luth. :P :D
Luth
Former Developer
Posts: 200
Joined: Mon Jan 30, 2006 8:10 am

Re: POL 098 Win32, Linux and FreeBSD second beta

Post by Luth »

I cant. Mine's branched.

:grouphug: :whip:

(you're the group. I'm whipping you.)
Pierce
Forum Regular
Posts: 420
Joined: Thu Feb 02, 2006 8:33 am

Re: POL 098 Win32, Linux and FreeBSD second beta

Post by Pierce »

core-changes wrote: 12-20 Turley:
Added: support of new seed packet (>=6.0.5.0)
Note: right now no new packet is implementend (some packetsizes have changed)
I just tried to hook some of these packets (e.g. 0x8 Drop Item).
If i set the size to 14 bytes only older clients will work, if i set it to 15 bytes the
newer clients will work, but older clients loose the cmd byte of the next packet.
If i set it to variable the core tells me that message 0x8 is too long (something about 27 kB) ;)
In most cases the client freezes and i had to relogin. Sometimes even the server crashed.

Could it be, that this has to be done on the core-side? At least for all the different sized packets?
Nando
POL Developer
Posts: 284
Joined: Wed Sep 17, 2008 6:53 pm

Re: POL 098 Win32, Linux and FreeBSD second beta

Post by Nando »

Pierce wrote:
core-changes wrote: I just tried to hook some of these packets (e.g. 0x8 Drop Item).
If i set the size to 14 bytes only older clients will work, if i set it to 15 bytes the
newer clients will work, but older clients loose the cmd byte of the next packet.
If i set it to variable the core tells me that message 0x8 is too long (something about 27 kB) ;)
In most cases the client freezes and i had to relogin. Sometimes even the server crashed.

Could it be, that this has to be done on the core-side? At least for all the different sized packets?
We're still trying to figure out the best way to handle the new packets along with the old ones. When you set it to 15 bytes, POL will try to read 15 bytes before
interpreting. So, when an older client sends 14 bytes, it'll 'eat' the cmd byte from the next packet to complete 15 bytes. If you set to variable, POL will pick the
next 2 bytes after CMD to define the length. As the packet has no length bytes, it'll report "message too long" or just crash. :)

Client freezes are caused by POL waiting for the rest of the packet.
MuadDib
Former Developer
Posts: 1091
Joined: Sun Feb 12, 2006 9:50 pm

Re: POL 098 Win32, Linux and FreeBSD second beta

Post by MuadDib »

We must consider too, in keeping cross-client compatibility (I mean on a single shard too, not just overall server capability).

I am thinking instance checked during logon, set on the Account Ref (but never saved to file) just like how we check internally for AOS etc in tooltips and so on. This way, logging in with different clients on the same account is still supported and it handles the newer packets on the fly.

The next thought is how to trigger the different packets based on this. As, in my opinion, throwing in the check in existing packet functions and using if/else is just messy and over sized code (although others may have a different opinion). Possibly using a check for where the function is called, to decide which function is called. That way we can control any changes easier, in a separate function, that OSI decides to throw in at later dates also. Yes, there is still the If/Else check, but calling separate functions (using naming conventions in the code to help keeping them separate and clean), and so forth. I know, it's overdoing it, but, 098 is really a CLEAN UP THE POL SOURCE FILES edition for us core devs too, hehehe. So we want to keep new stuff not breaking ANY scripts, plus keeping in line with our internal cleanup that we are doing.
yoyu007
New User
Posts: 3
Joined: Sun Aug 17, 2008 12:44 am

Re: POL 098 Win32, Linux and FreeBSD second beta

Post by yoyu007 »

Thanks the pol dev team


I tried this server,it support the newest UOKR 2.57.0.16 very well


thank you.


and I am newer about polserver,I login the server,only little NPC,no monster and merchants,so how can i spawn the world.

I use the pol-core-098-2009-01-13 and Distro097 SVN

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

Re: POL 098 Win32, Linux and FreeBSD second beta

Post by Sadahar »

Ummm you have two options...
a) Spawn it manually (use spawnpoints or the spawn region)
b) maybe checking the data of server scripts that you can find in this forum
Post Reply