Jump to content
  • 0

Help whit Buy Bonus of Market


juandayz

Question

how i can stop this script if  the same player call it again.  i tryed whit  if (_isrunning) exitWith {cutText [format["You already have a running bonus"], "PLAIN DOWN"];};  but dsnt work

Spoiler

private ["_playerPos","_nearbank","_costs","_reward","_msg","_isrunning"];

call gear_ui_init;
_playerPos = getPosATL player;
_nearbank = count nearestObjects [_playerPos, ["CIV_EuroWoman01_EP1"], 3] > 0;
_costs = 5000;

if (_isrunning) exitWith {cutText [format["You already have a running bonus"], "PLAIN DOWN"];};

if (_nearbank) then {
    if !([ player,_costs] call SC_fnc_removeCoins) then {
        titleText [format["Needs %1 %2 to buy bonus.",_costs,CurrencyName] , "PLAIN DOWN", 1];
    } else {
    titleText [format["You pay %1  %2 %3",_costs,CurrencyName] , "PLAIN DOWN", 1];

_isrunning =     
{  
 

multiPlyWith = 1;
_i=0;

while {_i < 7} do
{
    if ( _i == 1) then
    {
        _reward = (10000 * multiPlyWith);
        player setVariable ["cashMoney", ((player getVariable ["cashMoney", 0]) + _reward), true];
        _msg = parseText format ["<t align='center' color='#FFFFFF' shadow='2' size='1.75'>Pay Check!</t><br/><t align='center' color='#17FF41'>------------------------------</t><br/><t align='center' color='#FFFFFF'>%1 Tnks for put your money whit us: </t><t align='center' color='#40FF00'>$%2</t>", name player, _reward];        
        hint _msg;
        multiPlyWith = multiPlyWith + 0;
        _i = 0;
    };
    sleep 1200;
    _i = _i + 1;
};
};
};
};

 

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

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.

Link to comment
Share on other sites

  • 0

tnks! i had to add another script to call a requiered items to start this, but gonna try whit yours ways.... tnks selena and tech

 

tech do you have the whole code. i need to know how is defined "lastpack"  cuz in the original post the downloader its down

Link to comment
Share on other sites

  • 0

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"];
};

Link to comment
Share on other sites

  • 0

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
    };
};

 

Link to comment
Share on other sites

  • 0

_bloodbagUseTime = 15;
_bloodbagLastUsedTime = 60; // Amount of time in seconds before player can use self bloodbag again after a succesful use

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
};

so if

lastBloodbag = time;

then

lastpack = time;

Tnks a lot Tech!!!!

Link to comment
Share on other sites

  • 0

its done! tnks guys

 

Spoiler

private ["_playerPos","_nearbank","_costs","_hasbonus","_reward","_msg","_LastUsedTime","_Time"];

call gear_ui_init;
_playerPos = getPosATL player;
_nearbank = count nearestObjects [_playerPos, ["CIV_EuroWoman01_EP1"], 3] > 0;
_costs = 5000;
_hasbonus = "ItemBook2" in magazines player;
_LastUsedTime = 3600;
_Time = time - lastlaunch;

if !(_hasbonus) exitWith {cutText [format["Needs a licence to buy it"], "PLAIN DOWN"];};

 

 

if(_Time < _LastUsedTime) exitWith {
    cutText [format["U already have it whait %1 seconds before bought another !",(round(_Time - _LastUsedTime))], "PLAIN DOWN"];
};

if (_nearbank) then {
    if !([ player,_costs] call SC_fnc_removeCoins) then {
        titleText [format["Needs %1 %2 To buy it.",_costs,CurrencyName] , "PLAIN DOWN", 1];
    } else {
    titleText [format["bought %1  %2 %3",_costs,CurrencyName] , "PLAIN DOWN", 1];

    lastlaunch = time;
multiPlyWith = 1;
_i=0;

while {_i < 7} do
{
    if ( _i == 1) then
    {
        _reward = (5000 * multiPlyWith);
        player setVariable ["cashMoney", ((player getVariable ["cashMoney", 0]) + _reward), true];
        _msg = parseText format ["<t align='center' color='#FFFFFF' shadow='2' size='1.75'>Pay Dayl!</t><br/><t align='center' color='#17FF41'>------------------------------</t><br/><t align='center' color='#FFFFFF'>%1 Tnks for put your money whit us: </t><t align='center' color='#40FF00'>$%2</t>", name player, _reward];
        hint _msg;
        multiPlyWith = multiPlyWith + 0;
        _i = 0;
    };
    sleep 1200;
    _i = _i + 1;
    
};
};
};

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Discord

×
×
  • Create New...