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: kein Gast, xanbank

 X-Force - Fight For Destiny - Forum —› X-Skript / Developer-Pack —› Skripte für Basiserweiterung?

Seite: 1 [2] [3] [4] [5] [6] [7] [8] [9] [10] .. [41] [42] >>

Autor Mitteilung
verfasst am: 31.08.2009, 19:23
Registrierdatum: 29.06.2006, 16:16

 Beiträge: 1
Ich hätte da mal ein Attentat auf die Skripter vor. :)

Es geht um folgendes:
In der Forschung möchte ich Projekt x erforschten. Dadurch soll eine Basiserweiterung frei geschaltet werden (im Baumenü auswählbar).
Nach dem Bau der Erweiterung soll diese mir einen Bonus auf z.B. die Forschungsleistung von x % ermöglichen.
Nach dem Bau der Erweiterung kann ich diese Erweiterung in der gleichen Basis nicht ein zweites Mal bauen.

Nett oder?

Da ich leider nicht den Durchblick bei x-Skript habe hoffe ich, dass mir vielleicht ein erfahrener Skripter hilft oder hier ein Musterskript postet.
verfasst am: 31.08.2009, 20:42
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Wuääh... das alles zu erklären, wird ekelhaft. Schneller ginge es wahrscheinlich, wenn ich es selbst machen und hier rein stellen würde. Aber versuchen wir erstmal, dich zum Skripter auszubilden ;-) Du hast nicht zufällig etwas Erfahrung mit Pascal oder Delphi?
Ich werd im Folgenden mit Prozedure-Namen um mich schmeißen, die du allesamt in der Referenz nachschlagen kannst.
Also:


Gebäude nach Forschung freischalten geht ohne Probleme im Editor und ohne Skript. Entweder direkt das Gebäude als Forschung eintragen, oder der Forschung das Gebäude als Nachfolger mit 0 Stunden Forschungszeit zuweisen (wie es üblicherweise bei Waffen und Munition gemacht wird).
Mittels dem EVENT_ONBASEROOMBUILDED-Event müsste man dann alle Basen überwachen (am besten pro Basis eine Instanz des Skripts starten, und sich die Option offenhalten, auf EVENT_SPECIAL_NEWBASE mit einer weitern Instanz zu reagieren). Dazu am besten eine for-Schleife mit base_api_GetBaseCount und ...GetBaseByIndex.
Folgendes habe ich nie getestet, deshalb ist es mit Vorsicht zu genießen (ich gehe davon aus, das es so klappt, aber ich hab's wie gesagt nie getestet): Mittels mission_api_StartScriptWithObject das Überwachung-Skript starten, das Objekt wäre in diesem Fall eine Baisis, die in der for-Schleife via base_api_GetBaseByIndex rausgefischt wird (vorsicht, man muss die TBasis für in ein TObject umwandeln, und im Zielskript wieder zurück!). Danach haben wir eine Instanz pro Basis, die sich genau um eine Basis kümmert. Besser für die Übersicht in diesem Skript. Hat aber evtl einen Nachteil, je nachdem, wie du dir das ganze vorgestellt hattest: Mit dem Weg, den ich hier vorschlage, wird die globale Forschungsrate um 10% erhöht für jede Basis, die das Gebäude besitzt!

Dieses Skript wird sich dann um die erwähnten Events (OnBaseRoomBuilded (was fürn mieses Englisch ^^), OnBaseRoomDestroyed, OnBaseDestroyed) kümmern, dazu dient register_event(@*NameDerProzedur*, *basis*, *EVENT_NAME*).
Bei OnBaseRoomBuilded: Alle Gebäude checken (for i:=0 to GetArrayLength(TBase.RoomArray) do) und, falls das gewünschte Gebäude dabei ist, mittels game_api_GetInterger und game_api_SetInteger die Globale Variable ForschTime um 10 (oder andere Prozentzahl) erhöhen. Ein Flag, mit dem sich das Skript merkt, ob schon ein Gebäude vorhanden war, ist deshalb unerlässlich. Sonst würde so lange, wie das Gebäude steht, JEDES fertiggestellte Gebäude erneut 10% Forschungsbonus auslösen.
Bei OnBaseRoomDestroyed: Vice Verda, hier wird der Wert um 10 verringert, falls das Flag sagt, letztes Mal war ein Gebäude da - aber kein Gebäude mehr vorhanden ist.
OnBaseDestroyed: Einfach Skript beenden (mission_abort/lose/win - macht keinen Unterschied, solange keine procedure OnMissionAbort/-Lose/-Win vorhanden ist).

Das Gebäude nur einmal im ganzen Spiel zuzulassen, wird nicht direkt möglich sein. Pro Basis dürfte es sogar unmöglich sein, da . Man kann natürlich versuchen, das Gebäude bei Fertigstellung des ersten Exemplars aus inaktiv zu schalten, aber ich weiß nicht, ob das nicht auch das fertige Gebäude verschwinden lässt. Ich denke zwar nicht, aber wer weiß...
Ganz abgesehen davon ist es durchaus möglich, dass mehrere Exemplare des Gebäudes gleichzeitig (oder zumindest vor Fertigstellung des 1.) in Auftrag gegeben werden. Und ich weiß nicht, ob die durch die Inaktiv-Schaltung abgebrochen werden. Da müsste man wohl alle Gebäude checken, das Vorkommen des Gebäudes zählen, und alle außer dem ersten zerstören.
Das alles macht aber nichts, weil man leicht einrichten kann, dass der Bonus nur 1x angewendet wird, so das weiter Gebäude nichts weiter bringen.


Ich hoffe, meine Ausführungen sind einigermaßen verständlich... ich brabbel hier Zeug vor mich hin, dass ich vor 2 Monaten garnicht kapiert hätte xD
Frag einfach nach, wenn was unklar ist.
verfasst am: 01.09.2009, 09:14
Registrierdatum: 22.08.2008, 15:51

 Beiträge: 403
Zitat: sujin
Folgendes habe ich nie getestet, deshalb ist es mit Vorsicht zu genießen (ich gehe davon aus, das es so klappt, aber ich hab's wie gesagt nie getestet): Mittels mission_api_StartScriptWithObject das Überwachung-Skript starten, das Objekt wäre in diesem Fall eine Baisis, die in der for-Schleife via base_api_GetBaseByIndex rausgefischt wird (vorsicht, man muss die TBasis für in ein TObject umwandeln, und im Zielskript wieder zurück!).

Geht, aber wenn der Raum gebaut wurde muss die Forschungszeit verringert werden anstatt erhöht, sonst hast du den gegenteiligen Effekt.
verfasst am: 01.09.2009, 14:36
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Zitat: Kreks
aber wenn der Raum gebaut wurde muss die Forschungszeit verringert werden anstatt erhöht, sonst hast du den gegenteiligen Effekt.

Ja, hast Recht. Tschuldigung, hab da wohl was verdreht.
verfasst am: 27.01.2022, 13:22
Registrierdatum: 27.01.2022, 13:07

 Beiträge: 318
Your ability to recall random factoids at just the right times is impressive. https://doulastlouis.com
verfasst am: 22.11.2023, 10:08
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 321780
РаÑÑ147.3BettBettmusiÐзизПахоGilbБольWhitDisnTescÑклаWindJudiRondScooтекÑSlimSainГудозначмане
ДронFendДетÑLuigCrysAhavLeonErnsAndrPureProfБурÑMarrÑертAquaчита1941мгноÐикоМальÐвижКушнМарк
SplaAlexYerbПопоКузиDellБаÑаCollarisГеорФернSansExprCampYvesконфБобрAnneвказновоThomЛеонOxyg
RainDolcWillDiegКалаIdriTaurHeroавтоPanzOrieStroценаArtsавтоB-20MikeжизнМощаПиÑаWatsакваРуно
FuxiCrazdiamзакаMiyoЗориLionHeinГладAstrFrasКибаДревприÑиÑкуSTARЮбанLeslожидШемаКитаWindPlan
MariколлклейоригхороEmotLiebMIELКондинÑÑ‚CharЕмел8975ПольMicrдрузплаÑRubiEXTRKenwТимоAtlaBlue
ÑклаинÑтупакLeboдизаBikiигруABBYWindлиÑÑ‚MoleBrauBorkÑертChoi
verfasst am: 01.12.2023, 11:46
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 321780
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
verfasst am: 13.01.2024, 01:32
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 321780
verfasst am: 13.01.2024, 01:33
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 321780
verfasst am: 13.01.2024, 01:34
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 321780
verfasst am: 13.01.2024, 01:35
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 321780
verfasst am: 13.01.2024, 01:36
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 321780
verfasst am: 13.01.2024, 01:37
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 321780
verfasst am: 13.01.2024, 01:38
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 321780
verfasst am: 13.01.2024, 01:39
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 321780
verfasst am: 13.01.2024, 01:40
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 321780
verfasst am: 13.01.2024, 01:41
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 321780
verfasst am: 13.01.2024, 01:42
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 321780
verfasst am: 13.01.2024, 01:43
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 321780
verfasst am: 13.01.2024, 01:44
Registrierdatum: 22.11.2023, 07:10

 Beiträge: 321780

Seite: 1 [2] [3] [4] [5] [6] [7] [8] [9] [10] .. [41] [42] >>




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

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