mirror of
https://github.com/Defent/DMS_Exile.git
synced 2024-08-30 16:52:12 +00:00
Today's Feature... Some of you are gonna like this
* NEW CONFIG VALUES: DMS_Diff_RepOrTabs_on_roadkill DMS_Bandit_Soldier_RoadkillMoney DMS_Bandit_Soldier_RoadkillRep DMS_Bandit_Static_RoadkillMoney DMS_Bandit_Static_RoadkillRep DMS_Bandit_Vehicle_RoadkillMoney DMS_Bandit_Vehicle_RoadkillRep * Removed config value: "DMS_credit_roadkill" * You can now REDUCE a player's respect/poptabs when the player roadkills an AI. The default values are -10 poptabs and -5 respect (hardly noticeable, but I didn't want it to be extreme). * Alternatively, you can simply reduce the amount of poptabs gained by giving each corresponding config a positive value less than the regular. Set the value to 0 if you don't want to credit the poptabs/respect. * The player will get an appropriately colored message if he/she LOSES poptabs (as opposed to gaining them). * The player also gets a little more information regarding the type of AI he/she has killed.
This commit is contained in:
@ -109,11 +109,18 @@ DMS_DEBUG = false;
|
||||
DMS_Bandit_Vehicle_MoneyGain = 100; // The amount of Poptabs gained for killing a bandit vehicle crew member
|
||||
DMS_Bandit_Vehicle_RepGain = 25; // The amount of Respect gained for killing a bandit vehicle crew member
|
||||
|
||||
DMS_Diff_RepOrTabs_on_roadkill = true; // Whether or not you want to use different values for giving respect/poptabs when you run an AI over. Default values are NEGATIVE. This means player will LOSE respect or poptabs.
|
||||
DMS_Bandit_Soldier_RoadkillMoney = -10; // The amount of Poptabs gained/lost for running over a bandit soldier
|
||||
DMS_Bandit_Soldier_RoadkillRep = -5; // The amount of Respect gained/lost for running over a bandit soldier
|
||||
DMS_Bandit_Static_RoadkillMoney = -10; // The amount of Poptabs gained/lost for running over a bandit static gunner
|
||||
DMS_Bandit_Static_RoadkillRep = -5; // The amount of Respect gained/lost for running over a bandit static gunner
|
||||
DMS_Bandit_Vehicle_RoadkillMoney = -10; // The amount of Poptabs gained/lost for running over a bandit vehicle crew member
|
||||
DMS_Bandit_Vehicle_RoadkillRep = -5; // The amount of Respect gained/lost for running over a bandit vehicle crew member
|
||||
|
||||
DMS_banditSide = EAST; // The side (team) that AI Bandits will spawn on
|
||||
DMS_clear_AI_body = false; // Clear AI body as soon as they die
|
||||
DMS_clear_AI_body_chance = 50; // Percentage chance that AI bodies will be cleared when they die
|
||||
DMS_ai_disable_ramming_damage = true; // Disables damage due to ramming into AI. !!!NOTE: THIS WILL NOT BE RELIABLE WITH "DMS_ai_offload_to_client"!!!
|
||||
DMS_credit_roadkill = false; // Credit players with respect/poptabs if they kill an AI by running it over
|
||||
DMS_remove_roadkill = true; // Remove gear from AI bodies that are roadkilled
|
||||
DMS_remove_roadkill_chance = 50; // Percentage chance that roadkilled AI bodies will be deleted
|
||||
DMS_RemoveNVG = false; // Remove NVGs from AI bodies
|
||||
|
@ -15,7 +15,7 @@
|
||||
*/
|
||||
|
||||
|
||||
private ["_unit", "_killer", "_side", "_type", "_launcher", "_playerObj", "_rockets", "_grpUnits", "_av", "_memCount", "_gunner", "_driver", "_veh", "_moneyGain", "_repGain", "_money", "_respect"];
|
||||
private ["_unit", "_killer", "_side", "_type", "_launcher", "_playerObj", "_rockets", "_grpUnits", "_av", "_memCount", "_gunner", "_driver", "_veh", "_moneyChange", "_repChange", "_money", "_respect", "_roadKilled"];
|
||||
|
||||
|
||||
if (DMS_DEBUG) then
|
||||
@ -237,6 +237,7 @@ if (!isNull _av) then
|
||||
};
|
||||
};
|
||||
|
||||
_roadKilled = false;
|
||||
|
||||
if (isPlayer _killer) then
|
||||
{
|
||||
@ -266,12 +267,7 @@ if (isPlayer _killer) then
|
||||
{
|
||||
_playerObj = driver _veh;
|
||||
|
||||
|
||||
// Don't reward players with poptabs/respect if configured to do so
|
||||
if !(DMS_credit_roadkill) then
|
||||
{
|
||||
_playerObj = objNull;
|
||||
};
|
||||
_roadKilled = true;
|
||||
|
||||
|
||||
// Remove gear from roadkills if configured to do so
|
||||
@ -285,33 +281,56 @@ if (isPlayer _killer) then
|
||||
|
||||
if ((!isNull _playerObj) && {((getPlayerUID _playerObj) != "") && {_playerObj isKindOf "Exile_Unit_Player"}}) then
|
||||
{
|
||||
_moneyGain = missionNamespace getVariable [format ["DMS_%1_%2_MoneyGain",_side,_type],0];
|
||||
_repGain = missionNamespace getVariable [format ["DMS_%1_%2_RepGain",_side,_type],0];
|
||||
_moneyChange = missionNamespace getVariable [format ["DMS_%1_%2_MoneyGain",_side,_type],0];
|
||||
_repChange = missionNamespace getVariable [format ["DMS_%1_%2_RepGain",_side,_type],0];
|
||||
|
||||
if ((_moneyGain>0) || (_repGain>0)) then
|
||||
if (_roadKilled && {DMS_Diff_RepOrTabs_on_roadkill}) then
|
||||
{
|
||||
_moneyChange = missionNamespace getVariable [format ["DMS_%1_%2_RoadkillMoney",_side,_type],0];
|
||||
_repChange = missionNamespace getVariable [format ["DMS_%1_%2_RoadkillRep",_side,_type],0];
|
||||
};
|
||||
|
||||
if ((_moneyChange!=0) || (_repChange!=0)) then
|
||||
{
|
||||
_money = _playerObj getVariable ["ExileMoney", 0];
|
||||
_respect = _playerObj getVariable ["ExileScore", 0];
|
||||
|
||||
if (_moneyGain>0) then
|
||||
if (_moneyChange!=0) then
|
||||
{
|
||||
private ["_msgType", "_msgParams"];
|
||||
|
||||
// Set client's money
|
||||
_money = _money + _moneyGain;
|
||||
// I also make sure that they don't get negative poptabs
|
||||
_money = (_money + _moneyChange) max 0;
|
||||
_playerObj setVariable ["ExileMoney",_money];
|
||||
|
||||
// Change message for players when they're actually LOSING poptabs
|
||||
_msgType = "moneyReceivedRequest";
|
||||
_msgParams = [str _money, format ["killing a %1 AI",_type]];
|
||||
|
||||
if (_moneyChange<0) then
|
||||
{
|
||||
_msgType = "notificationRequest";
|
||||
_msgParams = ["Whoops",[format ["Lost %1 poptabs from running over a %2 AI!",abs _moneyChange,_type]]];
|
||||
|
||||
// With the error message the money value won't be updated on the client, so I just directly PVC the value.
|
||||
ExileClientPlayerMoney = _money;
|
||||
(owner _playerObj) publicVariableClient "ExileClientPlayerMoney";
|
||||
ExileClientPlayerMoney = nil;
|
||||
};
|
||||
|
||||
// Send notification and update client's money stats
|
||||
// Somebody done fucked up so you don't see the sender for the money sending ;)
|
||||
[_playerObj, "moneyReceivedRequest", [str _money, "killing AI"]] call ExileServer_system_network_send_to;
|
||||
[_playerObj, _msgType, _msgParams] call ExileServer_system_network_send_to;
|
||||
};
|
||||
|
||||
if (_repGain>0) then
|
||||
if (_repChange!=0) then
|
||||
{
|
||||
// Set client's respect
|
||||
_respect = _respect + _repGain;
|
||||
_respect = _respect + _repChange;
|
||||
_playerObj setVariable ["ExileScore",_respect];
|
||||
|
||||
// Send frag message
|
||||
[_playerObj, "showFragRequest", [ [["AI KILL",_repGain]] ] ] call ExileServer_system_network_send_to;
|
||||
[_playerObj, "showFragRequest", [ [[format ["%1 AI KILL",toUpper _type],_repChange]] ] ] call ExileServer_system_network_send_to;
|
||||
|
||||
// Send updated respect value to client
|
||||
ExileClientPlayerScore = _respect;
|
||||
|
Binary file not shown.
43
README.md
43
README.md
@ -12,33 +12,6 @@ so your ```_aLocalM``` would look like:
|
||||
```
|
||||
_aLocalM = ["DMS_MissionMarkerCircle","DMS_MissionMarkerDot"];
|
||||
```
|
||||
## IF YOU ARE UPDATING YOUR DMS FROM BEFORE THE 5th OF SEPTEMBER, PLEASE READ BELOW:
|
||||
The crate loot system has undergone an improvement. You can now define loot values for different crates for the same mission, or none at all!
|
||||
HOWEVER: This requires you to change the organization of the crate in the mission.
|
||||
|
||||
Previously, _missionObjs was defined with the format:
|
||||
```
|
||||
[
|
||||
[_cleanupObj1,_cleanupObj2,...,_cleanupObjX],
|
||||
[_crate,_vehicle1,_vehicle2,...,_vehicleX],
|
||||
_crate_loot_values
|
||||
]
|
||||
```
|
||||
|
||||
|
||||
Now you must define it as:
|
||||
```
|
||||
[
|
||||
[_cleanupObj1,_cleanupObj2,...,_cleanupObjX],
|
||||
[_vehicle1,_vehicle2,...,_vehicleX],
|
||||
[
|
||||
[_crate1,_crate_loot_values1],
|
||||
[_crate2,_crate_loot_values2]
|
||||
]
|
||||
]
|
||||
```
|
||||
|
||||
Please refer to the current default missions if you are unsure. The Bauhaus truck mission shows an example of spawning 2 crates.
|
||||
|
||||
## Optional:
|
||||
|
||||
@ -78,6 +51,22 @@ if (!hasInterface && !isServer) then
|
||||
|
||||
|
||||
## Changelog:
|
||||
#### September 21, 2015 (11:30 PM CST-America):
|
||||
* NEW CONFIG VALUES:
|
||||
DMS_Diff_RepOrTabs_on_roadkill
|
||||
DMS_Bandit_Soldier_RoadkillMoney
|
||||
DMS_Bandit_Soldier_RoadkillRep
|
||||
DMS_Bandit_Static_RoadkillMoney
|
||||
DMS_Bandit_Static_RoadkillRep
|
||||
DMS_Bandit_Vehicle_RoadkillMoney
|
||||
DMS_Bandit_Vehicle_RoadkillRep
|
||||
* Removed config value: "DMS_credit_roadkill"
|
||||
* You can now REDUCE a player's respect/poptabs when the player roadkills an AI. The default values are -10 poptabs and -5 respect (hardly noticeable, but I didn't want it to be extreme).
|
||||
* Alternatively, you can simply reduce the amount of poptabs gained by giving each corresponding config a positive value less than the regular. Set the value to 0 if you don't want to credit the poptabs/respect.
|
||||
* The player will get an appropriately colored message if he/she LOSES poptabs (as opposed to gaining them).
|
||||
* The player also gets a little more information regarding the type of AI he/she has killed.
|
||||
|
||||
|
||||
#### September 20, 2015 (11:30 PM CST-America):
|
||||
* CONFIG VALUES: Changed "DMS_MissionTypes" to "DMS_BanditMissionTypes"
|
||||
* Renamed some variables to "future-proof" them
|
||||
|
Reference in New Issue
Block a user