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

TP-Shop Team
Developer
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 :
fn_processAction.sqf:
Développer Réduire Copier
_newItemWeight = 0;
{
    _weight = ([_x select 0] call life_fnc_itemWeight) * (_x select 1);
    _newItemWeight = _newItemWeight + _weight;
} count _newItem;
par celles-ci :
Code :
Développer Réduire Copier
_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;

Ensuite, dans le même fichier, remplacez ces lignes :
Code :
Développer Réduire Copier
{
    [true,(_x select 0),((_x select 1)*(_minimumConversions))] call life_fnc_handleInv;
} count _newItem;
par celles-ci :
fn_processAction.sqf:
Développer Réduire Copier
{
    _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;
Attention : Le dernier bloc de lignes est 2 fois dans le fichier. Il faut bien le remplacer les deux fois.

Exemple de configuration :
Config_Process.hpp:
Développer Réduire Copier
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;
};
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
Activité
Pour l'instant, il n'y a personne ici