Hi!
Heroic Deeds
I've added the option to set categories to "heroic". This means their Achievements will only be displayed when they are complete instead of showing the list of all possible Achievements. Also heroic deeds do not award Yubopoints.
Inheriting Objectives
While working out some achievements I found a flaw in the system. When we look at an Achievement with three Tasks:
Boss Mobs:
- Kill one of the bosses listed below
- Kill 15 of the bosses listed below
- Kill all of the bosses listed below
Currently this would require for every Task to have its own Objectives. In this case one would have to add the same boss mobs as Objectives for every one of the three Tasks.
To solve the problem it is now possible to let a Task inherit the Objectives of his parent.
Tied Achievements
Another issue that is currently adressed is a problem with the cult/civ ties of achievements.
I'll be moving the ties to the Tasks to avoid duplication of Achievements just because their Tasks differ for different tie combinations.
Yours Cotare
Ryzom Achievements @ GSoC 2012
Wednesday, August 22, 2012
GSoC 2012 has ended
Hiho!
The Google Summer of Code has ended now and I am quite satisfied with what has been accomplished. Most things are working, though there are also many small details I'll keep working on.
Also the real-time-tracking of achievements using Ryzom's server services will be one of the next milestones.
I'll keep posting news every now and then...
Yours Cotare
The Google Summer of Code has ended now and I am quite satisfied with what has been accomplished. Most things are working, though there are also many small details I'll keep working on.
Also the real-time-tracking of achievements using Ryzom's server services will be one of the next milestones.
I'll keep posting news every now and then...
Yours Cotare
Monday, July 16, 2012
Tuesday, July 10, 2012
Data handling inside the PHP classes
Hi!
I improved the data handling inside the PHP classes. Each class normally has a list containing its child nodes. eg: AchAchievement has a list of AchTask nodes.
They are now organized in a doubly linked list. In addition to that an AVLtree is built to find nodes by their ID number. This allows later manipulation of the nodes and even reorganization. We need that for the admin tool, since changes to the structure will first be reflected within the actually loaded structure and the stored in the database.
yours Cotare
I improved the data handling inside the PHP classes. Each class normally has a list containing its child nodes. eg: AchAchievement has a list of AchTask nodes.
They are now organized in a doubly linked list. In addition to that an AVLtree is built to find nodes by their ID number. This allows later manipulation of the nodes and even reorganization. We need that for the admin tool, since changes to the structure will first be reflected within the actually loaded structure and the stored in the database.
yours Cotare
Achievement Tracker (redone)
Hiho!
The achievement tracker has suffered some vital changes. We are now strictly event driven, which should give a nice performance boost.
XML data gets processed using SAX. This way we can avoid building a DOM tree inside the RAM while extracting data.
The parser knows two different types of data: values and entities. Values are simple values like "key=>value". Entities are dataset that belong together like "pet"=>(x,y,z,sheet_id,satiety,....)
Instead of asking the parser to extract information from the XML, the atom scripts now register which values or entities they are interested in, providing a callback method. Once all atoms have been registered, the parser is started. It will extract the data from top to bottom, sending it to the dispatcher which passes it on to the atoms. Worst case: no atom wants the data => nothing happens.
Well, that's ist basically :)
yours Cotare
The achievement tracker has suffered some vital changes. We are now strictly event driven, which should give a nice performance boost.
XML data gets processed using SAX. This way we can avoid building a DOM tree inside the RAM while extracting data.
The parser knows two different types of data: values and entities. Values are simple values like "key=>value". Entities are dataset that belong together like "pet"=>(x,y,z,sheet_id,satiety,....)
Instead of asking the parser to extract information from the XML, the atom scripts now register which values or entities they are interested in, providing a callback method. Once all atoms have been registered, the parser is started. It will extract the data from top to bottom, sending it to the dispatcher which passes it on to the atoms. Worst case: no atom wants the data => nothing happens.
Well, that's ist basically :)
yours Cotare
Monday, June 25, 2012
Achievement xmlAPI
Hi!
The xml API to query achievement structure and player progress is done.
Here is an example output from the progress script:
Yours Cotare
The xml API to query achievement structure and player progress is done.
Here is an example output from the progress script:
<ryzom_progress>
<character id="1"/>
<tasks>
<task id="2" date="600"/>
<task id="5" date="100"/>
</tasks>
<objectives>
<done>
<objective id="4" date="500"/>
<objective id="7" date="500"/>
<objective id="11" date="500"/>
</done>
<open>
<objective id="13" value="1"/>
</open>
</objectives>
</ryzom_progress>
Yours Cotare
Class schemes 2.0
Hi!
While working on the admin tools, I found some obstacles. I wanted to use the base classes that load the structure of the achievements and extend them to support administrative functions.
Therefore I did some restructuring. I modified some abstract classes and made use of PHP traits.
So here comes the new class scheme:
There will probably be some further changes though, since the admin tool is still WIP.
Yours Cotare
While working on the admin tools, I found some obstacles. I wanted to use the base classes that load the structure of the achievements and extend them to support administrative functions.
Therefore I did some restructuring. I modified some abstract classes and made use of PHP traits.
So here comes the new class scheme:
There will probably be some further changes though, since the admin tool is still WIP.
Yours Cotare
Subscribe to:
Posts (Atom)

