Français Traitements avec chance de donner plusieurs items différents

  • Auteur de la discussion Auteur de la discussion Skyrise
  • Date de début Date de début

Skyrise

User
29/12/19
33
1
9
600
Bienvenue sur ce tutoriel qui vous permettra de modifier le fonctionnement du script de traitement des items virtuels pour que l'objet obtenu soit aléatoire parmis une liste prédéfinie dans le Config_Process.hpp.​

Dans votre fn_processAction.sqf, remplacez ces lignes :
[CODE lang="cpp" title="fn_processAction.sqf"]_newItemWeight = 0;
{
_weight = ([_x select 0] call life_fnc_itemWeight) * (_x select 1);
_newItemWeight = _newItemWeight + _weight;
} count _newItem;[/CODE]
par celles-ci :
[CODE lang="cpp" title="Code "]_newItemWeight = 0;
_percent = (floor random 100) + 1;
{
_prob = _x select 2;
_probdiff = _x select 3;

if ((_percent >= _prob) && (_percent <= _probdiff)) exitWith {
_weight = ([_x select 0] call life_fnc_itemWeight) * (_x select 1);
_newItemWeight = _newItemWeight + _weight;
};
} count _newItem;[/CODE]

Ensuite, dans le même fichier, remplacez ces lignes :
[CODE lang="cpp" title="Code "]{
[true,(_x select 0),((_x select 1)*(_minimumConversions))] call life_fnc_handleInv;
} count _newItem;[/CODE]
par celles-ci :
[CODE lang="cpp" title="fn_processAction.sqf"]{
_prob = _x select 2;
_probdiff = _x select 3;

if ((_percent >= _prob) && (_percent <= _probdiff)) exitWith {
[true,(_x select 0),((_x select 1)*(_minimumConversions))] call life_fnc_handleInv;
};
} count _newItem;[/CODE]
Attention : Le dernier bloc de lignes est 2 fois dans le fichier. Il faut bien le remplacer les deux fois.

Exemple de configuration :
[CODE lang="cpp" title="Config_Process.hpp"]class minerais {
MaterialsReq[] = {{"pierre",1}};
MaterialsGive[] = {{"copper_refined",1,0,75},{"iron_refined",1,75,100}}; // 1 cuivre 75% de chance (de 0 à 75 sur 100) / 1 fer 25% de chance de (75 à 100 sur 100)
Text = "STR_Process_Minerais";
NoLicenseCost = 1350;
};[/CODE]
Le fonctionnement est similaire au Config_Gather.hpp pour les probabilités de ces traitements.

Pour comprendre les pourcentages :
0, 100 : 100%
55, 60 : 5%
20, 100 : 80%
20, 20 : 0% -> INUTILE


Et voila !
Merci à Maxence Maxence pour l'aide :)
 
Dernière édition par un modérateur:
  • Like
Les réactions: wally et Teravince