Heldenfähigkeiten abfragen
» Siedler Map Source Forum » Siedler DEdK Script Forum » Heldenfähigkeiten abfragen
Seiten: 1
totalwarANGEL
|
#1 12.07.2010 11:05 Beiträge: 2123 |
Heldenfähigkeiten abfragen
Ist es möglich abzufragen, ob gerade eine Heldenfähigkeit - zum Beispiel Helias Segen - auf einen Leibeigenen einwirkt? Der Rüstungswert wird ja bei Serfs und Arbeitern nicht verändert.
____________________
Die Welt ist arschlochförmig und wir leben in der Mitte.
Flodder
|
#2 12.07.2010 14:59 Beiträge: 2608 |
Zitat von totalwarANGEL:
Ist es möglich abzufragen, ob gerade eine Heldenfähigkeit - zum Beispiel Helias Segen - auf einen Leibeigenen einwirkt? Der Rüstungswert wird ja bei Serfs und Arbeitern nicht verändert.
moin,
du meinst nicht zufällig "bekehren" statt "segnen"?
wenn "bekehren" auf einen leibeigenen einer anderen NICHT spielereigenen Id angewandt wird, dann ändert sich deren Id auf 1 (...denk ich doch, oder?). damit wäre abfragbar, ob die Heldenfähigkeit "bekehren" gewirkt hat.
____________________
Take a Nudelholz und hau it on the Kopp of a bekloppt Person .... to give you a better Gefühl than vorher.
totalwarANGEL
|
#3 12.07.2010 16:32 Beiträge: 2123 |
Zitat von Flodder:
du meinst nicht zufällig "bekehren" statt "segnen"?
wenn "bekehren" auf einen leibeigenen einer anderen NICHT spielereigenen Id angewandt wird, dann ändert sich deren Id auf 1 (...denk ich doch, oder?). damit wäre abfragbar, ob die Heldenfähigkeit "bekehren" gewirkt hat.
Leider meine ich aber seine Segnen-Fähigkeit, die bei Soldaten die RP erhöht.
____________________
Die Welt ist arschlochförmig und wir leben in der Mitte.
Mordred
|
#4 12.07.2010 17:05 Beiträge: 939 |
da kannst du dir ja eine "Faust-Funktion" bauen:
1. Nachschauen, wie lang segnen wirkt
2. Originalfunktion mit Counter ausstatten
3. Beim Leibeigenen eine AreEntitiesInAre Abfrage
Aber naja..
--edit:
Wow, das wird ja ne spannende Map, die du da zusammenzumixen scheinst
fritz_98
|
#5 12.07.2010 17:25 Beiträge: 472 |
Herauszufinden, ob Helias überhaupt die Fähigkeit ausführt, ist relativ einfach. Machst du einfach einen klitzekleinen GUI-Hack.
Aber speziell auf einen Leibeigenen? Bestimmt nur auf Umwegen... (*hust* s. Mordred )
Du könntest ja auch mit Hilfe unseres klitzekleinen GUI-Hacks erstmal herausfinden, ob überhaupt Helias' Fähigkeit ausgeführt wird und dann schaust du, ob in seiner Nähe irgendwo ein Leibi rumläuft.
totalwarANGEL
|
#6 12.07.2010 19:21 Beiträge: 2123 |
Simulieren oder Hacken
Die Möglichkeit mit dem Simulieren ist vermutlich einfacher. wird aber unschön. Gibt es dieses Leuchten bei den Heldenfähigkeiten auch als Grafikeffekt?
Hacken? Ich habe noch nie von einem Hack gehört, der prüft ob die Fähigkeit ausgeführt wird. Wenn, dann hätte ich wohl kaum um Hilfe gefragt.
____________________
Die Welt ist arschlochförmig und wir leben in der Mitte.
Mordred
|
#7 12.07.2010 19:37 Beiträge: 939 |
es geht, fritz_98 hat die lösung schon gesagt
code folgt..
-- edit (fast vergessen )
Wow, wurde doch schwerer als erwartet.
Dennoch ist der code nicht fertig, denn er ist ungetestet
und es gibt mehrere schwachstellen.
aber das ist vermutlich die richtige Richtung
Lg Mordred
function HeliasSegnetLeibi() SegnenUndSoWeiter_Original = GUI.SettlerAffectUnitsInArea function GUI.SettlerAffectUnitsInArea(_held) if (Logic.GetEntityTypeName(Logic.GetEntityType(GetEntityId(_held))) == "PU_Hero6")then if not SegnenderHelias then local ERSTERAUFRUF = true end SegnenderHelias = _held SegnenderHealiasTicker = 60 -- Wie lange dauert segnen? if ERSTERAUFRUF then StartSimpleJob("HeliasSegne_LiefereLeibis") end end end end function HeliasSegne_LiefereLeibis() SegnenderHealiasTicker = SegnenderHealiasTicker - 1 if (SegnenderHealiasTicker < 1)then return true else if IsNear(SegnenderHelias,"xxxxxxxxx")then -- Leibeigenen name -- Deine Aktion end end end
Dieser Beitrag wurde von Mordred am 12.07.2010 um 20:02 editiert.
warrior1024
|
#8 12.07.2010 21:18 Beiträge: 345 |
@Mordred:
Der Job wird nur einmal gestartet und sobald der Segen vorbei ist, wird der Job nicht mehr gestartet.
Mal schnell aus dem Kopf und der GUIElements:
Selection_Hero6 Commands_Hero6 Hero6_RechargeBless Calls: GUIUpdate_HeroAbility(Abilities.AbilityRangedEffect,gvGUI_WidgetID.Hero6_Bless) Hero6_RechargeConvertSettler Calls: GUIUpdate_HeroAbility(Abilities.AbilityConvertSettlers,gvGUI_WidgetID.Hero6_ConvertSettlers) Hero6_Bless Calls: GUIAction_Hero6Bless() Calls: GUITooltip_NormalButton("MenuHero6/command_bless","KeyBindings/HeroAbility2") Hero6_ConvertSettler Calls: GUIAction_Hero6ConvertSettlers() Calls: GUITooltip_NormalButton("MenuHero6/command_convertbuilding","KeyBindings/HeroAbility1")
Und der Code:
HeliasSegenAktiv = HeliasSegenAktiv or 0 function HackHeliasSegen() GUIAction_Hero6Bless_Orig = GUIAction_Hero6Bless GUIAction_Hero6Bless = function() HeliasSegenAktiv = 1 StartCountdown(60, ResetHeliasSegen) --Solange nur ein Spieler-Helias vorhanden ist GUIAction_Hero6Bless_Orig end end function ResetHeliasSegen() HeliasSegenAktiv = 0 end function IstGesegnet(_id) if IsNear(_id, "Helias", 1000) and HeliasSegenAktiv == 1 then return true else return false end end
Der Held muss "Helias" heißen, darf nur einmal als spielereigenen Helden vorkommen und wahrscheinlich sind die Segenswerte falsch.
Per IstGesegnet(_id) kann man herausfinden, ob die Entity gesegnet ist. VOrher wird das ganze über HackHeliasSegen() aktiviert.
____________________
"Banken machen keine Fehlentscheidungen! Haben Euch das Eure Eltern nicht beigebracht?"
- Bankier Samael Silren, Enderal
Seiten: 1