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: 28.06.2007, 12:19 · Edited by: LennStar
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Zitat: LennStar
Aber wenn ich es jetzt durchlaufen lasse, kommt nicht immer die ID sondern noch 3 andere Zahlen, zwei davon im Minus (z.B. -928777844).
Allerdings nur bei F9, nicht bei F8.

Hat das nun eine Bedeutung? Passieren sollte es eigentlich nicht...
jedenfalls hab ich jetzt keine Fehlermeldung mehr bei der alten Version ohne irgendein XintoX.

Wie ist das, wenn man Variablen in Nachrichten einbauen möchte?
savegame_api_Message( 'text1' var 'Text2' ; MType: TLongMessage; Objekt: TOBJECT); ?
Und wie ist das mit Konstanten? Da hab ich beim probieren mit dne Sachen oben eine Fehlermeldung bekommen, muss ich erst intostr machen? Das funktioniert doch dann aber nur mit Zahlen, oder? Was ist mit Buchstaben?

-------------

Ich möchte eine Unit UFOLandung. Darin soll nur abgewickelt werden: Das existierende UFO landet, bildet einen Bodeneinsatz, hört für die Dauer des Einsatzes auf zu existieren und startet dann wieder.

Jetzt meine Fragen:
Das UFO ist mit TUFO erstellt. Da drin ist aber keine ID gespeichert. Wie krieg ich nach dem Bodeneinsatz das selbe UFO wieder?
Hat ein Bodeneinsatz generell Folgen für die Zufriedenheit des Landes?
verfasst am: 28.06.2007, 17:28
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
Zitat: LennStar
Wie ist das, wenn man Variablen in Nachrichten einbauen möchte?
savegame_api_Message( 'text1' var 'Text2' ; MType: TLongMessage; Objekt: TOBJECT); ?
Und wie ist das mit Konstanten? Da hab ich beim probieren mit dne Sachen oben eine Fehlermeldung bekommen, muss ich erst intostr machen? Das funktioniert doch dann aber nur mit Zahlen, oder? Was ist mit Buchstaben?

'text1'+inttostr(Zahlvar)+'Text2'+Konststring+'Text3'
usw
Zitat: LennStar
Wie krieg ich nach dem Bodeneinsatz das selbe UFO wieder?

Momentan gar nicht.
Du kannst nur das alte löschen, danach ein neues erzeugen und ggfs. das neue mit den Werten (Name etc.) des alten belegen, wenn Du sie zwischengespeichert hast. Die ID würde ich dabei aber nicht verändern.
-----
Farben:
normal Gelb/Dunkelblau
Auswahl Dunkelblau/Silber
verfasst am: 28.06.2007, 17:55
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Zitat: DirkF
Du kannst nur das alte löschen, danach ein neues erzeugen und ggfs. das neue mit den Werten (Name etc.) des alten belegen, wenn Du sie zwischengespeichert hast. Die ID würde ich dabei aber nicht verändern.

Also mal der Reihe nach:
Ich erzeuge mit ufo_api_CreateUFO ein *Lander*UFO, lass das ein wenig fliegen, dann Landung
Bodeneinsatz erzeugen, populate from *lander*
dan brauch ich UFOescape, um das UFO verschwinden zu lassen. Die escape-Meldung lässt sich nicht unterdrücken? (find ich sowieso blöd)
Das UFO ist immer noch gespeichert? Gilt das auch für die Aliens (Zahl und Typ) da drin?
Wenn ja, kann ich mit CreateUFOFromModel*Lander* ein neues UFO mit diesen gespeicherten *Lander*Daten erzeugen.

Soweit richtig?
verfasst am: 28.06.2007, 18:57
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
Zitat: LennStar
Das UFO ist immer noch gespeichert? Gilt das auch für die Aliens (Zahl und Typ) da drin?

Nein, das UFO existiert dann nicht mehr - Du musst die Daten vorher in temporäre Skriptvariablen kopieren.

Und nach der Erschaffung eines anderen UFOs desselben Typs diese Daten wieder zurückschreiben in das neue UFO-Objekt.

Das mit UFO.Escape lässt sich auch noch nicht umgehen.
verfasst am: 29.06.2007, 17:44
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Boden.RemainTime(Zeit);
Type mismatch: Wird da nur eine Zahleneingabe akzeptiert? Keine Variable? Kein random?

Und funktioniert sowas
UFOspeicher:=UFO;
oder muss ich das einzeln auslesen? Wenn ja, wie?
Es ist in der Doku keine ID aufgeführt, und bei Besatzung steht nur longint, was ja etwas wenig ist für mehrere Aliens... oder wird erst gewürfelt wer drin sitzt, wenn ein Bodeneinsatz startet? Das ist nur die Zahl?
verfasst am: 29.06.2007, 18:48
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beiträge: 3186
Zitat: LennStar
Boden.RemainTime(Zeit);
Type mismatch: Wird da nur eine Zahleneingabe akzeptiert? Keine Variable? Kein random?

Ist Zeit den eine Integer-Variable?
verfasst am: 29.06.2007, 19:03
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Zitat: Natter
Ist Zeit den eine Integer-Variable?

longint, wies in der Doku unter TEinsatz.RemainTime steht.
integer macht auch typemismatch. Genauso wie nur ne Zahl *grad probiert hat*
verfasst am: 29.06.2007, 19:25
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
Zitat: LennStar
Es ist in der Doku keine ID aufgeführt, und bei Besatzung steht nur longint, was ja etwas wenig ist für mehrere Aliens... oder wird erst gewürfelt wer drin sitzt, wenn ein Bodeneinsatz startet? Das ist nur die Zahl?

Das UFO hat eine komplette Besatzung, aber die Befehle zum Zugriff (Add/Remove) gibt es erst in der nächsten Version.

Zitat: LennStar
Boden.RemainTime(Zeit);
Type mismatch: Wird da nur eine Zahleneingabe akzeptiert? Keine Variable? Kein random?

Poste mal, wo und wie Du Zeit definiert hast - das fehlt zur Fehlersuche, und wahrscheinlich liegt da auch der Knackpunkt.
Ansonsten: UKI_ACdown im Galaktischen Krieg ist das Skript, wo ich die Bodensätze erzeuge und unterschiedlich lange platziere, vergleich das mal.
verfasst am: 29.06.2007, 19:46 · Edited by: LennStar
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
So siehts bis jetzt aus. Ich hoffe, jetzt passts auf die Seite, hab den Text weggekürzt...
Das UFO ist in var nur drin, damit nicht gemeckert wird, das wird ja außerhalb der Unit erstellt. Kanns sein, dass darum bei Boden gemeckert wird, weil keine Aliens existieren?
// Diese Unit erstellt aus einem bekannten UFO einen Bodeneinsatz. Das UFO verschwindet.
// Der Bodeneinsatz bleibt eine gewisse Zeit und wird dann aufgelöst, ein neues UFO
// erscheint, mit den Daten des alten (aber neue Bezeichnung).
// Es ist dabei VORAUSSETZUNG, dass das ursprünglich UFO in der Variable UFO gespeichert ist.

unit UKI_Zwischenlandung;

procedure Zwischenlandung;
    var
    Boden: TEinsatz;
    UFOSpeicher: TUFO;
    Zeit: longint;
    UFO: TUFO;

begin
  savegame_api_Message(*',lmMissionMessage,Nil);
  UFOspeicher:=UFO;
  Zeit:=random(360)+120;
  Boden:= einsatz_api_generateEinsatz;
  Boden.PopulateFromUFO(UFO);
  UFO.Escape;
  Boden.RemainTime(Zeit);
  Boden.Name:= 'Überfall auf ein gelandetes UFO';
  Boden.Objectives:= '*.';
  Boden.Description:= '*.';
  Boden.start;
end;


begin
  MissionName:='Zwischenlandung';
  MissionType:=mzUFO;
end.
verfasst am: 29.06.2007, 19:52 · Edited by: DirkF
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
EDIT:

versuch mal
Boden.RemainTime:=Zeit;

Das ist eine Eigenschaft, keine Methode...

Sorry, gerade erst gesehen, vorheriger Tip war falsch (auch wenn er nur für wenige Sekunden bis zum Edit hier stand)
verfasst am: 29.06.2007, 20:07 · Edited by: LennStar
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
AH! Jetzt gehts...
aber ich hätte doch ganz gerne noch eine definitve Antwort auf die obige Frage:

Und funktioniert sowas
UFOspeicher:=UFO;

oder auch generell gesagt: So ein ganzer TXXX1 in TXXX2
verfasst am: 29.06.2007, 20:21
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
Zitat: LennStar
aber ich hätte doch ganz gerne noch eine definitve Antwort auf die obige Frage:

Und funktioniert sowas
UFOspeicher:=UFO;

oder auch generell gesagt: So ein ganzer TXXX1 in TXXX2

Probier das aus - ich hätte geantwortet wenn ich es wüsste.
Das hängt nämlich davon ab, ob bei der Aktion der Zeiger auf das Objekt kopiert wird (dann zeigt der anschließend ins Leere) oder ob die Daten kopiert werden...
verfasst am: 29.06.2007, 20:27
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Mist. edit zu spät. Also neu:

Wie krieg ich das jetzt hin, dass zwar das UFO nach Ablauf der Zeit neu erschaffen wird, aber nicht wenn der Bodeneinsatz stattfindet?
mit TTimerEvent und Active: Boolean; und register_timed_event irgendwie?
verfasst am: 29.06.2007, 20:56
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
Guck Dir mal das Lander-Skript im GalWar an.
Das UFOstart wird ja nicht mehr ausgelöst, wenn es nicht zum Event "Einsatzzeitende" kommt, z.B. weil der Bodeneinsatz vorher verschwindet.
verfasst am: 29.06.2007, 21:51
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Was genau sagt das (UFO.Position,2) aus in:
UFO.FlyToPoint(PositionNear(UFO.Position,2));
PositionNear berechnet einen Punkt. Ist UFO.Position der Ausgang der Berechnung? Und was hat die 2 da zu suchen?

-----
Wie erschaffe ich jetzt das UFO? Mit
ufo_api_CreateUFO wird eins zufällig ausgewählt
ufo_api_CreateUFOFromModel wäre wohl das passendste, aber wir haben nur TUFO und nicht TUFOModel
und die andern beiden holen die UFOs aus dem editor.
verfasst am: 29.06.2007, 21:57
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
Zitat: LennStar
PositionNear berechnet einen Punkt. Ist UFO.Position der Ausgang der Berechnung? Und was hat die 2 da zu suchen?

Das ist eine der Skriptfunktionen in UKI_BAgeo, dort bitte nachlesen
Zitat: LennStar
ufo_api_CreateUFOFromModel wäre wohl das passendste, aber wir haben nur TUFO und nicht TUFOModel

Natürlich hast Du das TUFOModell, das ist doch das einfachste überhaupt. siehe
http://doc.xforce-online.de/ger_pages/XSkriptReferenz/TypTUFO.html
verfasst am: 29.06.2007, 22:14 · Edited by: LennStar
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Zitat: DirkF
Das ist eine der Skriptfunktionen in UKI_BAgeo, dort bitte nachlesen

Radius in was? km? Finden alle Entfernungsangaben in km statt (wollt ich eh fragen...).


Zitat: DirkF
Natürlich hast Du das TUFOModell, das ist doch das einfachste überhaupt. siehe
http://doc.xforce-online.de/ger_pages/XSkriptReferenz/TypTUFO.html


Und was ist dann [url=http://doc.xforce-online.de/ger_pages/XSkriptReferenz/TypTUFOMode l.html
]http://doc.xforce-online.de/ger_pages/XSkriptReferenz/TypTUFOModel.ht m l
[/url]

ufo_api_CreateUFOFromModel(UFO); |bei UFO: TUFO;
gibt jedenfalls wieder Type mismatch.


unit UKI_Zwischenlandung;
uses UKI_BAgeo;
  var
    UFOSpeicher: TUFO;
    UFO: TUFO;
    
procedure ZwischenlandungStart(Sender:TObject);
begin
  UFO:=UFOSpeicher;
  ufo_api_CreateUFOFromModel(UFO);

end;
    
procedure Zwischenlandung;
  var
    Boden: TEinsatz;
    Zeit: longint;

begin
  savegame_api_Message(t.',lmMissionMessage,Nil);
  UFOspeicher:=UFO;
  Zeit:=random(360)+120;
  Boden:= einsatz_api_generateEinsatz;
  Boden.Position:=UFO.Position;
  Boden.PopulateFromUFO(UFO);
  UFO.Escape;
  Boden.RemainTime:=Zeit;
  Boden.Name:= 'Überfall auf ein gelandetes UFO';
  Boden.Objectives:= .';
  Boden.Description:= .';
  Boden.start;
  register_event(@ZwischenlandungStart,Boden,EVENT_ONEINSATZTIMEUP);
end;


Nacht für heute erstmal. Das Regenwetter macht mich immer soooo müde *schnarch*
verfasst am: 29.06.2007, 22:30
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
Die Entfernungsangaben sind in Grad - 360 ist einmal um die Erde.

Und der Link mit der Referenz von TUFO war zum durchlesen da - dann hättest Du festgestellt, das das Modell eine Eigenschaft des UFOs ist - natürlich ist das nicht identisch, aber man kann das eine aus dem anderen heraus aufrufen.

Also ufo_api_CreateUFOFromModel(UFO.model);

Übrigens:
Je mehr Fragen hier gestellt werden, die man genausogut auch selber durch einfaches Nachlesen in der Referenz bzw. im Skriptcode lösen könnte, umso weniger Zeit habe ich um am Spielsatz und am Programm zu arbeiten ;-)
verfasst am: 30.06.2007, 13:15 · Edited by: LennStar
Spielsatz Darkage

Registrierdatum: 01.03.2005, 13:47

 Beiträge: 1846
Zitat: DirkF
dann hättest Du festgestellt, das das Modell eine Eigenschaft des UFOs ist

Ähm... ich beschränke mich hier mal auf ein einfaches Nein, statt eine 2-Seiten Begründung anzugeben.

Ein einfaches Nachlesen genügt häufig nicht, da Leute meines Standes
a) meist gar nicht wissen, wo sie nachlesen sollten, und
b) ohne Beschreibung auch nur auf mehr oder weniger Probieren angewiesen sind.

Du kannst es mit jeder anderen (menschlichen) Sprache vergleichen: Vokabeln kann man nachschlagen, auch grammatische Regeln, aber zum Anwenden braucht man vor allem eines: Übung, Übung und du weiß schon was.
Selbst wenn man von etwas Kenntnis hat, heißt das nicht, dass einem das auch einfällt wenn man es braucht.

------------------

Wenn ich zu der Variablen UFO (:TUFO) den Punkt setzte (UFO.) kommt statt dem Auswahlfenster, das wohl erscheinen soll, folgende Meldung:

Zugriffsverletzung bei Adresse 00551695 in Modul "medit.exe". Lesen von Adresse 00000020.

Ist das ein Editorfehler oder hab ich was falsch eingeben? DUrchlaufen tuts danach jedenfalls ohne eine Meldung.
edit: Die Fehlermeldung kommt auch ,wenn ich den Punkt einfach in die Pampa setze.
verfasst am: 30.06.2007, 15:29
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beiträge: 5596
Den Fehler mit der Zugriffsverletzung kenne ich auch - aber er ist sporadisch und nur schwer zu lokalisieren.
Er ist allerdings ein indirekter Hinweis darauf, das Du irgendwo vorher einen unglücklichen (d.h. nicht der korrekten Syntax entsprechenden aber trotzdem keinen Fehler erzeugenden) Code stehen hast.

Wenn Du eine beliebige Record-Variable mit korrekter Einbindung hast, dann wird nach dem Punkt ein Fenster aufgerufen, in dem die an der aktuellen stelle passenden Eigenschaften und Funktionen zur Auswahl gegeben werden - sehr bequem.

Wenn der Fehler kommt, dann hat das Programm zwar gemerkt das eine solche Variable aufgerufen werden soll, findet aber nicht die korrekte Zuordnung - z.B. weil vorher irgendwo ein Semikolon fehlt oder zuviel ist etc.

Fehlermeldung ignorieren und das ganze manuell ohne die Hilfeauswahl eintippen, es funktioniert dann meistens doch (es sei denn der Skript-Code-Fehler der die Probleme erzeugt ist schwerwiegender).

Zitat: LennStar
b) ohne Beschreibung auch nur auf mehr oder weniger Probieren angewiesen sind.

Stimmt, aber wenn man nur halbwegs aufpasst ist das ein intelligentes Probieren, bei dem man spätestens mit dem zweiten oder dritten Versuch die Lösung hat.
Du suchtest einen Wert mit dem Typ "TUFOModell" - und in der verlinkten Aufzählung gibt es nur einen derartigen Wert.

Ich lese mir meistens solche Texte auch nicht mehr durch - wenn ich so eine Problemstellung habe nutze ich direkt Strg-F oder das entsprechende Äquivalent...

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.020 · Powered by miniBB 1.6 with parts of 1.7 © 2001-2003