Forum

> > Stranded II > Allgemein > Stranded2 scripts
ForenübersichtStranded II-ÜbersichtAllgemein-ÜbersichtEinloggen, um zu antworten

Deutsch Stranded2 scripts

22 Antworten
Seite
Zum Anfang Vorherige 1 2 Nächste Zum Anfang

alt Stranded2 scripts

Dark Wizard
COMMUNITY BANNED Off Offline

Zitieren
Dc, hast du die scripts übersetzungsweise gemacht oder tatsächlich mit types und fields?

Also ich habe das übersetzungsweise gemacht und mich würde das mal mit types und fields ineressieren.

Wenn meine Theorie stimmt, was eigentlich stimmen muss weil du es nicht anders gemacht haben kannst, das dauert doch viel zu lange und ist kompiziert?

Kannst du mir diese Art mal bitte erklären wie du das gemacht hast?

Danke. Thread nur aus reiner Interesse eröffnet.

alt Re: Stranded2 scripts

DC
Admin Off Offline

Zitieren
Der Scriptparser selbst braucht eigentlich keine Types. Die Scripts liegen in der Form eines Strings vor. Die Zeilen werden durch ¦ getrennt:
Zeile1¦Zeile2¦Zeile3 ... ZeileN
Wenn ein Scripts geparsed werden soll werden die Zeilen in ein Array gehauen (Dim). Dann wird mit 2 Schleifen der Code Zeile für Zeile und Zeichen für Zeichen durchgegangen. Mithilfe der String Befehle (mid,left,right etc.) wird das Ding dann Stück für Stück zerbröselt und verarbeitet.
Etwas kompliziert ist es natürlich. Und all zu schnell auch nicht. Daher basiert es ja auf Events, so dass Scripts nur bei bestimmten Ereignissen überhaupt geparsed werden müssen.

alt Re: Stranded2 scripts

mk
User Off Offline

Zitieren
mich interessiert das auch

wenn der Code irgendwann mal opensource wird, würd ichs mir gern anschauen

alt Re: Stranded2 scripts

Dark Wizard
COMMUNITY BANNED Off Offline

Zitieren
Das wirst du eh nicht verstehen, da SOWAS sehr schwer ist zu alalysieren.

Ich kann dir meinen Compiler Source code geben(Falls du C++ oder Bm kannst).


Dc, ich verstehe dich nur Teilweise. Könntest du mir eventuel den source code schicken.


Was ich bei dieser Methode nicht verstehe ist, wie funktioniert das mit den Variabeln bei dir. Ohne types und fields geht das nicht. Da man ja unendlich Veriabeln machen und denen einen Wert zuweisen kann.
Und das mit den Entscheidungen im Zusammenhang mit den Variabeln ist mir bei dieser Methode auch nicht so klar.

Natürlich werde ich nichts damit machen. Ich will mir nur DEINE Art angucken, wie du es gemacht hast.

alt Re: Stranded2 scripts

Ninja
User Off Offline

Zitieren
naja dafür brauchst du dan aber auch nur einen teil des sourccodes und nicht den ganzen

alt Re: Stranded2 scripts

k.o.g.
User Off Offline

Zitieren
Ich programmiere gerade auch eine eigene Sprache für Metamod2D, ich muss sagen, es ist sau schwer! DC leistet mit seiner Sprache viel.

Meine ist derzeit einfach scheisse
336 Zeilen und viel zu schwer gebaut.

alt Re: Stranded2 scripts

Dark Wizard
COMMUNITY BANNED Off Offline

Zitieren
Nein. So schwer ist das nicht. Nur das, wie man Variabeln einen Wert zuweist und sie dann benutzen kann, das ist mit dieser Methode nicht so leicht.
Hier, ich habe mal ein Beispiel für euch geschreiben:

file=readfile("script.txt")

while not eof(file)
lin$=readline(file)

for a=1 to len(lin$)
if mid(lin$,a,5)="show:" then
print mid(lin$,a+5,len(lin$))
endif
next

wend


Klappt 100%.




Schon hat man einen Befehl, nämlich show. Der zeigt an, was danach(a+5(5 ist gleich die Länge des Befehls)) steht, NUR BIS ZUM ENDE DER ZEILE.

Also so müsste es DC meiner Meinung nach gemacht haben. So würde ich es mit Blitz3D auch machen.
So habe ich es auch bei der Konsole meines Browser gemancht.

Das TGM ist natürlich auch so aufgebaut.
2× editiert, zuletzt 18.03.06 20:54:15

alt Re: Stranded2 scripts

DC
Admin Off Offline

Zitieren
Ja. Stark vereinfacht habe ich es nach genau dem Prinzip gemacht.
Für die Variablen selbst benutze ich natürlich schon Types, das stimmt.

alt Re: Stranded2 scripts

Dark Wizard
COMMUNITY BANNED Off Offline

Zitieren
DC, hast du mich auf der ignore list oder warum antwortest du nicht?


Ja, meine Konsole habe ich auch so gemacht. Anders würde es auch nicht gehen.
1× editiert, zuletzt 18.03.06 21:12:22

alt Re: Stranded2 scripts

HW
User Off Offline

Zitieren
Eine For Schleife ist da auch nicht nötig, da es dafür Instr gibt. Das liefert dann die Position zurück.

alt Re: Stranded2 scripts

Dark Wizard
COMMUNITY BANNED Off Offline

Zitieren
Das stimmt so nicht. Bei diesem Beispiel wär das richtig, aber wenn man machen will, dass man mehrere Befehle in einer Zeile schreiben will, dann muss man das nach meinem Prinzip machen.


Aber nach deinem Prinzip wär es so:

file=readfile("script.txt")

while not eof(file)
lin$=readline(file)
pos=instr(lin$,"show:",1)

if pos<>0 then
print mid(lin$,pos+5,len(lin$))
endif

wend

Klappt auch 100%.

Warum die Entscheidung? Weil wenn man sie weglassen würde, dann würde bei jeder gelesenen Zeile ein string angezeigt werden, der vom Anfang bis fünf Schritt nach rechts geht.

Und wenn Instr=0 ist, dann exestiert der String nicht, weil Instr so nie 0 sein kann. Die kleinste Position der angegebenen Value im String wär 1.
1× editiert, zuletzt 18.03.06 21:27:18

alt Re: Stranded2 scripts

k.o.g.
User Off Offline

Zitieren
Ja dein beispielt ist sehr leich, bloss bei einer IF abfrage wird es dann schon einbisschen schwiriger.

Meine Scriptsprache ist zu simpel aufgebaut, ich denke, ich muss nochmal neu anfangen.

Wenn jemand lust hat sie einbisschen anzuschauen:
[schleichwerbung]Klick hier[/schleichwerbung]

alt Re: Stranded2 scripts

DC
Admin Off Offline

Zitieren
Sobald es komplexer wird, ist instr in der Tat keine all zu gute Wahl mehr.

Und ja Dark Wizard. Ich habe dich zum Schutz meiner Nerven auf der Ignore Liste, weil offensichtlich die Hälfte von dem was dir in ICQ schreibe nie ankommt. Und das macht so keinen Sinn (hast du ja selbst gesehen als du das UDP Ding mit mir testen wolltest. Ich habe dir die IP wirklich verdammt oft geschrieben aber sie kam offensichtlich einfach nicht an). Also bevor ich da komplett ausflippe lasse ich das lieber ganz.

alt Re: Stranded2 scripts

Dark Wizard
COMMUNITY BANNED Off Offline

Zitieren
Ist ja auch die einzige Möglichkeit wenn man es nicht nachdem Übersetzprinzip macht(Was eigentlich nur mit Assembler geht).


Ey das ist unfair. Bitte add mich in deine contact list.
Ich kann doch nichts dafür.
Ich hole mir schnell ein anderes ICQ.
Ich will dich heute noch was fragen.

alt Re: Stranded2 scripts

k.o.g.
User Off Offline

Zitieren
Hmm DC hast du dann noch eine andere Idee ausser Instr, mein Code wird leider immer unübersichtlicher, vorallem die IF abfrage, die kann nur einmal ausgeführt werden z.B.:
1
2
3
4
5
if chattxt=test then
  if admin=1 then
    echo "test";
  endif
endif

alt Re: Stranded2 scripts

Dark Wizard
COMMUNITY BANNED Off Offline

Zitieren
Ja, z.B mit Mid. NAnch dem Prinzio oben. Das ist die so wohl beste Möglichkeit.

Edit: Oh ups. Du machst ja mit PHP.



DC, schick doch bitte per E-Mail. Man sei doch nicht so.

alt Re: Stranded2 scripts

Knartz
User Off Offline

Zitieren
Dark Wizard hat geschrieben
Das wirst du eh nicht verstehen, ...


nette sache, du sagst den leuten, was sie nicht können, damit sie nicht ünnötig ihre graue masse einsetzen ...

alt Re: Stranded2 scripts

k.o.g.
User Off Offline

Zitieren
Hää? PHP?
Ich benutze momentan Mid und Instr für meine Sprache in CS2Dn / Metamod2D (für den Dedicated Server)..

alt Re: Stranded2 scripts

Dark Wizard
COMMUNITY BANNED Off Offline

Zitieren
if chattxt=test then
if admin=1 then
echo "test";
endif
endif

Was ist das bitte für eine Sprache?
Ist das ein Gemisch aus BB und PHP?

alt Re: Stranded2 scripts

k.o.g.
User Off Offline

Zitieren
Das wird meine Sprache für Metamod2D -.- und wenn es dir nicht passt, ist es dein problem.
Zum Anfang Vorherige 1 2 Nächste Zum Anfang
Einloggen, um zu antwortenAllgemein-ÜbersichtStranded II-ÜbersichtForenübersicht