vikingnor Posted May 13, 2006 Share Posted May 13, 2006 i use a old Chat Client Script Posted here and i want it mostly fixed... but still it is bugged ^^ i did change the GUI Really much so you know Client Side.. expandcollapse popup#include <guiconstants.au3> global $connect_port = 34000 $ip = ("Server ip here.") tcpstartup() $socket = tcpconnect ($ip, $connect_port) if $socket = -1 then Exit EndIf Do Do $user = InputBox ("Connected", "Connection established please type in your desired Username") if @error = 1 Then $end = msgbox (4, "End client", "Sure you want to exit?") if $end = 6 Then Exit EndIf EndIf until StringLen ($user) > 3 and StringLen ($user) < 12 tcpsend ($socket, "~~us:" & $user) Do $recv = tcprecv ($socket, 512) if $recv = "~~password" Then $pw = InputBox ("Password required", "Please type in the password for " & $user, "", "*") tcpsend ($socket, "~~pw:" & $pw) EndIf until $recv = "~~accepted" or $recv = "~~rejected" or @error = 1 until $recv = "~~accepted" or $recv = "~~rejected" if $recv = "~~rejected" Then msgbox (0, "Failure", "Maximum number of users reached or Server currently not availible, please try again later") Exit EndIf $main = GuiCreate("Chronos Chat @ " & $user, 450, 200,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS)) $input = GUICtrlCreateInput ("", 20, 170, 280, 20) $edit = GUICtrlCreateEdit ("", 20, 30, 270, 120, $ES_READONLY + $ES_MULTILINE + $WS_VSCROLL + $ES_AUTOVSCROLL) $userlist = GUICtrlCreateEdit ("", 330, 30, 100, 120, $ES_READONLY + $ES_MULTILINE + $WS_VSCROLL + $ES_AUTOVSCROLL) $send = GUICtrlCreateButton ("Send", 320, 170, 120, 20, $BS_DEFPUSHBUTTON) $chatgroup = GuiCtrlCreateGroup("Chat", 10, 10, 290, 150) $usergroup = GuiCtrlCreateGroup("Users", 320, 10, 120, 150) GUICtrlSetState ($input, $GUI_FOCUS) GUISetState() while 1 $msg = GUIGetMsg() if $msg = $GUI_EVENT_CLOSE Then tcpsend ($socket, "~~bye") sleep (5000) tcpshutdown() Exit EndIf if $msg = $send Then if guictrlread ($input) <> "" Then tcpsend ($socket, guictrlread($input)) GUICtrlSetData ($input, "") EndIf EndIf $recv = tcprecv ($socket, 512) $err = @error if $recv = "~~bye" Then GUICtrlSetData ($edit, "~~Connection Lost" & @CRLF & GUICtrlRead($edit)) tcpshutdown() ExitLoop EndIf if $recv <> "" and $err = 0 and not StringInStr ($recv, "~~users:") Then GUICtrlSetData ($edit, $recv & @CRLF & GUICtrlRead($edit)) EndIf if StringInStr($recv, "~~users:") then $users = StringTrimLeft ($recv, 8) $users = StringReplace ($users, "|", @crlf) GUICtrlSetData ($userlist, $users) EndIf WEnd Func OnAutoItExit() TCPSend( $socket, "~~bye" ) TCPCloseSocket( $socket ) TCPShutDown() EndFunc Server Side expandcollapse popup#include <guiconstants.au3> global $g_port = 34000 Global $g_IP = @IPADDRESS1 Global $MainSocket dim $ConnectedSocket[101] dim $recv[101] dim $user[101] dim $pw[101] for $i = 1 to 100 step 1 $ConnectedSocket[$i] = -1 Next tcpstartup() $MainSocket = TCPListen($g_IP, $g_port, 100 ) If $MainSocket = -1 Then Exit $RogueSocket = -1 $input = GUICtrlCreateInput ("", 10, 10, 280) $main = GUICreate ("Chat Server", 600, 400,-1, -1 ) Opt("GuiOnEventMode", 1) GUISetOnEvent($GUI_EVENT_CLOSE, "GUI_Close") $edit = GUICtrlCreateEdit ("", 20, 30, 270, 350, $ES_READONLY + $ES_MULTILINE + $WS_VSCROLL + $ES_AUTOVSCROLL) $userlist = GUICtrlCreateEdit ("Server", 440, 30, 140, 350, $ES_READONLY + $ES_MULTILINE + $WS_VSCROLL + $ES_AUTOVSCROLL + $ES_WANTRETURN) $Group_3 = GuiCtrlCreateGroup("Users Connected", 430, 10, 160, 380) $Group_4 = GuiCtrlCreateGroup("Chat Log", 10, 10, 290, 380) $Button_5 = GuiCtrlCreateButton("test", 320, 30, 90, 30) $Group_6 = GuiCtrlCreateGroup("Menu", 310, 10, 110, 380) $Button_7 = GuiCtrlCreateButton("test", 320, 70, 90, 30) $Button_8 = GuiCtrlCreateButton("test", 320, 110, 90, 30) $Button_9 = GuiCtrlCreateButton("test", 320, 150, 90, 30) $Button_10 = GuiCtrlCreateButton("test", 320, 190, 90, 30) $Button_11 = GuiCtrlCreateButton("Stop Server", 320, 350, 90, 30) GUICtrlSetOnEvent(-1, "GUI_Close") $send = GuiCtrlCreateButton("Refresh", 320, 230, 90, 30, $BS_DEFPUSHBUTTON) GUICtrlSetState ($input, $GUI_FOCUS) GUISetState() $users = "Server" & @CRLF $users1 = $users while 1 $msg = GUIGetMsg() if $msg = $GUI_EVENT_CLOSE Then for $i = 1 to 100 step 1 if $ConnectedSocket[$i] <> -1 Then tcpsend ($ConnectedSocket[$i], "~~bye") EndIf Next tcpshutdown() Exit EndIf if $msg = $send Then if GUICtrlRead ($input) <> "" Then for $i = 1 to 100 step 1 if $ConnectedSocket[$i] <> -1 Then tcpsend ($ConnectedSocket[$i], "Server: " & guictrlread ($input)) EndIf Next GUICtrlSetData ($edit, guictrlread($input) & @crlf & guictrlread ($edit)) GUICtrlSetData ($input, "") EndIf EndIf for $i = 1 to 100 step 1 if $ConnectedSocket[$i] <> -1 Then $recv[$i] = tcprecv($ConnectedSocket[$i], 512) $err = @error if $recv[$i] = "~~bye" Then $ConnectedSocket[$i] = -1 tcpclosesocket($ConnectedSocket[$i]) $test = $user[$i] & "|" $users = StringReplace ($users, $test, "") GUICtrlSetData ($userlist, $users) if StringReplace ($users1, "|", @crlf) <> $users Then for $j = 1 to 100 if $ConnectedSocket[$i] <> -1 Then tcpsend($ConnectedSocket[$i], "~~users:" & $users1) EndIf Next EndIf EndIf if StringInStr ($recv[$i], "~~us:") Then $user[$i] = stringtrimleft ($recv[$i], 5) $test = $user[$i] & @CRLF if not StringInStr ($users, $test) Then if iniread ("chat.ini", "Users", $user[$i], "") <> "" Then tcpsend ($ConnectedSocket[$i], "~~password") Else tcpsend ($ConnectedSocket[$i], "~~accepted") USERLIST() EndIf EndIf EndIf if StringInStr ($recv[$i], "~~pw:") Then $pw[$i] = StringTrimLeft ($recv[$i], 5) if iniread ("chat.ini", "Users", $user[$i], "") = $pw[$i] then tcpsend($ConnectedSocket[$i], "~~accepted") USERLIST() Else tcpsend ($ConnectedSocket[$i], "~~password") EndIf EndIf if $recv[$i] <> "" and $err = 0 and $recv[$i] <> "~~bye" and not StringInStr($recv[$i], "~~us:") and not StringInStr($recv[$i], "~~pw:") Then for $j = 1 to 100 step 1 if $ConnectedSocket[$j] <> -1 Then tcpsend($ConnectedSocket[$j], $user[$i] & ": " & $recv[$i]) EndIf Next GUICtrlSetData ($edit, $user[$i] & ": " & $recv[$i] & @crlf & guictrlread($edit)) EndIf Else $ConnectedSocket[$i] = tcpaccept($MainSocket) EndIf Next WEnd func USERLIST() for $i = 1 to 100 step 1 if $ConnectedSocket[$i] <> -1 Then $test = $user[$i] & @CRLF if not stringinstr ($users, $test) Then $users = $users & $user[$i] & @CRLF EndIf Elseif $ConnectedSocket[$i] = -1 Then ;$users = stringreplace ($users, $user[$i], "") EndIf Next $users1 = StringReplace ($users, @CRLF , "|") for $i = 1 to 100 step 1 if $ConnectedSocket[$i] <> -1 Then tcpsend ($ConnectedSocket[$i], "~~users:" & $users1) EndIf Next GUICtrlSetData ($userlist, $users) EndFunc Func GUI_Close() Exit EndFunc ;==>GUI_Close i dont know how but i looked true all the styles and so on to find someway to make a new message appear below not above. also i want a auto refresh for the user's to check if their still online for either removing but still i am a bit Autoit newbie for this ^^ Link to comment Share on other sites More sharing options...
Simucal Posted May 13, 2006 Share Posted May 13, 2006 i dont know how but i looked true all the styles and so on to find someway to make a new message appear below not above. also i want a auto refresh for the user's to check if their still online for either removing but still i am a bit Autoit newbie for this ^^ Alright, it took me a bit to figure out what you were asking. Question 1.) As far as I know, there is no Edit style that will allow the text to align to the bottom of the edit control. As a workaround you could possibly have the editbox start off with a set amount of @CRLF 's so the first entry would be at the bottom of the edit control. Then each time the chatbox has a new line of text added to it you'd have to remove a @CRLF until the chatbox had each visible line filled with text.. then it could operate as normal. Question 2.) Do you mean you want it to automatically do a server-side refresh? Like when you hit the Refresh button on the server? If so, copy the code in the: if $msg = $send Then if GUICtrlRead ($input) <> "" Then for $i = 1 to 100 step 1 if $ConnectedSocket[$i] <> -1 Then tcpsend ($ConnectedSocket[$i], "Server: " & guictrlread ($input)) EndIf Next GUICtrlSetData ($edit, guictrlread($input) & @crlf & guictrlread ($edit)) GUICtrlSetData ($input, "") EndIf EndIf Without the If statement surrounding it and place it in the scripts While loop so it does it each cycle.. or something similar. -Simucal AutoIt Scripts:Aimbot: Proof of Concept - PixelSearching Aimbot with several search/autoshoot/lock-on techniques.Sliding Toolbar - Add a nice Sliding Toolbar to your next script. Click the link to see an animation of it in action!FontInfo UDF - Get list of system fonts, or search to see if a particular font is installed.Get Extended Property UDF - Retrieve a files extended properties (e.g., video/image dimensions, file version, bitrate of song/video, etc) Link to comment Share on other sites More sharing options...
vikingnor Posted May 13, 2006 Author Share Posted May 13, 2006 Alright, it took me a bit to figure out what you were asking. Question 1.) As far as I know, there is no Edit style that will allow the text to align to the bottom of the edit control. As a workaround you could possibly have the editbox start off with a set amount of @CRLF 's so the first entry would be at the bottom of the edit control. Then each time the chatbox has a new line of text added to it you'd have to remove a @CRLF until the chatbox had each visible line filled with text.. then it could operate as normal. Question 2.) Do you mean you want it to automatically do a server-side refresh? Like when you hit the Refresh button on the server? If so, copy the code in the: if $msg = $send Then if GUICtrlRead ($input) <> "" Then for $i = 1 to 100 step 1 if $ConnectedSocket[$i] <> -1 Then tcpsend ($ConnectedSocket[$i], "Server: " & guictrlread ($input)) EndIf Next GUICtrlSetData ($edit, guictrlread($input) & @crlf & guictrlread ($edit)) GUICtrlSetData ($input, "") EndIf EndIf Without the If statement surrounding it and place it in the scripts While loop so it does it each cycle.. or something similar. -Simucal no i mean like a auto refresh that happens each 30 second. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now