Non-DLL Combat Hook script

guyde

Chieftain
Joined
Dec 22, 2014
Messages
13
Location
South Korea
Yes, It's Combat-Hook Lua Script. and this script design to fired 'all players' turn for my religion mod 'Golden Apple'.
1.LuaEvents.CbHk_UnitSelected.Add ( pPlayer, pUnit )
--It's fired when unit is selected.
2. LuaEvents.CbHk_CityRangedAttack.Add ( pActPlayer, pActCity, pDefPlayer, pDefUnit, iDefDamage, iDefPreviousDamage )
--It's fired when unit damaged by selected city.
3. LuaEvents.CbHk_UnitAttackUnit.Add ( pActPlayer, pActUnit, pDefPlayer, pDefUnit, iDefDamage, iDefPreviousDamage )
--It's fired when unit damaged by selected unit.
4. LuaEvents.CbHk_UnitAttackCity.Add ( pActPlayer, pActUnit, pDefPlayer, pDefCity )
--It's fired when city damaged by selected unit.
5. LuaEvents.CbHk_UnitCaptureCity.Add ( pActPlayer, pActUnit, pCity, iOldOwner, bIsCapital, iX, iY, iNewOwner, iPop, bConquest )
--It's fired when city captured by selected unit.

function
1. CbHk_TextDelay()
-- it return 'g_iFloatingDelay'
-- NOTE : You must use this fuction to PREVENT floating text is MESSED UP with other mod using this script.
You can use those LuaEvents and function with include method.
Lack of my grammer... It's hard to explain how it actually works. ( or answer your question )
but I'm sure one thing, It works fine both AI player and Active player.


Here is Example function
include("FLuaVector.lua");
include("CombatHook.lua");

function FaithFromCityAttack( pActPlayer, pActCity, pDefPlayer, pDefUnit )
local iFaith = ( pDefUnit:GetBaseCombatStrength() / 5 );
local sText = "[COLOR_WHITE]+" .. iFaith .. "[ENDCOLOR][ICON_PEACE]";
pActPlayer:ChangeFaith( iFaith );
Events.AddPopupTextEvent( HexToWorld( ToHexFromGrid( Vector2( pDefUnit:GetX(), pDefUnit:GetY() ) ) ), sText, CbHk_TextDelay() );
Events.AddPopupTextEvent( HexToWorld( ToHexFromGrid( Vector2( pDefUnit:GetX(), pDefUnit:GetY() ) ) ), sText, CbHk_TextDelay() );
Events.AddPopupTextEvent( HexToWorld( ToHexFromGrid( Vector2( pDefUnit:GetX(), pDefUnit:GetY() ) ) ), sText, CbHk_TextDelay() );
Events.AddPopupTextEvent( HexToWorld( ToHexFromGrid( Vector2( pDefUnit:GetX(), pDefUnit:GetY() ) ) ), sText, CbHk_TextDelay() );
Events.AddPopupTextEvent( HexToWorld( ToHexFromGrid( Vector2( pDefUnit:GetX(), pDefUnit:GetY() ) ) ), sText, CbHk_TextDelay() );
Events.AddPopupTextEvent( HexToWorld( ToHexFromGrid( Vector2( pDefUnit:GetX(), pDefUnit:GetY() ) ) ), sText, CbHk_TextDelay() );
end
LuaEvents.CbHk_CityRangedAttack.Add( FaithFromCityAttack );

*Result
Spoiler :
2015-01-31_00004.jpg





function FaithFromKill( pActPlayer, pActCity, pDefPlayer, pDefUnit )
if ( pDefUnit:IsDead() == false ) then
return
end
local iFaith = ( pDefUnit:GetBaseCombatStrength() * 2 );
local sText = "[COLOR_WHITE]+" .. iFaith .. "[ENDCOLOR][ICON_PEACE]";
pActPlayer:ChangeFaith( iFaith );
if ( pActPlayer:IsHuman() ) then
Events.AddPopupTextEvent( HexToWorld( ToHexFromGrid( Vector2( pDefUnit:GetX(), pDefUnit:GetY() ) ) ), sText, CbHk_TextDelay() );
Events.AddPopupTextEvent( HexToWorld( ToHexFromGrid( Vector2( pDefUnit:GetX(), pDefUnit:GetY() ) ) ), sText, CbHk_TextDelay() );
Events.AddPopupTextEvent( HexToWorld( ToHexFromGrid( Vector2( pDefUnit:GetX(), pDefUnit:GetY() ) ) ), sText, CbHk_TextDelay() );
Events.AddPopupTextEvent( HexToWorld( ToHexFromGrid( Vector2( pDefUnit:GetX(), pDefUnit:GetY() ) ) ), sText, CbHk_TextDelay() );
Events.AddPopupTextEvent( HexToWorld( ToHexFromGrid( Vector2( pDefUnit:GetX(), pDefUnit:GetY() ) ) ), sText, CbHk_TextDelay() );
Events.AddPopupTextEvent( HexToWorld( ToHexFromGrid( Vector2( pDefUnit:GetX(), pDefUnit:GetY() ) ) ), sText, CbHk_TextDelay() );
end
end
LuaEvents.CbHk_UnitAttackUnit.Add( FaithFromKill );

*Result
Spoiler :

2015-01-31_00005.jpg
 

Attachments

Back
Top Bottom