[Tuto] Bourse 5.0 V2


#21

kovix5519 Merci de ta réponse super tuto =D


#22

kovix5519 J’ai une autre petite question j’ai fait comme toi dans "Life_server -> Functions -> Dynmarket et edité “fn_config.sqf " , et dans la partie “//ALL SELLABLE ITEMS” j’ai vue que tu rentrer le "plus petit prix " indiquer plus haut pour l’item exemple [‘goldbar’,1,95000,115000] = [‘goldbar’,95000] dans “//ALL SELLABLE ITEMS” mes du coup in game le prix max et 95000 et non 115000 et quand j’en vend le prix passe sous les 95000 donc je ne comprend pas si j’ai fait un mauvais truck ou si c’est normal ^^


#23

Dewix je pense effectivement que tu as du faire une mauvaise manip.

Dans le config :

DYNMARKET_Items_Groups =
[
	["Legal",
		[
			['apple',-1,10,50] //<= le -1 définit le légal, le 10 le prix le plus bas, le 50 le prix le plus haut
		],
		0.5
	],
DYNMARKET_Items_ToTrack        =
[
	['apple',25] //<= le 25 le prix au quel sera vendu lors du démarrage du serveur ( avant les variations ) donc prix de départ
];


#24

Ah d’accord merci vraiment de ton aide =D


#25

Salut j’ai fais des modifications de prix dans le fichier config de dynmarket mais les variations de prix reste les même de base comme si je n’avais rien toucher pourtant j’ai bien sauvegarder et mis en PBO … je ne comprend pas

Mes logs : https://pastebin.com/gL2kCfYs

Ce qui conserne l’erreur du fichier Buysim je sais d’ou ça vien ce n’es rien de grave. donc ne pas le prendre en compte.


#26

theclem21 Regarde dans ta BDD la ligne qui à été créée dans la table de la bourse et supprime là


#27

Je teste cela et ensuite je vous le dit


#28

Petit soucis , les gendarmes quand il vérifie une personne que elle as de illégale sur elle , cela mets 0 de contrebande , pour moi j’ai mis dans

core > cop > fn_copSearch.sqf

#include "..\..\script_macros.hpp"
/*
    File: fn_copSearch.sqf
    Author: Bryan "Tonic" Boardwine

    Description:
    Returns information on the search.
*/
life_action_inUse = false;
private ["_license","_guns","_gun"];
params [
    ["_civ",objNull,[objNull]],
    ["_invs",[],[[]]],
    ["_robber",false,[false]]
];

if (isNull _civ) exitWith {};

_illegal = 0;
_inv = "";
if (count _invs > 0) then {
    {
        _displayName = M_CONFIG(getText,"VirtualItems",(_x select 0),"displayName");
        _inv = _inv + format ["%1 %2<br/>",(_x select 1),(localize _displayName)];
        _price = M_CONFIG(getNumber,"VirtualItems",(_x select 0),"AmandePriceCop"); // ---> Ici
        if (!isNull (missionConfigFile >> "VirtualItems" >> (_x select 0) >> "processedItem")) then {
            _processed = M_CONFIG(getText,"VirtualItems",(_x select 0),"processedItem");
            _price = M_CONFIG(getNumber,"VirtualItems",_processed,"AmandePriceCop"); // ---> Ici
        };

        if (!(_price isEqualTo -1)) then {
            _illegal = _illegal + ((_x select 1) * _price);
        };
    } forEach _invs;
    if (_illegal > 6000) then {

        if (life_HC_isActive) then {
            [getPlayerUID _civ,_civ getVariable ["realname",name _civ],"482"] remoteExecCall ["HC_fnc_wantedAdd",HC_Life];
        } else {
            [getPlayerUID _civ,_civ getVariable ["realname",name _civ],"482"] remoteExecCall ["life_fnc_wantedAdd",RSERV];
        };

    };

    if (life_HC_isActive) then {
        [getPlayerUID _civ,_civ getVariable ["realname",name _civ],"481"] remoteExecCall ["HC_fnc_wantedAdd",HC_Life];
    } else {
        [getPlayerUID _civ,_civ getVariable ["realname",name _civ],"481"] remoteExecCall ["life_fnc_wantedAdd",RSERV];
    };

    [0,"STR_Cop_Contraband",true,[(_civ getVariable ["realname",name _civ]),[_illegal] call life_fnc_numberText]] remoteExecCall ["life_fnc_broadcast",west];
} else {
    _inv = localize "STR_Cop_NoIllegal";
};

if (!alive _civ || player distance _civ > 5) exitWith {hint format [localize "STR_Cop_CouldntSearch",_civ getVariable ["realname",name _civ]]};
//hint format ["%1",_this];
hint parseText format ["<t color='#FF0000'><t size='2'>%1</t></t><br/><t color='#FFD700'><t size='1.5'><br/>" +(localize "STR_Cop_IllegalItems")+ "</t></t><br/>%2<br/><br/><br/><br/><t color='#FF0000'>%3</t>"
,(_civ getVariable ["realname",name _civ]),_inv,if (_robber) then {"Robbed the bank"} else {""}];

if (_robber) then {
    [0,"STR_Cop_Robber",true,[(_civ getVariable ["realname",name _civ])]] remoteExecCall ["life_fnc_broadcast",RCLIENT];
};

Et

dans config > Config_vItems.hpp

    class cannabis {
        variable = "cannabis";
        displayName = "STR_Item_Cannabis";
        weight = 4;
        buyPrice = -1;
        sellPrice = -1;
	AmandePriceCop = 8000; // ---> Ajouter ceci
        illegal = true;
        edible = -1;
        icon = "icons\ico_cocaineProcessed.paa";
        processedItem = "marijuana";
    };

#29

Un question peu être bête ,

:::

DYNMARKET_Items_Groups =
[
[“Legal”,
[
[‘apple’,-1,10,50],
[‘peach’,-1,30,100],
[‘oil_processed’,-1,1950,2640],
[‘copper_refined’,-1,1050,2150],
[‘iron_refined’,-1,1350,2050],
[‘salt_refined’,-1,1460,2360],
[‘glass’,-1,1450,2350],
[‘diamond_cut’,-1,1530,4600],
[‘cement’,-1,990,1950]
],
0.5
],

["Illegal", 
	[
		['heroin_processed',1,5320,8640],
		['marijuana',1,5590,8860],
		['cocaine_processed',1,5680,8970],
		['goldbar',1,95000,115000]
	],
	0.5
]

];

:::

Tu fait que deux groupes donc quand tu vend du légal … tout les autres légaux vont monter et celui que vend descend serais pas mieux de faire plusieurs groupes affin de ne pas faire bouger tout d’un coups ?

Deuxième question : en dessous de chaque groupe tu mets le facteur de changement 0.5 . tu peu expliquer à quel taux cela correspond stp ?

Car j’essaye de trouver le juste équilibre entre mes groupes affin de ne pas faire trop ou trop peu chuter la bourse


#30

Si je me rappelle bien (j’ai pas l’algo de calcul sous les yeux) :
le serveur récupère la valeur de vente actuelle de l’item sélectionné,
va le multiplier par le coefficient indiqué dans la configuration pour le groupe dont l’item fait partie,
puis va additionner (ou soustraire) la valeur de vente au résultat de la multiplication précédente, et ce pour tous les items du groupe.

je me corrigerais après avoir vérifié l’algorithme (ce soir probablement)


#31

Stacked ce serais cool merci


#32

Il me semble que c’est ca Stacked , ca fait tellement longtemps x)


#33

enzo2991 a dit dans [Tuto] Bourse 5.0 V2 :

Petit soucis , les gendarmes quand il vérifie une personne que elle as de illégale sur elle , cela mets 0 de contrebande , pour moi j’ai mis dans

core > cop > fn_copSearch.sqf

#include "..\..\script_macros.hpp"
/*
    File: fn_copSearch.sqf
    Author: Bryan "Tonic" Boardwine

    Description:
    Returns information on the search.
*/
life_action_inUse = false;
private ["_license","_guns","_gun"];
params [
    ["_civ",objNull,[objNull]],
    ["_invs",[],[object Object]],
    ["_robber",false,[false]]
];

if (isNull _civ) exitWith {};

_illegal = 0;
_inv = "";
if (count _invs > 0) then {
    {
        _displayName = M_CONFIG(getText,"VirtualItems",(_x select 0),"displayName");
        _inv = _inv + format ["%1 %2<br/>",(_x select 1),(localize _displayName)];
        _price = M_CONFIG(getNumber,"VirtualItems",(_x select 0),"AmandePriceCop"); // ---> Ici
        if (!isNull (missionConfigFile >> "VirtualItems" >> (_x select 0) >> "processedItem")) then {
            _processed = M_CONFIG(getText,"VirtualItems",(_x select 0),"processedItem");
            _price = M_CONFIG(getNumber,"VirtualItems",_processed,"AmandePriceCop"); // ---> Ici
        };

        if (!(_price isEqualTo -1)) then {
            _illegal = _illegal + ((_x select 1) * _price);
        };
    } forEach _invs;
    if (_illegal > 6000) then {

        if (life_HC_isActive) then {
            [getPlayerUID _civ,_civ getVariable ["realname",name _civ],"482"] remoteExecCall ["HC_fnc_wantedAdd",HC_Life];
        } else {
            [getPlayerUID _civ,_civ getVariable ["realname",name _civ],"482"] remoteExecCall ["life_fnc_wantedAdd",RSERV];
        };

    };

    if (life_HC_isActive) then {
        [getPlayerUID _civ,_civ getVariable ["realname",name _civ],"481"] remoteExecCall ["HC_fnc_wantedAdd",HC_Life];
    } else {
        [getPlayerUID _civ,_civ getVariable ["realname",name _civ],"481"] remoteExecCall ["life_fnc_wantedAdd",RSERV];
    };

    [0,"STR_Cop_Contraband",true,[(_civ getVariable ["realname",name _civ]),[_illegal] call life_fnc_numberText]] remoteExecCall ["life_fnc_broadcast",west];
} else {
    _inv = localize "STR_Cop_NoIllegal";
};

if (!alive _civ || player distance _civ > 5) exitWith {hint format [localize "STR_Cop_CouldntSearch",_civ getVariable ["realname",name _civ]]};
//hint format ["%1",_this];
hint parseText format ["<t color='#FF0000'><t size='2'>%1</t></t><br/><t color='#FFD700'><t size='1.5'><br/>" +(localize "STR_Cop_IllegalItems")+ "</t></t><br/>%2<br/><br/><br/><br/><t color='#FF0000'>%3</t>"
,(_civ getVariable ["realname",name _civ]),_inv,if (_robber) then {"Robbed the bank"} else {""}];

if (_robber) then {
    [0,"STR_Cop_Robber",true,[(_civ getVariable ["realname",name _civ])]] remoteExecCall ["life_fnc_broadcast",RCLIENT];
};

Et

dans config > Config_vItems.hpp

    class cannabis {
        variable = "cannabis";
        displayName = "STR_Item_Cannabis";
        weight = 4;
        buyPrice = -1;
        sellPrice = -1;
	AmandePriceCop = 8000; // ---> Ajouter ceci
        illegal = true;
        edible = -1;
        icon = "icons\ico_cocaineProcessed.paa";
        processedItem = "marijuana";
    };

Tu as fais bcp de modif …

Juste a changer :

if (!(_price isEqualTo -1)) then {
            _illegal = _illegal + ((_x select 1) * _price);
        };

en

if (!(_price isEqualTo -2)) then { //Valeur -1 a -2 
            _illegal = _illegal + ((_x select 1) * _price);
        };

Ca devrait largement faire l’affaire


#34

Salut voila j ai un petit probleme tous mache comme il le faut les quand je click sur le bouton bourse sa me met un message d erreur aid moi stp !!


#35

j ai trouvai le fichier pour pouvoir mètre le script.txt et ajouter la ligne de commande mais rien a faire toujours le même problème


#36

Bonjour j’ai instalelr ce tuto mais j’ai un probléme :

le voici : https://pastebin.com/5vn1AmVC

Cordialement


#37

ivoralife Faite une demande ou faites vous aidez sur le discord, mais pas en postant sur le topic du tuto, merci.


#38

aecy D’accord merci mais le discord on le trouve ou ?


#39

ivoralife Sur la page d’accueil du forum à droite (connect) … xx


#40

Bonjour/bonsoir
IvoraLife as-tu suivis le “tuto” de A - Z ? Me dis pas oui je juste pour me faire plaisir :slight_smile:

De plus log incomplet.

mrprotiix pm pour rdv TS