[30.11.2011] Stranded II Titanium - Vorschau
More
Videos:
Terrainzeugs...
Wetterzeugs...
Häuslebau...
Zeugs...
Viehihiisch...
Grafisches...
Turmbau...
Screenshots:
Terrainzeugs...
Wetterzeugs...
Häuslebau...
Zeugs...
Viehihiisch...
Grafisches...
Turmbau...
Screenshots:
[02.09.2011] Stranded II Titanium - Version 1.0.0.5 (Alpha-Stadium)
More
So. Dies ist nun endlich mal ein vorläufiges, inoffizielles Alpha-Release des schon vor Ewigkeiten (!) versprochenen SourceCode-Updates von Stranded II.
Ich hab da wirklich viel herumgebastelt, aber vieles läuft leider noch nicht so reibungslos. Das betrifft insbesondere alles rund um die Einheiten-KI usw., wo vieles noch absolute Baustelle ist und Bugs definitiv zu erwarten sind. Zudem war schon allein die Auflistung der vielen Neuerungen ohne allzuweit mit Erläuterungen auszuschweifen wirklich ein Haufen Arbeit.
Mit Stranded II, dem Skriptsystem und den Definitionen vertraute User (Mapper, Modder) sollten sich also vor allem an den Beispielen aus den Definitionsdateien/Testmaps usw. orientieren. Aber da ja hier größtenteils eh nur noch der harte Kern der SII-Fans rumhängt, kommt ihr mit dem meisten sicher gut klar.
Ansonsten fragt einfach noch einmal im Forum nach, falls ihr etwas absolut nicht versteht oder nicht weiterkommt. Und im Zweifelsfall gilt: Wenn etwas nicht funktioniert, ist es wohl ein Bug.
Für Spieler ist diese Version absolut nicht zu empfehlen, da sie sich wie gesagt noch in einem unfertigem Stadium befindet (und unter anderen auch das reibungslose Speichern/Laden von Savegames nicht garantiert werden kann). Nixdestotrotz sollte es aber möglich sein, kleinere einfache Szenarien mit dem Editor zu basteln um so für ein wenig Spielspaß sorgen zu können (ein paar kleine, einfache Maps zum testen hab' ich auch noch schnell gemacht).
Auch Freunde eines Multiplayermodus muss ich leider enttäuschen. Dieses Ziel wurde von mir nie verfolgt und beim Entwickeln des Updates auch konsequent ingnoriert.
So, nun die ganzen Neuerungen/Änderungen (dat is so übertrieben viel )
einige ältere Bugs gefixt
viele neue Bugs, Grafikfehler und heißgeliebte Laufzeitfehler
farbige Übersichtskarte
etwas realistischer wirkendes Gras
zusätzliche Kartengrößen 512x512 und 1024x1024 (logisch... )
Terraingenerierung überarbeitet
zusätzliche Terrainwerkzeuge
Erfolgswahrscheinlichkeiten für Kombis
Spielerphysik überarbeitet (sprinten: [L-SHIFT], schleichen: [L-ALT], kriechen: [L-STRG])
Interface überarbeitet (auf-/zuklappen der Nachrichtenkonsole: [TAB])
Handhabung von Waffen überarbeitet (Nachladen/Rundumschlag: [R], Zoom: [mittlere MT])
Zoom (muss ja... -_-)
Projektilphysik überarbeitet
Menü und Steuerung im Editor überarbeitet (Shortcuts [0..9] für Untermenüs)
Hanf-Opfa vertickt sein Gras nun für 'nen 5er-Kurs (huh... :))
Wettergrafik (Himmel, Sonne/Mond, Nebel...) überarbeitet
viele neue Objekte, Einheiten, Gegenstände (teilweise aus S2Ext übernommen)
Tile-Funktion (ausrichten am Gitter) für Objekte (bspw. Häuserteile) im Editor
Helisteuerung (oh nein... )
Einheitenverhalten überarbeitet (work in progress)
Spielkonzept: Tarnung
Möglichkeit mehrere Karten aneinanderzuhängen (SII-W0rld, work in progress)
Pfade für Einheiten sind einfacher zu erstellen
Menü/Sonstiges
Definitionen
Skriptbefehle
Konsolenbefehle
Ich hab da wirklich viel herumgebastelt, aber vieles läuft leider noch nicht so reibungslos. Das betrifft insbesondere alles rund um die Einheiten-KI usw., wo vieles noch absolute Baustelle ist und Bugs definitiv zu erwarten sind. Zudem war schon allein die Auflistung der vielen Neuerungen ohne allzuweit mit Erläuterungen auszuschweifen wirklich ein Haufen Arbeit.
Mit Stranded II, dem Skriptsystem und den Definitionen vertraute User (Mapper, Modder) sollten sich also vor allem an den Beispielen aus den Definitionsdateien/Testmaps usw. orientieren. Aber da ja hier größtenteils eh nur noch der harte Kern der SII-Fans rumhängt, kommt ihr mit dem meisten sicher gut klar.
Ansonsten fragt einfach noch einmal im Forum nach, falls ihr etwas absolut nicht versteht oder nicht weiterkommt. Und im Zweifelsfall gilt: Wenn etwas nicht funktioniert, ist es wohl ein Bug.
Für Spieler ist diese Version absolut nicht zu empfehlen, da sie sich wie gesagt noch in einem unfertigem Stadium befindet (und unter anderen auch das reibungslose Speichern/Laden von Savegames nicht garantiert werden kann). Nixdestotrotz sollte es aber möglich sein, kleinere einfache Szenarien mit dem Editor zu basteln um so für ein wenig Spielspaß sorgen zu können (ein paar kleine, einfache Maps zum testen hab' ich auch noch schnell gemacht).
Auch Freunde eines Multiplayermodus muss ich leider enttäuschen. Dieses Ziel wurde von mir nie verfolgt und beim Entwickeln des Updates auch konsequent ingnoriert.
So, nun die ganzen Neuerungen/Änderungen (dat is so übertrieben viel )
einige ältere Bugs gefixt
More
beim Reiten/Fahren von Units kam es beim Drehen unter Umständen zu Ruckeln
beim Reiten/Fahren wurde der Spieler weder hungrig, durstig noch müde
beim Drehen der Kamera/des Spielers musste das Gras an den Rändern erst noch 'aufgebaut' werden
klitzekleiner Bug bei der Wassergrafik
Probleme mit Kollisionsmodell von Einheiten mit dem Behaviour 'vehicle' (Kollisionsmodell bis auf weiteres entfernt)
Scriptbefehl 'playerspotted' funzte nicht korrekt (man konnte bspw. in der Nähe gefährlicher Viecher schlafen)
durch Fremdeinwirkung verletzte Einheiten griffen stets den Spieler an
Man konnte durch Wände durchschießen oder Dinge durchwerfen, wenn man nah genug war
Affen machten hinter dem Rücken des Spielers einen zweifachen statt dreifachen Salto
in seltenen Fällen setzten Units bei 'unitpath' zu einer Art Extrarunde an
Info 'Spawn-Control' erzeugte unter Umständen zuviele Viecher (Viecher liefen weg und wurden nicht mehr mitgezählt)
Bug im Zusammenhang mit Ghostmodell beim Setzen animierter Units im Editor
kleiner Bug bei Terrainhöhenänderung
Bei den Mapinfos im Editor wurde die Anzahl der Scripte falsch angezeigt (gezählt wurden u.a. auch Variablen und so)
Units ließen sich manchmal nicht auswählen, wenn man vom Debug-Modus in den Editor zurückkehrte
collect-Event wurde beim aufsammeln von Items aus dem Lager o.ä. nicht ausgelöst
Crossparsing-Error bei sleep-Scriptbefehl (intern wird jetzt einfach das Drücken der z-Taste vorgegaukelt )
Zahlen mit wiss. Notation (z.B. 1.23e-8) wurden vom Parser falsch interpretiert und verursachten Rechenfehler
Bug im Zusammenhang mit den relativen Koordinaten (x und z) von States (Definitionswert 'state')
in Klammern gesetzte Parameter bei Befehlen mit Return-Wert (bspw. 'freeze' oder 'loadvars') wurden nicht als solche erkannt
Laufanimation von Einheiten mit Definition 'loopmoveani=1' wurde im Editor nicht korrekt dargestellt
Scriptbefehl 'count_behaviourinrange' zählte auch tote Viecher mit
übergebene Strings bei 'inputwin', 'name' usw. wurden mathematisch ausgewertet (-> Bug bei Strings wie 'Raptor' o.ä.)
kleiner Bug bei der Darstellung der Wegwerf-Buttons (Hälfe/Alle) im Inventar (während des Drückens der Drop-Taste)
beim Reiten/Fahren wurde der Spieler weder hungrig, durstig noch müde
beim Drehen der Kamera/des Spielers musste das Gras an den Rändern erst noch 'aufgebaut' werden
klitzekleiner Bug bei der Wassergrafik
Probleme mit Kollisionsmodell von Einheiten mit dem Behaviour 'vehicle' (Kollisionsmodell bis auf weiteres entfernt)
Scriptbefehl 'playerspotted' funzte nicht korrekt (man konnte bspw. in der Nähe gefährlicher Viecher schlafen)
durch Fremdeinwirkung verletzte Einheiten griffen stets den Spieler an
Man konnte durch Wände durchschießen oder Dinge durchwerfen, wenn man nah genug war
Affen machten hinter dem Rücken des Spielers einen zweifachen statt dreifachen Salto
in seltenen Fällen setzten Units bei 'unitpath' zu einer Art Extrarunde an
Info 'Spawn-Control' erzeugte unter Umständen zuviele Viecher (Viecher liefen weg und wurden nicht mehr mitgezählt)
Bug im Zusammenhang mit Ghostmodell beim Setzen animierter Units im Editor
kleiner Bug bei Terrainhöhenänderung
Bei den Mapinfos im Editor wurde die Anzahl der Scripte falsch angezeigt (gezählt wurden u.a. auch Variablen und so)
Units ließen sich manchmal nicht auswählen, wenn man vom Debug-Modus in den Editor zurückkehrte
collect-Event wurde beim aufsammeln von Items aus dem Lager o.ä. nicht ausgelöst
Crossparsing-Error bei sleep-Scriptbefehl (intern wird jetzt einfach das Drücken der z-Taste vorgegaukelt )
Zahlen mit wiss. Notation (z.B. 1.23e-8) wurden vom Parser falsch interpretiert und verursachten Rechenfehler
Bug im Zusammenhang mit den relativen Koordinaten (x und z) von States (Definitionswert 'state')
in Klammern gesetzte Parameter bei Befehlen mit Return-Wert (bspw. 'freeze' oder 'loadvars') wurden nicht als solche erkannt
Laufanimation von Einheiten mit Definition 'loopmoveani=1' wurde im Editor nicht korrekt dargestellt
Scriptbefehl 'count_behaviourinrange' zählte auch tote Viecher mit
übergebene Strings bei 'inputwin', 'name' usw. wurden mathematisch ausgewertet (-> Bug bei Strings wie 'Raptor' o.ä.)
kleiner Bug bei der Darstellung der Wegwerf-Buttons (Hälfe/Alle) im Inventar (während des Drückens der Drop-Taste)
viele neue Bugs, Grafikfehler und heißgeliebte Laufzeitfehler
More
:x: speichern/laden von Maps kann noch zu Problemen führen (während des Spiels, nicht im Editor!)
:x: bei den Einheiten wurde viel herumgebastelt, folglich sind einige Bugs zu erwarten
:x: das StrandedII-Abenteuer ist teilweise bis gänzlich fehlerhaft
:x: einige Objektdefinitionen (Einheiten, Waffen, Kombis) wurden noch nicht angepasst
:x: bei den Einheiten wurde viel herumgebastelt, folglich sind einige Bugs zu erwarten
:x: das StrandedII-Abenteuer ist teilweise bis gänzlich fehlerhaft
:x: einige Objektdefinitionen (Einheiten, Waffen, Kombis) wurden noch nicht angepasst
farbige Übersichtskarte
More
Übersichtskarte ist nun farbig und größer
Terra Incognita: sichtbar sind nur bereits besuchte Teile der Insel
Kombination: Bleistift + Papier -> unfertige Karte (Papier findet man in der Flaschenpost)
im Gegensatz zur unfertigen Karte, wird bei der fertigen Karte die komplette Insel angezeigt
mehr Mapicons
:x: das Laden der Übersichtskarte dauert leider einen Tick länger
Terra Incognita: sichtbar sind nur bereits besuchte Teile der Insel
Kombination: Bleistift + Papier -> unfertige Karte (Papier findet man in der Flaschenpost)
im Gegensatz zur unfertigen Karte, wird bei der fertigen Karte die komplette Insel angezeigt
mehr Mapicons
:x: das Laden der Übersichtskarte dauert leider einen Tick länger
etwas realistischer wirkendes Gras
More
Gras wirkt nun nicht mehr wie Ackerland (bei Maps mit viel Gras + wenig Vegetation war das deutlich sichtbar)
Siehe auch:
Scriptbefehl grassheight
Siehe auch:
Scriptbefehl grassheight
zusätzliche Kartengrößen 512x512 und 1024x1024 (logisch... )
More
Logisch, dass ein gutes Update auch die Möglichkeit größerer Maps beinhalten sollte. Beachtet aber, dass bspw. die 1024-Maps 16-mal so groß wie die 256-er Maps sind, d.h. also auch etwa 16-mal mehr Rechenleistung (und Zeit fürs mappen...! ) benötigen. Die sehr großen Maps sind also insbesondere eher für Archipel-Maps (mehrere kleine Inseln) geeignet.
Terraingenerierung überarbeitet
More
Terraingenerierung für 'Hügel/Hügel/Gebirge' verbessert (optimal für Mapgrößen 128/256)
Terraingenerator auch als Editortool mit variablen Parametern verfügbar
zusätzlicher Terraintyp 'nur Wasser'
zusätzlicher Terraintyp 'Archipel'
den alten Generierungsstil (normal) findet man noch unter dem Terraintyp 'old Style'
Terraingenerator auch als Editortool mit variablen Parametern verfügbar
zusätzlicher Terraintyp 'nur Wasser'
zusätzlicher Terraintyp 'Archipel'
den alten Generierungsstil (normal) findet man noch unter dem Terraintyp 'old Style'
zusätzliche Terrainwerkzeuge
More
Terraingenerator als Editortool mit variablen Parametern (Default-Werte werden aus terraingen.inf geladen)
schnell erreichbare Buttons für Colormap-/Grasmapupdate und Heightmap-Quicksave/-load
schnell erreichbare Buttons für Colormap-/Grasmapupdate und Heightmap-Quicksave/-load
Erfolgswahrscheinlichkeiten für Kombis
More
dem Gelingen von Kombis liegt nun eine Wahrscheinlichkeit zugrunde
Events 'combine', 'success' und 'failure' bei Kombinationsskripten
Parameter 'suc', 'msuc' in Definition
(Beispiele: -> combinations*.inf)
Man beachte, dass bei Misserfolg immer noch ein Teil der herzustellenden Items kreiert werden kann, bspw. bei der Kombi 'Hammer + Eisenstange = 20 Eisenbolzen'. Bei einer Erfolgswahrscheinlichkeit von 25% wird der Spieler - statistisch gesehen - also trotzdem noch 5 Eisenbolzen erhalten. Hier würde übrigens dennoch 'failure' ausgelöst werden, da der Spieler nicht sämtliche 20 Eisenbolzen herstellen konnte.
Umgekehrt werden bei Misserfolg nicht zwangsläufig alle benötigten Gegenstände verbraucht, bspw. bei der Kombi '10 Äste + 10 Felle = Zelt'. Bei einer Erfolgswahrscheinlichkeit von 30% wird der Spieler - statistisch gesehen - also immer noch 3 Äste und 3 Felle wiederverwerten können, der Rest ist im Zuge der fehlgeschlagenen Kombi unbrauchbar geworden (Äste sind zerbrochen o.ä.).
Events 'combine', 'success' und 'failure' bei Kombinationsskripten
Parameter 'suc', 'msuc' in Definition
(Beispiele: -> combinations*.inf)
Man beachte, dass bei Misserfolg immer noch ein Teil der herzustellenden Items kreiert werden kann, bspw. bei der Kombi 'Hammer + Eisenstange = 20 Eisenbolzen'. Bei einer Erfolgswahrscheinlichkeit von 25% wird der Spieler - statistisch gesehen - also trotzdem noch 5 Eisenbolzen erhalten. Hier würde übrigens dennoch 'failure' ausgelöst werden, da der Spieler nicht sämtliche 20 Eisenbolzen herstellen konnte.
Umgekehrt werden bei Misserfolg nicht zwangsläufig alle benötigten Gegenstände verbraucht, bspw. bei der Kombi '10 Äste + 10 Felle = Zelt'. Bei einer Erfolgswahrscheinlichkeit von 30% wird der Spieler - statistisch gesehen - also immer noch 3 Äste und 3 Felle wiederverwerten können, der Rest ist im Zuge der fehlgeschlagenen Kombi unbrauchbar geworden (Äste sind zerbrochen o.ä.).
Spielerphysik überarbeitet (sprinten: [L-SHIFT], schleichen: [L-ALT], kriechen: [L-STRG])
More
der Spieler kann nun sprinten (L-SHIFT gedrückt halten)
der Spieler kann nun schleichen (L-ALT gedrückt halten)
der Spieler kann nun kriechen (L-STRG für ducken/hinlegen, SPACE für aufstehen)
im Wasser wirken Auf-/Abtriebskräfte
Ausdauer, Sprungdauer, Geschwindigkeit abhängig von Inventargewicht
:x: Fallschaden ist leider noch nicht drin... (buh!)
der Spieler kann nun schleichen (L-ALT gedrückt halten)
der Spieler kann nun kriechen (L-STRG für ducken/hinlegen, SPACE für aufstehen)
im Wasser wirken Auf-/Abtriebskräfte
Ausdauer, Sprungdauer, Geschwindigkeit abhängig von Inventargewicht
:x: Fallschaden ist leider noch nicht drin... (buh!)
1
*räusper*
More
Anzeige der Quickslotbelegung im Interface unten
Nachrichten (Scriptbefehl 'msg') werden nun in Konsole links unten angezeigt
Hinweis: Falls man sich den Kompass über das Cheatmenü besorgt, muss er erst weggeworfen und wieder aufgehoben werden, damit er angezeigt wird.
Nachrichten (Scriptbefehl 'msg') werden nun in Konsole links unten angezeigt
Hinweis: Falls man sich den Kompass über das Cheatmenü besorgt, muss er erst weggeworfen und wieder aufgehoben werden, damit er angezeigt wird.
Handhabung von Waffen überarbeitet (Nachladen/Rundumschlag: [R], Zoom: [mittlere MT])
More
Nachladen/Vorladen bei Fernkampfwaffen (Bogen, Pistole, Gewehr...)
Rückschlag bei Feuerwaffen
Rundumschlag für Nahkampfwaffen
Definition attackrange: Reichweite für Nahkampfwaffen
Reichweite/Schaden einer Nahkampfwaffe werden zu denen des Spielers hinzuaddiert
neue Items: Jagdgewehr, Armbrust/Jagdgewehr mit Zielfernrohr
Geschwindigkeit/Schaden von Projektilen hängen von Vorbereitungszeit ab (Ladebalken oben)
Rückschlag bei Feuerwaffen
Rundumschlag für Nahkampfwaffen
Definition attackrange: Reichweite für Nahkampfwaffen
Reichweite/Schaden einer Nahkampfwaffe werden zu denen des Spielers hinzuaddiert
neue Items: Jagdgewehr, Armbrust/Jagdgewehr mit Zielfernrohr
Geschwindigkeit/Schaden von Projektilen hängen von Vorbereitungszeit ab (Ladebalken oben)
Zoom (muss ja... -_-)
More
Scriptbefehl zoom
:x: Zoom-Modus kann sich unter Umständen nachteilig auf die Performance auswirken
Fernrohr: rechte Maustaste für Zoom
mod. Armbrust/Jagdgewehr: Mausrad drücken für Zoom
:x: Zoom-Modus kann sich unter Umständen nachteilig auf die Performance auswirken
Fernrohr: rechte Maustaste für Zoom
mod. Armbrust/Jagdgewehr: Mausrad drücken für Zoom
Projektilphysik überarbeitet
More
Projektile bewegen sich nun auf parabel- statt kreisförmigen Flugbahnen
Kollision von Projektilen mit Einheitenmodell bei einigen größeren Einheiten
Scriptbefehl projectile: Zielgenauigkeit verbessert
Konsolenbefehl debug_projectiles/dp
wird ein Objekt mit Material glass beim Beschuss zerstört, fliegt das Projektil weiter
abhängig von Materialeigenschaften bleiben Projektile in Objekten stecken (als Items)
Kollision von Projektilen mit Einheitenmodell bei einigen größeren Einheiten
Scriptbefehl projectile: Zielgenauigkeit verbessert
Konsolenbefehl debug_projectiles/dp
wird ein Objekt mit Material glass beim Beschuss zerstört, fliegt das Projektil weiter
abhängig von Materialeigenschaften bleiben Projektile in Objekten stecken (als Items)
Menü und Steuerung im Editor überarbeitet (Shortcuts [0..9] für Untermenüs)
More
Shortcuts für einige Untermenüs (Terrain, Objekte, Einheiten, Map-Übersicht usw.)
schnellere Navigation der Kamera im Editor mittels [L-Shift]
Drag&Drop um Objekte schnell und einfach umzusetzen
kleine 3D-Anzeige (+Beschreibungstext) für Objekte, Einheiten, Gegenstände
durch viele Listen im Editor kann man nun auch (mittels Mausrad) scrollen
zusätzliche Optionen für Platzierung von Objekten
schnellere Navigation der Kamera im Editor mittels [L-Shift]
Drag&Drop um Objekte schnell und einfach umzusetzen
kleine 3D-Anzeige (+Beschreibungstext) für Objekte, Einheiten, Gegenstände
durch viele Listen im Editor kann man nun auch (mittels Mausrad) scrollen
zusätzliche Optionen für Platzierung von Objekten
Hanf-Opfa vertickt sein Gras nun für 'nen 5er-Kurs (huh... :))
Wettergrafik (Himmel, Sonne/Mond, Nebel...) überarbeitet
More
neue Himmelstexturen für Skybox auswählbar
zusätzliche Skybox für die Nacht
alternativ zu Skyboxes sind ziehende Wolken auswählbar
Sonne deren Verlauf von Jahreszeit und Breitengrad abhängt
Mond (leider noch ohne Mondzyklen und mit unrealistischem Verlauf)
zusätzliche Skybox für die Nacht
alternativ zu Skyboxes sind ziehende Wolken auswählbar
Sonne deren Verlauf von Jahreszeit und Breitengrad abhängt
Mond (leider noch ohne Mondzyklen und mit unrealistischem Verlauf)
viele neue Objekte, Einheiten, Gegenstände (teilweise aus S2Ext übernommen)
More
Häuserteile zur Konstruktion großer begehbarer Häuser
Eingeborener mit Speer und Eingeborener mit Bogen sorgen für mehr Action
diverse zusätzliche Charaktere wie Farmer-Joe, König, Eingeborene, Gestrandete...
einige neue Fahrzeuge wie Helikopter, Katapult, Schlauchboot...
einige neue Items wie Kompass, Metallzwille, Fernrohr oder vergiftete Getreidegarbe
(einiges Zeugs stammt aus der Extension Mod)
Eingeborener mit Speer und Eingeborener mit Bogen sorgen für mehr Action
diverse zusätzliche Charaktere wie Farmer-Joe, König, Eingeborene, Gestrandete...
einige neue Fahrzeuge wie Helikopter, Katapult, Schlauchboot...
einige neue Items wie Kompass, Metallzwille, Fernrohr oder vergiftete Getreidegarbe
(einiges Zeugs stammt aus der Extension Mod)
Tile-Funktion (ausrichten am Gitter) für Objekte (bspw. Häuserteile) im Editor
More
Ausrichtung von Objekten am Raster zwecks passgenauer Positionierung (bspw. Häuserteile)
Definition tiles und tilegroup für Objekte
Strg-Taste gedrückt halten um Objekte am Gitter auszurichten
Strg-Taste gedrückt halten und Mausrad drehen um Höhe zu variieren
Hinweis: 'zufälliges Drehen' bei Objekte ausschalten
Definition tiles und tilegroup für Objekte
Strg-Taste gedrückt halten um Objekte am Gitter auszurichten
Strg-Taste gedrückt halten und Mausrad drehen um Höhe zu variieren
Hinweis: 'zufälliges Drehen' bei Objekte ausschalten
Helisteuerung (oh nein... )
More
Einheitenverhalten helicopter für Fahrzeuge mit Helisteuerung
Definition wobble für Einheiten mit behaviour=helicopter
Definition tilt für Einheiten mit behaviour=helicopter
[L-Shift+W/S] für auf/ab, [L-Shift+A/D] zum drehen, WASD für Bewegung in der x-z-Ebene
Definition wobble für Einheiten mit behaviour=helicopter
Definition tilt für Einheiten mit behaviour=helicopter
[L-Shift+W/S] für auf/ab, [L-Shift+A/D] zum drehen, WASD für Bewegung in der x-z-Ebene
Einheitenverhalten überarbeitet (work in progress)
More
Unitbehaviour raptor unterstützt auch fernkämpfende Units (siehe attack-/huntrange)
Einheiten sprinten, falls jagend oder fliehend
Jäger/Beute-Verhalten für beliebige Einheiten
:x: work in progress - viele Sachen sind noch nicht fertig oder laufen nicht optimal
Siehe auch:
Definition attackrange
Definition huntrange
Definition projectile
Definition perception_near
Definition perception_far
Definition nervousness
Definition accuracy
Spielkonzept: Tarnung
Einheiten sprinten, falls jagend oder fliehend
Jäger/Beute-Verhalten für beliebige Einheiten
:x: work in progress - viele Sachen sind noch nicht fertig oder laufen nicht optimal
Siehe auch:
Definition attackrange
Definition huntrange
Definition projectile
Definition perception_near
Definition perception_far
Definition nervousness
Definition accuracy
Spielkonzept: Tarnung
Spielkonzept: Tarnung
More
Damit der Spieler (oder andere Einheiten) von einer Einheit entdeckt wird, müssen folgende Bedingungen erfüllt sein:
1. Unit in Jagdreichweite (-> Definition huntrange)
2a. Unit im Sichtfeld (-> Definition perception_far)
ODER
2b. Unit durch Geräusche, Geruch etc. entdeckt (-> Definition perception_near)
3. freie Sicht zum Ziel
Die Wahrscheinlichkeiten werden anhand der über die Definitionen perception_near/perception_far festgelegten Grafiken ermittelt.
Wird eine Unit zwar durch Geräusche etc. enttarnt, oder wurde bereits gesichtet, verschwindet aber wieder aus der Sicht der verfolgenden Unit, so bewegt sich die verfolgende Unit weiterhin in die Richtung, wo sie zuletzt etwas gesehen/gehört hat.
Der Versuch, eine Einheit zu entdecken findet in etwa jede Sekunde statt.
Wahrscheinlichkeit für das Entdecken einer Unit wird durch Tarnung/Geräuschpegel des Spielers beeinflusst.
Tarnung abhängig von Spielerhaltung (stehend, duckend, liegend), Grashöhe, Tageshelligkeit
Geräuschpegel abhängig von Bewegungsart (laufen, rennen, schleichen, schwimmen, stehen)
Siehe auch:
Skriptbefehl noise
Skriptbefehl camouflage
1. Unit in Jagdreichweite (-> Definition huntrange)
2a. Unit im Sichtfeld (-> Definition perception_far)
ODER
2b. Unit durch Geräusche, Geruch etc. entdeckt (-> Definition perception_near)
3. freie Sicht zum Ziel
Die Wahrscheinlichkeiten werden anhand der über die Definitionen perception_near/perception_far festgelegten Grafiken ermittelt.
Wird eine Unit zwar durch Geräusche etc. enttarnt, oder wurde bereits gesichtet, verschwindet aber wieder aus der Sicht der verfolgenden Unit, so bewegt sich die verfolgende Unit weiterhin in die Richtung, wo sie zuletzt etwas gesehen/gehört hat.
Der Versuch, eine Einheit zu entdecken findet in etwa jede Sekunde statt.
Wahrscheinlichkeit für das Entdecken einer Unit wird durch Tarnung/Geräuschpegel des Spielers beeinflusst.
Tarnung abhängig von Spielerhaltung (stehend, duckend, liegend), Grashöhe, Tageshelligkeit
Geräuschpegel abhängig von Bewegungsart (laufen, rennen, schleichen, schwimmen, stehen)
Siehe auch:
Skriptbefehl noise
Skriptbefehl camouflage
Möglichkeit mehrere Karten aneinanderzuhängen (SII-W0rld, work in progress)
More
erstelle eine riesige Welt mit mehreren (großen) Inseln bis hin zu Kontinenten
einfache Bedienung soll die Notwendigkeit von Skripten weitmöglichst reduzieren
:x: work in progress - momentan funktioniert nur das S2W0rld-Menü im Editor
einfache Bedienung soll die Notwendigkeit von Skripten weitmöglichst reduzieren
:x: work in progress - momentan funktioniert nur das S2W0rld-Menü im Editor
Pfade für Einheiten sind einfacher zu erstellen
More
Einheitenpfade lassen sich nun im Editor wesentlich leichter erstellen
:x: das Setzen/Verbinden von Waypoints ist noch nicht ganz zufriedenstellend
:x: Wegpunkte werden bisher nur zu Testzwecken von einigen wenigen Einheiten unterstützt
Info-Objekt 'Wegpunkt' (ID 3) um Wegpunkt zu platzieren
rechte Maustaste auf Wegpunkt um diesen aus- bzw. abzuwählen (Wegpunkt wird nun blau angezeigt)
erneut rechte Maustaste auf anderen Wegpunkt um zwei Wegpunkte miteinander zu verbinden
gestrichelte Linie: eine Richtung
durchgezogene Linie: hin- und zurück
beliebige Unit mittels drag&drop auf Wegpunkt ziehen um ihr einen Pfad zuzuweisen
:x: das Setzen/Verbinden von Waypoints ist noch nicht ganz zufriedenstellend
:x: Wegpunkte werden bisher nur zu Testzwecken von einigen wenigen Einheiten unterstützt
Info-Objekt 'Wegpunkt' (ID 3) um Wegpunkt zu platzieren
rechte Maustaste auf Wegpunkt um diesen aus- bzw. abzuwählen (Wegpunkt wird nun blau angezeigt)
erneut rechte Maustaste auf anderen Wegpunkt um zwei Wegpunkte miteinander zu verbinden
gestrichelte Linie: eine Richtung
durchgezogene Linie: hin- und zurück
beliebige Unit mittels drag&drop auf Wegpunkt ziehen um ihr einen Pfad zuzuweisen
Menü/Sonstiges
More
Progress-Bar überarbeitet (-> 'progress_info.txt' in 'sys\gfx')
Shortcuts im Hauptmenü
Strg+Alt+Backspace für sofortiges Beenden von SII
Load-Screens für kurze Ladesequenzen (-> 'info.txt' im Mod-Ordner ('mods\Stranded II'))
mehrere Farben für Schriftart 'tiny'
sämtliche Menügrafiken (Buttons usw.) mit Bumpmap-Effekt versehen (wirken nun plastischer)
zusätzlicher Partikeltyp: Glas (26)
Editorview-Tool für die kleine 3D-Anzeige im Editor
mehr als 1/3 zusätzlicher Quellcode
Multiplayer-Modus entgültig verworfen
zusätzlicher State: "invisibility"/26 (Unsichtbarkeit)
war eigentlich viel zu viel Arbeit für den schnöden Mist...
FILES 'buildings.exe', 'combis.exe', 'items.exe', 'objects.exe', 'units.exe', 'freeids.exe', 'textgen.exe' im Stranded II'-Ordner (-> info.txt)
Diese Tools stammen von Quester, glaube ich? Jedenfalls ganz nützlich... Ich wäre aber dafür sämtliche Tools in den Ordner 'Stranded II\tools\' zu schieben. Außerdem wäre es vorteilhaft, soviele Tools wie möglich in eine Anwendung zu schmeißen, da BB3D den Quellcode ja doch zu recht großen Executables aufbläht...
Die Sichtweite wurde teilweise erhöht:
0.5 -> 0.5 (sehr klein)
1.0 -> 1.0 (klein)
1.5 -> 2.0 (mittel)
2.5 -> 4.0 (weit)
4.0 -> 8.0 (sehr weit)
Bei Stufe 'sehr weit' bspw. also doppelte Sichtweite.
Shortcuts im Hauptmenü
Strg+Alt+Backspace für sofortiges Beenden von SII
Load-Screens für kurze Ladesequenzen (-> 'info.txt' im Mod-Ordner ('mods\Stranded II'))
mehrere Farben für Schriftart 'tiny'
sämtliche Menügrafiken (Buttons usw.) mit Bumpmap-Effekt versehen (wirken nun plastischer)
zusätzlicher Partikeltyp: Glas (26)
Editorview-Tool für die kleine 3D-Anzeige im Editor
mehr als 1/3 zusätzlicher Quellcode
Multiplayer-Modus entgültig verworfen
zusätzlicher State: "invisibility"/26 (Unsichtbarkeit)
war eigentlich viel zu viel Arbeit für den schnöden Mist...
FILES 'buildings.exe', 'combis.exe', 'items.exe', 'objects.exe', 'units.exe', 'freeids.exe', 'textgen.exe' im Stranded II'-Ordner (-> info.txt)
Diese Tools stammen von Quester, glaube ich? Jedenfalls ganz nützlich... Ich wäre aber dafür sämtliche Tools in den Ordner 'Stranded II\tools\' zu schieben. Außerdem wäre es vorteilhaft, soviele Tools wie möglich in eine Anwendung zu schmeißen, da BB3D den Quellcode ja doch zu recht großen Executables aufbläht...
Die Sichtweite wurde teilweise erhöht:
0.5 -> 0.5 (sehr klein)
1.0 -> 1.0 (klein)
1.5 -> 2.0 (mittel)
2.5 -> 4.0 (weit)
4.0 -> 8.0 (sehr weit)
Bei Stufe 'sehr weit' bspw. also doppelte Sichtweite.
Definitionen
More
### game.inf (Spiel)
### objects.inf (Objekte)
### units.inf (Einheiten)
### items.inf (Gegenstände)
### infos.inf (Infos)
### combinations.inf (Kombinationen)
### lightcycle.inf (Tageslichtkreislauf)
More
healthmax=Wert
max. Wert für sämtliche Spielerwerte
healthsystem=Wert akzeptiert nun Werte größer 4.
exhaust_move, exhaust_swim usw. akzeptieren nun zusätzliche Parameter entsprechend der Angabe bei healthsystem
exhaust_idle=Wert2,Wert3,Wert4,... für Verbrauch der Spielerwerte bei Inaktivität (Stehen, Reiten, Fahren)
max. Wert für sämtliche Spielerwerte
healthsystem=Wert akzeptiert nun Werte größer 4.
exhaust_move, exhaust_swim usw. akzeptieren nun zusätzliche Parameter entsprechend der Angabe bei healthsystem
exhaust_idle=Wert2,Wert3,Wert4,... für Verbrauch der Spielerwerte bei Inaktivität (Stehen, Reiten, Fahren)
### objects.inf (Objekte)
More
state=random/randomtriangle[,size] bzw. state=x,y,z[,size]
Bei randomtriangle werden State-Effekte (bspw. Flammen) zufällig an den Triangles (Flächen) statt den Vertices (Eckpunkten) eines Objektes erzeugt. Außerdem ist die zusätzliche Angabe eines Parameters für die Größe des State-Sprites möglich.
blend=Wert
Blendmodus: 1 - Alpha (default), 2 - Multiply, 3 - Add
order=Wert
Standardgemäß wird order auf den Wert von id gesetzt. Bisher wurden Objekte im Editor ihrer ID nach aufsteigend angezeigt, lassen sich nun aber auch gemäß ihrem zugewiesenem order-Definitionswert sortieren. Somit lässt sich die Reihenfolge der im Editor angezeigten Objekte variieren OHNE deren ID zu ändern.
tiles=dx,dy,dz
Abstände zwischen den Gitterpunkten des (imaginären) Gitters an welchem das entsprechende Objekt ausgerichtet werden kann (im Editor bei gedrückter Strg-Taste).
tilegroup=Wert
Für gewöhnlich dürfen sich Objekte beim Platzieren im Baumodus nicht überschneiden. Eine Ausnahme bilden Objekte, welcher der selben 'tilegroup' angehören.
destroy=Wert
Wird für 'Wert' 1 angegeben, so fallen Objekte nach ihrer Zerstörung nicht mehr 'durch den Boden' sondern werden augenblicklich vernichtet.
editorview=dx,dy,dz,size
Hiermit lassen sich Position/Skalierung der Objekte bei der kleinen 3D-Anzeige im Editor ändern (siehe auch Editorview-Tool im tools-Ordner).
scale=x,y,z Skalierung des Objektes in x-,y- bzw. z-Richtung. Wird nur ein einziger Parameter angegeben, wird das Objekt in allen Richtungen gleichermaßen gestreckt.
Bei randomtriangle werden State-Effekte (bspw. Flammen) zufällig an den Triangles (Flächen) statt den Vertices (Eckpunkten) eines Objektes erzeugt. Außerdem ist die zusätzliche Angabe eines Parameters für die Größe des State-Sprites möglich.
blend=Wert
Blendmodus: 1 - Alpha (default), 2 - Multiply, 3 - Add
order=Wert
Standardgemäß wird order auf den Wert von id gesetzt. Bisher wurden Objekte im Editor ihrer ID nach aufsteigend angezeigt, lassen sich nun aber auch gemäß ihrem zugewiesenem order-Definitionswert sortieren. Somit lässt sich die Reihenfolge der im Editor angezeigten Objekte variieren OHNE deren ID zu ändern.
tiles=dx,dy,dz
Abstände zwischen den Gitterpunkten des (imaginären) Gitters an welchem das entsprechende Objekt ausgerichtet werden kann (im Editor bei gedrückter Strg-Taste).
tilegroup=Wert
Für gewöhnlich dürfen sich Objekte beim Platzieren im Baumodus nicht überschneiden. Eine Ausnahme bilden Objekte, welcher der selben 'tilegroup' angehören.
destroy=Wert
Wird für 'Wert' 1 angegeben, so fallen Objekte nach ihrer Zerstörung nicht mehr 'durch den Boden' sondern werden augenblicklich vernichtet.
editorview=dx,dy,dz,size
Hiermit lassen sich Position/Skalierung der Objekte bei der kleinen 3D-Anzeige im Editor ändern (siehe auch Editorview-Tool im tools-Ordner).
scale=x,y,z Skalierung des Objektes in x-,y- bzw. z-Richtung. Wird nur ein einziger Parameter angegeben, wird das Objekt in allen Richtungen gleichermaßen gestreckt.
### units.inf (Einheiten)
More
ani_idle4/ani_idle5=...
Wie ani_idle1, ani_idle2, ani_idle3
ani_run=...
Animation für Sprinten. Wird keine Animation angegeben, so wird beim Sprinten ani_move mit 2.5-facher Geschwindigkeit abgespielt. Für gewöhnlich sprinten Units bspw. beim Jagen oder auf der Flucht.
ani_swim/ani_fly=... (noch nicht unterstützt, aber geplant...)
ani_shoot1/ani_shoot2=...
Animationen fürs Schießen. Standardgemäß wird ani_shoot1 vor, und ani_shoot2 nach Abschuss des Projektils abgespielt.
speed=move[,run]
Zusätzlich zur normalen Geschwindigkeit kann ein Wert für die Geschwindigkeit beim Sprinten angegeben werden. Wird kein Wert angegeben, so wird das 2.5-fache der normalen Geschwindigkeit verwendet.
speed_ride=max,acc,fric
max - maximale Geschwindigkeit beim Reiten/Fahren bezogen auf die Translation (geradlinige Bewegung)
acc - Beschleunigung
fric - Reibung
Standardwerte sind 2,0.25,0.25 (falls Definition nicht angegeben).
turnspeed_ride=max,acc,fric
Wie speed_ride, jedoch bezogen auf die Rotation (drehen der Unit)
Standardwerte sind 2,0.25,0.25 (falls Definition nicht angegeben).
attackrange=melee[,distance]
Zusätzlich zur minimalen Distanz für den Nahangriff kann ein Wert für die minimale Distanz für den Fernangriff angegeben werden.
Standardwerte sind 50 bzw. 0 (falls Definition nicht angegeben), und in diesem Fall würde die Unit [/i]nie[/i] zum Angriff mit Distanzwaffen übergehen.
huntrange=melee[,distance]
Neu ist die Möglichkeit der Angabe für die minimale Distanz, bei der eine Unit anfängt den Spieler (bzw. eine andere Unit :)) zu jagen.
Standardwerte sind 200 bzw. 0 (falls Definition nicht angegeben), und in diesem Fall würde die Unit nie zur Jagd mit Distanzwaffen übergehen.
fleerange=Wert
Auch die minimale Distanz bei der Units vor ihren Feinden (vgl. Definitionswert 'hunter') fliehen lässt sich nun angeben (default: 200).
rideoffset=dx,dy,dz
Neben der relativen Position für die Höhe können zusätzlich die relative Position in x- bzw. z-Richtung angegeben werden (sinnvoll für Schubkarre, Katapult etc.).
wobble=factor
Wackeln, Schwanken einer fahr-/reitbaren Einheit (für behaviour=watercraft/helicopter). Default: 1
tilt=angle
Max. Neigungswinkel für fliegendes Zeugs (behaviour=aircraft/helicopter). Default: 0
projectile=ammoid,x,y,z,offset[,weapon-typ,speed,damage,drag]
Eigenschaften des Projektils, welches von fernkämpfenden Einheiten abgeschossen wird:
ammoid - Typ-ID des Projektils
x,y,z - rel. Abschusskoordinaten
offset - Entfernung ab der ein Kollisionscheck stattfindet (vorher: Anfangsverschiebung des Projektils vom Startpunkt aus).
weaponid - Typ-ID der Waffe. Projektile haben selbst Werte für speed,damage,drag. Wird für weaponid 0 angegeben, so werden diese verwendet. Wird die Typ-ID einer Waffe angegeben, werden diese Werte mit denen der Waffe multipliziert. Wird -1 angegeben, so können über speed,damage,drag eigene Werte angegeben werden.
Bei Fernkampfeinheiten läuft beim Angriff mit Fernkampfwaffen etwa folgende Sequenz ab:
1. Event ai_shoot1 (bei Angriff auf Spieler)
2. Animation ani_shoot1
3. Event ai_shoot2 (bei Angriff auf Spieler)
4. [intern: Sound und Projektilabschuss]
5. Animation ani_shoot2
Skriptbefehl skipevent bei ai_shoot2 um internen Abschuss des Projektils und Abschusssound zu unterdrücken (Files mit Suffix shoot2 im sfx-Ordner)
hunter=typid1,typid2,typid3,...
Eine Liste von Typ-IDs derjenigen Units, vor welchem die Unit Angst hat und flieht.
prey=typid1,typid2,typid3,...
Eine Liste von Typ-IDs derjenigen Units, welche die Unit als Beute betrachtet und jagt/angreift.
Das hunter/prey-Verhalten ist zwar recht effizient implementiert, sollte aber dennoch nicht zu stark ausgereizt werden, um einen flüssigen Spielablauf zu gewährleisten.
[/i]alignment=terrain[/i]
bewirkt, dass Units am Terrain ausgerichtet werden
pickmode/pick=0
deaktiviert die Auswählbarkeit von Units
perception_near=Dateiname
Wahrscheinlichkeitsverteilung für Wahrnehmung mit Ohren, Nase etc.
perception_far=Dateiname
Wahrscheinlichkeitsverteilung für Wahrnehmung mit Augen
nervousness=Wert
Wert zwischen 0 und 100 (default 50) gibt an wie 'nervös' eine Unit ist, d.h. ob sie eher viel herumläuft (hohe Werte) oder eher dumm in der Landschaft herumsteht (niedrige Werte).
accuracy=pitch,yaw
Genauigkeit fernkämpfender Units (momentan nur Units mit Projektilwaffen). Units mit accuracy=0,0 zielen exakt, über pitch und yaw können Werte für die max. Abweichung vom Zielwinkel angegeben werden (default: 0.5,1).
order=Wert
siehe Beschreibung bei objects.inf
editorview=dx,dy,dz,size
siehe Beschreibung bei objects.inf
scale=x,y,z
siehe Beschreibung bei objects.inf
Wie ani_idle1, ani_idle2, ani_idle3
ani_run=...
Animation für Sprinten. Wird keine Animation angegeben, so wird beim Sprinten ani_move mit 2.5-facher Geschwindigkeit abgespielt. Für gewöhnlich sprinten Units bspw. beim Jagen oder auf der Flucht.
ani_swim/ani_fly=... (noch nicht unterstützt, aber geplant...)
ani_shoot1/ani_shoot2=...
Animationen fürs Schießen. Standardgemäß wird ani_shoot1 vor, und ani_shoot2 nach Abschuss des Projektils abgespielt.
speed=move[,run]
Zusätzlich zur normalen Geschwindigkeit kann ein Wert für die Geschwindigkeit beim Sprinten angegeben werden. Wird kein Wert angegeben, so wird das 2.5-fache der normalen Geschwindigkeit verwendet.
speed_ride=max,acc,fric
max - maximale Geschwindigkeit beim Reiten/Fahren bezogen auf die Translation (geradlinige Bewegung)
acc - Beschleunigung
fric - Reibung
Standardwerte sind 2,0.25,0.25 (falls Definition nicht angegeben).
turnspeed_ride=max,acc,fric
Wie speed_ride, jedoch bezogen auf die Rotation (drehen der Unit)
Standardwerte sind 2,0.25,0.25 (falls Definition nicht angegeben).
attackrange=melee[,distance]
Zusätzlich zur minimalen Distanz für den Nahangriff kann ein Wert für die minimale Distanz für den Fernangriff angegeben werden.
Standardwerte sind 50 bzw. 0 (falls Definition nicht angegeben), und in diesem Fall würde die Unit [/i]nie[/i] zum Angriff mit Distanzwaffen übergehen.
huntrange=melee[,distance]
Neu ist die Möglichkeit der Angabe für die minimale Distanz, bei der eine Unit anfängt den Spieler (bzw. eine andere Unit :)) zu jagen.
Standardwerte sind 200 bzw. 0 (falls Definition nicht angegeben), und in diesem Fall würde die Unit nie zur Jagd mit Distanzwaffen übergehen.
fleerange=Wert
Auch die minimale Distanz bei der Units vor ihren Feinden (vgl. Definitionswert 'hunter') fliehen lässt sich nun angeben (default: 200).
rideoffset=dx,dy,dz
Neben der relativen Position für die Höhe können zusätzlich die relative Position in x- bzw. z-Richtung angegeben werden (sinnvoll für Schubkarre, Katapult etc.).
wobble=factor
Wackeln, Schwanken einer fahr-/reitbaren Einheit (für behaviour=watercraft/helicopter). Default: 1
tilt=angle
Max. Neigungswinkel für fliegendes Zeugs (behaviour=aircraft/helicopter). Default: 0
projectile=ammoid,x,y,z,offset[,weapon-typ,speed,damage,drag]
Eigenschaften des Projektils, welches von fernkämpfenden Einheiten abgeschossen wird:
ammoid - Typ-ID des Projektils
x,y,z - rel. Abschusskoordinaten
offset - Entfernung ab der ein Kollisionscheck stattfindet (vorher: Anfangsverschiebung des Projektils vom Startpunkt aus).
weaponid - Typ-ID der Waffe. Projektile haben selbst Werte für speed,damage,drag. Wird für weaponid 0 angegeben, so werden diese verwendet. Wird die Typ-ID einer Waffe angegeben, werden diese Werte mit denen der Waffe multipliziert. Wird -1 angegeben, so können über speed,damage,drag eigene Werte angegeben werden.
Bei Fernkampfeinheiten läuft beim Angriff mit Fernkampfwaffen etwa folgende Sequenz ab:
1. Event ai_shoot1 (bei Angriff auf Spieler)
2. Animation ani_shoot1
3. Event ai_shoot2 (bei Angriff auf Spieler)
4. [intern: Sound und Projektilabschuss]
5. Animation ani_shoot2
Skriptbefehl skipevent bei ai_shoot2 um internen Abschuss des Projektils und Abschusssound zu unterdrücken (Files mit Suffix shoot2 im sfx-Ordner)
hunter=typid1,typid2,typid3,...
Eine Liste von Typ-IDs derjenigen Units, vor welchem die Unit Angst hat und flieht.
prey=typid1,typid2,typid3,...
Eine Liste von Typ-IDs derjenigen Units, welche die Unit als Beute betrachtet und jagt/angreift.
Das hunter/prey-Verhalten ist zwar recht effizient implementiert, sollte aber dennoch nicht zu stark ausgereizt werden, um einen flüssigen Spielablauf zu gewährleisten.
[/i]alignment=terrain[/i]
bewirkt, dass Units am Terrain ausgerichtet werden
pickmode/pick=0
deaktiviert die Auswählbarkeit von Units
perception_near=Dateiname
Wahrscheinlichkeitsverteilung für Wahrnehmung mit Ohren, Nase etc.
perception_far=Dateiname
Wahrscheinlichkeitsverteilung für Wahrnehmung mit Augen
nervousness=Wert
Wert zwischen 0 und 100 (default 50) gibt an wie 'nervös' eine Unit ist, d.h. ob sie eher viel herumläuft (hohe Werte) oder eher dumm in der Landschaft herumsteht (niedrige Werte).
accuracy=pitch,yaw
Genauigkeit fernkämpfender Units (momentan nur Units mit Projektilwaffen). Units mit accuracy=0,0 zielen exakt, über pitch und yaw können Werte für die max. Abweichung vom Zielwinkel angegeben werden (default: 0.5,1).
order=Wert
siehe Beschreibung bei objects.inf
editorview=dx,dy,dz,size
siehe Beschreibung bei objects.inf
scale=x,y,z
siehe Beschreibung bei objects.inf
### items.inf (Gegenstände)
More
density=Wert
Dichte eines Items. Items mit einer Dichte kleiner 0.97 schwimmen an der Wasseroberfläche und verleiten dem Spieler mehr Auftrieb im Wasser. Umgekehrt sinken Items mit größerer Dichte und lassen den Spieler im Wasser schneller sinken.
attackrange=Wert
Angriffsreichweite für Nahkampfwaffen welche zur Angriffsreichweite des Spielers hinzuaddiert wird.
ptranslate=Wert
Für Wurfgeschosse (Speer, Pfeil...). Gibt an, um wieviel das Modell des Geschosses beim Aufprall verschoben wird (im Idealfall bspw. so, dass genau die Spitze des Speeres in Objekten stecken bleibt).
cradius=Wert
Radius der Kollisionssphäre von Projektilen. Kanonenkugeln haben bspw. einen großen Radius, bei Pfeilen, Speeren sollte der Wert möglichst klein gewählt werden (und etwa dem Durchmesser der Projektilspitze entsprechen).
rmode=Wert
Auswählbare Rotationsachse für Projektile:
0 - z-Achse/roll (Speer, Pfeil...)
1 - y-Achse/yaw (Frisbee, Diskus...)
2 - x-Achse/pitch (Wurfaxt,...)
Standard ist 0.
order=Wert
siehe Beschreibung bei objects.inf
editorview=dx,dy,dz,size
siehe Beschreibung bei objects.inf
scale=x,y,z
siehe Beschreibung bei objects.inf
Dichte eines Items. Items mit einer Dichte kleiner 0.97 schwimmen an der Wasseroberfläche und verleiten dem Spieler mehr Auftrieb im Wasser. Umgekehrt sinken Items mit größerer Dichte und lassen den Spieler im Wasser schneller sinken.
attackrange=Wert
Angriffsreichweite für Nahkampfwaffen welche zur Angriffsreichweite des Spielers hinzuaddiert wird.
ptranslate=Wert
Für Wurfgeschosse (Speer, Pfeil...). Gibt an, um wieviel das Modell des Geschosses beim Aufprall verschoben wird (im Idealfall bspw. so, dass genau die Spitze des Speeres in Objekten stecken bleibt).
cradius=Wert
Radius der Kollisionssphäre von Projektilen. Kanonenkugeln haben bspw. einen großen Radius, bei Pfeilen, Speeren sollte der Wert möglichst klein gewählt werden (und etwa dem Durchmesser der Projektilspitze entsprechen).
rmode=Wert
Auswählbare Rotationsachse für Projektile:
0 - z-Achse/roll (Speer, Pfeil...)
1 - y-Achse/yaw (Frisbee, Diskus...)
2 - x-Achse/pitch (Wurfaxt,...)
Standard ist 0.
order=Wert
siehe Beschreibung bei objects.inf
editorview=dx,dy,dz,size
siehe Beschreibung bei objects.inf
scale=x,y,z
siehe Beschreibung bei objects.inf
### infos.inf (Infos)
### combinations.inf (Kombinationen)
More
suc=Wert, msuc=Wert
msuc bezeichnet den max. Erfolg, suc den aktuellen Erfolg. Die Erfolgswahrscheinlichkeit einer Kombi berechnet sich nach suc/msuc.
dur=Wert
Dauer einer Kombi
txt=String
msuc bezeichnet den max. Erfolg, suc den aktuellen Erfolg. Die Erfolgswahrscheinlichkeit einer Kombi berechnet sich nach suc/msuc.
dur=Wert
Dauer einer Kombi
txt=String
### lightcycle.inf (Tageslichtkreislauf)
More
Der Tageslichtkreislauf wird künftig von Jahreszeit und Breitengrad bestimmt (-> Editor). Die Definitionsdatei 'lightcycle.inf' ist somit obsolet.
Skriptbefehle
More
eat,drink,consume
akzeptieren nun zusätzliche Parameter entsprechend dem Definitionswert von healthsystem in der game.inf
changeday
löst intern sämtliche Tageswechselroutinen aus (Tierkadaver werden entfernt, Früchte reifen etc.), löst global das Event "changeday" aus und erhöht den Tageszähler um 1
load-/savemap "Map"[,Skills][,Items][,Variablen][,Tagebuch][,States][,Buildlocks][,Playerstats][,Times]
akzeptieren zwei zusätzliche Parameter für Spielerwerte und Tages-/Uhrzeit
ride [speed_tr,acc_tr,fric_tr,speed_ro,acc_ro,fric_ro]
Akzeptiert optionale Parameter für Geschwindigkeit, Beschleunigung, Reibung (tr - Translation, ro - Rotation).
Standardgemäß werden die Werte aus der Definition verwendet.
freeunitpath UnitID
für UnitID kann nun auch "self" angegeben werden
grasscolor mode[,r,g,b]
Bei mode=0 werden die Farben an die Colormap des Terrains angepasst. Bei mode=1 können eigene Werte angegeben werden.
getplayervalue Wert
entsprechend dem Definitionswert von healthsystem in der game.inf werden auch Werte größer 4 akzeptiert
add "Text"[,replace]
Wird bei replace 0 angegeben (default 1), so werden in einem Text vorkommende Variablen nicht durch ihren Inhalt ersetzt.
Bspw. führte der Code
bisher zu einer Fehlermeldung, da $option=0; nicht als Zuweisung, sondern als logischer Ausdruck interpretiert wurde.
map [mode]
Wird bei mode der Wert 1 (default 0) angegeben, so wird die komplette Karte angezeigt, andernfalls nur die vom Spieler bereits aufgedeckten Bereiche der Karte.
msg "Nachricht" [,Schrift] [,Anzeigedauer] [, Marker]
Nachrichten werden nun in der Nachrichtenkonsole (links unten, aufklappbar mit [TAB]) und in kleiner Schriftart angezeigt. Für Schrift sind nur noch die kleinen Schriftarten zulässig:
5 - normal
7 - yellow
8 - dark
9 - red
10 - green
Es können aber auch die üblichen Werte für die großen Schriftarten (0,1,2,3,4) angegeben werden, welche intern einfach "konvertiert" werden.
Wird bei Marker der Wert 0 (default 1) angegeben, so kann das kleine grüne, runde Symbol vor dem Text unterdrückt werden.
image ID, "Bild", X, Y [,Maskiert]
Für Maskiert kann der Wert 2 für Bilder im png-Format mit halbtransparenten Bereichen angegeben werden.
lockcombi "Kombinations-ID"[,hide]
Wird für hide der Wert 1 (default 0) angegeben, so werden gesperrte Kombis nicht angezeigt.
lockcombis [hide]
siehe lockcombi
thunder [delay] [,alpha] [,r,g,b]
Über die optionalen Parameter delay und alpha können nun die Eigenschaften des Donners mit 'Blitz' variiert werden. Standardgemäß wird für delay zufällig ein Wert zwischen 0.1 und 0.3 gewählt und für alpha zufällig ein Wert zwischen 0 und 1 (wie in SIIv1001). Über r,g,b können außerdem noch Farbwerte zugeordnet werden.
play3d "Datei",x,y,z[,volume]
Immitiert einen 3D-Sound, also insbesondere für entferungs-/richtungsabhängige Sounds gedacht. Über x,y,z müssen die Koordinaten angegeben werden, an denen sich die Geräuschquelle befindet. Die Lautstärke kann ggf. auch noch über volume reguliert werden (Werte größer 0, default 1).
impact_x/impact_y/impact_z Wert
Akzeptieren nun einen Parameter:
0 - Koordinaten der Kollision (default)
1 - Koordinaten des Projektils bei Kollision
2 - Winkel (pitch,yaw,roll) des Projektils bei Kollision
Die Rückgabewerte sind teilweise abhängig vom Definitionswert rmode für Projektile. Zum besseren Verständnis und für beispielhafte Anwendung vergleiche man die vorliegenden Beispiele (siehe items_weapons.inf).
impact_class/impact_id Wert
Akzeptieren nun ebenfalls einen Parameter:
0 - Klasse/ID des getroffenen Objektes
1 - Klasse/ID des Objektes, von dem das Projektil abgeschossen wurde
Bemerkung: Bei Projektilen die mit 'projectile' erzeugt wurden, ist die Klasse/ID der Quelle stets 0.
impact_material
Gibt das Material des getroffenen Objektes zurück:
0 - none
1 - wood
2 - stone
3 - dirt
4 - dust
5 - leaf
6 - metal
7 - flesh
8 - water
9 - lava
10 - fruit
11 - glass
reach_id
Zur Nutzung bei Info-Objekten im Zusammenhang mit unitpath. Gibt die ID der Unit zurück, welche das jeweilige Info-Objekt gerade erreicht hat.
zoom Faktor
Bewirkt einen Zoommodus für die Spielersicht. Zulässige Werte zwischen 0.1 und 32.
Man beachte, dass entsprechend dem Zoomfaktor auch gleichzeitig die Autofade-Grenze für die Szenerie erhöht wird, d.h. im Endeffekt mehr Objekte gerendert werden müssen usw. Ein hoher Zoomfaktor kann sich also unter Umständen negativ auf die Performance auswirken.
fadeclouds mode,file[,time]
Erzeugt einen Überblendeffekt von der aktuellen Wolkengrafik in die unter file angegebenen Wolkengrafik innerhalb der unter time angegebenen Zeit (default 30000). file bezieht sich dabei auf Dateien im skies-Ordner, für mode sind die Werte 0 und 1 zulässig, welche der jeweiligen Wolkenebene entsprechen.
Wird für time der Wert 0 angegeben, wird die Wolkengrafik sofort geändert.
Der Befehl gibt bei "Erfolg" den Wert 1 zurück, ansonsten 0.
shooting_star time
Erzeugt alle time Millisekunden eine (kleine) Sternschnuppe am Firmament.
grassheight height
Ändert die Höhe des Grases (default 1). height=0 um Gras zu deaktivieren.
reload
Simuliert das Drücken der Nachlade-Taste.
hide_water [mode]
Wasser anzeigen (0) oder verstecken (1, default).
Platschgeräusche im Wasser, Wasserphysik usw. bleiben allerdings bestehen!
hide_waves [mode]
Wellen anzeigen (0) oder vestecken (1, default).
hide_terrain [mode]
Terrain anzeigen (0) oder vestecken (1, default).
hide_ground [mode]
Terraingrund anzeigen (0) oder vestecken (1, default).
hide_crosshair [mode]
Fadenkreuz anzeigen (0) oder vestecken (1, default).
sqrt Wert
Berechnet die Wurzel einer Zahl.
ln Wert
Berechnet den natürlichen Logarithmus einer Zahl.
lock_debugmenu mode
Sperrt (1, default) bzw. entsperrt (0) das Debugmenü (F10).
combivalue combiid,definition[,value]
Ändert Werte für Kombis bzw. gibt diese zurück. Für combiid kann "self" angegeben werden, falls combivalue in einem Skript in combinations*.inf ausgeführt wird. Für definition kann "suc", "msuc" oder "dur" angegeben werden, entsprechend den Definitionen in combinations*.inf. Für value kann ein Wert angegeben werden, auf den die entsprechende Definition gesetzt werden soll. Wird der Parameter value weggelassen, so wird der aktuelle Definitionswert der angegebenen Definition zurückgegeben.
harvest_damage Wert
Ändert den "Ernte-Schaden" des Spielers auf den angegebenen Wert. Standardgemäß beträgt dieser 3 und wird zum Schaden einer Waffe/eines Werkzeugs hinzuaddiert, wenn der Spieler ein Objekt oder Gegenstand angreift.
camouflage Wert
Ändert den (zusätzlichen) Tarnungswert des Spielers (Werte zwischen 0 und 100). Die gesamte Tarnung des Spielers wird wie folgt berechnet:
Tarnung (Gras) - abhängig von Grashöhe und Spielerhaltung (geduckt etc.)
Tarnung (Helligkeit) - abhängig von Tageszeit
Tarnung (Spieler) - zusätzliche Tarnung per Skriptbefehl
Sämtliche Tarnwerte betragen max. 50% der Gesamttarnung. Bei hohem Gras und in der Nacht kann der Spieler also schon zu 100% getarnt sein, unabhängig von der zusätzlichen Spielertarnung.
Der zusätzliche Tarnungswert sinkt während des Spielverlaufs kontinuierlich und im Wasser etwas schneller als an Land. Den Tarnungswert des Spielers kann man sich also am besten als aufgetragene Tarnfarbe vorstellen, welche mit der Zeit verblasst.
uncovermap x,z[,range]
Deckt einen Bereich auf der Landkarte mit dem Radius range (default 500) bei den Koordinaten x,z auf.
damage class,id,damage[,causer]
Hier kann nun optional die ID der Unit angegeben werden, welche den entsprechenden Schaden verursacht hat.
brightness Modus,Wert
Helligkeit des Sonnenlichts ('DirectionalLight'...), welches seitlich auf Objekte scheint. Modus 0 für Standardhelligkeit (abhängig von Sonnenstand/Tageszeit), Modus 1 um eigene Werte anzugeben (default 0.5). Für Innenlevel (bspw. Häuser) empfielt sich ein Wert von 0, um Helligkeitsunterschiede an Kanten von ebenen Flächen (bspw. Bodenplatten) zu vermeiden.
healthbar unitid,[mode[,height]]
Zeigt einen Lebensbalken über der Unit mit ID unitid an. Mit mode=1 (default) wird der Lebensbalken aktiviert, bei mode=0 deaktiviert. Über height kann zusätzlich noch die Höhe des Lebensbalkens angegeben werden (default: 2*colyr+5).
ai_hunterbytype unittyp1,unittyp2,mode
Fügt allen Units vom Typ unittyp1 eine Unit vom Typ unittyp1 zur Liste der Jäger hinzu (mode 1, default), oder entfernt sie (mode 0). Bspw. sorgt der Code
dafür, dass Löwen (ID 9) vor roten Schmetterlingen (ID 6) fliehen.
ai_preybytype
Fügt allen Units vom Typ unittyp1 eine Unit vom Typ unittyp1 zur Liste der Beute hinzu (mode 1, default), oder entfernt sie (mode 0). Bspw. sorgt der Code
dafür, dass Löwen (ID 9) rote Schmetterlingen (ID 6) jagen und ggf. angreifen.
Man beachte, dass für die entsprechende Unit eine Angriffsanimation definiert sein muss.
ai_hunter unitid,unittyp,mode
Fügt einer einzelnen Unit der ID unitid eine Unit vom Typ unittyp zur Liste der Jäger hinzu (mode 1, default), oder entfernt sie (mode 0). Bspw. sorgt der Code
ai_prey
Fügt einer einzelnen Unit der ID unitid eine Unit vom Typ unittyp zur Liste der Beute hinzu (mode 1, default), oder entfernt sie (mode 0). Bspw. sorgt der Code
statetimer class,id,state,timer
States können nun mit einem Timer belegt werden. Angabe der Parameter analog zu den anderen state-Skriptbefehlen, timer in ms (-1, default, für ewigen State).
camrange range
Max. Entfernung bis zu der Objekte gerendert werden.
Minimum ist 3000 - der Wert, welcher bei SII v1.0.0.1 voreingestellt war.
Standardgemäß ist zur Zeit (noch) eine Reichweite von 75000 eingestellt, was unter Umständen zu Performanceeinbußen (im Editor, falls viele Objekte gesetzt) führen kann. In diesem Fall empfiehlt sich die Reichweite herunterzuschrauben (1,5-fache der max. Nebelentfernung ist sinnvoll).
scale x,y,z[,class,id]
Neu ist hier nur, dass die durch scale vorgenommene Größenänderung nun permanent ist, d.h. nicht bei jedem Spielstart (load-Event) neu ausgeführt werden muss.
noise value[,x,y,z[,delay]]
Macht Krach und beeinflusst so die Wahrscheinlichkeit entdeckt zu werden. Für value sind Werte zwischen 0 und 10 zulässig. Werden keine Koordinaten angegeben, wird der Lärm beim Spieler ausgelöst. Über delay kann zusätzlich die Dauer des Geräuschsignals angegeben werden.
set_nv energy,hunger,thirst,tiredness,...
Legt einen "Nährwertfaktor" für sämtliche Spielerwerte fest. Bei den Befehlen eat,drink,consume,jade werden sämtliche Werte mit dem eingstelltem Faktor multipliziert.
loadcombifile "Dateiname"
Liest Definitionen für Kombis aus einer Datei.
akzeptieren nun zusätzliche Parameter entsprechend dem Definitionswert von healthsystem in der game.inf
changeday
löst intern sämtliche Tageswechselroutinen aus (Tierkadaver werden entfernt, Früchte reifen etc.), löst global das Event "changeday" aus und erhöht den Tageszähler um 1
load-/savemap "Map"[,Skills][,Items][,Variablen][,Tagebuch][,States][,Buildlocks][,Playerstats][,Times]
akzeptieren zwei zusätzliche Parameter für Spielerwerte und Tages-/Uhrzeit
ride [speed_tr,acc_tr,fric_tr,speed_ro,acc_ro,fric_ro]
Akzeptiert optionale Parameter für Geschwindigkeit, Beschleunigung, Reibung (tr - Translation, ro - Rotation).
Standardgemäß werden die Werte aus der Definition verwendet.
freeunitpath UnitID
für UnitID kann nun auch "self" angegeben werden
grasscolor mode[,r,g,b]
Bei mode=0 werden die Farben an die Colormap des Terrains angepasst. Bei mode=1 können eigene Werte angegeben werden.
getplayervalue Wert
entsprechend dem Definitionswert von healthsystem in der game.inf werden auch Werte größer 4 akzeptiert
add "Text"[,replace]
Wird bei replace 0 angegeben (default 1), so werden in einem Text vorkommende Variablen nicht durch ihren Inhalt ersetzt.
Bspw. führte der Code
1
2
3
4
5
6
7
2
3
4
5
6
7
clear; 	add "Choose option:"; 	msgbox "Optionmenu"; 	add "$option=0; closemenu;"; 	button 0,"Choice 1",17; 	add "$option=1; closemenu;"; 	button 1,"Choice 2",17;
map [mode]
Wird bei mode der Wert 1 (default 0) angegeben, so wird die komplette Karte angezeigt, andernfalls nur die vom Spieler bereits aufgedeckten Bereiche der Karte.
msg "Nachricht" [,Schrift] [,Anzeigedauer] [, Marker]
Nachrichten werden nun in der Nachrichtenkonsole (links unten, aufklappbar mit [TAB]) und in kleiner Schriftart angezeigt. Für Schrift sind nur noch die kleinen Schriftarten zulässig:
5 - normal
7 - yellow
8 - dark
9 - red
10 - green
Es können aber auch die üblichen Werte für die großen Schriftarten (0,1,2,3,4) angegeben werden, welche intern einfach "konvertiert" werden.
Wird bei Marker der Wert 0 (default 1) angegeben, so kann das kleine grüne, runde Symbol vor dem Text unterdrückt werden.
image ID, "Bild", X, Y [,Maskiert]
Für Maskiert kann der Wert 2 für Bilder im png-Format mit halbtransparenten Bereichen angegeben werden.
lockcombi "Kombinations-ID"[,hide]
Wird für hide der Wert 1 (default 0) angegeben, so werden gesperrte Kombis nicht angezeigt.
lockcombis [hide]
siehe lockcombi
thunder [delay] [,alpha] [,r,g,b]
Über die optionalen Parameter delay und alpha können nun die Eigenschaften des Donners mit 'Blitz' variiert werden. Standardgemäß wird für delay zufällig ein Wert zwischen 0.1 und 0.3 gewählt und für alpha zufällig ein Wert zwischen 0 und 1 (wie in SIIv1001). Über r,g,b können außerdem noch Farbwerte zugeordnet werden.
play3d "Datei",x,y,z[,volume]
Immitiert einen 3D-Sound, also insbesondere für entferungs-/richtungsabhängige Sounds gedacht. Über x,y,z müssen die Koordinaten angegeben werden, an denen sich die Geräuschquelle befindet. Die Lautstärke kann ggf. auch noch über volume reguliert werden (Werte größer 0, default 1).
impact_x/impact_y/impact_z Wert
Akzeptieren nun einen Parameter:
0 - Koordinaten der Kollision (default)
1 - Koordinaten des Projektils bei Kollision
2 - Winkel (pitch,yaw,roll) des Projektils bei Kollision
Die Rückgabewerte sind teilweise abhängig vom Definitionswert rmode für Projektile. Zum besseren Verständnis und für beispielhafte Anwendung vergleiche man die vorliegenden Beispiele (siehe items_weapons.inf).
impact_class/impact_id Wert
Akzeptieren nun ebenfalls einen Parameter:
0 - Klasse/ID des getroffenen Objektes
1 - Klasse/ID des Objektes, von dem das Projektil abgeschossen wurde
Bemerkung: Bei Projektilen die mit 'projectile' erzeugt wurden, ist die Klasse/ID der Quelle stets 0.
impact_material
Gibt das Material des getroffenen Objektes zurück:
0 - none
1 - wood
2 - stone
3 - dirt
4 - dust
5 - leaf
6 - metal
7 - flesh
8 - water
9 - lava
10 - fruit
11 - glass
reach_id
Zur Nutzung bei Info-Objekten im Zusammenhang mit unitpath. Gibt die ID der Unit zurück, welche das jeweilige Info-Objekt gerade erreicht hat.
zoom Faktor
Bewirkt einen Zoommodus für die Spielersicht. Zulässige Werte zwischen 0.1 und 32.
Man beachte, dass entsprechend dem Zoomfaktor auch gleichzeitig die Autofade-Grenze für die Szenerie erhöht wird, d.h. im Endeffekt mehr Objekte gerendert werden müssen usw. Ein hoher Zoomfaktor kann sich also unter Umständen negativ auf die Performance auswirken.
fadeclouds mode,file[,time]
Erzeugt einen Überblendeffekt von der aktuellen Wolkengrafik in die unter file angegebenen Wolkengrafik innerhalb der unter time angegebenen Zeit (default 30000). file bezieht sich dabei auf Dateien im skies-Ordner, für mode sind die Werte 0 und 1 zulässig, welche der jeweiligen Wolkenebene entsprechen.
Wird für time der Wert 0 angegeben, wird die Wolkengrafik sofort geändert.
Der Befehl gibt bei "Erfolg" den Wert 1 zurück, ansonsten 0.
shooting_star time
Erzeugt alle time Millisekunden eine (kleine) Sternschnuppe am Firmament.
grassheight height
Ändert die Höhe des Grases (default 1). height=0 um Gras zu deaktivieren.
reload
Simuliert das Drücken der Nachlade-Taste.
hide_water [mode]
Wasser anzeigen (0) oder verstecken (1, default).
Platschgeräusche im Wasser, Wasserphysik usw. bleiben allerdings bestehen!
hide_waves [mode]
Wellen anzeigen (0) oder vestecken (1, default).
hide_terrain [mode]
Terrain anzeigen (0) oder vestecken (1, default).
hide_ground [mode]
Terraingrund anzeigen (0) oder vestecken (1, default).
hide_crosshair [mode]
Fadenkreuz anzeigen (0) oder vestecken (1, default).
sqrt Wert
Berechnet die Wurzel einer Zahl.
ln Wert
Berechnet den natürlichen Logarithmus einer Zahl.
lock_debugmenu mode
Sperrt (1, default) bzw. entsperrt (0) das Debugmenü (F10).
combivalue combiid,definition[,value]
Ändert Werte für Kombis bzw. gibt diese zurück. Für combiid kann "self" angegeben werden, falls combivalue in einem Skript in combinations*.inf ausgeführt wird. Für definition kann "suc", "msuc" oder "dur" angegeben werden, entsprechend den Definitionen in combinations*.inf. Für value kann ein Wert angegeben werden, auf den die entsprechende Definition gesetzt werden soll. Wird der Parameter value weggelassen, so wird der aktuelle Definitionswert der angegebenen Definition zurückgegeben.
harvest_damage Wert
Ändert den "Ernte-Schaden" des Spielers auf den angegebenen Wert. Standardgemäß beträgt dieser 3 und wird zum Schaden einer Waffe/eines Werkzeugs hinzuaddiert, wenn der Spieler ein Objekt oder Gegenstand angreift.
camouflage Wert
Ändert den (zusätzlichen) Tarnungswert des Spielers (Werte zwischen 0 und 100). Die gesamte Tarnung des Spielers wird wie folgt berechnet:
Tarnung (Gras) - abhängig von Grashöhe und Spielerhaltung (geduckt etc.)
Tarnung (Helligkeit) - abhängig von Tageszeit
Tarnung (Spieler) - zusätzliche Tarnung per Skriptbefehl
Sämtliche Tarnwerte betragen max. 50% der Gesamttarnung. Bei hohem Gras und in der Nacht kann der Spieler also schon zu 100% getarnt sein, unabhängig von der zusätzlichen Spielertarnung.
Der zusätzliche Tarnungswert sinkt während des Spielverlaufs kontinuierlich und im Wasser etwas schneller als an Land. Den Tarnungswert des Spielers kann man sich also am besten als aufgetragene Tarnfarbe vorstellen, welche mit der Zeit verblasst.
uncovermap x,z[,range]
Deckt einen Bereich auf der Landkarte mit dem Radius range (default 500) bei den Koordinaten x,z auf.
damage class,id,damage[,causer]
Hier kann nun optional die ID der Unit angegeben werden, welche den entsprechenden Schaden verursacht hat.
brightness Modus,Wert
Helligkeit des Sonnenlichts ('DirectionalLight'...), welches seitlich auf Objekte scheint. Modus 0 für Standardhelligkeit (abhängig von Sonnenstand/Tageszeit), Modus 1 um eigene Werte anzugeben (default 0.5). Für Innenlevel (bspw. Häuser) empfielt sich ein Wert von 0, um Helligkeitsunterschiede an Kanten von ebenen Flächen (bspw. Bodenplatten) zu vermeiden.
healthbar unitid,[mode[,height]]
Zeigt einen Lebensbalken über der Unit mit ID unitid an. Mit mode=1 (default) wird der Lebensbalken aktiviert, bei mode=0 deaktiviert. Über height kann zusätzlich noch die Höhe des Lebensbalkens angegeben werden (default: 2*colyr+5).
ai_hunterbytype unittyp1,unittyp2,mode
Fügt allen Units vom Typ unittyp1 eine Unit vom Typ unittyp1 zur Liste der Jäger hinzu (mode 1, default), oder entfernt sie (mode 0). Bspw. sorgt der Code
1
ai_hunter 9,6;
ai_preybytype
Fügt allen Units vom Typ unittyp1 eine Unit vom Typ unittyp1 zur Liste der Beute hinzu (mode 1, default), oder entfernt sie (mode 0). Bspw. sorgt der Code
1
ai_prey 9,6;
Man beachte, dass für die entsprechende Unit eine Angriffsanimation definiert sein muss.
ai_hunter unitid,unittyp,mode
Fügt einer einzelnen Unit der ID unitid eine Unit vom Typ unittyp zur Liste der Jäger hinzu (mode 1, default), oder entfernt sie (mode 0). Bspw. sorgt der Code
ai_prey
Fügt einer einzelnen Unit der ID unitid eine Unit vom Typ unittyp zur Liste der Beute hinzu (mode 1, default), oder entfernt sie (mode 0). Bspw. sorgt der Code
statetimer class,id,state,timer
States können nun mit einem Timer belegt werden. Angabe der Parameter analog zu den anderen state-Skriptbefehlen, timer in ms (-1, default, für ewigen State).
camrange range
Max. Entfernung bis zu der Objekte gerendert werden.
Minimum ist 3000 - der Wert, welcher bei SII v1.0.0.1 voreingestellt war.
Standardgemäß ist zur Zeit (noch) eine Reichweite von 75000 eingestellt, was unter Umständen zu Performanceeinbußen (im Editor, falls viele Objekte gesetzt) führen kann. In diesem Fall empfiehlt sich die Reichweite herunterzuschrauben (1,5-fache der max. Nebelentfernung ist sinnvoll).
scale x,y,z[,class,id]
Neu ist hier nur, dass die durch scale vorgenommene Größenänderung nun permanent ist, d.h. nicht bei jedem Spielstart (load-Event) neu ausgeführt werden muss.
noise value[,x,y,z[,delay]]
Macht Krach und beeinflusst so die Wahrscheinlichkeit entdeckt zu werden. Für value sind Werte zwischen 0 und 10 zulässig. Werden keine Koordinaten angegeben, wird der Lärm beim Spieler ausgelöst. Über delay kann zusätzlich die Dauer des Geräuschsignals angegeben werden.
set_nv energy,hunger,thirst,tiredness,...
Legt einen "Nährwertfaktor" für sämtliche Spielerwerte fest. Bei den Befehlen eat,drink,consume,jade werden sämtliche Werte mit dem eingstelltem Faktor multipliziert.
loadcombifile "Dateiname"
Liest Definitionen für Kombis aus einer Datei.
Konsolenbefehle
More
Konsolenbefehle akzeptieren nun teilweise einen Parameter. Evtl. Fehler werden dabei nicht abgefangen, soweit ich weiß, also seid da etwas vorsichtig.
states/liststates
(ohne Parameter)
Klar.
units/listunits
(ohne Parameter)
Auch klar.
debug_projectiles/dp
(ohne Parameter)
Debugmodus für Projektile. Hier dürfte eigentlich nur die Anzeige der Projektilbahn interessant sein.
debug_mouse
Koordinaten des Mauscursors.
debugcam
(keine Parameter)
"Camera-Debugmodus". Mit [Strg+Q] herauszoomen, mit [Q] hereinzoomen. (denkt erst gar nicht an ein SII in 3rd-Person-Modus! :p)
states/liststates
(ohne Parameter)
Klar.
units/listunits
(ohne Parameter)
Auch klar.
debug_projectiles/dp
(ohne Parameter)
Debugmodus für Projektile. Hier dürfte eigentlich nur die Anzeige der Projektilbahn interessant sein.
debug_mouse
Koordinaten des Mauscursors.
debugcam
(keine Parameter)
"Camera-Debugmodus". Mit [Strg+Q] herauszoomen, mit [Q] hereinzoomen. (denkt erst gar nicht an ein SII in 3rd-Person-Modus! :p)
[04.10.2011] Stranded II Titanium - Version 1.0.0.9 (Alpha-Stadium) [LINK FIXED!]
More
Einzelspielerkarte 'Shoot the Duck'!
MAV bei Items Schleim, Insektenteile, Wurm im Vorschaufenster (Editor)
'Reithöhe' beim Flugzeug war zu niedrig
Händlerscript funzte nicht
Texturfehler beim Ziehbrunnen
das Auftreten logischer Funktionsnamen ('and', 'or' usw.) in Strings verursachte Probleme bei einigen Skriptbefehlen (fileexists, cscr_image, split, join und loadfile)
Item: Silbermünze
Unit: König der Löwen (Nein, nicht der aus'm Film! )
Definition speed_walk normal[,fast] (units*.inf)
Definition speed_fly normal[,fast] (units*.inf)
Definition speed_swim normal[,fast] (units*.inf)
Definition turnspeed_walk normal,fast (units*.inf)
Definition turnspeed_fly normal,fast (units*.inf)
Definition turnspeed_swim normal,fast (units*.inf)
Definition ani_walk=Start,Ende,Geschwindigkeit (units*.inf)
Definition ani_walk_fast=Start,Ende,Geschwindigkeit (units*.inf)
Definition ani_swim=Start,Ende,Geschwindigkeit (units*.inf)
Definition ani_swim_fast=Start,Ende,Geschwindigkeit (units*.inf)
Definition ani_fly=Start,Ende,Geschwindigkeit (units*.inf)
Definition ani_fly_fast=Start,Ende,Geschwindigkeit (units*.inf)
Definition nervousness=wert (units*.inf)
Definition biotope_min=wert1[,wert2,wert3] (units*.inf)
Definition biotope_max=wert1[,wert2,wert3] (units*.inf)
Definition ani_idleX=Start,Ende,Geschwindigkeit[,Action]
Definition mode1=wert (units*.inf)
Definition mode2=wert (units*.inf)
Kollisionsradius des Spielers wieder herabgesetzt
im Editor-Menü "Neue Map" kann nun die Y-Skalierung des Terrains geändert werden
[OBSOLETE] Definition behaviour (units*.inf)
Unit-Einstellungen (Editor): Festlegung von Laufmodus/Attitüde
Funktionstaste [F9] - Toggle Debugmode (funzt jetzt korrekt!)
Funktionstaste [F2] - Toggle Interface
Fadenkreuz des Spielers schwankt nun beim Stehen nicht mehr so stark
Spieler sollte nun besser tauchen können (Geschwindigkeit erhöht)
Ausdauer/Geschwindigkeit des Spielers
Option: Laufmodus
Einheiten-KI weiter überarbeitet
Skriptbefehle
[WIP] Animation von Units im Editor wurde vorübergehend deaktiviert (kein Bug)
More
Map ist passwortgeschützt und so. Also hübsch vom Einzelspielermenü aus starten, sonst gibts natürlich 'ne Fehlermeldung.
MAV bei Items Schleim, Insektenteile, Wurm im Vorschaufenster (Editor)
'Reithöhe' beim Flugzeug war zu niedrig
Händlerscript funzte nicht
Texturfehler beim Ziehbrunnen
das Auftreten logischer Funktionsnamen ('and', 'or' usw.) in Strings verursachte Probleme bei einigen Skriptbefehlen (fileexists, cscr_image, split, join und loadfile)
Item: Silbermünze
Unit: König der Löwen (Nein, nicht der aus'm Film! )
Definition speed_walk normal[,fast] (units*.inf)
Definition speed_fly normal[,fast] (units*.inf)
Definition speed_swim normal[,fast] (units*.inf)
More
Festlegung der Geschwindigkeiten für die jeweilige Aktion (laufen, schwimmen, fliegen) und den Laufmodus (normal, schnell). Wird der Parameter fast nicht angegeben, so wird das 2.5-fache der normalen Geschwindigkeit verwendet.
Definition turnspeed_walk normal,fast (units*.inf)
Definition turnspeed_fly normal,fast (units*.inf)
Definition turnspeed_swim normal,fast (units*.inf)
More
Festlegung der Drehgeschwindigkeiten für die jeweilige Aktion. Wird der Parameter fast nicht angegeben, so wird das 2.5-fache der normalen Geschwindigkeit verwendet.
Definition ani_walk=Start,Ende,Geschwindigkeit (units*.inf)
Definition ani_walk_fast=Start,Ende,Geschwindigkeit (units*.inf)
Definition ani_swim=Start,Ende,Geschwindigkeit (units*.inf)
Definition ani_swim_fast=Start,Ende,Geschwindigkeit (units*.inf)
Definition ani_fly=Start,Ende,Geschwindigkeit (units*.inf)
Definition ani_fly_fast=Start,Ende,Geschwindigkeit (units*.inf)
More
Festlegung der Animationen für die jeweilige Aktion und den Laufmodus, wodurch gleichzeitig die entsprechenden Fähigkeiten (laufen, schwimmen, fliegen) einer Einheit festgelegt werden. Insbesondere können Einheiten im Gegensatz zu S2G1001 nun also auch mehrere Fähigkeiten besitzen.
Die Angabe der Animationen für den Laufmodus 'fast' ist optional, aber empfohlen. Standardgemäß wird hier die Animation für den Laufmodus 'normal' mit 2.5-facher Geschwindigkeit abgespielt.
Die Angabe der Animationen für den Laufmodus 'fast' ist optional, aber empfohlen. Standardgemäß wird hier die Animation für den Laufmodus 'normal' mit 2.5-facher Geschwindigkeit abgespielt.
Definition nervousness=wert (units*.inf)
More
Legt die "Nervösität" einer Einheit fest (Werte zwischen 0 und 100, default 50). Je niedriger der Wert, desto eher neigt die Einheit dazu, nur in der Landschaft herumzustehen (bzw. idle-Anis abzuspielen). Hohe Werte führen dazu, dass Einheiten eher dazu neigen, ständig herumzulaufen.
Definition biotope_min=wert1[,wert2,wert3] (units*.inf)
Definition biotope_max=wert1[,wert2,wert3] (units*.inf)
More
Über biotope_min, biotope_max wird der Lebensraum einer Einheit festgelegt. wert1 legt dabei die globale Grenze fest (default -1600 bzw. 1600). Über wert2 und wert3 können Grenzen relativ zur Meereshöhe (wert2) bzw. Terrainhöhe (wert3) festgelegt werden.
So bedeutet bspw.
dass sich die Obergrenze des Lebensraumes 200 Pixel über der Meeresoberfläche, höchstens 200 Pixel über dem Terrain, aber nicht über 1600 (=Kartenhöhe) befindet.
Abhängig von der jeweiligen Aktion (laufen, fliegen, schwimmen) kehrt die Einheit beim Überschreiten der Grenze einfach um (return,strict,fast), oder fliegt/schwimmt wieder nach unten bzw. oben.
Nebenbei sei bemerkt, dass sich somit Einheiten definieren lassen, die nicht nur auch in flachem Gewässer, sondern sogar unter Wasser (bspw. Schildkröte) laufen können.
Laufende Einheiten die schwimmen bzw. fliegen können, tun dies von Zeit zu Zeit (unter Wasser bzw. an Land). Fliegende/schwimmende Einheiten die laufen können, tun dies, sobald sie mit dem Terrain kollidieren. Fliegende/schwimmende Einheiten die schwimmen/fliegen können, tun dies, sobald sie unter/über die Wasseroberfläche fliegen/schwimmen usw.
Zu den "Multitalenten" gehören aber momentan leider nur der Papagei (fliegen/laufen) und die Schildkröte (ID 67, laufen, schwimmen)...
So bedeutet bspw.
1
biotope_max=1600,200,200
dass sich die Obergrenze des Lebensraumes 200 Pixel über der Meeresoberfläche, höchstens 200 Pixel über dem Terrain, aber nicht über 1600 (=Kartenhöhe) befindet.
Abhängig von der jeweiligen Aktion (laufen, fliegen, schwimmen) kehrt die Einheit beim Überschreiten der Grenze einfach um (return,strict,fast), oder fliegt/schwimmt wieder nach unten bzw. oben.
Nebenbei sei bemerkt, dass sich somit Einheiten definieren lassen, die nicht nur auch in flachem Gewässer, sondern sogar unter Wasser (bspw. Schildkröte) laufen können.
Laufende Einheiten die schwimmen bzw. fliegen können, tun dies von Zeit zu Zeit (unter Wasser bzw. an Land). Fliegende/schwimmende Einheiten die laufen können, tun dies, sobald sie mit dem Terrain kollidieren. Fliegende/schwimmende Einheiten die schwimmen/fliegen können, tun dies, sobald sie unter/über die Wasseroberfläche fliegen/schwimmen usw.
Zu den "Multitalenten" gehören aber momentan leider nur der Papagei (fliegen/laufen) und die Schildkröte (ID 67, laufen, schwimmen)...
Definition ani_idleX=Start,Ende,Geschwindigkeit[,Action]
More
Legt idle-Animationen fest (wie gehabt), wobei X für Werte zwischen 1 und 5 steht. Über den Parameter Action kann zusätzlich definiert werden, bei welcher Aktion die Idle-Animation ausgeführt werden darf:
1 - laufen (default)
2 - fliegen
4 - schwimmen
Falls gewünscht, können die Werte auch additiv kombiniert werden, also bspw. 6 für schwimmen und fliegen.
1 - laufen (default)
2 - fliegen
4 - schwimmen
Falls gewünscht, können die Werte auch additiv kombiniert werden, also bspw. 6 für schwimmen und fliegen.
Definition mode1=wert (units*.inf)
Definition mode2=wert (units*.inf)
More
Legt die Standardattitüde für die Einheit fest. Zulässige Werte sind offensive, defensive und strict (Details unter dem Punkt 'Einheiten-KI weiter überarbeitet').
Kollisionsradius des Spielers wieder herabgesetzt
im Editor-Menü "Neue Map" kann nun die Y-Skalierung des Terrains geändert werden
[OBSOLETE] Definition behaviour (units*.inf)
More
Sämtliche behaviours (-> units.inf) sind nun veraltet und sollten sich wie oben teilweise dargelegt realisieren lassen:
Fähigkeiten wie fliegen, schwimmen, laufen hängen von den definierten Animationen ab, Lebensräume (Wasser, Land, Luft) werden durch entsprechende Definitionen (biotope_min, biotope_max) festgelegt. Aggressives/scheues Verhalten wird ebenfalls durch entsprechende Definitionen (prey/hunter) festgelegt.
Zu den noch nicht unterstützten bzw. ungetesteten alten Behaviours gehören:
standandsnap, idle, idleturn (sollten sich wahrscheinlich mit speed/turnspeed=0 oder nervousness=0 realisieren lassen)
plague (hierfür wird es sicherlich noch eine Definition ähnlich prey/hunter geben)
crab (erfordert evtl. nur eine Änderung der Ani)
Fähigkeiten wie fliegen, schwimmen, laufen hängen von den definierten Animationen ab, Lebensräume (Wasser, Land, Luft) werden durch entsprechende Definitionen (biotope_min, biotope_max) festgelegt. Aggressives/scheues Verhalten wird ebenfalls durch entsprechende Definitionen (prey/hunter) festgelegt.
Zu den noch nicht unterstützten bzw. ungetesteten alten Behaviours gehören:
standandsnap, idle, idleturn (sollten sich wahrscheinlich mit speed/turnspeed=0 oder nervousness=0 realisieren lassen)
plague (hierfür wird es sicherlich noch eine Definition ähnlich prey/hunter geben)
crab (erfordert evtl. nur eine Änderung der Ani)
Unit-Einstellungen (Editor): Festlegung von Laufmodus/Attitüde
Funktionstaste [F9] - Toggle Debugmode (funzt jetzt korrekt!)
Funktionstaste [F2] - Toggle Interface
Fadenkreuz des Spielers schwankt nun beim Stehen nicht mehr so stark
Spieler sollte nun besser tauchen können (Geschwindigkeit erhöht)
Ausdauer/Geschwindigkeit des Spielers
More
Ausdauer/Geschwindigkeit des Spielers sinkt nun nicht mehr linear. Konkret ist es nun so, dass die Ausdauer zu Beginn der Sprintphase rasch sinkt, und etwa ab der Hälfte sinkt die Ausdauer nur noch sehr langsam, während zugleich aber auch die Geschwindigkeit herabgesetzt ist. D.h. der Spieler fängt zunächst an zu Sprinten, geht nach einer gewissen Zeit aber in den Langlauf über.
Außerdem ist nun die Geschwindigkeit des Spielers in der Nähe gefährlicher Viecher leicht erhöht (Adrenalin...).
Teilweise wurde moniert, dass Ausdauer/Geschwindigkeit des Spielers zu gering seien. Dies ist durchaus beabsichtigt, da der Spieler ja eigentlich erst im Laufe der Zeit das gewisse Training erwerben und nicht schon bei Spielstart max. skilled sein sollte.
Ich bin mir nur noch nicht sicher, ob dieses ganze 'Role-Play-Zeugs' gleich per SC implementiert werden sollte, da man es prinzipiell ja auch über das Skriptsystem machen kann und es auch eher in der Hand des Mappers liegen sollte...
Außerdem ist nun die Geschwindigkeit des Spielers in der Nähe gefährlicher Viecher leicht erhöht (Adrenalin...).
Teilweise wurde moniert, dass Ausdauer/Geschwindigkeit des Spielers zu gering seien. Dies ist durchaus beabsichtigt, da der Spieler ja eigentlich erst im Laufe der Zeit das gewisse Training erwerben und nicht schon bei Spielstart max. skilled sein sollte.
Ich bin mir nur noch nicht sicher, ob dieses ganze 'Role-Play-Zeugs' gleich per SC implementiert werden sollte, da man es prinzipiell ja auch über das Skriptsystem machen kann und es auch eher in der Hand des Mappers liegen sollte...
Option: Laufmodus
More
Bei den Optionen für die Steuerung (Hauptmenü) lässt sich nun einstellen, ob der Spieler immer rennt (und mit SHIFT geht), oder umgekehrt.
Einheiten-KI weiter überarbeitet
More
So, auch die Überarbeitung der Einheiten-KI geht weiter voran und wird immer ausgeklügelter:
Einheiten besitzen nun einen primären und einen sekundären Modus.
Primäre Modi sind bestimmte Aktionen die Einheiten nur vorübergehend ausführen, also jagen, angreifen, essen, schießen usw. Ist die entsprechende Aktion abgeschlossen, kehrt die Einheit in den sekundären Modus zurück (s.u.). Zu den primären Modi gehören:
hunt - Jage das Ziel (Unit)
flee - Fliehe vorm Ziel (Unit)
eat - Esse das Ziel (Item)
attack - Greife das Ziel im Nahkampf an (Unit)
shoot - Greife das Ziel im Fernkampf an (Unit)
return - Zum KI Ausgangspunkt zurückkehren
move - Geradeaus bewegen
movel - Nach Links bewegen
mover - Nach Rechts bewegen
turnl - Linksdrehung
turnr - Rechtsdrehung
strafel - Nach Links ausweichen
strafer - Nach Rechts ausweichen
idle - Idle Animation abspielen
stay - herumstehen (wie Idle, ohne Ani)
goto - Gehe zum Ziel
Sekundäre Modi bestimmen das Verhalten von Units, wenn sie nix zu tun haben, d.h. weder jagen, angreifen, essen, schießen usw. Zu den sekundären Modi gehören:
none - ziellos herumstreifen (default)
stay - nur herumstehen
path - einem festgelegtem Pfad folgen
goto/sgoto - zu einer bestimmten Position gehen
follow - einer Einheit folgen
script - skriptgesteuert
Standardgemäß streifen Einheiten ziellos durch die Gegend, wobei sie abhängig vom Definitionswert nervousness eher dazu neigen herumzustehen und nix zu tun oder wie verrückt durch die Gegend zu hetzen.
Die Modi 'stay' und 'path' können auch im Editor einfach mittels der Wegpunkte (Info-ID 3) festgelegt werden. Einheiten welche auf einem Wegpunkt ohne Verbindung (zu anderen Wegpunkten) platziert werden bekommen den Modus 'stay', während Einheiten welche auf einem Wegpunkt mit weiteren Verbindungen platziert werden, automatisch den Modus 'path' erhalten.
Units mit sek. Modus script warten auf Skriptkommandos. Nach Ausführung eines Skriptkommandos wird bei der Unit das Event ai_finish ausgeführt. Attitüde strict um eigenständiges Handeln einer Unit komplett zu unterbinden, während eine Unit bspw. bei Attitüde 'offensive' immer noch selbstständig auf Jäger/Beute reagiert.
Insbesondere sollte nun die Skriptsteuerung von Units wesentlich besser funktionieren. Kann mich erinnern, dass ich damals zu meinen Zeiten als Mapper/Skripter immer Probleme damit hatte, Einheiten dazu zu bringen dies und jenes zu tun.
Zusätzlich kann der Einheit ein Laufmodus zugewiesen werden:
normal - normales Gehen (default)
fast - Sprinten
Und außerdem kann die Attitüde festgelegt werden:
offensiv - wachsam, greift an/flieht sobald Ziel entdeckt (default)
defensiv - passiv, reagiert nur, falls angegriffen
strict - gleichgültig, reagiert nie
Laufmodus/Attitüde lassen sich auch für den prim. Modus festlegen. Standardgemäß werden sie intern festgelegt, ansonsten werden die Einstellungen des sek. Modus übernommen.
Beispiel: Löwe, sek. Modus 'none,normal,offensive' (Löwe streift ziellos umher und greift selbstständig an)
- Hat der Löwe ein Beutetier entdeckt, erhält er den prim. Modus 'hunt,fast,offensive', d.h. er geht im Laufschritt zum Angriff auf die entsprechende Unit über, hält aber weiterhin Augen und Ohren offen (offensive).
- Wird der Löwe hingegen angegriffen, so erhält er den prim. Modus 'hunt,fast,defensive', d.h. er geht im Laufschritt zum Angriff auf die entsprechende Unit über, reagiert aber nicht mehr auf evtl. andere Units in der Umgebung (es sei denn, sie greifen ihn ebenfalls an).
Laufmodus/Attitüde können auch per Definitionen mode1, mode2 vom Modder festgelegt werden (default: normal,offensive). Im Editor können sie vom Mapper, und im Spiel selbst auch per Skript geändert werden.
Gleiches gilt für die vordefinierten Jäger-/Beutetiere einer Einheit.
Joa... und ansonsten... falls Fragen, stellen.
Einheiten besitzen nun einen primären und einen sekundären Modus.
Primäre Modi sind bestimmte Aktionen die Einheiten nur vorübergehend ausführen, also jagen, angreifen, essen, schießen usw. Ist die entsprechende Aktion abgeschlossen, kehrt die Einheit in den sekundären Modus zurück (s.u.). Zu den primären Modi gehören:
hunt - Jage das Ziel (Unit)
flee - Fliehe vorm Ziel (Unit)
eat - Esse das Ziel (Item)
attack - Greife das Ziel im Nahkampf an (Unit)
shoot - Greife das Ziel im Fernkampf an (Unit)
return - Zum KI Ausgangspunkt zurückkehren
move - Geradeaus bewegen
movel - Nach Links bewegen
mover - Nach Rechts bewegen
turnl - Linksdrehung
turnr - Rechtsdrehung
strafel - Nach Links ausweichen
strafer - Nach Rechts ausweichen
idle - Idle Animation abspielen
stay - herumstehen (wie Idle, ohne Ani)
goto - Gehe zum Ziel
Sekundäre Modi bestimmen das Verhalten von Units, wenn sie nix zu tun haben, d.h. weder jagen, angreifen, essen, schießen usw. Zu den sekundären Modi gehören:
none - ziellos herumstreifen (default)
stay - nur herumstehen
path - einem festgelegtem Pfad folgen
goto/sgoto - zu einer bestimmten Position gehen
follow - einer Einheit folgen
script - skriptgesteuert
Standardgemäß streifen Einheiten ziellos durch die Gegend, wobei sie abhängig vom Definitionswert nervousness eher dazu neigen herumzustehen und nix zu tun oder wie verrückt durch die Gegend zu hetzen.
Die Modi 'stay' und 'path' können auch im Editor einfach mittels der Wegpunkte (Info-ID 3) festgelegt werden. Einheiten welche auf einem Wegpunkt ohne Verbindung (zu anderen Wegpunkten) platziert werden bekommen den Modus 'stay', während Einheiten welche auf einem Wegpunkt mit weiteren Verbindungen platziert werden, automatisch den Modus 'path' erhalten.
Units mit sek. Modus script warten auf Skriptkommandos. Nach Ausführung eines Skriptkommandos wird bei der Unit das Event ai_finish ausgeführt. Attitüde strict um eigenständiges Handeln einer Unit komplett zu unterbinden, während eine Unit bspw. bei Attitüde 'offensive' immer noch selbstständig auf Jäger/Beute reagiert.
Insbesondere sollte nun die Skriptsteuerung von Units wesentlich besser funktionieren. Kann mich erinnern, dass ich damals zu meinen Zeiten als Mapper/Skripter immer Probleme damit hatte, Einheiten dazu zu bringen dies und jenes zu tun.
Zusätzlich kann der Einheit ein Laufmodus zugewiesen werden:
normal - normales Gehen (default)
fast - Sprinten
Und außerdem kann die Attitüde festgelegt werden:
offensiv - wachsam, greift an/flieht sobald Ziel entdeckt (default)
defensiv - passiv, reagiert nur, falls angegriffen
strict - gleichgültig, reagiert nie
Laufmodus/Attitüde lassen sich auch für den prim. Modus festlegen. Standardgemäß werden sie intern festgelegt, ansonsten werden die Einstellungen des sek. Modus übernommen.
Beispiel: Löwe, sek. Modus 'none,normal,offensive' (Löwe streift ziellos umher und greift selbstständig an)
- Hat der Löwe ein Beutetier entdeckt, erhält er den prim. Modus 'hunt,fast,offensive', d.h. er geht im Laufschritt zum Angriff auf die entsprechende Unit über, hält aber weiterhin Augen und Ohren offen (offensive).
- Wird der Löwe hingegen angegriffen, so erhält er den prim. Modus 'hunt,fast,defensive', d.h. er geht im Laufschritt zum Angriff auf die entsprechende Unit über, reagiert aber nicht mehr auf evtl. andere Units in der Umgebung (es sei denn, sie greifen ihn ebenfalls an).
Laufmodus/Attitüde können auch per Definitionen mode1, mode2 vom Modder festgelegt werden (default: normal,offensive). Im Editor können sie vom Mapper, und im Spiel selbst auch per Skript geändert werden.
Gleiches gilt für die vordefinierten Jäger-/Beutetiere einer Einheit.
Joa... und ansonsten... falls Fragen, stellen.
Skriptbefehle
More
Skriptbefehl player_stamina Wert
Legt die Ausdauer des Spielers (default 100) fest.
Skriptbefehl ai_center [x,y,z]
Setzt wie gehabt den KI-Mittelpunkt einer Unit auf die aktuelle Position. Als optionale Parameter werden nun x,y,z-Koordinaten erwartet (bei S2T1005 waren es nur x und z).
Skriptbefehl reach_id
Ersetzt den Skriptbefehl reach aus S2T1005. Das Event on:reach wird bei den sek. Modi path,goto,sgoto ausgeführt und bei der entsprechenden Unit und beim sek. Modus path beim entsprechendem Info ausgelöst:
bei Unit: gibt ID des Infos zurück, welches die Unit erreicht hat
bei Info: gibt ID der Unit zurück, welche das Ziel erreicht hat
Bei den sek. Modi goto,sgoto wird 0 zurückgegeben.
Skriptbefehl set_pcmd unitid,cmd,duration,mode1,mode2,class,id[,z]
Ersetzt ai_mode aus S2G1001 und ais_mode/ai_smode aus S2T1005.
Gültige Kommandos wie gehabt ("idle","hunt" usw.).
mode1 - Laufmodus: "normal" oder "fast"
mode2 - Attitüde: "offensive", "defensive", "strict"
class/id für Ziel. Wird zusätzlich der Parameter z angegeben, so werden class/id als x- bzw. y-Koordinate interpretiert (bspw. für "goto").
Skriptbefehl set_ptarget class,id[,z]
Setzt das primäre Ziel und den Fokus darauf (alternativ zu set_pcmd).
Skriptbefehl del_ptarget [class]
Löscht alle primären Ziele. Wird der Parameter class angegeben, so wird nur das Ziel der entsprechenden Klasse gelöscht (und Fokus).
Das hat den Hintergrund, dass Units intern mehrere primäre Ziele verschiedener Klassen besitzen können. Bspw. einerseits sich auf Nahrung (Item) hinzubewegen (Fokus auf Item), andererseits aber bspw. potentielle Feinde stets im Blick behalten... (Einheit als Ziel um ggf. darauf zu reagieren, aber nicht darauf fokussiert)
(das ganze ist momentan noch etwas in der Entwicklung)
Skriptbefehl ai_seek unitid[,force]
Suche nach Jägern/Beute in Reichweite. Wird 1 für force angegeben (default 0), so wird die Suche auch durchgeführt, wenn die Einheit bereits ein Ziel gefunden hat.
Hat die Unit nach Ausführung von ai_seek ein Target, so wird 1 zurückgegeben (anderenfalls 0).
Intern wird bei Units mit Modus offensive regelmäßig (ca. jede Sek.) eine "Suche" nach Jäger, Beute oder Geräuschsignalen (bspw. verursacht durch Spieler oder geworfene Gegenstände) durchgeführt. Wird ein Geräusch entdeckt, wird sofort der Fokus darauf gerichtet (und die Einheit läuft hin). Jäger/Beute hingegen wird durch ai_seek nicht fokussiert.
Skriptbefehl ai_detect unitid[,force]
Versucht das momentan zugewiesene Ziel (Unit) zu entdecken. 1 für force (default 0), um das entdecken zu erzwingen. Wird das Ziel entdeckt, wird gleichzeitig der Fokus darauf gerichtet und 1 zurückgegeben (ansonsten 0).
Skriptbefehl set_scmd unitid,cmd,mode1,mode2,...
Setzt den sek. Modus. Zulässige Kommandos (cmd) sind:
"none" - Unit bewegt sich ziellos durch die Gegend (default)
"goto"/"sgoto" - gehe zum Ziel
"path" - folge einem Pfad
"follow" - folge einer Unit
"stay" - herumstehen
"script" - auf Skriptbefehl warten
"sgoto" ist so ziemlich das gleiche wie "goto". Allerdings flieht/jagt die Unit hier nicht auf eigene Faust, greift aber ein Ziel dennoch an, falls es sich in Reichweite befindet...
Während die Attitüde "defensive" hier zu lax ist (Unit jagt/flieht, falls angegriffen), ist die Attitüde "strict" hier zu restriktiv (Unit jagt/flieht nicht, greift aber auch nicht an). Künftig wird "sgoto" aber wahrscheinlich durch eine zusätzliche Attitüde "strict2" realisiert werden (oder so).
mode1 legt den Laufmodus fest:
"normal" - normale Geschwindigkeit (default)
"fast" - erhöhte Geschwindigkeit (sprinten...)
Insbesondere wird bei mode1="fast" die entsprechende Animation (walk_fast, swim_fast, fly_fast) abgespielt.
mode2 legt die Attitüde fest:
"offensive" - Unit jagt/flieht auf eigene Faust (default)
"defensive" - Unit jagt/flieht nur, falls angegriffen
"strict" - Unit reagiert gar nicht auf Jäger/Beute
Abhängig von cmd können weitere Parameter angehängt werden:
goto/sgoto - class,id
path - infoid1,infoid2,infoid3,infoid4,...
follow - unitid
Skriptbefehl set_starget class,id[,z]
Setzt das sekundäre Ziel und gleichzeitig den Fokus darauf (alternativ zu set_scmd).
Skriptbefehl del_starget class,id[,z]
Löscht das sekundäre Ziel.
Legt die Ausdauer des Spielers (default 100) fest.
Skriptbefehl ai_center [x,y,z]
Setzt wie gehabt den KI-Mittelpunkt einer Unit auf die aktuelle Position. Als optionale Parameter werden nun x,y,z-Koordinaten erwartet (bei S2T1005 waren es nur x und z).
Skriptbefehl reach_id
Ersetzt den Skriptbefehl reach aus S2T1005. Das Event on:reach wird bei den sek. Modi path,goto,sgoto ausgeführt und bei der entsprechenden Unit und beim sek. Modus path beim entsprechendem Info ausgelöst:
bei Unit: gibt ID des Infos zurück, welches die Unit erreicht hat
bei Info: gibt ID der Unit zurück, welche das Ziel erreicht hat
Bei den sek. Modi goto,sgoto wird 0 zurückgegeben.
Skriptbefehl set_pcmd unitid,cmd,duration,mode1,mode2,class,id[,z]
Ersetzt ai_mode aus S2G1001 und ais_mode/ai_smode aus S2T1005.
Gültige Kommandos wie gehabt ("idle","hunt" usw.).
mode1 - Laufmodus: "normal" oder "fast"
mode2 - Attitüde: "offensive", "defensive", "strict"
class/id für Ziel. Wird zusätzlich der Parameter z angegeben, so werden class/id als x- bzw. y-Koordinate interpretiert (bspw. für "goto").
Skriptbefehl set_ptarget class,id[,z]
Setzt das primäre Ziel und den Fokus darauf (alternativ zu set_pcmd).
Skriptbefehl del_ptarget [class]
Löscht alle primären Ziele. Wird der Parameter class angegeben, so wird nur das Ziel der entsprechenden Klasse gelöscht (und Fokus).
Das hat den Hintergrund, dass Units intern mehrere primäre Ziele verschiedener Klassen besitzen können. Bspw. einerseits sich auf Nahrung (Item) hinzubewegen (Fokus auf Item), andererseits aber bspw. potentielle Feinde stets im Blick behalten... (Einheit als Ziel um ggf. darauf zu reagieren, aber nicht darauf fokussiert)
(das ganze ist momentan noch etwas in der Entwicklung)
Skriptbefehl ai_seek unitid[,force]
Suche nach Jägern/Beute in Reichweite. Wird 1 für force angegeben (default 0), so wird die Suche auch durchgeführt, wenn die Einheit bereits ein Ziel gefunden hat.
Hat die Unit nach Ausführung von ai_seek ein Target, so wird 1 zurückgegeben (anderenfalls 0).
Intern wird bei Units mit Modus offensive regelmäßig (ca. jede Sek.) eine "Suche" nach Jäger, Beute oder Geräuschsignalen (bspw. verursacht durch Spieler oder geworfene Gegenstände) durchgeführt. Wird ein Geräusch entdeckt, wird sofort der Fokus darauf gerichtet (und die Einheit läuft hin). Jäger/Beute hingegen wird durch ai_seek nicht fokussiert.
Skriptbefehl ai_detect unitid[,force]
Versucht das momentan zugewiesene Ziel (Unit) zu entdecken. 1 für force (default 0), um das entdecken zu erzwingen. Wird das Ziel entdeckt, wird gleichzeitig der Fokus darauf gerichtet und 1 zurückgegeben (ansonsten 0).
Skriptbefehl set_scmd unitid,cmd,mode1,mode2,...
Setzt den sek. Modus. Zulässige Kommandos (cmd) sind:
"none" - Unit bewegt sich ziellos durch die Gegend (default)
"goto"/"sgoto" - gehe zum Ziel
"path" - folge einem Pfad
"follow" - folge einer Unit
"stay" - herumstehen
"script" - auf Skriptbefehl warten
"sgoto" ist so ziemlich das gleiche wie "goto". Allerdings flieht/jagt die Unit hier nicht auf eigene Faust, greift aber ein Ziel dennoch an, falls es sich in Reichweite befindet...
Während die Attitüde "defensive" hier zu lax ist (Unit jagt/flieht, falls angegriffen), ist die Attitüde "strict" hier zu restriktiv (Unit jagt/flieht nicht, greift aber auch nicht an). Künftig wird "sgoto" aber wahrscheinlich durch eine zusätzliche Attitüde "strict2" realisiert werden (oder so).
mode1 legt den Laufmodus fest:
"normal" - normale Geschwindigkeit (default)
"fast" - erhöhte Geschwindigkeit (sprinten...)
Insbesondere wird bei mode1="fast" die entsprechende Animation (walk_fast, swim_fast, fly_fast) abgespielt.
mode2 legt die Attitüde fest:
"offensive" - Unit jagt/flieht auf eigene Faust (default)
"defensive" - Unit jagt/flieht nur, falls angegriffen
"strict" - Unit reagiert gar nicht auf Jäger/Beute
Abhängig von cmd können weitere Parameter angehängt werden:
goto/sgoto - class,id
path - infoid1,infoid2,infoid3,infoid4,...
follow - unitid
Skriptbefehl set_starget class,id[,z]
Setzt das sekundäre Ziel und gleichzeitig den Fokus darauf (alternativ zu set_scmd).
Skriptbefehl del_starget class,id[,z]
Löscht das sekundäre Ziel.
[WIP] Animation von Units im Editor wurde vorübergehend deaktiviert (kein Bug)
[29.11.2011] Stranded II Titanium - Version 1.0.0.9 (Alpha-Stadium) [Win7+NVidia-Fix]
More
Einige Gerüchten zufolge gibt es auf Rechnern mit dem Betriebssystem Windows 7 im Zusammenhang mit einer NVidia-Grafikkarte Probleme (Spiel ruckeln bspw.).
Diese Version stellt inhaltlich keine Änderung zu S2T1009a dar, sondern sollte hoffentlich auch auf Rechnern mit obiger Konfiguration laufen.
Im Zweifel sollte man sich diese Version downloaden (funzt auch mit XP und/oder ATI )
Diese Version stellt inhaltlich keine Änderung zu S2T1009a dar, sondern sollte hoffentlich auch auf Rechnern mit obiger Konfiguration laufen.
Im Zweifel sollte man sich diese Version downloaden (funzt auch mit XP und/oder ATI )
[03.03.2012] Stranded II Titanium - Version 1.0.1.0 (Alpha-Stadium)
More
Sorry, nur ein minimaler Bugfix. Das Spiel stürzte nach dem Laden ab, wenn man in der game.inf für "healthsystem" größere Werte als 4 eintrug.
Fixes/Patches/Updates vorhergehender Versionen sind hier natürlich mit enthalten.
Fixes/Patches/Updates vorhergehender Versionen sind hier natürlich mit enthalten.
Im Archiv enthalten ist natürlich auch der überarbeitete Source Code, der nebenbei ziemlich mit DebugLogs übersäht ist... Es steht euch selbstverständlich auch frei, Teile davon für eure eigenen Zwecke unter den von festgelegten Bedingungen zu nutzen.
Außerdem der übliche Text: Für Kritik, Anregungen, Wünsche, Bugs, Kiwieier, bla bin ich natürlich stets dankbar (Kekse nehm' ich auch). Nein, ehrlich. Vor allem Kritik hinsichtlich des Balancings, d.h. Stärke von Waffen, Einheiten oder Erfolgswahrscheinlichkeiten von Kombis usw. trägt stets zu Verbesserung bei.
Nachtrag (10.09.2012): So. Künftige Versionen von SII Titanium werden nun in der englischen Sektion veröffentlicht:
http://www.unrealsoftware.de/forum_posts.php?post=333822
Der Bequemlichkeit halber stehe ich aber noch für Diskussionen auf Deutsch hier zur Verfügung.
edited 12×, last 10.09.12 06:56:40 pm