RPG NPC text
Übersicht

Mashed CrashedBetreff: RPG NPC text |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
![]() |
Hummelpups |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group