Heidenherz Posted September 30, 2020 Share Posted September 30, 2020 Titel sagt quasi schon alles. Ich suche ein LUA HUD für das Cockpit, dass ich in der 3rd person anzeigen lassen kann. Hat da jemand eine Idee wie ich das hinbekommen kann, oder hat schon jemand solch ein Script in Benutzung und würde es weitergeben? Link to comment Share on other sites More sharing options...
vertex Posted September 30, 2020 Share Posted September 30, 2020 Ein fertiges Script hab ich leider nicht, aber du kannst den HUD-Screen aktivieren und alles selbst draufbasteln, so wie du es haben möchtest. -- im unit.start() den HUD-Screen aktivieren system.showScreen(1) -- im system.update() die Screen-Inhalte setzen system.setScreen('<div style="width: 50%; height: 50%; position: absolute; left: 25%; top: 25%; background: rgba(0, 0, 0, 0.5); color: white;"><h1>Irgendein HTML-Inhalt</h1><p>Post Scriptum: Hello World!</p></div>') system.update() wird bei jedem Frame ausgeführt - wenn du Dinge hast, die nicht ständig live berechnet werden müssen, kannst du dir auch ne Timerfunktion basteln, die nur alle paar Sekunden läuft und weniger Rechenlast verursacht. Da bspw die Tanks bereits im default unit.start() in einem Array namens atmofueltank und spacefueltank landen, kannst du per atmofueltank[1].getItemsMass() etc den Füllstand holen - bekommst allerdings Kilos geliefert und müsstest es dann selbst in Liter umrechnen. Vorteil: Die Angabe in Kilo ist wesentlich präziser Beschleunigung und so kriegst du als vec3 Object via vec3(core.getWorldVelocity()). Ich vermute mal, dass es die normalerweise im HUD angezeigte Geschwindigkeit auch in irgendeiner fertigen Variable abzugreifen gibt - kenne ich aber noch nicht. Der HUD-Screen wird jedenfalls auch in der 3rd Person angezeigt und braucht keinerlei Element oder so. Einfach aktivieren und HTML reinpacken Link to comment Share on other sites More sharing options...
Heidenherz Posted September 30, 2020 Author Share Posted September 30, 2020 1 hour ago, vertex said: Ein fertiges Script hab ich leider nicht, aber du kannst den HUD-Screen aktivieren und alles selbst draufbasteln, so wie du es haben möchtest. -- im unit.start() den HUD-Screen aktivieren system.showScreen(1) -- im system.update() die Screen-Inhalte setzen system.setScreen('<div style="width: 50%; height: 50%; position: absolute; left: 25%; top: 25%; background: rgba(0, 0, 0, 0.5); color: white;"><h1>Irgendein HTML-Inhalt</h1><p>Post Scriptum: Hello World!</p></div>') system.update() wird bei jedem Frame ausgeführt - wenn du Dinge hast, die nicht ständig live berechnet werden müssen, kannst du dir auch ne Timerfunktion basteln, die nur alle paar Sekunden läuft und weniger Rechenlast verursacht. Da bspw die Tanks bereits im default unit.start() in einem Array namens atmofueltank und spacefueltank landen, kannst du per atmofueltank[1].getItemsMass() etc den Füllstand holen - bekommst allerdings Kilos geliefert und müsstest es dann selbst in Liter umrechnen. Vorteil: Die Angabe in Kilo ist wesentlich präziser Beschleunigung und so kriegst du als vec3 Object via vec3(core.getWorldVelocity()). Ich vermute mal, dass es die normalerweise im HUD angezeigte Geschwindigkeit auch in irgendeiner fertigen Variable abzugreifen gibt - kenne ich aber noch nicht. Der HUD-Screen wird jedenfalls auch in der 3rd Person angezeigt und braucht keinerlei Element oder so. Einfach aktivieren und HTML reinpacken Das zeigt mir dann jetzt ein zusätzliches HUD-Element in der first person an, die 3rd person ist aber weiterhin vollkommen blank ? Link to comment Share on other sites More sharing options...
vertex Posted September 30, 2020 Share Posted September 30, 2020 Is ja schräg... bei mir bleibt der System-Screen auch in der 3rd Person sichtbar. Muss dann wohl am Cockpit liegen, dass das komplett alles raus nimmt - inklusive Screen Hoffe da gibt's noch ne Lua Variable... weiss es aber leider nicht. Link to comment Share on other sites More sharing options...
Heidenherz Posted October 10, 2020 Author Share Posted October 10, 2020 Einer im englischen Forum hat eine Lösung dafür gepostet und es funktioniert super: Sieht dann so aus: Jetzt muss ich nur noch herausbekommen wie ich die 2. atmo und space tanks darein bekomme ^^ edit: Habs geschafft \ o / Wenn einer das mit 2 Tanks und ohne Radar usw. so hinzufügen will: -- in das Cockpit bei unit start() einfach ganz oebn rein packen unit.setTimer("Up3rd",0.08) -- add filter bei unit und tick hinzufügen. umbennen auf Up3rd und dann das rein databank.setStringValue("cockpit",unit.getData()) databank.setStringValue("atmofueltank",atmofueltank_1.getData()) databank.setStringValue("spacefueltank",spacefueltank_1.getData()) databank.setStringValue("atmofueltank2",atmofueltank_2.getData()) databank.setStringValue("spacefueltank2",spacefueltank_2.getData()) -- das programmingboard brauch auch ein paar änderungen -- bei unit start kommt das rein ----cockpit main----- cockpit= databank.getStringValue("cockpit") panelmain = system.createWidgetPanel("3rd Person Cockpit") widgetValuemain = system.createWidget(panelmain, "cockpit") dataValuemain = system.createData(cockpit) system.addDataToWidget(dataValuemain, widgetValuemain) ----atmos widget----- cockpitatmo= databank.getStringValue("atmofueltank") panelatmo = system.createWidgetPanel("Nitron") widgetValueatmo = system.createWidget(panelatmo, "fuel_container") dataValueatmo = system.createData(cockpitatmo) system.addDataToWidget(dataValueatmo, widgetValueatmo) ----atmos widget----- cockpitatmo2= databank.getStringValue("atmofueltank2") widgetValueatmo2 = system.createWidget(panelatmo, "fuel_container") dataValueatmo2 = system.createData(cockpitatmo2) system.addDataToWidget(dataValueatmo2, widgetValueatmo2) ----spaces widget----- cockpitspace= databank.getStringValue("spacefueltank") panelspace = system.createWidgetPanel("Kergon") widgetValuespace = system.createWidget(panelspace, "fuel_container") dataValuespace = system.createData(cockpitspace) system.addDataToWidget(dataValuespace, widgetValuespace) ----spaces widget2----- cockpitspace2= databank.getStringValue("spacefueltank2") widgetValuespace2 = system.createWidget(panelspace, "fuel_container") dataValuespace2 = system.createData(cockpitspace2) system.addDataToWidget(dataValuespace2, widgetValuespace2) unit.hide() unit.setTimer("pbcp",0.08) --- bei unit den filter tick erstellen und pbcp nennen, dann das hier da rein cockpit= databank.getStringValue("cockpit") system.updateData(dataValuemain, cockpit) cockpitatmo= databank.getStringValue("atmofueltank") system.updateData(dataValueatmo, cockpitatmo) cockpitspace= databank.getStringValue("spacefueltank") system.updateData(dataValuespace, cockpitspace) cockpitatmo2= databank.getStringValue("atmofueltank2") system.updateData(dataValueatmo2, cockpitatmo2) cockpitspace2= databank.getStringValue("spacefueltank2") system.updateData(dataValuespace2, cockpitspace2) Vorausgesetzt ihr hab den original englischen Post gelesen und euch schon eine Datenbank und ne Programmierschnittstelle besorgt, kann es damit losgehen. Vor dem einsteigen das Board anmachen, dann einsteigen. (einfach in die Voxel drücken, so dass nur nen kleines Stück rausguckt, was man dann andrücken kann. Die Datenbank kann voll versenkt werden.) DingensHorst 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now