Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Leepo S
- Membre
- Membre
- 36 messages
- LocationIsland Dream
- @Mention
- Posté 22 mai 2015 - 17h12
- Salut,
- Bon, je vais vous expliquer, ou plutôt convertir un script version 3.1.4.8 en 4.0 concernant l'ajout des Opfor sur Altis, ce qui n'est pas compliqué.
- ( Je précise que c'est la 4.0 de Itsyuka et non de TONIC, évitez de faire du copier coller, essayer de comprendre, et surtout suivre)
- Dans votre dossier @extDB/extDB/db_custom > altis-life-rpg-4
- (HORS MISSION, HORS LIFE SERVER)
- Modification :
- [playerInfoInsert]
- ;;
- SQL1_1 = INSERT INTO players
- ;; 1 2 3 4 5 6 7 8 9 10 11 12 13
- SQL1_2 = (playerid, name, cash, bankacc, aliases, cop_licenses, med_licenses, adac_licenses, civ_licenses, civ_gear, cop_gear, med_gear, adac_gear)
- SQL1_3 = VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?);
- SQL1_INPUTS = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
- Number of Inputs = 13
- ;;______________________________________________________________
- A rajouter :
- [playerEastInfo]
- ;;
- 1 2 3 4 5 6 7 8 9
- SQL1_1 = SELECT playerid, name, cash, bankacc, adminlevel, donatorlvl, adac_licenses, adaclevel, adac_gear FROM players WHERE playerid=?;
- SQL1_INPUTS = 1
- Number of Inputs = 1
- OUTPUT = 1-String, 2-String, 3, 4, 5-String, 6-String, 7-AltisLifeRPG_Array, 8-String, 9-AltisLifeRPG_Array
- ;;______________________________________________________________
- [playerUpdateAdacLicense]
- ;;
- SQL1_1 = UPDATE players
- SQL1_2 = SET adac_licenses=? WHERE playerid=?;
- SQL1_INPUTS = 1-AltisLifeRPG_Array, 2
- Number of Inputs = 2
- ;;______________________________________________________________
- [playerUpdateAdacGear]
- ;;
- SQL1_1 = UPDATE players
- SQL1_2 = SET adac_gear=? WHERE playerid=?;
- SQL1_INPUTS = 1-AltisLifeRPG_Array, 2
- Number of Inputs = 2
- ;;______________________________________________________________
- [playerAdacUpdate]
- ;;
- SQL1_1 = UPDATE players
- ;; 1 2 3 4 5 6
- SQL1_2 = SET name=?, cash=?, bankacc=?, adac_licenses=?, adac_gear=? WHERE playerid=?;
- SQL1_INPUTS = 1, 2, 3, 4-AltisLifeRPG_Array, 5-AltisLifeRPG_Array, 6
- Number of Inputs = 6
- ;;______________________________________________________________
- Dans votre base de donnée, Faites une requête SQL dans votre Table Player
- ALTER TABLE `players` ADD (
- `adac_licenses` TEXT NULL DEFAULT NULL
- );
- ALTER TABLE `players` ADD (
- `adac_gear` TEXT NOT NULL
- );
- ALTER TABLE `players` ADD (
- `adaclevel` enum('0','1','2','3','4','5') NOT NULL DEFAULT '0'
- );
- Ce qui va rajouter 3 colonnes, adac_licenses, adac_gear, adaclevel.
- MISSION : Créer un Dossier adac dans votre dossier Core
- Dans ce dossier nous allons créer 3 Fichiers
- fn_adacLoadout.sqf
- /*
- File: fn_adacLoadout.sqf
- Author: Bryan "Tonic" Boardwine
- Edited: Itsyuka
- Description:
- Loads the ADAC out with the default gear.
- */
- private["_handle"];
- _handle = [] spawn life_fnc_stripDownPlayer;
- waitUntil {scriptDone _handle};
- //Load player with default adac gear.
- player addUniform "U_Rangemaster";
- /* ITEMS */
- player addItem "ItemMap";
- player assignItem "ItemMap";
- player addItem "ItemCompass";
- player assignItem "ItemCompass";
- player addItem "ItemWatch";
- player assignItem "ItemWatch";
- player addItem "ItemGPS";
- player assignItem "ItemGPS";
- player addItem "ItemRadio";
- player assignItem "ItemRadio";
- [] call life_fnc_saveGear;
- fn_adacVInteractionMenu.sqf
- #include <macro.h>
- /*
- File: fn_copInteractionMenu.sqf
- Author: Bryan "Tonic" Boardwine
- Description:
- Replaces the mass addactions for various cop actions towards another player.
- */
- #define Btn1 37450
- #define Btn2 37451
- #define Btn3 37452
- #define Btn4 37453
- #define Btn5 37454
- #define Btn6 37455
- #define Btn7 37456
- #define Btn8 37457
- #define Title 37401
- private["_display","_curTarget","_Btn1","_Btn2","_Btn3","_Btn4","_Btn5","_Btn6","_Btn7"];
- if(!dialog) then {
- createDialog "pInteraction_Menu";
- };
- disableSerialization;
- _curTarget = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param;
- if(isNull _curTarget) exitWith {closeDialog 0;}; //Bad target
- if(_curTarget isKindOf "House_F") exitWith {
- if((nearestObject [[16019.5,16952.9,0],"Land_Dome_Big_F"]) == _curTarget OR (nearestObject [[16019.5,16952.9,0],"Land_Research_house_V1_F"]) == _curTarget) then {
- _display = findDisplay 37400;
- _Btn1 = _display displayCtrl Btn1;
- _Btn2 = _display displayCtrl Btn2;
- _Btn3 = _display displayCtrl Btn3;
- _Btn4 = _display displayCtrl Btn4;
- _Btn5 = _display displayCtrl Btn5;
- _Btn6 = _display displayCtrl Btn6;
- _Btn7 = _display displayCtrl Btn7;
- life_pInact_curTarget = _curTarget;
- _Btn1 ctrlSetText localize "STR_pInAct_Repair";
- _Btn1 buttonSetAction "[life_pInact_curTarget] spawn life_fnc_repairDoor;";
- _Btn2 ctrlSetText localize "STR_pInAct_CloseOpen";
- _Btn2 buttonSetAction "[life_pInact_curTarget] call life_fnc_doorAnimate;";
- _Btn3 ctrlShow false;
- _Btn4 ctrlShow false;
- _Btn5 ctrlShow false;
- _Btn6 ctrlShow false;
- _Btn7 ctrlShow false;
- } else {
- closeDialog 0;
- };
- };
- if(!isPlayer _curTarget && side _curTarget == civilian) exitWith {closeDialog 0;}; //Bad side check?
- _display = findDisplay 37400;
- _Btn1 = _display displayCtrl Btn1;
- _Btn2 = _display displayCtrl Btn2;
- _Btn3 = _display displayCtrl Btn3;
- _Btn4 = _display displayCtrl Btn4;
- _Btn5 = _display displayCtrl Btn5;
- _Btn6 = _display displayCtrl Btn6;
- _Btn7 = _display displayCtrl Btn7;
- life_pInact_curTarget = _curTarget;
- //Set Unrestrain Button
- _Btn1 ctrlSetText localize "STR_pInAct_Unrestrain";
- _Btn1 buttonSetAction "[life_pInact_curTarget] call life_fnc_unrestrain; closeDialog 0;";
- //Set Search Button
- _Btn2 ctrlSetText localize "STR_pInAct_SearchPlayer";
- _Btn2 buttonSetAction "[life_pInact_curTarget] spawn life_fnc_searchAction; closeDialog 0;";
- //Set Escort Button
- if((_curTarget getVariable["Escorting",false])) then {
- _Btn3 ctrlSetText localize "STR_pInAct_StopEscort";
- _Btn3 buttonSetAction "[life_pInact_curTarget] call life_fnc_stopEscorting; [life_pInact_curTarget] call life_fnc_copInteractionMenu;";
- } else {
- _Btn3 ctrlSetText localize "STR_pInAct_Escort";
- _Btn3 buttonSetAction "[life_pInact_curTarget] call life_fnc_escortAction; closeDialog 0;";
- };
- _Btn4 ctrlSetText localize "STR_pInAct_PutInCar";
- _Btn4 buttonSetAction "[life_pInact_curTarget] call life_fnc_putInCar;";
- fn_restrain.sqf
- #include <macro.h>
- /*
- File: fn_restrain.sqf
- Author: Bryan "Tonic" Boardwine
- Description:
- Retrains the client.
- */
- private["_adac","_player"];
- _adac = [_this,0,Objnull,[Objnull]] call BIS_fnc_param;
- _player = player;
- if(isNull _adac) exitWith {};
- //Monitor excessive restrainment
- [] spawn {
- private "_time";
- while {true} do {
- _time = time;
- waitUntil {(time - _time) > (5 * 60)};
- if(!(player GVAR ["restrained",FALSE])) exitWith {};
- if(!([east,getPos player,30] call life_fnc_nearUnits) && (player GVAR ["restrained",FALSE]) && vehicle player == player) exitWith {
- player SVAR ["restrained",FALSE,TRUE];
- player SVAR ["Escorting",FALSE,TRUE];
- player SVAR ["transporting",false,true];
- detach player;
- titleText[localize "STR_Cop_ExcessiveRestrain","PLAIN"];
- };
- };
- };
- if((player GVAR["surrender",FALSE])) then { player SVAR["surrender",FALSE,TRUE]; player switchMove ""; };
- titleText[format[localize "STR_Cop_Retrained",_adac GVAR ["realname",name _adac]],"PLAIN"];
- while {player GVAR "restrained"} do {
- if(vehicle player == player) then {
- player playMove "AmovPercMstpSnonWnonDnon_Ease";
- };
- _state = vehicle player;
- waitUntil {animationState player != "AmovPercMstpSnonWnonDnon_Ease" || !(player GVAR "restrained") || vehicle player != _state};
- if(!alive player) exitWith {
- player SVAR ["restrained",false,true];
- player SVAR ["Escorting",false,true];
- player SVAR ["transporting",false,true];
- detach _player;
- };
- if(!alive _adac) exitWith {
- player SVAR ["Escorting",false,true];
- detach player;
- };
- if(vehicle player != player) then {
- //disableUserInput true;
- if(driver (vehicle player) == player) then {player action["eject",vehicle player];};
- };
- };
- //disableUserInput false;
- if(alive player) then {
- player switchMove "AmovPercMstpSlowWrflDnon_SaluteIn";
- player SVAR ["Escorting",false,true];
- player SVAR ["transporting",false,true];
- detach player;
- };
- Informations: n'oubliez pas d'insérer le fichier macro.h ( si vous comprenez pas voici ci dessous )
- macro.h
- #define SYSTEM_TAG "life"
- #define ITEM_TAG format["%1%2",SYSTEM_TAG,"item_"]
- #define SUB(var1,var2) var1 = var1 - var2
- #define ADD(var1,var2) var1 = var1 + var2
- #define SEL(ARRAY,INDEX) (ARRAY select INDEX)
- #define CASH life_cash
- #define BANK life_atmbank
- #define GANG_FUNDS grpPlayer getVariable ["gang_bank",0];
- //Namespace Macros
- #define SVAR_MNS missionNamespace setVariable
- #define SVAR_UINS uiNamespace setVariable
- #define SVAR_PNS parsingNamespace setVariable
- #define GVAR_MNS missionNamespace getVariable
- #define GVAR_UINS uiNamespace getVariable
- //Scripting Macros
- #define CONST(var1,var2) var1 = compileFinal (if(typeName var2 == "STRING") then {var2} else {str(var2)})
- #define CONSTVAR(var) var = compileFinal (if(typeName var == "STRING") then {var} else {str(var)})
- #define FETCH_CONST(var) (call var)
- #define PVAR_ALL(var) publicVariable var
- #define PVAR_SERV(var) publicVariableServer var
- #define PVAR_ID(var,id) id publicVariableClient var
- #define GVAR getVariable
- #define SVAR setVariable
- #define RIFLE primaryWeapon player
- #define RIFLE_ITEMS primaryWeaponItems player
- #define PISTOL handgunWeapon player
- #define PISTOL_ITEMS handgunItems player
- #define LAUNCHER secondaryWeapon player
- #define EXTDB_FAILED(MESSAGE) \
- life_server_extDB_notLoaded = [true,##MESSAGE]; \
- PVAR_ALL("life_server_extDB_notLoaded"); \
- diag_log MESSAGE;
- //Display Macros
- #define CONTROL(disp,ctrl) ((findDisplay ##disp) displayCtrl ##ctrl)
- #define CONTROL_DATA(ctrl) (lbData[ctrl,lbCurSel ctrl])
- #define CONTROL_DATAI(ctrl,index) ctrl lbData index
- //System Macros
- #define grpPlayer group player
- #define steamid getPlayerUID player
- #define LICENSE_VARNAME(varName,flag) format["license_%1_%2",flag,M_CONFIG(getText,"Licenses",varName,"variable")]
- #define LICENSE_VALUE(varName,flag) GVAR_MNS [LICENSE_VARNAME(varName,flag),false]
- #define ITEM_VARNAME(varName) format["life_inv_%1",M_CONFIG(getText,"VirtualItems",varName,"variable")]
- #define ITEM_VALUE(varName) GVAR_MNS [ITEM_VARNAME(varName),0]
- #define ITEM_ILLEGAL(varName) M_CONFIG(getNumber,"VirtualItems",varName,"illegal")
- #define ITEM_SELLPRICE(varName) M_CONFIG(getNumber,"VirtualItems",varName,"sellPrice")
- #define ITEM_BUYPRICE(varName) M_CONFIG(getNumber,"VirtualItems",varName,"buyPrice")
- #define ITEM_NAME(varName) M_CONFIG(getText,"VirtualItems",varName,"displayName")
- //Condition Macros
- #define EQUAL(condition1,condition2) condition1 isEqualTo condition2
- #define KINDOF_ARRAY(a,b) [##a,##b] call {_veh = _this select 0;_types = _this select 1;_res = false; {if (_veh isKindOf _x) exitwith { _res = true };} forEach _types;_res}
- //Config Macros
- #define FETCH_CONFIG(TYPE,CFG,SECTION,CLASS,ENTRY) TYPE(configFile >> CFG >> SECTION >> CLASS >> ENTRY)
- #define FETCH_CONFIG2(TYPE,CFG,CLASS,ENTRY) TYPE(configFile >> CFG >> CLASS >> ENTRY)
- #define FETCH_CONFIG3(TYPE,CFG,SECTION,CLASS,ENTRY,SUB) TYPE(configFile >> CFG >> SECTION >> CLASS >> ENTRY >> SUB)
- #define FETCH_CONFIG4(TYPE,CFG,SECTION,CLASS,ENTRY,SUB,SUB2) TYPE(configFile >> CFG >> SECTION >> CLASS >> ENTRY >> SUB >> SUB2)
- #define M_CONFIG(TYPE,CFG,CLASS,ENTRY) TYPE(missionConfigFile >> CFG >> CLASS >> ENTRY)
- #define BASE_CONFIG(CFG,CLASS) inheritsFrom(configFile >> CFG >> CLASS)
- #define LIFE_SETTINGS(TYPE,SETTING) TYPE(missionConfigFile >> "Life_Settings" >> SETTING)
- #define CONFIG_VEHICLES "CfgVehicles"
- #define CONFIG_WEAPONS "CfgWeapons"
- #define CONFIG_MAGAZINES "CfgMagazines"
- #define CONFIG_GLASSES "CfgGlasses"
- Dans votre dossier Core, nous allons créer fn_initAdac.sqf qui sera avec nos amis les initcop, initmedic etc...
- #include <macro.h>
- /*
- File: fn_initAdac.sqf
- Author: Bryan "Tonic" Boardwine
- Description:
- Initializes the PMC
- */
- private["_end"];
- player addRating 99999999;
- waitUntil {!(isNull (findDisplay 46))};
- if((FETCH_CONST(life_adacLevel)) < 1) exitWith {
- ["Notwhitelisted",FALSE,TRUE] call BIS_fnc_endMission;
- sleep 35;
- };
- [] call life_fnc_spawnMenu;
- waitUntil{!isNull (findDisplay 38500)}; //Wait for the spawn selection to be open.
- waitUntil{isNull (findDisplay 38500)}; //Wait for the spawn selection to be done.
- Allez dans votre fichier functions.h
- class Master_Directory
- {
- file = "core";
- class setupActions {};
- class setupEVH {};
- class initCiv {};
- class initCop {};
- class initMedic {};
- class initAdac {}; //Ajout
- class welcomeNotification {};
- };
- Et créer une nouvelle Class
- class Adac
- {
- file = "core\adac";
- class adacLoadout {};
- class adacVInteractionMenu {};
- class restrain {};
- };
- Maintenant nous allons faire quelques rajouts de fichier déjà existant : ( suivez bien )
- fn_keyHandler.sqf
- if(_shift && playerSide == east && !isNull cursorTarget && cursorTarget isKindOf "Man" && (isPlayer cursorTarget) && (side cursorTarget == civilian) && alive cursorTarget && cursorTarget distance player < 3.5 && !(cursorTarget GVAR "Escorting") && !(cursorTarget GVAR "restrained") && speed cursorTarget < 1) then
- {
- [] call life_fnc_restrainAction;
- };
- Comme ceci :
- //Restraining or robbing (Shift + R)
- case 19:
- {
- if(_shift) then {_handled = true;};
- if(_shift && playerSide == west && !isNull cursorTarget && cursorTarget isKindOf "Man" && (isPlayer cursorTarget) && (side cursorTarget == civilian) && alive cursorTarget && cursorTarget distance player < 3.5 && !(cursorTarget GVAR "Escorting") && !(cursorTarget GVAR "restrained") && speed cursorTarget < 1) then
- {
- [] call life_fnc_restrainAction;
- };
- if(_shift && playerSide == east && !isNull cursorTarget && cursorTarget isKindOf "Man" && (isPlayer cursorTarget) && (side cursorTarget == civilian) && alive cursorTarget && cursorTarget distance player < 3.5 && !(cursorTarget GVAR "Escorting") && !(cursorTarget GVAR "restrained") && speed cursorTarget < 1) then
- {
- [] call life_fnc_restrainAction;
- };
- //Robbing
- if(_shift && playerSide == civilian && !isNull cursorTarget && cursorTarget isKindOf "Man" && isPlayer cursorTarget && alive cursorTarget && cursorTarget distance player < 4 && speed cursorTarget < 1) then
- {
- if((animationState cursorTarget) != "Incapacitated" && (currentWeapon player == RIFLE OR currentWeapon player == PISTOL) && currentWeapon player != "" && !life_knockout && !(player GVAR["restrained",false]) && !life_istazed && !(player GVAR["surrender",false])) then
- {
- [cursorTarget] spawn life_fnc_knockoutAction;
- };
- _handled = true;
- };
- };
- Dans votre dossier core/ init.sqf
- Rajouter :
- case east:
- {
- //Initialize ADAC
- _handle = [] spawn life_fnc_initAdac;
- waitUntil {scriptDone _handle};
- };
- En dessous des autres copains. Voir ci dessous
- switch (playerSide) do {
- case west: {
- _handle = [] spawn life_fnc_initCop;
- waitUntil {scriptDone _handle};
- };
- case civilian: {
- //Initialize Civilian Settings
- _handle = [] spawn life_fnc_initCiv;
- waitUntil {scriptDone _handle};
- };
- case independent: {
- //Initialize Medics and blah
- _handle = [] spawn life_fnc_initMedic;
- waitUntil {scriptDone _handle};
- };
- case east:
- {
- //Initialize ADAC
- _handle = [] spawn life_fnc_initAdac;
- waitUntil {scriptDone _handle};
- };
- };
- Dans votre dossier functions\fn_loadGear.sqf
- Rajouter
- case east: {
- [] call life_fnc_adacLoadout;
- };
- Dans votre dossier functions\fn_safeGear.sqf
- Ligne 20 à remplacer
- if(playerSide == west || playerSide == civilian || playerSide == east && {EQUAL(LIFE_SETTINGS(getNumber,"save_civ_weapons"),1)}) then {
- Dans votre dossier core/Configuration.sqf
- (à vous de définir ce que vous souhaitez comme argent de départ et le salaire )
- case east:
- {
- life_atmcash = 50000; //Starting Bank Money
- life_paycheck = 5000; //Paycheck Amount
- };
- Dans votre dossier shops\fn_atmMenu.sqf
- case east: {_type = "Adac"};
- Dans votre dossier pmenu\fn_cellphone.sqf
- ( si vous utiliser le smarphone extdb vous ouvrez smartphone.sqf c'est la même chose )
- case east: {_type = "Adac"};
- Dans votre dossier medical\fn_respawned.sqf
- case east: {
- _handle = [] spawn life_fnc_adacLoadout;
- };
- Dans votre fichier description.ext qui se trouve dans la racine de votre mission.
- Rajoutez
- class AdacMessage
- {
- title = "ADAC Message";
- iconPicture = "icons\messagenew.paa";
- description = "%1";
- duration = 10;
- priority = 5;
- };
- Dans votre fichier Dialog\cell_phone.hpp
- Créer votre boutton Adc Request
- class AdacRequest : life_RscButtonMenu
- {
- idc = 3023;
- text = "$STR_CELL_AdacRequest";
- 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 = "[] call TON_fnc_cell_adacrequest";
- x = 0.32;
- y = 0.45;
- w = 0.2;
- h = (1 / 25);
- };
- Dans votre fichier stringable.xml qui se trouve dans la racine de votre mission.
- Rajoutez dans la bonne section "STR_CELL_...."
- <Key ID="STR_CELL_AdacRequest">
- <Original>Requête Adac</Original>
- </Key>
- Dans votre dossier dialog\function\fn_spawnPointCfg.sqf
- Rajoutez un point de spawn pour vos Opfor
- case east:
- {
- _return = [
- ["adac_spawn1","ADAC Base","\a3\ui_f\data\map\MapControl\watertower_ca.paa"]
- ];
- };
- Ce qui veut dire quoi ? Qu'il faudra créer un marqueur sur votre map qui s'appellera "adac_spawn1"
- Dans votre dossier core\session\fn_updateRequest.sqf
- Ligne 9
- _flag = switch(playerSide) do {case west: {"cop"}; case civilian: {"civ"}; case independent: {"med"}; case east: {"adac"};};
- Dans votre dossier core\session\fn_updatePartial.sqf
- Ligne 14
- _flag = switch(playerSide) do {case west: {"cop"}; case civilian: {"civ"}; case independent: {"med"}; case east: {"adac"};};
- Dans votre dossier core\session\fn_requestReceived.sqf
- Ligne 49
- //Parse side specific information.
- switch(playerSide) do {
- case west: {
- CONST(life_coplevel, parseNumber(SEL(_this,7)));
- CONST(life_medicLevel,0);
- CONST(life_adaclevel,0);
- life_blacklisted = SEL(_this,9);
- };
- case civilian: {
- life_is_arrested = SEL(_this,7);
- CONST(life_coplevel, 0);
- CONST(life_medicLevel, 0);
- CONST(life_adaclevel,0);
- life_houses = SEL(_this,9);
- {
- _house = nearestBuilding (call compile format["%1", SEL(_x,0)]);
- life_vehicles pushBack _house;
- } foreach life_houses;
- life_gangData = SEL(_this,10);
- if(!(EQUAL(count life_gangData,0))) then {
- [] spawn life_fnc_initGang;
- };
- [] spawn life_fnc_initHouses;
- };
- case independent: {
- CONST(life_medicLevel, parseNumber(SEL(_this,7)));
- CONST(life_coplevel,0);
- CONST(life_adaclevel,0);
- };
- case east: {
- CONST(life_adaclevel, parseNumber(SEL(_this,7)));
- CONST(life_coplevel,0);
- CONST(life_medicLevel,0);
- };
- };
- Dans votre dossier core\pmenu\ fn_p_openMenu.sqf
- case east:
- {
- ctrlShow[2011,false];
- };
- fn_p_udpdateMenu.sqf
- case east:{"adac"};
- Maintenant nous allons passer du coté Life Server.
- Dans votre init.sqf
- Après la ligne 137, rajoutez
- life_adaclevel = 0;
- Après la ligne 144, rajoutez
- life_radio_east = radioChannelCreate [[0, 0.95, 1, 0.8], "Side Channel", "%UNIT_NAME", []];
- Dans functions.sqf
- Ligne 197 environs
- //To ADAC
- TON_fnc_cell_adacrequest =
- compileFinal "
- private[""_msg"",""_to""];
- ctrlShow[3023,false];
- _msg = ctrlText 3003;
- _to = ""ADAC Units"";
- if(_msg == """") exitWith {hint ""You must enter a Message!"";ctrlShow[3023,true];};
- [[_msg,name player,6],""TON_fnc_clientMessage"",east,false] spawn life_fnc_MP;
- [] call life_fnc_cellphone;
- hint format[""You have sent a message to all ADAC Units."",_to,_msg];
- ctrlShow[3023,true];
- ";
- Plus bas
- publicVariable "TON_fnc_cell_adacrequest";
- Plus bas
- Rajoutez la case 6.
- case 6: {
- private[""_message""];
- _message = format[""!!!ADAC REQUEST: %1"",_msg];
- hint parseText format [""<t color='#FFCC00'><t size='2'><t align='center'>ADAC Request<br/><br/><t color='#33CC33'><t align='left'><t size='1'>To: <t color='#ffffff'>You<br/><t color='#33CC33'>From: <t color='#ffffff'>%1<br/><br/><t color='#33CC33'>Message:<br/><t color='#ffffff'>%2"",_from,_msg];
- [""TextMessage"",[format[""ADAC Request from %1"",_from]]] call bis_fnc_showNotification;
- };
- Maintenant vous allez aller dans votre dossier Functions\MySQL\fn_inserRequest.sqf
- Ligne 46 Replacez tous.
- //Prepare the query statement..
- _query = format["playerInfoInsert:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13",
- _uid,
- _name,
- _money,
- _bank,
- _alias,
- [], // Cop Licenses
- [], // Med Licenses
- [], // Adac Licenses
- [], // Civ Licenses
- [], // Civ Gear
- [], // Cop Gear
- [], // Med Gear
- [] // Adac Gear
- ];
- Dans votre dossier Functions\MySQL\fn_queryRequest.sqf
- En dessous des copains ligne 29
- case east: {_returnCount = 9; format["playerEastInfo:%1",_uid];};
- };
- Dans votre dossier Functions\MySQL\fn_updatePartial.sqf
- Dans case 2
- case east: {_query = format["playerUpdateAdacLicense:%1:%2",_value,_uid];};
- Dans case 3
- case east: {_query = format["playerUpdateAdacGear:%1:%2",_value,_uid];};
- Dans votre dossier Functions\MySQL\fn_updateRequest.sqf
- En dessous de la ligne 33
- case east: {_query = format["playerAdacUpdate:%1:%2:%3:%4:%6:%5",_name,_cash,_bank,_licenses,_uid,_gear];};
- Dans votre dossier Functions\Systems\fn_getVehicles.sqf
- case east: {"adac"};
- Dans votre dossier Functions\Systems\fn_VehicleCreate.sqf
- case east: {"adac"};
- Dans votre dossier Functions\Systems\fn_managesc.sqf
- case east:
- {
- if(_bool) then
- {
- life_radio_east radioChannelAdd [_unit];
- }
- else
- {
- life_radio_east radioChannelRemove [_unit];
- };
- };
- Voila c'est finis, maintenant il ne vous reste qu'a rajouter des Opfor avec l'éditeur 2D.
- 1432316587-opfor.jpg
- N'oubliez pas quand vous avez finis de rajouter vos Opfor enregistrez votre map puis remplacer la par l'ancienne dans la racine de votre Mission.
- Ps: Je répondrais aux questions, mais si vous suivez bien, vous n'aurez pas de problème.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement