Starting POL 099 - the long way made short

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

Moderator: POL Developer

Post Reply
User avatar
timginter
Neophyte Poster
Posts: 37
Joined: Tue Apr 22, 2008 6:25 am

Starting POL 099 - the long way made short

Post by timginter »

I'm running Win7 x64, the core Yukiko posted on the forum - rev 614 and the latest svn Distro. *mul files from UO Classic Stygian Abyss install with client v. 7.0.15

I get this error while starting POL:

Code: Select all

Assertion Failed: pAttrStrength, mobile\attribute.cpp, line 105
Forcing stack backtrace.
I double checked - all attributes are defined in attributes.cfg:

Code: Select all

#
# ** BASIC STATS **
#
Attribute Strength
{
	AttributeType	Stat
}

Attribute Intelligence
{
	AttributeType	Stat
}

Attribute Dexterity
{
	AttributeType	Stat
}
I have even those damn assertions disabled in pol.cfg:

Code: Select all

#
# EnableAssertions: For Linux build only, enable core assertions
#
EnableAssertions=0

#
# AssertionFailureAction
# abort/continue/shutdown/shutdown-nosave
#  abort: (like old behavior) aborts immediately, without saving data.
#  continue: allows execution to continue.
#  shutdown: attempts graceful shutdown
#  shutdown-nosave: attempts graceful shutdown, without saving data.
#
AssertionFailureAction=continue

And still, every friggin' time it stops. I @#$%& give up :/
Last edited by timginter on Wed Jun 05, 2013 10:11 am, edited 2 times in total.
User avatar
timginter
Neophyte Poster
Posts: 37
Joined: Tue Apr 22, 2008 6:25 am

Re: Assertion Failed: pAttrStrength, mobile\attribute.cpp

Post by timginter »

I tried to delete attributes.cfg and check what happens - the error is exactly the same, no matter whether I have attributes.cfg or not.
Yukiko
Distro Developer
Posts: 2825
Joined: Thu Feb 02, 2006 1:41 pm
Location: San Antonio, Texas
Contact:

Re: Assertion Failed: pAttrStrength, mobile\attribute.cpp

Post by Yukiko »

I checked your attributes.cfg against mine and it is the same.

I will compile the latest SVN Core and post it. Maybe that will resolve your issue.
Yukiko
Distro Developer
Posts: 2825
Joined: Thu Feb 02, 2006 1:41 pm
Location: San Antonio, Texas
Contact:

Re: Assertion Failed: pAttrStrength, mobile\attribute.cpp

Post by Yukiko »

The Windows binary of POL Server revison 626 release is posted in this thread. It is at the bottom, well currently it is anyway. : )
User avatar
timginter
Neophyte Poster
Posts: 37
Joined: Tue Apr 22, 2008 6:25 am

Re: Assertion Failed: pAttrStrength, mobile\attribute.cpp

Post by timginter »

After a whole night (literally) of trying different options and checking files with other releases available for download I finally got that #$%& working...

Step by step:
1) installed UO from Ultima Online Classic Stygian Abyss 7.0.15 installer

2) downloaded the official distro via svn and applied the fix from http://forums.polserver.com/viewtopic.p ... sic#p17529

3) copied the patched distro to a separate folder, extracted Core rev. 519 from here (has proper boats.cfg, extobj.cfg and more options in pol.cfg) http://forums.polserver.com/viewtopic.p ... 519#p17676

3.5) extracted Core rev. 614 (this step didn't change much, I guess) from http://forums.polserver.com/viewtopic.php?f=20&t=4976

4) made sure UseNewHSAFormat 1 is in uoconvert.cfg

5) in pol.cfg changed MaxTileID to 0xFFFF and MaxObjtype to 0xFFFFFFFF

6) in config/itemdesc.cfg added:

Code: Select all

Container 0x1FF01
{
    Name        SecureTradeContainer
    graphic     0x1E5E
    Gump        0x003C
    MinX        0
    MaxX        66
    MinY        0
    MaxY        33
    Weight      0
    MaxItems    65535
    Maxweight   65535
}

Container 0x1FF02
{
    Name        WornItemsContainer
    graphic     0x1E5E
    Gump        0x003C
    MinX        0
    MaxX        66
    MinY        0
    MaxY        33
    Weight      0
    MaxItems    65535
    Maxweight   65535
}
7) in config/extobj.cfg changed Wrestling=0x1F020 to Wrestling=0xF020 (to match objtype from pkg/items/weapons/config/itemdesc.cfg)

8) created scripts/include/shardInfo.inc with:

Code: Select all

var SHARD_NAME := "name";

var SHARD_WEBSITE := "website";

var SHARD_VERSION := "0.9";

var SHARD_IP := "IP";

var SHARD_WWWPORT := "www_port";

var SHARD_MAINVOTE := "main_vote";
searched for SHARD_* string in files and in each that had SHARD_* variable added include "include/shardInfo.inc";

9) copied necessary MUL files via StartHere.bat, generated configs, checked if tiles.cfg starts with "0x1", generated extended Britannia and Ilshenar realms; changed paths in scripts/ecompile.cfg and compiled all scripts


I think those were all the steps to get ALL the necessary files and fixes so compiling and starting POL would not end in an error... Unbelievable... Step 5), MaxTileID, solved the "assertion failed" bug. Hope it helps, if I forgot something let me know - it was a long night and morning ;)


Thanks Yukiko for the newest Core build! I'll copy the files in a moment and check if everything is OK


EDIT:
copied new core, everything works fine
Last edited by timginter on Wed May 29, 2013 5:29 am, edited 3 times in total.
Yukiko
Distro Developer
Posts: 2825
Joined: Thu Feb 02, 2006 1:41 pm
Location: San Antonio, Texas
Contact:

Re: Assertion Failed: pAttrStrength, mobile\attribute.cpp

Post by Yukiko »

I'm glad you got it working. I understand what you've been going through.
User avatar
timginter
Neophyte Poster
Posts: 37
Joined: Tue Apr 22, 2008 6:25 am

Re: Assertion Failed: pAttrStrength, mobile\attribute.cpp

Post by timginter »

Hope this topic helps so someone doesn't have to reinvent the wheel for the billionth time ;)
Yukiko
Distro Developer
Posts: 2825
Joined: Thu Feb 02, 2006 1:41 pm
Location: San Antonio, Texas
Contact:

Re: Assertion Failed: pAttrStrength, mobile\attribute.cpp

Post by Yukiko »

It will.
User avatar
timginter
Neophyte Poster
Posts: 37
Joined: Tue Apr 22, 2008 6:25 am

Re: Assertion Failed: pAttrStrength, mobile\attribute.cpp

Post by timginter »

Another step. The "Assertion Failed" error was due to the placement of "attributes" package. I wanted to tidy up my new shard from the start and move packages to pol/scripts folder. Even though I changed the root package path in ecompile.cfg somehow POL couldn't find it when starting up

Works fine when I move everything to pol/pkg folder and change the paths in ecompile.cfg though. Ordnung muss sein! ;)


EDIT:
The only effect of putting everything into one folder so far is a message when starting POL:

Code: Select all

Running startup script.
Exception caught while loading script scripts/start.ecl: Unable to open scripts/
start.ecl for reading.
Unable to read script 'scripts/start.ecl'
Error reading script start
Startup script complete.
Apart from that seems to work so far
Yukiko
Distro Developer
Posts: 2825
Joined: Thu Feb 02, 2006 1:41 pm
Location: San Antonio, Texas
Contact:

Re: Assertion Failed: pAttrStrength, mobile\attribute.cpp

Post by Yukiko »

I'm not sure if moving actual packages from the "pkg" directory to "scripts" is advisable. Some of those locations are hardcoded into POL. If you tell POL that packages are now in the "scripts" directory it might cause POL to be unable to find the "scripts" directory when it needs to load a required file that is supposed to reside in "scripts". As I am not a developer for the Core I can't say for sure but I do know that POL must find certain files in certain places. So I try not to deviate from the norm very much.

The original idea behind packages was that they could be dropped in without any dependency worries, other than the "standard" includes that were in the Distro. Thus someone could write a new magic system. She would make it available and you could drop it into your shard by simply copying the package to your pkg directory and give it a try. If you decided you didn't like it all you'd need to do is delete the package and that would be that.
Tomi
POL Developer
Posts: 478
Joined: Tue Feb 21, 2006 5:08 pm

Re: Assertion Failed: pAttrStrength, mobile\attribute.cpp

Post by Tomi »

You can put the packages in Scripts dir or actually whatever dir name you want to
The problem is that in ecompile.cfg PolScriptRoot and PackageRoot can not be the same
Yukiko
Distro Developer
Posts: 2825
Joined: Thu Feb 02, 2006 1:41 pm
Location: San Antonio, Texas
Contact:

Re: Assertion Failed: pAttrStrength, mobile\attribute.cpp

Post by Yukiko »

Tomi,

So you're saying I could have my packages directory under \pol\scripts so long as my ecompile.cfg looks like this?

Code: Select all

PolScriptRoot C:\pol\scripts

PackageRoot C:\pol\scripts\pkg
The root directories are not the same. So it wouldn't cause a problem if the root of the packages directory is under the root of the scripts directory?
User avatar
timginter
Neophyte Poster
Posts: 37
Joined: Tue Apr 22, 2008 6:25 am

Re: Assertion Failed: pAttrStrength, mobile\attribute.cpp

Post by timginter »

I have everything in 'pkg' folder and POL starts. I didn't try to connect yet, so I'm not sure how it will work in the long run.

I don't like the idea that some of the scripts and file are in /scripts and some in /pkg. The concept of plug n' play packages was nice, but after some time you end up with such a web of dependencies that there is no point in keeping separate folders, it only annoys when navigating through files. POL has an overwhelming amount of scripts/configs/includes anyway, the system should be as logical and clear as possible in my opinion.
User avatar
timginter
Neophyte Poster
Posts: 37
Joined: Tue Apr 22, 2008 6:25 am

Re: Assertion Failed: pAttrStrength, mobile\attribute.cpp

Post by timginter »

I have POL running and I can connect. The problem is, when I log in with 7.0.15.1 client (encryption removed with Razor) everything is black. I can't say anything. Double-click on my char prints "Unknown packet type 0xc8: 2 bytes".
- I added stairs tiles to uoconvert.cfg (described here: http://forums.polserver.com/viewtopic.p ... gian+abyss )
- I tried accounts.txt: with UOExpansion SA and UOExpansion ML - none worked
- I have UOFeatureEnable= 0x1a0 in servspecopt.cfg.
- I generated configs and all realms just to be sure, first with UseNewHSAFormat 1, then UseNewHSAFormat 0. None worked, with UseNewHSAFormat 0 POL froze when starting.

When I log in with client 5.0.0b everything displays fine... When I create a character using 5.0.0b, log out and log in with 7.0.15.1 the map displays correctly. For some time I was even able to open paperdoll without a problem, then after a few steps 7.0.15.1 client froze and after logging in again the map was visible, but moving created unbelievable lag and froze the client, double clicking ended in "Unknown package type"... I'm lost.

What am I missing? I have noticed you were asking around about Stygian Abyss client on the forums, Yukiko - any luck starting a shard on a higher client?
RusseL
Forum Regular
Posts: 375
Joined: Fri Feb 20, 2009 8:30 pm

Re: Assertion Failed: pAttrStrength, mobile\attribute.cpp

Post by RusseL »

Yukiko
Distro Developer
Posts: 2825
Joined: Thu Feb 02, 2006 1:41 pm
Location: San Antonio, Texas
Contact:

Re: Assertion Failed: pAttrStrength, mobile\attribute.cpp

Post by Yukiko »

timginter wrote:I have everything in 'pkg' folder and POL starts. I didn't try to connect yet, so I'm not sure how it will work in the long run.

I don't like the idea that some of the scripts and file are in /scripts and some in /pkg. The concept of plug n' play packages was nice, but after some time you end up with such a web of dependencies that there is no point in keeping separate folders, it only annoys when navigating through files. POL has an overwhelming amount of scripts/configs/includes anyway, the system should be as logical and clear as possible in my opinion.
Packages are supposed to be plug and play or independent of other packages. If they are dependent on anything it should only be the standard include files located in \pol\scripts\include and the standard or "utility" packages that come in the Distro. Any include files that a package needs exclusively for itself should be placed in an include sub-directory under the package's root directory. Ideally no package should assume that any other package is present in a set of server scripts in order to be totally independent. However, there are some "standard" packages that come with the "Distro" and are there to be used by other packages. The gumps or datafile packages are examples of such packages. I would call those "utility packages" for want of a better name.

Disclaimer: The above is my opinion and does not reflect the opinions of anyone else unless they agree with me.

There has been a lot of work done with the newer versions of the Distro to try to organize things better. Austin started it with the POL 0.97 Distro. For the most part any scripts under the \pol\scripts directory are required for POL to start. The same goes for the cfg files in \pol\config. The entire AI system for NPCs used to be under the "scripts" directory but Austin moved that to a package instead. The same goes for the text commands. On the whole, the new organization that Austin started has survived in the current "Distro" and is much better than the pre-POL 0.97 Distros. I'm used to the old way POL was organized so it took me some time to find things in the new layout.

If you think the current "geography" of the "Distro" is disorganized you should see some of the old scriptsets. : )
User avatar
timginter
Neophyte Poster
Posts: 37
Joined: Tue Apr 22, 2008 6:25 am

Re: Assertion Failed: pAttrStrength, mobile\attribute.cpp

Post by timginter »

Gigantic thanks, RusseL and Yukiko! I'm not sure why I missed that topic. Changing the packet to SendPacket(mobile, "B90000801B"); solved everything. Geez, finally...!

I'm working on a most basic pack of 099 (something like Distro097_basic in Downloads) with everything set for a specified client, so people do not have to go through what many here have went over and over again. I finally got the "official" distro to run, now it's time to strip it.

@Yukiko: I get the idea of packages and in theory it sounds great, but having skill systems, magic systems and what-nots packages are usually dependant on each other, so you get "all or nothing" from a shard (with some minor exceptions). I have chosen POL because I can tweak it to my liking, from bare minimum, adding packages I want to have, not the ones I am forced to have or face editing dependencies. I remember and still work on a really messy 095 and I like how newer versions are organised, I just don't see the point of having separate folders (scripts/ in my case, since POL doesn't want to run without pkg/), especially since attributes and account packages are in pkg/ and all core includes in scripts/. Why not put it together? There are only a few folders in scripts/ anyway.


Huge thanks for help again, I can finally sit and put what I have on paper to code. I'll post the basic package on the forums with a detailed tutorial so people do not have to use their limit of swearing for the next 10 years starting POL ;)
Yukiko
Distro Developer
Posts: 2825
Joined: Thu Feb 02, 2006 1:41 pm
Location: San Antonio, Texas
Contact:

Re: Assertion Failed: pAttrStrength, mobile\attribute.cpp

Post by Yukiko »

Yeah. I want to thank Russel again for his help with the "SendPacket" issue. I had the same problem and he helped me out.

I agree with you about the skills, magic and other systems tending to become intertwined. If you add a class system into the mix it truly entangles everything. As with all systems, the ides behind packages being plug and play is an ideal way of doing things. Unfortunately we live, or in this case write programs, in a non-ideal world. So we strive for the best but don't always get there. Maybe someone can figure out a way to create a completely unentangled way of doing it but it definitely won't be me.
User avatar
timginter
Neophyte Poster
Posts: 37
Joined: Tue Apr 22, 2008 6:25 am

Re: Starting POL 099 - the long way made short

Post by timginter »

Done! Thank you all for the help, I was able to start the latest distro through the steps described a few posts above. God... I haven't been swearing like that in a really long time ;)

I renamed this thread so others can find it easier.
Yukiko
Distro Developer
Posts: 2825
Joined: Thu Feb 02, 2006 1:41 pm
Location: San Antonio, Texas
Contact:

Re: Starting POL 099 - the long way made short

Post by Yukiko »

Glad to hear it.

I think we've all done our share of swearing working with POL.
User avatar
CWO
POL Expert
Posts: 1158
Joined: Sat Feb 04, 2006 5:49 pm
Location: Chicago, IL USA

Re: Starting POL 099 - the long way made short

Post by CWO »

Been a while since I've been around so I'm catching up. Just something to say from experience, once your shard is running and people are logging in, do NOT leave the setting:

Code: Select all

AssertionFailureAction=continue
This can cause gigantic problems while your shard is running because even though its set to continue, POL does not simply continue like nothing happened. It continues but without the thread that caused it which could be things like your script thread which is probably interesting at first but its worse than the shard just being down.

The best thing to do is set it to:

Code: Select all

AssertionFailureAction=shutdown
This way if anything happens, POL stops, saves, and shuts down.
Yukiko
Distro Developer
Posts: 2825
Joined: Thu Feb 02, 2006 1:41 pm
Location: San Antonio, Texas
Contact:

Re: Starting POL 099 - the long way made short

Post by Yukiko »

I probably should look at my setting. It's been awhile and I think I had it set to continue.

Oh and BTW, good to see you back on the forums CWO. You are definitely one of those who have helped me out a lot in the past.
Post Reply