Giter VIP home page Giter VIP logo

advancedrappelling's Introduction

Advanced Rappelling

Adds support for helicopter rappelling. SP & MP Compatible.

Features:

  • Rappel up to 6 players or AI from any helicopter at the same time (depending on helicopter size)
  • Enhanced rope physics. Takes into account wind speeds (from the rotor and environment) and air resistance. Players will swing around if the helicopter doesn't stay still.
  • Players control when and how quickly to descend down the rope using the "move backward" key
  • Supports rappelling onto tops of buildings, through trees, etc
  • Command AI in your group to rappel from a helicopter. AI will automatically descend the rope once told to rappel

Directions:

  • Get into any helicopter (not as pilot)
  • Once more than 5m off the ground, actions become available to rappel either yourself or your AI units
  • Once you are rappelling, press the "move backwards" key to descend down the rope (note: AI will auto-descend)

Installation:

  1. Subscribe via steam: http://steamcommunity.com/sharedfiles/filedetails/?id=713709341 or download latest release from https://github.com/sethduda/AdvancedRappelling/releases
  2. If installing this on a server, add the addon to the -serverMod command line option. It's only needed on the server side. Clients down need it. (However, if clients want to hear the nice rappelling sounds effects, they can optionally install it locally)

Notes for Mission Makers:

You can customize which classes of vehicles support rappelling by setting the AR_SUPPORTED_VEHICLES_OVERRIDE variable in an init.sqf file.

AR_SUPPORTED_VEHICLES_OVERRIDE = [ "CUP_CH47F_base", "RHS_CH_47F" ];

The example above will only allow rappelling from vehicles of class CUP_CH47F_base and RHS_CH_47F.

You can disable shooting whlie rappelling by setting the AR_DISABLE_SHOOTING_OVERRIDE varaible in an init.sqf file. Defaults to false (shooting enabled).

AR_DISABLE_SHOOTING_OVERRIDE = true;

You can limit the number of rappell positions (for all helicopters) using the AR_MAX_RAPPEL_POINTS_OVERRIDE variable in an init.sqf file. Defaults to 6. You can set any value from 1 to 6.

AR_MAX_RAPPEL_POINTS_OVERRIDE = 2;

You can define custom rappel points instead of using the default 6 rappel points by using the AP_CUSTOM_RAPPEL_POINTS variable. You can either specify [x,y,z] model positions or memory point names. Define the AP_CUSTOM_RAPPEL_POINTS variable in your init.sqf file.

Here's an example mixing both memory point names and [x,y,z] model positions. You would put this in an init.sqf file.

AP_CUSTOM_RAPPEL_POINTS = [
    ["CUP_CH47F_base",["slingload0",[1.2,1.0,0.5],"fastrope0"]],
    ["RHS_CH_47F", ["slingload0","slingload1","fastrope0"]]
];

In the example above, all vehicles of class type CUP_CH47F_base will use the rappel points defined by memory point slingload0, model position [1.2,1.0,0.5] and memory point fastrope0. All vehicles of class RHS_CH_47F will use rappel points defined by memory points slingload0, slingload1, and fastrope0. All other vehicles will use the default 6 rappel points.

If anyone works on heli models and would like their heli's rappel points pre-defined in my addon, let me know.

You can have AI auto-rappel from a helicopter using the following script (all units in the cargo seats will rappel):

[HELI_NAME] call AR_Rappel_All_Cargo

This function will rappel the cargo units at 25m at the heli's current position. If the heli is currently moving, it will stop so units can rappel.

If you want more control, there are addtional parameters you can set:

[HELI_NAME,RAPPEL_HEIGHT,POSITION_ASL] call AR_Rappel_All_Cargo

RAPPEL_HEIGHT: height in meters to rappel POSITION_ASL: Exact position ASL where you want the units to rappel to. This script will get them within ~1m of that position.

Not working on your server?

Make sure you have the mod listed in the -mod or -serverMod command line option. Only -serverMod is required for this addon. If still not working, check your server log to make sure the addon is found.

FAQ

This addon is only required on the server - is it going to slow down my server?

No - while this addon is server-side only, it installs itself on all clients without them downloading the addon. Most of the time, the rappelling code actually runs client-side, even though you installed the addon only on the server. Magic!

Battleye kicks me when I try to do xyz. What do I do?

You need to configure Battleye rules on your server. Below are the files you need to configure:

setvariable.txt

Add the following exclusions to the end of all lines starting with 4, 5, 6, or 7 if they contain "" (meaning applies to all values):

!"AR_"

setvariableval.txt

If you have any lines starting with 4, 5, 6, or 7 and they contain "" (meaning applies to all values) it's not going to work. Either remove the line or explicitly define the values you want to kick. Since the values of the variables above can vary, I don't know of a good way to define an exclusion rule.

Also, it's possible there are other battleye filter files that can cause issues. If you check your battleye logs you can figure out which file is causing a problem.

The rappelling action appears while in a heli, but do nothing when I select them. How do I fix that?

Most likely your server is setup with a white list for remote executions. In order to fix this, you need to modify your mission's description.ext file, adding the following CfgRemoteExec rules. If using InfiStar you should edit your cfgremoteexec.hpp instead of the description.ext file. See https://community.bistudio.com/wiki/Arma_3_Remote_Execution for more details on CfgRemoteExec.

class CfgRemoteExec
{
	class Functions
	{
		class AR_Client_Rappel_From_Heli { allowedTargets=0; }; 
		class AR_Hint { allowedTargets=1; }; 
		class AR_Hide_Object_Global { allowedTargets=2; }; 
		class AR_Enable_Rappelling_Animation { allowedTargets=2; }; 
		class AR_Rappel_From_Heli { allowedTargets=2; }; 
	};
};

Issues & Feature Requests

https://github.com/sethduda/AdvancedRappelling/issues

If anyone wants to help fix any of these, please let me know. You can fork the repo and create a pull request.

Special Thanks for Testing & Support:


The MIT License (MIT)

Copyright (c) 2016 Seth Duda

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

advancedrappelling's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

advancedrappelling's Issues

Feature Request

Would love to see the Rappelling expanded to include buildings as well

Install Help

I have tried to install this on our server I have the folder uploaded, I have @AR_advancedrappelling in the command line , I have the init.sqf as so

};

AR_SUPPORTED_VEHICLES = [
"Helicopter",
"VTOL_Base_F",
"B_Heli_Light_01_armed_F",
"O_Heli_Light_02_v2_F",
"RHS_UH1Y_FFAR_d",
"RHS_UH1Y_d",
"RHS_MELB_H6M",
"RHS_UH60M"

];

AR_Is_Supported_Vehicle = {
params ["_vehicle","_isSupported"];
_isSupported = false;
if(not isNull _vehicle) then {
{
if(_vehicle isKindOf _x) then {
_isSupported = true;
};
} forEach (missionNamespace getVariable ["AR_SUPPORTED_VEHICLES_OVERRIDE",AR_SUPPORTED_VEHICLES]);
};
_isSupported;
};

what am i doing wrong

CfgRemoteExec whitelist

Not an issue, just the actual whitelist needed for CfgRemoteExec class Functions:

class AR_Client_Rappel_From_Heli {};
class AR_Enable_Rappelling_Animation { allowedTargets=2; };
class AR_Hide_Object_Global { allowedTargets=2; };
class AR_Hint {};
class AR_Play_Rappelling_Sounds_Global { allowedTargets=2; };
class AR_Rappel_All_Cargo {};
class AR_Rappel_From_Heli { allowedTargets=2; };

and the BattlEye remoteexec.txt exclusion: !="AR_\w+? \[[\S\s]*\]"

Enhanced Movement/WalkOnObject Conflict

Causes ropes to break at random- typically mere seconds after beginning rappel. Old news, but still needs to be fixed. This is probably EMovement's fault, being honest, as it breaks even ACE ropes. (or it does with this mod also enabled.)

Server crashing after loading Mod

Hello,

I have installed the mod on the server, and I am loading it only on the server.
-servermod="mods/@advancedrappelling\;"
But the server is crashing.

Please help.

UP and DOWN movement while hanging on a Rope Bug

As an Admin on our Arma3 Exile Server, we cannot descend or climb up while on a Rope.
As soon as we relog without Admin rights everything just works fine. we use Infistar on a Nitrado Server.

Fast Roping from new Hellcat sometimes fails

Hey Duda. Looks like when trying to fast-rope from the new Hellcats (with the editable pylons), sometimes the passengers simply hop out, are on the rope for a second, then fall off the rope and fall to an awkward ARMA-y death. There is much laughing at these unfortunate souls, but we need our medic to stop dying on insertion.

We've noticed this is particularly common from the open door positions, but we've observed it from the passenger seats as well.

It looks like if the models appeared maybe another meter underneath the helicopters when they start roping, this wouldn't happen. Is that something we can do?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.