Jump to content

Bambit

Member
  • Posts

    102
  • Joined

  • Last visited

Posts posted by Bambit

  1. So you probably have a database on vilayer. You probably set a password to connect to it. I have no idea how vilayer takes care of this. But you use sql client to connect to a database.
    heidiSQL is a client. You use it to connect to a database.

  2. You need to create your own *.sql file.

    Name it: custom_stuff_for_traders.sql and after you've added what you want to it, run it on an sql client you use.

    So it should look like this:
     

    custom_stuff_for_traders.sql

    INSERT INTO `traders_data` (`item`,`qty`,`buy`,`sell`,`order`,`tid`,`afile`) VALUES
    ('["DDOPP_X26",3]', 1000, '[2,"ItemGoldBar",1]', '[1,"ItemGoldBar",1]',0, 002, 'trade_weapons'),
    ('["DDOPP_X26_b",3]', 1000, '[2,"ItemGoldBar",1]', '[1,"ItemGoldBar",1]',0, 002, 'trade_weapons'),
    ('["DDOPP_X3",3]', 1000, '[2,"ItemGoldBar",1]', '[1,"ItemGoldBar",1]',0, 002, 'trade_weapons'),
    ('["DDOPP_X3_b",3]', 1000, '[2,"ItemGoldBar",1]', '[1,"ItemGoldBar",1]',0, 002, 'trade_weapons'),
    ('["RH_deagle",3]', 1000, '[2,"ItemGoldBar",1]', '[1,"ItemGoldBar",1]',0, 002, 'trade_weapons'),
    ('["RH_Deagleg",3]', 1000, '[2,"ItemGoldBar",1]', '[1,"ItemGoldBar",1]',0, 002, 'trade_weapons'),
    ('["RH_Deagles",3]', 1000, '[2,"ItemGoldBar",1]', '[1,"ItemGoldBar",1]',0, 002, 'trade_weapons');
    
  3. Have you added this skin to the traders list?
    Also check if you don't miss any " in your files, check semi-colons and brackets.
     

     

     

    you are missing the closing bracket in server traders.sqf at the end of the line of menus.

     

    should look like this

    [["pistols",693],[submachine guns",694]],
    

    There's missing " before 'submachine guns" ', so check if you have this in your files.

    Nothing else should be causing this only missing semi-colons and brackets :)

  4. Ok, I scanned through R3F files, and I can't help you that much as I don't know french :D

    There actually is an init.sqf inside here:
    R3F_ARTY_AND_LOG\R3F_LOG\init.sqf

    And inside it look for:

    R3F_LOG_FNCT_objet_init = compile preprocessFile "addons\R3F_ARTY_AND_LOG\R3F_LOG\objet_init.sqf";
    R3F_LOG_FNCT_heliporteur_init = compile preprocessFile "addons\R3F_ARTY_AND_LOG\R3F_LOG\heliporteur\heliporteur_init.sqf";
    R3F_LOG_FNCT_remorqueur_init = compile preprocessFile "addons\R3F_ARTY_AND_LOG\R3F_LOG\remorqueur\remorqueur_init.sqf";
    R3F_LOG_FNCT_transporteur_init = compile preprocessFile "addons\R3F_ARTY_AND_LOG\R3F_LOG\transporteur\transporteur_init.sqf";
    

    These lines call for others init.files within the R3F addon. My best bet is that 'remorqueur_init.sqf' is responsible for towing in R3F. So you should comment it out. Comment out everything that has 'remorqueur' in it :D

    Then see if it gives you any RPT errors.

  5. Paste your init.sqf here :)

    You gotta delete/comment it out from your init.sqf, however I don't remember where it's placed, so I'd need your init file.
    And later on you have to delete R3F folder, for it is taking space and making the mission.pbo heavier.

     

    Oh, I see now. You need a "load in" functionality in R3F without it's towing function. That needs to be disabled from R3F's init.sqf as well, but I'm not sure where exactly. 
    I might have a look at it tommorow. It's 1am where I live :D so it's a sleepy time

  6. This is weird... What kind of server host do you have? Some hosts provide preconfigured server packs with R3F logistics. Which means this "Tow..." option that you mentioned above looks like it's from R3F.
    And it is definitely from R3F if after pressing "Tow..." you get option on other cars like "...tow to this vehicle" (or something like that).
    Look inside your mission.pbo if you have R3F folder in it.

  7. Check one more thing.

    Make sure that your custom trader does not have a skin name like this:

    "Tanny_PMC","Drake","BAF_Soldier_AAR_DDPM","US_Delta_Force_AR_EP1","US_Delta_Force_Medic_EP1","Soldier_MG_PKM_PMC","Soldier_MG_PMC","UN_CDF_Soldier_Crew_EP1","GUE_Soldier_1","Soldier_Sniper_PMC","UN_CDF_Soldier_Pilot_EP1","GUE_Soldier_3","BAF_Soldier_EN_MTP","UN_CDF_Soldier_Pilot_EP1","GUE_Worker2","Herrera_Light","Soldier_MG_PKM_PMC","Soldier_MG_PMC","GUE_Soldier_CO","RU_Damsel4","FR_Sykes","GUE_Villager4","TK_GUE_Warlord_EP1","GUE_Commander","GUE_Soldier_2","TK_GUE_Soldier_5_EP1","CIV_EuroWoman02_EP1","Dr_Annie_Baker_EP1","GUE_Soldier_Crew","Citizen3_EP1","ibr_lingorman6","ibr_lingorman6s","TK_CIV_Woman02_EP1","Damsel3","Hooker2","Hooker4","TK_GUE_Soldier_AAT_EP1"
    

    Basically, you want to make sure your custom trader name isn't duplicated

  8. What do you want to add from this post?
    Vehicle list?

    If you have the latest version of MF-TOW (I assume you have), then it's the simplest copy and paste ever. Open the init.sqf and paste the list. Save and you're done. Or have a look at the init.sqf I pasted below

    /**
     * mf-tow/init.sqf
     * The main script for initalising towing functionality. 
     *
     * Created by Matt Fairbrass (matt_d_rat)
     * Version: 1.1.2
     * MIT Licence
     **/
     
    private ["_cursorTarget", "_towableVehicles", "_towableVehiclesTotal"];
     
    // Public variables
    MF_Tow_Base_Path = "mf-tow"; // The base path to the MF-Tow Folder.
    MF_Tow_Distance = 10; // Minimum distance (in meters) away from vehicle the tow truck must be to tow.
    MF_Tow_Multi_Towing = false; // Allow a vehicle which is towing another vehicle already to be towed by another tow. Disabled by default.
     
    // Functions
     
    /**
     * Returns an array of towable objects which can be pulled by the tow truck.
     * Configure this as required to set which vehicles can pull which types of other vehicles.
     **/
    MF_Tow_Towable_Array =
    {
        private ["_array","_towTruck"];
        _towTruck = _this select 0;
    _array = [];
     
    switch (typeOf _towTruck) do
    {
    //------------------------------------
    //PASTE THE LIST IN HERE
    //------------------------------------
    };
    _array
    };
     
    /**
     * Animate the player in a towing action, whilst attaching them to the tow vehicle to ensure safety.
     **/
    MF_Tow_Animate_Player_Tow_Action =
    {
    private ["_towTruck","_offsetZ"];
    _towTruck = _this select 0;
    _offsetZ = 0.1;
     
    // Bounding box on UAZ is screwed, offset z-axis correctly
    if(_towTruck isKindOf "UAZ_Base") then {
    _offsetZ = 1.8;
    };
     
    [player,20,true,(getPosATL player)] spawn player_alertZombies; // Alert nearby zombies
    [1,1] call dayz_HungerThirst; // Use some hunger and thirst to perform the action
     
    // Attach the player to the tow truck temporarily for safety so that they aren't accidentally hit by the vehicle when it gets attached
    player attachTo [_towTruck, 
    [
    (boundingBox _towTruck select 1 select 0),
    (boundingBox _towTruck select 0 select 1) + 1,
    (boundingBox _towTruck select 0 select 2) - (boundingBox player select 0 select 2) + _offsetZ
    ]
    ];
     
    player setDir 270;
    player setPos (getPos player);
    player playActionNow "Medic"; // Force the animation
    };
     
    MF_Tow_Get_Vehicle_Name =
    {
    private ["_vehicle", "_configVeh", "_vehicleName"];
    _vehicle = _this select 0;
     
    _configVeh = configFile >> "cfgVehicles" >> TypeOf(_vehicle);
    _vehicleName = getText(_configVeh >> "displayName");
     
    _vehicleName
    };
     
    // Initialise script
    _cursorTarget = cursorTarget;
    _towableVehicles = [_cursorTarget] call MF_Tow_Towable_Array;
    _towableVehiclesTotal = count (_towableVehicles);
     
    // Add the action to the players scroll wheel menu if the cursor target is a vehicle which can tow.
    if(_towableVehiclesTotal > 0) then {
    if (s_player_towing < 0) then {
    if(!(_cursorTarget getVariable ["MFTowIsTowing", false])) then {
    s_player_towing = player addAction [("<t color="#33ff00"">" + ("Attach Tow") + "</t>"), format["%1\tow_AttachTow.sqf", MF_Tow_Base_Path], _cursorTarget, 0, false, true, "","];
    } else {
    s_player_towing = player addAction [("<t color="#ff3333"">" + ("Detach Tow") + "</t>"), format["%1\tow_DetachTow.sqf", MF_Tow_Base_Path], _cursorTarget, 0, false, true, "","];
    };
    };
    else {
    player removeAction s_player_towing;
    s_player_towing = -1;
    };


     

  9. Yeah, I do :)
    You didn't copy it correctly.

    Here's what you have:

    if((_traderMenu select 2) == "super") then {
       _humanity_logic = (_humanity < 15000);
    };
    if((_traderMenu select 2) == "s_bandit") then {
       _low_high == "high";
       _humanity_logic = (_humanity > -15000 
    };
    

    And here's what you should have:
     

    if((_traderMenu select 2) == "super") then {
       _humanity_logic = (_humanity < 15000);
    };
    if((_traderMenu select 2) == "s_bandit") then {
       _low_high == "high";
       _humanity_logic = (_humanity > -15000);
    };
    

    You are missing a bracket and a semi colon after (_humanity > -15000
    That's why it's not reading humanity correctly

    And if you have big chunks of code put them inside (spoiler) txt (/spoiler) (but with square brackets)   :)

  10. Check if everything is as I posted. Because I was rewriting it from my traders and at first I posted unchanged vesrion of the script. I corrected it later on, so it's correct now.
    In order for the script to correctly read humanity you have to have "super_hero" and "super_hostile" named in 'server_traders' in DB, server_traders.sqf and fn_selfActions.sqf.

    I am sure these bits of code that I posted are working correctly, because I use them on my server. 

    For what I've read somewhere, dayzepoch code looks for "HeliHEmpty" to spawn vehicles on it. Didn't bother to check more :D And didn't try to spawn vehicles without it.

    Double check everything, in case it all fails, send me your mission.pbo and I'll add it for you

  11. Ok.
    So I will release something in probably two weeks, but I'll give you some pieces from my traders build :)

    First, open your fn_selfActions.sqf in your mission.pbo and and "EXTRA TRADERS" to it.

    			// get humanity
    			_humanity = player getVariable ["humanity",0];
    			_traderMenu = call compile format["menu_%1;",_traderType];
    
    			// diag_log ("TRADER = " + str(_traderMenu));
    			
    			_low_high = "low";
    			_humanity_logic = false;
    			if((_traderMenu select 2) == "friendly") then {
    				_humanity_logic = (_humanity < -5000);
    			};
    			if((_traderMenu select 2) == "hostile") then {
    				_low_high = "high";
    				_humanity_logic = (_humanity > -5000);
    			};
    			if((_traderMenu select 2) == "hero") then {
    				_humanity_logic = (_humanity < 5000);
    			};
    //-----------------------CUSTOM TRADERS--------------------------------------------
    			if((_traderMenu select 2) == "super_hero") then {
    				_humanity_logic = (_humanity < 15000);
    			};
    			if((_traderMenu select 2) == "super_hostile") then {
                                    _low_high = "high";
    				_humanity_logic = (_humanity > -15000);
    			};
    //------------------------------------------------------------------------------
    

    Then you want to add this, to server_traders.sqf in yous mission.pbo:

    serverTraders = ["Worker1","Worker2","Tanny_PMC","Drake","BAF_Soldier_AAR_DDPM","US_Delta_Force_AR_EP1","US_Delta_Force_Medic_EP1","Soldier_MG_PKM_PMC","Soldier_MG_PMC","UN_CDF_Soldier_Crew_EP1","GUE_Soldier_1","Soldier_Sniper_PMC","UN_CDF_Soldier_Pilot_EP1","GUE_Soldier_3","BAF_Soldier_EN_MTP","UN_CDF_Soldier_Pilot_EP1","GUE_Worker2","Herrera_Light","Soldier_MG_PKM_PMC","Soldier_MG_PMC","GUE_Soldier_CO","RU_Damsel4","FR_Sykes","GUE_Villager4","TK_GUE_Warlord_EP1","GUE_Commander","GUE_Soldier_2","TK_GUE_Soldier_5_EP1","CIV_EuroWoman02_EP1","Dr_Annie_Baker_EP1","GUE_Soldier_Crew","Citizen3_EP1","ibr_lingorman6","ibr_lingorman6s","TK_CIV_Woman02_EP1","Damsel3","Hooker2","Hooker4","TK_GUE_Soldier_AAT_EP1"];
    //------------------------CUSTOM TRADER--------------------------
    // Hero Vendor
    menu_Worker1 = [
    [["Launchers",701],["Sniper Rifles",702],["Machine Guns",703],["Assault Rifles",704],["Helicopters",705],["Vehicles",706],["Gemstones",707],["Ammunition",700]],
    [],
    "super_hero"
    ];
    //Hostile Vendor
    menu_Worker2 = [
    [["Launchers",701],["Sniper Rifles",702],["Machine Guns",703],["Assault Rifles",704],["Helicopters",705],["Vehicles",706],["Gemstones",707],["Ammunition",700]],
    [],
    "super_hostile"
    ];
    //-------------------------------------------------------------
    

     

     

    Then you want to create custom_traders.sqf in your mission.pbo and put this inside:

    //-------------Super HERO----------------
    _unit_4444 = objNull;
    if (true) then
    {
      _this = createAgent ["Worker1", [15940,13710], [], 0, "CAN_COLLIDE"];
      _unit_4444 = _this;
      _this setDir 0; //trader will face north
      _this setVehicleInit "this allowDammage false; this disableAI 'FSM'; this disableAI 'MOVE'; this disableAI 'AUTOTARGET'; this disableAI 'TARGET'; this setBehaviour 'CARELESS'; this forceSpeed 0;  ";
      _this setUnitAbility 0.60000002;
    _this allowDammage false; _this disableAI 'FSM'; _this disableAI 'MOVE'; _this disableAI 'AUTOTARGET'; _this disableAI 'TARGET'; _this setBehaviour 'CARELESS'; _this forceSpeed 0;_this enableSimulation false;
    };
    //-----------------------------------------
    //-------------Super HOSTILE--------------
    _unit_5555 = objNull;
    if (true) then
    {
      _this = createAgent ["Worker2", [4836.269, 9969.0166], [], 0, "CAN_COLLIDE"];
      _unit_5555 = _this;
      _this setDir 0; //trader will face north
      _this setVehicleInit "this allowDammage false; this disableAI 'FSM'; this disableAI 'MOVE'; this disableAI 'AUTOTARGET'; this disableAI 'TARGET'; this setBehaviour 'CARELESS'; this forceSpeed 0;  ";
      _this setUnitAbility 0.60000002;
    _this allowDammage false; _this disableAI 'FSM'; _this disableAI 'MOVE'; _this disableAI 'AUTOTARGET'; _this disableAI 'TARGET'; _this setBehaviour 'CARELESS'; _this forceSpeed 0;_this enableSimulation false;
    };
    //-----------------------------------------
    //-----------VEHICLE SPAWNPOINT------------
    _vehicle_66 = objNull;
    if (true) then
    {
      _this = createVehicle ["HeliHEmpty", [15946,13716], [], 0, "CAN_COLLIDE"];
      _vehicle_66 = _this;
      _this setDir 0;
      _this setPos [15946,13716];
     };
     //----------------------------------------
    

    Bits like "_vehicle_66", "_unit_5555", "_unit_4444" or "Worker2&1" are totally custom. So you can leave them like this, or change them to your liking. I chose "Worker" skin, but you can add whatever you like. You also have to change the coordinates to what you want. The "HeliHEmpty" is for traders to know where to spawn vehicles. 

    Now you gotta execute custom_traders.sqf from your init.sqf:

    if (isServer) then {
    (...)
    //---------------CUSTOM TRADER------------------
    execVM "YOUR PATH\custom_traders.sqf";
    //--------------------------------------------
    };
    
    

    Ok. Last thing to do. Make a database addon with whatever you want to add. Name it custom_traders_database.sql:

    REPLACE INTO `traders_data` (`id`, `item`, `qty`, `buy`, `sell`, `order`, `tid`, `afile`) VALUES (8064, '["10Rnd_127x99_m107",1]', 250, '[5,"ItemGoldBar10oz",1]', '[2,"ItemGoldBar10oz",1]', 0, 700, 'trade_items_old');
    REPLACE INTO `traders_data` (`id`, `item`, `qty`, `buy`, `sell`, `order`, `tid`, `afile`) VALUES (8065, '["200Rnd_556x45_L110A1",1]', 250, '[5,"ItemGoldBar10oz",1]', '[2,"ItemGoldBar10oz",1]', 0, 700, 'trade_items_old');
    REPLACE INTO `server_traders` (`id`, `classname`, `instance`, `status`, `static`, `desc`) VALUES (177, 'Worker1', 17, 'super_hero', '', 'Custom Merchant');
    REPLACE INTO `server_traders` (`id`, `classname`, `instance`, `status`, `static`, `desc`) VALUES (178, 'Worker2', 17, 'super_hostile', '', 'Custom Merchant');
    REPLACE INTO `trader_tids` (`id`, `name`, `trader`) VALUES (700, 'Ammunition', 177);
    REPLACE INTO `trader_tids` (`id`, `name`, `trader`) VALUES (701, 'Launchers', 177);
    REPLACE INTO `trader_tids` (`id`, `name`, `trader`) VALUES (702, 'Sniper Rifles', 177);
    REPLACE INTO `trader_tids` (`id`, `name`, `trader`) VALUES (703, 'Machine Guns', 177);
    REPLACE INTO `trader_tids` (`id`, `name`, `trader`) VALUES (704, 'Assault Rifles', 177);
    REPLACE INTO `trader_tids` (`id`, `name`, `trader`) VALUES (705, 'Helicopters', 177);
    REPLACE INTO `trader_tids` (`id`, `name`, `trader`) VALUES (706, 'Vehicles', 177);
    REPLACE INTO `trader_tids` (`id`, `name`, `trader`) VALUES (707, 'Gemstones', 177);
    REPLACE INTO `trader_tids` (`id`, `name`, `trader`) VALUES (700, 'Ammunition', 178);
    REPLACE INTO `trader_tids` (`id`, `name`, `trader`) VALUES (701, 'Launchers', 178);
    REPLACE INTO `trader_tids` (`id`, `name`, `trader`) VALUES (702, 'Sniper Rifles', 178);
    REPLACE INTO `trader_tids` (`id`, `name`, `trader`) VALUES (703, 'Machine Guns', 178);
    REPLACE INTO `trader_tids` (`id`, `name`, `trader`) VALUES (704, 'Assault Rifles', 178);
    REPLACE INTO `trader_tids` (`id`, `name`, `trader`) VALUES (705, 'Helicopters', 178);
    REPLACE INTO `trader_tids` (`id`, `name`, `trader`) VALUES (706, 'Vehicles', 178);
    REPLACE INTO `trader_tids` (`id`, `name`, `trader`) VALUES (707, 'Gemstones', 178);
    

    That's pretty much it. This *.sql above is just an example. All IDs are some random numbers. Just make sure the numbers are different from the ones already in the database. 
    "traders_tids", "server_traders" and "traders_data" have to match eachother. They have to match what's in the server_traders.sqf and fn_selfactions.sqf. Pay attention to all these numbers, make sure they match eachother.

    If you need some explanation on how this *.sql works, PM me :) 

    And if you fancy this, and wish to show your thanks, than PM me as well :)

    Or you can send your mission.pbo, and I'll add it for you.

  12. @sisquo007

    I could add magazine selling to it, i'll get that out as soon as i can :)

     

    @Bambit

    After nearly 10 years of using this name in games and generally everywhere online, someone finally knows what it is :D

    And, if you know how to adjust it to sell from your backpack, you're more than welcome to do so. Let me know how it goes!

    Hehe :D

    That's because normal people don't make music :) You can make a nice change from Csus to C. 

    I have no bloody idea on how to adjust it to make it a backpack selling script :P as I have no clue about any of it. But I have some great experience with trial and error method, so I might come up with something... or not :D

  13. I answered it here

    But it might not be it. This game gives weird outcomes to different people with the same problem

     

     

    Anyway, have a look at how I added my stuff to the database:

     

    REPLACE INTO `traders_data` (`id`, `item`, `qty`, `buy`, `sell`, `order`, `tid`, `afile`) VALUES (8012, '["M110_TWS_EP1",3]', 250, '[1,"ItemRuby",1]', '[2,"ItemBriefcase100oz",1]', 0, 702, 'trade_weapons_old');
    REPLACE INTO `traders_data` (`id`, `item`, `qty`, `buy`, `sell`, `order`, `tid`, `afile`) VALUES (8026, '["AH64D_EP1",2]', 250, '[3,"ItemRuby",1]', '[2,"ItemBriefcase100oz",1]', 0, 705, 'trade_any_vehicle_old');
    REPLACE INTO `traders_data` (`id`, `item`, `qty`, `buy`, `sell`, `order`, `tid`, `afile`) VALUES (8055, '["RPG18",1]', 250, '[5,"ItemGoldBar10oz",1]', '[2,"ItemGoldBar10oz",1]', 0, 700, 'trade_items_old');
    
    
    
    
  14. That happens when you add an item as another item :D

    Basically if you add a gun, you have to implement it to a database as a gun, and I assume you added it as an item.

     

     

    1. ('["30Rnd_556x45_Stanag",1]', 1000, '[4,"ItemGoldBar",1]', '[2,"ItemGoldBar",1]',0478, 'trade_items');

    2. ('["USSR_cheytacM200",3]', 1000, '[4,"ItemGoldBar",1]', '[2,"ItemGoldBar",1]',0487, 'trade_weapons');

    3. ('["BTR40_TK_INS_EP1",2]', 1000, '[4,"ItemGoldBar10oz",1]', '[2,"ItemGoldBar10oz",1]',0564, 'trade_any_vehicle');

    Green number after the class name have got to fit the afile (brown) bit

    1 - 'trade_items'
    2 - "trade_any_vehicle"
    3 - "trade_weapons"

    So, if you put eg, "('["DMR_DZ",1]', 1000, '[4,"ItemGoldBar",1]', '[2,"ItemGoldBar",1]',0487, 'trade_any_vehicle'); then everything is wrong. DMR_DZ is a weapon name, so it should have 3, and should have 'afile' of trade_weapons.
    [Notice:
      - weapon class name - DMR_DZ
      - item - 1
      - afile - 
    trade_any_vehicle]

    So, item name should correspond to the item number and afile name.
    If you make it properly pictures will show up. Otherwise the game doesn't understand what you want of it. 

    At least that was a case in my case :D

    I added some stuff to my custom trader, but had no pictures, only names. Then I found out about item numbers and afile, and set it up properly and have all the pictures now

  15. There are people who can achieve such thing :D

    Try EMS 0.3
    We're using it on Napf with Defents' fixes.
    To be honest, the way it spawns missions sucks donkey's nuts. There's one mountain on south-east of Napf close to a dam where around 60% of missions spawn. I didn't like it, so I mixed EMS 0.3 with DZMS so that I could assign static points (DZMS allows static points, EMS is stripped of off this function).
    All in all, after I changed spawns to static points it works great, spawns missions around the map, and Defents' fixes also made it better.

  16. Make a fresh install and follow the install instruction to the letter! You didn't even bother to understand what I wrote at first, to check if the paths to files are set correctly.

    If you do it, you'll get it working. 

    So far you have had problems installing 3 different addons, because you failed to understand instructions. I'm not sure how you'll do with harder addons, as these 3 were pretty easy.

    I'll give you 3 pro-tips from a noob like me:
    1) Read the bloody manual and follow it to the letter. If it still doesn't work, check 3 times if you have done as the manual says.
    2) If the above fails, use this forum (or opendayz.net) and read every god damn post there is about the addon you have a problem with.
    3) If the above fails ask for help.

    This way you'll avoid making people frustrated and amused at the same time, proving your inability to read and search (and make your own research).

    I'm not writing this to pick on you or be rude. I'm trying to make you realise you can do it yourself IF you read&understand basic instructions.

    Peace     

×
×
  • Create New...