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 —› Testversion —› [V0.910X-Skript] neues Eventsystem Teil2

Autor Mitteilung
verfasst am: 28.05.2006, 23:12
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beitrge: 3186
So, nach lngerer Wartezeit (und der Anschaffung einer funktionierenden Tastatur) hier nun der 2. Teil zum Eventsystem. Hier werden die beiden Funktionen register_event() und register_special_event() behandelt. Im Gegensatz zur v0.900 gibt es ab V0.910 nicht mehr fr jedes mgliche Event einen eigenen Befehl. Statt dessen wurden die Events in 2 Kategorien eingeteilt. Die erste Kategorie sind Ereignisse, die mit einem bestimmten Objekt (z.B. Basis, UFO, Bodeneinsatz etc.) zusammenhngen. Fr sie ist die Funktion register_event() zustndig.

Die 2. Kategorie sind solche Ereignisse, die nicht direkt mit einem Objekt zusammenhngen, sondern auf allgemeine Spielparameter (Vertrauensnderungen, Credits, Wochenende, Aufruf einer bestimmten Seite etc.) reagieren. Dafr gibt es die Funktion register_special_event().

Funktion register_event: Die Funktion register_event() erwartet 3 Parameter.
Der erste Parameter ist der Name der aufzurufenden Prozedur (analog zu register_timed_event; siehe Eventsystem Teil 1).

Der zweite Parameter ist ein Objekt. Allerdings darf hier nicht wie bei register_timed_event ein beliebiges Objekt zugewiesen werden. Statt dessen muss hier immer das Objekt bergeben werden, auf das sich dieses Event bezieht. Soll z.B. auf den Abschuss eines UFOs reagiert werden, so so muss das entsprechende UFO bergeben werden. Oder soll auf die Zerstrung einer Basis reagiert werden, dann muss die entsprechende Basis angegeben werden. Es erfolgt eine Prfung des Objektes, so dass keine Basis bei einem UFO-Event bergeben werden kann.

Der 3. Parameter ist eine Konstante vom Typ TEventID. Sie bestimmt, auf welches Ereignis register_event reagieren soll. Die mglichen Werte fr die EventID finden sich im Objektbrowser unter Konstanten -> TEventID (Anmerkung: EVENT_SPECIAL_... sind fr register_special_event und knnen bei register_event nicht genutzt werden). Derzeit sind folgende Werte fr die EventID zulssig:

- EVENT_ONBASISDESTROYED: Mit dieser ID kann man darauf reagieren, wenn eine Basis zerstrt wird (derzeit knnen allerdings nur Alphatronbergwerke zerstrt werden, da fr Auenposten und Hauptbasen noch nicht geklrt ist, was als Kriterium fr die Zerstrung verwendet werden soll). Entsprechend muss als Objekt eine Basis (TBasis) bergeben werden.

- EVENT_ONEINSATZTIMEUP: Wird ausgelst, wenn die Zeit fr das bewerkstelligen eines Bodeneinsatzes berschritten wird. Entsprechend muss als Objekt ein Einsatz (TEinsatz) bergeben werden.

- EVENT_ONEINSATZWIN: Wird ausgelst, sobald der Bodeneinsatz gewonnen wurde.

- EVENT_ONSCHIFFMOVE: Wird ausgelst, sobald sich ein Flugzeug (TRaumschiff) von der aktuellen Position bewegt.

- EVENT_ONSCHIFFREACHEDDESTINATION: Wird ausgelst, wenn ein Transporter (TRaumschiff, siehe raumschiff_api_DoTransport*) seine Zielposition erreicht.

- EVENT_ONSCHIFFSHOOTDOWN: Wird ausgelst, wenn ein Flugzeug abgeschossen wird.

- EVENT_ONUFOCOMMANDCOMPLETE: Wird ausgelst, wenn ein UFO (TUFO) einen Befehl beendet hat. Als Objekt muss ein UFO bergeben werden. Wird nur ausgelst, wenn die KI des UFOs per Skript gesteurt wird (TUFO.UserKI = true).

- EVENT_ONUFODISCOVERED: Wird ausgelst, wenn das UFO das erste mal von einem Sensor erfasst wird.

- EVENT_ONUFOESCAPE: Wird ausgelst, wenn das UFO entkommen ist.

- EVENT_ONUFOHITBYBASE: Wird ausgelst, wenn das UFO von einer Basis getroffen wird (Fehlschsse fhren zu keiner Reaktion).

- EVENT_ONUFOKAMPFWIN: Wird ausgelst, wenn das UFO einen Luftkampf gewinnt.

- EVENT_ONUFONEARESTENEMYCHANGED: Wird ausgelst, wenn der nchste Feind durch einen anderen ersetzt wird, das erste mal ein Feind in der Sensorreichweite des UFOs auftaucht oder der Feind, die Sensorreichweite verlsst. ber TUFO.NearestEnemy kann auf das gegnerische Flugzeug zugegriffen werden.

- EVENT_ONUFONEWCOMMAND: Wird ausgelst, wenn das UFO einen neuen automatischen Befehl erhlt. Dieses Ereignis kann nicht stattfinden, wenn bei dem UFO die Eigenschaft UserKI:=true gesetzt wurde.

- EVENT_ONUFOSHOOTDOWN: Wird ausgelst, wenn das UFO abgeschossen wurde.

Funktion register_special_event: Die Funktion register_special_event erwartet nur 2 Parameter. Diese entsprechen den Parametern von register_event, nur das der Parameter fr ein Objekt wegfllt. Auerdem drfen fr TEventID nur die EVENT_SPECIAL...-Werte angegeben werden. Derzeit sind folgende EventIDs zulssig:

- EVENT_SPECIAL_ONCOUNTRYFRIENDLYCHANGED: Ermglicht eine Reaktion, sobald sich das Vertrauen eines Landes ndert.

- EVENT_SPECIAL_ONCREDITSCHANGED: Ermglicht eine Reaktion, sobald sich die Credits des Spielers ndern.

- EVENT_SPECIAL_ONENTERPAGE: Wird ausgelst, sobald der Spieler ein neues Men betritt (z.B. das Labor oder die UFOPdie; am besten mal ins Skript OnEnterPage.xms schauen, welches im Installationspaket von X-Force mitgeliefert wird. Auch im Tutorialspielsatz wird dies verwendet, um z.B. Text auszugeben, sobald der Spieler ins Men "Luftfahrzeuge ausrsten" wechselt).

- EVENT_SPECIAL_ONNOTENOUGHMONEY: Wird ausgelst, sobald er Spieler eine Rechnung nichtmehr bezahlen kann.

- EVENT_SPECIAL_ONWEEKEND: Wird immer am Wochenende ausgelst.

Als Beispielskript fr die Verwendung von register_special_event sei an der Stelle noch auf das Beispielskript "SpecialEvents.xms" (unter data/sktipts/...) verwiesen.


Noch eine abschlieende Bemerkung. Die Events werden nur ausgelst, wenn die Mission noch aktiv ist. Sobald eine Mission mit mission_win, mission_loose oder mission_abort bzw. durch Abschuss aller UFOs bei MissionType=mzUFOs beendet ist, werden alle registrierten Events in dieser Mission gelscht.
verfasst am: 23.11.2023, 01:11
Registrierdatum: 22.11.2023, 07:10

 Beitrge: 69718
verfasst am: 02.12.2023, 16:16
Registrierdatum: 22.11.2023, 07:10

 Beitrge: 69718
audiobookkeeper.rucottagenet.rueyesvision.rueyesvisions.comfactoringfee.rufilmzones.rugadwall.rugaffertape.rugageboard.rugagrule.rugallduct.rugalvanometric.rugangforeman.rugangwayplatform.rugarbagechute.rugardeningleave.rugascautery.rugashbucket.rugasreturn.rugatedsweep.rugaugemodel.rugaussianfilter.rugearpitchdiameter.ru
geartreating.rugeneralizedanalysis.rugeneralprovisions.rugeophysicalprobe.rugeriatricnurse.rugetintoaflap.rugetthebounce.ruhabeascorpus.ruhabituate.ruhackedbolt.ruhackworker.ruhadronicannihilation.ruhaemagglutinin.ruhailsquall.ruhairysphere.ruhalforderfringe.ruhalfsiblings.ruhallofresidence.ruhaltstate.ruhandcoding.ruhandportedhead.ruhandradar.ruhandsfreetelephone.ru
hangonpart.ruhaphazardwinding.ruhardalloyteeth.ruhardasiron.ruhardenedconcrete.ruharmonicinteraction.ruhartlaubgoose.ruhatchholddown.ruhaveafinetime.ruhazardousatmosphere.ruheadregulator.ruheartofgold.ruheatageingresistance.ruheatinggas.ruheavydutymetalcutting.rujacketedwall.rujapanesecedar.rujibtypecrane.rujobabandonment.rujobstress.rujogformation.rujointcapsule.rujointsealingmaterial.ru
journallubricator.rujuicecatcher.rujunctionofchannels.rujusticiablehomicide.rujuxtapositiontwin.rukaposidisease.rukeepagoodoffing.rukeepsmthinhand.rukentishglory.rukerbweight.rukerrrotation.rukeymanassurance.rukeyserum.rukickplate.rukillthefattedcalf.rukilowattsecond.rukingweakfish.rukinozones.rukleinbottle.rukneejoint.ruknifesethouse.ruknockonatom.ruknowledgestate.ru
kondoferromagnet.rulabeledgraph.rulaborracket.rulabourearnings.rulabourleasing.rulaburnumtree.rulacingcourse.rulacrimalpoint.rulactogenicfactor.rulacunarycoefficient.ruladletreatediron.rulaggingload.rulaissezaller.rulambdatransition.rulaminatedmaterial.rulammasshoot.rulamphouse.rulancecorporal.rulancingdie.rulandingdoor.rulandmarksensor.rulandreform.rulanduseratio.ru
languagelaboratory.rulargeheart.rulasercalibration.rulaserlens.rulaserpulse.rulaterevent.rulatrinesergeant.rulayabout.ruleadcoating.ruleadingfirm.rulearningcurve.ruleaveword.rumachinesensible.rumagneticequator.rumagnetotelluricfield.rumailinghouse.rumajorconcern.rumammasdarling.ru



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

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