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: kein Gast, xanbank

 X-Force - Fight For Destiny - Forum —› X-Skript / Developer-Pack —› Eigene Objekte bzw Klassen?

Seite: 1 [2] [3] [4] [5] [6] [7] [8] [9] [10] .. [46] [47] >>

Autor Mitteilung
verfasst am: 23.09.2009, 18:07 · Edited by: sujin
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beitrge: 1185
Ja, wie denn? Records gehen problemlos, von denen mache ich auch gelegentlich Gebrauch. Aber sobald ich das unscheibare reserved word "class" verwenden will, hagelt es Fehlermeldungen.
Es luft immer darauf hinaus, dass vor class ein identifier muss... was wie wo?
Ich habe mich hauptschlich mit X-Skript aka Pascal-Script und weniger mit dessen groen Bruder Pascal beschftigt, aber ein wenig habe ich schon mitbekommen... zum Beispiel, dass eine Klasse ungefhr so deklariert wird:
MyClass = Class(ParentClass)
  // Felder
  // Methoden
  // etc
end;


Wie deklariere ich bitte in Pascal-Skript eine Klasse? Oder, anders gefragt: Ist es berhaupt mglich, in eigene Klassen zu erstellen?
verfasst am: 23.09.2009, 18:25
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beitrge: 3186
Zitat: sujin
Ist es berhaupt mglich, in eigene Klassen zu erstellen?

Nein.
verfasst am: 23.09.2009, 18:50
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beitrge: 1185
Schade. Macht ein paar Sachen ein Stckchen komplizierter, zum Beispiel die bergabe zusammenhngender Daten (records z.B.) zwischen Skripten. Ein Objekt knnte man immer auf TObject zurckfhren und als global Object bergeben... hm, auer...

Wre es besonders aufwendig, Arrays als globale Variablen zuzulassen?
Falls ja: Wre es besonders aufwndig, ein Objekt mit beispielsweise einem Integer-, String- und Extended- und Boolean-Array einzufhren, das an sich erstmal keine Funktion im Hauptprogramm hat? Quasi nur fr Skripte, die gerne mehrere Werte gleichzeitig bergeben wrden.
Bevor jemand andere Baustellen erwhnt: Ich wrde dann selbst versuchen,das umzusetzen.
verfasst am: 23.09.2009, 22:26
Registrierdatum: 27.06.2007, 12:16

 Beitrge: 658
schon gruselig, dass ich gerade dieselbe Frage ein paar Tage zuvor stellen wollte.

Zitat: sujin
Wre es besonders aufwendig, Arrays als globale Variablen zuzulassen?

Kannst doch einen Array in einer Unit global festsetzen... wieso das Ganze also noch aufwndiger gestalten?


Zitat: sujin
Wre es besonders aufwendig, Arrays als globale Variablen zuzulassen?
Falls ja: Wre es besonders aufwndig, ein Objekt mit beispielsweise einem Integer-, String- und Extended- und Boolean-Array einzufhren, das an sich erstmal keine Funktion im Hauptprogramm hat? Quasi nur fr Skripte, die gerne mehrere Werte gleichzeitig bergeben wrden.


was genau schwebt dir vor? Ich bin mir nicht ganz sicher was du mit diesen Vorschlgen beabsichtigst.
verfasst am: 23.09.2009, 23:20
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beitrge: 3186
Schonmal TDataHolder angschaut? Lst natrlich nicht alle Probleme - aber kleinere feste Strukturern sind damit schon mglich.
verfasst am: 24.09.2009, 00:17 · Edited by: sujin
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beitrge: 1185
Zitat: BlackBetty
Kannst doch einen Array in einer Unit global festsetzen... wieso das Ganze also noch aufwndiger gestalten?

Das geht natrlich immer. Problem ist, der Array ist dann immer und berall global, wo die Unit benutzt wird... und damit ist auch der identifier belegt. Auerdem geht es mir gegen den Strich, mehr globale Variablen zu verwenden als unbedingt notwendig. Bei Spielsatzglobalen nicht ganz so streng, weil sie ihre eigenen Namespace haben...
Zitat: BlackBetty
was genau schwebt dir vor? Ich bin mir nicht ganz sicher was du mit diesen Vorschlgen beabsichtigst.

Wenn ich das wsste ^^
Bei den meisten meiner Fragen zur Skriptsprache geht es erstmal um spontane Gedankeneyperimente, nicht um ein konkretes Problem... ich schaff mir meine Probleme dann, wenn ich wei, wie ich sie lsen kann ;-)
In diesem Fall ging es natrlich um Skriptbergreifende Arrays... Hauptanwendungsgebiet drfte Spielsatzsteuerung sein.
Zitat: Natter
Schonmal TDataHolder angschaut? Lst natrlich nicht alle Probleme - aber kleinere feste Strukturern sind damit schon mglich.

TDataHolder sagt mir nicht wirklich was, aber der Name klingt vielversprechend. Zu schade, das das Wiki grade schrott ist o.O
-------------
Warning: fopen(ger_wiki.d/.flock) [function.fopen]: failed to open stream: Permission denied in /www/htdocs/xfdoc/index.php on line 655

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/xfdoc/index.php:655) in /www/htdocs/xfdoc/index.php on line 421
PmWiki can't process your request

Cannot acquire lockfile

We are sorry for any inconvenience.

Return to this site's home page

http://www.pmichaud.com/ref/PmWiki/Lockfile
verfasst am: 24.09.2009, 01:32 · Edited by: Natter
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beitrge: 3186
Ich glaub, dazu steht auch noch nichts im Wiki (das Problem mit dem Wiki dauert eventuell noch ein paar Tage, bis DirkF Zeit hat, sich das nher anzusehen). Sollte aber halbwegs selbsterklrend sein. Das Objekt muss mit Create erzeugt werden, und dann kann man je nach Bedarf mit den Methoden neue "Eigenschaften" ergnzen. Hauptproblem daran - keine Arrays. Macht also imho nur bei fixen Strukturen Sinn (oder man wandelt den Array immer in einen String um). Schau einfach mal in medit bei den Objekttypen.
verfasst am: 24.09.2009, 07:20
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beitrge: 5596
Das Wiki-Problem war wohl rein Server-Seitig, heute geht es wieder ohne dass ich was gemacht htte.
brigens war mir das aufgefallen, als ich gerade wegen TDataHolder gucken wollte, was davon im Wiki steht ;-)

Nicht allzuviel, leider:
XSkriptReferenz.TypTDataHolder

Man kann ein Objekt erzeugen und diesem verschiedene Variablen anhngen. Dazu gehrt aber genausowenig ein Array wie das bei den globalen Variablen der Fall ist.
Dieses Objekt kann man dann auch in einer globalen Objekt-Speicherstelle ablegen und dadurch von allen Skripten aus darauf zugreifen, solange das Skript das diesen DataHolder verwaltet auch weiterhin im Hintergrund luft.

Momentan besteht der Hauptnutzen imho darin, dass man ber den Dataholder auch grere Datenmengen global zugreifbar machen kann, ohne fr jeden Einzelwert die Liste der globalen Variablen zu verlngern.
Allerdings denke ich das damit noch einige Tricks mglich sein drften, die bisher noch niemandem eingefallen sind - und man kann diesen Bereich von X-Skript spter auch noch erweitern...
verfasst am: 24.09.2009, 10:16
Registrierdatum: 22.08.2008, 15:51

 Beitrge: 403
Zitat: sujin
In diesem Fall ging es natrlich um Skriptbergreifende Arrays... Hauptanwendungsgebiet drfte Spielsatzsteuerung sein.

Du kannst einen String als Array missbrauchen in dem du die einzelnen Werte mit zB ';' trennst. ber string_util_explode (oder so hnlich) kannst du das Konstrukt auseinander nehmen.
verfasst am: 24.09.2009, 16:19 · Edited by: sujin
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beitrge: 1185
Zitat: Kreks
Du kannst einen String als Array missbrauchen in dem du die einzelnen Werte mit zB ';' trennst. ber string_util_explode (oder so hnlich) kannst du das Konstrukt auseinander nehmen.

Rumtricksen kann man immer. Aber wenn es sauber geht, wrd ich es gerne sauber erledigen ;-) Geht auerdem nur fr String-Arrays ohne Probleme. Fr Integer-Arrays braucht man schon ein StrToInt pro Element. Booleans brauchen eine extra Funktion, die z.B. fr String "true" den Zustand true zurckgibt... und floats drften sehr kompliziert werden.

Und bevor wer auf die Idee kommt... ber
for i:=0 to 5 do
  game_apiregister_global_xxx('name['+StrToInt(i)+']');

mssen wir garnicht erst reden. Stellt euch einfach vor, wie die Global-Var-Liste dann nach ausgiebiger Verwendung dieses Wegs aussieht...

TDataHolder ist tatschlich fast das, was ich mir gewnscht habe =) Es ist wirklich kein Hexenwerk, die mit ein paar kleinen Funktion genauso arbeiten zu lassen wie Arrays... ich sag nur function GetDataholderFloat(Dataholder,'name',index): Double;
Muchas Gracias!
verfasst am: 24.09.2009, 20:32
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beitrge: 3186
Interessant wre auch, ob TDataHolder auch mit Events zusammenarbeitet, oder als Missionsobjekt (mission_api-StartWithObject).
verfasst am: 24.09.2009, 21:45
Admin, Spielsatz GalWar

Registrierdatum: 31.08.2005, 21:51

 Beitrge: 5596
Zitat: sujin
Und bevor wer auf die Idee kommt... ber
for i:=0 to 5 do
game_apiregister_global_xxx('name['+StrToInt(i)+']');

mssen wir garnicht erst reden. Stellt euch einfach vor, wie die Global-Var-Liste dann nach ausgiebiger Verwendung dieses Wegs aussieht...

Genau dabei ist aber der Dataholder von Vorteil. Er arbeitet hnlich wie die Globalen Variable, wird aber nicht in der globalen Liste aufgefhrt.
Wenn man also den DataHolder in ein eigenes Verwaltungsskript legt und die entsprechenden Befehle extern aufruft, dann kann man dies problemlos nutzen ohne die Globalen Listen zu berladen...
verfasst am: 24.09.2009, 22:15
Spielsatz Alliances

Registrierdatum: 14.07.2004, 14:47

 Beitrge: 1185
Zitat: Natter
Interessant wre auch, ob TDataHolder auch mit Events zusammenarbeitet, oder als Missionsobjekt (mission_api-StartWithObject).

Rein theoretisch msste es gehen, oder? Ist ja ein Erbe von TObject, genau wie alle anderen. Schwebt dir da was konkretes vor?
Zitat: DirkF
Genau dabei ist aber der Dataholder von Vorteil. Er arbeitet hnlich wie die Globalen Variable, wird aber nicht in der globalen Liste aufgefhrt.
Wenn man also den DataHolder in ein eigenes Verwaltungsskript legt und die entsprechenden Befehle extern aufruft, dann kann man dies problemlos nutzen ohne die Globalen Listen zu berladen...

Bingo!
verfasst am: 24.09.2009, 23:11 · Edited by: Natter
Programmierer, allgemeines

Registrierdatum: 06.06.2004, 17:19

 Beitrge: 3186
Zitat: sujin

Rein theoretisch msste es gehen, oder? Ist ja ein Erbe von TObject, genau wie alle anderen. Schwebt dir da was konkretes vor?

Ja, dass das mal jemand ausprobiert. Hauptgrund fr TDataHolder war damals, den Austausch grerer Datenmengen zu erleichtern. Bei einem Event knnte man dann mehrere Parameter bergeben, und ber das Missionsobjekt knnte man ohne trickserei (z.B. castanweisungen) ganz einfach mehrere Steuerwerte an ein neues Skript bergeben.

Anwendungsbeispiel wre z.B. der Laptop im Smirkovich (das und die Missionsverwaltung im Smirkvich waren der Grund, warum Jim_Raynor TDataHolder eingebaut hat). Man knnte dann Mails direkt als User-Event an das Skript schicken - inklusive Betreff und Inhalt. Derzeit luft das alles umstndlich ber eine einzige globale Stringvariable (in der die Betreffzeilen angehngt werden), aus der dann beim ffnen des Laptops immer die eigentliche Struktur aufgebaut wird. Beliebige Mails sind damit nicht mglich. Dadurch ist der Laptop auch nicht ohne weiteres fr andere Spielstze bernehmbar.

procedure ChangeMail(Sender: TOBJECT);
begin
  ShowMail(MailList[CompMailList.ItemIndex]);
end;

procedure ShowMail(Betreff : String);
var
  i: Integer;
begin
  case '"'+Betreff+'"' of
    eM_EU_WiederAufbau  : CompTextViewer.Text:=Mail_Neuanfang_01;
    eM_Alexandrow_01 : CompTextViewer.Text:=Mail_Alleingelassen_01;
    eM_Alexandrow_02 : CompTextViewer.Text:=Mail_Alleingelassen_02;
    eM_Alexandrow_03 : CompTextViewer.Text:=Mail_Alleingelassen_03;
    else  CompTextViewer.Text:='Fehler im Skript. eMail-Betreff konnte nicht zugeordnet werden';
  end;
end;

procedure EnterLaptopPage(Sender: TObject);
begin
  MailList.CommaText:=game_api_GetString('eMails');
  // verhindert einen negativen ListenIndex, falls 'eMails' =''
  if (MailList.Count>0) then
  begin
    ShowMail(MailList[0]);

    CompMailList.Items:=MailList;
    CompMailList.OnChange:=@ChangeMail;
  end;
end;
verfasst am: 27.01.2022, 13:22
Registrierdatum: 27.01.2022, 13:07

 Beitrge: 318
Your perspective is refreshing. https://doulatucson.com
verfasst am: 22.11.2023, 10:11
Registrierdatum: 22.11.2023, 07:10

 Beitrge: 341305
прес144.8BettBettнапимузыOmsaАвижHansMichJewePremRucoteamHaroАфанJeweRondWhenWindкандоборприч
ДронBlueДетсВергCrysCaudGarnСодеLeonсентDaphДрогHenrDoveсертЕфимInviмгноJameСодеВаллБобрXVII
LacaAlexWillLymaИсаеLisaTrasCollgunmPaulWillJeweDeepSupePixaРосоWillHamiАрхиCarlEndeСтепKlau
MagnPhitAlanБрилупотбиогсловForgавтоWindСодеMaxiМоскArts(196WindAlanDeatСавиLessCambатмоWilh
SwarPetediamзакаMiyoMarcLionКаргStanTranZeffоблалитеWolfPaulTranPhilчитаMartQuicHopeTracAbou
GlorворовмятSM-8хороWritLiebBoscЯковVtecRudyDudeChicПольOlmeдариплассклаEXTRBlueКазьспецBlue
склаэлемTangтемаPlayУдалHappWindMPEGлистAntiPanaBamiсертChoiЛитР
verfasst am: 01.12.2023, 11:48
Registrierdatum: 22.11.2023, 07:10

 Beitrge: 341305
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
verfasst am: 01.02.2024, 18:06
Registrierdatum: 22.11.2023, 07:10

 Beitrge: 341305
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинйоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
инфоинфоинфоинфоинфоинфоинфоинфоинфоинфо
verfasst am: 01.03.2024, 09:46
Registrierdatum: 22.11.2023, 07:10

 Beitrge: 341305
audiobookkeeper.rucottagenet.rueyesvision.rueyesvisions.comfactoringfee.rufilmzones.rugadwall.rugaffertape.rugageboard.rugagrule.rugallduct.rugalvanometric.rugangforeman.rugangwayplatform.rugarbagechute.rugardeningleave.rugascautery.rugashbucket.rugasreturn.rugatedsweep.rugaugemodel.rugaussianfilter.rugearpitchdiameter.ru
geartreating.rugeneralizedanalysis.rugeneralprovisions.rugeophysicalprobe.rugeriatricnurse.rugetintoaflap.rugetthebounce.ruhabeascorpus.ruhabituate.ruhackedbolt.ruhackworker.ruhadronicannihilation.ruhaemagglutinin.ruhailsquall.ruhairysphere.ruhalforderfringe.ruhalfsiblings.ruhallofresidence.ruhaltstate.ruhandcoding.ruhandportedhead.ruhandradar.ruhandsfreetelephone.ru
hangonpart.ruhaphazardwinding.ruhardalloyteeth.ruhardasiron.ruhardenedconcrete.ruharmonicinteraction.ruhartlaubgoose.ruhatchholddown.ruhaveafinetime.ruhazardousatmosphere.ruheadregulator.ruheartofgold.ruheatageingresistance.ruheatinggas.ruheavydutymetalcutting.rujacketedwall.rujapanesecedar.rujibtypecrane.rujobabandonment.rujobstress.rujogformation.rujointcapsule.rujointsealingmaterial.ru
journallubricator.rujuicecatcher.rujunctionofchannels.rujusticiablehomicide.rujuxtapositiontwin.rukaposidisease.rukeepagoodoffing.rukeepsmthinhand.rukentishglory.rukerbweight.rukerrrotation.rukeymanassurance.rukeyserum.rukickplate.rukillthefattedcalf.rukilowattsecond.rukingweakfish.rukinozones.rukleinbottle.rukneejoint.ruknifesethouse.ruknockonatom.ruknowledgestate.ru
kondoferromagnet.rulabeledgraph.rulaborracket.rulabourearnings.rulabourleasing.rulaburnumtree.rulacingcourse.rulacrimalpoint.rulactogenicfactor.rulacunarycoefficient.ruladletreatediron.rulaggingload.rulaissezaller.rulambdatransition.rulaminatedmaterial.rulammasshoot.rulamphouse.rulancecorporal.rulancingdie.rulandingdoor.rulandmarksensor.rulandreform.rulanduseratio.ru
languagelaboratory.rulargeheart.rulasercalibration.rulaserlens.rulaserpulse.rulaterevent.rulatrinesergeant.rulayabout.ruleadcoating.ruleadingfirm.rulearningcurve.ruleaveword.rumachinesensible.rumagneticequator.rumagnetotelluricfield.rumailinghouse.rumajorconcern.rumammasdarling.ru
verfasst am: 01.05.2024, 14:29
Registrierdatum: 22.11.2023, 07:10

 Beitrge: 341305



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

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