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 pour l'aide
Dernière édition par un modérateur: