Dazu direkt noch eine Nachfrage von mir, funktioniert das mit dem Cargo Teleporter auch nur via SaveGameScript oder sollte das auch so möglich sein ?
Zu 1: vermutlich sind die Strukturen nicht auf der selben Fraktion - das Script habe ich mit der 1.2 ausprobiert und es funktioniert noch Zu 2: Schau mal im Savegame nach was in der "dedicated.yaml" steht oder direkt in Saves - das sind Fallbacks wenn die Mod den Namen des Savegames nicht ermitteln kann. Im SP hat das Spiel leider eine Macke und liefert als Namen des Savegames nicht den aktuellen sondern einen vorher geladenen, daher im SP immer das Spiel neu starten und dann das Savegame auswählen mit dem man spielen möchte
Zu 1: Ja das war die Ursache Ich habe kurz vor dem Update mit den Fraktionen rumgespielt... Zu 2: Ich habe alle json und yaml sowohl auf dem client wie auf dem server angeschaut, ich finde einfach nichts. Kann ich die config nicht irgendwo runterladen? Das mod funktioniert ja, es legt auch in einem neuen singleplayer save die ordner "D:\SteamLibrary\steamapps\common\Empyrion - Galactic Survival\Saves\Games\NeuesSpiel_0\Mods\EmpyrionScripting\Scripts" und "D:\SteamLibrary\steamapps\common\Empyrion - Galactic Survival\Saves\Games\NeuesSpiel\Mods\EmpyrionScripting\Scripts" an aber die sind leer. Zu neuer Version: Yay, PowerConsumption. Ich fahre gleich den Server runter und installiere die Version. Aber ob das meinem Fuel Script hilft weis ich noch nicht weil Ich annehme das ich immer noch nicht rausfinden kann ob es auf solar oder generator läuft... Jetzt fehlt nurnoch SolarPower und SolarCapCharge.
lol ... du hoffst doch nicht ernsthaft das sie an Solar und die anderen Dinge gedacht haben ;-) in der 5.10.9 werden die Configdateien nun erzeugt wenn sie nicht existieren
Naja, ich hoffe das sie noch weiter machen Power Sachen zugänglich zu machen, am besten per device mit ein/aus/inhalt und das möglichst komplett für alles (was energie verbraucht/erzeugt/lagert) Und die Config ist jetzt da. (Ich war echt schon am zweifeln was ich falsch mache) Vielen lieben Dank
I am having issues with the Sorter script. All it returns to SorterDB is {{devicesoftype}} error Object reference not set to an instance of an object Meanwhile the Containers script that lists what is present in all connected containers by lcd with DSP-* uses the same {{devicesoftype}} switch and seemingly has no issues. Have I missed a variable somewhere? Thanks in advance.
Love this mod! Need a little help - havent quite got this 'language' down yet. I have been using the recycle script from the scripting demo but am running into a case where the box I assign to it constantly shows "Currently occupied" after trying to run it and I cant clear that without logging out of the game. Is there a way to stop that from happening? Also is there a way to modify the script to use multiple boxes if one fills up? Salvage1,Salvage2,etc - THANKS!
Code: {math} [-132387,6]:Error in System.Object:(wrapper dynamic-method) object:lambda_method (System.Runtime.CompilerServices.Closure,System.IO.TextWriter,object) Invalid instruction 39 18:12:22 anny idea what that could be? the code is a savegame script: Code: {{#use E.S.FuelTank}} -Fuel- {{~set 'con' Content}} {{~set 'cap' Capacity}} {{/use}} PowerConsumption: {{E.S.PowerConsumption}} {{~math @root.Data.con '/' @root.Data.cap }} {{#test . le 0,25}} <color=red> {{else}} {{#test . le 0,5}} <color=blue> {{else}} <color=green> {{/test}} {{/test}} {{/math}} {{bar @root.Data.con 0 @root.Data.cap 20 }} </color> {{math @root.Data.con '/' @root.Data.cap}}{{~format . '{0,8:P2}'}}{{~/math}} = {{~format @root.Data.con '{0,7:0.0}'}} / {{format @root.Data.cap '{0,7:0.0}'}} {{math @root.CacheData.fuel '-' @root.Data.con }} {{~#test . neq 0}} {{~set 'secleft' (calc @root.Data.con '/' . )}} {{~set 'restt' (calc @root.Data.secleft '%' 8640 )}} {{~set 't' (calc (calc @root.Data.secleft '-' @root.Data.restt ) '/' 8640)}} {{~set 'resth' (calc @root.Data.restt '%' 360 )}} {{~set 'h' (calc (calc @root.Data.restt '-' @root.Data.resth ) '/' 360)}} {{~set 'restm' (calc @root.Data.resth '%' 6 )}} {{~set 'm' (calc (calc @root.Data.resth '-' @root.Data.restm ) '/' 6)}} {{~setcache 'output' (concat @root.Data.t 'Tage ' @root.Data.h 'Std ' @root.Data.m 'Min')}} {{~setcache 'fuel' @root.Data.con}} {{~else}} {{~setcache 'output' "kein Verbrauch"}} {{~/test}} {{~/math}} {{@root.CacheData.output}}
I haven't tried it live yet, but in line 21, @root.CacheData.fuel is an undefined object on the first run. You probably have to query this via {{#ok @root.CacheData.fuel}}calc{{else}}init{{#ok}} and initialize it on the first run.
Yes, seems it was that one variable; 'did the #OK thing bevore all the math with the else initializing it, now the error did not show. How can I interpret those error messages? It does not say the variable or line or annything i could decrypt...
my autofill script is running amok: my script keeps putting my pentaxid somehrere... i have just enough volume missing in the tank of one cv that it showns 1 pentaxid missing, while i cant put one in, says not enough space. no proof where the script puts the pentaxid, but that almot full tank seems to be it. The script is a bit a hack as i run it in a base to refuel both cv and the small vesels on them. but it used to work just fine until i discovered my pentaxid was gone... Code: <align=center><i><size=10>Autofill docked vessels</size></i></align><size=8> {{~set 'IDs' '2373,2294,2128'}} {{~setblock 'b1'}} {{~#getswitch @root.E.S 'S_AutoFuel'}}{{#if SwitchState}} {{~#entitiesbyname '*' 200}} {{~#each .}} {{~set 'str' . }} {{Name}} {{~#items @root.E.S 'AutoFuel*'}} {{~#math (configattr Id 'StackSize') '/' 10}} {{~set 'Stacks' (int (max 10 .))}} {{~/math}} {{~#test Count ge @root.Data.Stacks}} {{~#test Id in @root.Data.IDs}} {{~#fill ../this @root.Data.str/S 'Oxygen' 100}}{{/fill}} {{~#fill ../this @root.Data.str/S 'Fuel' 100}}{{/fill}} {{~#fill ../this @root.Data.str/S 'Pentaxid' 100}}{{/fill}} {{~/test}}{{/test}}{{/items}}{{/test}}{{/each}}{{/entitiesbyname}} {{~else}} <align=center><color=red>Switch this lever to automaticly fuel up your docked vessels.</color></align> {{/if}}{{/getswitch}} {{/setblock}} {{scroll 12 2}} {{selectlines 1 0 9}} {{@root.Data.b1}} {{/selectlines}} {{/scroll}} </size><size=6> {{#getitems @root.E.S 'AutoFuel*'}} {{~#itemlist . @root.Data.IDs}} {{~#math (configattr Id 'StackSize') '/' 10}} {{~set 'Stacks' (int (max 10 .))}} {{~/math}} {{#test count le @root.Data.Stacks}} <indent=6>◉ <color=red>Not Enough: <color=#00cccc>{{Name}}{{Id}}</color> (<color=orange>{{Count}}</color>)</color></indent> {{else}} <indent=6>◉ <color=green>Plenty:</color> <color=#00cccc>{{Name}}{{Id}}</color> (<color=orange>{{Count}}</color>)</indent> {{/test}} {{/itemlist}} {{/getitems}} </size> i'm not sure how the fill works exactly, so anny help how i could fix it would be great.
Sorry.... got yet another problem: can the cargo teleporter script cause the playfield server to crash? i have a home-server and run reforged eden. i sent like 3 cargocontainers worth of stuff, (about 30 stacks, some just random items, some 4 stacks of ore) to a base and teleportet there; after some seconds the CargoInInfo lcd showed the stuff ariving and the playfield server crashed/kicked me. could not rejoin right away, got that error screen saying the playfieldserver had a problem and all players were kicked, try again in a few minutes. as i could reconnect the playfield was in state bevore the teleport (all stuff lost between the teleporters) is there something i can do to prevent this?
I have a quick question. I dug through the thread and didn't see the answer - maybe because my German sucks, but that's my fault. I modified the Ammo Counter script over on the scripts thread for use in a CV. https://empyriononline.com/threads/mod-ext-empyrion-scripting-scripts.92458/#post-390302 I think I did it right. Essentially I changed line 2, which seems to be the weapons/ammo data. I want to test it, but I can't get it to run again. It's a three-part script where the initial script populates a second LCD that you edit to fill out your number of weapons, which in displays an ammo loadout screen. It worked the first time, but listed weapons for a BA (OFC). I replaced the second line for CV weapons & ammo, but I can't get the script to regenerate the second screen (WeaponConfig). How do I get the first part to run again to regenerate the second screen? Or is it just failing because I fubared it? This is my replacement line 2. It's the only thing I changed: Code: {{~set 'F' '769,2215;287,2104;1145,2201;288,2206;567,2102;646,2206;1142,2205;702,2210;'}} I still need to add a couple weapons to it. Never mind. I figured it out. I had to remove the existing text in the WeaponConfig LCD
Thank you for this mod! Sorry for my english but i have a question about Playfield data. It's possible to know the terrain height at a specific position? I see "GetTerrainHeightAt" in the source but i dont know how use it. (I've tested many things but not the good thing. Maybe is not possible? ). I want put an alert to the screen if the vessel is under a certain height to remind to retract weapons under vessel before a landing ^^ EDIT: Ok! I've found! We must use #C savegames scripts to access objects methods.
Version 5.11.0: Patch for Empyrion 1.3 A patch to make it work again - let's see what else has "broken" https://github.com/GitHub-TC/EmpyrionScripting/releases/download/5.11.0/EmpyrionScripting.zip
I am wanting to use the below script to transfer items from one box to a few others, ore to one, fuel to another, items to another etc... how do I moddify the code? {{#each E.S.DockedE}} {{#items S 'Box*'}} {{move . @root.E.S 'BoxA'}} {{SourceE.Name}}:{{Source}}-> {{~DestinationE.Name}}:{{Destination}} {{format Count '{0,5}'}} : {{i18n Id 'Deutsch'}} {{/move}} {{/items}} {{/each}} --------------------------------------------- {{fontsize 4}} {{#items E.S 'BoxA'}} {{#test Id leq 1000}} {{move this @root.E.S 'BoxB' 100}} {{SourceE.Name}}:{{Source}}-> {{~DestinationE.Name}}:{{Destination}} {{format Count '{0,5}'}} : {{i18n Id 'Deutsch'}} {{/move}} {{else}} {{move this @root.E.S 'BoxB'}} {{SourceE.Name}}:{{Source}}-> {{~DestinationE.Name}}:{{Destination}} {{format Count '{0,5}'}} : {{i18n Id 'Deutsch'}} {{/move}} {{/test}} {{/items}}
Des Handlebar zeugs geht mir auf die Nerven, und ich habe das Gefühl es ist langsam bei umfangreichen scripten, auch weil man umständlich vorgehen muss. (langes savegame script das auch zu lang für ein LCD währe) Deshalb möchte ich meine Scripte gerne generalisieren und als savegame scripte in c# neu schreiben. (und eventuell veröffentlichen) Dazu die Frage: was ist ein geeigneter Editor, gibt es eventuell sogar die Möglichkeit das der spezifische Syntax (sowas wie root.E.S) vorgeschlagen wird? (für die nativen Empyrion Mods gibts ja des visual studio solution dingens im beispiel mod) Vielen Dank PS: Oder währe ich besser dran gleich ein natives Mod zu schreiben?
Du kannst einfach mit VisualStudio(Express) ein .NET Framework Consoleanwendungsprojekt anlegen und dort die EmpyrionScripting.Interface.dll aus dem Modverzeichnis referenzieren (und was du noch für DLLs so brauchst). Dann kannst du einfach in einer CS Datei deine Mod schreiben und hast die Intellisenseunterstützung des Studios. Eine native Mod geht natürlich auch nur hast du dann mit den ganzen Unwägbarkeiten der API und des Spieles zu kämpfen. PS: Über die ModAPI hast aber auch von einem C# Savegame Script den vollen Zugriff auf alles
Cool Danke. Mal sehen wie eingerostet mein c# ist noch Fragen zu Besonderheiten: -die Main Funktion wird ja immer neu aufgerufen (alle 10s default) an welchem Objekt im Spiel hängt die? Ich nehme an nicht unbedingt an einem LCD, die laufen soweit ich sehen kann auch ohne; also an jeder Entity? (das sind alle mit core, richtig?) -Wie kann ich Daten zwischen Aufrufen am besten zwischenspeichern (ich hab n DateTime) ich vermute mit root.Data aber bin nicht sicher wie das am besten gemacht wird. (normalerweise hat man ja ne schleife in der Main) -Und darf ich Blöcke aus dem CargoTeleporter als Vorlage nehmen? Danke nochmal