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 —› Forschungen im laufenden Spiel ändern

Autor Mitteilung
verfasst am: 17.10.2009, 18:17 · Edited by: sujin
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Das Thema tauchte ja vor einer Weile irgendwo im englischen Forum auf. Damit könnte man so manchen Unfug treiben ;-) Zum Beispiel Alien-Beschreibungen nach und nach mit weiteren Story-Elementen aufpeppen ("Analyse der Alien-Organe" -> UFOPädie-Beschreibung von Alien X wird um "wir wissen jetzt, ...bla...bla...bla...") erweitert.
Soweit der Wunsch. Mit der Realisierung sieht es folgenderweise aus:
Ein direkter Zugriff auf den Speicher ist nicht möglich, da TResearchProject nunmal ein record ist und kein Objekt. Deshalb gibt es, soweit ich sehe, zwei Möglichkeiten (Identifier ausm Bauch heraus, gibt sicher was besseres):
1) function GetResearchPointer(ID: Cardinal): PResearchProject;
Gibt nen Pointer auf TResearchProject zurück. Da ich eher wenig Erfahrung mit Pointern habe, weiß ich nicht, ob das überhaupt so funktioniert, wie man es für oben beschriebene Zwecke braucht. Wenn ich im Source richtig geguckt habe, wäre das aber nur eine kleine Abwandung der GetProjectByID, nämlich direkt PResearchProject zurückgeben, statt zu dereferenzieren.
2) procedure ReplaceReseachProject(OldID: Cardinal; NewProj: TResearchProject);
Im wesentlichen das gleiche wie oben "unter der Haube". Wird das holen des Pointers und Übertragen der Werte halt im Hauptprogramm erledigt statt (aus Sicht des Skripters "manuell") im Source. Würde aber evtl Performance kosten, wenn man nur einen Wert ändern will... aber dafür muss der Skripter sich nicht mehr Pointern anlegen.

Was meinen die Programmierer?
verfasst am: 17.10.2009, 20:38
Programming

Registrierdatum: 01.07.2008, 07:53

 Beiträge: 109
Greetings
Possible.
Pointer is unnecessary, enough to create and register single function, that overwrite value in forschlist.alleprojekt[] to given TforschProjekt(standart TResearchProject in MEdit). I check this only with name changing. If project already visible in Lab, do nothing.
But for 917 is planing new research system. Sorry, don't know it specification, but sure, that something to edit projects is exist.
Best regards.
verfasst am: 17.10.2009, 20:39
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5595
Für die 917 werde ich mit einer kompletten Überarbeitung der Forschungsliste beginnen, da die aktuelle Umsetzung von TForschList etwas "umständlich" ist. (Natter hat bei seinen Flüchen kräftigere Wörter gebraucht)

Vorher würde ich keinem Skripter empfehlen, die Daten anzurühren - selbst wenn Ihr das schafft, wird es früher oder später unwirksam werden, wenn die Listen umgestellt werden.
verfasst am: 17.10.2009, 22:47
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beiträge: 1185
Na dann üe ich mich mal in Geduld.

@gnaflex: That's what I suggested in 2) ^^
verfasst am: 18.10.2009, 20:23
Registrierdatum: 22.08.2008, 15:51

 Beiträge: 403
Ist aber ein interessanter Gedanke... also die Idee mit der Forschung.



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

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