Script Conversion
 

News:

29 December 2022 - PtokaX 0.5.3.0 (20th anniversary edition) released...
11 April 2017 - PtokaX 0.5.2.2 released...
8 April 2015 Anti child and anti pedo pr0n scripts are not allowed anymore on this board!
28 September 2015 - PtokaX 0.5.2.1 for Windows 10 IoT released...
3 September 2015 - PtokaX 0.5.2.1 released...
16 August 2015 - PtokaX 0.5.2.0 released...
1 August 2015 - Crowdfunding for ADC protocol support in PtokaX ended. Clearly nobody want ADC support...
30 June 2015 - PtokaX 0.5.1.0 released...
30 April 2015 Crowdfunding for ADC protocol support in PtokaX
26 April 2015 New support hub!
20 February 2015 - PtokaX 0.5.0.3 released...
13 April 2014 - PtokaX 0.5.0.2 released...
23 March 2014 - PtokaX testing version 0.5.0.1 build 454 is available.
04 March 2014 - PtokaX.org sites were temporary down because of DDOS attacks and issues with hosting service provider.

Main Menu

Script Conversion

Started by chaggydawg, 24 October, 2003, 15:21:51

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

chaggydawg

Is it possible to convert this NMDCH script to LUA??

         '''''''''''''''''''''''''''''''''''''''''''''''''
         '''          Hub-Link Support Script          '''
         '''             For NeoModus Hubs             '''
         '''                   v1.00                   '''
         '''                                           '''
         '''            September 15, 2003             '''
         '''                  by HaArD                 '''
         '''''''''''''''''''''''''''''''''''''''''''''''''
         '''  Based on the Support Script for MHCBot   '''
         '''                 by FLiXD                  '''
         '''''''''''''''''''''''''''''''''''''''''''''''''

Dim sBotName, sOPChatName, oNoDCHL, oDCHLBots, sTheText, OPMsg, HubBytes, UserCount, bIPAddPM, bIPFixPM

Sub Main()
  sBotName = "Somedude"              '***USE SAME NAME AS BOT NAME IN HUB-LINK
  sOPChatName = "MHOPchat"       '***ENTER NAME OF OP CHAT SCRIPT IN THIS HUB
  bIPAddPM = True						'***Send User a PM if IP # is blank in Connect requests?
  bIPFixPM = True						'***Send User a PM if IP # is wrong in Connect requests?
  Set oNoDCHL = CreateObject("Scripting.Dictionary")   '*** USERS WHO DO NOT WANT TO RECIEVE CHAT FROM REMOTE HUBS
  Set oDCHLBots = CreateObject("Scripting.Dictionary") '*** BOTS WHICH SHOULD NOT BE COUNTED IN HUB TOTALS
End Sub

Sub NewUserConnected(curUser)
   'curUser.SendChatMessage cstr(sBotName), "For those users not wishing to view MultiHubChat, these triggers are available:"+vbCrlf+"?   DCHLhide   ?   DCHLshow   ?"
   If curUser.sname = sBotName Then  '*** SEND HUB-LINK THE $MyINFO STRING FOR ALL CONNECTED USERS.
   	For Each usr In colUsers
   		If Not usr.sname = sBotName Then	curUser.SendData "$Hello " & usr.sname & "|" & usr.sMyInfoString & "|"
   	Next
   Else
   	Call CheckUserName(curUser.sName) '*** VALIDATE THAT THE USERNAME IS AVAILABLE IN HUB-LINK
   End If
End Sub

Sub OpConnected(curUser)
   Call NewUserConnected(curUser)
End Sub

Sub CheckUserName(UserName)
	colUsers.ItemByName(cstr(sBotName)).SendData "$#TUN " & UserName & "|"
End Sub

Sub DataArival(curUser, sCurData)

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''' Process Main Chat User Commands First and then Exit Sub   '''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

If AscW(sCurData) = 60 Then                            '***ALLOWS USER TO VIEW OR HIDE CHAT FROM REMOTE HUBS
   sTheText = AfterFirst(sCurData, "> ")
   Select Case LCase(sTheText)

   Case "dchlhide"
      If Not oNoDCHL.Exists(LCase(curUser.sname)) Then
         oNoDCHL(LCase(curUser.sname))= "blocked"
         curUser.SendChatMessage cstr(sBotName), "You have chosen not to view MultiHub Chat."
         Exit Sub
      End If

   Case "dchlshow"
      If oNoDCHL.Exists(LCase(curUser.sname)) Then
         oNoDCHL.Remove(LCase(curUser.sname))
         curUser.SendChatMessage cstr(sBotName), "You have chosen to view MultiHub Chat."
         Exit Sub
      End If

   Case Else
      Exit Sub

	End Select

End If

''''''''''''''''''''''''''''''''''''''''
''' Process DC and HUB-LINK Commands '''
''''''''''''''''''''''''''''''''''''''''

If AscW(sCurData) = 36 Then
   Select Case Trim(BeforeFirst(sCurData & " ", " "))

'''''''''''''''''''''''''''''''
''' Commands Sent by Users  '''
'''''''''''''''''''''''''''''''

	   Case "$GetNickList"				'***MAKES OPCHAT BOT VISIBLE TO OPs ONLY
			If curUser.bOperator And Not curUser.sName = sBotName Then
				curUser.SendData "$Hello " + CStr(sOPChatName)+"|"
				If Not curUser.sName = sBotName Then
					curUser.SendData "$MyINFO $ALL "+Cstr(sOPChatName)+" OP Chat Room$ $Chat"+chr(8)+"$"+frmHub.txtIP+"$"+"0"+"$|"
				End If
			End If
			If Not curUser.sName = sBotName Then colUsers.ItemByName(cstr(sBotName)).SendData "$#GNL "+curUser.sName+"|"

		Case "$ConnectToMe"          '***RELAY ACTIVE CONNECT REQUESTS TO REMOTE USERS (ALSO VALIDATES/CORRECTS IP)
			If Not curUser.sName = sBotName Then
         CTMTo = BeforeFirst(AfterFirst(sCurData, " "), " ")
			If Not colUsers.Online(CStr(CTMTo)) Then
				CTMMsg = AfterFirst(AfterFirst(sCurData, " "), " ")
         	CTMMsgIP = BeforeFirst(AfterFirst(AfterFirst(sCurData, " "), " "), ":")
         	CTMIP = curUser.IP
         	If Mid(CTMMsg, InStr(CTMMsg, ":") - 1, 1) = " " Then
            	CTMMsg = Replace(CTMMsg, ":", curUser.IP & ":")
            	If bIPAddPM Then curUser.SendData "$To: " & curUser.sName & " From: " & sBotName & " $<" & sBotName & "> " & "Your connection request for " & CTMTo & " did not include an IP Address. To stop this message please put the IP " & CTMIP & " in your connection settings. If you have a dynamic IP you can get a free DNS name from www.no-ip.com and put that in instead.|"
         	Elseif Not CTMMsgIP = CTMIP Then
            	If Not CTMIP = "127.0.0.1" And Not Left(CTMIP, 7) = "192.168" Then   ' Make sure it's not a local hubowner.
               	CTMMsg = Replace(CTMMsg, CTMMsgIP, curUser.IP)
               	If bIPFixPM Then curUser.SendData "$To: " & curUser.sName & " From: " & sBotName & " $<" & sBotName & "> " & "You have the wrong IP address in your connection settings. To stop this message please update it to read " & CTMIP & "|"
            	End If
         	End If
				colUsers.ItemByName(cstr(sBotName)).SendData "$#CTM " & CTMTo & " " & CTMMsg & "|"
			End If			
			End If
						
		Case "$RevConnectToMe"        '***RELAY PASSIVE CONNECT REQUESTS TO REMOTE USERS 
			If Not curUser.sName = sBotName Then
			sUserName = AfterFirst(AfterFirst(sCurData," ")," ")
			If Not colUsers.Online(CStr(sUserName)) Then
				colUsers.ItemByName(cstr(sBotName)).SendData "$#RTM" & AfterFirst(sCurData, "$RevConnectToMe") & "|"
			End If
			End If
						
		Case "$To:"							'***DEALS WITH OP CHAT
			sUserName = BeforeFirst(AfterFirst(sCurData, " "), " ")
			If sUserName = sOPChatName Then     
				OPMsg = AfterFirst(sCurData, "> ")
				For Each usrOP In colUsers
					If usrOP.bOperator Then
						If usrOP.sName = curUser.sName Or usrOP.sName = sBotName Then
						Else 
								usrOP.SendData CStr("$To: "+usrOP.sName+" From: "+sOPChatName+" $<"+Cstr(curUser.sName)+"> "+Cstr(OPMsg)+"|")   '***LOCAL OPCHAT
						End If
					End If
				Next  
				colUsers.ItemByName(cstr(sBotName)).SendChatMessage "???","?"+CurUser.sName+"?"+cstr(OPMsg)   '***REMOTE OPCHAT
			Else         '***DEALS WITH PRIVATE MESSAGES TO REMOTE HUBS (**WARNING** PM'S TO LOCAL BOTS ARE ALSO PICKED UP)
				If Not colUsers.Online(CStr(sUserName)) And  Not sUserName = "Vandel\Debug" Then
					colUsers.ItemByName(cstr(sBotName)).SendData "$#PRM " & AfterFirst(sCurData, " ")
				End If
			End If
			
		Case "$Hello", "$Quit"   'SENDS REMOTE JOINS AND PARTS TO USERS ON THE LOCAL HUB.
			If curUser.sName = sBotName Then
				For Each usr In ColUsers
					If Not usr.sName = sBotName Then
						If Not AfterFirst(sCurData, " ") = sOPChatName Then
							usr.SendData sCurData + "|"
						End If
					End If
				Next
			End If
		
		Case "$MyINFO"						'*** STOPS HUB-LINK BOTS FROM BEING COUNTED IN HUB BYTES
			If Mid(sCurdata, 9, 5) = "$ALL " Then
				If Right(BeforeFirst(AfterFirst(sCurData, "$ $"), "$"),1)=chr(108) Then
					If Not oDCHLBots.exists(LCase(curUser.sName)) Then oDCHLBots(LCase(curUser.sName)) = " "
				End If
			End If

		Case "$Kick"                  '*** RELAYS KICK COMMAND FOR USERS WHO ARE NOT LOCAL
			sUserName = AfterFirst(sCurData, " ")
			If Not colUsers.Online(CStr(sUserName)) Then
				colUsers.ItemByName(cstr(sBotName)).SendData "$#KCK " & curUser.sName & " " & AfterFirst(sCurData, " ")
			End If

		Case "$OpForceMove"           '*** RELAYS RE-DIRECT COMMAND FOR USERS WHO ARE NOT LOCAL
			sRedirWho = BeforeFirst(AfterFirst(sCurData, "$Who:"), "$")
			If Not colUsers.Online(CStr(sRedirWho)) Then
				colUsers.ItemByName(cstr(sBotName)).SendData "$#OFM " & curUser.sName & " " & AfterFirst(sCurData, " ")
			End If

		
'''''''''''''''''''''''''''''''''
''' Commands Sent by HUB-LINK '''
'''''''''''''''''''''''''''''''''

		Case "$#INF"                '*** SEND $MyINFO FOR LINKED HUBS TO ALL CONNECTED USERS
			sSendtoWho = BeforeFirst(AfterFirst(sCurData, " "), " ")
			If sSendToWho = "$ALL" Then
				For Each usr In colUsers
					If Not usr.sName = sBotName Then usr.SendData "$MyINFO " & AfterFirst(sCurData, " ") & "|"
				Next			
			Else                    '***  OR JUST TO THE USER WHO REQUESTED IT.
				colUsers.ItemByName(cstr(sSendToWho)).SendData "$MyINFO $ALL " & AfterFirst(AfterFirst(sCurData, " "), " ") & "|"
			End If
		
		Case "$#OPL"               '*** RE-SEND OPLIST WHICH INCLUDES ALL OPS FROM LINKED HUBS
			For Each usr In colUsers
				If Not usr.sName = sBotName Then
					If usr.bOperator Then 
						usr.SendData "$OpList " & AfterFirst(sCurData, " ") & sOpChatName & "$$|"
					Else
						usr.SendData "$OpList " & AfterFirst(sCurData, " ") & "|"
					End If
				End If
			Next
			
		Case "$RS"					     '*** RELAY A SEARCH REQUEST
        For Each User In ColUsers
           If User.sName <> sBotName Then
              User.SendData CStr(mid(sCurData,5))
           End If
        Next
		
		Case "$FW"						'*** PROCESSES MAIN CHAT FROM REMOTE HUBS
			sRemUser = BeforeFirst(AfterFirst(sCurData, " "), " ")
			sRemMsg = AfterFirst(AfterFirst(sCurData, " "), " ")
			For Each usr In ColUsers
				If Not oNoDCHL.Exists(LCase(cstr(usr.sname))) And Not usr.sname = sBotName Then
					usr.SendChatMessage CStr(sRemUser), CStr(sRemMsg)
				End If
			Next  

		Case "$FWOC"						'*** PROCESSES OPCHAT FROM REMOTE HUBS
			sRemUser = BeforeFirst(AfterFirst(sCurData, " "), " ")
			sRemMsg = AfterFirst(AfterFirst(sCurData, " "), " ")
			For Each usrOP In colUsers
				If usrOP.bOperator And Not usrOP.sname = sBotName Then 
						usrOP.SendData CStr("$To: "+usrOP.sName+" From: "+sOPChatName+" $<"+CStr(sRemUser)+"> "+CStr(sRemMsg))
				End If
			Next    

		Case "$#PRM"                  '*** PROCESSES PRIVATE MESSAGES FROM REMOTE HUBS
			sLocUser = BeforeFirst(AfterFirst(sCurData, " "), " ")
			sRemUser = BeforeFirst(AfterFirst(sCurData, "From: "), " ")
			sRemPrfx = BeforeFirst(AfterFirst(AfterFirst(sCurData, "$"), "$"), " ")
			sRemMsg = AfterFirst(sCurData, "> ")
			colUsers.ItemByName(cstr(sLocUser)).SendData "$To: " & sLocUser & " From: " & sRemUser & " $" & sRemPrfx & " " & sRemMsg & "|"

		Case "$#GMI"                  '*** SENDS $GetInfo TO REQUESTED CLIENT.
			sLocUser = BeforeFirst(AfterFirst(sCurData, " "), " ")
			colUsers.ItemByName(cstr(sLocUser)).SendData ("$GetINFO " & AfterFirst(sCurData, " ") & "|")

		Case "$GetHubInfo"				'*** GATHERS HUB USERCOUNT & SHARE
			HubBytes = 0
			For Each User In colUsers
				If Not oDCHLBots.exists(LCase(cstr(User.sName))) Then HubBytes = HubBytes+User.ibytesshared
			Next
			Usercount = cstr(colusers.Count)
			colUsers.ItemByName(cstr(sBotName)).SendChatMessage "???", "?"+Cstr(UserCount)+"?"+cstr(HubBytes)

		Case "$#UNT"                  '*** ACCEPT OR DISCONNECT USER BASED ON RESPONSE FROM HUB LINK
			sLocUser = BeforeFirst(AfterFirst(sCurData, " "), " ")
			Result = AfterFirst(AfterFirst(sCurData, " "), " ")
			If Not Result = "OK" Then
				colUsers.ItemByName(cstr(sLocUser)).SendData "<" & sBotName & "> " & "The user name " & sLocUser & " is already taken." & "|"
				frmHub.DoEventsForMe
				colUsers.ItemByName(cstr(sLocUser)).disconnect
			End If 		
	End Select

End If

End Sub


''''''''''''''''''''''''
''' String Functions '''
''''''''''''''''''''''''


Function BeforeFirst(sIn, sFirst)               
    BeforeFirst = LeftB(sIn, InStrB(1, sIn, sFirst) - 1)
End Function

Function AfterFirst(sIn, sFirst)  
    AfterFirst = RightB(sIn, LenB(sIn) - InStrB(1, sIn, sFirst) - LenB(sFirst) + 1)
End Function

Tuben

Yes it is ;))

Any too say waht it does then do it in lua ;)
-Dark-Mind-[ DOWNLOAD ]

klownietklowniet

What does this script have that a script package of some sort doesn't have? Anything in particular? I just don't think it's worth it to convert it to Lua...
[ > DC - UniteD < ]

GrouchoMarxist


SMF spam blocked by CleanTalk