From 97be09d6ed4935c4558fee4e1776aed963386bff Mon Sep 17 00:00:00 2001 From: Mittendrein Markus Date: Sun, 14 Feb 2016 19:17:02 +0100 Subject: Show spells of collected scrolls to teammembers above the clonk --- TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/ActMap.txt | 3 ++ TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DefCore.txt | 11 +++++ TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescDE.txt | 1 + TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescUS.txt | 1 + .../Misc.c4d/TeamHUD.c4d/Graphics.png | Bin 0 -> 126 bytes TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Names.txt | 2 + TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Script.c | 46 +++++++++++++++++++++ TemplePushing.c4s/System.c4g/Clonk.c | 15 +++++++ TemplePushing.c4s/System.c4g/Scroll.c | 9 ++++ 9 files changed, 88 insertions(+) create mode 100644 TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/ActMap.txt create mode 100644 TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DefCore.txt create mode 100644 TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescDE.txt create mode 100644 TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescUS.txt create mode 100644 TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Graphics.png create mode 100644 TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Names.txt create mode 100644 TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Script.c (limited to 'TemplePushing.c4s') diff --git a/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/ActMap.txt b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/ActMap.txt new file mode 100644 index 0000000..df504ba --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/ActMap.txt @@ -0,0 +1,3 @@ +[Action] +Name=Attach +Procedure=ATTACH diff --git a/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DefCore.txt new file mode 100644 index 0000000..eb3a805 --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DefCore.txt @@ -0,0 +1,11 @@ +[DefCore] +id=THUD +Name=Team-HUD +Version=4,9,5 +Category=C4D_StaticBack +Width=1 +Height=1 +Offset=0,0 +Vertices=1 +VertexX=0 +VertexY=50 diff --git a/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescDE.txt b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescDE.txt new file mode 100644 index 0000000..79b6d85 --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescDE.txt @@ -0,0 +1 @@ +Zeigt über einem Clonk gerade aufgesammelte Objekte für das Team an. diff --git a/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescUS.txt b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescUS.txt new file mode 100644 index 0000000..656e3c2 --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescUS.txt @@ -0,0 +1 @@ +Shows collected objects above a clonk to his team. diff --git a/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Graphics.png new file mode 100644 index 0000000..f033d11 Binary files /dev/null and b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Graphics.png differ diff --git a/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Names.txt b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Names.txt new file mode 100644 index 0000000..b5aa5d2 --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Names.txt @@ -0,0 +1,2 @@ +DE:Team-HUD +US:Team-HUD diff --git a/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Script.c new file mode 100644 index 0000000..0eb0bef --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Script.c @@ -0,0 +1,46 @@ +#strict 2 + +func Attach(object to) +{ + SetOwner(GetOwner(to)); + SetAction("Attach", to); + SetVisibility(VIS_Allies | VIS_God); +} + +func Show(string text, int time) +{ + AddEffect("ShowText", this, 20, 1, this, GetID(), text, time); +} + +func FxShowTextStart(object target, int effectNumber, int temp, string text, int time) +{ + if (temp) return; + + EffectVar(0, target, effectNumber) = text; + EffectVar(1, target, effectNumber) = time; + + Message("@%s", target, text); +} + +func FxShowTextTimer(object target, int effectNumber, int time) +{ + var showTime = EffectVar(1, target, effectNumber); + if (time > showTime) + { + if (time >= showTime + showTime / 3) return FX_Execute_Kill; + Message("@%s", target, RGBa(255, 255, 255, 255 - ((time - showTime) * 255)/(showTime / 3)), EffectVar(0, target, effectNumber)); + } +} + +func FxShowTextStop(object target, int effectNumber, int reason, bool temp) +{ + if (!temp) Message("", target); +} + +func FxShowTextEffect(string newEffectName, object target, int effectNumber) +{ + if(newEffectName == "ShowText") + { + RemoveEffect(0, target, effectNumber); + } +} diff --git a/TemplePushing.c4s/System.c4g/Clonk.c b/TemplePushing.c4s/System.c4g/Clonk.c index cad2f5f..64738a5 100644 --- a/TemplePushing.c4s/System.c4g/Clonk.c +++ b/TemplePushing.c4s/System.c4g/Clonk.c @@ -4,11 +4,14 @@ #appendto CLNK +local teamHud; local rotateInJump; local removeOnDeath; protected func Initialize() { + teamHud = CreateObject(THUD); + teamHud->Attach(this); AddEffect("CheckStuck2", this, 20, 1, this); AddEffect("CheckBurn", this, 101, 0, this); SetPhysical("Fight", 75000, PHYS_Temporary, this); @@ -79,6 +82,7 @@ protected func ControlRight() protected func Death(int killedBy) { var ret = _inherited(killedBy); + if (teamHud) RemoveObject(teamHud); if (removeOnDeath) RemoveObject(); return ret; } @@ -107,3 +111,14 @@ func FxCheckBurnEffect(string newEffectName, object target, int effectNumber, in { if (newEffectName == "Fire" && incineratingObject && incineratingObject->~QueryIncinerateObject(target)) return FX_Effect_Deny; } + +func ShowTeamHUD(string text) +{ + if (teamHud) teamHud->Show(text, 72); +} + +func Collection(object obj) +{ + obj->~Entrance2(this); + return _inherited(obj, ...); +} diff --git a/TemplePushing.c4s/System.c4g/Scroll.c b/TemplePushing.c4s/System.c4g/Scroll.c index 15ae5e0..c9098df 100644 --- a/TemplePushing.c4s/System.c4g/Scroll.c +++ b/TemplePushing.c4s/System.c4g/Scroll.c @@ -51,3 +51,12 @@ func SetSpell(id spell) SetClrModulation(spell->~ScrollColor()); return _inherited(spell, ...); } + +func Entrance2(object pContainer) +{ + if (pContainer && GetOCF(pContainer) & OCF_CrewMember) + { + pContainer->~ShowTeamHUD(Format("{{%i}}", idSpell)); + } + return _inherited(pContainer, ...); +} -- cgit v1.2.3-54-g00ecf