Little Question

Blitz3D Forums/Blitz3D Beginners Area/Little Question

Kenshin Yurihara(Posted 2009) [#1]
Okay before I add more on to my chat program I wanted to know is there just a way to Clear the input thing off the screen without clearing the messages that have been sent? I don't want to go back and rescript a Whole nother window to send it to the chat window if I aint got to.Any and all help is appreciated thanks :D


Matty(Posted 2009) [#2]
Of course, I would think you would simply need to store each line of text in a 'type' for instance, displaying when and if you needed to.


KillerX(Posted 2009) [#3]
Use an array to record the messages or write to a file.


Kenshin Yurihara(Posted 2009) [#4]
Thanks guys will try both I was thinking of trying something like u both said.


Matty(Posted 2009) [#5]
Type MessageList

Field Message$

End Type

Function AddMessage(Message$)

M.MessageList=new MessageList
M\Message=Message

Count=0
For M.MessageList=each MessageList
Count=Count+1
next
if Count>20 then 
M.MessageList=first MessageList
delete M
endif 
End Function 

Function DrawMessage()

For M.MessageList=each MessageList
Text 0,graphicsheight()-Count*20,M\Message
Next

End Function 


In your main loop:

Repeat


;do whatever you normally do.
;When a message is received use AddMessage("pass string here")
cls
color 255,255,255
DrawMessage()
flip



Until KeyDown(1)



something like that perhaps...


Kenshin Yurihara(Posted 2009) [#6]
That was quick matty o.o I'll try it thanks.


Kenshin Yurihara(Posted 2009) [#7]
Ya it don't work it just makes none of it work XD. I'm about to try something myself.


Kenshin Yurihara(Posted 2009) [#8]
I found a way to fix my problem but now I need to know when I have the input it makes the Line that I inputed move down a space is there a way to get rid of that?
I was thinking of like Reseting the X of the input to 1,1 by using Write instead of print Then everytime so on it'd +the x by 1
Would this kinda work?




After this is fixed thats all I need thanks guys.


Ross C(Posted 2009) [#9]
I believe using the Locate command could help you here.

http://www.blitzbasic.com/b3ddocs/command.php?name=Locate&ref=2d_a-z


Kenshin Yurihara(Posted 2009) [#10]
C = "0"
Function TextMove()
Y="1"
If C = "1" Then Y= Y+1
End Function 

I tried this and just to call the function but It eventually adds up to were it skips lines and stuff :(.


Matty(Posted 2009) [#11]
"C" will always be zero in the function you've posted - firstly because it is a local variable inside TextMove() and also because in that code snippet there you've done nothing to cause C to change.


Kenshin Yurihara(Posted 2009) [#12]
Y = 1
Y = Y+1
Text 1,Y,Name$ + " Says:"  + Message$,False,False 


See this makes it do this:
line 1.Prints
Line 2.Prints
Line 3.skip
Line 4.skip
Line 5.Prints

Any ideas?


Matty(Posted 2009) [#13]
That small code snipped will not do the steps you've just outlined. Post the rest of your code and we may be able to help.

I think you'll find the code I posted earlier does work - when you apply it correctly.


Kenshin Yurihara(Posted 2009) [#14]
See no I think you read my statement wrong.Thats what it IS doing but not what I want it to do also I will send my code
;-more boxing----;
Graphics 300,300
AppTitle "Revenge studios Chatroom"
;---boxing----------------------;

;---Boxing out Login stuff---;
Name$=Input("Name:")
;---Boxing out stuff---;

;-xx-xx--Boxing out Joining stuff--xx-xx-
Ip$="192.168.0.100"
GameName$="Revenge Studios"
Join=JoinNetGame(GameName$,Ip$)

Select Join
Case 1
Print ("Joined Revenge Studios Chatroom Succesfully")
Player$=CreateNetPlayer(Name$)
Cls 
Case 2
Print ("Failed to join")
WaitKey()
End  
End Select 
;-xx-xx--Boxing out Joining stuff--xx-xx-

While 1
;--Sending message--------; 
Color 0,0,0
Message$=Input() 
SendNetMsg(1,Message$,Name$,0,1)
;--Sending message--------;

;--Reciving---;
If RecvNetMsg() Then
msgType$=NetMsgType()
EndIf 
If msgType$>0 And msgType$<100 Then
msgFrom$=NetMsgFrom()
msgData$=NetMsgData$()
EndIf 
Color 255,0,0
Y$ = "1"
Text 1,Y$,Name$ + " Says:"  + Message$,False,False
Y$ = Y$ + 1  
;--Reciving---;
Wend 

Here if anyone copies it or wants to use it go on ahead like I give a damn lol


Kenshin Yurihara(Posted 2009) [#15]
I have fixed the entire thing will a couple of test.
Thanks for all help and feedback :).