juandayz Posted April 16, 2016 Report Share Posted April 16, 2016 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 More sharing options...
0 Tech_Support Posted April 16, 2016 Report Share Posted April 16, 2016 should your if statement look more like this ? if (_isrunning) then { cutText [format["You already have a running bonus"], "PLAIN DOWN"]; } else { juandayz 1 Link to comment Share on other sites More sharing options...
0 juandayz Posted April 17, 2016 Author Report Share Posted April 17, 2016 dsnt work, but tnks any way!!!!! Link to comment Share on other sites More sharing options...
0 Tech_Support Posted April 17, 2016 Report Share Posted April 17, 2016 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. juandayz 1 Link to comment Share on other sites More sharing options...
0 seelenapparat Posted April 17, 2016 Report Share Posted April 17, 2016 your _isrunning must be a global variable. e.g.: isrunning if its only local, of course the script doesnt know it already running. juandayz 1 Link to comment Share on other sites More sharing options...
0 juandayz Posted April 17, 2016 Author Report Share Posted April 17, 2016 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 More sharing options...
0 Tech_Support Posted April 18, 2016 Report Share Posted April 18, 2016 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 More sharing options...
0 Tech_Support Posted April 18, 2016 Report Share Posted April 18, 2016 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 }; }; juandayz 1 Link to comment Share on other sites More sharing options...
0 Tech_Support Posted April 18, 2016 Report Share Posted April 18, 2016 Both scripts have similar timers to stop players re-running the scripts within an amount of time. juandayz 1 Link to comment Share on other sites More sharing options...
0 juandayz Posted April 18, 2016 Author Report Share Posted April 18, 2016 _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 More sharing options...
0 Tech_Support Posted April 18, 2016 Report Share Posted April 18, 2016 lastpack = time; Yes this is in the carepackage.sqf also just half way down the file. Link to comment Share on other sites More sharing options...
0 juandayz Posted April 18, 2016 Author Report Share Posted April 18, 2016 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 More sharing options...
Question
juandayz
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
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
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 accountSign in
Already have an account? Sign in here.
Sign In Now