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 —› Frage

Autor Mitteilung
verfasst am: 11.06.2008, 15:14 · Edited by: BlackBetty
Registrierdatum: 27.06.2007, 12:16

 Beiträge: 658
Da mein Spielsatz langsam wächst und allmählig komplizierter wird, möchte ich mal wissen, wie ich eine globale Variable (vom Typ Integer)die einen Startwert hat, im Laufe des Spiels verändere.
Da mein Spielsatz mit Leveln arbeitet (d.h. Waffenlevel) möchte ich auch die Alienausrüstung daran anpassen. Außerdem möchte ich möglich machen, dass starke Aliens auch schwache Ausrüstung bekommen können, wenn sie eine bestimmte Vorraussetzung erfüllen (wie ich das mache, weiß ich schon).


Das Problem ist:
Habe das bereits versucht mit game_api_registerInterger etc. inklusive Initialisierungsskript und mir auch die Beispiele in GalWar angesehen, aber irgendwie werde ich nicht schlauer draus. Wenn ich diese vermeintlich erstellten Variablen aufrufen möchte (mit einem Missionsskript, das u.A. auch die Ausrüstungs-Funktion aufruft), so zeigt die Nachricht keinen Wert an. Zeile sieht ungefähr so aus:
game_api_MessageBox(format('Der Wert ist '+[Wert])); 

(Nun ja, es kann sein dass ich auch einfach mit game_api_messagebox geschlampt habe...)

Ich frage also: Wie also kann man so eine globale Variable mit Startwert festlegen? wenn ich eine Möglichkeit kenne dann kann ich sicherlich auch den Fehler in meinen Skripten finden.
verfasst am: 11.06.2008, 15:21 · Edited by: Jim_Raynor
Programmierer

Registrierdatum: 23.08.2003, 19:16

 Beiträge: 2261
Hi,

hilft dir vielleicht:

http://www.xforce-online.de/forum/index.php?action=vthread&forum=29&to pic=1640

weiter? Dort sind die Globalen Variablen und deren Benutzung/Definition beschrieben.
P.S: richtig heißt es:
game_api_MessageBox(format('Der Wert ist ',[Wert]));
(Komma statt +) ;)
verfasst am: 11.06.2008, 15:30
Registrierdatum: 27.06.2007, 12:16

 Beiträge: 658
:D ahhh danke! habe gerade eben auch gemerkt, dass mehr nötig ist als alleiniges Registrieren...

hab halt gschwind was reingetippt XD so steht's ja auch im Skript. :)
verfasst am: 11.06.2008, 15:30 · Edited by: Natter
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
Zitat: Jim_Raynor
P.S: richtig heißt es:

game_api_MessageBox(format('Der Wert ist ',[Wert]));

(Komma statt +) ;)


Ich hab zwar noch nicht viel mit format gearbeitet, aber fehlt da nicht immernoch der Platzhalter für die Integervariable im String? Ich würde ja spontan vermuten, der Fehler liegt bei game_api_MessageBox ;)

edit: wie es aussieht hat sich das ja eh schon erledigt ^^
verfasst am: 11.06.2008, 15:32
Programmierer

Registrierdatum: 23.08.2003, 19:16

 Beiträge: 2261
Zitat: Natter
Ich hab zwar noch nicht viel mit format gearbeitet, aber fehlt da nicht immernoch der Platzhalter für die Integervariable im String? Ich würde ja spontan vermuten, der Fehler liegt bei game_api_MessageBox ;)
Ja, da hast du recht, je nach dem welcher Typ Wert ist, muss man noch %s (für String) oder %d (für Integer) als Platzhalter angeben.
verfasst am: 12.06.2008, 11:43
Registrierdatum: 27.06.2007, 12:16

 Beiträge: 658
das mit dem Platzhalter habe bereits korrigiert... >.<* ich hab die Skripte voller Fehler verpackt und wundere mich dann, dass es nicht geht... :D


btw, mir ist grad im Objektbrowser des SkriptEditors folgendes aufgefallen:
country_api_GetRandomTown(Country:LongInt):TTown
Müsste das nicht
country_api_GetRandomTown(CountryID:LongInt):TTown 
heißen? ;)
verfasst am: 12.06.2008, 22:48
Registrierdatum: 27.06.2007, 12:16

 Beiträge: 658
Was ist eigentlich TDataHolder? Wie ich sehe, wird das im Galaktischen Krieg benutzt. (für die Speicherung der verschiedenen Phasen vllt.? Ich weiß es nicht mehr ;) )

Ist TDataHolder so was wie eine Liste oder wie kann man diesen Typen einsetzen?
verfasst am: 12.06.2008, 23:05
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
TDataHolder ist ein Objekt, in dem man beliebige Daten speichern kann - inklusive anderer Objekte, was mit den globalen Variablen nicht so ohne weiteres möglich ist.

Ansonsten arbeitet es ähnlich wie die register/set/get-Funktionen der globalen Variablen, nur das dies hier Methoden des Objektes statt allgemeiner Funktionen sind.

Das gibt einige Vorteile in der Verwaltung, aber theoretisch kann man mit dem DataHolder ähnlich arbeiten wie mit den Funktionen zu den globalen Variablen - nur das man den DataHolder vorher als Objekt erzeugen muss und die Befehle dann leicht anders aussehen.


Hinweis für Programierer: Am ehesten kann man den DataHolder als einen dynamisch zur Laufzeit definierten Record betrachten.



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

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