Captain Hook

» Siedler Map Source Forum » Siedler DEdK - Settlers HoK » Captain Hook

Zurück zu den Maps: Die Siedler DEdK » Ausgetrocknet (TechDemo)

Seiten: 1

totalwarANGEL
#1
14.12.2014 00:53
Beiträge: 2123

Captain Hook

Ein paar Leute (d.h. mehr als nur 1 ) fragen sich, ob es vielleicht irgend wann einen S6Hook gibt.



Also die Handlung ist mehr als nur... sagen wir mal fragwürdig.

Aber von deinen technischen Tricks bin ich hin und weg.

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

Dieser Beitrag wurde von totalwarANGEL am 14.12.2014 um 01:05 editiert.

jugl
#2
14.12.2014 01:30
Beiträge: 803

Zitat von totalwarANGEL:
...
Also die Handlung ist mehr als nur... sagen wir mal fragwürdig.


Stimmt.

Zitat von totalwarANGEL:
...
Aber von deinen technischen Tricks bin ich hin und weg.


Nice to have.

Ich bin ganz gespannt,
wer es
wo
und
wie
und
warum
und
wann
in einer Karte einsetzt

____________________
Si tus vi late, in isse tabernit.

mcb
#3
14.12.2014 01:44
Beiträge: 1472

Wow. Vielleicht fällt mir dafür eine Verwendung in meiner nächsten Map ein (wenn die den irgendwann mal fertig wird...)

totalwarANGEL
#4
14.12.2014 03:55
Beiträge: 2123

@Jugl: Das ist ja nur eine Demo. Ich bin mir sicher, dass man die Technik dahinter auch für sinnvolle Dinge einsetzen kann.

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

bobby
#5
14.12.2014 16:50
Beiträge: 393

Zitat von totalwarANGEL:
Ein paar Leute (d.h. mehr als nur 1 ) fragen sich, ob es vielleicht irgend wann einen S6Hook gibt.

Geplant ist nichts aber möglicherweise...

Zitat von jugl:
Ich bin ganz gespannt,
wer es
wo
und
wie
und
warum
und
wann
in einer Karte einsetzt

Ich auch, wobei ich das aber ein wenig optimistischer sehe

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

Neues:
Cutscene Editor
LuaDebugger v0.5.2

MadShadow
#6
16.12.2014 20:38
Beiträge: 372

Zitat von twA:


Aber von deinen technischen Tricks bin ich hin und weg.



Echt cool!
Auch wenn ich nicht verstehe wie man mit Pilgrim je auf einen grünen Zweig kommen soll. x)

Noigi
#7
27.12.2014 23:34
Beiträge: 772

Schönes Feature und suuuper Demomap!

Ich habe es jetzt mal ausprobiert und deinen Beispielcode mit dem Bildchen ("graphics\\textures\\gui\\onscreen_emotion_good" in eine Testmap kopiert, in der der Hook schon läuft, es passiert aber gar nichts - weder das Bild noch der Default-Text wird an irgend einer Entity angezeigt. Muss ich die OSI noch aktivieren o.Ä.? Danke!

yoq
#8
28.12.2014 11:49
Beiträge: 91

Ist S5Hook v0.6 eingebunden?
Das Bild aus dem Beispielcode ist schon in Siedler5 enthalten, und sollte somit ohne Bild einbinden funktionieren.
SetupOSI() darf erst aufgerufen werden wenn S5Hook geladen ist:

-- in FMA
InstallHook(function()
    Message("S5Hook loaded!")
    SetupOSI()
end)



Grundsätzliche Funktionsweise:
- Es wird per S5Hook.OSISetDrawTrigger(osiCallbackFn) ein Trigger registriert der für (fast) jedes Entity, dass derzeit auf dem Bildschirm ist einmal pro Frame aufgerufen wird.
- In osiCallbackFn() wird gezeichnet, dazu stehen S5Hook.OSIDrawText() und S5Hook.OSIDrawImage() zur Verfügung. Da die Funktion relativ oft aufgerufen wird sollte hier effizient programmiert werden. zB:

--langsam
DrawFn(Mein.Verschachteltes[riesen].Table2.X, Mein.Verschachteltes[riesen].Table2.Y)

--besser
local pos = Mein.Verschachteltes[riesen].Table2
DrawFn(pos.X, pos.Y)


- Bilder müssen zuerst mit meinBild = S5Hook.OSILoadImage() geladen werden. Nach einem Speichern / Laden Zyklus wird meinBild = nil und muss neu geladen werden bevor es wieder verwendet werden kann.
- Auch der S5Hook muss neu geladen werden und in Folge auch der Trigger wieder gesetzt werden

____________________
S5 & S6: Lua Script Debugger (Thread) | bbaTool
S5: S5Hook (Thread) | S5 GUI Editor | S5 Grafikupgrade + nVidia fix | Win10 Creators Update

Noigi
#9
29.12.2014 13:14
Beiträge: 772

Ja, v0.6 war eingebunden, aber den Aufruf SetupOSI() hatte ich nicht drin - ist wohl an mir vorbei gegangen.
Danke!

Kommando zurück: SetupOSI() ist ja gar keine Framework-Funktion, sondern bloß der Name der Init-Wrapper-Funktion aus dem Beispiel. Ich habe nochmal drüber geschaut. So sieht es bei mir aus:

function S5Hook_OnLoad()
	-- ### Die Mapdatei wird ins Spiel geladen um alle Dateien verfügbar zu machen
	S5Hook.AddArchive("extra2/shr/maps/user/" .. Framework.GetCurrentMapName() .. ".s5x")
	
	myImg = S5Hook.OSILoadImage("graphics\\textures\\gui\\onscreen_emotion_good")
	myImgW, myImgH = S5Hook.OSIGetImageSize(myImg)
	S5Hook.OSISetDrawTrigger(OSICallbackTest);
end

function OSICallbackTest(_eID, _active, _posX, _posY)
	Message(_active);
	if _active then
		S5Hook.OSIDrawImage(myImg, x-myImgW/2, y-myImgH/2 - 40, myImgW, myImgH)
	else
		S5Hook.OSIDrawText("eID: " .. eID, 3, x+25, y, 255, 255, 128, 255)
	end
end


Es kommt keine Messagt, also wird OSICallbackTest nicht aufgerufen.

Dieser Beitrag wurde von Noigi am 29.12.2014 um 13:25 editiert.

yoq
#10
29.12.2014 18:59
Beiträge: 91

Parameter nur zur Hälfte umbenannt => Lua Fehler
Und in S5Hook Callbacks werden keine Fehlermeldungen angezeigt.
Mit meinem Debugger könnten auch diese abgefangen werden.
Und Message() kann nur Strings und Zahlen ausgeben, bei bools gibt es keine Ausgabe. Dieser Code funktioniert bei mir:

function OSICallbackTest(_eID, _active, _posX, _posY)
  Message(_active)
  if _active then
    S5Hook.OSIDrawImage(myImg, _posX-myImgW/2, _posY-myImgH/2 - 40, myImgW, myImgH)
  else
    S5Hook.OSIDrawText("eID: " .. _eID, 3, _posX+25, _posY, 255, 255, 128, 255)
  end
end



____________________
S5 & S6: Lua Script Debugger (Thread) | bbaTool
S5: S5Hook (Thread) | S5 GUI Editor | S5 Grafikupgrade + nVidia fix | Win10 Creators Update

Noigi
#11
30.12.2014 19:08
Beiträge: 772

Och mensch, muss ich jetzt auf Syntax achten - das ist doch Aufgabe des Interpreters!
Ein drittes Mal danke, jetzt klappt es auch.

Noigi
#12
30.12.2014 21:57
Beiträge: 772

Jetzt habe ich Blut geleckt: ist es auch möglich, bestehende OSI-Elemente auszublenden? Konkret ginge es mir um den Kram bei Gebäuden.

bobby
#13
31.12.2014 01:04
Beiträge: 393

Nein das ist mit zurzeit verfügbaren Mitteln leider noch nicht möglich.

____________________
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