EnglishGermanFrenchRussianItalianSpanish
Log inRegister
 
[DISKUSSION] Allgemeine S&M-Fragen III
Post new topic Reply to topic Goto page Previous  1, 2, 3, 4 ... 69, 70, 71  Next
View previous topic :: View next topic
Author Message
Wolf 1



MEDALMEDALMEDAL

Joined: 19 Mar 2008
Posts: 5624 on topic

Thank you for registering your game
PostPosted: Mon, 3. Jan 11, 10:55    Post subject: Reply with quote Print

@Bedachto:

Zu deinem Problem mit plötzlich modifizierten Spielständen gibt's bereits einen Sammelthread im TU Forum. Ich denke, da wärst du mit deinem Anliegen besser aufgehoben. Wink

http://forum.egosoft.com/viewtopic.php?t=247093&postdays=0&postorder=asc&highlight=modified&start=60

Back to top
View user's profile Send private message
Cpt.Falcon



MEDALMEDALMEDAL

Joined: 24 Dec 2010
Posts: 251 on topic

Thank you for registering your game
PostPosted: Mon, 3. Jan 11, 22:58    Post subject: Reply with quote Print

Wie kriege ich eine leere Zeile ins Script?
Mir fällt immer im Nach hinein etwas ein, dass vor etwas Anderes gehört hätte und dann bleibt mir nichts anderes übrig als mühselig nochmal von vorn anzufangen.
Hab mir dann Scripts angeschaut, und da sind teilweise 5 leere Zeilen einfach so.
New Line fordert aber immer gleich eine Aktion(?), z.B. Create Station.

Back to top
View user's profile Send private message
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)

MEDALMEDALMEDAL

Joined: 02 Apr 2006
Posts: 20705 on topic

Thank you for registering your game
PostPosted: Mon, 3. Jan 11, 23:05    Post subject: Reply with quote Print

Leere Zeilen gibt es mit der "Einfg"-Taste.


_________________
Besteht Interesse an einem Nopileos-Hörbuch?

Farnhams Legende und Nopileos als E-Books!

"People who think they know everything are a great annoyance to those of us who do." - Isaac Asimov

"If it's not impossible, there must be a way to do it." - Sir Nicholas Winton
Back to top
View user's profile Send private message Visit poster's website
Sapatus





Joined: 01 Aug 2010
Posts: 67 on topic

Thank you for registering your game
PostPosted: Thu, 6. Jan 11, 16:08    Post subject: Reply with quote Print

Hallo,

ich möchte gerade mein erstes Skript programmieren und bin dabei auf ein Problem gestoßen. Der Code sieht so aus:

Code:


001  $Heimatbasis = get player tracking aim
002
003  $Zielschiff = get player tracking aim
004
005  $Zielschiff -> set homebase to $Heimatbasis
006  return null



Das Skript soll den Spieler zwei Schiffe auswählen lassen. Das erste Schiff mit der Variable Heimatbasis soll im ersten Befehl ausgewählt werden, dass zweite mit der Variable Zielschiff danach. Dann soll das erste Schiff dem zweiten als Heimatbasis zugeteilt werden.

Nun lässt das Programm mich aber nur einmal ein Schiff auswählen und danach passiert nichts mehr.

Außerdem wurde das return null automatisch daruter geschrieben. Was bedeutet es?

mfg


_________________
Man möchte immer einen Credit mehr haben
Back to top
View user's profile Send private message
ScRaT_GER





Joined: 08 Jan 2008
Posts: 1958 on topic

Thank you for registering your game
PostPosted: Thu, 6. Jan 11, 16:20    Post subject: Reply with quote Print

"get player tracking aim" liest das aktuelle Ziel des Spielerschiffs aus (also angewählte Ziel, das meistens in einem seitlichen Bildschirme gezeigt wird). Es wartet also nicht auf eine Benutzereingabe, sonder schreibt direkt das momentan ausgewählte Schiff in die zurückgegebene Variable.
Deswegen sind bei dir $Heimatbasis und $Zielschiff die gleichen Objekte.

Du möchtest allerdings eine Benutzereingabe, weswegen du auch den entsprechenden Befehl verwenden musst:
Code:
$homebase = get user input: type={Var/Station} title='Wähle eine Heimatbasis aus'
$ship = get user input: type={Var/Ship} title='Wähle ein Zielschiff aus'
$ship -> set homebase to $homebase
return null


Quote:
Außerdem wurde das return null automatisch daruter geschrieben. Was bedeutet es?

Mit einem "return" Befehl, sagst du dem SE, dass das aktuelle Skript beendet ist. Der Wert hinter dem "return" (hier: null) wird dann als Rückgabewert an ein aufrufendes Skript weitergegeben.

"return null" gibt die Konstante "null" zurück (also keinen besonderen Wert). Da jedes Skript mindestens einen Endpunkt haben muss (also mindestens einen "return" Befehl), wird "return null" automatisch ergänzt, wenn es fehlt.

MfG,
ScRaT


_________________

Skripts:
Teladi Informations Service, Fahrtenbuch, Handelsübersicht
Back to top
View user's profile Send private message
Striker304





Joined: 26 Mar 2010
Posts: 890 on topic

Thank you for registering your game
PostPosted: Thu, 6. Jan 11, 16:23    Post subject: Reply with quote Print

Das Problem ist, dass du keine Zeitverzögerung drin hast.

Code:
001  $Heimatbasis = get player tracking aim
002
003  $Zielschiff = get player tracking aim

Diese beiden Zeilen werden ohne Zeitverzögerung ausgeführt. Das Script braucht insgesamt nicht einmal eine hundertstel Sekunde bis es fertig ist.

Ich würde folgendes empfehlen:

Code:

001  $Heimatbasis = get player tracking aim
002
003 $Zielschiff = get player tracking aim
004 while $Zielschiff == $Heimatbasis
005 $Zielschiff = get player tracking aim
006 =wait 200 ms
007 end
008
009  $Zielschiff -> set homebase to $Heimatbasis
010  return null


Das wäre die Variante mit "get player tracking aim". In zeile 4 wird geschaut, ob du immer noch dasselbe Ziel anvisiert hast. Die while-Schleife wird dabei so lange wiederholt, bis du ein anderes Ziel anvisierst.

Aber es geht viel eleganter, das ist die Methode, die ScRaT dir beschrieben hat.

mfg
Striker

Back to top
View user's profile Send private message
UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)

MEDAL

Joined: 20 Nov 2005
Posts: 13636 on topic

Thank you for registering your game
PostPosted: Thu, 6. Jan 11, 16:40    Post subject: Reply with quote Print

Man kann daran noch viel verbessern, hier nen paar Beispiele (um nen Code zu tippen bin ich atm zu müde..):

a) bei der Heimatbasis prüfen, ob das Schiff überhaupt daran docken kann (dafür muss zuerst das Schiff ausgewählt werden, da die Abfrage sonst eher störend wäre)

b) im falle von null-einträgen den Wert so lange abfragen, bis er was sinnvollles zurück gibt (also im prinzip ne existenzprüfung)

c) eine Bestätigung an den Spieler dass ein Wert akzeptiert wurde (z.B. per Untertiteleinblendung)


_________________
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter Wink

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help Wink
Back to top
View user's profile Send private message
Sapatus





Joined: 01 Aug 2010
Posts: 67 on topic

Thank you for registering your game
PostPosted: Thu, 6. Jan 11, 17:00    Post subject: Reply with quote Print

Vielen Dank für die Antworten. Ich habe noch eine Frage: Gibt es einen Befehl mit dem man die Schiffe die an einer Station gedockt sind auswählen kann?

mfg


_________________
Man möchte immer einen Credit mehr haben
Back to top
View user's profile Send private message
Striker304





Joined: 26 Mar 2010
Posts: 890 on topic

Thank you for registering your game
PostPosted: Thu, 6. Jan 11, 17:34    Post subject: Reply with quote Print

Code:
<RetVar> = <RefObj> get ship array from sector/ship/station

Dieser Befehl macht das, wenn du bei <RefObj> eine Station auswählst. Dieser Befehl gibt ein Array von Schiffen zurück.
Nur schon mal im Voraus, ein Array enthält durchaus auch mehrere Objekte.
Ein einzelnes Schiff daraus nimmst du mit dem Befehl
Code:
<RetVar>=<Var/Array>[<Var/Number>]

Bei <Var/Array> kommt das Array hin und bei <Var/Number> der Index.
Die Indizes beginnen mit 0 (also ist $Array[0] das erste, was im Array gespeichert ist).

Vielleicht kennst du das schon mit den Arrays, da ich aber am Anfang eben dies mit den Arrays nicht kannte und mein damaliger Code auch falsch war, erwähne ich es hier mal vorsichtshalber Wink

mfg
Striker

Back to top
View user's profile Send private message
Sapatus





Joined: 01 Aug 2010
Posts: 67 on topic

Thank you for registering your game
PostPosted: Fri, 7. Jan 11, 21:44    Post subject: Reply with quote Print

Vielen Dank für die Hilfe. Ich bin auf aber auf ein neues Problem gestoßen: Ich möchte denn Schiffen in dem Array eine Heimatbasis zuweisen, aber das funktioniert nicht. Ich kann den Schiffen nur einzeln einen Befehl geben indem ich sie aus dem Array in eine Variable schreibe. Wie kann ich nun die benötigten Schiffe aus dem Array hollen und dem neuen Array einen Befehl geben?

Wenn ich mein Skript wähle muss ich als erstes ein Schiff oder eine Station auswählen (ich glaube damit dort das Skript ausgeführt werden kann) und danach kommt ein Fenster wo der Name des Skripts gezeigt wird. Wie kann ich das verhindern und dem Skript einen Ausführort zuweisen.

mfg


_________________
Man möchte immer einen Credit mehr haben
Back to top
View user's profile Send private message
ScRaT_GER





Joined: 08 Jan 2008
Posts: 1958 on topic

Thank you for registering your game
PostPosted: Fri, 7. Jan 11, 21:52    Post subject: Reply with quote Print

Schau dir mal diesen Thread und die Antworten an (die Frage ist lustigerweise die gleiche wie bei dir).

Quote:
Wenn ich mein Skript wähle muss ich als erstes ein Schiff oder eine Station auswählen (ich glaube damit dort das Skript ausgeführt werden kann) und danach kommt ein Fenster wo der Name des Skripts gezeigt wird. Wie kann ich das verhindern und dem Skript einen Ausführort zuweisen.

Wenn du das Skript über die Skript-Oberfläche startest (also Skript markieren und dann {R}), lässt sich die Abfrage des Ausführungsortes nicht verhinden.

Dafür müsstest du das Skript entweder als Kommando über die Kommandokonsole eines Objektes (Schiff/Station) starten, oder über einen Hotkey.
Zu beidem gibt es meines Wissens Tutorials - ansonsten wie immer: Code von anderen lesen.

MfG,
ScRaT


_________________

Skripts:
Teladi Informations Service, Fahrtenbuch, Handelsübersicht
Back to top
View user's profile Send private message
Sapatus





Joined: 01 Aug 2010
Posts: 67 on topic

Thank you for registering your game
PostPosted: Sun, 9. Jan 11, 20:04    Post subject: Reply with quote Print

Hallo, ich finde es echt toll das ihr euch die Mühe macht mir die Fragen zu beantworten und vielen dank dafür.

Ich habe aber ein Problem mit den if- funktionen. Ich kann zwar auch Schleifen in die if-Funktion einbauen, aber keinen zweiten Befehl, weil dieser nicht ausgeführt wird, während der erste Befehl reibungslos funktioniert.

Bsp.

Code:

if §Variable.1 == 1
  Befehl 1
  Befehl 2
else ....





mfg


_________________
Man möchte immer einen Credit mehr haben
Back to top
View user's profile Send private message
ScRaT_GER





Joined: 08 Jan 2008
Posts: 1958 on topic

Thank you for registering your game
PostPosted: Sun, 9. Jan 11, 20:17    Post subject: Reply with quote Print

Doch, genauso wie du es geschrieben hast funktioniert es. Zeig am besten mal Code bei dem das Problem auftritt.

MfG,
ScRaT


_________________

Skripts:
Teladi Informations Service, Fahrtenbuch, Handelsübersicht
Back to top
View user's profile Send private message
Sapatus





Joined: 01 Aug 2010
Posts: 67 on topic

Thank you for registering your game
PostPosted: Sun, 9. Jan 11, 21:10    Post subject: Reply with quote Print

Ich habe den Fehler selbst gefunden, ich habe ein THIS zuviel eingesetzt. Headbang

mfg


_________________
Man möchte immer einen Credit mehr haben
Back to top
View user's profile Send private message
CWUulf





Joined: 10 Jan 2011



PostPosted: Mon, 10. Jan 11, 06:51    Post subject: Reply with quote Print

Hallo.
Ich bin neu hier im forum kenne die X serie aber schon sehr lange und bin auch schon ewig damit beschäftigt zu modden. ich hab die SuchFunktion benutz und mir die augäpfel wund gelesen und auch einige sehr sehr gurt tut gefunden die mir sehr weit geholfen haben. leider musste ich immer wieder fetstellen das manche dinge entweder nicht erwähnt erden uoder ich einfach zu doof dazu bin s richtig umzusetzen....

Also mein projekt fing damit an dass erstmal nur eon appr schiffe gegen selbstcreierte austauschen wollte. dabei kam mir beim basteln schon oft das problem unter das 3dsmax meine texturen nicht richtig schlucken wollte deshalb wollte ich mal fragen ob sich da jemand mit uskennt oder aobs hier irgendwo ein texturen tut für den 3dsmax gibt... zur not aus gmax obwohl ich den weniger mag. ich hab da immer wier so meine problemchen die texturen in den mateditor zu bekommen wenn dann klappts nur per zufall.

und meine zweite frage wäre ob jemand nen plan hat obs irgendwie die möglichkeit gäbe eine weiter fraktion einzufügen... ich denke da hängt viel mit scripten zusammen und davon hab ich wirklich keinen plan aber ich würds lernen wenn ich nen ansatz und ein entsprechendes tut hätte.

am rande möchte ich noch erwähnen dass ich den ganzen krempel alleine mache neben meinem job als Informatik lehrling... also die früchte meiner arbet erden noch auf sich warten lassen ich würd aber gerne mal n paar screenshots hochladen aber dazu mössten die moddels erstmal fehlerfrei sein^^ ... also schonmal dake für die hilfe und ich vergebt mir mein unwissen^^

Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic Reply to topic Goto page Previous  1, 2, 3, 4 ... 69, 70, 71  Next
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum
Control Panel
Login Data
The time now is Tue, 19. Jun 18, 18:23

All times are GMT + 2 Hours

[ Disclaimer / Impressum ] | [ Privacy Policy / Datenschutz ]

Board Security

Copyright © EGOSOFT 1989-2018
Powered by phpBB © 2001, 2005 phpBB Group
Template created by Avatar & BurnIt!
Debug: page generation = 0.10976 seconds, sql queries = 29