Type Fields und Funktionen aus txt Datei auslesen ?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Black Spider

Betreff: Type Fields und Funktionen aus txt Datei auslesen ?

BeitragSa, Nov 05, 2005 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey Leute,
ich habe da mal eine kleine Frage an euch, und zwar:
wie kann ich die ganzen sachen von meinem FlintType in eine txt datei packen,
und ihn dazu bringen diese zu lesen ?

hat einer da n tutorial parat ?
UNd wie könnte ich es hinbekommen, dem Objekt seinen eigenen Ordner
mit seinen Funktionen in mehreren txt dateien zu geben,
und das ganze dann wie bei Clonk funktionieren lassen ?


Danke!!!
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif
 

Darren

BeitragSa, Nov 05, 2005 15:38
Antworten mit Zitat
Benutzer-Profile anzeigen
wie funktioniert das denn bei clonk?
MFG Darren

Black Spider

BeitragSa, Nov 05, 2005 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
bei Clonk gibt es z.B. das Objekt:
Flint.c4d
... wenn man das EntwicklerPack besitzt, dann kann man diesen Ordner öffnen, und er enthält folgende sachen:
ActMap.txt (quasi die Functions)
DefCore.txt (also den Objektnamen und typen)
Graphics.bmp (Die Grafik)
Script.c (Das Script mit seiner eigenen sprache)
...
Praktisch daran ist, dass man nurnoch das Objekt einzeln bearbeiten muss/kann,
ohne dabei im CodeGewirr rumzusuchen wo das objekt wie welche Funktion hat...
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif
 

Dreamora

BeitragSa, Nov 05, 2005 17:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ganze läuft über eine Scriptsprache und eine sehr trickreich umzusetzendes "Type Facking", da du zur Laufzeit keine Types definieren kannst. Ausser du meinst mit der TXT dass du da werte für die Types einfügst, dann wärs weniger ein Problem, dann bräuchstest du noch nicht einmal eine sehr umfangreiche Scriptsprache.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Darren

BeitragSa, Nov 05, 2005 18:55
Antworten mit Zitat
Benutzer-Profile anzeigen
aber das macht doch fast jedes game..... wer hardcodiert denn schon irgendwelche chareigenschaften?
MFG Darren

Black Spider

BeitragSa, Nov 05, 2005 20:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Ausser du meinst mit der TXT dass du da werte für die Types einfügst, dann wärs weniger ein Problem, dann bräuchstest du noch nicht einmal eine sehr umfangreiche Scriptsprache.


genau sowas meine ich Surprised wie krieg ich das hin ? Gibts dafür sowas wie n tutorial !?
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif

Klip

BeitragSa, Nov 05, 2005 22:35
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

datei = ReadFile(\"datei.dat\")
Type bruder
Field name$ = ReadLine(datei)
End Type
CloseFile datei

 

Dreamora

BeitragSa, Nov 05, 2005 23:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau mal in die RPG tutorials hier und auf robsite.de, denn dort werden Mapdaten gespeichert. Das ist genau das, was du suchst.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Darren

BeitragSo, Nov 06, 2005 9:34
Antworten mit Zitat
Benutzer-Profile anzeigen
mapdaten werden aber doch meist nur in feldern gespeichert oder nicht?
MFG Darren
 

Dreamora

BeitragSo, Nov 06, 2005 13:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie meinst du in Feldern?
Ich bau Maps in Arrays von Types auf normalerweise um dynamische Daten damit handhaben zu können.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Black Spider

BeitragSo, Nov 06, 2005 17:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay, Danke Very Happy !
Das macht das ganze jetzt schon viel übersichtlicher !
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif
 

fliege

BeitragSo, Nov 06, 2005 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du willst, ich hab da mal was geschrieben, keine Ahnung ob das das ist was du suchst oder ob es schnell genug für deine Ansprüche ist...
BlitzBasic: [AUSKLAPPEN]

Global g_ss_cmdline$, g_ss_para_number$, g_ss_para_string$,g_ss_bool, g_ss_file
Function Run_Script_file(scriptfile$)
g_ss_file = ReadFile(scriptfile$)
Repeat
If Eof(g_ss_file) = 1 Then Exit
g_ss_cmdline$ = ReadLine(g_ss_file)
exec_scriptline()
Forever
End Function

Function exec_scriptline()
cmd$ = Mid(g_ss_cmdline$, 1,Instr(g_ss_cmdline$,\"(\")-1)
g_ss_cmdline$ = Right(g_ss_cmdline$, Len(g_ss_cmdline$) - Len(cmd$) - 1)
Select Lower(cmd$)
Case \"deinbefehl\" : DeineFunktion()
End Select
End Function

Function parse_parameter(art = 1, parameter)
pos = 1
For atpara = 0 To parameter
parapos = Instr(g_ss_cmdline$, \",\")
Next
pos = parapos + 1
If art = 1 Then
Repeat
number$ = Mid(g_ss_cmdline$, pos,1)
If Asc(number$) > 47 And Asc(number$) < 58
zahl$ = zahl$+number$
pos = pos + 1
Else
g_ss_para_number$ = zahl$
Exit
EndIf
Forever
EndIf
If art = 2
Repeat
Char$ = Mid(g_ss_cmdline$, pos,1)
If Asc(Char$) = 34 And startedtext = 1 Then g_ss_para_string$ = Sting$ : Exit
If Asc(Char$) = 34 And startedtext = 0 Then startedtext = 1
If Asc(Char$) <> 34 And startedtext = 1 Then Sting$ = Sting$ + Char$
pos = pos + 1
Forever
EndIf
End Function

Function jumpifs()
If g_ss_bool = 1 Then ;Aussage Wahr
Repeat
g_ss_cmdline$ = Lower(ReadLine(g_ss_file))
If g_ss_cmdline$ = \"else\" Or g_ss_cmdline$ = \"endif\"
Exit
Else
exec_scriptline()
EndIf
Forever
Else ;Aussage Falsch
Repeat
g_ss_cmdline$ = Lower(ReadFile(g_ss_file))
Until g_ss_cmdline$ = \"else\" Or g_ss_cmdline$ = \"endif\"
If g_ss_cmdline$ <> \"endif\"
Repeat
g_ss_cmdline$ = Lower(ReadLine(g_ss_file))
If g_ss_cmdline$ <> \"endif\"
exec_scriptline()
Else
Exit
EndIf
Forever
EndIf
EndIf
End Function


wenn du dann parameter wissen willst musst du das z.B.: so anstellen:
BlitzBasic: [AUSKLAPPEN]
Function printtext()
parse_parameter(2,1)
Print g_ss_para_string$
End Function

BlitzBasic: [AUSKLAPPEN]
parse_parameter(2,1)
Die 2 bedeutet, das ein String (=zeichenkette) ausgelesen werden soll, 1 würde bedeuten das du eine Integrer Zahl auslesen willst. Die 1 hinter der 2 gibt die nummer des parameters an, das heißt du hast zum Beispiel den Befehl
Code: [AUSKLAPPEN]
printtext("Hallo,ich heiße Fritz",5)

und du willst an die 5 ran, schreibst du:
BlitzBasic: [AUSKLAPPEN]
parse_parameter(1,2)

denn erstens ist es ein integrer und es ist der zweite parameter..

Für die Ifs brauchst du extra Funktionen, wie z.b.:
BlitzBasic: [AUSKLAPPEN]
Function iflevel()
parse_parameter(1,1)
neededlevel = Int(g_ss_para_number$)
If g_level => neededlevel Then
g_ss_bool = 1
Else
g_ss_bool = 0
EndIf
jumpifs()
End Function

wenn du mal den wert g_ss_bool auf 1 für wahr oder auf 0 für falsch setzt und dann jumpifs() aufrufst, erledigt sich der rest von selbst Wink

Hier noch ein kleines Beispiel eines solchen Codes:
Code: [AUSKLAPPEN]

iflevel(5)
  printtext("Du hast Level 5 erreicht! Super!")
else
  printtext("Du musst noch mehr trainieren um Level 5 zu erreichen!")
endif


Ich hoffe du hast es verstanden Wink
Fliege
Wer weiß was kommt.. ?

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group