AP_GetSkillStats question

Here you can post threads requesting help on the official POL Ultima Online Emulator Core 096.
Note: Core 096 is no longer officially supported.
Post Reply
Yukiko
Distro Developer
Posts: 2826
Joined: Thu Feb 02, 2006 1:41 pm

AP_GetSkillStats question

Post by Yukiko »

I think this is for Austin or one of the devs but either way...

I need to retrieve the default award points for a skill. From reading the comments in the attributes inc files I think the afore mentioned skill is what I need to retrieve the info from attributes.cfg in :attributes\config but I wanted to ask just in case I was wrong.

So is it?

Or is there any default award points at all?
User avatar
Austin
Former Developer
Posts: 621
Joined: Wed Jan 25, 2006 2:30 am

Post by Austin »

The skill points system youre referring to was removed.
Originally POL had a function where you awarded so many points and that affected the skill's gain. It was a curve if you tried to graph it..
Then in POL 094, that was removed when attributes came out but was kept as a scripted function. I removed this scripted (not core) functionality (which means this post really should be on the distro forum) in favor of a random dice roll for advancement because it has a lot more benefits in use than the award points system did.
Yukiko
Distro Developer
Posts: 2826
Joined: Thu Feb 02, 2006 1:41 pm

Post by Yukiko »

I am having trouble finding the place where points are awarded. Maybe I am just missing it. Is the random dice roll a core function perhaps?

Oh and feel free to move the thread. I still get confused where I post script questions for the current release of POL as the current core release is 96 but the current official Distro release is 95.
User avatar
Austin
Former Developer
Posts: 621
Joined: Wed Jan 25, 2006 2:30 am

Post by Austin »

Advancement in the new distros is handled in attributes/include/advanceCheck.inc

It does away with the old award points system, and if the roll is successful, advances the skill by 0.1 or more. No inbetween numbers. The advancement is instead, a comparison of the skill being checked and the difficulty of the check.
Yukiko
Distro Developer
Posts: 2826
Joined: Thu Feb 02, 2006 1:41 pm

Post by Yukiko »

So then everytime a CheckSkill function call is made any points are awarded at that time and I can do away with the seperate award ponts garbage? Great! Makes life easier.
User avatar
OldnGrey
POL Expert
Posts: 657
Joined: Sat Feb 04, 2006 6:26 pm

Post by OldnGrey »

Kukiko,
As long as you aren't using the WoD training system any more. It used to award points based on the amount of training you paid for.

To be honest I still like the points system as it provides a predictable number of points to achieve a skill advance which doubles at every 10.0 skill gained.

The old 094 distro used a random number to gain 0.1 too even though it used points - it based it on the percentage of points you were awarded compared to the points needed and did a random number of the two to see if you gained. Over time it was accurate, but it was not precise. It never actually stored the points the player had accumulated along the way to the next 0.1.

The solution I use still is to use a dictionary to store the points and only advance when you have the points. This is gonna be a nasty one to convert to the new distro system and I am not looking forward to it UNLESS I totally drop my entire skill gain system.

Converting from the old to the new always does this, doesn't it!
User avatar
Austin
Former Developer
Posts: 621
Joined: Wed Jan 25, 2006 2:30 am

Post by Austin »

how about this pseudo code and make like an awardPoints.inc in the attributes package, Grey.

Code: Select all

function AwardPoints(mobile, type, num_points)
     var point_list = GetObjProperty(...)
     if ( point list isnt a dictionary )
         point_list = dictionary
     endif

     point_list[type] := CInt(point_list[type])+num_points;
    
     CheckIfEnoughPointsToAdvance(mobile, byref point_list[type]);
    
     SetObjProperty(mobile, "AwardedPoints", point_list);
endfunction
Post Reply