OFFICIAL NEWS


Ryzom News - November 2012

Issue was posted 3 months ago by usm4rin3, still at 0% done. Not sure if this addresses all the issues brought up by Fyrosfreddy or not.

**thanks to Eruv for showing me the link.

http://dev.ryzom.com/issues/1501

Description

When prospecting for mats in an area with more than 1 deposit, certain combinations might return an invalid message. Take the following scene:

Deposit 1: 1 Choice material
Deposit 2: 1 Supreme material - weather condition invalid
Both deposits on the same area, or in the action range.

If I prospect for supreme materials only, deposit 1 will be discarded with the error NFStatEnergyDifferent (NFStatEnergyTooHigh?) and deposit 2 will be discarded with the error NFInvalidCurrentWeather. The expected message is the weather failure, indicating that there is a material I want in the area (but unavailable), but the error returned is about a different class available.

The current tracking/prospection implementation discards each of the available deposits in a sequence, and each deposit discarded returns a reason, that is stored in a list. If a material is not found, the first reason in a sequence is returned. The way this sequence is coded allows for a broader reason to replace a more strict one, like the one stated.

This is the filter sequence:

(Static Filter)
NFNoDepositHere
NFInvalidEcotype
NFNoDepositForFilter (material group/family)
NFStatEnergyDifferent
NFStatEnergyTooHigh
(Dynamic Filter)
NFInvalidCurrentWeather
NFInvalidCurrentTimeOfDay
NFInvalidCurrentSeason
NFSiteDepleted
NFNoLocalMaterialForFilter
NFStatEnergyDifferentLocal
NFStatEnergyTooHighLocal
NFCantSpawnSource

This is the 'failure' sequence (the selection of the reason to be sent to the client):

NFSiteDepleted
NFStatEnergyDifferentLocal
NFStatEnergyTooHighLocal
NFNoLocalMaterialForFilter
NFNoDepositForFilter
NFStatEnergyDifferent
NFStatEnergyTooHigh
NFInvalidEcotype
NFInvalidCurrentSeason
NFInvalidCurrentTimeOfDay
NFInvalidCurrentWeather
NFNoDepositHere
NFDepositDepleted
NFCantSpawnSource

I still have to think moure about it, but I think the 'failure' sequence should be the inverse of the filter, so the player knows how far he got in the selection process.

Suggested 'failure' sequence:

NFCantSpawnSource
NFStatEnergyTooHighLocal
NFStatEnergyDifferentLocal
NFNoLocalMaterialForFilter
NFSiteDepleted
NFInvalidCurrentSeason
NFInvalidCurrentTimeOfDay
NFInvalidCurrentWeather
NFStatEnergyTooHigh
NFStatEnergyDifferent
NFNoDepositForFilter
NFInvalidEcotype
NFNoDepositHere

Note that this way the dynamic errors (weather,season...) have a priority over the static ones.

This code is in the fg_prospection_phrase.cpp in the egs/phrase_manager folder.

https://bitbucket.org/ryzom/ryzomcore/src/b7ef4a02ef08/code/ryzom /server/src/entities_game_service/phrase_manager?at=default

https://bitbucket.org/ryzom/ryzomcore/src/b7ef4a02ef08/code/ryzom /server/src/entities_game_service/phrase_manager/fg_extraction_ph rase.cpp?at=default
Show topic
Last visit Monday, 29 April 11:04:26 UTC
P_:

powered by ryzom-api