RPG NPC text

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Mashed Crashed

Betreff: RPG NPC text

BeitragDo, Sep 29, 2005 20:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab nen RPGgeproggt aber der Sript will nret funtzten.

Code: [AUSKLAPPEN]

...

menu  = LoadImage("C:\Daten\menu.bmp")
menusm  = LoadImage("C:\Daten\menusm.bmp")
tileset = LoadAnimImage("C:\Daten\tilesetbasti1.bmp",32,32,0,19)
char = LoadImage("C:\Daten\char.bmp")

...

Include "2drpg2.bb"

...




Code: [AUSKLAPPEN]


...

If py = 5 Then
 If px = 8 Then
  If KeyDown(57) Then
   Playscript ("C:\Daten\npc.txt")
  EndIf
 EndIf
EndIf

...





2drpg2:


Code: [AUSKLAPPEN]


;function für den script
Function Playscript(script$)
;wenn das programm in der hauptschleife ausgeführt wird,
;muss man die einlesung des scriptes stoppen
If aaa = 0
;die zu lesende datei und die menge der linien aus
;der textdatei, die mit text gefüllt sind
File$ = ReadFile(script$)
Menge = ReadLine(file$)
;den scriptpuffer neu dimensionieren und zwar mit der variable menge, die die menge
;der zeilen in der textdatei enthält
Dim Zei$(menge+10)
;einlessen der datei mit readline und die linien im puffer speichern
For x = 0 To menge
Zei$(x) = ReadLine(file$)
Next
;die datei schließen
CloseFile(file$)
;die puffer variable wieder auf 0 setzen
x = 0
;auf 1 setzen um keine weitere einlesung zu ermöglichen
aaa = 1
End If
;wenn man auf die leertaste drückt werde der script-vorgang gestartet
If KeyHit(57) Then
;alle einfärbungsvariablen auf 0 setzen, damit keine färfärbungsfehler passieren
blau0   = 0
rot0    = 0
gelb0   = 0
blau1   = 0
rot1    = 0
gelb1   = 0
blau2   = 0
rot2    = 0
gelb2   = 0
norm0   = 0
norm1   = 0
norm2   = 0


;wenn in einer der linien die ersten 4 buchstaben /say sind
;wird der sprechmodus aktiviert und der lesepuffer um 3 zeilen vorgeschoben
If Mid(Zei$(x),1,4) = "/say" Then
speak = 1
x = x + 3
End If
;wenn die ersten 4 buchstaben einer linie /nam sind wird der name des momentan
;sprechenden charackters geändert
If Mid(Zei$(x),1,4) = "/nam" Then
;der name das charackters wird von der position 5 bis zur position 21 eingelesen
name$ = Mid(Zei$(x),5,21)
;damit der script nicht gestoppt wird, setzt man x um einen wert hoch,
;denn wenn zei$(x) nicht mit /say anfängt wird der script angehalten
x = x + 1
;speak auf 1 setzen, damit beim scriptstart keine verzögerung von einem tastentipp entsteht
;da die erste zeile in der script-datei /nam ist wird sonst beim ersten tastendruck einfach
;nur der name gesetzt aber nicht der sprechmodus gestartet
speak = 1
End If
;wenn eine zeile /end heißt wird der puffer wieder auf 0 gesetzt
;und der sprechmodus deaktiviert
If Mid(Zei$(x),1,4) = "/end" Then
x = 0
speak = 0
End If
;die variablen für die blaueinfärbung, rot0-rot2 stehen für die einzelnen
;zeilen die eingefärbt werden
;also wenn an der positon 5-8 rot steht wird die variable auf 1 gesetzt
If Mid(Zei$(x),5,3) = "rot" Then
rot0 = 1
End If
If Mid(Zei$(x+1),5,3) = "rot" Then
rot1 = 1
End If
If Mid(Zei$(x+2),5,3) = "rot" Then
rot2 = 1
End If
;blaueinfärbung, das selbe wie bei rot
If Mid(Zei$(x),5,3) = "bla" Then
blau0 = 1
End If
If Mid(Zei$(x+1),5,3) = "bla" Then
blau1 = 1
End If
If Mid(Zei$(x+2),5,3) = "bla" Then
blau2 = 1
End If
;wieder das selbe(gelb)
If Mid(Zei$(x),5,3) = "gel" Then
gelb0 = 1
End If
If Mid(Zei$(x+1),5,3) = "gel" Then
gelb1 = 1
End If
If Mid(Zei$(x+2),5,3) = "gel" Then
gelb2 = 1
End If
;und nochmal(dießmal weiß)
If Mid(Zei$(x),5,3) = "nor" Then
norm0 = 1
End If
If Mid(Zei$(x+1),5,3) = "nor" Then
norm1 = 1
End If
If Mid(Zei$(x+2),5,3) = "nor" Then
norm2 = 1
End If


End If

;der sprechmodus
If speak = 1
;malt die textbox und die namensbox auf den bildschirm
DrawImage menu,0,388
DrawImage menusm,0,368
;die einfärbung, berechnug und ausgabe des testes(1.zeile)
If rot0  = 1 Then Color 255,0,0
If blau0 = 1 Then Color 0,0,255
If gelb0 = 1 Then Color 255,255,0
If norm0 = 1 Then Color 255,255,255
lin0$ = Mid$(Zei$(x),9,60)
Text 10,400,lin0$
;die einfärbung, berechnug und ausgabe des testes(2.zeile)
If rot1  = 1 Then Color 255,0,0
If blau1 = 1 Then Color 0,0,255
If gelb1 = 1 Then Color 255,255,0
If norm1 = 1 Then Color 255,255,255
lin1$ = Mid$(Zei$(x+1),9,60)
Text 10,430,lin1$
;die einfärbung, berechnug und ausgabe des testes(3.zeile)
If rot2  = 1 Then Color 255,0,0
If blau2 = 1 Then Color 0,0,255
If gelb2 = 1 Then Color 255,255,0
If norm2 = 1 Then Color 255,255,255
lin2$ = Mid$(Zei$(x+2),9,60)
Text 10,460,lin2$
;grün färben und den namen der sprechenden figur ausgeben
Color 0,255,0
Text 10,373,name$

End If
;functions ende
End Function






ich will nun einen textaus geben der mehrere zeilen lang ist aber der bleibt immer beri den ersten 3 zeilen stecken.

5k41

BeitragDo, Okt 06, 2005 12:32
Antworten mit Zitat
Benutzer-Profile anzeigen
autsch >.<...
Sry abba ich find deinen code SAU unübersichtlich...
1.Deine Komentare sind zum teil sehr überflüssig...wie man eigentlich ehr früh lernt sollte mn kommentare nur einsetzten wenn etwas schwer zu verstehen ist und nicht bei selbstverständlichen sachen
2.Man könnte auch absätze einbauen
3.Ich mache es auch manchmal so das ich entweder konstanten oder funktionen benutze um den progrmmcode übersichtlicher zu machen...is sehr nützlich auch wenn es eigenlich "sinnlos" is...

Sooo das mal als tipp weil so hab ich echt keinen bock deinen code durchzulesen Wink nich bös gemeint!

Hummelpups

BeitragDo, Okt 06, 2005 23:55
Antworten mit Zitat
Benutzer-Profile anzeigen
If py = 5 Then
If px = 8 Then
If KeyDown(57) Then
Playscript ("C:\Daten\npc.txt")
EndIf
EndIf
EndIf

Sowas ist sowieso der letzte Müll, du wirst
keydown öfter aufrufen als die koordinaten. Das kann man
dann doch vereinfachen so das du wenn du nun ein zweites script
ausführst nicht wieder keydown schreiben musst was dann spätestens
beim zweiten script eh nicht mehr funzt.


If KeyDown(57) Then
If px = 8 and py = 5 then
Playscript ("C:\Daten\npc.txt")
EndIf
EndIf

Außerdem: Jeder Mathelehrer killt dich wenn du Y zuerst nennst!!!

IMurDOOM
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group