Banner left   Banner center   Banner right

Germanenglish Home · News · Diary · Screenshots · Documentation (Wiki) · Downloads · Guestbook · Forum

Home · Benutzer registrieren · Suchen · Statistik · FAQ · Benutzerliste

Zur Zeit online: keiner ausser dir

 X-Force - Fight For Destiny - Forum —› X-Skript / Developer-Pack —› LennStars Fragerunde

Seite: << [1] [2] [3] [4] [5] 6 [7] [8] [9] [10] .. [17] [18] >>

Autor Mitteilung
verfasst am: 19.06.2006, 19:48
Registrierdatum: 14.06.2006, 19:44

 Beiträge: 16
Es wäre doch kein großer aufwand, einfach wenn alle Soldaten tot oder geflüchtet sind, ein EVENT_EINSATZLOSE oder so auszulösen. :o)
Könnte ja eben sein, dass jemand will, dass so ein Einsatz nicht sofort wieder versucht werden kann, sondern nur alle x Tage oder man gar nur 1 Versuch hat. :o)
verfasst am: 19.06.2006, 19:51
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
Dann tragt es als Wunsch in Mantis ein :)
verfasst am: 19.06.2006, 19:51
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
Zitat: azrael666
Es wäre doch kein großer aufwand, einfach wenn alle Soldaten tot oder geflüchtet sind, ein EVENT_EINSATZLOSE oder so auszulösen.

Das muss aber erstmal programmiert werden - und ich weiß nicht ob das jetzt schon Sinn macht, wenn sowieso irgendwann noch einiges am Bodeneinsatz umgekrempelt werden muss...
verfasst am: 19.06.2006, 19:56 · Edited by: azrael666
Registrierdatum: 14.06.2006, 19:44

 Beiträge: 16
Zitat: DirkF
Das muss aber erstmal programmiert werden

Ich würde sagen, dass müsste eine Zeile sein. *gg* Schließlich muss ja bereits eine Abfrage vorhanden sein ob alle Soldaten weg sind, sonst würde sich der Einsatz ja aufhängen.

(Vielleicht auch 2 wenn man das #define EVENT_EINSATZLOSE 165816 dazuzählt *hihi*)
[Vielleicht sogar noch ein paar mehr Zeilen. *gg* Jenachdem wie die bisherigen Events umgesetzt sind. Könnte auch sein, dass man noch ein Array oder eine Verkettete Liste anlegen muss, in die die Registrierten EVENT_EINSATZLOSE evente eingetragen werden. (Was irgendwie sinnlos wäre, weil wieso sollte jemand mehrere Events beim verlieren eines Einsatzes wollen. *gg*) Aber das meiste müsste sich von EVENT_EINSATZWIN kopieren lassen. :o)]

Aber wenn da sowieso einiges geändert wird und es deshalb keinen Sinn hat ist das natürlich verständlich. :o)
verfasst am: 19.06.2006, 20:11
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Zitat: azrael666
Es wäre doch kein großer aufwand, einfach wenn alle Soldaten tot oder geflüchtet sind, ein EVENT_EINSATZLOSE oder so auszulösen. :o)
Könnte ja eben sein, dass jemand will, dass so ein Einsatz nicht sofort wieder versucht werden kann, sondern nur alle x Tage oder man gar nur 1 Versuch hat. :o)

Genau das will ich, sieht man ja schon an meinem Kommentar da drin //wiederholung in 3 Tagen
Zitat: Natter
Dann tragt es als Wunsch in Mantis ein :)

Mach ich gleich mal.
verfasst am: 16.07.2006, 17:13
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Zitat: DirkF
Alternativ kannst Du auch nur das UFOMOdell auswählen und die Eigenschaft AlieninUFO abgreifen, um die richtigen Aliens einfach per addalien dem Bodeneinsatz zuzuweisen - dann erspart man sich die lange Suche nach den Alien-IDs.


Kannst du das mal Beispielen? Ich fürchte nämlich, mir bleibt nichts anderes über, als ein inaktives Dummy-UFO zu benutzen, ansonsten kommt entweder eine "UFO aufgetaucht"-Meldung oder vollkommen falsche Aliens.
verfasst am: 16.07.2006, 18:17
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
Gib vorher mal bitte ein paar Details was Du genau machen willst - insbesondere wie groß die Auswahl sein soll und wie häufig aufgerufen etc.
Die beschriebene Methode ist nämlich ziemlich aufwendig, meistens geht es anders besser...
verfasst am: 16.07.2006, 19:14
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Naja, es geht darum, bei der Müllhalde von vorher nicht nur eine Aliengruppe, sondern auch eine zweite zu bringen (Eigentlich keine Aliens, aber das ändert ja nichts an der Technischen Sache. Auf jeden Fall tauchen die ausschließlich am Boden auf).
Eine Zufallsauswahl Aliens geht nicht, da beide Gruppen zur gleichen Zeit vorkommen aber nicht in der selben Mission auftauchen dürfen. (Höchstens später mal)
Wenn ich erst ein UFO erstelle, kommt die ungewünschte "UFO entdeckt" Meldung, selbst wenn ich es sofort wieder lösche.

Auch bei anderen Bodeneinsätzen (ohne vorheriges UFO) tritt das Problem auf- ein einfaches Beispiel wären Alienbasen die irgendwann entdeckt werden und ab da ein Bodeneinsatz sind.

Beim Bodeneinsatz selbst brauch ich eine Zufallskomponente, wenn ich das aber per random und Alien-ID mache, tauchen ja auch Aliens auf, die erst später auftauchen sollen- oder ich muss irgendwie noch eine Zeitabfrage einbauen (Geht das überhaupt?)

Mit dem Quasi-UFO hätte ich eine eingebaute Zufallskomponente und es werden auch nur Aliens ausgewählt, deren Tag schon gekommen ist. (Und ich kann im editor ganz einfach eingeben, welche Aliens in welcher Verteilung auftauchen)
Das UFO wäre dann inaktiv und würde nie als UFO auftauchen.
Außerdem kann ich so sehr schnell mit einer scriptvorlage die Bodenmission ändern- einfach ein weiteres UFO, das im script ändern und schon habe ich eine weitere Mission. (Gut, die Missionsbeschreibung noch ändern)


Im Grunde ist das einzige Problem nur die UFO-Meldung, ansonsten müsste es mit UFO erzeugen, Aliens nehmen, Einsatz zuteilen, UFO löschen auch klappen.
verfasst am: 16.07.2006, 20:22
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
Ja, das geht alles - aber es wird aufwendig.
Wenn Du wirklich Interesse daran hast kann ich Dir alte Skripte schicken, die den kompletten Zufall der normalen Auswahl inklusive aller Abfragen auf "Tag verfügbar" etc. nachbauen. Dann hast Du aber einiges an Mathematik und Querverweisen vor Dir.

Hast Du es mal auf folgendem Weg versucht:
1. Funktion zum deaktivieren nicht erlaubter Aliens (da musst Du einmal alle IDs heraussuchen und per ChangeActiveState ausklammern)
2. GetRandomAlien (das sollte nur aktive zur Auswahl benutzen, andernfalls ist das was fürs Mantis)
3. Funktion zum aktivieren aller Aliens

Das wäre einmal ziemliche Mühe, aber dafür kann man das später auch für anderes verwenden. Den Zufall selber aufbauen geht auch - dann werden aber die Routinen verschachtelter:

1. UFOModell auswählen
2. TAlienInUFO herauskopieren in eigene Variable
3. Aus der Wahrscheinlichkeit und der ID in TAlienInUFO eine Häufigkeitsverteilung aufbauen, Random drüber laufen lassen und ID wählen
4. Nach der ID das Alien zum Bodeneinsatz addieren
verfasst am: 17.07.2006, 17:35
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Zitat: DirkF
1. Funktion zum deaktivieren nicht erlaubter Aliens (da musst Du einmal alle IDs heraussuchen und per ChangeActiveState ausklammern)
2. GetRandomAlien (das sollte nur aktive zur Auswahl benutzen, andernfalls ist das was fürs Mantis)
3. Funktion zum aktivieren aller Aliens


Du meinst, wenn ich einen Bodeneinsatz mit Rasse 1 haben möchte, Rasse 2 auf inaktiv, Bodeneinsatz einrichten und danach wieder alle auf aktiv?
Hmm, mit Uses ist das dann eigentlich eine kleine Sache. Aber eine Zufallsverteilung habe ich allein dadurch nicht.
Zitat: DirkF
1. UFOModell auswählen
2. TAlienInUFO herauskopieren in eigene Variable
3. Aus der Wahrscheinlichkeit und der ID in TAlienInUFO eine Häufigkeitsverteilung aufbauen, Random drüber laufen lassen und ID wählen
4. Nach der ID das Alien zum Bodeneinsatz addieren

Soll das heißen, da wird keine Alien-Wahrscheinlichkeit aus den UFO-Einstellungen übernommen?
verfasst am: 17.07.2006, 17:56
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
Zitat: LennStar
Soll das heißen, da wird keine Alien-Wahrscheinlichkeit aus den UFO-Einstellungen übernommen?

PopulateFromUFO ist eine Methode eines UFO-Objektes, nicht eines UFOModells - solange es kein UFO gibt, kannst Du die Funktion nicht verwenden und musst demnach die Wahrscheinlichkeit aus dem TAliensinUFO ablesen und einen eigenen Zufall bilden.
Das ist halt hier der Nachteil, wenn Du die Daten aus einem UFO-Modell auslesen willst.
Zitat: LennStar
Aber eine Zufallsverteilung habe ich allein dadurch nicht.

Doch - dafür ist ja GetRandomAlien da. Du musst allerdings bei unterschiedlichen Verteilungen auch vorher unterschiedliche Aliens aktivieren/deaktivieren.

z.B. indem Du eine Funktion schreibst die ohne Ausnahme alle Aliens deaktiviert und dann verschiedene Funktionen, die eine unterschiedliche Auswahl von Aliens vor dem Aufruf des Randoms wieder aktivieren. Sozusagen Aufteilung des Punktes 1 aus der ersten Liste in zwei Schritte alles abschalten und dann gewünschte Auswahl aktivieren.

Wenn Du es ganz komplex haben möchtest, dann nimm die SPS-Scripte aus meinem Spielsatz als Vorlage - da arbeite ich zwar mit UFOs, aber Du kannst genauso eine Steuerung schreiben die Aliens aktiviert/deaktiviert, je nachdem welche Spielphase gerade existiert.
verfasst am: 17.07.2006, 22:08
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Zitat: DirkF
Doch - dafür ist ja GetRandomAlien da. Du musst allerdings bei unterschiedlichen Verteilungen auch vorher unterschiedliche Aliens aktivieren/deaktivieren.

Ich meinte %-mäßig. Hat ja keinen Sinn, wenn 5 Soldaten und 5 Kommandanten da sind. Das meinte ich mit "allein dadurch nicht" - ich muss noch irgendwas zusätzlich machen.

Ich glaub das mit aktiv/inaktiv ist die beste Lösung. Muss ich aber noch drüber nachdenken.
verfasst am: 17.06.2007, 18:09
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Was wäre, wenn ich per uses alle Aliens inaktiv schalte (bzw. einmal zum Start) und dann für jedes script nur die aktiv, die gebraucht werden?

Per uses könnte der normale Verlauf bleiben - Aliens sind UFOs zugeordnet, und die werden nach Eintreffen bestimmter Bedingungen abgeschaltet.

Ich müsste dann bei Bodeneinsätzen ohne UFO die uses AlienDeactive immer voransetzen, alle deaktivieren und nach der Misson wieder aktivieren. (uses AlienActive)

Damit muss ich beim Hinzufügen von Aliens oder Einsatztypen nur die IDs in die uses hinzufügen.


Aber wenn ich das zum Start mache, kriege ich später Probleme, denn dann muss ich bei den UFO-scripten noch eine Zeitabfrage einbauen. (Kann überhaupt ein UFO erstellt werden, ohne dass es aktive Aliens gibt?) Obwohl...
Aliens aktiv -> UFO aus aktiven UFOs erzeugt, UFO hat Besatzung definiert
Damit müsste ich dem Zufalls-UFO-script dann nur in jeder Schleife das active/inactive für alle Aliens hinzufügen.
In den nicht-UFO-Bodeneinsätzen schalte ich dann nur die aktiv, die ich haben will, und deaktivier sie am Ende wieder...

Puh, ich hab ganz schön durcheinander geredet.
Was wäre wohl besser: Alle Aliens am Anfang inaktiv, oder aktiv?
verfasst am: 17.06.2007, 18:42
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
Bitte nochmal von vorne beschreiben - Ich glaube Du machst Dir die Sache unnötig kompliziert.

Wenn Du einen Bodeneinsatz ohne UFO erzeugen willst, nutzt Du einfach die Methode AddAlien(ID) vom TEinsatz.

Für die Bestimmung welche IDs Du dann verwenden willst, gibt es verschiedene Wege - und welcher davon am einfachsten ist, hängt primär davon ab wieviele Aliens es pro Gruppe/Rasse gibt und wieviele Gruppen/Rassen es geben soll.

Auch die Frage ob die Aliens im Editor standartmäßig aktiv oder inaktiv sein sollen hängt davon ab, wie genau die Zahlen sind - wenn zu einer Zeit nur ein Bruchteil der Aliens aktiv sein soll, dann ist es besser sie im Editor zu deaktivieren und nur per Skript zu aktivieren.
Wenn dagegen nur bestimmte Aliens inaktiv sein sollen, dann schreibt man besser Skripte um die Aliens zu deaktivieren.

Und vergesse bitte nie das Du bei den UFO-Aliens über TAlieninUFO noch eine zweite Filterauswahl hast - ich habe beim Galaktischen Krieg bisher die Alien-Aktivierung noch gar nicht benötigt.

Zitat: LennStar
Ich müsste dann bei Bodeneinsätzen ohne UFO die uses AlienDeactive immer voransetzen, alle deaktivieren und nach der Misson wieder aktivieren. (uses AlienActive)

Damit muss ich beim Hinzufügen von Aliens oder Einsatztypen nur die IDs in die uses hinzufügen.

Wenn Du mit den IDs arbeitest, dann wird aktiv/inaktiv sowieso ignoriert und eine deaktivierung ist unnötig - oder was meinst Du hier genau???
verfasst am: 18.06.2007, 16:57 · Edited by: LennStar
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Zitat: DirkF
Wenn Du mit den IDs arbeitest, dann wird aktiv/inaktiv sowieso ignoriert und eine deaktivierung ist unnötig - oder was meinst Du hier genau???

Wusste ich noch gar nicht. Aber ich meinte hier, dass ich, wenn ich in einem Rutsch per uses alle aktivere/deaktiviere, ich nur die uses verändern muss, wenn ich später im editor Aliens hinzufüge.
Wenn ich dagegen jetzt schon zielgerichtete scripte fertig mache, muss ich das eventuell in jedem ändern.

Zitat: DirkF
Wenn Du einen Bodeneinsatz ohne UFO erzeugen willst, nutzt Du einfach die Methode AddAlien(ID) vom TEinsatz.

An dieser Stelle ist ja das Problem- ich hab ja unterschiedliche Zahlen von Aliens und sie sollen auch unterschiedliche Typen sein. Per ID wird genau das eine hinzugefügt, und nicht etwa von vier Rassen eine, von den 5 Aliens dieser Rasse eines und das bei ungleichen Wahrscheinlichkeiten innerhalb der Rasse.

------
Im Moment siehts so aus, dass es am Ende wahrscheinlich 4 Rassen geben wird, 1+2 sind zeitgleich, 3 verdrängt 1 und 4 verdrängt 2, wobei die eine Zeit lang nebeneinander existieren.
2 und wahrscheinlich auch 4 kommen dabei niemals in einem UFO vor.
1 und 2 können manchmal zusammen als Gegner auftreten, 3 und 4 ebenfalls, und 1 und 3/4 vllt. auch eine kurze Zeit.
verfasst am: 18.06.2007, 18:43
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
Die Aktivierung/Deaktivierung bezieht sich in allen Fällen NUR auf den automatischen Zufall - die Zuordnung per Skript und ID funktioniert immer, sonst könnte man auf die Art ja keine einzigartigen gescripteten UFOs wie das geheimnisvolle beschädigte UFO im Galaktischen Krieg erscheinen lassen.

Zitat: LennStar
An dieser Stelle ist ja das Problem- ich hab ja unterschiedliche Zahlen von Aliens und sie sollen auch unterschiedliche Typen sein. Per ID wird genau das eine hinzugefügt, und nicht etwa von vier Rassen eine, von den 5 Aliens dieser Rasse eines und das bei ungleichen Wahrscheinlichkeiten innerhalb der Rasse.

Naja, dann kannst Du entweder mit getRandomAlien arbeiten und musst die Deaktivierung sehr sauber programmieren (das ist genau das was ich im galaktischen Krieg mit den UFOs mache) oder aber Du musst eine Routine schreiben, die nach irgendwo gespeicherten Kennziffern zu Rasse und Wahrscheinlichkeit zufällig ein passendes Alien bestimmt und dessen ID direkt zuweisen. Das werde ich übrigens später mit besonderen Aliens im galaktischen Krieg machen - vorher stehen aber noch andere Arbeiten an, bevor diese Skripte kommen.

Was von beiden weniger Arbeit ist kann ich nicht so schnell nicht sagen - aber ich kann Dir sagen, das bereits mehrere Erweiterungen im Programm geplant sind, die genau sowas vereinfachen sollen. Du solltest also vor der 0.915 nicht unbedingt zuviel in dieser Richtung herumtricksen, sonst passiert dasselbe wie mit den Schrottsammlern und den neuen Skript-Buttons ;-)
verfasst am: 18.06.2007, 20:32
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Zitat: DirkF
Du solltest also vor der 0.915 nicht unbedingt zuviel in dieser Richtung herumtricksen, sonst passiert dasselbe wie mit den Schrottsammlern und den neuen Skript-Buttons ;-)

Das ist ja relativ gering - und ich muss eh erst mal die final dazu haben, gelle?
Ich glaub, soweit ich damit komme mache ich es mit uses, ist viellicht etwas unnötiges hin und her, aber einfacher zu verändern - und zu entfernen wenns nicht mehr gebraucht wird ;)
verfasst am: 18.06.2007, 21:12
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
uses brauchst Du nach wie vor - aber momentan müsstest Du alle Zusatzdaten per Konstanten fix einbinden, und das will ich später mal über Editorwerte ermöglichen
verfasst am: 24.06.2007, 15:18 · Edited by: LennStar
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Wenn ein Bodeinsatz erzeugt wird, wird der automatisch als entdeckt gezählt?
Weil wenn ein unentdecktes UFO landet, und dadurch dann entdeckt wird, ist das Murks.

An dieser Stelle: Gibt es das UKI-script lander denn mittlerweile? Das brauch ich ja.

EDIT: Habs gerade im Gal. Krieg gesehen. Ist allerdings nicht ganz was ich wollte ^^ Ich sehs mir mal an, wenn ich das mit den Aliens aktiv gemacht habe.

----------------
http://doc.xforce-online.de/ger_pages/XSkriptReferenz/AlienapiChangeAc tiveState.html
Da steht
alien_api_ChangeActiveState(AlienID: LongWord; NewState: Boolean);
also z.B.
alien_api_ChangeActiveState( 1786296665; false);
Der editor meckert aber bei F9 beim ; da soll ein , hin. Was ist nun richtig?
Denn es ist ja nicht nur an der Stelle in der Doku, dass da ein ; steht.
verfasst am: 24.06.2007, 16:30
Programmierer

Registrierdatum: 23.08.2003, 19:16

 Beiträge: 2261
Zitat: LennStar
Denn es ist ja nicht nur an der Stelle in der Doku, dass da ein ; steht.
Bei der Deklaration einer Funktion/Prozedur werden die Parameter mit ; getrennt. Ruft man die Funktionen auf, werden die parameter mit , getrennt. Komma ist als richtig.

Seite: << [1] [2] [3] [4] [5] 6 [7] [8] [9] [10] .. [17] [18] >>




Du musst dich registrieren um auf dieses Thema zu antworten.
Login :: » Name » Passwort

Ladezeit (sec.): 0.007 · Powered by miniBB 1.6 with parts of 1.7 © 2001-2003