Seite: 1 [2] [3] [4] [5] [6] [7] [8] [9] [10] .. [23] [24] >> |
Autor |
Mitteilung |
|
verfasst am: 26.05.2009, 18:36
|
Registrierdatum: 18.05.2009, 21:12
Beiträge: 81
|
Da ich mich grade mit X-Script beschäftig und auf Grund meiner Abitur-Ausbildung, in der ich grade Delphi lerne, ist mir aufgefallen das sich einige Funktionen, relativ ähneln.
Geh ich richtig in der Annahme das X-Script so "ähnlich" wie Delphi ist?
Noch eine 2. Frage kann X-Script mit Unit umgehen und somit auch welche erstellen kann? |
|
verfasst am: 26.05.2009, 19:08
|
Spielsatz Alliances
Registrierdatum: 14.07.2004, 14:47
Beiträge: 1185
|
Bin zwar kein großer X-Skripter, aber soweit ich weiß (ich bitte um Bestätigung/Korrektur durch jemanden der Ahnung hat) ist es folgendermaßen:
X-Skript basiert auf Pascal, was afaik Delphi verdammt ähnlich ist.
Units sollten eigentlich klappen, ich glaube jedenfalls das zwei der Skripte in meinen Spielsatz (welche nicht vion mir sind, sondern von Baltharus) eine Unit benutzen. |
|
verfasst am: 26.05.2009, 19:21 · Edited by: Natter
|
Programmierer, allgemeines
Registrierdatum: 06.06.2004, 17:19
Beiträge: 3186
|
Sujin hat im wesentlichen recht. X-Skript basiert auf einer Skriptengine Namens PascalScript.
Auch wenn X-Skript für eine Skriptsprache sehr mächtig ist, gibt es doch eine Reihe Punkte, wo es an Grenzen stößt (bzw. sich von Delphi unterscheidet). Eigene Objekte können nicht angelegt werden, überlagerte Prozeduren mit unterschiedlich vielen Parametern sind nicht möglich ...
Der Einsatz von Units ist allerdings kein Problem. |
|
verfasst am: 26.05.2009, 19:46 · Edited by: Susanoo27
|
Registrierdatum: 18.05.2009, 21:12
Beiträge: 81
|
Wenn du das Script mal postest könnte ich dir das auch sagen.
Ich geh aber mal davon aus das X-Script ein deutig aus Delphi stammt.
Das sieht man daran das die Scripte über Proceduren laufen, kann man zwar auch in Pascal möglich, aber in Pascal wird der Procedur-Name im Hauptteil, zwischen Begin und dem End mit den Punkt, steht. Ausserdem wird im X-Script, wie auch in Delphi, so gut wie nichts zwischen "Begin und End." steht.
Edit: Natter das ist gut. Auch wenn ich jetzt meine Zeile entfernen könnte werde ich es nicht tun, da es eigentlich für rellativ jeden interresant sein könnte.
Werden die Unti auch wie in Pascal über TPU realliesiert? |
|
verfasst am: 26.05.2009, 19:51
|
Spielsatz Alliances
Registrierdatum: 14.07.2004, 14:47
Beiträge: 1185
|
Zitat: Susanoo27 Wenn du das Script mal postest könnte ich dir das auch sagen.
uses UNIT_Defaultwerte;
(UNIT_Defaultwerte ist ne Reihe von Variabeln, UFO-IDs um genau zu sein, die in einem Skript ein- und in einem anderen ausgeschaltet werden). |
|
verfasst am: 26.05.2009, 19:55
|
Registrierdatum: 18.05.2009, 21:12
Beiträge: 81
|
@ sujin: Ja das ist eine Unit. |
|
verfasst am: 26.05.2009, 19:55
|
Spielsatz Alliances
Registrierdatum: 14.07.2004, 14:47
Beiträge: 1185
|
Dann ist ja gut ^^ |
|
verfasst am: 26.05.2009, 20:01
|
Admin, Spielsatz GalWar
Registrierdatum: 31.08.2005, 21:51
Beiträge: 5596
|
Delphi ist eine Weiterentwicklung von Pascal, nicht umgekehrt. Und Pascalscript ist eine in Delphi geschriebene Opensource-Komponente, die es ermöglicht in Programmen Skripte mit einer Pascal-ähnlichen Syntax ablaufen zu lassen.
Zum XScript gibt es in unserem Wiki auch ein Tutorial, in dem insbesondere auf die speziellen XForce-Befehle eingegangen wird. |
|
verfasst am: 26.05.2009, 20:09
|
Registrierdatum: 18.05.2009, 21:12
Beiträge: 81
|
Ja Dirk bei dem bin ich grade.
So hab das mit der Unit hinbekommen.
Dirk wenn du das hier, meinst:
Zitat: Susanoo27 Das sieht man daran das die Scripte über Proceduren laufen, kann man zwar auch in Pascal möglich, aber in Pascal wird der Procedur-Name im Hauptteil, zwischen Begin und dem End mit den Punkt, steht. Ausserdem wird im X-Script, wie auch in Delphi, so gut wie nichts zwischen "Begin und End." steht.
Entschuldigung wenn das falsch rüber gekommen ist. Ich weis schon das Delphi die weiter Entwicklung von Pascal ist. |
|
verfasst am: 27.05.2009, 21:51 · Edited by: Susanoo27
|
Registrierdatum: 18.05.2009, 21:12
Beiträge: 81
|
Brauche mal Hilfe.
Ich bekomme bei meine kleinen Test-Unit :
Unit NameU;
Interface
procedure NameU;
Var Nab : String;
Implementation
procedure NameU;
Begin
game_api_MessageBox('Geben sie ihren Namen ein');
game_api_QueryText('Name', 20, Nab);
end;
End.
Auf der Zeile 9, vor Implementation, verlangt er ein "Begin". Wenn ich die Variable nach Implementation schiebe will er das Begin nicht mehr haben.
Meiner Auffassung nach müsste es mit der Var auch im Interfacebereich gehen, von Pascal her, oder irre ich mich da? |
|
verfasst am: 27.05.2009, 22:03 · Edited by: Natter
|
Programmierer, allgemeines
Registrierdatum: 06.06.2004, 17:19
Beiträge: 3186
|
Hmm, X-Skript arbeitet da doch etwas anders. Auf Implementation kannst/solltest du ganz verzichten. Gleiches gilt für Interface. Willst du einen Prozedur-Namen vor der Definition der Prozedur schon deklarieren, dann kannst du einfach 'forward;' anhängen. Hier mal 2 Beispiele.
1) normales Skript:
program AlienAI_default;
uses GFAItools;
const
MinHitChance=80;
var
EnemyFound:Boolean;
AlienFigure:TGameFigure;
procedure FindAndAttackTarget; forward;
procedure LookAround; forward;
procedure OnGetSpotted(Sender: TObject); forward;
procedure OnReachedReservedTU(Sender: TObject); forward;
procedure OnReachedDest(Sender: TObject); forward;
procedure OnSeeUnit(Sender: TOBJECT); forward;
procedure OnRoundBreak(Sender:TObject); forward;
procedure OnNewRound(Sender: TOBJECT); forward;
... Definitionen zu den Prozeduren ...
procedure StartMission; // darf in keinem normalen Skript fehlen
var
... // je nach Bedarf können hier lokale Variablen angelegt werden
begin
...
end;
begin
MissionName:='AlienAI_default';
MissionType:=mzUser;
end.
2) Unit - dort gibt es keine Prozedur StartMission
unit GEN99test;
// Listet die Namen aller globalen Variablen auf
procedure GEN99ShowAllGVs;
var
Vars: TStringArray;
Dummy : Integer;
Text : String;
begin
game_api_GetGlobalVars(Vars);
Text:='';
for Dummy:=0 to getarraylength(Vars)-1 do
Text:=Format('%s%d. %s'#13#10,[Text,Dummy+1,Vars[Dummy]]);
savegame_api_Message(Text,lmMissionMessage,NIL);
end;
end.
Siehe auch
http://doc.xforce-online.de/ger_pages/XSkriptTutorial/Skriptaufbau.htm l
PS: Wenn dir das Tutorial zu X-Skript zu ausführlich ist, kannst du ja mal einen Blick in den Anhang B werfen. |
|
verfasst am: 28.05.2009, 05:42 · Edited by: Susanoo27
|
Registrierdatum: 18.05.2009, 21:12
Beiträge: 81
|
Ne das Tutorial ist nicht zu ausführlich.
Aber danke für den Tip mit Anhang B.
Dort steht ja auch die Unit mit drinne.
Danke Natter |
|
verfasst am: 22.11.2023, 09:49
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69158
|
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69158
|
|
|
verfasst am: 11.01.2024, 19:19
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69158
|
|
|
verfasst am: 11.01.2024, 19:20
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69158
|
|
|
verfasst am: 11.01.2024, 19:21
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69158
|
|
|
verfasst am: 11.01.2024, 19:22
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69158
|
|
|
verfasst am: 11.01.2024, 19:23
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69158
|
|
|
verfasst am: 11.01.2024, 19:24
|
Registrierdatum: 22.11.2023, 07:10
Beiträge: 69158
|
|
Seite: 1 [2] [3] [4] [5] [6] [7] [8] [9] [10] .. [23] [24] >> |