chatroom
 

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

chatroom

Started by kEwL, 14 July, 2005, 18:26:39

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

kEwL

can anyone make me a chatroom script like that in sdch

see this is the code of the sdch script

Option Explicit
'===============================================================
'  Dynamic Chatroom by CRO
'  limitless amount of chatrooms with specific users
'  limitless amount of rooms for a user to be in
'  users who leave the hub will rejoin rooms upon entry
'  Each room does not have a minimum level to use.
'  The rooms can be private or public.
'  Only invited people will remain in private
'===============================================================
Const strAdmin = "CRO"         'Person who receives script errors (like that would happen :P)
Const iInviteReq = 3         'Min level to be able to invite others to private room
Const iPublicReq = 5         'Min level to make the room public
Const iPrivateReq = 5         'Min level to make the room private
Const iKickReq = 5         'Min level to remove users from the room

Dim oPrivateRoom, oPublicRoom

Sub Main
  Set oPrivateRoom = CreateObject("Scripting.Dictionary")
  Set oPublicRoom = CreateObject("Scripting.Dictionary")
  If Not colCommands.Exists("createroom") Then colCommands.Add 330, "createroom", "Activated & Add Chat 1 ", 6, True
  If Not colCommands.Exists("deleteroom") Then colCommands.Add 330, "deleteroom", "Deactivated & Del Chat 1", 6, True
  If Not colCommands.Exists("joinroom") Then colCommands.Add 330, "joinroom", "Activated & Add Chat 2 ", 1, True
  If Not colCommands.Exists("deleteall") Then colCommands.Add 330, "deleteall", "Del All ChatBots ", 10, True
End Sub

Sub UnloadMain
  Set oPrivateRoom = Nothing
  Set oPublicRoom = Nothing
  colCommands.Remove("createroom")
  colCommands.Remove("deleteroom")
  colCommands.Remove("joinroom")
  colCommands.Remove("deleteall")
End Sub

Sub CustComArrival(curUser, objCommand, sCurData, blnMC)
  Dim aData
  aData = Split(sCurData, " ")
  If objCommand.ID = 330 Then
    Select Case objCommand.Name
      Case "createroom"
   If UBound(aData) < 1 Then
     curUser.SendChat CStr(Settings.BotName), "Missing a roomname"
   Else
     If Not oPrivateRoom.Exists(aData(1)) Then
       If colUsers.Online(CStr(aData(1))) Then
         curUser.SendChat CStr(Settings.BotName), "This name is taken by a user"
       Else
         oPrivateRoom.Add aData(1), CStr(curUser.sName & ", ")
         curUser.SendData "$Hello " & aData(1) & "|"
         curUser.SendData "$OpList " & aData(1) & "|"
         curUser.SendPrivate CStr(aData(1)), "Welcome to the chat"
       End If
     Else
       curUser.SendChat CStr(Settings.BotName), "This room already exists"
     End If
   End If
      Case "deleteroom"
   If UBound(aData) < 1 Then
     curUser.SendChat CStr(Settings.BotName), "Missing a roomname"
   Else
     If oPrivateRoom.Exists(aData(1)) Then
       oPrivateRoom.Remove(aData(1))
       colUsers.SendToAll "$Quit " & aData(1) & "|"
     Else
       curUser.SendChat CStr(Settings.BotName), "This room does not exist"
     End If
     If oPublicRoom.Exists(aData(1)) Then oPublicRoom.Remove(aData(1))
   End If
      Case "joinroom"
   If UBound(aData) < 1 Then
     curUser.SendChat CStr(Settings.BotName), "Missing a roomname"
   Else
     If oPublicRoom.Exists(aData(1)) Then
       oPublicRoom.Item(aData(1)) = oPublicRoom.Item(aData(1)) & CStr(curUser.sName & ", ")
       curUser.SendPrivate CStr(aData(1)), "Welcome to the chat"
     Else
       curUser.SendChat CStr(Settings.BotName), "This room does not exist/is not public"
     End If
   End If
      Case "deleteall"
   Dim aRooms, i
   aRooms = oPrivateRoom.Keys
   For i = 0 to UBound(aRooms)
     colUsers.SendToAll "$Quit " & aRooms(i) & "|"
   Next
   aRooms = oPublicRoom.Keys
   For i = 0 to UBound(aRooms)
     colUsers.SendToAll "$Quit " & aRooms(i) & "|"
   Next
   oPrivateRoom.RemoveAll
   oPublicRoom.RemoveAll
   curUser.SendChat CStr(Settings.BotName), "All rooms have been deleted and removed"
    End Select
  End If
End Sub

Function PreDataArrival(curUser, sData)
  If LeftB(sData, 6) = "$To" Then
    Dim sRoom
    sRoom = BetweenFirst(sData, " ", " ")
    If oPublicRoom.Exists(sRoom) Then
      If InstrB(lcase(oPublicRoom.Item(sRoom)), lcase(curUser.sName & ", ")) Then
   ChatRoom curUser, sRoom, sData
      Else
   If InstrB(lcase(oPrivateRoom.Item(sRoom)), lcase(curUser.sName & ", ")) Then
     ChatRoom curUser, sRoom, sData
   Else
     oPublicRoom.Item(sRoom) = oPublicRoom.Item(sRoom) & CStr(curUser.sName & ", ")
     ChatRoom curUser, sRoom, sData
   End If
      End If
      sData = ""
    Else
      If oPrivateRoom.Exists(sRoom) Then
   If InstrB(lcase(oPrivateRoom.Item(sRoom)), lcase(curUser.sName & ", ")) Then ChatRoom curUser, sRoom, sData
   sData = ""
      End If
    End If
  End If
  PreDataArrival = sData
End Function

Sub UserConnected(curUser)
  Dim aUsers, aRooms, i
  aUsers = oPrivateRoom.Items
  aRooms = oPrivateRoom.Keys
  For i = 0 to UBound(aUsers)
    If InstrB(lcase(aUsers(i)), lcase(curUser.sName)) Then
      curUser.SendData "$Hello " & aRooms(i) & "|"
      curUser.SendData "$OpList " & aRooms(i) & "|"
      curUser.SendPrivate CStr(aRooms(i)), "Welcome to the chat"
    End If
  Next
  aRooms = oPublicRoom.Keys
  For i = 0 to UBound(aRooms)
    curUser.SendData "$Hello " & aRooms(i) & "|"
    curUser.SendData "$OpList " & aRooms(i) & "|"
    If InstrB(lcase(aUsers(i)), lcase(curUser.sName)) Then curUser.SendPrivate CStr(aRooms(i)), "Welcome to the chat"
  Next
End Sub

Sub RegConnected(curUser)
  UserConnected curUser
End Sub

Sub OpConnected(curUser)
  UserConnected curUser
End Sub

Sub ChatRoom(curUser, sRoom, sData)
  Dim aUser, aData, aCommand, i, j
  sData = AfterFirst(sData, "> ")
  If AscW(CStr(sData)) = AscW(CStr(Settings.CPrefix)) Then
    aCommand = Split(sData, " ")
    Select Case CStr(AfterFirst(aData(0), Settings.CPrefix))
      Case "invite"
   If curUser.Class >= iPublicReq Then
     oPrivateRoom.Item(sRoom) = oPrivateRoom.Item(sRoom) & AfterFirst(sData, " ") & ", "
     aData = Split(AfterFirst(sData, " "), ", ")
     aUser = Split(oPrivateRoom.Item(sRoom), ", ")
     For i = 0 to UBound(aData)
       If colUsers.Online(CStr(aData(i))) Then
         colUsers.ItemByName(CStr(aData(i))).SendData "$Hello " & sRoom & "|"
         colUsers.ItemByName(CStr(aData(i))).SendData "$OpList " & sRoom & "|"
         colUsers.ItemByName(CStr(aData(i))).SendPrivate CStr(sRoom), "Welcome to the room."
       End If
     Next
   Else
     curUser.SendPrivate CStr(sRoom), "You do not have the authority to do that."
   End If
      Case "leave"
   oPrivateRoom.Item(sRoom) = Replace(oPrivateRoom.Item(sRoom), curUser.sName & ", ", "")
   If oPublicRoom.Exists(sRoom) Then oPublicRoom.Item(sRoom) = Replace(oPublicRoom.Item(sRoom), curUser.sName & ", ", "")
   If Not oPublicRoom.Exists(sRoom) Then curUser.SendData "$Quit " & sRoom & "|"
      Case "kick"
   If curUser.Class >= iKickReq Then
     oPrivateRoom.Item(sRoom) = Replace(oPrivateRoom.Item(sRoom), AfterFirst(sData, " ") & ", ", "")
     If oPublicRoom.Exists(sRoom) Then oPublicRoom.Item(sRoom) = Replace(oPublicRoom.Item(sRoom), AfterFirst(sData, " ") & ", ", "")
     If Not oPublicRoom.Exists(sRoom) Then curUser.SendData "$Quit " & sRoom & "|"
   Else
     curUser.SendPrivate CStr(sRoom), "You do not have the authority to do that."
   End If
      Case "public"
   If curUser.Class >= iPublicReq Then
     colUsers.SendToAll "$Hello " & sRoom & "|"
     colUsers.SendToAll "$OpList " & sRoom & "|"
     oPublicRoom.Add sRoom, ""
   Else
     curUser.SendPrivate CStr(sRoom), "You do not have the authority to do that."
   End If
      Case "private"
   If curUser.Class >= iPrivateReq Then
     colUsers.SendToAll "$Quit " & sRoom & "|"
     oPublicRoom.Remove(sRoom)
     aUser = Split(oPrivateRoom.Item(sRoom), ", ")
     For i = 0 to UBound(aData)
       If colUsers.Online(CStr(aData(i))) Then
         colUsers.ItemByName(CStr(aData(i))).SendData "$Hello " & sRoom & "|"
         colUsers.ItemByName(CStr(aData(i))).SendData "$OpList " & sRoom & "|"
       End If
     Next
   Else
     curUser.SendPrivate CStr(sRoom), "You do not have the authority to do that."
   End If
      Case "list"
   curUser.SendPrivate CStr(sRoom), CStr("Private users: " & oPrivateRoom.Item(sRoom))
   If oPublicRoom.Exists(sRoom) Then curUser.SendPrivate CStr(sRoom), CStr("Public users: " & oPublicRoom.Item(sRoom))
      Case Else
   curUser.SendPrivate CStr(sRoom), CStr("This is not a command")
    End Select
    sData = ""
  End If
  aUser = Split(oPrivateRoom.Item(sRoom), ", ")
  For i = 0 to UBound(aUser)
    If colUsers.Online(CStr(aUser(i))) Then
      If Not LCase(curUser.sName) = LCase(aUser(i)) and Not sData = "" Then colUsers.ItemByName(CStr(aUser(i))).SendData CStr("$To: " & aUser(i) & " From: " & sRoom & " $<" & curUser.sName & "> " & sData & "|")
    End If
  Next
  If oPublicRoom.Exists(sRoom) Then
    aUser = Split(oPublicRoom.Item(sRoom), ", ")
    For i = 0 to UBound(aUser)
      If colUsers.Online(CStr(aUser(i))) Then
   If Not LCase(curUser.sName) = LCase(aUser(i)) and Not sData = "" Then colUsers.ItemByName(CStr(aUser(i))).SendData CStr("$To: " & aUser(i) & " From: " & sRoom & " $<" & curUser.sName & "> " & sData & "|")
      End If
    Next
  End If
End Sub

Sub Error(Line)
  FileAccess.AppendFile FileAccess.AppPath & "\Scripts\DynamicChat_Error.log", Now & "|" & Err.Number & "|" & Err.Description & "|" & Line & "|"
  If colUsers.Online(cstr(strAdmin)) Then colUsers.ItemByName(cstr(strAdmin)).SendPrivate Settings.HubName & " DynamicChat_Error ", Now & "-" & "Error occured at line " & Line & " (Number: " & Err.Number & "; " & Err.Description & ")"
End Sub


Dessamator

it already exists, try chatrooms by tezlo
Ignorance is Bliss.

kEwL

i tried that one but i want like this one where rooms are made public and private and ppl can join on their room by +joinroom

Dessamator

rooms can be made private or public or u need to do is create the room, and specify each profile, or use the chatroom script by Nerbos, it had that function !
Ignorance is Bliss.

kEwL

ok can u add the joinroom cmd in the chatroom script by tezlo coz i m running a hub on sdch and my users are used to it so can u pls

Dessamator

u dont need to write any command to join a room, simply just send a msg to the bot !
Ignorance is Bliss.

SMF spam blocked by CleanTalk