Jump to content

El' Rabito

Member
  • Content Count

    177
  • Joined

  • Last visited

  • Medals

Everything posted by El' Rabito

  1. What it does: This enables PIN code change on objects like doors/gates/hatches/drawbridges etc. So you don't have to remove and replace an object to change the PIN code. Download(Github) Support Me: www.buymeacoffee.com/ElRabito 1. Replace the code of @ExileServer\addons\exile_server\code\ExileServer_object_lock_network_setPin.sqf with the code from Github. 2. Add this to class Construction of the CfgInteractionMenus inside mission config.cpp class ChangePinCode : ExileAbstractAction { title = "Change PIN"; condition = "((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo 0) && (call ExileClient_util_world_isInOwnTerritory)"; action = "_this spawn ExileClient_object_lock_setPin"; };
  2. Updated: Added a "Territory under attack" check for changing pincodes at territories similar to the other building functions like moving, building, removing, upgrading.
  3. El' Rabito

    Trader Issue [solved]

    Make a override for ExileClient_gui_traderDialog_event_onSellButtonClick with the code below. Wastedump still buys everything, so you need to "copy"/script that into the wasedump scripts. /** * ExileClient_gui_traderDialog_event_onSellButtonClick * * Exile Mod * www.exilemod.com * © 2015 Exile Mod Team * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. */ private["_dialog", "_sellButton", "_purchaseButton", "_inventoryListBox", "_selectedInventoryListBoxIndex", "_itemClassName", "_quantity", "_inventoryDropdown", "_selectedInventoryDropdownIndex", "_currentContainerType", "_containerNetID", "_container", "_retardCheck", "_SellToTrader", "_flags"]; disableSerialization; if !(uiNameSpace getVariable ["RscExileTraderDialogIsInitialized", false]) exitWith {}; _dialog = uiNameSpace getVariable ["RscExileTraderDialog", displayNull]; _sellButton = _dialog displayCtrl 4007; _sellButton ctrlEnable false; _sellButton ctrlCommit 0; _purchaseButton = _dialog displayCtrl 4010; _purchaseButton ctrlEnable false; _purchaseButton ctrlCommit 0; _inventoryListBox = _dialog displayCtrl 4005; _selectedInventoryListBoxIndex = lbCurSel _inventoryListBox; if !(_selectedInventoryListBoxIndex isEqualTo -1) then { _itemClassName = _inventoryListBox lbData _selectedInventoryListBoxIndex; _quantity = 1; if !(_itemClassName isEqualTo "") then { if !(ExileClientIsWaitingForServerTradeResponse) then { _inventoryDropdown = _dialog displayCtrl 4004; _selectedInventoryDropdownIndex = lbCurSel _inventoryDropdown; _currentContainerType = _inventoryDropdown lbValue _selectedInventoryDropdownIndex; _containerNetID = ""; if (_currentContainerType isEqualTo 5) then { _containerNetID = _inventoryDropdown lbData _selectedInventoryDropdownIndex; _container = objectFromNetId _containerNetID; _retardCheck = _container call ExileClient_util_containerCargo_list; } else { _retardCheck = player call ExileClient_util_playerCargo_list; }; _SellToTrader = getText(missionConfigFile >> "CfgExileArsenal" >> _itemClassName >> "sellToTradersTypes"); if !(ExileClientCurrentTrader in _SellToTrader) exitWith { ["ErrorTitleAndText", ["Wrong Trader", "This trader does not buy this. Try at a different trader!"]] call ExileClient_gui_toaster_addTemplateToast; }; if (_itemClassName in _retardCheck) then { ExileClientIsWaitingForServerTradeResponse = true; ["sellItemRequest", [_itemClassName, _quantity, _currentContainerType, _containerNetID]] call ExileClient_system_network_send; _flags = ["Exile_Item_FlagStolen1","Exile_Item_FlagStolen2","Exile_Item_FlagStolen3","Exile_Item_FlagStolen4","Exile_Item_FlagStolen5","Exile_Item_FlagStolen6","Exile_Item_FlagStolen7","Exile_Item_FlagStolen8","Exile_Item_FlagStolen9","Exile_Item_FlagStolen10"]; if (_itemClassName in _flags) then { player setflagOwner ObjNull; }; }; }; }; }; true Adjust your arsenal config for every item > example class Exile_Item_Cement { quality = 1; price = 400000; sellPrice = 5000; sellToTradersTypes = ["Exile_Trader_Food","Exile_Trader_Hardware"] };
  4. El' Rabito

    Trader Issue [solved]

    Iam gonna try if i can find a easy solution. But no promises if it's too complicated i don't wanna waste my time 😎
  5. El' Rabito

    Trader Issue [solved]

    "Everything" is possible. Lookup the trader code related files and change it to your needs and create override via CfgExileCustomCode in the mission config.cpp
  6. If you don't own the DLC you can't buy the vehicle. Prevents inexperienced players from buying DLC vehicles by mistake. 1. Make a CfgExileCustomCode override for ExileClient_gui_vehicleTraderDialog_event_onPurchaseButtonClick.sqf with the following code. > This only works if you use default classnames, if you use your own custom classnames it wont work properly! /** * ExileClient_gui_vehicleTraderDialog_event_onPurchaseButtonClick * * Exile Mod * www.exilemod.com * © 2015 Exile Mod Team * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. */ private["_vehicleClass", "_salesPrice", "_quality", "_requiredRespect", "_pin","_VehicleClassIsOwnedDLC","_configPath","_source"]; _vehicleClass = uiNameSpace getVariable ["RscExileVehicleTraderDialogVehicleClass", ""]; _VehicleClassIsOwnedDLC = getAssetDLCInfo [_vehicleClass] select 1; _salesPrice = getNumber(missionConfigFile >> "CfgExileArsenal" >> _vehicleClass >> "price"); _quality = getNumber(missionConfigFile >> "CfgExileArsenal" >> _vehicleClass >> "quality"); _requiredRespect = getNumber(missionConfigFile >> "CfgTrading" >> "requiredRespect" >> format["Level%1",_quality]); _pin = ctrlText ((uiNamespace getVariable ["RscExileVehicleTraderDialog",displayNull]) displayCtrl 4008); closeDialog 0; if !(_VehicleClassIsOwnedDLC) exitWith { ["ErrorTitleAndText", ["MISSING DLC", "You don't own the required DLC for this Vehicle!"]] call ExileClient_gui_toaster_addTemplateToast; }; if (count _pin != 4) exitWith { ["ErrorTitleAndText", ["Vehicle Purchase Aborted", "Pin not 4 characters."]] call ExileClient_gui_toaster_addTemplateToast; }; if (_salesPrice > (player getVariable ["ExileMoney", 0])) exitWith { ["ErrorTitleAndText", ["Vehicle Purchase Aborted", "Not enough money."]] call ExileClient_gui_toaster_addTemplateToast; }; if (_requiredRespect > ExileClientPlayerScore) exitWith { ["ErrorTitleAndText", ["Vehicle Purchase Aborted", "Not enough respect."]] call ExileClient_gui_toaster_addTemplateToast; }; ["purchaseVehicleRequest", [_vehicleClass,_pin]] call ExileClient_system_network_send; Support Me: www.buymeacoffee.com/ElRabito
  7. Updated - Now makes use of the new command -> https://community.bistudio.com/wiki/getAssetDLCInfo
  8. This fixes two exploits related to the Infistar !fixme command. 1.Add to your mission init.sqf ExileClientLastFixme = diag_tickTime; 2. a3_infiSTAR_Exile\fn_preInit.sqf line 527 - Replace the code with the code below. if(_fix_uniform_and_vest)then{ fnc_check_uniform_n_vest = { if(isNil'cunvthread')then { cunvthread = _this spawn { if(!isNil 'ExileClientLoadedIn' && alive player && (diag_tickTime - ExileClientLastFixme) >= 300)then { params [ ['_uniformServer','',['']], ['_vestServer','',['']] ]; _uniform = uniform player; _vest = vest player; if (!(_uniformServer isEqualTo _uniform) || !(_vestServer isEqualTo _vest)) then { closeDialog 0; _loadout = getUnitLoadout player; ExileClientLastFixme = diag_tickTime; ["InfoTitleAndText", ["!fixme", format ["Fixed your invisible gear!"]]] call ExileClient_gui_toaster_addTemplateToast; waitUntil { player setUnitLoadout _loadout; (_uniform isEqualTo (uniform player)) && (_vest isEqualTo (vest player)) }; }; }; cunvthread = nil; }; }; }; publicVariable "fnc_check_uniform_n_vest"; };
  9. # Updated - Added a fix for another exploit related to the Infistar !fixme command.
  10. What it does: This small change only allows the last driver to drain fuel from a vehicle (like the flip function). So trolls in the safezone can't just drain a vehicle. ################################################################################ Installation: Make a CfgExileCustomCode override for the following file with the code below. ################################################################################ ExileClient_object_vehicle_drain.sqf /** * ExileClient_object_vehicle_drain * * Exile Mod * www.exilemod.com * © 2015 Exile Mod Team * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. */ private["_object", "_hasACan", "_magazines", "_amount", "_fuelDetails", "_fuelAmount"]; _object = _this select 0; _hasACan = []; if !(local _object) exitWith {["ErrorTitleOnly", ["Only the last driver can drain fuel!"]] call ExileClient_gui_toaster_addTemplateToast; false;}; _magazines = magazinesAmmo player; { if((_x select 0) isEqualTo "Exile_Item_FuelCanisterEmpty")then { _amount = 20; _hasACan = ["Exile_Item_FuelCanisterEmpty",_amount,1]; }; if((_x select 0) isEqualTo "Exile_Item_FuelCanisterFull")then { if((_x select 1) < 20)then { _amount = 20 - (_x select 1); _hasACan = ["Exile_Item_FuelCanisterFull",_amount,_x select 1]; }; }; if((count _hasACan) isEqualTo 3)exitWith{}; } forEach _magazines; if((count _hasACan) isEqualTo 3)then { _fuelDetails = _object call ExileClient_util_fuel_getRealFuel; _fuelAmount = _fuelDetails select 0; if(_fuelAmount isEqualTo 0)exitWith { ["ErrorTitleAndText", ["Failed to drain fuel!", "There is no fuel left to drain."]] call ExileClient_gui_toaster_addTemplateToast; }; if((_hasACan select 1) > _fuelAmount)then { [ player, [_hasACan select 0,_hasACan select 2], ["Exile_Item_FuelCanisterFull",(20 -(_hasACan select 1)) + _fuelAmount] ] call ExileClient_util_inventory_replaceMagazine; _amount = _fuelAmount; } else { [ player, [_hasACan select 0,_hasACan select 2], ["Exile_Item_FuelCanisterFull",(20 -(_hasACan select 1)) + _amount] ] call ExileClient_util_inventory_replaceMagazine; }; call ExileClient_object_player_save; if(local _object)then { [_object,-_amount] call ExileClient_util_fuel_setFuel; } else { ["setFuelRequest",[netId _object,-_amount]] call ExileClient_system_network_send; }; ["SuccessTitleAndText", ["Drained fuel!", format ["You have drained %1L.", _amount]]] call ExileClient_gui_toaster_addTemplateToast; } else { ["ErrorTitleAndText", ["Failed to drain fuel!", "You do not have a fuel canister."]] call ExileClient_gui_toaster_addTemplateToast; }; true
  11. Updated. * Changed: Different flip height for ground/air vehicles and a special case for vehicles that like explode when you flip them like the 3CB Coyote and Jackal. (ExileClient_object_vehicle_flip change or add the classnames in _specialflipcases).
  12. Description: You can now flip vehicles even if the engine is still running (as last driver) and the vehicle flips a bit higher to avoid clipping into the ground. The Safezone Wastedump exploit should be fixed aswell with these changes. * Different flip height for ground/air vehicles and a special case for vehicles that like explode when you flip them like the 3CB Coyote and Jackal. (ExileClient_object_vehicle_flip change or add the classnames in _specialflipcases). ################################################################################ Installation: Make two CfgExileCustomCode overrides for the following files with the code below. ################################################################################ ExileClient_object_vehicle_interaction_show.sqf /** * ExileClient_object_vehicle_interaction_show * * Exile Mod * www.exilemod.com * © 2015 Exile Mod Team * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. */ (alive ExileClientInteractionObject) && !(locked ExileClientInteractionObject isEqualTo 2) ExileClient_object_vehicle_flip.sqf /** * ExileClient_object_vehicle_flip * * Exile Mod * www.exilemod.com * © 2015 Exile Mod Team * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. */ private["_vehicle","_pos"]; _vehicle = _this select 0; _vehicleType = typeof _vehicle; _specialflipcases = ["UK3CB_BAF_Coyote_Passenger_L111A1_W","UK3CB_BAF_Jackal2_L111A1_W","UK3CB_BAF_Jackal2_L111A1_G"]; if !(local _vehicle) exitWith {["ErrorTitleOnly", ["Only the last driver can flip this vehicle!"]] call ExileClient_gui_toaster_addTemplateToast; false;}; if ((locked _vehicle) isEqualTo 2) exitWith {["ErrorTitleOnly", ["You can't flip a locked vehicle!"]] call ExileClient_gui_toaster_addTemplateToast; false;}; if (local _vehicle) then { if (_vehicle iskindof "Air") then { _pos = getPosATL _vehicle; _pos set [2,(_pos select 2) + 1.0]; _vehicle setPosATL _pos; _vehicle setVectorUp [0, 0, 1] }; if (_vehicleType in _specialflipcases) then { _pos = getPosATL _vehicle; _pos set [2,(_pos select 2) + 3.75]; _vehicle setPosATL _pos; _vehicle setVectorUp [0, 0, 1]; } else { if !(_vehicle iskindof "Air") then { _pos = getPosATL _vehicle; _pos set [2,(_pos select 2) + 2.5]; _vehicle setPosATL _pos; _vehicle setVectorUp [0, 0, 1]; }; }; } else { ["flipVehRequest",[netId _vehicle]] call ExileClient_system_network_send; }; true
  13. El' Rabito

    Autorun Exploits fix

    Updated ! New features: - "Fixed" the "slide" bug while holstering a weapon and pressing autorun. - "Fixed" the instant weapon draw while pressing 1 or 2 while autorunning and then pressing a movement button.
  14. El' Rabito

    Pumps not working

    class WaterSource { name = "Dirty Water Source (Barrels/Pumps)"; models[] = { "misc_wellpump", "pumpa", "concretewell_02_f", "water_source_f", "waterbarrel_f", "land_pumpa" }; }; The classnames have to be in lowercase.
  15. That should do it..... Updated: https://github.com/ELRabito/Exile-Move-Element-Fix
  16. Yea small overlook from my side 😄 It's a bit different on our server with the building scripts. Iam looking into it.
  17. I don't know then, for me it works with a standard amount of traders. Not sure if anyone else has this problem.
  18. Try to increase the sleep time for each trader to maybe 0,20 or 0,25.
  19. El' Rabito

    Tree Remover Object

    Open your mission.sqm with the Arma 3 Editor and the Exile 3DEN mod loaded and place the hide object modules. Save it and put it back into your missionfile. I always did it like that and never had any problems.....
  20. El' Rabito

    Autorun Exploits fix

    Updated. - Disabled Autorun while in combat. - Disabled Autorun while playing russian roulette.
  21. Gets rid of the number changing base cameras and sorts them by distance so they should always have the same number. Make a CfgExileCustomCode override for ExileClient_gui_baseCamera_event_onLoad.sqf with the code below. Support Me: www.buymeacoffee.com/ElRabito /** * ExileClient_gui_baseCamera_event_onLoad * * Exile Mod * www.exilemod.com * © 2015 Exile Mod Team * * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. */ private["_display", "_camerasCombo", "_range", "_cameras", "_index"]; _display = uiNamespace getVariable ["RscExileCameraView",displayNull]; _camerasCombo = _display displayCtrl 4005; _range = ExileCameraSystemBase getVariable ["ExileTerritorySize",0]; _cameras = nearestObjects [ExileCameraSystemBase, ["Exile_Construction_BaseCamera_Static"], _range]; lbClear _camerasCombo; if(_cameras isEqualTo [])then { _index = _camerasCombo lbAdd "No cameras in your base"; _camerasCombo lbSetData [_index,"0"]; _camerasCombo lbSetPictureRight [_index,"\exile_assets\texture\ui\cameraView\camera.paa"]; } else { _index = _camerasCombo lbAdd "Select a Camera"; _camerasCombo lbSetData [_index,"0"]; _camerasCombo lbSetPictureRight [_index,"\exile_assets\texture\ui\cameraView\camera.paa"]; { _index = _camerasCombo lbAdd ("Camera " + (str _forEachIndex)); _camerasCombo lbSetData [_index,netId _x]; _camerasCombo lbSetPicture [_index,"\exile_assets\texture\ui\cameraView\camera.paa"]; if(_x getVariable ["ExileCameraInUse",false])then { _camerasCombo lbSetColor [_index,[221/255, 38/255, 38/255, 1]]; _camerasCombo lbSetPictureRightColor [_index,[221/255, 38/255, 38/255, 1]]; _camerasCombo lbSetTextRight [_index,"IN USE!"]; _camerasCombo lbSetColorRight [_index,[221/255, 38/255, 38/255, 1]]; } else { _camerasCombo lbSetColor [_index,[160/255, 223/255, 59/255, 1]]; }; } forEach _cameras; }; ExileClientPlayerIsInSecurityCamera = true; ExileClientPostProcessingColorCorrections ppEffectAdjust [1, 1, 0, [0, 0, 0, 0], [0.39, 0.32, 0.25, 1], [0.5,0.5,0.5,0], [0,0,0,0,0,0,4]]; ExileClientPostProcessingColorCorrections ppEffectCommit 0; ExileClientPostProcessingColorCorrections ppEffectEnable true; ExileClientPostProcessingSecurityCameraFilmGrain ppEffectCommit 0; ExileClientPostProcessingSecurityCameraFilmGrain ppEffectEnable true; false call ExileClient_gui_hud_toggle; _camerasCombo
  22. El' Rabito

    Base Camera sorting

    Then you did something wrong. Try again with fresh a override.
  23. El' Rabito

    Base Camera sorting

    Yea i edited it to avoid confusion. CfgCustomcode seems not clear enough for everbody ^^
  24. El' Rabito

    Base Camera sorting

    There is only one way to do overrides in exile. CfgExileCustomCode
  25. El' Rabito

    Base Camera sorting

    class CfgExileCustomCode { ExileClient_gui_baseCamera_event_onLoad = "Exile_Client_Overrides\ExileClient_gui_baseCamera_event_onLoad.sqf"; };
×