<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Tutoriels]]></title><description><![CDATA[Tutoriels]]></description><link>https://melinyel.net/category/207</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 03:51:27 GMT</lastBuildDate><atom:link href="https://melinyel.net/category/207.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 01 Nov 2015 10:33:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Mettre du nitro]]></title><description><![CDATA[&lt;p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;text-align:center;"&gt;&lt;span style="font-family:georgia, serif;"&gt;&lt;span style="font-size:24px;"&gt;Mettre du nitro &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top:0px;margin-right:0px;margin-left:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;text-align:center;"&gt;&lt;span style="font-size:18px;"&gt;Adapter pour la version 3.1.4.8 (La dernière de itsyuka)&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;Pour commencer on va créée l'item "nitro" :&lt;/p&gt;&lt;p style="margin-top:0px;margin-right:0px;margin-left:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;Vous aller dans le fichier fn_VarHandle.sqf pour y rajoutez  dans la case 0 dans le switch&lt;/p&gt;&lt;pre class="ipsCode prettyprint"&gt;case 0:
{
switch (_mode) do
{
case 0:
{
switch (_var) do
{
case "nitro": {"life_inv_nitro"};
};
};&lt;/pre&gt;&lt;p&gt;&lt;span style="color:rgb(40,40,40);font-family:georgia, serif;line-height:22.4px;"&gt;Maintenant vous aller juste en bas dans case 1&lt;/span&gt;&lt;/p&gt;&lt;pre class="ipsCode prettyprint"&gt;case 1:
{
switch (_var) do
{
case "life_inv_nitro": {"nitro"};
};
};
};&lt;/pre&gt;&lt;p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;&lt;span style="font-family:georgia, serif;"&gt;Voila maintenant l'items créer on va le configurer pour ça il faut aller dans le fichier Config_Master.hpp&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top:0px;margin-right:0px;margin-left:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;&lt;span style="font-family:georgia, serif;"&gt;puis aller dans la class VirtuelItems &lt;/span&gt;&lt;/p&gt;&lt;pre class="ipsCode prettyprint"&gt;//Virtual Items
class VirtualItems {
VITEMMACRO(nitro,"Nitro",nitro,5,1500,0,-1,false,-1,"")
}; &lt;/pre&gt;&lt;p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;&lt;span style="font-family:georgia, serif;"&gt;Voila vous rajouter ça puis vous pouvez configurer le poids le prix ... &lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;&lt;span style="font-family:georgia, serif;"&gt;et pour terminer la config il faut aller dans le fichier fn_useItem.sqf&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top:0px;margin-right:0px;margin-left:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;&lt;span style="font-family:georgia, serif;"&gt;Vous rajouter ça a la fin avant Default &lt;/span&gt;  &lt;/p&gt;&lt;pre class="ipsCode prettyprint"&gt;case (EQUAL(_item,"nitro")): {
if(vehicle player != player) exitWith {hint "Nitro Activer"};
[] spawn life_fnc_nitroUse;
else {
hint format ["Il faut etre dans un vehicule pour utiliser %1",player ]
}
}; &lt;/pre&gt;&lt;p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;&lt;span style="font-family:georgia, serif;"&gt;Puis vous allez dans le fichier de configuration des touches fn_KeyHandler.sqf&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top:0px;margin-right:0px;margin-left:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;&lt;span style="font-family:georgia, serif;"&gt;vous rajouter ça ou vous voulez de façon logique bien sur ^^ &lt;/span&gt;&lt;/p&gt;&lt;pre class="ipsCode prettyprint"&gt;//N Touche Nitro
case 49:
if([false,"nitro",1] call life_fnc_handleInv) then
{
[] spawn life_fnc_nitroUse;	
}
}&lt;/pre&gt;&lt;p&gt;&lt;span style="color:rgb(40,40,40);font-family:georgia, serif;line-height:22.4px;"&gt;Pour finir vous créer un fichier fn_nitroUse.sqf dans \Altis-Life-master\extDB-Build\Altis_Life.Altis\core\items&lt;/span&gt;&lt;/p&gt;&lt;pre class="ipsCode prettyprint"&gt;/*fn_nitroUse.sqf
Adapter pour altis life par HamzaDams
By: Hellop 2008
Copyright: Released to the Public Domain.  It would be cool if you gave me credit in your mission if you use it.
Purpose: Simulate Nitrous Oxide speed-boost for vehicles.  Sets global variable on client computer, cli_nitroLock
so that the nitro can't be engaged more than once at at time.
Pre: 1. Global var: cli_nitroLock = true;
2. Player's vehicle has an action menu item enabled that runs this script. e.g. in the initline of a car/tank:
this addEventHandler ["getin", {
if ((_this select 1) == "driver") then {
actionIDNitro = _this select 0 addAction ["Nitro", "client\action\fn_nitroUse.sqf"];
};
}];
this addEventHandler ["getout", {_this select 0 removeAction actionIDNitro;}];
Post: cli_nitroLock is set to true;
Testing: 5 min. reverse doesn't work.  Would be nice if it worked dynamically from vehicle weight/maxspeed.
Air Vehicles not tested.
*/
private ["_obj", "_vel", "_tmrInterval", "_dir", "_maxSpeed"];
_actionID = _this select 2;
_obj = vehicle player;
//Tanks and stuff get less nitro.
_tmrInterval = .1;
_maxSpeed = 120;
_speedMultiplier = .4; //2 is good for cars, too much for tanks
_nitroDuration = 5;
if ((typeOf _obj) isKindOf "Car")  then {
_tmrInterval = .02;
_maxSpeed = 180;
_speedMultiplier = 1.5;
};
if ((typeOf _obj) isKindOf "Air") then {
_tmrInterval = .02;
_maxSpeed = 500;  //What is best val here?
_speedMultiplier = .3;
};
if ((typeOf _obj) isKindOf "Motorcycle") then {
_tmrInterval = .02;
_maxSpeed = 140;  //What is best val here?
_speedMultiplier = .2;
};
//Initialize vars;
_vel = 0;
_velX = 0;
_velY = 0;
_velZ =0;
_dir = 0;
_sinDir = 0;
_cosDir = 0;
_previousVel = velocity _obj;
_previousSpeed = speed _obj;
_curSpeed = 0;
if ((speed _obj) &lt;= 3) then {
player sideChat format ["Vous devez être en mouvement pour activer Nitro."];
}
else {
if (cli_nitroLock) then {
cli_nitroLock = false;
player sideChat format ["Nitro engagé."];
//player globalchat format["Time: %1, Vehicle Type: %2, MaxSpeed: %3", time, typeOf _obj, _maxSpeed];
_startTime = time;
_tmpSpeedMultiplier = _speedMultiplier;
while {(time - _startTime) &lt; _nitroDuration} do {
sleep _tmrInterval;
_vel = velocity _obj;
_curSpeed = (speed _obj);
if (((abs _curSpeed) - (abs _previousSpeed)) &gt; 30) then {_vel = _previousVel};  //To prevent getting thrown far in collisions
_velX = _vel select 0;
_velY = _vel select 1;
_velZ = _vel select 2;
_dir = getdir _obj;
//player globalChat format ["Speed: %1", speed _obj];
if ((speed _obj) &gt; _maxSpeed) then {_tmpSpeedMultiplier = 0} else {_tmpSpeedMultiplier = _speedMultiplier};
_sinDir = _tmpSpeedMultiplier*(sin _dir);
_cosDir = _tmpSpeedMultiplier*(cos _dir);
_obj setvelocity [_velX + _sinDir, _velY + _cosDir, _velZ -.1]; //Keep Z vector moving with gravity
_previousSpeed = _curSpeed;
_previousVel = _vel;
};
cli_nitroLock = true;
player sideChat format ["Test Nitro Fait ! Vel: %1. Dir: %2, Speed: %3", velocity _obj, direction _obj, speed _obj];
};
};&lt;/pre&gt;&lt;p&gt;&lt;span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;Voila j’espère ça marchera pour tout le monde et que j'ai été le plus claire ^^ Faite moi des retour&lt;/span&gt;&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1808/mettre-du-nitro</link><guid isPermaLink="true">https://melinyel.net/topic/1808/mettre-du-nitro</guid><dc:creator><![CDATA[hamzadams]]></dc:creator><pubDate>Sun, 01 Nov 2015 10:33:09 GMT</pubDate></item><item><title><![CDATA[Sauvegarder l'essence du véhicule dans la DB]]></title><description><![CDATA[&lt;p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;text-align:center;"&gt;&lt;span style="font-family:georgia, serif;"&gt;&lt;span style="font-size:24px;"&gt;Sauvegarder l'essence dans la DB&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;text-align:center;"&gt;Ce tutoriel fonctionne pour les version 3.1.x pour la version 4.0 je ferais un tuto quand j'aurai le temps&lt;/p&gt;&lt;p style="margin-top:0px;margin-right:0px;margin-left:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;&lt;span style="font-family:georgia, serif;"&gt;Ajouter une table sur votre base de donnée MySql&lt;/span&gt;&lt;/p&gt;&lt;pre class="ipsCode prettyprint"&gt;ALTER TABLE vehicles ADD fuel VARCHAR(16) NOT NULL DEFAULT '1'&lt;/pre&gt;&lt;p&gt;&lt;span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;Ensuite aller dans le fichier \extDB-Build\life_server\Functions\Systems\fn_cleanup.sqf&lt;/span&gt;&lt;/p&gt;&lt;pre class="ipsCode prettyprint"&gt;_query = format["UPDATE vehicles SET active='0', fuel='%3' WHERE pid='%1' AND plate='%2'",_uid,_plate,fuel _veh];&lt;/pre&gt;&lt;p&gt;&lt;span style="color:rgb(40,40,40);font-family:georgia, serif;line-height:22.4px;"&gt;il faut juste aller dans la variable "_query" et ajouter &lt;/span&gt;&lt;/p&gt;&lt;pre class="ipsCode prettyprint"&gt;fuel='%3' WHERE pid='%1' AND plate='%2'",_uid,_plate,fuel _veh&lt;/pre&gt;&lt;p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;&lt;span style="font-family:georgia, serif;"&gt;à coter de "active ='0"  &lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt; &lt;/p&gt;&lt;p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;&lt;span style="font-family:georgia, serif;"&gt;Maintenant vous aller dans le fichier &lt;/span&gt;fn_vehicleStore.sqf &lt;/p&gt;&lt;p style="margin-top:0px;margin-right:0px;margin-left:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;&lt;span style="font-family:georgia, serif;"&gt;Puis vous aller en bas de &lt;/span&gt;if(_impound) &lt;span style="font-family:georgia, serif;"&gt;et la vous aurai une variable qui s'appelle _query et vous modifier cette ligne de code&lt;/span&gt;&lt;/p&gt;&lt;pre class="ipsCode prettyprint"&gt;_query = format["UPDATE vehicles SET active='0', fuel='%3' WHERE pid='%1' AND plate='%2'",_uid,_plate, fuel _vehicle];&lt;/pre&gt;&lt;p&gt;&lt;span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;Maintenant vous rester dans le même fichier et en bas vers la ligne 52 pour mon cas il y'au une autre var _query vous la modifier puis vous mettez la même chose c'est à dire :&lt;/span&gt;&lt;/p&gt;&lt;pre class="ipsCode prettyprint"&gt;_query = format["UPDATE vehicles SET active='0', fuel='%3' WHERE pid='%1' AND plate='%2'",_uid,_plate, fuel _vehicle];&lt;/pre&gt;&lt;p style="margin:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;&lt;span style="font-family:georgia, serif;"&gt;Maintenant vous aller dans le fichier &lt;/span&gt;fn_spawnVehicle.sqf&lt;/p&gt;&lt;p style="margin-top:0px;margin-right:0px;margin-left:0px;padding:0px;color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;et vous faite la même procédure vous changer la variable _query par :&lt;/p&gt;&lt;pre class="ipsCode prettyprint"&gt;_query = format["SELECT id, side, classname, type, pid, alive, active, plate, color, fuel FROM vehicles WHERE id='%1' AND pid='%2'",_vid,_pid];&lt;/pre&gt;&lt;p&gt;&lt;span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;Puis juste en bas de cette var vous rajouter :&lt;/span&gt;&lt;/p&gt;&lt;pre class="ipsCode prettyprint"&gt;_fuel = parseNumber(_queryResult select 9);&lt;/pre&gt;&lt;p&gt;&lt;span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;puis enfin pour terminer vous ajouter ce code en bas de "_vehicle setDir _dir;"&lt;/span&gt;&lt;/p&gt;&lt;pre class="ipsCode prettyprint"&gt;_vehicle setFuel _fuel;&lt;/pre&gt;&lt;p&gt;&lt;span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;Ce qui donne :&lt;/span&gt;&lt;/p&gt;&lt;pre class="ipsCode prettyprint"&gt;if(typeName _sp == "STRING") then {
_vehicle = createVehicle[(_vInfo select 2),[0,0,999],[],0,"NONE"];
waitUntil {!isNil "_vehicle" &amp;&amp; {!isNull _vehicle}};
_vehicle allowDamage false;
_hs = nearestObjects[getMarkerPos _sp,["Land_Hospital_side2_F"],50] select 0;
_vehicle setPosATL (_hs modelToWorld [-0.4,-4,12.65]);
sleep 0.6;
} else {
_vehicle = createVehicle [(_vInfo select 2),_sp,[],0,"NONE"];
waitUntil {!isNil "_vehicle" &amp;&amp; {!isNull _vehicle}};
_vehicle allowDamage false;
_vehicle setPos _sp;
_vehicle setVectorUp (surfaceNormal _sp);
_vehicle setDir _dir;
_vehicle setFuel _fuel;&lt;/pre&gt;&lt;p&gt;&lt;span style="color:rgb(40,40,40);font-family:helvetica, arial, sans-serif;line-height:22.4px;"&gt;J’espère pas avoir fait d'erreur et sinon pour le version 4.0 je ferais le plutôt possible &lt;/span&gt;&lt;/p&gt;&lt;p&gt;Et enfaîte je suis de retour sur melinyel &lt;img alt=":D" src="emoticons/default_biggrin.png" title=":D"/&gt;&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1807/sauvegarder-lessence-du-véhicule-dans-la-db</link><guid isPermaLink="true">https://melinyel.net/topic/1807/sauvegarder-lessence-du-véhicule-dans-la-db</guid><dc:creator><![CDATA[hamzadams]]></dc:creator><pubDate>Sat, 31 Oct 2015 08:43:45 GMT</pubDate></item><item><title><![CDATA[[TUTO] Braquage de Station service]]></title><description><![CDATA[&lt;p&gt;Bonsoir à tous, comme je n'ai pas vu de tuto encore sur ca sur le forum, je me propose pour en faire un.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
Aller on commence. Je vous conseil de faire une sauvegarde avant de suivre ce tuto, on ne sait jamais, mieux vaut être prudent :&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Fichier qu'on va modifier : Mission.sqm, Functions.h&lt;/li&gt;
&lt;li&gt;Fichier qu'on va créer : fn_robShops.sqf dans MISSION\core\actions&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;br/&gt;
Tout d'abord allez dans la racine de votre mission &lt;strong&gt;MPMissions\racine&lt;/strong&gt; ouvrez votre fichier &lt;strong&gt;Function.h&lt;/strong&gt;, cherchez &lt;strong&gt;class Actions&lt;/strong&gt; et rajoutez a la suite :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
class Actions
{
file = "core\actions";
class buyLicense {};
class healHospital {};
class pushVehicle {};
class repairTruck {};
class serviceChopper {};
	...

	
	class sellLicense {};
	class robShops {}; //Rob Gas Station &amp;amp; Shops Script
	class takeOrgans {};

&lt;/pre&gt;
&lt;pre class="ipsCode prettyprint"&gt;
class robShops {}; //Voler station service
&lt;/pre&gt;
&lt;p&gt;Une fois cela modifié allez dans &lt;strong&gt;core\actions&lt;/strong&gt; et créez un fichier &lt;strong&gt;fn_robShops.sqf&lt;/strong&gt; et ajoutez ceci dedans :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
/*
file: fn_robShops.sqf
Author: MrKraken
Made from MrKrakens bare-bones shop robbing tutorial on www.altisliferpg.com forums
Description:
Executes the rob shob action!
Idea developed by PEpwnzya v1.0
*/
private["_robber","_shop","_kassa","_ui","_progress","_pgText","_cP","_rip","_pos"];
_shop = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param; //The object that has the action attached to it is _this. ,0, is the index of object, ObjNull is the default should there be nothing in the parameter or it's broken
_robber = [_this,1,ObjNull,[ObjNull]] call BIS_fnc_param; //Can you guess? Alright, it's the player, or the "caller". The object is 0, the person activating the object is 1
//_kassa = 1000; //The amount the shop has to rob, you could make this a parameter of the call (https://community.bistudio.com/wiki/addAction). Give it a try and post below
_action = [_this,2] call BIS_fnc_param;//Action name
if(side _robber != civilian) exitWith { hint "Tu ne peux pas dérober cette station" };
if(_robber distance _shop &gt; 5) exitWith { hint "Tu dois etre a 5 mètres" };
if !(_kassa) then { _kassa = 1000; };
if (_rip) exitWith { hint "Avancement du braquage!" };
if (vehicle player != _robber) exitWith { hint "Sors de ton véhicule!" };
if !(alive _robber) exitWith {};
if (currentWeapon _robber == "") exitWith { hint "HaHa, ne me menace pas connard! Casses-toi !" };
if (_kassa == 0) exitWith { hint "La caisse est vide!" };// si il n'y a rien dans la caisse alors elle est vide (suite a un braquage)
_rip = true;
_kassa = 20000 + round(random 10000);//20000= le nombre minimal de la recette + suivant d'un "tirage au hasard"
_shop removeAction _action;
_shop switchMove "AmovPercMstpSsurWnonDnon";
_chance = random(100);
if(_chance &lt; 50) then { hint "Le caissier avait une alarme secrete, la police arrive!"; [[1,format["ALERTE la Station service: %1 est dérobé!", _shop]],"life_fnc_broadcast",west,false] spawn life_fnc_MP; }; //une chance sur 2 que la police sois contacter pendant le braquage
_cops = (west countSide playableUnits);
if(_cops &lt; 2) exitWith{[[_vault,-1],"disableSerialization;",false,false] spawn life_fnc_MP; hint "Il n'y a pas assez de policiers!";}; //2 est le nombre de policiers necessaire
disableSerialization;
5 cutRsc ["life_progress","PLAIN"];
_ui = uiNameSpace getVariable "life_progress";
_progress = _ui displayCtrl 38201;
_pgText = _ui displayCtrl 38202;
_pgText ctrlSetText format["Progression du braquage (tu dois être à 10m) (1%1)...","%"];
_progress progressSetPosition 0.01;
_cP = 0.01;
if(_rip) then
{
while{true} do
{
sleep 0.8;
_cP = _cP + 0.01;
_progress progressSetPosition _cP;
_pgText ctrlSetText format["Progression du braquage (tu dois être à 10m) (%1%2)...",round(_cP * 100),"%"];
_Pos = position player; // by ehno: get player pos
_marker = createMarker ["Marker200", _Pos]; //by ehno: Place a Maker on the map
"Marker200" setMarkerColor "ColorRed";
"Marker200" setMarkerText "Attention un braquage a lieu !";
"Marker200" setMarkerType "mil_warning";
if(_cP &gt;= 1) exitWith {};
if(_robber distance _shop &gt; 10.5) exitWith { };
if!(alive _robber) exitWith {};
};
if!(alive _robber) exitWith { _rip = false; };
if(_robber distance _shop &gt; 10.5) exitWith { deleteMarker "Marker200"; _shop switchMove ""; hint "Tu as besoin de resté à 10m pour que le braquage continue !"; 5 cutText ["","PLAIN"]; _rip = false; };
5 cutText ["","PLAIN"];
titleText[format["Vous avez volé $%1, maintenant partez, les flics arrivent !",[_kassa] call life_fnc_numberText],"PLAIN"];
deleteMarker "Marker200"; // by ehno delete maker
life_cash = life_cash + _kassa;
_rip = false;
life_use_atm = false;
sleep (60 + random(180));
life_use_atm = true;
if!(alive _robber) exitWith {};
[[getPlayerUID _robber,name _robber,"211"],"life_fnc_wantedAdd",false,false] spawn life_fnc_MP;
};
sleep 300;
_action = _shop addAction["Braquer la station service",life_fnc_robShops];
_shop switchMove "";
&lt;/pre&gt;
&lt;p&gt;Pour finir, allez sur votre editeur de map, &lt;strong&gt;rajoutez un PNJ civil &lt;span style="color:#ff0000;"&gt;non jouable&lt;/span&gt;&lt;/strong&gt; et mettez ceci dans son initialisation&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
this addAction["Rob Cash Register",life_fnc_robShops];&lt;/pre&gt;
&lt;p&gt;&lt;a class="attach-link" href="/assets/uploads/ips/monthly_05_2015/post-225-0-86332400-1431000726.jpg"&gt;&lt;img alt="post-225-0-86332400-1431000726_thumb.jpg" src="/assets/uploads/ips/monthly_05_2015/post-225-0-86332400-1431000726_thumb.jpg" width="100"/&gt;&lt;/a&gt;&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1572/tuto-braquage-de-station-service</link><guid isPermaLink="true">https://melinyel.net/topic/1572/tuto-braquage-de-station-service</guid><dc:creator><![CDATA[matthieu]]></dc:creator><pubDate>Thu, 07 May 2015 12:17:51 GMT</pubDate></item><item><title><![CDATA[Tutoriel Interface Phone]]></title><description><![CDATA[&lt;p&gt;Salut , avant de commencé je tiens a dire que les scripts et le tuto ne viens pas de moi , il vienne de V0xid, qu'on remercie énormement pour se bouleau .&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Lien originale : &lt;a href="http://altisdev.com/index.php?/topic/1426-interface-téléphone-iphone/" rel="external nofollow"&gt;http://altisdev.com/index.php?/topic/1426-interface-téléphone-iphone/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Maintenant :&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;span style="font-size:48px;"&gt;&lt;strong&gt;LE TUTO&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align:center;"&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;1) Téléchargé le .rar : &lt;/b&gt;&lt;span style="font-size:14px;"&gt;&lt;a href="http://altisdev.com/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=125" rel="external nofollow"&gt;http://altisdev.com/index.php?app=core&amp;amp;module=attach&amp;amp;section=attach&amp;amp;attach_id=125&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:14px;"&gt;2) &lt;strong&gt;Mettez le telephone&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-size:14px;"&gt;&lt;span style="color:rgb(0,0,0);"&gt;.paa" dans votre dossier textures.&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;3) &lt;strong&gt;&lt;span style="font-size:14px;"&gt;&lt;span style="color:rgb(0,0,0);"&gt;Remplacer le fichier cell_phonne.hpp "dialog\cell_phone.hpp" .&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:14px;"&gt;&lt;span style="color:rgb(0,0,0);"&gt;4)  Remplacer le fichier common.hpp "dialog\common.hpp"&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:14px;"&gt;&lt;span style="color:rgb(0,0,0);"&gt;Et voila , c'est finit , un petit screenshot pour voir a quoi cela ressemble  &lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:14px;"&gt;&lt;span style="color:rgb(0,0,0);"&gt;&lt;img alt="494700107410screenshots2014112200005.jpg" src="&lt;base_url&gt;/applications/sslimageproxy/interface/image.php?url=http://img4.hostingpics.net/pics/494700107410screenshots2014112200005.jpg"/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:14px;"&gt;&lt;span style="color:rgb(0,0,0);"&gt;Encore Merci a V0xid Aurevoir tout le monde  &lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1383/tutoriel-interface-phone</link><guid isPermaLink="true">https://melinyel.net/topic/1383/tutoriel-interface-phone</guid><dc:creator><![CDATA[ArrowDark]]></dc:creator><pubDate>Wed, 10 Dec 2014 12:13:05 GMT</pubDate></item><item><title><![CDATA[[Tuto] Anti Alt F4]]></title><description><![CDATA[&lt;p&gt;Bonjour à tous,&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Ce tutoriel n'est pas de moi, mais de &lt;span&gt;Pink3vil, voici le&lt;/span&gt; lien : &lt;a href="http://altisdev.com/index.php?/topic/271-anti-alt-f4-ctrl-alt-suppr-et-autres/" rel="external nofollow"&gt;http://altisdev.com/index.php?/topic/271-anti-alt-f4-ctrl-alt-suppr-et-autres/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Fichier core\functions\fn_KeyHandler.sqf, ajoutez ceci :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
// ANTI ALT + F4
case 62:
{
if(_alt &amp;&amp; !_shift) then
{
SOCK_fnc_updateRequest;
diag_log format ["SERVEUR KOSMOS: %1 utilise ALT+F4 pour se déconnecter (Prenez une capture et signalez le sur le Forum)",_player getVariable["realname",name _player]];
[[1,format["SERVEUR KOSMOS: %1 utilise ALT+F4 pour se déconnecter (Prenez une capture et signalez le sur le Forum)",_player getVariable["realname",name _player]]],"life_fnc_broadcast",nil,false] spawn life_fnc_MP;
SOCK_fnc_updateRequest;
};
};
// ANTI CTRL + ALT + DEL
case 211:
{
if(_ctrlKey &amp;&amp; _alt)  then
{
SOCK_fnc_updateRequest;
diag_log format ["SERVEUR KOSMOS: %1 utilise CTRL + ALT + DEL pour se déconnecter (Prenez une capture et signalez le sur le Forum)",_player getVariable["realname",name _player]];
[[1,format["SERVEUR KOSMOS: %1 utilise CTRL + ALT + DEL  pour se déconnecter (Prenez une capture et signalez le sur le Forum)",_player getVariable["realname",name _player]]],"life_fnc_broadcast",nil,false] spawn life_fnc_MP;
SOCK_fnc_updateRequest;
};
};
// ANTI CTRL + ESC
case 1:
{
if( _ctrlKey )  then
{
SOCK_fnc_updateRequest;
diag_log format ["SERVEUR KOSMOS: %1 utilise CTRL + ESC pour se déconnecter (Prenez une capture et signalez le sur le Forum)",_player getVariable["realname",name _player]];
[[1,format["SERVEUR KOSMOS: %1 utilise CTRL + ESC pour se déconnecter (Prenez une capture et signalez le sur le Forum)",_player getVariable["realname",name _player]]],"life_fnc_broadcast",nil,false] spawn life_fnc_MP;
SOCK_fnc_updateRequest;
};
};	
&lt;/pre&gt;
&lt;p&gt;Voilà j'espère que ça aidera certaines personnes si vous avez un soucis n'hésitez pas  &lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1382/tuto-anti-alt-f4</link><guid isPermaLink="true">https://melinyel.net/topic/1382/tuto-anti-alt-f4</guid><dc:creator><![CDATA[subherox]]></dc:creator><pubDate>Wed, 10 Dec 2014 10:25:56 GMT</pubDate></item><item><title><![CDATA[Désactiver SpyGlass]]></title><description><![CDATA[&lt;p&gt;Yo tout le monde, aujourd'hui je vais vous montrez comment désactiver SpyGlass sur un serveur Altis Life.&lt;br/&gt;
 &lt;br/&gt;
Pour ce faire, ouvrez le fichier : Altis_Life.Altis/SpyGlass/fn_initSpy.sqf et ajoutez ceci :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
exitWith {};
&lt;/pre&gt;
&lt;p&gt;Juste avant :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
private["_binConfigPatches","_cfgPatches","_endM"];
&lt;/pre&gt;
&lt;p&gt;J'espère que ca vous aura aidé et bonne continuation  &lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1349/désactiver-spyglass</link><guid isPermaLink="true">https://melinyel.net/topic/1349/désactiver-spyglass</guid><dc:creator><![CDATA[vfrz]]></dc:creator><pubDate>Tue, 25 Nov 2014 19:22:05 GMT</pubDate></item><item><title><![CDATA[Système de craft par EdgeKiller]]></title><description><![CDATA[&lt;p&gt;Bonsoir tout le monde !&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Ce soir je vous partage un système de craft que j'ai créer complétement moi même, donc exclusif !&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Petit aperçu : &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;https://www.youtube.com/watch?v=BJegFHppdkc&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;u&gt;A faire :&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;- Traduire le script en allemand/italien/portugais&lt;/p&gt;
&lt;p&gt;- Système de filtrage pour les vêtements/armes etc...&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;• Fichier "Functions.h", mettez ceci dans la class "Action" :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
class craftAction {};
&lt;/pre&gt;
&lt;p&gt;Dans la class "Config" :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
class craftCfg {};
&lt;/pre&gt;
&lt;p&gt;Puis dans la class "Player_Menu" : &lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
class craft {};
class craft_update {};
&lt;/pre&gt;
&lt;p&gt;• Fichier "dialog\MasterHandler.h", ajoutez :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
#include "craft.hpp"
&lt;/pre&gt;
&lt;p&gt;• Fichier "dialog\player_inv.hpp", remplacez :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
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);
};
&lt;/pre&gt;
&lt;p&gt;Par :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
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);
};
&lt;/pre&gt;
&lt;p&gt;Puis en dessous ajoutez ceci :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
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);
};
&lt;/pre&gt;
&lt;p&gt;• Fichier "stringtable.xml", ajoutez :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
&lt;Package name="Craft"&gt;
&lt;Key ID="STR_CRAFT_Title"&gt;
&lt;Original&gt;Crafting Menu&lt;/Original&gt;
&lt;English&gt;Crafting Menu&lt;/English&gt;
&lt;German&gt;Crafting Menu&lt;/German&gt;
&lt;French&gt;Menu de Crafting&lt;/French&gt;
&lt;Italian&gt;Crafting Menu&lt;/Italian&gt;
&lt;Portuguese&gt;Crafting Menu&lt;/Portuguese&gt;
&lt;/Key&gt;
&lt;Key ID="STR_PM_CraftStats"&gt;
&lt;Original&gt;Object to craft&lt;/Original&gt;
&lt;English&gt;Object to craft&lt;/English&gt;
&lt;German&gt;Object to craft&lt;/German&gt;
&lt;French&gt;Objet à crafter&lt;/French&gt;
&lt;Italian&gt;Object to craft&lt;/Italian&gt;
&lt;Portuguese&gt;Object to craft&lt;/Portuguese&gt;
&lt;/Key&gt;
&lt;Key ID="STR_PM_CraftMaterials"&gt;
&lt;Original&gt;Materials needed&lt;/Original&gt;
&lt;English&gt;Materials needed&lt;/English&gt;
&lt;German&gt;Materials needed&lt;/German&gt;
&lt;French&gt;Materiaux requis&lt;/French&gt;
&lt;Italian&gt;Materials needed&lt;/Italian&gt;
&lt;Portuguese&gt;Materials needed&lt;/Portuguese&gt;
&lt;/Key&gt;
&lt;Key ID="STR_CRAFT_Button"&gt;
&lt;Original&gt;Craft !&lt;/Original&gt;
&lt;English&gt;Craft !&lt;/English&gt;
&lt;German&gt;Craft !&lt;/German&gt;
&lt;French&gt;Craft !&lt;/French&gt;
&lt;Italian&gt;Craft !&lt;/Italian&gt;
&lt;Portuguese&gt;Craft !&lt;/Portuguese&gt;
&lt;/Key&gt;
&lt;Key ID="STR_PM_NoMaterial"&gt;
&lt;Original&gt;You do not have all the required materials !&lt;/Original&gt;
&lt;English&gt;You do not have all the required materials !&lt;/English&gt;
&lt;German&gt;You do not have all the required materials !&lt;/German&gt;
&lt;French&gt;Vous n'avez pas tous les matériaux requis !&lt;/French&gt;
&lt;Italian&gt;You do not have all the required materials !&lt;/Italian&gt;
&lt;Portuguese&gt;You do not have all the required materials !&lt;/Portuguese&gt;
&lt;/Key&gt;
&lt;Key ID="STR_CRAFT_Process"&gt;
&lt;Original&gt;You have crafted : %1&lt;/Original&gt;
&lt;English&gt;You have crafted : %1&lt;/English&gt;
&lt;German&gt;You have crafted : %1&lt;/German&gt;
&lt;French&gt;Vous avez crafté : %1&lt;/French&gt;
&lt;Italian&gt;You have crafted : %1&lt;/Italian&gt;
&lt;Portuguese&gt;You have crafted : %1&lt;/Portuguese&gt;
&lt;/Key&gt;
&lt;/Package&gt;
&lt;/pre&gt;
&lt;p&gt;Et ceci dans le package "Player_Menu" :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
&lt;Key ID="STR_PM_Craft"&gt;
&lt;Original&gt;Craft&lt;/Original&gt;
&lt;English&gt;Craft&lt;/English&gt;
&lt;German&gt;Craft&lt;/German&gt;
&lt;French&gt;Craft&lt;/French&gt;
&lt;Italian&gt;Craft&lt;/Italian&gt;
&lt;Portuguese&gt;Craft&lt;/Portuguese&gt;
&lt;/Key&gt;
&lt;/pre&gt;
&lt;p&gt;• Dans le dossier "dialog" créer un fichier nommé "craft.hpp" :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
/*
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);
	};
};

};
&lt;/pre&gt;
&lt;p&gt;• Dans le dossier "core/actions", créer un fichier nommé "fn_craftAction.sqf" :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
/*
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 &amp;lt; _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)) &amp;lt; _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 &lt; _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 &gt;= 1) exitWith {};
};
_invSize = count _oldItem;
if(!(player addItem _item)) exitWith {
5 cutText ["","PLAIN"];
for [{_i = 0},{_i &amp;lt; _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;
&lt;/pre&gt;
&lt;p&gt;• Dans le dossier "core/pmenu", créer un fichier nommé "fn_craft.sqf" :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
/*
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);
&lt;/pre&gt;
&lt;p&gt;• Dans le dossier "core/pmenu", créer un fichier nommé "fn_craft_update.sqf" :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
/*
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 &amp;lt; _invSize - 1},{_i = _i + 2}] do {
		_str = [_matsNeed select _i] call life_fnc_varToStr;
		_matsNum = _matsNeed select _i+1;
		_struct = _struct + format["%1x %2&amp;lt;br/&amp;gt;",_matsNum,_str];

	};
};

} foreach (_config select 1);
if(_struct == "") then
{
_struct = "No material needed";
};
_mats ctrlSetStructuredText parseText format["
&lt;t size='0.8px'&gt;
%1
&lt;/t&gt;
",_struct];
&lt;/pre&gt;
&lt;p&gt;• Pour finir dans le dossier "core/config", créer un fichier "fn_craftCfg.sqf" :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
#include &lt;macro.h&gt;
/*
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]]
				]
			];
		};
	};
};

};
&lt;/pre&gt;
&lt;p&gt;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 !&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Crédits : EdgeKiller&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Si vous utilisez ce système, merci de mettre les crédits  &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;ENJOY !&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1348/système-de-craft-par-edgekiller</link><guid isPermaLink="true">https://melinyel.net/topic/1348/système-de-craft-par-edgekiller</guid><dc:creator><![CDATA[vfrz]]></dc:creator><pubDate>Mon, 24 Nov 2014 20:47:55 GMT</pubDate></item><item><title><![CDATA[Hex Color to Arma Color]]></title><description><![CDATA[&lt;p&gt;Yo !&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Voici un site qui permet de convertir une couleur en hexadécimal vers le format de couleur de Arma !&lt;/p&gt;
&lt;p&gt;&lt;a href="http://killzonekid.com/hex-2-arma-gui-colour-converter/" rel="external nofollow"&gt;http://killzonekid.com/hex-2-arma-gui-colour-converter/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;J'espère que ça pourra vous aidez  &lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1342/hex-color-to-arma-color</link><guid isPermaLink="true">https://melinyel.net/topic/1342/hex-color-to-arma-color</guid><dc:creator><![CDATA[vfrz]]></dc:creator><pubDate>Sat, 22 Nov 2014 14:14:30 GMT</pubDate></item><item><title><![CDATA[Fouiller un mort]]></title><description><![CDATA[&lt;p&gt;Bonjour,&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Ce tuto est pas de moi mais de blah.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Pour cela supprimez ceci du fichier &lt;span style="color:rgb(40,40,40);font-family:Helvetica, helvetica, arial, sans-serif;"&gt;core/functions/fn_inventoryOpened.sqf :&lt;/span&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
//Allow alive players who've been knocked out to be looted, just not the dead ones
if(_container isKindOf "Man" &amp;&amp; !alive _container) exitWith {
hint localize "STR_NOTF_NoLootingPerson";
[] spawn {
waitUntil {!isNull (findDisplay 602)};
closeDialog 0;
};
};
&lt;/pre&gt;
]]></description><link>https://melinyel.net/topic/1340/fouiller-un-mort</link><guid isPermaLink="true">https://melinyel.net/topic/1340/fouiller-un-mort</guid><dc:creator><![CDATA[subherox]]></dc:creator><pubDate>Thu, 20 Nov 2014 20:42:33 GMT</pubDate></item><item><title><![CDATA[Fenêtre pour le vendeur de licences]]></title><description><![CDATA[&lt;p&gt; Bonjour, il s'agit d'un tutoriel assez simple, cependant il faut avoir un minimum de connaissances pour s'y retrouver !&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Crédit :&lt;/p&gt;
&lt;p&gt;-RichHomieQuan pour le tutoriel sur altisliferpg.com&lt;/p&gt;
&lt;p&gt;-Moi pour la traduction  &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;C'est parti !&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Ajoutez ceci dans le fichier functions.h, en dessous de "shops" :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
class licenses {};&lt;/pre&gt;
&lt;p&gt;Créez un fichier dans le dossier dialog, nommé LicensesDialog.hpp&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
class LicenseShop {
idd = 5546;
name= "life_license_shop";
movingEnable = false;
enableSimulation = true;
onLoad = "uiNamespace setVariable [""LicenseShop"", _this select 0];";
objects[] = { };
class controls {
class 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;
text = "Licenses"; //--- ToDo: Localize;
x = 0.1;
y = 0.2;
w = 0.775;
h = 0.04;
};
class Mainbackground : Life_RscText
{
colorBackground[] = {0,0,0,0.7};
idc = -1;
x = 0.1;
y = 0.244;
w = 0.775;
h = 0.52;
};
class listbox: Life_RscListBox
{
idc = 55126;
sizeEx = 0.035;
x = 0.1125;
y = 0.3;
w = 0.3125;
h = 0.4;
};
class ShowLicenseslistbox: Life_RscListBox
{
idc = 55131;
x = 0.55;
y = 0.3;
w = 0.3125;
h = 0.4;
};
class MyLicenses : Life_RscText
{
idc = 55130;
text = "Available "; //--- ToDo: Localize;
x = 0.1875;
y = 0.24;
w = 0.1375;
h = 0.04;
};
class ShowLicenses : Life_RscText
{
idc = 55129;
text = "My Licenses"; //--- ToDo: Localize;
x = 0.65;
y = 0.24;
w = 0.1375;
h = 0.04;
};
class buybutton: Life_RscButtonMenu
{
idc = 55127;
text = "$STR_Global_Buy";
x = 0.4125;
y = 0.72;
w = 0.15;
h = 0.04;
colorText[] = {1,1,1,1};
colorBackground[] = {0,0,0,0.8};
action = "if( (lbData[55126,lbCurSel (55126)] != """") ) then { [false, false, false, lbData[55126,lbCurSel (55126)]] call life_fnc_buyLicense; closeDialog 0; };";
};
};
};
&lt;/pre&gt;
&lt;div&gt;Créez un fichier nommé fn_licenses.sqf dans core/shops :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
private["_display","_listbox","_shortname","_longname","_price","_hasLicense","_displayname"];
_buyables = _this select 3; //called from action =&gt; select 3rd argument
if(!dialog) then
{
if(!(createDialog "LicenseShop")) exitWith {};
};
disableSerialization;
_display = findDisplay 5546;
if(isNull _display) exitWith {};
_listbox = _display displayCtrl 55126;
_mylic = _display displayCtrl 55131;
_struct = "";
{
_shortname = _x;
_longname = ([_shortname, 0] call life_fnc_licenseType) select 0;
_displayname = ([_shortname, 0] call life_fnc_licenseType) select 1;
_price = [_shortname] call life_fnc_licensePrice;
_hasLicense = missionNamespace getVariable _longname;
if(!_hasLicense) then
{
_listbox lbAdd format["%1 ($%2)", _displayname, _price];
_listbox lbSetData [(lbSize _listbox) - 1, _shortname];
}
else
{
_mylic lbAdd format["%1", _displayname];
_mylic lbSetData [(lbSize _mylic) - 1, _shortname];
};
}
foreach _buyables;
&lt;/pre&gt;
&lt;p&gt;Il va falloir aussi changer l'initialisation des pnjs comme ceci (exemple) :&lt;/p&gt;
&lt;/div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
this addAction["Licenses",life_fnc_licenses,["driver","boat","pilot","truck","home","gun"],0,true,true,"",' playerSide == civilian '];
&lt;/pre&gt;
&lt;p&gt;Au lieu de :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
this addAction[format[""%1 ($%2)"",[""license_civ_driver""] call life_fnc_varToStr,[([""driver""] call life_fnc_licensePrice)] call life_fnc_numberText],life_fnc_buyLicense,""driver"",0,false,false,"""",' !license_civ_driver &amp;&amp; playerSide == civilian ']; ...
&lt;/pre&gt;
&lt;p&gt;Voici un petit screenshot pour la fin :&lt;/p&gt;
&lt;p&gt;&lt;img alt="43af8e7fe6f0e28f936844c624531f97.png" src="https://i.gyazo.com/43af8e7fe6f0e28f936844c624531f97.png"/&gt;&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1338/fenêtre-pour-le-vendeur-de-licences</link><guid isPermaLink="true">https://melinyel.net/topic/1338/fenêtre-pour-le-vendeur-de-licences</guid><dc:creator><![CDATA[vfrz]]></dc:creator><pubDate>Thu, 20 Nov 2014 17:36:01 GMT</pubDate></item><item><title><![CDATA[101 Editor | Mapping]]></title><description><![CDATA[&lt;p&gt;Salut , je viens vous faire partagé un mod très utile pour vos session de mapping , il va permettre de faire spawn la quasi totalité les objet d'arma , maisons , chateau , hopital ... ect&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Je tien a dire que vous n'aurez pas besoin de faire téléchargé ce mod a vos joueurs si vous décidé de l'utilisé ! &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Lien de download : &lt;a href="http://www.armaholic.com/page.php?id=20821" rel="external nofollow"&gt;http://www.armaholic.com/page.php?id=20821&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Voila !&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Bye Bye&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1333/101-editor-mapping</link><guid isPermaLink="true">https://melinyel.net/topic/1333/101-editor-mapping</guid><dc:creator><![CDATA[ArrowDark]]></dc:creator><pubDate>Tue, 18 Nov 2014 07:23:34 GMT</pubDate></item><item><title><![CDATA[Systême de Remorquage (Igiload)]]></title><description><![CDATA[&lt;p&gt;Salut je viens vous faire un mini tuto pour comment installé un systême de remorquage sur votre serveur , ceci est extrêmement simple !&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;1 . Téléchargé ce fichier et glissé le a la racine de votre Mission : &lt;a href="https://www.mediafire.com/?oj2nmftyd8woz7a" rel="external nofollow" title="Lien externe"&gt;https://www.mediafir...oj2nmftyd8woz7a&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;2. Ouvrez l'init.sqf qui se trouve à la racine de votre mission et rajotué ça a la fin :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
_igiload = execVM "IgiLoad\IgiLoadInit.sqf";
&lt;/pre&gt;
&lt;p&gt;Voila   Plus qu'a sauvegardé et à redémarré le serveur !&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1332/systême-de-remorquage-igiload</link><guid isPermaLink="true">https://melinyel.net/topic/1332/systême-de-remorquage-igiload</guid><dc:creator><![CDATA[ArrowDark]]></dc:creator><pubDate>Tue, 18 Nov 2014 07:18:56 GMT</pubDate></item><item><title><![CDATA[Activer Zeus sur Altis Life]]></title><description><![CDATA[&lt;div&gt;Bonjour,&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Voici un tutoriel pour activer Zeus sur son serveur Altis Life&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Crédit : Archangel_za pour son tutoriel sur altisliferpg.com et EdgeKiller pour la traduction (en cours...).&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;- 1 -&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Dans votre fichier "core\init.sqf", vous devez ajouter une "case" pour le mode Zeus, donc en dessous de ceci :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
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};
};

&lt;/pre&gt;
&lt;p&gt;Ajoutez ceci :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case sideLogic:
{
_handle = [] spawn life_fnc_initZeus;
waitUntil {scriptDone _handle};
};
&lt;/pre&gt;
&lt;p&gt;Avant la fin du switch.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div&gt;- 2 -&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Créer un fichier dans le dossier core nommé "fn_initZeus.sqf" et mettez ceci à l'intérieur :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
/*
File: fn_initZeus.sqf
Author: John "Paratus" VanderZwet
Description:
Zeus Initialization file.
*/
player addRating 9999999;
waitUntil {!(isNull (findDisplay 46))};
[] spawn life_fnc_copMarkers;
if(life_adminlevel &lt; 2) exitWith
{
endMission "Loser";
};
&lt;/pre&gt;
&lt;div&gt;- 3 -&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Ouvrez le fichier "functions.h" et en dessous de :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
class Master_Directory
{
&lt;/pre&gt;
&lt;p&gt;Ajoutez :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
class initZeus {};
&lt;/pre&gt;
&lt;div&gt;- 4 -&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Allez dans l'éditeur:&lt;/div&gt;
&lt;div&gt; 1 • Ajoutez un module (Double clique)&lt;/div&gt;
&lt;div&gt; 2 • Pour la catégorie mettez "Zeus"&lt;/div&gt;
&lt;div&gt; 3 • Pour le module mettez "GameMaster"&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Les paramètres doivent être comme sur l'image suivante :&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="2nkkns9.jpg" src="&lt;base_url&gt;/applications/sslimageproxy/interface/image.php?url=http://i57.tinypic.com/2nkkns9.jpg"/&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div&gt;Désormais Zeus est activé sur votre serveur Altis Life ! Have fun !&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;PS : N'oubliez pas de vous connectez en tant qu'administrateur en tapant ceci dans le chat : #login &lt;Admin Password&gt;&lt;/div&gt;
]]></description><link>https://melinyel.net/topic/1331/activer-zeus-sur-altis-life</link><guid isPermaLink="true">https://melinyel.net/topic/1331/activer-zeus-sur-altis-life</guid><dc:creator><![CDATA[vfrz]]></dc:creator><pubDate>Mon, 17 Nov 2014 21:35:06 GMT</pubDate></item><item><title><![CDATA[Liste "Keyboard UI Number"]]></title><description><![CDATA[&lt;p&gt;Voici la liste des numéros correspondants aux touches, source : altisliferpg.com (midgetgrimm)&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
ESC = 1
F1 = 59
F2 = 60
F3 = 61
F4 = 62
F5 = 63
F6 = 64
F7 = 65
F8 = 66
F9 = 67
F10 = 68
F11 = 87
F12 = 88
PRINT = 183
SCROLL = 70
PAUSE = 197
^ = 41
1 = 2
2 = 3
3 = 4
4 = 5
5 = 6
6 = 7
7 = 8
8 = 9
9 = 10
0 = 11
ß = 12
´ = 13
Ü = 26
Ö = 39
Ä = 40
= 43
&lt; = 86
, = 51
. = 52

= 53


= NOT DEFINED
POS1 = 199
TAB = 15
ENTER = 28
DELETE = 211
BACKSPACE = 14
INSERT = 210
END = 207
PAGEUP = 201
PAGEDOWN = 209
CAPS = 58
A = 30
B = 48
C = 46
D = 32
E = 18
F = 33
G = 34
H = 35
I = 23
J = 36
K = 37
L = 38
M = 50
N = 49
O = 24
P = 25
Q = 16
U = 22
R = 19
S = 31
T = 20
V = 47
W = 17
X = 45
Y = 44
Z = 21
SHIFTL = 42
SHIFTR = 54
UP = 200
DOWN = 208
LEFT = 203
RIGHT = 205
NUM_0 = 82
NUM_1 = 79
NUM_2 = 80
NUM_3 = 81
NUM_4 = 75
NUM_5 = 76
NUM_6 = 77
NUM_7 = 71
NUM_8 = 72
NUM_9 = 73
NUM_+ = 78
NUM = 69
NUM_/ = 181
NUM_* = 55
NUM_- = 74
NUM_, = 83
NUM_ENTER = 156
STRGL = 29
STRGR = 157
WINL = 220
WINR = 219
ALT = 56
SPACE = 57
ALTGR = 184
APP = 221
&lt;/pre&gt;

]]></description><link>https://melinyel.net/topic/1330/liste-keyboard-ui-number</link><guid isPermaLink="true">https://melinyel.net/topic/1330/liste-keyboard-ui-number</guid><dc:creator><![CDATA[vfrz]]></dc:creator><pubDate>Mon, 17 Nov 2014 21:28:25 GMT</pubDate></item><item><title><![CDATA[Créer un nouveau point de Spawn]]></title><description><![CDATA[&lt;p&gt;Salut , ce tuto vient d'un autre tuto  sur altisdev  voici le lien : &lt;a href="http://altisdev.com/index.php?/topic/1077-créer-un-spawn-nimporte-ou/" rel="external nofollow"&gt;http://altisdev.com/index.php?/topic/1077-créer-un-spawn-nimporte-ou/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mais bon vu que c'est moi qui ai a l'origine du tuto sur l'autre site (c'est moi qui ai expliqué au créateur du tuto comment faire)&lt;/p&gt;
&lt;p&gt;Je vais aussi mettre le tuto a ma sauce  &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;-------------------------------------------------------------------------------------&lt;span style="font-size:14.6666669845581px;"&gt;-------------------------------------------------------------------------------------&lt;/span&gt;&lt;span style="font-size:14.6666669845581px;"&gt;-------------------------------------------------------------&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:14.6666669845581px;"&gt;Ce tuto consiste a faire de nouveau spawn si vous voulait faire un spawn à la ville rebelle par exemple !&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p style="font-size:14.6666669845581px;"&gt;-------------------------------------------------------------------------------------&lt;span style="font-size:14.6666669845581px;"&gt;-------------------------------------------------------------------------------------&lt;/span&gt;&lt;span style="font-size:14.6666669845581px;"&gt;---------------------------------------&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;1. Rentré sur la map de votre serveur est inséré un marqueur vide sur l'endroit ou vous voulez faire votre spawn pour ma part il s'apellera "reb_spawn" (vous pouvez le nommé comme vous le voulez tant que ça correspond à ce qu'il aura après !)&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;2. Rendez vous  dans &lt;span style="color:rgb(36,38,39);font-family:helvetica, arial, sans-serif;font-size:14.6666669845581px;background-color:rgb(230,237,240);"&gt;dialog\function\fn_spawnPointCfg&lt;/span&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
/*
File: fn_spawnPointCfg.sqf
Author: Bryan "Tonic" Boardwine
Description:
Master configuration for available spawn points depending on the units side.

Return:
[Spawn Marker,Spawn Name,Image Path]

*/
private["_side","_return"];
_side = [_this,0,civilian,[civilian]] call BIS_fnc_param;
//Spawn Marker, Spawn Name, PathToImage
switch (_side) do
{
case west:
{
_return = [
["cop_spawn_1","Kavala HQ","\a3\ui_f\data\map\MapControl\watertower_ca.paa"],
["cop_spawn_2","Pyrgos HQ","\a3\ui_f\data\map\MapControl\fuelstation_ca.paa"],
["cop_spawn_3","Athira HQ","\a3\ui_f\data\map\GroupIcons\badge_rotate_0_gs.paa"],
["cop_spawn_4","Air HQ","\a3\ui_f\data\map\Markers\NATO\b_air.paa"],
["cop_spawn_5","HW Patrol","\a3\ui_f\data\map\GroupIcons\badge_rotate_0_gs.paa"]
];
};
case civilian:
{
	_return = [
		["civ_spawn_1","Kavala","\a3\ui_f\data\map\MapControl\watertower_ca.paa"],
		["civ_spawn_2","Pyrgos","\a3\ui_f\data\map\MapControl\watertower_ca.paa"],
		["civ_spawn_3","Athira","\a3\ui_f\data\map\MapControl\watertower_ca.paa"],
		["civ_spawn_4","Sofia","\a3\ui_f\data\map\MapControl\watertower_ca.paa"],
	      ];
	
	if(count life_houses &amp;gt; 0) then {
		{
			_pos = call compile format["%1",_x select 0];
			_house = nearestBuilding _pos;
			_houseName = getText(configFile &amp;gt;&amp;gt; "CfgVehicles" &amp;gt;&amp;gt; (typeOf _house) &amp;gt;&amp;gt; "displayName");
			
			_return pushBack [format["house_%1",_house getVariable "uid"],_houseName,"\a3\ui_f\data\map\MapControl\lighthouse_ca.paa"];
		} foreach life_houses;
	};	
};

case independent: {
	_return = [
		["medic_spawn_1","Kavala Hospital","\a3\ui_f\data\map\MapControl\hospital_ca.paa"],
		["medic_spawn_2","Athira Regional","\a3\ui_f\data\map\MapControl\hospital_ca.paa"],
		["medic_spawn_3","Pygros Hospital","\a3\ui_f\data\map\MapControl\hospital_ca.paa"]
	];
};

};
_return;
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Chercher la case qui vous intéresse dans ce cas , ça sera la case civilian :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case civilian:
{
_return = [
["civ_spawn_1","Kavala","\a3\ui_f\data\map\MapControl\watertower_ca.paa"],
["civ_spawn_2","Pyrgos","\a3\ui_f\data\map\MapControl\watertower_ca.paa"],
["civ_spawn_3","Athira","\a3\ui_f\data\map\MapControl\watertower_ca.paa"],
["civ_spawn_4","Sofia","\a3\ui_f\data\map\MapControl\watertower_ca.paa"],
];
	if(count life_houses &amp;gt; 0) then {
		{
			_pos = call compile format["%1",_x select 0];
			_house = nearestBuilding _pos;
			_houseName = getText(configFile &amp;gt;&amp;gt; "CfgVehicles" &amp;gt;&amp;gt; (typeOf _house) &amp;gt;&amp;gt; "displayName");
			
			_return pushBack [format["house_%1",_house getVariable "uid"],_houseName,"\a3\ui_f\data\map\MapControl\lighthouse_ca.paa"];
		} foreach life_houses;
	};	
};

&lt;/pre&gt;
&lt;p&gt;Cherchez la ligne &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Copiez la , revenez a la ligne et collé la , sans oublié la fidèle virgule !&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Maintenant modifié votre ligne en function de se que vous avez prit comme nom pour ma part ça sera :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
["reb_spawn","Ville Rebelle","\a3\ui_f\data\map\MapControl\watertower_ca.paa"]
&lt;/pre&gt;
&lt;p&gt;Voila , plus qu'à enregistré et ce sera tout  &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;A une prochaine fois  &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Bye Bye&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1328/créer-un-nouveau-point-de-spawn</link><guid isPermaLink="true">https://melinyel.net/topic/1328/créer-un-nouveau-point-de-spawn</guid><dc:creator><![CDATA[ArrowDark]]></dc:creator><pubDate>Mon, 17 Nov 2014 15:25:44 GMT</pubDate></item><item><title><![CDATA[Admin Menu 3.1.4.8]]></title><description><![CDATA[&lt;p&gt;Bonjour , je tien a précisé que ce tuto ne viens pas de moi mais de Forum Bulldog : &lt;span style="font-size:14px;"&gt;&lt;a href="http://www.altisliferpg.com/topic/4375-modifyextended-admin-menu/" rel="external nofollow"&gt;http://www.altisliferpg.com/topic/4375-modifyextended-admin-menu/&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;
 &lt;br/&gt;
Commençons tout de suite : &lt;br/&gt;
 &lt;br/&gt;
 &lt;br/&gt;
1 . Commencer par aller dans votre base de donnée dans players puis structure puis cherché adminlevel , et rajouté 2 grade admin cela devrait ressemblé à ça :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
'0','1','2','3','4','5'
&lt;/pre&gt;
&lt;p&gt;2 . Aller dans Function.h (qui se trouve a la racine de votre mission) et modifié la Class Admin&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
class Civilian
{
file = "core\civilian";
class freezePlayer {};
};
class Admin
{
file = "core\admin";
class admininfo {};
class adminid {};
class admingetID {};
class adminMenu {};
class adminQuery {};
class adminSpectate {};
class adminTeleport {};
class adminTpHere {};
class adminDebugCon {};
class adminCompensate {};
class adminGodMode {};
class adminFreeze {};
class adminMarkers {};
};
&lt;/pre&gt;
&lt;p&gt;3 . Aller dans stringtable.xml (Qui se trouve à la racine de votre mission)  et modifié Admin Menu&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
&lt;Key ID="STR_Admin_Spectate"&gt;
&lt;Original&gt;Spectate&lt;/Original&gt;
&lt;English&gt;Spectate&lt;/English&gt;
&lt;German&gt;Zuschauen&lt;/German&gt;
&lt;French&gt;Regardez&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_Admin_Teleport"&gt;
&lt;Original&gt;Teleport&lt;/Original&gt;
&lt;English&gt;Teleport&lt;/English&gt;
&lt;German&gt;Teleport&lt;/German&gt;
&lt;French&gt;Teleport&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_Admin_TpHere"&gt;
&lt;Original&gt;TP Here&lt;/Original&gt;
&lt;English&gt;TP Here&lt;/English&gt;
&lt;German&gt;TP Hier&lt;/German&gt;
&lt;French&gt;TP Ici&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_Admin_Debug"&gt;
&lt;Original&gt;Debug&lt;/Original&gt;
&lt;English&gt;Debug&lt;/English&gt;
&lt;German&gt;Debug&lt;/German&gt;
&lt;French&gt;Debug&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_Admin_Compensate"&gt;
&lt;Original&gt;Comp&lt;/Original&gt;
&lt;English&gt;Comp&lt;/English&gt;
&lt;German&gt;Comp&lt;/German&gt;
&lt;French&gt;Comp&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_Admin_God"&gt;
&lt;Original&gt;GodMode&lt;/Original&gt;
&lt;English&gt;GodMode&lt;/English&gt;
&lt;German&gt;Gott&lt;/German&gt;
&lt;French&gt;Dieu&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_Admin_Freeze"&gt;
&lt;Original&gt;Freeze&lt;/Original&gt;
&lt;English&gt;Freeze&lt;/English&gt;
&lt;German&gt;Freeze&lt;/German&gt;
&lt;French&gt;Geler&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_Admin_Markers"&gt;
&lt;Original&gt;Markers&lt;/Original&gt;
&lt;English&gt;Markers&lt;/English&gt;
&lt;German&gt;Markers&lt;/German&gt;
&lt;French&gt;Markers&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_ANOTF_CompWarn"&gt;
&lt;Original&gt;You are about to give yourself $%1 to compensate to another player &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;You must give this cash to the person you are compensating manually.&lt;/Original&gt;
&lt;English&gt;You are about to give yourself $%1 to compensate to another player &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;You must give this cash to the person you are compensating manually.&lt;/English&gt;
&lt;German&gt;To Be Changed&lt;/German&gt;
&lt;French&gt;Vous êtes sur le point de vous donner $%1 pour compenser à un autre joueur &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt; S'il vous plaît donner à cette à la personne vous compensez manuellement&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_ANOTF_Success"&gt;
&lt;Original&gt;You have added $%1 to your account.&lt;/Original&gt;
&lt;English&gt;You have added $%1 to your account.&lt;/English&gt;
&lt;German&gt;To Be Changed&lt;/German&gt;
&lt;French&gt;Vous avez ajouté $%1 à votre compte&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_ANOTF_Fail"&gt;
&lt;Original&gt;You can not go above 999999.&lt;/Original&gt;
&lt;English&gt;You can not go above 999999.&lt;/English&gt;
&lt;German&gt;To Be Changed&lt;/German&gt;
&lt;French&gt;Vous ne pouvez pas aller au-dessus $999999&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_ANOTF_Amount"&gt;
&lt;Original&gt;Please type in the amount to compensate.&lt;/Original&gt;
&lt;English&gt;Please type in the amount to compensate.&lt;/English&gt;
&lt;German&gt;To Be Changed&lt;/German&gt;
&lt;French&gt;S'il vous plaît entrer la quantité pour compenser&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_ANOTF_Frozen"&gt;
&lt;Original&gt;You have disabled %1's input.&lt;/Original&gt;
&lt;English&gt;You have disabled %1's input.&lt;/English&gt;
&lt;German&gt;To Be Changed&lt;/German&gt;
&lt;French&gt;Vous avez désactivé %1's contrôles&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_ANOTF_Unfrozen"&gt;
&lt;Original&gt;You have enabled %1's input.&lt;/Original&gt;
&lt;English&gt;You have enabled %1's input.&lt;/English&gt;
&lt;German&gt;To Be Changed&lt;/German&gt;
&lt;French&gt;Vous avez permis %1's contrôles&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_ANOTF_Error"&gt;
&lt;Original&gt;You can't do that dumbass.&lt;/Original&gt;
&lt;English&gt;You can't do that dumbass.&lt;/English&gt;
&lt;German&gt;To Be Changed&lt;/German&gt;
&lt;French&gt;Vous ne pouvez pas le faire sur vous-même&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_ANOTF_ErrorLevel"&gt;
&lt;Original&gt;Your Admin Level is not high enough.&lt;/Original&gt;
&lt;English&gt;Your Admin Level is not high enough.&lt;/English&gt;
&lt;German&gt;To Be Changed&lt;/German&gt;
&lt;French&gt;Votre Niveau admin n'est pas suffisamment élevée&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_ANOTF_MDisabled"&gt;
&lt;Original&gt;Player Markers Disabled.&lt;/Original&gt;
&lt;English&gt;Player Markers Disabled.&lt;/English&gt;
&lt;German&gt;To Be Changed&lt;/German&gt;
&lt;French&gt;Needs Translation&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_ANOTF_MEnabled"&gt;
&lt;Original&gt;Player Markers Enabled.&lt;/Original&gt;
&lt;English&gt;Player Markers Enabled.&lt;/English&gt;
&lt;German&gt;To Be Changed&lt;/German&gt;
&lt;French&gt;Needs Translation&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_NOTF_ActionCancel"&gt;
&lt;Original&gt;Action Cancelled&lt;/Original&gt;
&lt;English&gt;Action Cancelled&lt;/English&gt;
&lt;German&gt;Aktion abgebrochen&lt;/German&gt;
&lt;French&gt;Action Annulée&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_Global_Yes"&gt;
&lt;Original&gt;Yes&lt;/Original&gt;
&lt;English&gt;Yes&lt;/English&gt;
&lt;German&gt;Ja&lt;/German&gt;
&lt;French&gt;Oui&lt;/French&gt;
&lt;/Key&gt;
&lt;Key ID="STR_Global_No"&gt;
&lt;Original&gt;No&lt;/Original&gt;
&lt;English&gt;No&lt;/English&gt;
&lt;German&gt;Nein&lt;/German&gt;
&lt;French&gt;Aucun&lt;/French&gt;
&lt;/Key&gt;
&lt;/pre&gt;
&lt;p&gt;4 . Toujours dans le même fichier juste en dessous Modifié Notification admin &lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
&lt;Key ID="STR_NOTF_Frozen"&gt;
&lt;Original&gt;You have been frozen by an administrator&lt;/Original&gt;
&lt;English&gt;You have been frozen by an administrator&lt;/English&gt;
&lt;German&gt;To Be Changed&lt;/German&gt;
&lt;/Key&gt;
&lt;Key ID="STR_NOTF_Unfrozen"&gt;
&lt;Original&gt;You have been unfrozen by an administrator&lt;/Original&gt;
&lt;English&gt;You have been unfrozen by an administrator&lt;/English&gt;
&lt;German&gt;To Be Changed&lt;/German&gt;
&lt;/Key&gt;
&lt;/pre&gt;
&lt;p&gt;5 . &lt;strong&gt;dialog\admin_menu.hpp&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
class life_admin_menu {
idd = 2900;
name= "life_admin_menu";
movingEnable = false;
enableSimulation = true;
onLoad = "[] spawn life_fnc_adminMenu;";
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 - (2 / 250);
    };
};

class controls {

    
    class Title : Life_RscTitle {
        colorBackground[] = {0, 0, 0, 0};
        idc = 2901;
        text = "$STR_Admin_Title";
        x = 0.1;
        y = 0.2;
        w = 0.6;
        h = (1 / 25);
    };
    
    class PlayerList_Admin : Life_RscListBox
    {
        idc = 2902;
        text = "";
        sizeEx = 0.035;
        //colorBackground[] = {0,0,0,0};
        onLBSelChanged = "[_this] spawn life_fnc_adminQuery";
        
        x = 0.12; y = 0.26;
        w = 0.30; h = 0.4;
    };
    
    class PlayerBInfo : Life_RscStructuredText
    {
        idc = 2903;
        text = "";
        x = 0.42;
        y = 0.25;
        w = 0.35;
        h = 0.6;
    };

    class CloseButtonKey : Life_RscButtonMenu {
        idc = -1;
        text = "$STR_Global_Close";
        onButtonClick = "closeDialog 0;";
        x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
        y = 0.88 - (1 / 25);
        w = (6.25 / 40);
        h = (1 / 25);
    };
    
    class AdminID : Life_RscButtonMenu {
        idc = -1;
        text = "$STR_Admin_GetID";
        onButtonClick = "[] call life_fnc_admingetID;";
        x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
        y = 0.88 - (1 / 25);
        w = (6.25 / 40);
        h = (1 / 25);
    };
    
    class Compensate : Life_RscButtonMenu {
        idc = 2904;
        text = "$STR_Admin_Compensate";
        onButtonClick = "createDialog ""Life_Admin_Compensate"";";
        x = 0.26 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
        y = 0.88 - (1 / 25);
        w = (6.25 / 40);
        h = (1 / 25);
    };
    class Spectate : Life_RscButtonMenu {
        idc = 2905;
        text = "$STR_Admin_Spectate";
        onButtonClick = "[] call life_fnc_adminSpectate;";
        x = 0.42 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
        y = 0.88 - (1 / 25);
        w = (6.25 / 40);
        h = (1 / 25);
    };
    class Teleport : Life_RscButtonMenu {
        idc = 2906;
        text = "$STR_Admin_Teleport";
        onButtonClick = "[] call life_fnc_adminTeleport; hint 'Select where you would like to teleport';";
        x = 0.58 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
        y = 0.88 - (1 / 25);
        w = (6.25 / 40);
        h = (1 / 25);
    };
    class TeleportHere : Life_RscButtonMenu {
        idc = 2907;
        text = "$STR_Admin_TpHere";
        onButtonClick = "[] call life_fnc_adminTpHere;";
        x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
        y = 0.885;
        w = (6.25 / 40);
        h = (1 / 25);
    };
    class God : Life_RscButtonMenu {
        idc = 2908;
        text = "$STR_Admin_God";
        onButtonClick = "[] call life_fnc_adminGodMode;";
        x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
        y = 0.885;
        w = (6.25 / 40);
        h = (1 / 25);
    };
    class Freeze : Life_RscButtonMenu {
        idc = 2909;
        text = "$STR_Admin_Freeze";
        onButtonClick = "[] call life_fnc_adminFreeze;";
        x = 0.26 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
        y = 0.885;
        w = (6.25 / 40);
        h = (1 / 25);
    };
    class Markers : Life_RscButtonMenu {
        idc = 2910;
        text = "$STR_Admin_Markers";
        onButtonClick = "[] spawn life_fnc_adminMarkers;";
        x = 0.42 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
        y = 0.885;
        w = (6.25 / 40);
        h = (1 / 25);
    };
    class Debug : Life_RscButtonMenu {
        idc = 2911;
        text = "$STR_Admin_Debug";
        onButtonClick = "hint 'Disabled';";
        x = 0.58 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
        y = 0.885;
        w = (6.25 / 40);
        h = (1 / 25);
    };
};

};
&lt;/pre&gt;
&lt;p&gt;6 . &lt;strong&gt;dialog\compensate.hpp&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
class Life_Admin_Compensate {
idd = 9920;
name= "life_admin_compensate_give";
movingEnable = false;
enableSimulation = true;
onLoad = "[] spawn {waitUntil {!isNull (findDisplay 9920)}; ((findDisplay 9920) displayCtrl 9921) ctrlSetText localize ""STR_Admin_Amount""};";
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.5;
        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.5;
        h = 0.3 - (22 / 250);
    };
};

class controls {

    class InfoMsg : Life_RscStructuredText
    {
        idc = 9921;
        sizeEx = 0.020;
        text = "";
        x = 0.1;
        y = 0.25;
        w = 0.5; h = 0.11;
    };
    
    class Title : Life_RscTitle {
        colorBackground[] = {0, 0, 0, 0};
        idc = -1;
        text = "$STR_Admin_Compensate";
        x = 0.1;
        y = 0.2;
        w = 0.5;
        h = (1 / 25);
    };

    class AdminCloseComp : Life_RscButtonMenu {
        idc = -1;
        text = "$STR_Global_Close";
        onButtonClick = "closeDialog 0;";
        x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
        y = 0.5 - (1 / 25);
        w = (6.25 / 40);
        h = (1 / 25);
    };
    
    class AdminCompensVer : Life_RscButtonMenu {
        idc = -1;
        text = "$STR_Admin_Compensate";
        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 = "[] spawn life_fnc_adminCompensate;";
        x = 0.27;
        y = 0.40;
        w = (6.25 / 40);
        h = (1 / 25);
    };
    
    class AdminCompensTex : Life_RscEdit
    {
        idc = 9922;
        text = "";
        x = 0.04 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
        y = 0.35;
        w = (13 / 40);
        h = (1 / 25);
    };
};

};
&lt;/pre&gt;
&lt;p&gt;7.  &lt;strong&gt;dialog\MasterHandler.h&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
#include "compensate.hpp"
&lt;/pre&gt;
&lt;p&gt;8 . &lt;strong&gt;core\admin\fn_adminMenu.sqf&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
#include &lt;macro.h&gt;
/*
File: fn_adminMenu.sqf
Author: Bryan "Tonic" Boardwine
Description:
Opens the admin menu, sorry nothing special in here. Take a look for yourself.

*/
if(GETC(life_adminlevel) &lt; 1) exitWith {closeDialog 0;};
private["_display","_list","_side"];
disableSerialization;
waitUntil {!isNull (findDisplay 2900)};
_display = findDisplay 2900;
_list = _display displayCtrl 2902;
if(GETC(life_adminlevel) &lt; 1) exitWith {closeDialog 0;};
switch(GETC(life_adminlevel)) do
{
case 1: {ctrlShow [2904,false];ctrlShow [2905,false];ctrlShow [2906,false];ctrlShow [2907,false];ctrlShow [2908,false];ctrlShow [2909,false];ctrlShow [2910,false];ctrlShow [2911,false];};
case 2: {ctrlShow [2905,false];ctrlShow [2906,false];ctrlShow [2907,false];ctrlShow [2908,false];ctrlShow [2909,false];ctrlShow [2910,false];ctrlShow [2911,false];};
case 3: {ctrlShow [2907,false];ctrlShow [2908,false];ctrlShow [2909,false];ctrlShow [2910,false];ctrlShow [2911,false];};
case 4: {[2911,false];};
};
//Purge List
lbClear _list;
{
_side = switch(side _x) do {case west: {"Cop"}; case civilian : {"Civ"}; case independent : {"Med"}; default {"Unknown"};};
_list lbAdd format["%1 - %2", _x getVariable["realname",name _x],_side];
_list lbSetdata [(lbSize _list)-1,str(_x)];
} foreach playableUnits;
if(GETC(life_adminlevel) &lt; 1) exitWith {closeDialog 0;};
&lt;/pre&gt;
&lt;p&gt;9 . &lt;strong&gt;core\admin\fn_adminSpectate.sqf&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
#include &lt;macro.h&gt;
/*
File: fn_adminSpectate.sqf
Author: ColinM9991
Description:
Spectate the chosen player.

*/
if(GETC(life_adminlevel) == 0) exitWith {closeDialog 0;};
private["_unit"];
_unit = lbData[2902,lbCurSel (2902)];
_unit = call compile format["%1", _unit];
if(isNil "_unit") exitwith {};
if(isNull _unit) exitWith {};
if(_unit == player) exitWith {hint localize "STR_ANOTF_Error";};
[] spawn {
while {dialog} do {
closeDialog 0;
sleep 0.01;
};
};
_unit switchCamera "INTERNAL";
hint format["You are now spectating %1 \n\n Press F10 to stop Spectating.",_unit getVariable["realname",name _unit]];
AM_Exit = (findDisplay 46) displayAddEventHandler ["KeyDown","if((_this select 1) == 68) then {(findDisplay 46) displayRemoveEventHandler ['KeyDown',AM_Exit];player switchCamera 'INTERNAL';hint 'You have stopped spectating';};false"];
&lt;/pre&gt;
&lt;p&gt;10 . &lt;strong&gt;core\admin\fn_adminTeleport.sqf&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
#include &lt;macro.h&gt;
/*
File: fn_adminTeleport.sqf
Author: ColinM9991
Credits: To original script author(s)
Description:
Teleport to chosen position.
*/
if(GETC(life_adminlevel) == 0) exitWith {closeDialog 0;};
[] spawn {
while {dialog} do {
closeDialog 0;
sleep 0.01;
};
};
tele={
_pos = [_this select 0, _this select 1, _this select 2];
(vehicle player) setpos [_pos select 0, _pos select 1, 0];
onMapSingleClick "";
openMap [false, false];
hint "You have teleported to your selected position";
};
openMap [true, false];
onMapSingleClick "[_pos select 0, _pos select 1, _pos select 2] call tele";
&lt;/pre&gt;
&lt;p&gt;11. &lt;strong&gt;core\admin\fn_adminTpHere.sqf&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
#include &lt;macro.h&gt;
/*
File: fn_adminTpHere.sqf
Author: ColinM9991
Description:
Teleport selected player to you.

*/
if(GETC(life_adminlevel) == 0) exitWith {closeDialog 0;};
private["_target"];
_target = lbData[2902,lbCurSel (2902)];
_target = call compile format["%1", _target];
if(isNil "_target") exitwith {};
if(isNull _target) exitWith {};
if(_unit == player) exitWith {hint localize "STR_ANOTF_Error";};
_target setPos (getPos player);
hint format["You have teleported %1 to your location",_target getVariable["realname",name _target]];
&lt;/pre&gt;
&lt;p&gt;12. &lt;strong&gt;core\admin\fn_adminCompensate.sqf&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
#include &lt;macro.h&gt;
/*
File: fn_adminCompensate.sqf
Author: ColinM9991
Description:
Figure it out.

*/
private["_value","_action"];
if(GETC(life_adminlevel) &lt; 2) exitWith {closeDialog 0; hint localize "STR_ANOTF_ErrorLevel";};
_value = parseNumber(ctrlText 9922);
if(_value &lt; 0) exitWith {};
if(_value &gt; 999999) exitWith {hint localize "STR_ANOTF_Fail"};
//if(!([str(_value)] call life_fnc_isnumeric)) exitWith {hint localize "STR_AIM_notnumeric"};
_action = [
format [localize "STR_ANOTF_CompWarn",[_value] call life_fnc_numberText],
localize "STR_Admin_Compensate",
localize "STR_Global_Yes",
localize "STR_Global_No"
] call BIS_fnc_guiMessage;
if(_action) then {
life_cash = life_cash + _value;
hint format [localize "STR_ANOTF_Success",[_value] call life_fnc_numberText];
closeDialog 0;
} else {
hint localize "STR_NOTF_ActionCancel";
closeDialog 0;
};
&lt;/pre&gt;
&lt;p&gt;13.  &lt;strong&gt;core\admin\fn_adminDebugCon.sqf&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
#include &lt;macro.h&gt;
/*
File: fn_adminDebugCon.sqf
Author: ColinM9991
Description:
Opens the Debug Console.

*/
if(GETC(life_adminlevel) &lt; 3) exitWith {closeDialog 0; hint "You have no business using this";};
createDialog "RscDisplayDebugPublic";
[[0,format["Admin %1 has opened the Debug Console.",profileName]],"life_fnc_broadcast",nil,false] spawn life_fnc_MP;
&lt;/pre&gt;
&lt;p&gt;14. &lt;strong&gt;core\admin\fn_adminGodMode.sqf&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
#include &lt;macro.h&gt;
/*
File: fn_adminGodMode.sqf
Author: Tobias 'Xetoxyc' Sittenauer
Description: Enables God mode for Admin

*/
if(GETC(life_adminlevel) &lt; 3) exitWith {closeDialog 0; hint localize "STR_ANOTF_ErrorLevel";};
[] spawn {
while {dialog} do {
closeDialog 0;
sleep 0.01;
};
};
if(life_god) then {
life_god = false;
titleText ["God mode disabled","PLAIN"]; titleFadeOut 2;
player allowDamage true;
} else {
life_god = true;
titleText ["God mode enabled","PLAIN"]; titleFadeOut 2;
player allowDamage false;
};
&lt;/pre&gt;
&lt;p&gt;15. &lt;strong&gt;core\admin\fn_adminFreeze.sqf&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
#include &lt;macro.h&gt;
/*
File: fn_adminFreeze.sqf
Author: ColinM9991
Description: Freezes selected player

*/
if(GETC(life_adminlevel) &lt; 3) exitWith {closeDialog 0; hint localize "STR_ANOTF_ErrorLevel";};
private["_unit"];
_unit = lbData[2902,lbCurSel (2902)];
_unit = call compile format["%1", _unit];
if(isNil "_unit") exitWith {};
if(isNull _unit) exitWith {};
if(_unit == player) exitWith {hint localize "STR_ANOTF_Error";};
[[player],"life_fnc_freezePlayer",_unit,false] spawn life_fnc_MP;
&lt;/pre&gt;
&lt;p&gt;16 . &lt;strong&gt;core\admin\fn_adminMarkers.sqf&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
#include &lt;macro.h&gt;
/*
File: fn_adminMarkers.sqf
Sourced from Lystics Player Markers Loop
/
if(GETC(life_adminlevel) &lt; 3) exitWith {closeDialog 0; hint localize "STR_ANOTF_ErrorLevel";};
life_markers = !life_markers;
if(life_markers) then {
PlayerMarkers = [];
FinishedLoop = false;
hint localize "STR_ANOTF_MEnabled";
while{life_markers} do {
{
if !(_x in allUnits) then {
deleteMarkerLocal str _x;
};
} forEach PlayerMarkers;
PlayerMarkers = [];
{
if(alive _x &amp;&amp; isplayer _x) then {
deleteMarkerLocal str _x;
_pSee = createMarkerLocal [str _x,getPos _x];
_pSee setMarkerTypeLocal "mil_triangle";
_pSee setMarkerPosLocal getPos _x;
_pSee setMarkerSizeLocal [1,1];
_pSee setMarkerTextLocal format['%1',_x getVariable["realname",name _x]];
_pSee setMarkerColorLocal ("ColorRed");
PlayerMarkers = PlayerMarkers + [_x];
};
} forEach allUnits;
sleep 0.2;
};
FinishedLoop = true;
} else {
if(isNil "FinishedLoop") exitWith {};
hint localize "STR_ANOTF_MDisabled";
waitUntil{FinishedLoop};
{
deleteMarkerLocal str _x;
} forEach PlayerMarkers;
};
&lt;/pre&gt;
&lt;p&gt;17. &lt;strong&gt;core\configuration.sqf&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
life_god = false; //Add this
life_frozen = false; //And this
life_markers = false; //Finally this
&lt;/pre&gt;
&lt;p&gt;18 . &lt;strong&gt;Nouveau fichier dans core\civilian est nommé le &lt;/strong&gt;&lt;strong&gt;fn_freezePlayer.sqf&lt;/strong&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
#include &lt;macro.h&gt;
/
File: fn_freezePlayer.sqf
Author: ColinM9991
Description: Freezes selected player

*/
private["_admin"];
_admin = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param;
if(life_frozen) then {
hint localize "STR_NOTF_Unfrozen";
[[1,format[localize "STR_ANOTF_Unfrozen",profileName]],"life_fnc_broadcast",_admin,false] spawn life_fnc_MP;
disableUserInput false;
life_frozen = false;
} else {
hint localize "STR_NOTF_Frozen";
[[1,format[localize "STR_ANOTF_Frozen",profileName]],"life_fnc_broadcast",_admin,false] spawn life_fnc_MP;
disableUserInput true;
life_frozen = true;
};
&lt;/pre&gt;
&lt;p&gt;Voila , aurevoir et au fait je suis de retour  &lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1327/admin-menu-3148</link><guid isPermaLink="true">https://melinyel.net/topic/1327/admin-menu-3148</guid><dc:creator><![CDATA[ArrowDark]]></dc:creator><pubDate>Mon, 17 Nov 2014 15:13:29 GMT</pubDate></item><item><title><![CDATA[Ajouter la bourse !]]></title><description><![CDATA[&lt;p&gt;Bonjour à tous, aujourd'hui je vais traduire un tutoriel pour ajouter la bourse, source : altisliferpg.com&lt;br/&gt;&lt;br/&gt;
1 - Allez dans votre functions.h et ajouter ceci à la fin :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
class Market{	file = "core\market";	class openMarketView;	class refreshMarketView;	class marketShortView;	class marketBuy;	class marketSell;	class marketGetBuyPrice;	class marketGetSellPrice;	class marketconfiguration;	class marketReset;	class marketChange;	class marketGetRow;	class marketGetPriceRow;	class marketSetPriceRow;};&lt;/pre&gt;
&lt;p&gt;Dans le fichier functions.h à nouveau, ajouter ceci en dessous de la class functions :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
class Functions{	file = "core\functions";				class randomRound {}; // &lt;--------- add this};&lt;/pre&gt;
&lt;p&gt;2 - Allez dans le dossier Dialog et copier les 2 fichiers disponibles dans le .zip et ouvrer votre MasterHandler.h et ajouter ceci :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
#include "common_EditorWrapper.hpp"#include "market.hpp"&lt;/pre&gt;
&lt;p&gt;3 - Ouvrez votre fn_virt_sell.sqf dans core/shops&lt;br/&gt;&lt;br/&gt;
Ajoutez à private ceci ["_marketprice"];&lt;br/&gt;
Comme ceci :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
private["_type","_index","_price","_var","_amount","_name","_marketprice"];&lt;/pre&gt;
&lt;p&gt;Maintenant trouver cette ligne :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
_price = (GETC(sell_array) select _index) select 1;_var = [_type,0] call life_fnc_varHandle;&lt;/pre&gt;
&lt;p&gt;Ajoutez ceci en dessous :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
_marketprice = [_type] call life_fnc_marketGetSellPrice;if(_marketprice != -1) then{	_price = _marketprice;};&lt;/pre&gt;
&lt;p&gt;Trouvez cette ligne :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
life_cash = life_cash + _price;&lt;/pre&gt;
&lt;p&gt;Ajoutez ceci en dessous :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
if(_marketprice != -1) then { 	[_type, _amount] spawn	{		sleep 120;		[_this select 0,_this select 1] call life_fnc_marketSell;	};};&lt;/pre&gt;
&lt;p&gt;4- Fermer le fichier et ouvrer le fichier fn_virt_update.sqf dans le même dossier&lt;br/&gt;&lt;br/&gt;
Ajoutez à private ceci ["_marketprice"];&lt;br/&gt;
Comme ceci :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
private["_type","_index","_price","_var","_amount","_name","_marketprice"];&lt;/pre&gt;
&lt;p&gt;Maintenant trouvez cette ligne :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
_price = (GETC(buy_array) select _index) select 1;&lt;/pre&gt;
&lt;p&gt;Ajoutez ceci en dessous:&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
marketprice = [_x] call life_fnc_marketGetBuyPrice;if(_marketprice != -1) then{	_price = _marketprice;};&lt;/pre&gt;
&lt;p&gt;A la fin du fichier ajoutez ceci :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
//Call short view here[_shop_data select 1] spawn life_fnc_marketShortView;&lt;/pre&gt;
&lt;p&gt;Comme ceci :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
if(_val &gt; 0) then	{		_gear_list lbAdd format["%1x %2",_val,_name];		_gear_list lbSetData [(lbSize _gear_list)-1,_x];	};} foreach (_shop_data select 1); //Call short view here // this its the new line to add[_shop_data select 1] spawn life_fnc_marketShortView; // this its the new line to add&lt;/pre&gt;
&lt;p&gt;5 - Fermer le fichier et ouvrez fn_virt_buy.sqf aussi dans le même dossier&lt;br/&gt;&lt;br/&gt;
Ajoutez à private ceci :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
"_marketprice"&lt;/pre&gt;
&lt;p&gt;Comme ceci :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
private["_type","_price","_amount","_diff","_name","_hideout","_marketprice"];&lt;/pre&gt;
&lt;p&gt;Trouvez cette ligne :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
_amount = ctrlText 2404;&lt;/pre&gt;
&lt;p&gt;Ajoutez ceci en dessous:&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
_marketprice = [_type] call life_fnc_marketGetBuyPrice;if(_marketprice != -1) then{	_price = _marketprice;};&lt;/pre&gt;
&lt;p&gt;Trouvez cette ligne :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
SUB(life_cash,(_price * _amount));&lt;/pre&gt;
&lt;p&gt;Ajoutez ceci en dessous:&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
if(_marketprice != -1) then { 	//##94	[_type, _amount] spawn	{		sleep 120;		[_this select 0,_this select 1] call life_fnc_marketBuy;	};			};&lt;/pre&gt;
&lt;p&gt;6 - Ouvrer le fichier dialog\player_inv.hpp&lt;br/&gt;&lt;br/&gt;
En dessous de ceci :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
class ButtonSyncData : life_RscButtonMenu {	idc = -1;	//shortcuts[] = {0x00050000 + 2};	text = "$STR_PM_SyncData";	onButtonClick = "[] call SOCK_fnc_syncData;";	x = 0.1;	y = 0.805;	w = (6.25 / 40);	h = (1 / 25);};&lt;/pre&gt;
&lt;p&gt;Ajoutez ceci :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
class ButtonMarket : Life_RscButtonMenu {	idc = -1;	text = "Bourse";	onButtonClick = "[] spawn life_fnc_openMarketView;";	//x = 0.26 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH));	x = 0.26 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH));	y = 0.805;	w = (6.25 / 40);	h = (1 / 25);};&lt;/pre&gt;
&lt;p&gt;Ouvrez le fichier init.sqf dans VOTRENOMDEMISSION\init.sqf et en dessous de :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
[] execVM "briefing.sqf"; //Load Briefing[] execVM "KRON_Strings.sqf";&lt;/pre&gt;
&lt;p&gt;Ajoutez ça :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
if(isDedicated &amp;&amp; isNil("life_market_prices")) then{[] call life_fnc_marketconfiguration;diag_log "Market prices generated!"; "life_market_prices" addPublicVariableEventHandler{diag_log format["Market prices updated! %1", _this select 1];}; //Start server fsm[] execFSM "core\fsm\server.fsm";diag_log "Server FSM executed";};&lt;/pre&gt;
&lt;p&gt;Et pour la dernière étape allez dans core\fsm and déplacer le fichier server.fsm dispo dans le .zip&lt;br/&gt;&lt;br/&gt;
Désormais vous avez votre système de bourse, enjoy  &lt;br/&gt;&lt;br/&gt;
Pour le kick par BattlEye, il suffit d'ajouter ces lignes dans Battleye\publicvariable.txt :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
1 "" !="life_HC_isActive" !="HC_UID"7 "" !="life_market_shortnames" !="life_fnc_MP_packet" !="BIS_fnc_MP_packet" !="JipTimeNow" !="life_HC_isActive" !="HC_UID" !="life_gang_list" !="bank_addfunds" !="life_market_prices" !="IL_SetMass" !="IL_SetScore" !="IL_SetDir" !="life_market_resources" !="bis_fnc_execvm" !="Life_fnc_execvm"&lt;/pre&gt;
&lt;p&gt;Maintenant pour la version 3.1.4.6+ changez le fichier fn_virt_sell.sqf danscore/shops remplacez le par ceci :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
#include &lt;macro.h&gt;/*    File: fn_virt_sell.sqf    Author: Bryan "Tonic" Boardwine        Description:    Sell a virtual item to the store / shop*/ private["_type","_index","_price","_var","_amount","_name","_marketprice"];if((lbCurSel 2402) == -1) exitWith {};_type = lbData[2402,(lbCurSel 2402)];_index = [_type,GETC(sell_array)] call fnc_index;if(_index == -1) exitWith {};_price = (GETC(sell_array) select _index) select 1;_var = [_type,0] call life_fnc_varHandle;_marketprice = [_type] call life_fnc_marketGetSellPrice;if(_marketprice != -1) then{    _price = _marketprice;}; _amount = ctrlText 2405;if(!([_amount] call fnc_isnumber)) exitWith {hint localize "STR_Shop_Virt_NoNum";};_amount = parseNumber (_amount);if(_amount &gt; (missionNameSpace getVariable _var)) exitWith {hint localize "STR_Shop_Virt_NotEnough"}; _price = (_price * _amount);_name = [_var] call life_fnc_vartostr;if(([false,_type,_amount] call life_fnc_handleInv)) then{    hint format[localize "STR_Shop_Virt_SellItem",_amount,_name,[_price] call life_fnc_numberText];    life_cash = life_cash + _price;    if(_marketprice != -1) then        {            [_type, _amount] spawn            {                sleep 120;                [_this select 0,_this select 1] call life_fnc_marketSell;            };    };    [] call life_fnc_virt_update;	}; if(life_shop_type == "heroin") then{    private["_array","_ind","_val"];    _array = life_shop_npc getVariable["sellers",[]];    _ind = [getPlayerUID player,_array] call fnc_index;    if(_ind != -1) then    {        _val = (_array select _ind) select 2;        _val = _val + _price;        _array set[_ind,[getPlayerUID player,profileName,_val]];        life_shop_npc setVariable["sellers",_array,true];    }        else    {        _array set[count _array,[getPlayerUID player,profileName,_price]];        life_shop_npc setVariable["sellers",_array,true];    };};&lt;/pre&gt;
&lt;p&gt;Merci à : Linxy pour son aide&lt;br/&gt;&lt;br/&gt;
Touts les fichiers nécessaire (.zip) : &lt;a href="https://mega.co.nz/#!fZFQjJbB!OGIlZTYFW-ZT-czIiOE8k6GPBFa056TcJTR8u9T6jS8" rel="external nofollow"&gt;https://mega.co.nz/#!fZFQjJbB!OGIlZTYFW-ZT-czIiOE8k6GPBFa056TcJTR8u9T6jS8&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
Patch 3.1.4.8: Copiez les fichiers suivant spécifiques :&lt;br/&gt;&lt;br/&gt;
fn.Virt_sell.sqf&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
#include &lt;macro.h&gt;/*	File: fn_virt_sell.sqf	Author: Bryan "Tonic" Boardwine		Description:	Sell a virtual item to the store / shop*/private["_type","_index","_price","_var","_amount","_name","_marketprice"];if((lbCurSel 2402) == -1) exitWith {};_type = lbData[2402,(lbCurSel 2402)];_index = [_type,GETC(sell_array)] call TON_fnc_index;if(_index == -1) exitWith {};_price = (GETC(sell_array) select _index) select 1;_var = [_type,0] call life_fnc_varHandle;////Marktsystem Anfang////_marketprice = [_type] call life_fnc_marketGetSellPrice;if(_marketprice != -1) then{	_price = _marketprice;};////Marktsystem Ende//// _amount = ctrlText 2405;if(!([_amount] call fnc_isnumber)) exitWith {hint "You didn't enter an actual number";};_amount = parseNumber (_amount);if(_amount &gt; (missionNameSpace getVariable _var)) exitWith {hint "You don't have that many items to sell!"}; _price = (_price * _amount);_name = [_var] call life_fnc_vartostr;if(([false,_type,_amount] call life_fnc_handleInv)) then{	hint format["You sold %1 %2 for $%3",_amount,_name,[_price] call life_fnc_numberText];	life_cash = life_cash + _price;	////Marktsystem Anfang////	if(_marketprice != -1) then 	{ 		[_type, _amount] spawn		{			sleep 120;			[_this select 0,_this select 1] call life_fnc_marketSell;		};	////Marktsystem Ende////	};	[] call life_fnc_virt_update;	}; if(life_shop_type == "heroin") then{	private["_array","_ind","_val"];	_array = life_shop_npc getVariable["sellers",[]];	_ind = [getPlayerUID player,_array] call TON_fnc_index;	if(_ind != -1) then	{		_val = (_array select _ind) select 2;		_val = _val + _price;		_array set[_ind,[getPlayerUID player,profileName,_val]];		life_shop_npc setVariable["sellers",_array,true];	}		else	{		_array pushBack _array,[getPlayerUID player,profileName,_price]];		life_shop_npc setVariable["sellers",_array,true];	};};&lt;/pre&gt;
&lt;p&gt;fn.virt_update.sqf&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
#include &lt;macro.h&gt;/*	File: fn_virt_update.sqf	Author: Bryan "Tonic" Boardwine		Description:	Update and fill the virtual shop menu.*/private["_display","_item_list","_gear_list","_shop_data","_name","_price","_marketprice"];disableSerialization; //Setup control vars._display = findDisplay 2400;_item_list = _display displayCtrl 2401;_gear_list = _display displayCtrl 2402; //Purge listlbClear _item_list;lbClear _gear_list; _shop_data = [life_shop_type] call life_fnc_virt_shops;ctrlSetText[2403,format["%1", _shop_data select 0]]; {	_name = [([_x,0] call life_fnc_varHandle)] call life_fnc_vartostr;	_index = [_x,GETC(buy_array)] call TON_fnc_index;	if(_index != -1) then	{		_price = (GETC(buy_array) select _index) select 1;		////Marktsystem Anfang////		_marketprice = [_x] call life_fnc_marketGetBuyPrice;		if(_marketprice != -1) then		{			_price = _marketprice;		};		////Marktsystem Ende////		_item_list lbAdd format["%1  ($%2)",_name,[_price] call life_fnc_numberText];		_item_list lbSetData [(lbSize _item_list)-1,_x];		_item_list lbSetValue [(lbSize _item_list)-1,_price];	};} foreach (_shop_data select 1); {	_var = [_x,0] call life_fnc_varHandle;	_val = missionNameSpace getVariable _var;	_name = [_var] call life_fnc_vartostr;		if(_val &gt; 0) then	{		_gear_list lbAdd format["%1x %2",_val,_name];		_gear_list lbSetData [(lbSize _gear_list)-1,_x];	};} foreach (_shop_data select 1); //Call short view here[_shop_data select 1] spawn life_fnc_marketShortView;&lt;/pre&gt;
&lt;p&gt;And a little exemple for fix the xxxxxx in the market:&lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
["apple", 100, 50, 150, 4, 2,		[			["peach",1] &lt;------- no coma 		]	],  and for long line["cement", 2250, 250, 4250, 4, 2,		[ 			["diamondc",1], &lt;------- coma			["oilp",1],  &lt;------- coma			["iron_r",1],  &lt;------- coma			["copper_r",1],  &lt;------- coma			["salt_r",1],  &lt;------- coma			["glass",1] &lt;------- no coma		] 	],  Last items in your configurationmarket ["heroinp", 7000, 3000, 10000, 4, 4,   		[ 			["marijuana",1],   &lt;------- coma			["turtle",1],  &lt;------- coma			["cocainep",1] &lt;------- no coma		] 	]  &lt;------- no coma&lt;/pre&gt;
&lt;p&gt;Crédit : _Fuzz pour le tutoriel sur altisliferpg.com et EdgeKiller pour la traduction !&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1319/ajouter-la-bourse</link><guid isPermaLink="true">https://melinyel.net/topic/1319/ajouter-la-bourse</guid><dc:creator><![CDATA[vfrz]]></dc:creator><pubDate>Sun, 16 Nov 2014 21:50:59 GMT</pubDate></item><item><title><![CDATA[Créer une safezone]]></title><description><![CDATA[&lt;p&gt;Source : &lt;a href="http://altisdev.com/index.php?/topic/153-ajouter-des-safe-zones-script-anti-tir-dans-ces-zones/" rel="external nofollow"&gt;http://altisdev.com/index.php?/topic/153-ajouter-des-safe-zones-script-anti-tir-dans-ces-zones/&lt;/a&gt;&lt;br/&gt;
 &lt;br/&gt;&lt;strong&gt;1 -  Ouvrez votre mission.sqm avec l'éditeur Arma III&lt;/strong&gt;&lt;br/&gt;
 &lt;br/&gt;&lt;strong&gt;2 - Inserez un marqueur =&gt; Ellipse =&gt; Entrez un nom "&lt;span style="color:#ff0000;"&gt;safepyrgos&lt;/span&gt;" et Axe A et B = &lt;span style="color:#ff0000;"&gt;400&lt;/span&gt;&lt;/strong&gt;&lt;br/&gt;
 &lt;br/&gt;&lt;strong&gt;2a - Faites de même avec d'autres endroits sur la map.&lt;/strong&gt;&lt;br/&gt;
 &lt;br/&gt;&lt;strong&gt;3 - Sauvegardez votre mission.&lt;/strong&gt;&lt;br/&gt;
 &lt;br/&gt;
 &lt;br/&gt;
---------------------------------------------------------------------&lt;br/&gt;
 &lt;br/&gt;&lt;strong&gt;4 - Créez un fichier "safezone.sqf" et mettez le dans un dossier "scripts"&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;
DESCRIPTION:&lt;br/&gt;
Tue joueur tirant dans une zone safe&lt;br/&gt;&lt;br/&gt;
CONFIGURATION:&lt;br/&gt;
Edit the #defines below.&lt;br/&gt;
*/&lt;br/&gt;
 &lt;/p&gt;
&lt;pre class="ipsCode prettyprint lang-auto"&gt;
#define SAFETY_ZONES [["Safe_Kav", 600],["safepyrgos", 400]] // Syntax: [["marker1", radius1], ["marker2", radius2], ...]
#define MESSAGE "Tu es mort car tu as tiré dans une safe zone"
if (isDedicated) exitWith {};
waitUntil {!isNull player};
switch (playerSide) do
{
    case west:
    {};
    
    case civilian:
    {
player addEventHandler ["Fired", {
if ({(_this select 0) distance getMarkerPos (_x select 0) &lt; _x select 1} count SAFETY_ZONES &gt; 0) then
{
deleteVehicle (_this select 6);
             titleText [MESSAGE, "PLAIN", 3];
             player setDamage 1; //Pan t'es mort
             hint parseText format["&lt;t color='#01B0F0'&gt;&lt;t size ='2.5'&lt;t align='center'&gt;Safe Zone&lt;br/&gt;&lt;t color='#FFFFFF'&gt;&lt;t align='center'&gt;&lt;t size='1.5'&gt;Pas de tirs&lt;br/&gt;&lt;t color='#FFFFFF'&gt;&lt;t align='center'&gt;&lt;t size='1.5'&gt;Pas de vols&lt;br/&gt;&lt;t color='#FFFFFF'&gt;&lt;t align='center'&gt;&lt;t size='1.5'&gt;Pas de braquage&lt;br/&gt;&lt;t"];
             };
}];
    };
};&lt;/pre&gt;
&lt;p&gt;&lt;u&gt;&lt;strong&gt;5 - Dans "init.sqf", ajoutez :&lt;/strong&gt;&lt;/u&gt;&lt;br/&gt;
[] execVM "scripts\safezone.sqf";&lt;br/&gt;
 &lt;br/&gt;
Voilà, amusez vous bien  &lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1302/créer-une-safezone</link><guid isPermaLink="true">https://melinyel.net/topic/1302/créer-une-safezone</guid><dc:creator><![CDATA[subherox]]></dc:creator><pubDate>Sat, 08 Nov 2014 16:36:19 GMT</pubDate></item><item><title><![CDATA[Configuré son Serveur !]]></title><description><![CDATA[&lt;p&gt;Bonjour aujourd'hui pour mon troisième tuto (je prépare 2 autres tutos plus gros , je fait celui la pour comblé) Nous allons faire quelque chose de très simple mais qui peut s'avéré utile :&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;1)  Modifié ce que les objets mangables redonne en Soif/Nourriture :&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;- Aller dans votre Mission puis Core puis Config et pour finir ouvrer le dossier fn_eatFood :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
/*
File: fn_eatFood.sqf
Author: Bryan "Tonic" Boardwine
Description:
Main handling system for eating food.
*Needs to be revised and made more modular and more indept effects*

*/
private["_food","_val","_sum"];
_food = [_this,0,"",[""]] call BIS_fnc_param;
if(_food == "") exitWith {};
if([false,_food,1] call life_fnc_handleInv) then {
switch (_food) do
{
case "apple": {_val = 10};
case "rabbit":{ _val = 20};
case "salema": {_val = 30};
case "ornate": {_val = 25};
case "mackerel": {_val = 30};
case "tuna": {_val = 100};
case "mullet": {_val = 80};
case "catshark": {_val = 100};
case "turtle": {_val = 100};
case "turtlesoup": {_val = 100};
case "donuts": {_val = 30};
case "tbacon": {_val = 40};
case "peach": {_val = 10};
};
_sum = life_hunger + _val;
if(_sum &amp;gt; 100) then {_sum = 100; player setFatigue 1; hint "You have over eaten, you are now feeling fatigued.";};
life_hunger = _sum;

};
&lt;/pre&gt;
&lt;p&gt;Il suffit de changé le nombre de par exemple la pomme &lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "apple": {_val = 10};
Par :
case "apple": {_val = 5};
&lt;/pre&gt;
&lt;p&gt;Et voila c'était très simple rendez-vous tout de suite pour le prochain Point ! N'oublié pas  de sauvegardé bien entendu  &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;2) Modifié le poids des items&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:14.6666669845581px;"&gt;- Aller dans votre Mission puis Core puis Config et pour finir ouvrer le dossier &lt;/span&gt;fn_itemWeight&lt;span style="font-size:14.6666669845581px;"&gt; :&lt;/span&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
/*
File: fn_itemWeight.sqf
Author: Bryan "Tonic" Boardwine
Description:
Gets the items weight and returns it.

*/
private["_item"];
_item = [_this,0,"",[""]] call BIS_fnc_param;
if(_item == "") exitWith {};
switch (_item) do
{
case "oilu": {7};
case "oilp": {6};
case "heroinu": {6};
case "heroinp": {4};
case "cannabis": {4};
case "marijuana": {3};
case "apple": {1};
case "water": {1};
case "rabbit": {1};
case "salema": {2};
case "ornate": {2};
case "mackerel": {4};
case "tuna": {6};
case "mullet": {4};
case "catshark": {6};
case "turtle": {6};
case "fishing": {2};
case "turtlesoup": {2};
case "donuts": {1};
case "coffee": {1};
case "fuelE": {2};
case "fuelF": {5};
case "money": {0};
case "pickaxe": {2};
case "copperore": {4};
case "ironore": {5};
case "copper_r": {3};
case "iron_r": {3};
case "sand": {3};
case "salt": {3};
case "salt_r": {1};
case "glass": {1};
case "diamond": {4};
case "diamondc": {2};
case "cocaine": {6};
case "cocainep": {4};
case "spikeStrip": {15};
case "rock": {6};
case "cement": {5};
case "goldbar": {12};
case "blastingcharge": {15};
case "boltcutter": {5};
case "defusekit": {2};
case "storagesmall": {5};
case "storagebig": {10};
default {1};
};
&lt;/pre&gt;
&lt;p&gt;Vous remarqué sans doute que tout les ressources récoltable sont en double : quand cela finit pas "u" c'est le poids quand il n'est pas traité et quand il y a un "p" c'est le poids quand il est traité ! &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Donc pour modifié vous avez juste a remplacé le chiffre de par exemple la cocaine traité par ce que vous souhaité :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "cocainep": {4};
Par
case "cocainep": {5}; &lt;/pre&gt;

&lt;p&gt;Et voila , encore cela était très simple rendez vous au prochain point ! &lt;span style="font-size:14.6666669845581px;"&gt;N'oublié pas  de sauvegardé bien entendu  &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:14.6666669845581px;"&gt;3) Modifié le prix des licenses  &lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:14.6666669845581px;"&gt;- Aller dans votre Mission puis Core puis Config et pour finir ouvrer le dossier &lt;/span&gt;&lt;span style="font-size:14px;"&gt;fn_licensePrice :&lt;/span&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
/*
File: fn_licensePrice.sqf
Author: Bryan "Tonic" Boardwine
Description:
Returns the license price.

*/
private["_type"];
_type = [_this,0,"",[""]] call BIS_fnc_param;
if(_type == "") exitWith {-1};
switch (_type) do
{
case "driver": {500}; //Drivers License cost
case "boat": {1000}; //Boating license cost
case "pilot": {25000}; //Pilot/air license cost
case "gun": {10000}; //Firearm/gun license cost
case "dive": {2000}; //Diving license cost
case "oil": {10000}; //Oil processing license cost
case "cair": {15000}; //Cop Pilot License cost
case "swat": {35000}; //Swat License cost
case "cg": {8000}; //Coast guard license cost
case "heroin": {25000}; //Heroin processing license cost
case "marijuana": {19500}; //Marijuana processing license cost
case "medmarijuana": {1500}; //Medical Marijuana processing license cost
case "gang": {0}; //Gang license cost
case "rebel": {150000}; //Rebel license cost
case "truck": {20000}; //Truck license cost
case "diamond": {35000};
case "salt": {12000};
case "cocaine": {40000};
case "sand": {14500};
case "iron": {9500};
case "copper": {8000};
case "cement": {6500};
case "mair": {15000};
case "home": {100000};
case "armee": {0};
};
&lt;/pre&gt;
&lt;p&gt;Vous n'avez qu'a par exemple remplacé le chiffre de prix de la license de fer par celui que vous souhaité !  &lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "iron": {9500};
Par
case "iron": {7500};

&lt;/pre&gt;
&lt;p&gt;Voila voila , c'est tout c'était très court et très basic , mais un gros tuto se prépare   , et bien je vous dit a très Bientôt Tchiao  &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;PS : N'oublié pas de sauvegardé    je sais vous avez compris &lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1271/configuré-son-serveur</link><guid isPermaLink="true">https://melinyel.net/topic/1271/configuré-son-serveur</guid><dc:creator><![CDATA[ArrowDark]]></dc:creator><pubDate>Tue, 04 Nov 2014 21:40:26 GMT</pubDate></item><item><title><![CDATA[Rajouté des Textures pour les véhicules]]></title><description><![CDATA[&lt;p&gt;Salut tout le monde , je fait mon deuxième tuto et aujourd'hui celui la consistera a vous montré comment mettre une texture sur vos vehicules (ici se sera un SUV que je donne en download)&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Lien download : &lt;a href="http://www.global-gamer.com/home/wsif/index.php/EntryFile/196-suv-universe-jpg/" rel="external nofollow" title="Lien externe"&gt;http://www.global-ga...v-universe-jpg/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nom du suv : suv_universe&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;1) Placé votre texture dans le fichier textures qui a la racine de vos fichiers , si il n'existe pas créer en un !&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;2) Ouvrez votre fn_vehicleColorCfg &lt;span style="font-size:14.4444446563721px;"&gt;qui se trouve dans Core/Config&lt;/span&gt;&lt;span style="font-size:14px;"&gt; Et cherchez la ligne du vehicule qui vous intéresse !&lt;/span&gt;&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "C_SUV_01_F":
{
_ret =
[
["\a3\soft_f_gamma\SUV_01\Data\suv_01_ext_co.paa","civ"],
["\a3\soft_f_gamma\SUV_01\Data\suv_01_ext_02_co.paa","cop"],
["\a3\soft_f_gamma\SUV_01\Data\suv_01_ext_03_co.paa","civ"],
["\a3\soft_f_gamma\SUV_01\Data\suv_01_ext_04_co.paa","civ"],
["#(ai,64,64,1)Fresnel(1.3,7)","cop"]
];
};
&lt;/pre&gt;
&lt;p&gt;Maintenant rajouté une virgule à la dernière ligne et rajouté une ligne en écrivant :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
["\textures\nomdevotretexture.jpg","civ"] \ civ = vehicule civil , cop = vehicule police ... ect
&lt;/pre&gt;
&lt;p&gt;Cela devrait resemblé à ça &lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "C_SUV_01_F":
{
_ret =
[
["\a3\soft_f_gamma\SUV_01\Data\suv_01_ext_co.paa","civ"],
["\a3\soft_f_gamma\SUV_01\Data\suv_01_ext_02_co.paa","cop"],
["\a3\soft_f_gamma\SUV_01\Data\suv_01_ext_03_co.paa","civ"],
["\a3\soft_f_gamma\SUV_01\Data\suv_01_ext_04_co.paa","civ"],
["#(ai,64,64,1)Fresnel(1.3,7)","cop"],
["\textures\suv_universe.jpg","civ"]
];
};
&lt;/pre&gt;
&lt;p&gt;Voila !&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;2) Ouvrez votre fn_vehicleColorStr qui se trouve dans Core/Config et chercher la case du vehicule qui vous &lt;span style="font-size:14.4444446563721px;"&gt;intéresse&lt;/span&gt; !&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "C_SUV_01_F":
{
switch (_index) do
{
case 0: {_color = "Dark Red";};
case 1: {_color = "Black";};
case 2: {_color = "Silver";};
case 3: {_color = "Orange";};
case 4: {_color = "Cop";};
};
};
&lt;/pre&gt;
&lt;p&gt;Maintenant rajouté une ligne :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case 5: {_color = "Universe";}; \  "universe" est modifiable c'est le nom que vous verrez dans le shop en jeu
&lt;/pre&gt;
&lt;p&gt; Cela devrait ressemblé à ça :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "C_SUV_01_F":
{
	switch (_index) do
	{
		case 0: {_color = "Dark Red";};
		case 1: {_color = "Black";};
		case 2: {_color = "Silver";};
		case 3: {_color = "Orange";};
		case 4: {_color = "Cop";};
                    case 5: {_color = "Universe";};
	};
};

&lt;/pre&gt;
&lt;p&gt;Voila c'est terminé    Aurevoir tout le monde   Si vous avez des questions n'hésité pas !&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1262/rajouté-des-textures-pour-les-véhicules</link><guid isPermaLink="true">https://melinyel.net/topic/1262/rajouté-des-textures-pour-les-véhicules</guid><dc:creator><![CDATA[ArrowDark]]></dc:creator><pubDate>Sun, 02 Nov 2014 13:30:46 GMT</pubDate></item><item><title><![CDATA[Sauvegarde menu Y + armes/vêtements 3.1.4.8]]></title><description><![CDATA[&lt;p&gt;Salut tout le monde alors pour mon premier tuto je vais faire très simple  &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Allé dans votre Configuration.sqf qui se trouve dans /Core&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Normalement votre fichier devrait ressemblé à ça&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
#include &lt;macro.h&gt;
/*
Master Life Configuration File
This file is to setup variables for the client, there are still other configuration files in the system

****** Backend Variables *****

*/
life_query_time = time;
life_action_delay = time;
life_trunk_vehicle = Objnull;
life_session_completed = false;
life_garage_store = false;
life_session_tries = 0;
life_net_dropped = false;
life_hit_explosive = false;
life_siren_active = false;
life_clothing_filter = 0;
life_clothing_uniform = -1;
life_redgull_effect = time;
life_is_processing = false;
life_bail_paid = false;
life_impound_inuse = false;
life_action_inUse = false;
life_spikestrip = ObjNull;
life_respawn_timer = 2; //Scaled in minutes
life_knockout = false;
life_interrupted = false;
life_respawned = false;
life_removeWanted = false;
//Persistent Saving
CONST(life_save_civ,FALSE); //Save weapons for civs? Ici remplacé FALSE par TRUE
CONST(life_save_yinv,FALSE); //Save Y-Inventory for players? Ici remplacé FALSE par TRUE
//Revive constant variables.
CONST(life_revive_cops,TRUE); //Set to false if you don't want cops to be able to revive downed players.
CONST(life_revive_fee,250); //Fee for players to pay when revived.
//House Limit
CONST(life_houseLimit,5); //Maximum amount of houses a player can buy (TODO: Make Tiered licenses).
//Gang related stuff?
CONST(life_gangPrice,75000); //Price for creating a gang (They're all persistent so keep it high to avoid 345345345 gangs).
CONST(life_gangUpgradeBase,10000); //MASDASDASD
CONST(life_gangUpgradeMultipler,2.5); //BLAH
//Uniform price (0),Hat Price (1),Glasses Price (2),Vest Price (3),Backpack Price (4)
life_clothing_purchase = [-1,-1,-1,-1,-1];
/*

****** Weight Variables *****

*/
life_maxWeight = 70; //Identifies the max carrying weight (gets adjusted throughout game when wearing different types of clothing).
life_maxWeightT = 70; //Static variable representing the players max carrying weight on start.
life_carryWeight = 0; //Represents the players current inventory weight (MUST START AT 0).
/*

****** Life Variables *******

*/
life_net_dropped = false;
life_hit_explosive = false;
life_siren_active = false;
life_bank_fail = false;
life_use_atm = true;
life_is_arrested = false;
life_delivery_in_progress = false;
life_action_in_use = false;
life_thirst = 100;
life_hunger = 100;
CONST(life_paycheck_period,5); //Five minutes
life_cash = 0;
CONST(life_impound_car,350);
CONST(life_impound_boat,250);
CONST(life_impound_air,850);
life_istazed = false;
life_my_gang = ObjNull;
life_vehicles = [];
bank_robber = [];
switch (playerSide) do
{
case west:
{
life_atmcash = 100000; //Starting Bank Money
life_paycheck = 7000; //Paycheck Amount
};
case civilian:
{
life_atmcash = 90000; //Starting Bank Money
life_paycheck = 2000; //Paycheck Amount
};
case independent: {
	life_atmcash = 40000;
	life_paycheck = 8000;
};

};
/*
Master Array of items?
*/
life_vShop_rentalOnly = ["B_MRAP_01_hmg_F","B_G_Offroad_01_armed_F"];
CONST(life_vShop_rentalOnly,life_vShop_rentalOnly); //These vehicles can never be bought and only 'rented'. Used as a balancer &amp; money sink. If you want your server to be chaotic then fine.. Remove it..
life_inv_items =
[
"life_inv_oilu",
"life_inv_oilp",
"life_inv_heroinu",
"life_inv_heroinp",
"life_inv_cannabis",
"life_inv_marijuana",
"life_inv_apple",
"life_inv_rabbit",
"life_inv_salema",
"life_inv_ornate",
"life_inv_mackerel",
"life_inv_tuna",
"life_inv_mullet",
"life_inv_catshark",
"life_inv_turtle",
"life_inv_fishingpoles",
"life_inv_water",
"life_inv_donuts",
"life_inv_turtlesoup",
"life_inv_coffee",
"life_inv_fuelF",
"life_inv_fuelE",
"life_inv_pickaxe",
"life_inv_copperore",
"life_inv_ironore",
"life_inv_ironr",
"life_inv_copperr",
"life_inv_sand",
"life_inv_salt",
"life_inv_saltr",
"life_inv_glass",
"life_inv_tbacon",
"life_inv_lockpick",
"life_inv_redgull",
"life_inv_peach",
"life_inv_diamond",
"life_inv_coke",
"life_inv_cokep",
"life_inv_diamondr",
"life_inv_spikeStrip",
"life_inv_rock",
"life_inv_cement",
"life_inv_goldbar",
"life_inv_blastingcharge",
"life_inv_boltcutter",
"life_inv_defusekit",
"life_inv_storagesmall",
"life_inv_storagebig"
];
//Setup variable inv vars.
{missionNamespace setVariable[_x,0];} foreach life_inv_items;
//Licenses [license var, civ/cop]
life_licenses =
[
["license_cop_air","cop"],
["license_cop_swat","cop"],
["license_cop_cg","cop"],
["license_civ_driver","civ"],
["license_civ_air","civ"],
["license_civ_heroin","civ"],
["license_civ_marijuana","civ"],
["license_civ_gang","civ"],
["license_civ_boat","civ"],
["license_civ_oil","civ"],
["license_civ_dive","civ"],
["license_civ_truck","civ"],
["license_civ_gun","civ"],
["license_civ_rebel","civ"],
["license_civ_coke","civ"],
["license_civ_diamond","civ"],
["license_civ_copper","civ"],
["license_civ_iron","civ"],
["license_civ_sand","civ"],
["license_civ_salt","civ"],
["license_civ_cement","civ"],
["license_med_air","med"],
["license_civ_home","civ"]
];
//Setup License Variables
{missionNamespace setVariable[(_x select 0),false];} foreach life_licenses;
life_dp_points = ["dp_1","dp_2","dp_3","dp_4","dp_5","dp_6","dp_7","dp_8","dp_9","dp_10","dp_11","dp_12","dp_13","dp_14","dp_15","dp_15","dp_16","dp_17","dp_18","dp_19","dp_20","dp_21","dp_22","dp_23","dp_24","dp_25"];
//[shortVar,reward]
life_illegal_items = [["heroinu",1200],["heroinp",2500],["cocaine",1500],["cocainep",3500],["marijuana",2000],["turtle",3000],["blastingcharge",10000],["boltcutter",500]];
/*
Sell / buy arrays
*/
sell_array =
[
["apple",50],
["heroinu",1850],
["heroinp",2650],
["salema",45],
["ornate",40],
["mackerel",175],
["tuna",700],
["mullet",250],
["catshark",300],
["rabbit",65],
["oilp",3200],
["turtle",3000],
["water",5],
["coffee",5],
["turtlesoup",1000],
["donuts",60],
["marijuana",2350],
["tbacon",25],
["lockpick",75],
["pickaxe",750],
["redgull",200],
["peach",55],
["cocaine",3000],
["cocainep",5000],
["diamond",750],
["diamondc",2000],
["iron_r",3200],
["copper_r",1500],
["salt_r",1650],
["glass",1450],
["fuelF",500],
["spikeStrip",1200],
["cement",1950],
["goldbar",95000]
];
CONST(sell_array,sell_array);
buy_array =
[
["apple",65],
["rabbit",75],
["salema",55],
["ornate",50],
["mackerel",200],
["tuna",900],
["mullet",300],
["catshark",350],
["water",10],
["turtle",4000],
["turtlesoup",2500],
["donuts",120],
["coffee",10],
["tbacon",75],
["lockpick",150],
["pickaxe",1200],
["redgull",1500],
["fuelF",850],
["peach",68],
["spikeStrip",2500],
["blastingcharge",35000],
["boltcutter",7500],
["defusekit",2500],
["storagesmall",75000],
["storagebig",150000]
];
CONST(buy_array,buy_array);
life_weapon_shop_array =
[
["arifle_sdar_F",7500],
["hgun_P07_snds_F",650],
["hgun_P07_F",1500],
["ItemGPS",45],
["ToolKit",75],
["FirstAidKit",65],
["Medikit",450],
["NVGoggles",980],
["16Rnd_9x21_Mag",15],
["20Rnd_556x45_UW_mag",35],
["ItemMap",35],
["ItemCompass",25],
["Chemlight_blue",50],
["Chemlight_yellow",50],
["Chemlight_green",50],
["Chemlight_red",50],
["hgun_Rook40_F",500],
["arifle_Katiba_F",5000],
["30Rnd_556x45_Stanag",65],
["20Rnd_762x51_Mag",85],
["30Rnd_65x39_caseless_green",50],
["DemoCharge_Remote_Mag",7500],
["SLAMDirectionalMine_Wire_Mag",2575],
["optic_ACO_grn",250],
["acc_flashlight",100],
["srifle_EBR_F",15000],
["arifle_TRG21_F",3500],
["optic_MRCO",5000],
["optic_Aco",850],
["arifle_MX_F",7500],
["arifle_MXC_F",5000],
["arifle_MXM_F",8500],
["MineDetector",500],
["optic_Holosight",275],
["acc_pointer_IR",175],
["arifle_TRG20_F",2500],
["SMG_01_F",1500],
["arifle_Mk20C_F",4500],
["30Rnd_45ACP_Mag_SMG_01",60],
["30Rnd_9x21_Mag",30]
];
CONST(life_weapon_shop_array,life_weapon_shop_array);
life_garage_prices =
[
["B_QuadBike_01_F",550],
["C_Hatchback_01_F",1500],
["C_Offroad_01_F", 2500],
["B_G_Offroad_01_F",3500],
["C_SUV_01_F",5250],
["C_Van_01_transport_F",7890],
["C_Hatchback_01_sport_F",2350],
["C_Van_01_fuel_F",4500],
["I_Heli_Transport_02_F",100000],
["C_Van_01_box_F",9000],
["I_Truck_02_transport_F",12000],
["I_Truck_02_covered_F",14500],
["B_Truck_01_transport_F",25650],
["B_Truck_01_box_F", 35000],
["O_MRAP_02_F",45000],
["B_Heli_Light_01_F",45000],
["O_Heli_Light_02_unarmed_F",65000],
["C_Rubberboat",400],
["C_Boat_Civil_01_F",4500],
["B_Boat_Transport_01_F",450],
["C_Boat_Civil_01_police_F",3500],
["B_Boat_Armed_01_minigun_F",16500],
["B_SDV_01_F",25000],
["B_MRAP_01_F",7500]
];
CONST(life_garage_prices,life_garage_prices);
life_garage_sell =
[
["B_Quadbike_01_F",950],
["C_Hatchback_01_F",4500],
["C_Offroad_01_F", 6500],
["B_G_Offroad_01_F",3500],
["C_SUV_01_F",15000],
["C_Van_01_transport_F",25000],
["C_Hatchback_01_sport_F",7500],
["C_Van_01_fuel_F",3850],
["I_Heli_Transport_02_F",125000],
["C_Van_01_box_F",35000],
["I_Truck_02_transport_F",49800],
["I_Truck_02_covered_F",62000],
["B_Truck_01_transport_F",135000],
["B_Truck_01_box_F", 150000],
["O_MRAP_02_F",65000],
["B_Heli_Light_01_F",57000],
["O_Heli_Light_02_unarmed_F",72500],
["C_Rubberboat",950],
["C_Boat_Civil_01_F",6800],
["B_Boat_Transport_01_F",850],
["C_Boat_Civil_01_police_F",4950],
["B_Boat_Armed_01_minigun_F",21000],
["B_SDV_01_F",45000],
["B_MRAP_01_F",10000]
];
CONST(life_garage_sell,life_garage_sell); &lt;/pre&gt;
&lt;p&gt; Et maintenant au début cherché :&lt;/p&gt;
&lt;pre class="ipsCode prettyprint"&gt;
//Persistent Saving
CONST(life_save_civ,FALSE); //Save weapons for civs?
CONST(life_save_yinv,FALSE); //Save Y-Inventory for players?
&lt;/pre&gt;
&lt;p&gt; Remplacé les FALSE par des TRUE&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;p&gt;Voila voila , a + en espérant que ça vous aidera&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1254/sauvegarde-menu-y-armesvêtements-3148</link><guid isPermaLink="true">https://melinyel.net/topic/1254/sauvegarde-menu-y-armesvêtements-3148</guid><dc:creator><![CDATA[ArrowDark]]></dc:creator><pubDate>Sat, 01 Nov 2014 23:26:35 GMT</pubDate></item><item><title><![CDATA[Ajout de la methamphetamine [3.1.4.6 & 3.1.4.8]]]></title><description><![CDATA[&lt;div&gt;Salut,&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Je vous conseille fortement de faire une sauvegarde du serveur avant de faire ce tutoriel.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Désoler si cela alterne "citations" et "extrait de code" la ou sont écrit les scriptes mais je peux pas mettre que des citations j'ai était obliger de refaire le tutoriel du coup j'ai alternée.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;On commence:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;------------------------------------------------------------------------------------------------------------------------------&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;core\actions\fn_gather.sqf&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Ligne 9 :&lt;/div&gt;
&lt;div&gt;Remplace&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
_resourceZones = ["apple_1","apple_2","apple_3","apple_4","peaches_1","peaches_2","peaches_3","peaches_4","heroin_1","cocaine_1","weed_1"];&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Par :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
_resourceZones = ["apple_1","apple_2","apple_3","apple_4","peaches_1","peaches_2","peaches_3","peaches_4","heroin_1","cocaine_1","weed_1","meth_1"]; &lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Ligne 29 :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case (_zone in ["weed_1"]): {_gather = "cannabis"; _val = 1;};&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Ajoutez après :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case (_zone in ["meth_1"]): {_gather = "methu"; _val = 1;};&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;core\actions\fn_processAction.sqf&lt;/div&gt;
&lt;div&gt;Ligne 26 :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "cement": {["rock","cement",350,(localize "STR_Process_Cement")];};&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;Ajoutez après :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "meth": {["methu","methp",5000,(localize "STR_Process_Meth")];};&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;core\config\fn_itemWeight.sqf&lt;/div&gt;
&lt;div&gt;Ligne 58 :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "storagebig": {10}; &lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;Ajoutez après :&lt;/div&gt;
&lt;div&gt;
&lt;div style="font-size:12px;"&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "methu": {6};
case "methp": {4};&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;core\config\fn_licensePrice.sqf&lt;/div&gt;
&lt;div&gt;Ligne 37 :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "home": {75000};&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;Ajoutez après :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "meth": {250000};&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;core\config\fn_LicenseType.sqf&lt;/div&gt;
&lt;div&gt;Ligne 42 :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "home": {_var = "license_civ_home"};&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;Ajoutez après :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "meth": {_var = "license_civ_meth"}; &lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;Ligne 75 :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "license_civ_home": {_var = "home"};&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;Ajoutez après :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "license_civ_meth": {_var = "meth"}; &lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;core\config\fn_varHandle.sqf&lt;/div&gt;
&lt;div&gt;Ligne 67 :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "storagebig": {"life_inv_storagebig"}; &lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;Ajoutez après :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;div style="font-size:12px;"&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "methu": {"life_inv_methu"};
case "methp": {"life_inv_methp"};&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;Ligne 125 :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "life_inv_storagebig": {"storagebig"}; &lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;Ajoutez après :&lt;/div&gt;
&lt;div&gt;
&lt;div style="font-size:12px;"&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "life_inv_methu": {"methu"};
case "life_inv_methp": {"methp"}; &lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;core\config\varToStr.sqf&lt;/div&gt;
&lt;div&gt;Ligne 63 :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "life_inv_storagebig": {(localize "STR_Item_StorageBL")}; &lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;Ajoutez après :&lt;/div&gt;
&lt;div&gt;
&lt;div style="font-size:12px;"&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "life_inv_methu": {(localize "STR_Item_MethU")};
case "life_inv_methp": {(localize "STR_Item_MethP")};&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;Ligne 89 :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "license_civ_home": {(localize "STR_License_Home")};&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;Ajoutez après :&lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
case "license_civ_meth": {(localize "STR_License_Meth")}; &lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;core\config\fn_virt_shops.sqf&lt;/div&gt;
&lt;div&gt;Ligne 18 :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;case "heroin": {["Drug Dealer",["cocainep","heroinp","marijuana"]]};&lt;/div&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Remplacez avec :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;case "heroin": {["Drug Dealer",["cocainep","heroinp","marijuana","methp"]]};&lt;/div&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;core\configuration.sqf&lt;/div&gt;
&lt;div&gt;Ligne 159 :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;"life_inv_storagebig",&lt;/div&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Ajoutez après :&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;
&lt;div&gt;"life_inv_methu",&lt;/div&gt;
&lt;div&gt;"life_inv_methp"&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;Ligne 191 :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;["license_civ_home","civ"],
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;Ajoutez après :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;["license_civ_meth","civ"]
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;Ligne 200 :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;life_illegal_items = [["heroinu",1200],["heroinp",2500],["cocaine",1500],["cocainep",3500],["marijuana",2000],["turtle",3000],["blastingcharge",10000],["boltcutter",500]];
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;Remplacez par :&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;
&lt;div&gt;life_illegal_items = [["heroinu",1200],["heroinp",2500],["cocaine",1500],["cocainep",3500],["marijuana",2000],["turtle",3000],["blastingcharge",10000],["boltcutter",500],["methu",400],&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;["methp",4000]];&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;Ligne 241 :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;["goldbar",95000],
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;Ajoutez après :&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;
&lt;div&gt;["methu",400],&lt;/div&gt;
&lt;div&gt;["methp",4000]&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;Altis_Life.Altis\stringtable.xml&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Ligne 3430 :&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;&lt;span style="color:rgb(0,0,136);"&gt;&lt;Key&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span style="color:rgb(102,0,102);"&gt;ID&lt;/span&gt;&lt;span style="color:rgb(102,102,0);"&gt;=&lt;/span&gt;&lt;span style="color:rgb(0,136,0);"&gt;"STR_Item_SpikeStrip"&lt;/span&gt;&lt;span style="color:rgb(0,0,136);"&gt;&gt;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color:rgb(0,0,136);"&gt;&lt;Original&gt;&lt;/span&gt;&lt;span&gt;Spike Strip&lt;/span&gt;&lt;span style="color:rgb(0,0,136);"&gt;&lt;/Original&gt;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color:rgb(0,0,136);"&gt;&lt;English&gt;&lt;/span&gt;&lt;span&gt;Spike Strip&lt;/span&gt;&lt;span style="color:rgb(0,0,136);"&gt;&lt;/English&gt;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color:rgb(0,0,136);"&gt;&lt;German&gt;&lt;/span&gt;&lt;span&gt;Nagelband&lt;/span&gt;&lt;span style="color:rgb(0,0,136);"&gt;&lt;/German&gt;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color:rgb(0,0,136);"&gt;&lt;French&gt;&lt;/span&gt;&lt;span&gt;Herse&lt;/span&gt;&lt;span style="color:rgb(0,0,136);"&gt;&lt;/French&gt;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color:rgb(0,0,136);"&gt;&lt;Italian&gt;&lt;/span&gt;&lt;span&gt;Striscia Chiodata&lt;/span&gt;&lt;span style="color:rgb(0,0,136);"&gt;&lt;/Italian&gt;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;            &lt;/span&gt;&lt;span style="color:rgb(0,0,136);"&gt;&lt;Portuguese&gt;&lt;/span&gt;&lt;span&gt;Spike Strip&lt;/span&gt;&lt;span style="color:rgb(0,0,136);"&gt;&lt;/Portuguese&gt;&lt;/span&gt;&lt;br/&gt;&lt;span&gt;        &lt;/span&gt;&lt;span style="color:rgb(0,0,136);"&gt;&lt;/Key&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Ajoutez après :&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;
&lt;div&gt; &lt;/Key&gt;&lt;/div&gt;
&lt;div&gt;&lt;Key ID="STR_Item_MethU"&gt;&lt;/div&gt;
&lt;div&gt;&lt;Original&gt;Meth unprocessed&lt;/Original&gt;&lt;/div&gt;
&lt;div&gt;&lt;French&gt;Méthamphétamine non traitée&lt;/French&gt;&lt;/div&gt;
&lt;div&gt;&lt;/Key&gt;&lt;/div&gt;
&lt;div&gt;&lt;/Key&gt;&lt;/div&gt;
&lt;div&gt;&lt;Key ID="STR_Item_MethP"&gt;&lt;/div&gt;
&lt;div&gt;&lt;Original&gt;Meth processed&lt;/Original&gt;&lt;/div&gt;
&lt;div&gt;&lt;French&gt;Méthamphétamine pure&lt;/French&gt;&lt;/div&gt;
&lt;div&gt;&lt;/Key&gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Ligne 3601 :&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;
 
&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;
&lt;div&gt;&lt;Key ID="STR_License_Home"&gt;&lt;/div&gt;
&lt;div&gt;&lt;Original&gt;Home Owners License&lt;/Original&gt;&lt;/div&gt;
&lt;div&gt;&lt;English&gt;Home Owners License&lt;/English&gt;&lt;/div&gt;
&lt;div&gt;&lt;German&gt;Eigentumsurkunde&lt;/German&gt;&lt;/div&gt;
&lt;div&gt;&lt;French&gt;Droit de Propriété&lt;/French&gt;&lt;/div&gt;
&lt;div&gt;&lt;Italian&gt;Licenza possesso Casa&lt;/Italian&gt;&lt;/div&gt;
&lt;div&gt;&lt;Portuguese&gt;Licença de Casas&lt;/Portuguese&gt;&lt;/div&gt;
&lt;div&gt;&lt;/Key&gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;Ajoutez après :&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;
&lt;div&gt; &lt;Key ID="STR_License_Meth"&gt;&lt;/div&gt;
&lt;div&gt;&lt;Original&gt;Meth training&lt;/Original&gt;&lt;/div&gt;
&lt;div&gt;&lt;French&gt;Process méthamphétamine&lt;/French&gt;&lt;/div&gt;
&lt;div&gt;&lt;/Key&gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;Altis_Life.Altis\stringtable.xml&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Cherchez :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;&lt;Package name="Process_Action"&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Ajoutez en dessous ou à la fin :&lt;/div&gt;
&lt;div&gt;&lt;br/&gt;&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;
&lt;div&gt;&lt;Key ID="STR_Process_Meth"&gt;&lt;/div&gt;
&lt;div&gt;&lt;Original&gt;Processing Meth&lt;/Original&gt;&lt;/div&gt;
&lt;div&gt;&lt;French&gt;Traitement en cours&lt;/French&gt;&lt;/div&gt;
&lt;div&gt;&lt;/Key&gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;Toujours dans le fichier stringtable.xml, cherchez :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;&lt;Key ID="STR_Process_Processed2"&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Et dans &lt;French&gt; mettez ça :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;&lt;French&gt;Vous avez traité %1 en %2 pour %3$&lt;/French&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Si vous voulez modifier le prix à payer pour traiter la meth sans avoir acheter la licence de meth :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;core\actions\fn_processAction.sqf :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;blockquote class="ipsQuote" data-ipsquote=""&gt;&lt;div&gt;case "meth": {["methu","methp",5000,(localize "STR_Process_Meth")];};
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Le "5000" est le prix, il suffit juste de le remplacer. Par exemple en mettant 25000, le joueur devra payer 25.000 pour traiter la meth qu'il a sur lui sans avoir la licence.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Voilà pour la partie serveur maintenant la partie édition de la map :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Editer votre map :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Faites un double-clic quelque part, sélectionnez "civil" et faites bien "non jouable". Appelez le comme vous voulez et dans initialisation mettez :&lt;/div&gt;
&lt;div&gt;this allowDamage false; this enableSimulation false;this addAction["Traiter la méthamphétamine",life_fnc_processAction,"meth",0,false,false,"",' life_inv_methu &gt; 0 &amp;&amp; vehicle player == player &amp;&amp; player distance _target &lt; 2 &amp;&amp; !life_is_processing '];     this addAction[format["%1 (%2$)",["license_civ_meth"] call life_fnc_varToStr,[(["meth"] call life_fnc_licensePrice)] call life_fnc_numberText],life_fnc_buyLicense,"meth",0,false,false,"",' !license_civ_meth &amp;&amp; vehicle player == player &amp;&amp; player distance _target &lt; 2 &amp;&amp; playerSide == civilian '];&lt;/div&gt;
&lt;div&gt;Le pnj est fini faites "ok"&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Maintenant pour faire le champ :&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Faites F6, puis double-cliquez là où vous voulez faire le champ. A côté d'icone sélectionnez "Point" et mettez-le de la couleur que vous voulez, ensuite dans nom mettez ce que vous voulez. Par exemple "meth" et dans Texte c'est ce qui apparaîtra sur la map. Donc vous pouvez mettre "Champ de Meth". C'est pas fini, double-cliquez tout près du point que vous venez de faire. Sélectionnez "Ellipse" et mettez 20 dans axe "A" et "B" puis 0 dans angle. Sélectionnez "solide" et "blanc". Dans "nom" mettez bien "meth_1" sinon il se peut que ça ne fonctionne pas. Mettez rien dans "texte".&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;N'oubliez pas de mettre une virgule ! Par exemple dans core\configuration.sqf à la ligne 159 mettez une virgule à la fin de "life_inv_storagebig," et non pas "life_inv_storagebig"&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Pour ceux qui on la bourse sur leur serveur et qui veulent modifier le prix et l'implanter dans la bourse voici le Mini tutoriel:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Ouvrir: Core/ Market / fn_marketconfiguration&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Ajouter à partir de la ligne 92 &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;div style="font-size:12px;"&gt;
&lt;pre class="ipsCode prettyprint"&gt;
["methp", 6000, 4500, 8500, 4, 4,   
        [ 
             ["marijuana",1], 
             ["turtle",1],
             ["heroinp",1],
             ["cocainep",1]
        ] 
],&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;Ensuite ajouter: pour les 4 autres stupéfiants: &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
["methp",1]&lt;/pre&gt;
&lt;p&gt;comme ceci:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div&gt;
&lt;pre class="ipsCode prettyprint"&gt;
["marijuana", 4500, 2750, 6000, 4, 4,   
       [ 
             ["turtle",1], 
             ["cocainep",1],
             ["heroinp",1],
             ["methp",1]
      ] 
],&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Attention à bien rajouter la virgule sur celui du dessus quand vous rajouter le scripte en dessous ! &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Voilà désoler mais c'est un tutoriel assez long mais cela en vaux le coup !&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Cordialement,&lt;/div&gt;
]]></description><link>https://melinyel.net/topic/1130/ajout-de-la-methamphetamine-3146-3148</link><guid isPermaLink="true">https://melinyel.net/topic/1130/ajout-de-la-methamphetamine-3146-3148</guid><dc:creator><![CDATA[Rayden]]></dc:creator><pubDate>Sun, 05 Oct 2014 18:25:07 GMT</pubDate></item><item><title><![CDATA[Supprimer un bâtiment | Éditeur 2D | Arma 3]]></title><description><![CDATA[&lt;p&gt;Salut tout le monde !&lt;br/&gt;
On se retrouve aujourd'hui pour un nouveau tuto&lt;br/&gt;
Lien original (par moi) :&lt;br/&gt;&lt;a href="http://altisdev.com/index.php?/topic/346-tuto-suprimer-un-batiment-" rel="external nofollow"&gt;http://altisdev.com/index.php?/topic/346-tuto-suprimer-un-batiment-&lt;/a&gt;éditeur/#entry2180&lt;br/&gt;
======================================================&lt;br/&gt;&lt;br/&gt;
Donc pour commencer, rendez vous sur l'editeur 2D;&lt;br/&gt;
Créez une ''Logique de Jeu'' et introduisez ce code :&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
(getPos this nearestObject IDBÂTIMENT) hideObject true; this allowDamage false;&lt;br/&gt;&lt;br/&gt;
À la place ''IDBÂTIMENT'' entrez l'ID de votre bâtiment.&lt;br/&gt;
Pour l'obtenir, appuyez CONTROL+I ou cliquez sur le bouton ID situé sur la barre supérieur.&lt;br/&gt;&lt;br/&gt;
ATTENTION : Cette technique ne fonctionne que pour les bâtiments, maisons ou commerces.&lt;br/&gt;
Ne comptez donc pas dessus pour supprimer un arbre ou un panneau.&lt;br/&gt;&lt;br/&gt;
======================================================&lt;br/&gt;&lt;br/&gt;
Voila tutoriel TERMINÉ !&lt;br/&gt;
En espèrent vous avoir aidez !&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1127/supprimer-un-bâtiment-éditeur-2d-arma-3</link><guid isPermaLink="true">https://melinyel.net/topic/1127/supprimer-un-bâtiment-éditeur-2d-arma-3</guid><dc:creator><![CDATA[Aircoifft]]></dc:creator><pubDate>Sat, 04 Oct 2014 07:05:20 GMT</pubDate></item><item><title><![CDATA[Modifier argent de départ]]></title><description><![CDATA[&lt;p&gt;Salut !&lt;br/&gt;
Lien original (de moi) : &lt;a href="http://altisdev.com/index.php?/topic/497-tuto-modifier-payeargent-de-départ/?p=3236#entry3236" rel="external nofollow"&gt;http://altisdev.com/index.php?/topic/497-tuto-modifier-payeargent-de-départ/?p=3236#entry3236&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;
Je vous propose aujolurd'hui un tuto vraiment très simple !&lt;br/&gt;&lt;br/&gt;
Donc rendez vous dans :&lt;br/&gt;&lt;br/&gt;
MPMISSION/Altis_Life.Altis\core&lt;br/&gt;&lt;br/&gt;
Et ouvrez "configuration.sqf" puis rendez vous aux lignes 100 à 115.&lt;br/&gt;&lt;br/&gt;
Vous allez tomber sur ces ligne :&lt;br/&gt;&lt;br/&gt;
Citation&lt;br/&gt;&lt;br/&gt;
case west: //Police&lt;br/&gt;
{&lt;br/&gt;
life_atmcash = 200000; //Argent de départ&lt;br/&gt;
life_paycheck = 7000; //Paye quotidienne&lt;br/&gt;
};&lt;br/&gt;
case civilian: //Civil&lt;br/&gt;
{&lt;br/&gt;
life_atmcash = 25000; //Argent de départ&lt;br/&gt;
life_paycheck = 1752; //Paye quotidienne&lt;br/&gt;
};&lt;br/&gt;&lt;br/&gt;
case independent: { //SMUR&lt;br/&gt;
life_atmcash = 95000; //Argent de départ&lt;br/&gt;
life_paycheck = 450; //Paye quotidienne&lt;br/&gt;
};&lt;br/&gt;&lt;br/&gt;
Vous pouvez donc modifier les valeurs&lt;br/&gt;&lt;br/&gt;
========================================================================&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
Voilà tuto terminé !&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;
Bon codage !&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/1118/modifier-argent-de-départ</link><guid isPermaLink="true">https://melinyel.net/topic/1118/modifier-argent-de-départ</guid><dc:creator><![CDATA[Aircoifft]]></dc:creator><pubDate>Wed, 01 Oct 2014 00:09:23 GMT</pubDate></item><item><title><![CDATA[[Obsolète] Carte Altis Life française 3.1.2]]></title><description><![CDATA[&lt;p&gt;Bonjour,&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;J'ai traduis pour vos serveur la carte altis life.&lt;/p&gt;
&lt;p&gt;Je précise qu'elle est basée sur la dernière mise à jour et que les garages sont tout à fait fonctionnels.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Je vous demanderais juste de respecter mon travail et de laisser mon message en haut de la carte.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Voici le lien de téléchargement: &lt;a href="https://www.mediafire.com/?3gr5ir704of1r61" rel="external nofollow"&gt;https://www.mediafire.com/?3gr5ir704of1r61&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Je ferais peut-être un tutoriel pour vous expliquer comment changer de map si cela vous intéresse.&lt;/p&gt;
&lt;p&gt;Version: 3.1.2&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Bonne journée !&lt;/p&gt;
]]></description><link>https://melinyel.net/topic/457/obsolète-carte-altis-life-française-312</link><guid isPermaLink="true">https://melinyel.net/topic/457/obsolète-carte-altis-life-française-312</guid><dc:creator><![CDATA[Mrkika]]></dc:creator><pubDate>Sun, 06 Apr 2014 19:45:50 GMT</pubDate></item></channel></rss>