Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'exclusif'.

  • Rechercher par étiquettes

    Saisir les étiquettes en les séparant par une virgule.
  • Rechercher par auteur

Type du contenu


Forums

  • Discussions communautaires
    • Annonces importantes
    • Suggestions
    • Postulation
    • Présentation des membres
    • Discussions générales
    • Multimédias
    • Jeux vidéos
    • Actualités
    • Aide / Support
    • Études
    • Archives
  • Informatique
    • Projets des membres
    • Autres / Divers / Découvertes
    • Crypto-monnaie(s)
    • Hardware / Electronique
    • Réseaux
    • Gestion de serveur
    • Système d'exploitation : Smartphone
    • Système d'exploitation : Ordinateur
  • Programmation
    • Projets des membres
    • Développement web
    • Développement de logiciels
    • Développement d'applications pour smartphones
    • Outils du développeur
    • Aide / Support
  • Emulation
    • Aion
    • Arma III
    • Dofus
    • Dragonica
    • Emulateurs consoles
    • S4 League
    • FlyFF
    • Grand Theft Auto
    • Minecraft
    • Tera
  • Partenariats
    • <b>WoW Emu - La communauté émulation WoW</b>
    • <b>ActuGaming</b>
    • <b>H-Wars</b>
    • <b>EasyChat - Solution gratuite de chat client et serveur (anciennement Melichat)</b>
    • <b>Le Monde des Lunes</b>
    • <b>DansTonCode</b>

Calendriers

  • Calendrier de la communauté

Rechercher les résultats dans…

Rechercher les résultats qui…


Date de création

  • Début

    Fin


Dernière mise à jour

  • Début

    Fin


Filtrer par nombre de…

Inscription

  • Début

    Fin


Groupe


Skype


Site web


AIM


MSN


ICQ


Yahoo


Jabber


Tox


Centres d'interêts


Localisation


Niveau d'étude

1 résultat trouvé

  1. Bonsoir tout le monde ! Ce soir je vous partage un système de craft que j'ai créer complétement moi même, donc exclusif ! Petit aperçu : https://www.youtube.com/watch?v=BJegFHppdkc A faire : - Traduire le script en allemand/italien/portugais - Système de filtrage pour les vêtements/armes etc... • Fichier "Functions.h", mettez ceci dans la class "Action" : class craftAction {}; Dans la class "Config" : class craftCfg {}; Puis dans la class "Player_Menu" : class craft {}; class craft_update {}; • Fichier "dialog\MasterHandler.h", ajoutez : #include "craft.hpp" • Fichier "dialog\player_inv.hpp", remplacez : class ButtonAdminMenu : Life_RscButtonMenu { idc = 2021; text = "$STR_PM_AdminMenu"; onButtonClick = "createDialog ""life_admin_menu"";"; x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH)); y = 0.805; w = (6.25 / 40); h = (1 / 25); }; Par : class ButtonAdminMenu : Life_RscButtonMenu { idc = 2021; text = "$STR_PM_AdminMenu"; onButtonClick = "createDialog ""life_admin_menu"";"; x = 0.1 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH)); y = 0.805; w = (6.25 / 40); h = (1 / 25); }; Puis en dessous ajoutez ceci : class ButtonCraft : Life_RscButtonMenu { idc = 2025; text = "$STR_PM_Craft"; onButtonClick = "createDialog ""Life_craft"";"; x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH)); y = 0.805; w = (6.25 / 40); h = (1 / 25); }; • Fichier "stringtable.xml", ajoutez : <Package name="Craft"> <Key ID="STR_CRAFT_Title"> <Original>Crafting Menu</Original> <English>Crafting Menu</English> <German>Crafting Menu</German> <French>Menu de Crafting</French> <Italian>Crafting Menu</Italian> <Portuguese>Crafting Menu</Portuguese> </Key> <Key ID="STR_PM_CraftStats"> <Original>Object to craft</Original> <English>Object to craft</English> <German>Object to craft</German> <French>Objet à crafter</French> <Italian>Object to craft</Italian> <Portuguese>Object to craft</Portuguese> </Key> <Key ID="STR_PM_CraftMaterials"> <Original>Materials needed</Original> <English>Materials needed</English> <German>Materials needed</German> <French>Materiaux requis</French> <Italian>Materials needed</Italian> <Portuguese>Materials needed</Portuguese> </Key> <Key ID="STR_CRAFT_Button"> <Original>Craft !</Original> <English>Craft !</English> <German>Craft !</German> <French>Craft !</French> <Italian>Craft !</Italian> <Portuguese>Craft !</Portuguese> </Key> <Key ID="STR_PM_NoMaterial"> <Original>You do not have all the required materials !</Original> <English>You do not have all the required materials !</English> <German>You do not have all the required materials !</German> <French>Vous n'avez pas tous les matériaux requis !</French> <Italian>You do not have all the required materials !</Italian> <Portuguese>You do not have all the required materials !</Portuguese> </Key> <Key ID="STR_CRAFT_Process"> <Original>You have crafted : %1</Original> <English>You have crafted : %1</English> <German>You have crafted : %1</German> <French>Vous avez crafté : %1</French> <Italian>You have crafted : %1</Italian> <Portuguese>You have crafted : %1</Portuguese> </Key> </Package> Et ceci dans le package "Player_Menu" : <Key ID="STR_PM_Craft"> <Original>Craft</Original> <English>Craft</English> <German>Craft</German> <French>Craft</French> <Italian>Craft</Italian> <Portuguese>Craft</Portuguese> </Key> • Dans le dossier "dialog" créer un fichier nommé "craft.hpp" : /* File: craft.hpp Description: Crafting System Created by EdgeKiller */ class Life_craft { idd = 666; name= "life_craft"; movingEnable = false; enableSimulation = true; onLoad = "[] spawn life_fnc_craft"; class controlsBackground { class Life_RscTitleBackground:Life_RscText { colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"}; idc = -1; x = 0.1; y = 0.2; w = 0.8; h = (1 / 25); }; class MainBackground:Life_RscText { colorBackground[] = {0, 0, 0, 0.7}; idc = -1; x = 0.1; y = 0.2 + (11 / 250); w = 0.8; h = 0.6 - (22 / 250); }; }; class controls { class Title : Life_RscTitle { colorBackground[] = {0, 0, 0, 0}; idc = 667; text = "$STR_CRAFT_Title"; x = 0.1; y = 0.2; w = 0.6; h = (1 / 25); }; class craftListHeader : Life_RscText { idc = 668; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5}; text = "$STR_PM_CraftStats"; sizeEx = 0.04; x = 0.105; y = 0.26; w = 0.275; h = 0.04; }; class craftList : life_RscListBox { idc = 669; sizeEx = 0.030; onLBSelChanged = "[] spawn life_fnc_craft_update"; x = 0.105; y = 0.31; w = 0.275; h = 0.44; }; class materialListHeader : Life_RscText { idc = 670; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5}; text = "$STR_PM_CraftMaterials"; sizeEx = 0.04; x = 0.395; y = 0.26; w = 0.275; h = 0.04; }; class materialList : Life_RscControlsGroup { idc = 671; w = 0.275; h = 0.44; x = 0.395; y = 0.30; class Controls { class mats : Life_RscStructuredText { idc = 672; sizeEx = 0.020; text = ""; x = 0; y = 0; w = 0.27; h = 0.44; }; }; }; class ButtonCraft : Life_RscButtonMenu { idc = 672; text = "$STR_CRAFT_Button"; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5}; onButtonClick = "if(!life_is_processing) then {[] spawn life_fnc_craftAction};"; x = 0.69; y = 0.26; w = (6.25 / 40); h = (1 / 25); }; class CloseButtonKey : Life_RscButtonMenu { idc = -1; text = "$STR_Global_Close"; onButtonClick = "closeDialog 0;"; x = 0.1; y = 0.8 - (1 / 25); w = (6.25 / 40); h = (1 / 25); }; }; }; • Dans le dossier "core/actions", créer un fichier nommé "fn_craftAction.sqf" : /* File: fn_craftAction.sqf Author: EdgeKiller Description: Master handling for crafting an item. */ private["_dialog","_item","_itemInfo","_oldItem","_newItem","_upp","_itemName","_ui","_progress","_pgText","_cP","_allMaterial","_matsNeed","_invSize","_handledItem"]; disableSerialization; _dialog = findDisplay 666; if((lbCurSel 669) == -1) exitWith {hint localize "STR_ISTR_SelectItemFirst";}; _item = lbData[669,(lbCurSel 669)]; _allMaterial = true; _matsNeed = 0; if(!(player canAdd _item)) exitWith {hint localize "STR_NOTF_NoRoom";}; _config = ["weapon"] call life_fnc_craftCfg; { if(_item == _x select 0)then { _matsNeed = _x select 1; _invSize = count _matsNeed; for [{_i = 0},{_i < _invSize - 1},{_i = _i + 2}] do { _str = [_matsNeed select _i] call life_fnc_varToStr; _matsNum = _matsNeed select _i+1; if((missionNamespace getVariable (_matsNeed select _i)) < _matsNum) exitWith {_allMaterial = false;}; }; }; } foreach (_config select 1); if(!_allMaterial) exitWith {hint localize "STR_PM_NoMaterial";}; //Error checking if((count _matsNeed) == 0) exitWith {}; //Setup vars. _oldItem = _matsNeed; _newItem = _item; _itemInfo = [_newItem] call life_fnc_fetchCfgDetails; _itemName = _itemInfo select 1; _upp = format["Crafting %1",_itemName]; //Some more checks if((count _oldItem) == 0) exitWith {}; closeDialog 0; //Setup our progress bar. 5 cutRsc ["life_progress","PLAIN"]; _ui = uiNameSpace getVariable "life_progress"; _progress = _ui displayCtrl 38201; _pgText = _ui displayCtrl 38202; _pgText ctrlSetText format["%2 (1%1)...","%",_upp]; _progress progressSetPosition 0.01; _cP = 0.01; _removeItemSuccess = true; _invSize = count _oldItem; for [{_i = 0},{_i < _invSize - 1},{_i = _i + 2}] do { _handledItem = [_oldItem select _i,1] call life_fnc_varHandle; if(!([false,_handledItem,_oldItem select _i+1] call life_fnc_handleInv)) exitWith {_removeItemSuccess = false;}; }; if(!_removeItemSuccess) exitWith {5 cutText ["","PLAIN"]; life_is_processing = false;}; [] call life_fnc_p_updateMenu; life_is_processing = true; while{true} do { sleep 0.3; _cP = _cP + 0.01; _progress progressSetPosition _cP; _pgText ctrlSetText format["%3 (%1%2)...",round(_cP * 100),"%",_upp]; if(_cP >= 1) exitWith {}; }; _invSize = count _oldItem; if(!(player addItem _item)) exitWith { 5 cutText ["","PLAIN"]; for [{_i = 0},{_i < _invSize - 1},{_i = _i + 2}] do { _handledItem = [_oldItem select _i,1] call life_fnc_varHandle; [true,_handledItem,_oldItem select _i+1] call life_fnc_handleInv; }; life_is_processing = false; }; 5 cutText ["","PLAIN"]; titleText[format[localize "STR_CRAFT_Process",_itemName],"PLAIN"]; life_is_processing = false; • Dans le dossier "core/pmenu", créer un fichier nommé "fn_craft.sqf" : /* File: fn_craft.sqf Description: Crafting System Created by EdgeKiller Coder: EdgeKiller */ private["_dialog","_inv","_config","_itemInfo"]; //Declare all private variables if(!dialog) then { //Verify if the window is open createDialog "Life_craft"; }; disableSerialization; //Disable Serialization if(life_is_processing) exitWith{ closeDialog 2001; closeDialog 0; }; _dialog = findDisplay 666; //find the craft dialog/window _inv = _dialog displayCtrl 669; //find the listbox of items can be created lbClear _inv; //clear the listbox _config = ["weapon"] call life_fnc_craftCfg; { _itemInfo = [_x select 0] call life_fnc_fetchCfgDetails; _inv lbAdd format["%1",_itemInfo select 1]; //add a gun to the listbox _inv lbSetData[(lbSize _inv)-1,_itemInfo select 0]; //set the data of the gun _inv lbSetPicture[(lbSize _inv)-1,_itemInfo select 2]; } foreach (_config select 1); • Dans le dossier "core/pmenu", créer un fichier nommé "fn_craft_update.sqf" : /* File: fn_craft_update.sqf Description: Crafting System Created by EdgeKiller Coder: EdgeKiller */ private["_dialog","_inv","_mats","_item","_struct","_str","_invSize","_matsNeed","_matsNum","_config"]; //Declare all private variables disableSerialization; //Disable Serialization _dialog = findDisplay 666; //find the craft dialog/window _inv = _dialog displayCtrl 669; //find the listbox of items can be created _mats = _dialog displayCtrl 672; _struct = ""; if((lbCurSel 669) == -1) exitWith {hint localize "STR_ISTR_SelectItemFirst";}; _item = lbData[669,(lbCurSel 669)]; _config = ["weapon"] call life_fnc_craftCfg; { if(_item == _x select 0)then { _matsNeed = _x select 1; _invSize = count _matsNeed; for [{_i = 0},{_i < _invSize - 1},{_i = _i + 2}] do { _str = [_matsNeed select _i] call life_fnc_varToStr; _matsNum = _matsNeed select _i+1; _struct = _struct + format["%1x %2<br/>",_matsNum,_str]; }; }; } foreach (_config select 1); if(_struct == "") then { _struct = "No material needed"; }; _mats ctrlSetStructuredText parseText format[" <t size='0.8px'> %1 </t> ",_struct]; • Pour finir dans le dossier "core/config", créer un fichier "fn_craftCfg.sqf" : #include <macro.h> /* File: fn_craftCfg.sqf Author: EdgeKiller Description: Master configuration file for the crafting menu. */ private["_craft"]; _craft = [_this,0,"",[""]] call BIS_fnc_param; if(_craft == "") exitWith {closeDialog 0}; //Bad shop type passed. switch(_craft) do { case "weapon": { switch(true) do { default { ["Weapons", [ //[Object classname, [item #1,quantity item #1,item #2,quantity item #2]],] ["hgun_P07_F", ["life_inv_goldbar",2,"life_inv_copperr",1]], ["SMG_01_F", ["life_inv_goldbar",6,"life_inv_copperr",3,"life_inv_ironr",3,"life_inv_diamondr",1]] ] ]; }; }; }; }; Il s'agit du fichier du config, qui comprend donc les crafts, le script fonctionne pour les armes/habits/accessoires, tous les items de Arma 3. Il y a deux exmples de craft, je pense qu'il est assez facil de comprendre comment ca marche, donc je ne vais pas vous l'expliquer ! Crédits : EdgeKiller Si vous utilisez ce système, merci de mettre les crédits ENJOY !
×
×
  • Créer...