Problem bei if abfrage
Übersicht

BassmasterBetreff: Problem bei if abfrage |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich habe folgendes Problem und zwar wenn ich zu einem NPC in meine Spiel gehe und denn anspreche dann lässt der einen nicht mehr weiter gehen -.- Also wenn ich z.b. die 1 für wieder gehen eingebe dann bleibt der trotzdem in der Funktion es sei den ich drücke wie wild die Pfeil taste nach unten und gebe dabei eine 1 ein und bestätige diese dann bewegt sich die Figur von dem NPC weg und nach ein paar Schritten ist meine Figut wieder frei und ich kann weiter laufen. Code: [AUSKLAPPEN] Function npc_hallo() If px = 3 Then If py = 8 Then Local a = 315 Local b = 180 Locate a,b Local npc_hallo npc_hallo = Input ("Was wollen sie tuen: (1) Wiedergehen ") If npc_hallo = 1 Then Print "cya" End If End If End If |
||
![]() |
BigMaexle |
![]() Antworten mit Zitat ![]() |
---|---|---|
npc_hallo sollte ein String sein. Also mit "$" deklarieren und dann auch nach dem Zeichen "1" und nicht der Zahl abfragen. | ||
--------------------------------------
Ich bin unfreiwillig ein Mitglied dieser kapitalistischen Gesellschaft, wo jeder Geldgeile Unternehmer an mein Geld will und ich selbst bei meinen Entscheidungen so gut wie willenlos bin...... und ich bin glücklich drüber |
Bassmaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok thx ich werds morgen mal testen jetzt ist schon zu spät^^ | ||
![]() |
peacemaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wieso sollte es ein String sein?
Er muss ja nur eine Zahl speichern. Und wenn diese 2 ist, dann wird halt das zwischen if npc_say... und end if ausgeführt ... mfG |
||
~Tehadon~
www.tehadon.de http://www.blitzforum.de/worklogs/14/ |
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Sache ist ganz einfach die, das der Spieler, ob er nun eine "1" eingibt oder nicht, nach eben dieser Eingabe immernoch auf Position x/y steht und deine Abfrage wieder eingeschaltet wird.
Eine einfache Lösung wäre, das man zuerst eine Taste (z.b. Enter) drücken muss, und wenn man dann auf Position x/y steht, wird das in einer Variable vermerkt, danach gibt man 1/2/xxx ein und wenn nun nichts passieren soll oder die Konversation zu Ende ist wird diese Variable wieder auf "0" gesetzt - der Spieler kann weiterlaufen. |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
Bassmaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
Meine 1te Idee Hier gerät leider die ganze Kollisions abfrage durcheinander. Code: [AUSKLAPPEN] If px = 3 Then If py = 8 Then Local a = 315 Local b = 180 Locate a,b Local npc_hallo npc = Input ("Was wollen sie tuen: (1) Wiedergehen ") If npc = 1 Then Print"cya" Delay 1000 px = 3 py = 9 End If End If End If ich hab das jetzt mal so versucht, aber das funktioniert auch nicht richtig die abfrage was man tuen viel blink nur kurz auf auch hier Gerät die Kollisios abfrage ausseinander. Ich auch schon die Variablen für die Kollision geändert aber ging trotzdem net. ![]() Meine 2te Idee Code: [AUSKLAPPEN] Function npc_hallo() If KeyHit(28) If px = 3 Then If py = 8 Then Local a = 315 Local b = 180 Locate a,b Local npc_hallo npc = Input ("Was wollen sie tuen: (1) Wiedergehen ") If npc = 1 Then Print"cya" Delay 1000 px = 3 py = 9 End If End If End If End If So muss es doch eigentlich gehen aber der Satz "Was kann ich für sie tuen" der blinkt nur einmal kurz auf wenn ich die enter taste drücke was ist den hierdran falsch ![]() Code: [AUSKLAPPEN] Function npc_hallo() If KeyHit(28) Then If px = 3 Then If py = 8 Then npc = Input ("Was wollen sie tuen: (1) Wiedergehen ") If npc = 1 Then Print "Cya" End If End If End If End If Der komplette Source Code Code: [AUSKLAPPEN] Graphics 640,480,32,0 Global Tileset = LoadAnimImage("tileset1.png" ,32,32,0,7) Global char = LoadImage ("char.png") ;----------------------------------- Global ppx = 10*32 ;X-Position des Charackters Global ppy = 7*32 ;Y-Position des Charackters Global py = 7 ;Kollisions X-Position des Charackters Global px = 10 ;Kollisions Y-Position des Charackters Global scrolly ;Die Variable fr die ScrollY-Position Global scrollx ;Die Variable fr die ScrollX-Position ;-------------------------------- ; 0 = wiese ; 1 = sand ; 2 = hebel ; 3 = wasser ; 4 = tür ; 5 = feuer ; 6 = baum Dim map(25,25) ;26 nach rechts ;26 nach unten Data 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,6,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,5,5,5,5, 5,5,4,5,5, 5,5,4,5,5, 5,5,5,5,5, 5,5,5,5,5, 5 Data 5,0,0,0,0, 0,0,2,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5 For x = 0 To 25 For y = 0 To 25 Read map(x,y) Next Next Repeat SetBuffer BackBuffer() Cls For x = 0 To 25 For y = 0 To 25 DrawBlock tileset,x*32-scrollx,y*32-scrolly,map(x,y) ;map malen Next Next DrawImage char,ppx-scrollx,ppy-scrolly ;figur male ;----Bewegungsroutinen---------------------------------------------------------------------------------- Print px Print py Select move ;links Case 1 ;Spielerposition ndern scrollx = scrollx - 2 ppx = ppx - 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter=counter+1 If counter = 16 Then px = px - 1 counter = 0 move = 0 EndIf ;Rechts Case 2 ;Spielerposition ndern scrollx = scrollx + 2 ppx = ppx + 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter = counter+1 If counter = 16 Then px = px + 1 counter = 0 move = 0 EndIf ;runter Case 3 ;Spielerposition ndern scrolly = scrolly + 2 ppy = ppy + 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter = counter+1 If counter = 16 Then py = py + 1 counter = 0 move = 0 EndIf ;rauf Case 4 ;Spielerposition ndern scrolly = scrolly - 2 ppy = ppy - 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter = counter+1 If counter = 16 Then py = py - 1 counter = 0 move = 0 EndIf End Select ;Cursor Rechts If KeyDown(205) Then ;Kollision checken, wie ihr es schon kennt If map(px+1,py) < 3 Then ;der nchste Tastatur-eingabe-impuls wird mglich sobald die vorige Bewegung abgeschlossen ist ;das heit in der Zeit wo keine Tastatur-eingabe erfolgen kann wird zur Zeit gescrollt If move=0 Then ;die Scrollroutine move=2 ( Case 2 ) wird aufgerufen move = 2 End If End If End If ;Cursor Links If KeyDown(203) Then ;Kollision checken, wie ihr es schon kennt If map(px-1,py) < 3 Then ;der nchste Tastatur-eingabe-impuls wird mglich sobald die vorige Bewegung abgeschlossen ist ;das heit in der Zeit wo keine Tastatur-eingabe erfolgen kann wird zur Zeit gescrollt If move=0 Then ;die Scrollroutine move=1 ( Case 1 ) wird aufgerufen move = 1 End If End If End If ;runter key If KeyDown(208) Then If map(px,py+1) < 3 Then If move = 0 Then move = 3 End If End If End If ;rauf key If KeyDown(200) Then If map(px,py-1) < 3 Then If move = 0 Then move = 4 End If End If End If ;-------funktionen---- hebel_trigger() npc_hallo() Flip Forever Function hebel_trigger() If KeyHit(57) Then ;und die spielerposition auf den hebel-tile befindet If map(px,py) = 2 Then ;dann wird die gesamte karte eingelesen und alle tür-tiles in graß-tiles ;umgewandelt For y = 0 To 25 For x = 0 To 25 If map(x,y) = 4 Then map(x,y) = 0 End If Next Next End If End If End Function Function npc_hallo() If KeyHit(28) If px = 3 Then If py = 8 Then Local a = 315 Local b = 180 Locate a,b Local npc_hallo npc = Input ("Was wollen sie tuen: (1) Wiedergehen ") If npc = 1 Then Print"cya" Delay 1000 px = 3 py = 9 End If End If End If End If If px = 4 Then If py = 7 Then Local c = 284 Local d = 210 Locate c,d Print "Hallo" End If End If If px = 3 Then If py = 6 Then Local g = 315 Local h = 255 Locate g,h Print "Hallo" End If End If If px = 2 Then If py = 7 Then Local e = 348 Local f = 211 Locate e,f Print "Hallo" End If End If End Function So hätte ich ein Teil vom Problem gelöst aber jetzt kann ich keine anderen if abfragen mehr machen weil da ist dann auch wieder alles durcheinander ![]() Code: [AUSKLAPPEN] If KeyHit(57) Then ;und die spielerposition auf den hebel-tile befindet If map(px,py) = 2 Then ;dann wird die gesamte karte eingelesen und alle tür-tiles in graß-tiles ;umgewandelt For y = 0 To 25 For x = 0 To 25 If map(x,y) = 4 Then map(x,y) = 0 End If Next Next End If End If End Function Function npc_hallo() If KeyHit(28) Then If px = 3 Then If py = 8 Then FlushKeys npc = Input ("NPC: Was wollen sie tuen: (1) Wiedergehen") FlushKeys If npc = 1 Then Print "Cya" Delay 500 FlushKeys |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group