Lenin1870
Chieftain
- Joined
- Mar 16, 2013
- Messages
- 50
Code:
function pPlayerMilitarizationBonus(attacker, defender)
local tAttackerID = attacker[CombatResultParameters.ID];
local pAttackingPlayerConfig = PlayerConfigurations[tAttackerID.player];
local tDefenderID = defender[CombatResultParameters.ID];
local pDefendingPlayerConfig = PlayerConfigurations[tDefenderID.player];
local iAttackerCombatStrength = attacker[CombatResultParameters.COMBAT_STRENGTH];
local iDefenderCombatStrength = defender[CombatResultParameters.COMBAT_STRENGTH];
local iAttackerBonus = attacker[CombatResultParameters.STRENGTH_MODIFIER];
local iDefenderBonus = defender[CombatResultParameters.STRENGTH_MODIFIER];
local iAttackerUnitBonus = GetMilitarizationBalance(tAttackerID.player);
local iDefenderUnitBonus = GetMilitarizationBalance(tDefenderID.player);
if (pAttackingPlayerConfig:GetCivilizationTypeName() == "CIVILIZATION_GERMANY") then
iAttackerBonus = iAttackerCombatStrength + (0.01 * iAttackerCombatStrength * iAttackerUnitBonus)
print("Prussian attacker bonus")
elseif (pDefendingPlayerConfig:GetCivilizationTypeName() == "CIVILIZATION_GERMANY") then
iDefenderBonus = iDefenderCombatStrength + (0.01 * iDefenderCombatStrength * iDefenderUnitBonus)
print("Prussian defender bonus")
end
end
----------------------------------------------------------------------------------------------------------------------------
function pPlayerRestoreBonus(attacker, defender)
local tAttackerID = attacker[CombatResultParameters.ID];
local pAttackingPlayerConfig = PlayerConfigurations[tAttackerID.player];
local tDefenderID = defender[CombatResultParameters.ID];
local pDefendingPlayerConfig = PlayerConfigurations[tDefenderID.player];
local iAttackerUnitBonus = GetMilitarizationBalance(tAttackerID.player);
local iDefenderUnitBonus = GetMilitarizationBalance(tDefenderID.player);
if (pAttackingPlayerConfig:GetCivilizationTypeName() == "CIVILIZATION_GERMANY") then
local pPlayerEnemyUnitsKillRate = 0.5 * iAttackerUnitBonus
if (100 * math.random() <= pPlayerEnemyUnitsRestoreRate) then
UnitManager.RestoreMovement()
UnitManager.RestoreUnitAttacks()
print("Restore movement & attack chance of Prussian attacker!")
end
elseif (pDefendingPlayerConfig:GetCivilizationTypeName() == "CIVILIZATION_GERMANY") then
local pPlayerEnemyUnitsKillRate = 0.5 * iDefenderUnitBonus
if (100 * math.random() <= pPlayerEnemyUnitsRestoreRate) then
UnitManager.RestoreMovement()
UnitManager.RestoreUnitAttacks()
print("Restore movement & attack chance of Prussian defender!")
end
end
end
----------------------------------------------------------------------------------------------------------------------------
function pPlayerKillBonus(attacker, defender)
local tAttackerID = attacker[CombatResultParameters.ID];
local pAttackingPlayer = Players[tAttackerID.player];
local pAttackingPlayerConfig = PlayerConfigurations[tAttackerID.player];
local pAttackingPlayerUnits = pAttackingPlayer:GetUnits();
local iAttackerUnitBonus = GetMilitarizationBalance(tAttackerID.player);
local tDefenderID = defender[CombatResultParameters.ID];
local pDefendingPlayer = Players[tDefenderID.player];
local pDefendingPlayerConfig = PlayerConfigurations[tDefenderID.player];
local pDefendingPlayerUnits = pDefendingPlayer:GetUnits();
local iDefenderUnitBonus = GetMilitarizationBalance(tDefenderID.player);
if (pAttackingPlayerConfig:GetCivilizationTypeName() == "CIVILIZATION_GERMANY") then
local pkAttacker = UnitManager.GetUnit(tAttackerID.player);
local pPlayerEnemyUnitsKillRate = 0.1 * iAttackerUnitBonus
if (100 * math.random() <= pPlayerEnemyUnitsKillRate) then
for i, pDefendingPlayerUnit in pDefendingPlayerUnits:Members() do
pkAttacker.Kill(pDefendingPlayerUnit)
print("Critical damage of Prussian attacker!")
end
end
elseif (pDefendingPlayerConfig:GetCivilizationTypeName() == "CIVILIZATION_GERMANY") then
local pkDefender = UnitManager.GetUnit(tDefenderID.player);
local pPlayerEnemyUnitsKillRate = 0.1 * iDefenderUnitBonus
if (100 * math.random() <= pPlayerEnemyUnitsKillRate) then
for i, pAttackingPlayerUnit in pAttackingPlayerUnits:Members() do
pkDefender.Kill(pAttackingPlayerUnit)
print("Critical damage of Prussian defender!")
end
end
end
end
I checked pPlayerMilitarizationBonus was normally marked in Lua.log. But I have not known pPlayerMilitarizationBonus normally worked and checked pPlayerRestoreBonus had an error and seemed pPlayerKillBonus was not worked.
Frankly, I don't know exactly method for using Lua and Combat Event. So I expect these functions involve many errors. I'd like you to help.