Logic.AddWeatherElement
» Siedler Map Source Forum » Siedler DEdK Script Forum » Logic.AddWeatherElement
Seiten: 1
Play4FuN
|
#1 27.03.2014 20:59 Beiträge: 704 |
Logic.AddWeatherElement
Hallo Community,
ich hatte gehofft mit ebd. Logicbefehl ein alternatives System für das Wetter zu verwenden. Aus der Demo.exe:
Param1: Weather State of period, 1 = normal, 2 = rain, 3 = snow Param2: Duration of period in seconds Param3: Is periodic, 1 for (normal)periodic weather element else 0 for weather machine effects Param4: Gfx Set of this weather element Param5: Gfx Set forerun (gfx transition start some time before logic state change), time in seconds Param6: duration of Gfx Set transition
Hm, ein bisschen rumprobiert. Manche Dinge sind nicht sehr schwer herauszufinden. Aber was genau bewirkt der fünfte Parameter? Wie kann ich das am sinnvollsten einbauen, anstatt
AddPeriodicSummer(600)
usw. zu verwenden? Kann mir jemand darüber mehr sagen? Im Wiki finde ich dazu leider nichts allzu hilfreiches. Das Tutorial zu GFX-Sets hilft nur sehr bedingt weiter...
____________________
LG Play4FuN
Siedler DEdK Mapping + Scripting Tutorials
bobby
|
#2 27.03.2014 21:36 Beiträge: 393 |
Der 5. Parameter ist die Vorlauf Zeit des Gfx-Sets.
D.h so viele Sekunden bevor das Wetter sich ändern sollte beginnt es sich schon langsam zu ändern.
Was genau bei den Gfx-Sets verstehst du denn nicht?
Eigentlich enthält dieses Tutorial so ziemlich alles was wichtig ist.
____________________
Tools und Verbesserungen für Siedler: settlers.pro
Neues:
Cutscene Editor
LuaDebugger v0.5.2
Play4FuN
|
#3 27.03.2014 21:48 Beiträge: 704 |
Genau dieses Tutorial meinte ich, mir geht es im Moment um den Aufruf bzw. Aufbau der Wetterperioden, wenn ich sie mittels Logic.AddWeatherElement aufrufe.
function InitWeather() Logic.AddWeatherElement(1,30,Sommerwetter,5,0.8) Logic.AddWeatherElement(2,30,Regenwetter,5,0.8) Logic.AddWeatherElement(3,30,Schneewetter,5,0.8) end
Das ohne den Aufruf
AddPeriodicSummer(30)
haut nicht hin, anfangs, also etwa während der ertsen 30sec ist das GFX-Set fehlerhaft, also dunkler als sonst. Ist der Aufruf falsch?
Ich habe für die drei Funktionen (Sommerwetter, Regenwetter und Schneewetter) erstmal das Bsp. aus dem wiki genommen (Evelance).
____________________
LG Play4FuN
Siedler DEdK Mapping + Scripting Tutorials
bobby
|
#4 27.03.2014 22:43 Beiträge: 393 |
Deinem Aufruf fehlt ganz einfach ein Parameter:
Logic.AddWeatherElement(1, 30, 1, Sommerwetter, 5, 0.8)
Parameter 3 besagt ob das Wetter Element sich wiederholen soll oder nur einmalig vorkommt.
Zitat von Play4FuN:
Ich habe für die drei Funktionen (Sommerwetter, Regenwetter und Schneewetter) erstmal das Bsp. aus dem wiki genommen (Evelance).
Ich kann gerade nicht nachvollziehen was Sommerwetter, Regenwetter und Schneewetter sind.
Sind es Variablen mit dem Inhalt 1 - 3 oder Funktionen.
Letzteres wäre wohl ein weiterer Fehler.
____________________
Tools und Verbesserungen für Siedler: settlers.pro
Neues:
Cutscene Editor
LuaDebugger v0.5.2
Play4FuN
|
#5 28.03.2014 11:19 Beiträge: 704 |
Aha. So klappt es zwar erstmal wieder "normal":
Logic.AddWeatherElement(1,20,1,1,5,6) Logic.AddWeatherElement(2,20,1,2,5,6) Logic.AddWeatherElement(3,20,1,3,5,6)
...aber ich wollte ja gerne - wie es glaube ich irgendwo auch im wiki steht - bswp. den Schnee für einige Zeit aussetzen lassen, es soll aber trotzdem noch Schnee daliegen bzw. das Eis gefroren sein.
Eine Idee dafür wäre über einen Trigge abzufragen, wann Winter wird und dann manuell folgendes aufzurufen:
Display.GfxSetSetSnowEffectStatus(3,0.4,0.9,0)
Danach könnte es auf gleichem Wege wieder aktiviert werden.
Geht das nicht auch eleganter? Ich dachte da an folgendes: Es wird eine neue Wetterperiode aufgerufen, die allerdings genau das schon von anfang an enthält, also z.B.
1. Aufruf Winter (normal)
2. Aufruf Winter aber ohne Schneeflocken
3. Aufruf Winter (normal)
Versteht ihr?
____________________
LG Play4FuN
Siedler DEdK Mapping + Scripting Tutorials
mcb
|
#6 28.03.2014 14:14 Beiträge: 1472 |
Vielleicht hilft dir das weiter:
function SetupErweitertEvelanceGFXSet() Display.SetRenderUseGfxSets(1) -- normal Display.GfxSetSetSkyBox(1, 0.0, 1.0, "YSkyBox07") Display.GfxSetSetRainEffectStatus(1, 0.0, 1.0, 0) Display.GfxSetSetSnowStatus(1, 0, 1.0, 0) Display.GfxSetSetSnowEffectStatus(1, 0.0, 0.8, 0) Display.GfxSetSetFogParams(1, 0.0, 1.0, 1, 38,48,58, 4000,10500) Display.GfxSetSetLightParams(1, 0.0, 1.0, 40, -15, -50, 136,144,144, 128,104,72) -- Regen Display.GfxSetSetSkyBox(2, 0.0, 1.0, "YSkyBox04") Display.GfxSetSetRainEffectStatus(2, 0.0, 1.0, 1) Display.GfxSetSetSnowStatus(2, 0, 1.0, 0) Display.GfxSetSetSnowEffectStatus(2, 0.0, 0.8, 0) Display.GfxSetSetFogParams(2, 0.0, 1.0, 1, 38,58,68, 4000,8000) Display.GfxSetSetLightParams(2, 0.0, 1.0, 40, -15, -50, 136,144,144, 128,104,72) -- Schnee Display.GfxSetSetSkyBox(3, 0.0, 1.0, "YSkyBox01") Display.GfxSetSetRainEffectStatus(3, 0.0, 1.0, 0) Display.GfxSetSetSnowStatus(3, 0, 1.0, 1) Display.GfxSetSetSnowEffectStatus(3, 0.0, 0.8, 1) Display.GfxSetSetFogParams(3, 0.0, 1.0, 1, 108,128,138, 2000,9500) Display.GfxSetSetLightParams(3, 0.0, 1.0, 40, -15, -50, 116,144,164, 255,234,202) -- schnee - schneefall (tauen) (mit id 3 verwenden) Display.GfxSetSetSkyBox(4, 0.0, 1.0, "YSkyBox01") Display.GfxSetSetRainEffectStatus(4, 0.0, 1.0, 0) Display.GfxSetSetSnowStatus(4, 0, 1.0, 1) Display.GfxSetSetSnowEffectStatus(4, 0.0, 0.8, 0) Display.GfxSetSetFogParams(4, 0.0, 1.0, 1, 38,48,58, 4000,10500) Display.GfxSetSetLightParams(4, 0.0, 1.0, 40, -15, -50, 136,144,144, 128,104,72) AddPeriodicTauwetter = function(dauer) Logic.AddWeatherElement(3, dauer, 1, 4, 5, 15) end -- regen + schneefall (mit id 2 verwenden) Display.GfxSetSetSkyBox(5, 0.0, 1.0, "YSkyBox04") Display.GfxSetSetRainEffectStatus(5, 0.0, 1.0, 1) Display.GfxSetSetSnowStatus(5, 0, 1.0, 0) Display.GfxSetSetSnowEffectStatus(5, 0.0, 0.8, 1) Display.GfxSetSetFogParams(5, 0.0, 1.0, 1, 38,58,68, 4000,8000) Display.GfxSetSetLightParams(5, 0.0, 1.0, 40, -15, -50, 136,144,144, 128,104,72) AddPeriodicSchneeregen = function(dauer) Logic.AddWeatherElement(2, dauer, 1, 5, 5, 15) end -- schnee + regen (mit id 3 verwenden) Display.GfxSetSetSkyBox(6, 0.0, 1.0, "YSkyBox01") Display.GfxSetSetRainEffectStatus(6, 0.0, 1.0, 1) Display.GfxSetSetSnowStatus(6, 0, 1.0, 1) Display.GfxSetSetSnowEffectStatus(6, 0.0, 0.8, 1) Display.GfxSetSetFogParams(6, 0.0, 1.0, 1, 108,128,138, 2000,9500) Display.GfxSetSetLightParams(6, 0.0, 1.0, 40, -15, -50, 116,144,164, 255,234,202) AddPeriodicWinterregen = function(dauer) Logic.AddWeatherElement(3, dauer, 1, 6, 5, 15) end -- schnee - textur (mit id 1 verwenden) Display.GfxSetSetSkyBox(7, 0.0, 1.0, "YSkyBox01") Display.GfxSetSetRainEffectStatus(7, 0.0, 1.0, 0) Display.GfxSetSetSnowStatus(7, 0, 1.0, 0) Display.GfxSetSetSnowEffectStatus(7, 0.0, 0.8, 1) Display.GfxSetSetFogParams(7, 0.0, 1.0, 1, 108,128,138, 2000,9500) Display.GfxSetSetLightParams(7, 0.0, 1.0, 40, -15, -50, 116,144,164, 255,234,202) AddPeriodicSommerschnee = function(dauer) Logic.AddWeatherElement(1, dauer, 1, 7, 5, 15) end --schnee - schneefall (mit id 3) Display.GfxSetSetSkyBox(8, 0.0, 1.0, "YSkyBox01") Display.GfxSetSetRainEffectStatus(8, 0.0, 1.0, 0) Display.GfxSetSetSnowStatus(8, 0, 1.0, 1) Display.GfxSetSetSnowEffectStatus(8, 0.0, 0.8, 0) Display.GfxSetSetFogParams(8, 0.0, 1.0, 1, 108,128,138, 2000,9500) Display.GfxSetSetLightParams(8, 0.0, 1.0, 40, -15, -50, 116,144,164, 255,234,202) AddPeriodicSchnee = function(dauer) Logic.AddWeatherElement(3, dauer, 1, 8, 5, 15) end end
Das ganze basiert auf dem Unterschied zwischen Wetter-id (für das laufen auf dem Eis, verringerte Sichtweite, Wetteranzeige...) und GFX-Set-id (Aussehen).
Wetter-ids gibt es 3, GFX-Set-ids vermutlich unbegrenzt.
Wenn dazu noch Fragen sind, immer her damit
Play4FuN
|
#7 28.03.2014 14:46 Beiträge: 704 |
@mcb:
Darüber habe ich auch schon gelesen - nur wie rufe ich das jetzt auf?
Ich gehe davon aus, dass das der 4. Parameter in der "AddWeatherElement" ist?
____________________
LG Play4FuN
Siedler DEdK Mapping + Scripting Tutorials
Play4FuN
|
#8 28.03.2014 14:50 Beiträge: 704 |
Edit: ne .... ich denke ich kapiers so langsam. Ich experimentiere erstmal etwas damit rum
____________________
LG Play4FuN
Siedler DEdK Mapping + Scripting Tutorials
Play4FuN
|
#9 28.03.2014 14:58 Beiträge: 704 |
Noch ein Nachtrag.
Danke mcb, das hilft mir auf jeden Fall schon Mal weiter. Kann man die GFX-Sets auch von anderen "Wetterverhältnissen" finden? Ich meine damit nicht nur Evelance sondern auch Normal, Highland usw.
____________________
LG Play4FuN
Siedler DEdK Mapping + Scripting Tutorials
bobby
|
#10 28.03.2014 15:16 Beiträge: 393 |
Hier in dieser Lua Datei werden alle BB-Wetter GFX Sets initialisiert.
____________________
Tools und Verbesserungen für Siedler: settlers.pro
Neues:
Cutscene Editor
LuaDebugger v0.5.2
Dieser Beitrag wurde von bobby am 24.03.2016 um 14:17 editiert.
Play4FuN
|
#11 28.03.2014 15:21 Beiträge: 704 |
Danke auch Dir
____________________
LG Play4FuN
Siedler DEdK Mapping + Scripting Tutorials
Seiten: 1