FANDOM


ArmA 3 doesn't have any melée combat in it. It's a military simulator and it doesn't expect you to want to punch someone to death or insert an axe in their face. In the DayZ mod, there was an axe which you could use for melee combat. What's surprising about the axe is that it isn't actually a melée weapon at all; in the underlying code. The axe is actually a very short range firearm. Those who played early versions of DayZ might recall that you had to initially 'reload' it and that it had 1,000 'rounds' in it before that was concealed by the code.

So can you have melée combat in Ravage? Not yet. You could mod it in the way that DayZ did, but that's quite tricky to do. Haleks has said that he is investigating adding melée combat to Ravage, so wait and see.

In the meantime, you can add a basic form of melée combat - fists.

It only works on humans and animals at the moment. But would you really want to try to punch zombies to death? The code below will allow you to add punching. Put your weapon away and left click to let your fists do the talking.


player addAction ["", {
	0 spawn {
		player setVariable ["_isBoxing", true];
		player playAction (selectRandom ["babe_rvg_zeds_att1", "babe_rvg_zeds_att2", "babe_rvg_zeds_att3"]);
		if (cursorTarget isKindOf "man" && {player distance cursorTarget < 1.25}) then {
			playSound3D [selectRandom [
				"rvg_zeds\sounds\zed_hit_0.ogg",
				"rvg_zeds\sounds\zed_hit_1.ogg",
				"rvg_zeds\sounds\zed_hit_2.ogg"
			], cursorTarget];
			_selection = selectRandom ((getAllHitPointsDamage cursorTarget) select 1);
			_bullet = createVehicle ["rvg_zedAmmo",(cursorTarget modelToWorldVisual (cursorTarget selectionPosition _selection)),[],0,"CAN_COLLIDE"];
			_bullet setShotParents [vehicle player, player];
			_vector = vectorNormalized (ASLToAGL (getPosASL _bullet) vectorFromTo (player getPos [100,0]));
			_bullet setVelocity (_vector vectorMultiply 7);
		};
		player setFatigue (getFatigue player + 0.1);
		sleep 0.5;
		player setVariable ["_isBoxing", nil];
	};
}, "", 0, false, true, "DefaultAction",
"isNil {player getVariable '_isBoxing'} && {(vehicle player) isEqualTo player && currentWeapon player isEqualTo  && ((getFatigue player) < 0.9)}"
];

To alter the damage you dish out, change the value in this line (higher is a stronger hit):

_bullet setVelocity (_vector vectorMultiply 7);