Jump to content

Tech_Support

Member
  • Posts

    427
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by Tech_Support

  1. player_selfbloodbag.sqf 

     

    //////////////////////////////////////////////////////////////////////////////////////////////
    // Script writen by Krixes                                                                    //
    //    Infection chance and some comments added by Player2                                    //
    //    Combat check added by istealth                                                        //
    //                                                                                            //
    //    Version 1.4                                                                                //
    //                                                                                            //
    // Change Log:                                                                                //
    // 1: Added bloodbag use timer                                                                //
    // 2: Added a timer for the amount of time before player can use self bloodbag again        //
    //////////////////////////////////////////////////////////////////////////////////////////////

    private ["_bloodAmount","_humanityBool","_infectionChance","_humanityNegBool","_humanityNegAmount","_humanityAmount","_infectedLifeLost","_infectedLifeBool","_lastBloodbag","_bloodbagLastUsedTime","_bloodbagTime","_bloodbagUseTime","_bloodbagUsageTime","_incombat","_timeout"];

     

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // Config Start-----------------------------------------------------------------------------------------------------------------------//
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    _bloodAmount = 4000; // Amount of blood to give to player
    _bloodbagUseTime = 15; // Amount of time it takes in second for the player to use the self bloodbag
    _bloodbagLastUsedTime = 60; // Amount of time in seconds before player can use self bloodbag again after a succesful use

    _infectionChance = 10; // Percent chance of player infection on self bloodbag (10 = 10% | 2 = 50% | 1 = 100%)
    _infectedLifeBool = true; // Whether the player can loose life if infected (True = On | False = off)
    _infectedLifeLost = 1000; // Amount of life to loose in becomes infected

    _humanityBool = false; // Whether the player can get humanity from giving self a bloodbag (True = On | False = off)
    _humanityAmount = 50; // Amount of humanity to give player if _humanityBool is true (250 is default for normal bloodbags)

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // Config End-------------------------------------------------------------------------------------------------------------------------//
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

     

     

    ///////////////////////////////////////////////////////////////////////////////
    // Everything below need not be modified unless you know what you are doing! //
    ///////////////////////////////////////////////////////////////////////////////

    _bloodbagTime = time - lastBloodbag; // Variable used for easy reference in determining the self bloodbag cooldown
    _bloodbagUsageTime = time;
    _timeout = player getVariable["combattimeout", 0];
    _inCombat = if (_timeout >= diag_tickTime) then { true } else { false };

    if(_bloodbagTime < _bloodbagLastUsedTime) exitWith { // If cooldown is not done then exit script
        cutText [format["You may not use Self Bloodbag this soon please wait %1!",(_bloodbagTime - _bloodbagLastUsedTime)], "PLAIN DOWN"]; //display text at bottom center of screen when players cooldown is not done
    };

    if (_inCombat) then { // Check if in combat
        cutText [format["You are in Combat and cannot give yourself a Bloodbag"], "PLAIN DOWN"]; //display text at bottom center of screen when in combat
    } else {

        player removeAction s_player_selfBloodbag; //remove the action from users scroll menu
        
        player playActionNow "Medic"; //play bloodbag animation
        
        ////////////////////////////////////////////////
        // Fancy cancel if interrupted addition start //
        ////////////////////////////////////////////////
        r_interrupt = false; // public interuppt variable
        _animState = animationState player; // get the animation state of the player
        r_doLoop = true; // while true sets whether to continue self bloodbagging
        _started = false; // this starts as false as a check
        _finished = false; // this starts as false and when true later sets players blood
        while {r_doLoop} do {
            _animState = animationState player; // keep checking to make sure player is in correct animation
            _isMedic = ["medic",_animState] call fnc_inString; // checking to make sure the animstate is the medic animation still
            if (_isMedic) then {
                _started = true; // this is a check to make sure everything is still ok
            };
            if(!_isMedic && !r_interrupt && (time - _bloodbagUsageTime) < _bloodbagUseTime) then {
                player playActionNow "Medic"; //play bloodbag animation
                _isMedic = true;
            };
            if (_started && !_isMedic && (time - _bloodbagUsageTime) > _bloodbagUseTime) then {
                r_doLoop = false; // turns off the loop
                _finished = true; // set finished to true to finish the self bloodbag and give player health/humanity
                lastBloodbag = time; // the last self bloodbag time
            };
            if (r_interrupt) then {
                r_doLoop = false; // if interuppted turns loop off early so _finished is never true
            };
            sleep 0.1;
        };
        r_doLoop = false; // make sure loop is off on successful self bloodbag
        ///////////////////////////////////////////////
        // Fancy cancel if interrupted addition end //
        //////////////////////////////////////////////

        if (_finished) then {
            player removeMagazine "ItemBloodbag"; //remove the used bloodbag from inventory

            r_player_blood = r_player_blood + _bloodAmount; //set players LOCAL blood to a certain ammount
            
            if(r_player_blood > 12000) then {
                r_player_blood = 12000; // If players blood is greater then max amount allowed set it to max allowed (this check keeps an error at bay)
            };
            
            // check if infected
            if (random(_infectionChance) < 1) then {
                r_player_infected = true; //set players client to show infection
                player setVariable["USEC_infected",true,true]; //tell the server the player is infected
                cutText [format["You have used a bloodbag on yourself but the bloodbag was infected!"], "PLAIN DOWN"]; //display text at bottom center of screen if infected
                
                // check for if loosing life on infection is turned on
                if(_infectedLifeBool) then {
                    r_player_blood = r_player_blood - _infectedLifeLost; //set players LOCAL blood to a certain ammount
                    player setVariable["USEC_BloodQty",r_player_blood,true]; //save this blood ammount to the database
                } else { // if loosing life is turned off
                    r_player_lowblood = false; //set lowblood setting to false
                    10 fadeSound 1; //slowly fade their volume back to maximum
                    "dynamicBlur" ppEffectAdjust [0]; "dynamicBlur" ppEffectCommit 5; //disable post processing blur effect
                    "colorCorrections" ppEffectAdjust [1, 1, 0, [1, 1, 1, 0.0], [1, 1, 1, 1],  [1, 1, 1, 1]];"colorCorrections" ppEffectCommit 5; //give them their colour back
                    r_player_lowblood = false; //just double checking their blood isnt low
                    player setVariable["USEC_BloodQty",r_player_blood,true]; //save this blood ammount to the database
                };
            } else { // if not infected
                r_player_lowblood = false; //set lowblood setting to false
                10 fadeSound 1; //slowly fade their volume back to maximum
                "dynamicBlur" ppEffectAdjust [0]; "dynamicBlur" ppEffectCommit 5; //disable post processing blur effect
                "colorCorrections" ppEffectAdjust [1, 1, 0, [1, 1, 1, 0.0], [1, 1, 1, 1],  [1, 1, 1, 1]];"colorCorrections" ppEffectCommit 5; //give them their colour back
                r_player_lowblood = false; //just double checking their blood isnt low
                player setVariable["USEC_BloodQty",r_player_blood,true]; //save this blood ammount to the database
        
                cutText [format["You have used a bloodbag on yourself!"], "PLAIN DOWN"]; //display text at bottom center of screen on succesful self bloodbag
            };
            
            // check if giving player humanity is on
            if(_humanityBool) then {
                [player,_humanityAmount] call player_humanityChange; // Set players humanity based on amount listed in config area
            };
        } else {
            // this is for handling if interrupted
            r_interrupt = false;
            player switchMove "";
            player playActionNow "stop";
            cutText [format["You have interrupted giving yourself a bloodbag!"], "PLAIN DOWN"]; //display text at bottom center of screen on interrupt
        };
    };

     

  2. carepackage.sqf

    // Carepackage script by Matt L
    //Special thanks to Infinistar for helping with mag selection for the weapons

    private ["_cost","_hasBriefs","_display","_distance","_boxtype","_unit","_getPos","_position","_box","_chute","_smoke","_var","_textt","_tools","_items","_walls","_supplies","_weapon","_weapon2","_weapon3","_weapon4","_weapon5","_weapon6","_giveWep","_possibleMags","_mag","_whichBuild","_crateItems","_text"];

    _cost = 2;
    _hasBriefs = {"ItemBriefCase100oz" == _x} count (magazines player);
    _LastUsedTime = 100;


    _Time = time - lastpack;


    if(_Time < _LastUsedTime) exitWith { // If cooldown is not done then exit script
        cutText [format["please wait %1 before calling in another carepackage!",(round(_Time - _LastUsedTime))], "PLAIN DOWN"]; //display text at bottom center of screen when players cooldown is not done
    };


    if (_hasBriefs >= _cost) then {

    for "_i" from 0 to _cost - 1 do {
    player removeMagazine "ItemBriefcase100oz";
    };

    disableSerialization;
    _display = findDisplay 24;
    (_display) closeDisplay 0;

    _distance = 500;
    _boxtype = "USVehicleBox_EP1";
    _unit = player;
    _getPos = getPos _unit;
    _position = [_getPos select 0, _getPos select 1, 25];
    _box = _boxtype createVehicle _position;
    _box setVariable ["Mission",1,true];
    _box setVariable ["permaLoot",1,true];
    _box setVariable ["ObjectID",""];
    _chute = createVehicle ["ParachuteMediumEast", getPos _box, [], 0, "FLY"];
    _box attachTo [_chute, [0,0,3]];
    _smoke = "SmokeShellBlue" createVehicle (getPos _box);
    _smoke attachTo [_box, [0,0,0]];
    _var = floor((random 2) + 1);

    lastpack = time;

    //display text to alert user
    _textt = format ["\nCarepackage is above you!",10];
    titleText [_textt,"PLAIN DOWN"];

    //define items

    _tools = ["ItemEtool","ItemKnife","ItemGPS","ItemFishingPole","ItemHatchet_DZE","ItemMatchbox_DZE","ItemCrowbar"];
    _items = ["ItemSodaPepsi","FoodCanCorn","FoodNutmix","ItemSodaClays","FoodCanSardines","ItemKiloHemp"];
    _walls = ["ItemWoodWallGarageDoor","ItemWoodWallWithDoorLg","ItemWoodWallLg","ItemWoodWallGarageDoor","ItemWoodFloor","metal_floor_kit Z","CinderWallDoorSmall_DZ"];
    _supplies = ["CinderBlocks","MortarBucket","ItemTankTrap","PartWoodPlywood","PartWoodLumber","ItemPole","PartGlass"];

    //weapon lists
    _weapon = "DMR";
    _weapon2 = "AK_47_M";
    _weapon3 = "BAF_L85A2_RIS_Holo";
    _weapon4 = "RPK_74";
    _weapon5 = "M14_EP1";
    _weapon6 = "M249_DZ";
    _giveWep = [_weapon,_weapon2,_weapon3,_weapon4,_weapon5,_weapon6] call BIS_fnc_selectRandom;
    _possibleMags = getArray (configfile >> "cfgWeapons" >> _giveWep >> "magazines");
    _mag = _possibleMags select 0;

    //select arrays to use
    _crateItems = [_walls,_supplies,_items] call BIS_fnc_selectRandom;
    uisleep 1;

    clearweaponcargoglobal _box;
    clearmagazinecargoglobal _box;

    uisleep 1;

    {_box addMagazineCargoGlobal [_x, _var];} forEach _crateItems;
    {_box addWeaponCargoGlobal [_x, 1];} forEach _tools;
    _box addMagazineCargoGlobal [_mag, _var];
    _box addWeaponCargoGlobal [_giveWep, 1];

    uisleep 1;

    waitUntil {(player distance _box) > _distance};
    deleteVehicle _box;
    deleteVehicle _chute;

    } else {
    _text = format ["\nYou need two full briefs to call a carepackage!",10];
    titleText [_text,"PLAIN DOWN"];
    };

  3. I had a look at a few other mods seems they use a timer to stop people from running the script over

    This is taken from the carepackage script // Carepackage script by Matt L

    _LastUsedTime = 100;


    _Time = time - lastpack;


    if(_Time < _LastUsedTime) exitWith { // If cooldown is not done then exit script
        cutText [format["please wait %1 before calling in another carepackage!",(round(_Time - _LastUsedTime))], "PLAIN DOWN"]; //display text at bottom center of screen when players cooldown is not done
    };

     

    Krixes self bloodbag script has a similar timer also to stop players running the script.

  4. 2 hours ago, He-Man said:

    Why do you remoteexec esecvm clientside? This is extreme dangerous!

    Define a function serverside and remoteexec this function from the client. 

    Why does 90% of the mods/addons have it in the install guide to add a execVM line to the init.sqf ?

    i have many mods on my arma2 epoch server with execVM lines in the init.sqf

     

  5. Check your Bec Config make sure BePath is correct

    This is my Config

    [Bec]
    IP = your server ip
    Port = your server port
    BePath = D:\Servers\Arma2OverpochServer\instance_11_Chernarus\BattlEye\
    Admins = Admins.xml
    Commands = Commands.xml
    [Misc]
    Ban = 3
    ConsoleHeight    = 30
    ConsoleWidth    = 60
    Scheduler = Scheduler.xml
    KickLobbyIdlers    = 400
    ChatChannelFiles = True
    Timeout = 60
    [Reporter]
    #User = alfred
    #Password = 123456

    PM me if you need more help.

  6. On 4/1/2016 at 0:33 PM, juandayz said:

    something like this : _hasitem1 = [["PartWoodLumber",2], "PartWoodPlywood"] call player_checkItems;      tnks anyway your info helped me.

    Try: if statement

        if ((("PartWoodLumber",2) in magazines player) && ("PartWoodPlywood" in magazines player)) then {

        } else {


        };

  7. here is my working 4hr restart with warnings

    <?xml version="1.0"?>

    <Scheduler>

        <!-- See: http://ibattle.org/install-and-configure/setting-up-the-scheduler -->

        <!-- Restart Messages -->
        <job id="0">
            <time>033000</time>
            <delay>000000</delay>
            <day>1,2,3,4,5,6,7</day>
            <loop>0</loop>
            <cmd>say -1 Server Restart in 30 minutes</cmd>    
            <cmdtype>0</cmdtype>            
        </job>    
        
        <job id="1">
            <time>034500</time>
            <delay>000000</delay>
            <day>1,2,3,4,5,6,7</day>
            <loop>0</loop>
            <cmd>say -1 Server Restart in 15 minutes</cmd>    
            <cmdtype>0</cmdtype>            
        </job>    
        
        <job id="2">
            <time>035000</time>
            <delay>000000</delay>
            <day>1,2,3,4,5,6,7</day>
            <loop>0</loop>
            <cmd>say -1 Server Restart in 10 minutes</cmd>    
            <cmdtype>0</cmdtype>            
        </job>
        
        <job id="3">
            <time>035500</time>
            <delay>000000</delay>
            <day>1,2,3,4,5,6,7</day>
            <loop>0</loop>
            <cmd>say -1 Server Restart in 5 minutes</cmd>    
            <cmdtype>0</cmdtype>            
        </job>
       
        <job id="4">
            <time>035900</time>
            <delay>000000</delay>
            <day>1,2,3,4,5,6,7</day>
            <loop>0</loop>
            <cmd>say -1 Server Restart in 60 seconds, logout to avoid gear loss</cmd>    
            <cmdtype>0</cmdtype>            
        </job>  

        <job id="5">
            <time>035930</time>
            <delay>000000</delay>
            <day>1,2,3,4,5,6,7</day>
            <loop>0</loop>
            <cmd>say -1 Server Restart in 30 seconds</cmd>    
            <cmdtype>0</cmdtype>            
        </job>
     
        <job id="6">
            <time>035950</time>
            <delay>000000</delay>
            <day>1,2,3,4,5,6,7</day>
            <loop>0</loop>
            <cmd>say -1 Server Restart in 10 seconds</cmd>    
            <cmdtype>0</cmdtype>            
        </job>

     <!-- run every 1h with a 5min delay on startup -->
        <job id="7">
            <time>010000</time>
            <delay>000500</delay>
            <day>1,2,3,4,5,6,7</day>
            <loop>1</loop>
            <cmd>say -1 ServerIP: 0.0.0.0 | Website: .net.com.whatever | Teamspeak: 0.0.0.0 </cmd>    
            <cmdtype>0</cmdtype>            
        </job>
    <!-- Message Every 30min on Loop -->
        <job id="8">
            <time>001800</time>
            <delay>000000</delay>
            <day>1,2,3,4,5,6,7</day>
            <loop>1</loop>
            <cmd>say -1 Overpoch Cherno 4 Hour Restarts</cmd>    
            <cmdtype>0</cmdtype>            
        </job>    
    <!-- RESTART SERVER -->
        <job id="9">
            <time>040000</time>
            <delay>000000</delay>
            <day>1,2,3,4,5,6,7</day>
            <loop>0</loop>
            <cmd>#shutdown</cmd>    
            <cmdtype>0</cmdtype>            
        </job>
    </Scheduler>

    i Have been told <cmdtype> is not used anymore but im to lazy to clean my Scheduler file up lol if it aint broke why try fix it lol

  8. GTXgaming should have its own file system for 1 click install of addon/mods from memory i believe your trader item files should be located inside your mission.pbo/folder unpacked  then CONFIGS folder then TRADERS folder then Category folder all your trader .hpp files are inside this folder.

    BanditAmmunition.hpp ( Obvious that this file is the bandit traders ammo supply )

    inside the .hpp file

    class Category_577
    {
    class 30Rnd_556x45_StanagSD {type = "trade_items";buy[] ={400,"Coins"};sell[] ={200,"Coins"};};
    class 5Rnd_86x70_L115A1 {type = "trade_items";buy[] ={4000,"Coins"};sell[] ={2000,"Coins"};};
    class 100Rnd_762x51_M240 {type = "trade_items";buy[] ={2000,"Coins"};sell[] ={1000,"Coins"};};
    class 20Rnd_762x51_FNFAL {type = "trade_items";buy[] ={400,"Coins"};sell[] ={200,"Coins"};};
    class 20Rnd_762x51_SB_SCAR {type = "trade_items";buy[] ={1000,"Coins"};sell[] ={500,"Coins"};};
    class 100Rnd_127x99_M2 {type = "trade_items";buy[] ={100000,"Coins"};sell[] ={50000,"Coins"};};
    class 2000Rnd_762x51_L94A1 {type = "trade_items";buy[] ={100000,"Coins"};};
    class 32Rnd_40mm_GMG {type = "trade_items";buy[] ={100000,"Coins"};sell[] ={50000,"Coins"};};
    class 48Rnd_40mm_MK19 {type = "trade_items";buy[] ={100000,"Coins"};sell[] ={50000,"Coins"};};
    class 2000Rnd_762x51_M134 {type = "trade_items";buy[] ={100000,"Coins"};sell[] ={50000,"Coins"};};     
    };

    To add ammo if the trader does not sell the item that you want copy a class line and paste it at the bottom inside the brackets and replace the class name with the item you want like so

    class Category_577
    {
    class 30Rnd_556x45_StanagSD {type = "trade_items";buy[] ={400,"Coins"};sell[] ={200,"Coins"};};
    class 5Rnd_86x70_L115A1 {type = "trade_items";buy[] ={4000,"Coins"};sell[] ={2000,"Coins"};};
    class 100Rnd_762x51_M240 {type = "trade_items";buy[] ={2000,"Coins"};sell[] ={1000,"Coins"};};
    class 20Rnd_762x51_FNFAL {type = "trade_items";buy[] ={400,"Coins"};sell[] ={200,"Coins"};};
    class 20Rnd_762x51_SB_SCAR {type = "trade_items";buy[] ={1000,"Coins"};sell[] ={500,"Coins"};};
    class 100Rnd_127x99_M2 {type = "trade_items";buy[] ={100000,"Coins"};sell[] ={50000,"Coins"};};
    class 2000Rnd_762x51_L94A1 {type = "trade_items";buy[] ={100000,"Coins"};};
    class 32Rnd_40mm_GMG {type = "trade_items";buy[] ={100000,"Coins"};sell[] ={50000,"Coins"};};
    class 48Rnd_40mm_MK19 {type = "trade_items";buy[] ={100000,"Coins"};sell[] ={50000,"Coins"};};
    class 2000Rnd_762x51_M134 {type = "trade_items";buy[] ={100000,"Coins"};sell[] ={50000,"Coins"};};

    class Change This to what you want {type = "trade_items";buy[] ={change the buy amount also 100000,"Coins"};sell[] ={ change the sell amount also 50000,"Coins"};}; 
    };

     

    Either way check those .hpp files if you are using the Cfgtraders that GTXgaming setup as 1 click install otherwise items for traders are in your sql database.

  9. Have you looked at this ?

    https://community.bistudio.com/wiki/playSound

     

    Example 1:
    playSound "soundname"
    Example 2:
    Start a sound and then stop it after 1.2 second:playSound "AlarmCar"; [] spawn { _sound = ASLToAGL [0,0,0] nearestObject "#soundonvehicle"; sleep 1.2; deleteVehicle _sound; };
    Example 3:
    Start a sound and wait until it is finished:playSound "Alarm"; hint "Started!"; [] spawn { _sound = ASLToAGL [0,0,0] nearestObject "#soundonvehicle"; waitUntil {isNull _sound}; hint "Finished!"; };
×
×
  • Create New...