ok i need to do this in to parts
can this srcipt be made into a lua file please. For my new hub
_____________________________________________
'Chat Channel 2.11 script for NMDC hub or SBHub by Gadget http://gadget.no-ip.info
'Edited by ShadowLink
Dim sBotName, bPrivate, sUsers, aPowerOps, bIgnoreAway, bIsOpChat
Sub Main()
sBotName = "Nights Chit Chatt Room"
bPrivate = True '<- True to allow anyone to join false to allow only vips or ops to join
bIsOpChat = False '<- False for Vip Chat True For an op only chat
bIgnoreAway = True '<- Ignore away messages of dc++ and oDC users
aPowerOps = Array("Admin 1","Admin 2") '<- Vip Chat admins who can mass drop, and can set mode of the chat They stay in chat after everyone is dropped
sUsers = ""
frmHub.RegisterBotName(sBotName)
On Error Resume Next
Set wshShell = CreateObject("WScript.Shell")
sUsers = wshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\NeoModus\Hub\ChatChannelUsers")
x = wshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\NeoModus\Hub\ChatChannelMode")
If x="Public" Then bPrivate=False:bIsOpChat=False
If x="Vips" Then bPrivate=True:bIsOpChat=False
If y="Ops" Then bPrivate=True:bIsOpChat=True
If bPrivate=False Then bisOpChat=False
End Sub
Sub DataArival (curUser, sCurData)
If Left(sCurData,4)<>"$To:" Then Exit Sub
If Left(sCurData,Len(sBotName)+6)="$To: "+sBotName+" " Then
s=Mid(CStr(sCurData),InStr(CStr(sCurData),">")+2)
r=""
If InStr(s," ")>0 Then
sCmd=Left(s,InStr(s," ")-1)
sText=Mid(s,InStr(s," ")+1)
Else
sCmd=s
End If
bLeaving=False
Select Case LCase(sCmd)
Case "add","invite","join"
If sText="" Then sText=curUser.sName
If (bPrivate And Not bIsVip(curUser.sname) And Not bIsIn(curUser.sName)) or (bIsOpChat And Not curUser.bOperator And Not bIsIn(curUser.sName)) Then
r="You are not invited on this chat."
ElseIf Not colUsers.Online(CStr(sText)) Then
r="User "+sText+" is not online and can't be added"
ElseIf bIsIn(sText) Then
r="User "+sText+" is already in "+sBotName
Else
If sUsers="" Then
sUsers=sText
Else
sUsers=sUsers+"|"+sText
End If
Set wshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\NeoModus\Hub\ChatChannelUsers",sUsers,"REG_SZ"
r="The user "+sText+" is joined "+sBotName
End If
Case "inviteall"
If bIsOpChat Then
r="Can't invite all users to op chat"
ElseIf bPrivate Then
r="Can't invite all users to private chat"
ElseIf Not curUser.bOperator Then
r="You can't invite all users"
Else
If sUsers = "" Then sUsers = Cstr(curUser.sname)
For Each oUser In colUsers
If Not bIsIn(oUser.sName) Then
sUsers=sUsers+"|"+oUser.sName
End If
Next
Set wshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\NeoModus\Hub\ChatChannelUsers",sUsers,"REG_SZ"
r="All online users have been added to "+sBotName
End If
Case "invitevips"
If bIsOpChat Then
r="Can't invite all vips to op chat"
Elseif Not curUser.bOperator Then
r="You can't invite all vips"
Else
If sUsers = "" Then sUsers = Cstr(curUser.sname)
For Each oUser In colUsers
If Not bIsIn(oUser.sName) and bIsVip(oUser.sname) Then
sUsers=sUsers+"|"+oUser.sName
End If
Next
Set wshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\NeoModus\Hub\ChatChannelUsers",sUsers,"REG_SZ"
r="All online vips have been added to "+sBotName
End If
Case "inviteops"
If Not curUser.bOperator Then
r="You can't invite all Ops"
Else
If sUsers = "" Then sUsers = Cstr(curUser.sname)
For Each oUser In colUsers
If Not bIsIn(oUser.sName) and oUser.bOperator Then
sUsers=sUsers+"|"+oUser.sName
End If
Next
Set wshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\NeoModus\Hub\ChatChannelUsers",sUsers,"REG_SZ"
r="All online ops have been added to "+sBotName
End If
Case "mode"
If sText="" Then
If bIsOpChat Then
r="This chat is for ops only, others can't join it if they are not invited"
ElseIf bPrivate Then
r="This chat is for vips & ops only, others can't join it if they are not invited"
Else
r="This chat is public, anyone can join it"
End If
ElseIf Not bIsPowerOP(curUser.sName) And Not curUser.bOperator Then
r="You can't set the mode of this chat"
ElseIf Not bIsIn(curUser.sName) Then
r="You are not in this chat"
ElseIf LCase(sText)="public" Then
bPrivate=False
r="Chat mode is set to public"
Set wshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\NeoModus\Hub\ChatChannelMode","Public","REG_SZ"
ElseIf LCase(sText)="ops" Then
bPrivate=True
bIsOpChat=True
r="Chat mode is set to Ops Only Chat"
Set wshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\NeoModus\Hub\ChatChannelMode","Ops","REG_SZ"
ElseIf LCase(sText)="vips" Then
bPrivate=True
bIsOpChat=False
r="Chat mode is set to Vip Chat"
Set wshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\NeoModus\Hub\ChatChannelMode","Vips","REG_SZ"
End If
Case "leave","drop","remove","kick"
If sText="" Then sText=curUser.sName
If LCase(sText)<>LCase(curUser.sName) And Not curUser.bOperator Then
r="You cant disconnect others from this chat"
ElseIf Not bIsIn(curUser.sName) Then
r="You are not in this chat"
ElseIf Not bIsIn(sText) Then
r="User "+sText+" is not in "+sBotName
Else
aUsers=Split(sUsers,"|")
sUsers=""
For i=0 To uBound(aUsers)
If LCase(aUsers(i))<>LCase(sText) Then sUsers=sUsers+aUsers(i)+"|"
Next
If sUsers<>"" Then sUsers=Left(sUsers,Len(sUsers)-1)
Set wshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\NeoModus\Hub\ChatChannelUsers",sUsers,"REG_SZ"
r="The user "+sText+" has left "+sBotName
If colUsers.Online(CStr(sText)) Then
If LCase(sText)<>LCase(curUser.sName) Then colUsers.ItemByName(CStr(sText)).SendData CStr("$To: "+sText+" From: "+sBotName+" $<"+sText+"> "+s+"|")
colUsers.ItemByName(CStr(sText)).SendData CStr("$To: "+sText+" From: "+sBotName+" $<"+sBotName+"> "+r+"|")
End If
bLeaving=True
End If
Case "dropusers","removeusers","kickusers"
If Not bIsPowerOP(curUser.sName) And Not curUser.bOperator Then
r="You can't disconnect all non-vips from this chat"
Else
aUsers=Split(sUsers,"|")
sUsers=""
For i=0 To uBound(aUsers)
If bIsVip(CStr(aUsers(i))) Then sUsers=sUsers+"|"+CStr(aUsers(i))
Next
sUsers = Mid(sUsers, 2)
Set wshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\NeoModus\Hub\ChatChannelUsers",sUsers,"REG_SZ"
r="All Non-Vips are out"
End If
Case "dropvips","removevips","kickvips"
If Not bIsPowerOP(curUser.sName) And Not curUser.bOperator Then
r="You can't disconnect all non-ops from this chat"
Else
aUsers=Split(sUsers,"|")
sUsers=""
On Error Resume Next
For i=0 To UBound(aUsers)
If bIsAnOP(Lcase(aUsers(i))) Then sUsers=sUsers+aUsers(i)+"|"
Next
If sUsers<>"" Then sUsers=Left(sUsers,Len(sUsers)-1)
frmHub.DoEventsForMe
Set wshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\NeoModus\Hub\ChatChannelUsers",sUsers,"REG_SZ"
r="All Non-Ops are out"
End If
Case "dropall","removeall","kickall"
If Not bIsPowerOP(curUser.sName) And Not curUser.bOperator Then
r="You can't disconnect everyone from this chat"
Else
sUsers = ""
For i=0 to UBound(aPowerOps)
sUsers = sUsers+"|"+CStr(aPowerOps(i))
Next
sUsers = Mid(sUsers, 2)
Set wshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\NeoModus\Hub\ChatChannelUsers",sUsers,"REG_SZ"
r="They are all gone"
End If
Case "help"
r=sBotName+" commands:"
r=r+vbCrLf+"join"+vbTab+vbTab+vbTab+"join the chat"
r=r+vbCrLf+"leave"+vbTab+vbTab+vbTab+"leave the chat"
r=r+vbCrLf+"mode"+vbTab+vbTab+vbTab+"view the chat mode"
r=r+vbCrLf+"users"+vbTab+vbTab+vbTab+"view the chat users"
r=r+vbCrLf+"invite [user]"+vbTab+vbTab+"invite an user"
If curUser.bOperator Then
r=r+vbCrLf+"inviteall"+vbTab+vbTab+vbTab+"invites all online users"
r=r+vbCrLf+"invitevips"+vbTab+vbTab+vbTab+"invites all online vips"
r=r+vbCrLf+"inviteops"+vbTab+vbTab+vbTab+"invites all online ops"
r=r+vbCrLf+"remove [user]"+vbTab+vbTab+"remove an user"
r=r+vbCrLf+"mode [ops/vips/public]"+vbTab+"set the chat mode"
End If
If bIsPowerOP(curUser.sName) and curUser.bOperator Then
r=r+vbCrLf+"dropusers"+vbTab+vbTab+vbTab+"remove all users that are not atleast a vip from the chat"
r=r+vbCrLf+"dropvips"+vbTab+vbTab+vbTab+"remove all non-Ops from the chat"
r=r+vbCrLf+"dropall"+vbTab+vbTab+vbTab+"remove all users(except power ops)"
End If
r=r+vbCrLf+"!me"+vbTab+vbTab+vbTab+"show what you are doing"
r=r+vbCrLf+"help"+vbTab+vbTab+vbTab+"show this help"
Case "users","list"
aUsers=Split(sUsers,"|")
If (bPrivate And Not bIsIn(curUser.sName)) And Not curUser.bOperator Then
r="You are not invited on this chat"
ElseIf uBound(aUsers)<0 Then
r="There are no users in "+sBotName
Else
aUsers=Split(sUsers,"|")
x=0
sOn=""
sOff=""
For i=0 To uBound(aUsers)
If colUsers.Online(CStr(aUsers(i))) Then
sOn=sOn+aUsers(i)+", "
x=x+1
Else
sOff=sOff+aUsers(i)+", "
End If
Next
If sOn<>"" Then sOn=Left(sOn,Len(sOn)-2)
If sOff<>"" Then sOff=Left(sOff,Len(sOff)-2)
r="There are "+CStr(uBound(aUsers)+1)+" users ("+cStr(x)+" online) in "+sBotName+vbCrLf+"Online: "+sOn+vbCrLf+"Offline: "+sOff
End If
Case "!me"
If Not bIsIn(curUser.sName) Then
r="You are not in this chat"
ElseIf sText="" Then
s="***"+curUser.sName+" is needing help***"
Else
s="***"+curUser.sName+" "+sText+"***"
End If
End Select
aUsers=Split(sUsers,"|")
If uBound(aUsers)=>0 Then
If s<>"" And (bIsIn(curUser.sName) Or bLeaving) Then
If bIgnoreAway Then
If Instr(s, " 0 or Instr(s, " End if
If LCase(sCmd)<>"!me" Then s="<"+curUser.sName+"> "+s
For i=0 To uBound(aUsers)
If colUsers.Online(CStr(aUsers(i))) And (LCase(curUser.sName)<>LCase(aUsers(i)) Or LCase(sCmd)="!me") Then
colUsers.ItemByName(CStr(aUsers(i))).SendData CStr("$To: "+aUsers(i)+" From: "+sBotName+" $"+s+"|")
End If
Next
End If
If r<>"" Then
If bIsIn(curUser.sName) Or bLeaving Then
For i=0 To uBound(aUsers)
If colUsers.Online(CStr(aUsers(i))) Then
colUsers.ItemByName(CStr(aUsers(i))).SendData CStr("$To: "+aUsers(i)+" From: "+sBotName+" $<"+sBotName+"> "+r+"|")
End If
Next
Else
curUser.SendData CStr("$To: "+curUser.sName+" From: "+sBotName+" $<"+sBotName+"> "+r+"|")
End If
End If
End If
End If
End Sub
Function bIsIn(sUser)
bIsIn=False
aUsers=Split(sUsers,"|")
If uBound(aUsers)=>0 Then
aUsers=Split(sUsers,"|")
For i=0 To uBound(aUsers)
If LCase(aUsers(i))=LCase(sUser) Then bIsIn=True
Next
End If
End Function
Function bIsVIP(sUser)
bIsVIP=False
For lPos= 1 To frmHub.lstOps.ListItems.Count
If Left(frmHub.lstOps.ListItems.Item(lPos).SubItems(1),6)<>"Banned" And LCase(frmHub.lstOps.ListItems.Item(lPos))=LCase(sUser) Then
bIsVIP=True
End If
Next
End Function
Function bIsAnOP(sUser)
bIsAnOP=False
For lPos= 1 To frmHub.lstOps.ListItems.Count
If LCase(frmHub.lstOps.ListItems.Item(lPos))=LCase(sUser) Then
If frmHub.lstOps.ListItems.Item(lPos).SubItems(2)="True" Then bIsAnOP=True
End If
Next
End Function
Function bIsPowerOP(sUser)
bIsPowerOP=False
For i=0 to UBound(aPowerOps)
If LCase(sUser)=LCase(aPowerOps(i)) Then bIsPowerOP=True
Next
End Function
Thank you very much
Hi,
It would help if you say what you want the script in LUA to do, just say, because to pass of a VB to LUA script is not easy at all. Don't pass scripts in diferent language to be modified, just ask for what you want.
Best regards, nErBoS
it is for a chat room i know how to run
You already have the script...
http://board.univ-angers.fr/thread.php?threadid=1306&boardid=13&styleid=1&sid=cf331b82680f0e1a0a2c5e1f45c74b86
Best regards, nErBoS