ok , im adding commands to my bot but i want to get a good start , not on adding the commands but writing them and usuing the access way.Ok this is what i mean
Public Function Event_Talk
If LCase(strText) = "?trigger" Then Send msTrigger & " (ALT + 0" & Asc(msTrigger) & ")", True
If Left(strText, 1) = msTrigger Then DoCommands strUser, strText, False
End Sub
thats from ethbot.....what i need is to start writing ot commands but writing them out in order from the access list unstead of M or A i want to write them out by 10 , 20 , 30
..... can somebody get me started and i can take it from there
2nd question
i need a good anti idle....telling the Bot Uptime , Connection Uptime and Computer Uptime..... i dont need them all in one but thats what i need
grrrr.........someone help
;D
to answer your 2nd question (i believe)
you could use this code, make a timer, and at the amount of time you set make it do /uptime
this is what i use (note: this is just the /uptime part of te code i have in a module)
If (Mid(txtSendBNET.text, 1, 7) = "/uptime") Then
rtbAdd "Bot idle for: " & FormatCount(GetTickCount - LastTalk, 4) & vbNewLine, vbBlue
rtbAdd "Bot connected for: " & FormatCount(GetTickCount - connecttime) & vbNewLine, vbBlue
rtbAdd "Bot uptime: " & FormatCount(GetTickCount - RunningTime) & vbNewLine, vbBlue
rtbAdd "Computer uptime: " & FormatCount(GetTickCount) & vbNewLine, vbBlue
i hope this helps a little bit if not, at least give you an idea of where to go with it.
QuoteIf (Mid(txtSendBNET.text, 1, 7) = "/uptime") Then
rtbAdd "Bot idle for: " & FormatCount(GetTickCount - LastTalk, 4) & vbNewLine, vbBlue
rtbAdd "Bot connected for: " & FormatCount(GetTickCount - connecttime) & vbNewLine, vbBlue
rtbAdd "Bot uptime: " & FormatCount(GetTickCount - RunningTime) & vbNewLine, vbBlue
rtbAdd "Computer uptime: " & FormatCount(GetTickCount) & vbNewLine, vbBlue
shouldn't it be If (Left(txtSendBNET.text, 1, 7) = "/uptime") Then
Mid is short for middle
whats in between chracter 1 and character 7
/uptime
Mid(s, 1, 7) is pretty much equivalent to Left(s, 7) though.
I'd say Left is faster than Mid, but this is VB we're talking about, so speed is irrelevant. 8)
Like Grok said once, you should check if the input was even a command before you try and treat every message as if it could be a command.
In SphtBot, when processing _KeyPress() for input, I check to see if the input was a command (Left(s, 1) = "/"), if it is, I send it to a command processing function. The function parses the input into Command - Parameter. Then using Select Case, I check the command. If the command matches no local commands, I then run it through the Aliases Binary Chat plugin (Aliases.bcp) which will then run the translated command back through the same function.
Using a seperate function allows me to have a remote command like "localcmd" that can call any local or Alias command. When it's called remotely, any messages that would be displayed on screen from the triggered command would be whispered back to the user if bLocal = False. If the command has no return, then it will return "Local command processed" by default.
Auto-List/Auto-complete command list would be a nice GUI addition for when the user pressed the command token("/", ".", or alternative).
. (dropdown list of possibilities)
.b (show ban, other b* commands)
.b[tab] (completes selected command from list)
grrrr....someone anwser my questions...
Yeah ok, ill try to help you.
You need to learn how to use arrays. You can load a database of users with their flags into an array and loop through the items to see if that user has the proper flags. Boy im too tired to help nm.
Hi SiMi, I'll tackle your first question. The 2nd question, uptimes, is just a matter of subtracting the current time from the start time, and displaying the result. "Uptime = " & Format(Tnow-Tstart, "HH:MM:SS") kind of thing.
Q: "add commands using the access[level] way"
Based on your description, and needs of the process, I will make some assumptions, stated here:
Assumption:
* UserID/Name is already determined (fUserID)
* A function is available to get user access level.
* If user level is higher than or equal to the command access level, the user is granted permission for the command.
* All commands are enumerated.
* An array is available with the access level for each command.
As you can see, you may have more groundwork to lay before we can actually write a function to grant permission to run a command. Even so, there may be more to consider, like the target/effect of a command. ZeroBot grants members the ability to ban, but ban won't work on certain targets (S-listed names). But that logic can go in the command implementation.
Public Function CommandIsAuth(nCmdId, fUserId) As Boolean
CommandIsAuth = False
Dim pCmdSecLev As Long
Dim pUserSecLev As Long
pCmdSecLev = COMMAND_SECURITY_LEVEL(nCmdId) 'read value from array
pUserSecLev = GetUserSecurityLevel(fUserId) 'function to get user access level
if pUserSecLev < pCmdSecLev Then Exit Function
'anyone surviving that is authorized for this command
CommandIsAuth = True
End Function
In your startup code, you might want to initialize the array of command security levels, which in my sample I named COMMAND_SECURITY_LEVEL(). To make it easier to index commands and write code, I suggest creating a Commands Enum.
Public Enum BotCommands
CmdNone
CmdKick
CmdBan
CmdJoin
CmdTalk
' ... etc
End Enum
Public Const MAX_BOT_COMMANDS = 50 'set to your count from Enum BotCommands
Public COMMAND_SECURITY_LEVEL(0 To MAX_BOT_COMMANDS) As Long
This should get you started without giving away the farm.
Damn I love grok! He replies and then silence is heard throughout the land =P I guess they are all standing in awe of your greatness hehe =) well i'm glad to see somone (grok) is of great help!
damn... good job , thanks