Problem mit if funktion

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Bassmaster

Betreff: Problem mit if funktion

BeitragFr, Feb 08, 2008 12:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Wenn ich auf einen NPC im Spiel zu laufe und diesen durch betätigung der Enter Taste anspreche wird meine Abfrage gestartet.

Der NPC fragt "Was wollen sie tuen: (1) Wiedergehen (2) Etwas Kaufen : "

Mein Problem wenn ich jetzt z.b. die 1 drücke für Wiedergehen dann zeigt er mir nur ganz kurz das Wort "Cya" von dem NPC an.

Also habe ich mir gedacht mach ich halt ein delay mit darein. In diesem Teil geht das ja noch.

Aber bei dem "Etwas Kaufen" Teil da ist das mit dem delay ja Schwachsinn das kann ja gar net funktionieren.

Hat vielleicht wer eine Idee wie man das Problem lösen könnte ?

Code: [AUSKLAPPEN]

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   (2) Etwas kaufen  : ")   
         
         FlushKeys
          If npc = 1 Then   
         Delay 500
         Print "Cya"
         
         FlushKeys
         
            FlushKeys
            If npc=3 Then
            Print "Was wollen sie kaufen? 3 = Schwert"
                           
               FlushKeys
               If npc=3
               Print "Spielfigur: Ich habe ein Schwert gekauft"
   
End If       
   End If
       End If
         End If
            End If
               End If

Markus2

BeitragFr, Feb 08, 2008 13:17
Antworten mit Zitat
Benutzer-Profile anzeigen
mach ne Meldungs liste wo jeder Eintrag einen Wert für die Sichtbare Zeit bekommt und dann zeigste die Meldungen einfach alle an
Genauso kannste auch Meldungen selber aus der Liste löschen wenn
wenn du der Meldung eine Nummer gibst
Einfach das Programm anhalten ist blöd .
 

Bassmaster

BeitragFr, Feb 08, 2008 13:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm wie meinst du das jetzt mit Meldungsliste haste vielleicht ein beispiel für mich oder so ?

Markus2

BeitragFr, Feb 08, 2008 20:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]


;###############################################################################

Type MessageType
 Field MSG$
 Field Wait
End Type
Global Message.MessageType

;###############################################################################

Function MessageAdd(MSG$,Wait=150)

 ;-------------------------------------- no last duplicates

 If Message<>Null Then
  If Message\MSG$=MSG$ Then
   Message\Wait=Wait
   Return
  EndIf
 EndIf

 ;-------------------------------------- Limit Messages

 Local c

 For Message.MessageType=Each MessageType
  c=c+1
  If c=50 Then
   Delete First MessageType
   Exit
  EndIf
 Next

 ;--------------------------------------

 Message.MessageType=New MessageType

 Message\MSG$=MSG$

 Message\Wait=Wait

 ;--------------------------------------

End Function

;###############################################################################

Function MessageFreeAll()

 Delete Each MessageType

End Function

;###############################################################################

Function MessageShowAll()

 Local y=0

 Local fi=True

 Local tw=0

 Local xMessage.MessageType

 xMessage=Message

 Local ysp=StringHeight("X") ;bmpTextHeight()

 Local c=0

 Color 255,255,255

 For xMessage.MessageType=Each MessageType

  c=c+1
  If c>10 Then Exit ;Nur X anzeigen

  If fi=True Then
   fi=False
   If xMessage\Wait>0 Then xMessage\Wait=xMessage\Wait-1
  EndIf

  tw=StringWidth(xMessage\MSG$)
  ;tw=bmpTextWidth(xMessage\MSG$)
 
  Text 4,y,xMessage\MSG$,0,0
  ;bmpText 4,y,xMessage\MSG$,0,0
  y=y+ysp

  If xMessage\Wait=0 Then Delete xMessage

 Next

 Return c

End Function

;###############################################################################

 

Bassmaster

BeitragFr, Feb 08, 2008 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
oh types damit hab ich mich noch nie beschäftigt. Ich glaub ich lad mir mal gleich das Types Tutorial von der robiste hp.

thx für die antowort :>

Markus2

BeitragFr, Feb 08, 2008 22:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei Keyhit machste MessageAdd "Hallo"
und in der Hauptschleife
MessageShowAll

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group