Difficulty scaling/fr: Difference between revisions
Created page with "'''Yellow''': L'arme aura au moins un bonus jaune." |
Created page with "<source lang="c++"> if (actor->params["LevelSensorMode"] < 1) return false; // if (actor_name.contains("Enemy")) { for (enemy_table : this->byml["enemy"]) { i = -1;..." |
||
| (5 intermediate revisions by the same user not shown) | |||
| Line 189: | Line 189: | ||
|- | |- | ||
| 4 | | 4 | ||
| '''NoneForced''' ( | | '''NoneForced''' (uniquement pour les coffres): L'arme n'apparaîtra ''jamais'' avec un bonus. ''Ceci est prioritaire sur le nivellement normal.'' | ||
|} | |} | ||
| Line 231: | Line 231: | ||
=== <code>Ecosystem::LevelSensor::scaleWeapon</code> === | === <code>Ecosystem::LevelSensor::scaleWeapon</code> === | ||
Appelée par le code des coffres ou par les acteurs d'ennemi{{Check}}, <code>Ecosystem::LevelSensor::scaleActor</code> | |||
Suivant le nom de l'arme, ses bonus et le compte actuel des points, cette fonction renvoie l'arme à faire apparaître, et le bonus à utiliser, si possible. | |||
Si l'algorithme échoue à trouver une arme qui satisfait toutes les conditions (nombre de points requis, série de l'arme, bonus), l'arme spécifiée et les bonus en entrée seront utilisés à la place. | |||
Pseudocode (1.0.0) : | Pseudocode (1.0.0) : | ||
| Line 246: | Line 246: | ||
void* unknown) | void* unknown) | ||
{ | { | ||
// | // quelques checks utilisant 'unknown' ici qui semble être un pointeur vers l'acteur | ||
// | // | ||
for (weapon_table : this->byml["weapon"]) { | for (weapon_table : this->byml["weapon"]) { | ||
// | // trouve la première arme pour laquelle le joueur a assez de points | ||
// | // avec le nom spécifié et les bonus | ||
i = -1; | i = -1; | ||
for (j = 0; j < weapon_table["actors"].size; ++j) { | for (j = 0; j < weapon_table["actors"].size; ++j) { | ||
| Line 270: | Line 270: | ||
entry = weapon_table["actors"][i]; | entry = weapon_table["actors"][i]; | ||
// | // | ||
// not_rank_up | // not_rank_up signifie qu'il n'y a pas de lien entre les armes; | ||
// | // ce tableau est juste utilisé pour parcourir les bonus. | ||
// | // donc parcourt la liste jusqu'à ce qu'il n'y ait plus d'entrée pour l'arme demandée | ||
// | // ou jusqu'à ce que l'on atteigne un bonus qui nécessite plus de points. | ||
if (weapon_table["not_rank_up"] && entry["name"] != weapon_to_look_up) | if (weapon_table["not_rank_up"] && entry["name"] != weapon_to_look_up) | ||
break; | break; | ||
// | // | ||
// | // sinon, parcourt juste la liste jusqu'à atteindre la fin ou une arme qui | ||
// | // requiert plus de points. Cela peut améliorer l'arme (par ex. Chevalier -> Royal). | ||
if (this->weapon_points <= entry["value"]) | if (this->weapon_points <= entry["value"]) | ||
break; | break; | ||
| Line 289: | Line 289: | ||
return true; | return true; | ||
} | } | ||
return false; // | return false; // ne peut pas niveller | ||
} | } | ||
</source> | </source> | ||
| Line 327: | Line 327: | ||
return true; | return true; | ||
} | } | ||
return false; // | return false; // ne peut pas niveller | ||
} | } | ||
// | // | ||
| Line 341: | Line 341: | ||
return true; | return true; | ||
} | } | ||
return false; // | return false; // ne peut pas niveller | ||
} | } | ||
</source> | </source> | ||