PtokaX forum

Archive => Archived 4.0 boards => Request for Lua 4 scripts => Topic started by: night_hawk on 12 February, 2004, 00:48:41

Title: Hi
Post by: night_hawk on 12 February, 2004, 00:48:41
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")
       

Title: continued srcipted
Post by: night_hawk on 12 February, 2004, 00:49:50
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
Title:
Post by: nErBoS on 12 February, 2004, 02:25:44
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
Title: sorry
Post by: night_hawk on 12 February, 2004, 02:28:03
it is for a chat room i know how to run
Title:
Post by: nErBoS on 12 February, 2004, 02:33:48
You already have the script...

http://board.univ-angers.fr/thread.php?threadid=1306&boardid=13&styleid=1&sid=cf331b82680f0e1a0a2c5e1f45c74b86

Best regards, nErBoS