DetailsHealth_bar

» Siedler Map Source Forum » Siedler DEdK Script Forum » DetailsHealth_bar

Seiten: 1

AdeBont
#1
24.03.2014 20:23
Beiträge: 666

DetailsHealth_bar

Anyone knows how to get the value of 'DetailsHealth_bar'?
Or how to set this value?

____________________
AdB
---------------------------------
Now faith is the substance of things hoped for,
the evidence of things not seen.
Heb 11:1

Noigi
#2
24.03.2014 21:21
Beiträge: 772

If it is possible at all, it will probably be via XGUIEng.SetProgressBarValues:

XGUIEng.SetProgressBarValues( "DetailsHealth_bar", 0.5, 1 );

The 2nd and 3rd parameter mean "0.5 of 1", so 50% of the bar is filled in this example. Equivalent would be 50 of 100.

Apparently there is no Getter-function for this.

Kantelo
#3
24.03.2014 22:18
Beiträge: 357

Healthpoints can also be set with Logic.SetEntityScriptingValue(_entityId,-8,_healthpoints) if that helps you.

Play4FuN
#4
27.03.2014 17:47
Beiträge: 704

@Kantelo:

Woher kommt den die -8 ?
Es funzt bei mir ohne Probleme. Aber was würden da andere Werte bewirken - verändern die dann andere Werte dieser Einheit? Wenn ja welche?

____________________
LG Play4FuN

Siedler DEdK Mapping + Scripting Tutorials

Kantelo
#5
27.03.2014 18:02
Beiträge: 357

Zitat von Play4FuN:
@Kantelo:

Woher kommt den die -8 ?
Es funzt bei mir ohne Probleme. Aber was würden da andere Werte bewirken - verändern die dann andere Werte dieser Einheit? Wenn ja welche?



Das ist eine längere Geschichte
Also, ich versuche mich kurz zu fassen.
Es gibt die 2 Befehle Logic.GetEntityScriptingValue und Logic.SetEntityScriptingValue.
Beide Befehle greifen auf irgendetwas ziemlich internes bezüglich der Entity zurück, es kommt mir vor wie ein unendlich großes Table mit Slots und Werten. probier mal folgendes aus:

for i = -200,200 do 
local data = Logic.GetEntityScriptingValue(_entityId,i)
if data ~= 0 then 
Message(""..i.."---"..data)
end
end

Da bekommt man eine ziemliche Vielfalt an verschiedenen Zahlenwerten zurück. Einige Zahlen sind ziemlich lang und unverständlich; aus anderen kann man wirklich Informationen rauslesen und auch mit Logic.SetEntityScriptingValue verändern.
Weitere Beispiele, die ich schon herausgefunden habe:
-22 TaskList; -42 NumberOfSoldiers; -52 Player; -53 Model (sofern es verändert wurde); -54 EntityType
Bevor du dich jetzt draufstürzt und versuchst weitere Informationen zu finden; das ist wahnsinnig aunstrengend, ich habe auch nichts davon gesagt, weil das meiste, was man rausfindet sowieso schon mit Logic Befehlen geht.
Das einzige Interessante sonst noch ist der Slot 9. Der verändert bei XS_Ambients den SoundType. Mögliche Werte gehen von 1 bis 22.
Das sind jetzt mal die wichtigsten.
Feste Werte wie z.B. AnimSet; Sichtweite oder Verteidigungspunkte finden sich leider nirgendwo.

Kalle
#6
27.03.2014 18:19
Beiträge: 1150

jetzt wäre das mal ein Ansatz für die Frage von Scale...

Da habe ich noch nie was zu gefunden. Aber irgendwie wäre es doch unlogisch, wenn der Editor zwar die Scale-Größe manipulieren kann, es aber von BlueByte "vergessen" worden wäre, per Script die Größe einer Einheit anzuspringen...

Dann könnte man den Förster, den Farmer etc endlich noch bessere "Pflanzen" geben...

____________________
Lieber Siedeln statt (fern)sehen.....

Kantelo
#7
27.03.2014 20:16
Beiträge: 357

Zitat von Kalle:
jetzt wäre das mal ein Ansatz für die Frage von Scale...

Da habe ich noch nie was zu gefunden. Aber irgendwie wäre es doch unlogisch, wenn der Editor zwar die Scale-Größe manipulieren kann, es aber von BlueByte "vergessen" worden wäre, per Script die Größe einer Einheit anzuspringen...

Dann könnte man den Förster, den Farmer etc endlich noch bessere "Pflanzen" geben...



Du kannst es gern versuchen; ich habe weder was zur Positionsangabe (Z-Koordinate), noch Scaling gefunden.
Aber wenn einer von euch besser mit diesen Zahlenwerten umgehen kann und etwas findet wäre das ja echt toll.

Play4FuN
#8
27.03.2014 20:55
Beiträge: 704

Zitat von Kalle:
Aber irgendwie wäre es doch unlogisch, wenn der Editor zwar die Scale-Größe manipulieren kann, es aber von BlueByte "vergessen" worden wäre, per Script die Größe einer Einheit anzuspringen...

Denke ich nicht unbedingt. Schließlich müssten ja sofort die Grafik, das Blocking und Aimationen sowie Schatten und Reflektionen angepasst werden. MEn ist das zu aufwändig oder in der Form sogar nicht möglich!? Wenn es ginge wäre das natürlich super

PS: von wegen Z-Koordinate. Mein Gedanke: müsste im Spiel nicht dauernd (automatisch) abgefragt werden, wie hoch das Terrain an dem Punkt ist, an dem sich die Einheit befindet? Denn davon ist ja deren Position direkt abhängig. Wenn man die ändern könnte ... wäre sicher nett

____________________
LG Play4FuN

Siedler DEdK Mapping + Scripting Tutorials

Kalle
#9
28.03.2014 08:06
Beiträge: 1150

Für interessierte, die gerade Zeit haben (ich jetzt leider nicht mehr...):

In einer Testmap habe ich den Wegweiser mit einem anderem (scalierten) Wegweiser verglichen:
Es ändern sich die Werte bei -33, +26, +30, +31, +32, +33 und +34

Ich habe dabei die Spanne von -300 bis +300 laufen lassen...

Leider sind die Abweichungen jeweils große Werte... (und nicht die erhofften (100 zu 110 in % oder so).

____________________
Lieber Siedeln statt (fern)sehen.....

Kantelo
#10
28.03.2014 09:10
Beiträge: 357

Die großen Zahlen verändern sich oft permanent

totalwarANGEL
#11
28.03.2014 10:52
Beiträge: 2123

Wie sieht denn der Aufruf von Logic.SetEntityScriptingValue aus?

Okay, hab runtergescrollt...

____________________
Die Welt ist arschlochförmig und wir leben in der Mitte.

totalwarANGEL
#12
28.03.2014 11:30
Beiträge: 2123

Also ich bekomme immer nur 0 angezeigt. Wo sollen da die unverständlichen langen Zahlen sein?

Das setzen (mit Health probiert) scheint aber zu funktionieren. Ich denke schon, dass man damit auch irgend wie an die Skallierung rankommt. Ich schätze sogar, dass man den Entitytyp ändern kann ohne eine Entity zu zerstören und neu zu erstellen. Die Funktion ist wahrscheinlich die Schnittstelle, die sich alle seit Jahren wünschen. Nur doof, dass wir nichts drüber wissen.

-52 beeinflusst die PlayerID. Man kann auch einen Spieler 50 einstellen

____________________
Die Welt ist arschlochförmig und wir leben in der Mitte.

Dieser Beitrag wurde von totalwarANGEL am 28.03.2014 um 11:42 editiert.

Kantelo
#13
28.03.2014 14:19
Beiträge: 357

Zitat von totalwarANGEL:
Also ich bekomme immer nur 0 angezeigt. Wo sollen da die unverständlichen langen Zahlen sein?

Das setzen (mit Health probiert) scheint aber zu funktionieren. Ich denke schon, dass man damit auch irgend wie an die Skallierung rankommt. Ich schätze sogar, dass man den Entitytyp ändern kann ohne eine Entity zu zerstören und neu zu erstellen. Die Funktion ist wahrscheinlich die Schnittstelle, die sich alle seit Jahren wünschen. Nur doof, dass wir nichts drüber wissen.

-52 beeinflusst die PlayerID. Man kann auch einen Spieler 50 einstellen



Spieler 50 einzustellen führt aber bei mir zum Absturz.
Mit dem EntityTyp (-54) kann man wirklich viel herumexperimentieren. Wichtig ist nur dass vor dem Speichern/Karte neu starten alles wieder beim alten ist, sonst stürzt das Spiel ab.

bobby
#14
28.03.2014 14:42
Beiträge: 393

Wirklich eine Interessante Sache...
25 Sollte die EntityId sein, sie lässt sich aber leider nicht ändern.

____________________
Tools und Verbesserungen für Siedler: settlers.pro

Neues:
Cutscene Editor
LuaDebugger v0.5.2

Seiten: 1

SiteEngine v1.5.0 by nevermind, ©2005-2007
Design by SpiderFive (www.siedler-games.de) - English translation by juja

Impressum