Aqui fica o exemplo de um script dc++, inacabado, em que ate introduzi o nome do cenourinha e do radikal-rider! cujo a função é saber a informação do hub, como o uptime.
NomeBot = "InformaçãoHub"
Seg = 1000
min = seg*60
hora = min*60
dias = horas*24
tempo = 1*hora
Função Main()
Ajustetempo(tempo)
InicioTempo()
end
função chegadadados(user, data)
-- remova (inacabado)
data=strsub(data,1,strlen(data)-1)
--extracto comando
_,_,cmd=strfind(data, "%b<>%s+(%S+)")
if(cmd == "uptime") então
local sec = hora()
local dias = floor(sec/86400)
local hrs = floor((sec-(dias*86400))/3600)
local min = floor((sec-(dias*86400)-(hrs*3600))/60)
sec = floor(sec-(dias*86400)-(hrs*3600)-(min*60))
user:emitadados("uptime", "*** "..dias.." dias, "..hrs.." horas "..min.." minutos e "..sec.." segundos")
retrodecer 1;
end
end
função notempo()
local sec = hora()
local dias = floor(sec/86400)
local hrs = floor((sec-(dias*86400))/3600)
local min = floor((sec-(dias*86400)-(hrs*3600))/60)
sec = floor(sec-(dias*86400)-(hrs*3600)-(min*60))
EnviaraTudo(nomebot, "Ã,©=============="..frmHub:Nomehub().."=================| Ã,©| ::Owner hub: [SP]PortalinuX | ::Hub Info: Min Share 5 Gb | ::regras hub: escreve !regras ou !ajuda | ::OpÃ,´s hub: [tagISP]Cenourinha [tagISP]radikal-rider | ::E-mail hub: webtuga@hotmail.com | ::Endereço hub: webtuga.no-ip.org ::Uptime = "..dias.." diass, "..hrs.." horas "..min.." minutos e "..sec.." segundos = Ã,©")
EnviaraTudo(nomebot, "Ã,©============="..frmHub:Contausers().." de "..frmHub:MaximoUsers().." Users Ligados==================")
end
-----------------------------------------------
Aqui fica outro, acabado, em inglês feito pelo meu amigo leon. Este script é para jogar o habitual jogo Trivia, o jogo das perguntas, ás quais temos de responder.
Aqui fica
-- TriviaBot.lua by Leon
BotName = "TriviaBot"
guessArray = {}
lngGuessmax = 0
playerArray = {}
pointArray = {}
boolWord = 0
lngPassed = 0
strWord = ""
strQuestion = ""
strSolved = ""
JoinTrigg = "!TrivJoin"
PartTrigg = "!TrivPart"
StartTrigg = "!TrivStart"
StopTrigg = "!TrivStop"
WordTrigg = "!TrivWord"
QuizTrigg = "!TrivQuestion"
RestartTrigg = "!TrivRestart"
PointTrigg = "!TrivPoints"
ScoreTrigg = "!TrivScores"
PlayerTrigg = "!TrivPlayers"
QuestionsTrigg = "!TrivQuestions"
ReloadTrigg = "!TrivReload"
strVer = "v 0.2"
strBanner = "Type \\'"..StartTrigg.."\\' to start Trivia, \\'"..StopTrigg.."\\' to stop Trivia, type \\'"..JoinTrigg.."\\' to Join and \\'"..PartTrigg.."\\' to Part!"
strStart = "TriviaBot "..strVer.." started! "..strBanner
strStopp = "TriviaBot "..strVer.." stopped! "..strBanner
function Main()
frmHub:RegBot(BotName)
ReloadQuestions()
end
function UserDisconnected(curUser)
if (playerArray[curUser.sName] ~= nil) then
playerArray[curUser.sName] = nil
end
end
function OpDisconnected(curUser)
if (playerArray[curUser.sName] ~= nil) then
playerArray[curUser.sName] = nil
end
end
function DataArrival(curUser, data)
if (strsub(data, 1, 1) == "<") then
if (strfind(strlower(data), strlower(BotName))) then
curUser:SendPM(BotName, "Commands:")
curUser:SendPM(BotName, "No commands are case-sensitive!!!")
curUser:SendPM(BotName, "No commands are case-sensitive!!!")
curUser:SendPM(BotName, "---------------------------------------------------------")
curUser:SendPM(BotName, JoinTrigg.." - Joins you to Trivia")
curUser:SendPM(BotName, PartTrigg.." - Parts you from Trivia")
curUser:SendPM(BotName, StartTrigg.." - Starts the TriviaBot")
curUser:SendPM(BotName, StopTrigg.." - Stops the TriviaBot")
curUser:SendPM(BotName, WordTrigg.." - Shows current word (solve)")
curUser:SendPM(BotName, QuizTrigg.." - Shows current question")
curUser:SendPM(BotName, RestartTrigg.." - Restarts the bot (only for OPs)")
curUser:SendPM(BotName, PointTrigg.." - Shows your points")
curUser:SendPM(BotName, ScoreTrigg.." - Shows all scores")
curUser:SendPM(BotName, PlayerTrigg.." - Shows all players in current game")
curUser:SendPM(BotName, QuestionsTrigg.." - Shows all questions (only for OPs)")
curUser:SendPM(BotName, ReloadTrigg.." - Reloads question file (only for OPs)")
curUser:SendPM(BotName, "---------------------------------------------------------")
curUser:SendPM(BotName, "all commands only work in mainwindow")
end
data=strsub(data, 1, strlen(data)-1)
_,_,firstWord = strfind(data, "%b<>%s+(%S+)")
if (strlower(firstWord) == strlower(JoinTrigg)) then
if (playerArray[curUser.sName] == "Player") then
SendToAll(BotName, "You are already a player "..curUser.sName.."!")
else
playerArray[curUser.sName] = "Player"
SendToAll(BotName, curUser.sName.." is now a player!")
end
elseif (strlower(firstWord) == strlower(PartTrigg)) then
if (playerArray[curUser.sName] == nil) then
SendToAll(BotName, "You are not a player "..curUser.sName.."!")
else
playerArray[curUser.sName] = nil
SendToAll(BotName, curUser.sName.." is no longer a player!")
end
elseif (strlower(firstWord) == strlower(RestartTrigg)) then
if (curUser.bOperator) then
StopQuiz()
pointArray = {}
SendToAll(BotName, "TriviaBot restarted All points etc is lost!")
end
elseif (strlower(firstWord) == strlower(PointTrigg)) then
if (pointArray[curUser.sName] ~= nil) then
curUser:SendPM(BotName, "You have "..pointArray[curUser.sName].." points!")
else
curUser:SendPM(BotName, "You have 0 points!")
end
elseif (strlower(firstWord) == "!admin") then
--local highscore = {}
--for index, value in pointArray do
-- tinsert (highscore, index..": "..value)
--end
elseif (strlower(firstWord) == strlower(ScoreTrigg)) then
SendToAll(BotName, "SCORES:")
SendToAll(BotName, "---------------------------------------------------------")
for index, value in pointArray do
SendToAll(BotName, index.."\\'s points: "..value)
end
SendToAll(BotName, "---------------------------------------------------------")
elseif (strlower(firstWord) == strlower(PlayerTrigg)) then
curUser:SendPM(BotName, "PLAYERS:")
curUser:SendPM(BotName, "---------------------------------------------------------")
for index, value in playerArray do
curUser:SendPM(BotName, index)
end
curUser:SendPM(BotName, "---------------------------------------------------------")
curUser:SendPM(BotName, " ")
elseif (strlower(firstWord) == strlower(QuestionsTrigg)) then
if (curUser.bOperator) then
curUser:SendPM(BotName, "QUESTIONS:")
curUser:SendPM(BotName, "---------------------------------------------------------")
for index,value in guessArray do
if (index ~= "n") then
arrTmp = tokenize(guessArray[index], "Ã,§")
strTmp = arrTmp[1]
curUser:SendPM(BotName, "["..index.."] "..strTmp)
end
end
curUser:SendPM(BotName, "---------------------------------------------------------")
curUser:SendPM(BotName, " ")
end
elseif (strlower(firstWord) == strlower(StartTrigg)) then
if (boolWord == 0) then
playerArray[curUser.sName] = "Player"
StopQuiz()
SendToAll(BotName, strStart)
StartQuiz()
else
SendToAll(BotName, "There is allready a game going on! "..strBanner)
end
elseif (strlower(firstWord) == strlower(StopTrigg)) then
-- if (curUser.bOperator) then
if (boolWord ~= 0) then
StopQuiz()
SendToAll(BotName, strStopp)
else
SendToAll(BotName, "No game going on! "..strBanner)
end
-- end
elseif (strlower(firstWord) == strlower(WordTrigg)) then
if (boolWord ~= 0) then
SendToAll(BotName, "Current word is: "..strSolved.." ("..strlen(strSolved)..")")
else
SendToAll(BotName, "No game active!")
SendToAll(BotName, strBanner)
end
elseif (strlower(firstWord) == strlower(QuizTrigg)) then
if (boolWord ~= 0) then
SendToAll(BotName, "Question is: "..strQuestion)
else
SendToAll(BotName, "No game active!")
SendToAll(BotName, strBanner)
end
elseif (strlower(firstWord) == strlower(ReloadTrigg)) then
if (curUser.bOperator) then
ReloadQuestions()
end
else
if (boolWord ~= 0) then
if (playerArray[curUser.sName] == "Player") then
--/ _,_,msg = strfind(data,"%b<>%s+([%w]*)")
msg = strsub(data, 4+strlen(curUser.sName))
if (strlen(msg) >= strlen(strWord)) then
local boolDisc = 0
strTurn = ""
for x=1,strlen(strSolved) do
if (strsub(strSolved, x, x) == "*") then
if (strlower(strsub(msg, x, x)) == strlower(strsub(strWord, x, x))) then
strTurn = strTurn..strsub(strWord, x, x)
boolDisc = 1
else
strTurn = strTurn..strsub(strSolved, x, x)
end
else
strTurn = strTurn..strsub(strSolved, x, x)
end
end
if (boolDisc == 1) then
strSolved = strTurn
end
if (boolDisc == 1) then
if (strlower(msg) ~= strlower(strWord)) then
SendToAll(BotName, "Word is now: "..strSolved)
end
end
if (strlower(msg) == strlower(strWord)) then
if (pointArray[curUser.sName] == nil) then
pointArray[curUser.sName] = 0
end
pointArray[curUser.sName] = pointArray[curUser.sName] + strlen(strSolved)
SendToAll(BotName, "Word was: "..strSolved)
SendToAll(BotName, "Word was solved by: "..curUser.sName)
-- SendToAll(BotName, curUser.sName.."\\'s points: "..pointArray[curUser.sName])
-- curUser:SendPM(BotName, "You now have "..pointArray[curUser.sName].." points!")
StopQuiz()
StartQuiz()
end
end
end
end
end
end
end
function StopQuiz()
-- playerArray = {}
boolWord = 0
lngPassed = 0
strWord = ""
strQuestion = ""
strSolved = ""
StopTimer()
end
function StartQuiz()
boolWord = random(1, lngGuessmax)
QWarray=tokenize(guessArray[boolWord], "Ã,§")
strQuestion = QWarray[1]
strWord = QWarray[2]
strSolved = ""
for x=1,strlen(strWord) do
strSolved = strSolved.."*"
end
lngPassed = 0
SetTimer(15000)
StartTimer()
SendToAll(BotName, "Question: "..strQuestion)
SendToAll(BotName, "Word: "..strSolved.." ("..strlen(strSolved)..")")
end
function OnTimer()
-- SendToAll(BotName, "Current solve is: "..strSolved)
lngPassed = lngPassed+1
if lngPassed > 3 then
SendToAll(BotName, "Word was: "..strWord)
SendToAll(BotName, "Word was not solved!")
StopQuiz()
StartQuiz()
end
end
function tokenize (inString,token)
_WORDS = {}
local matcher = "([^"..token.."]+)"
gsub(inString, matcher, function (w) tinsert(_WORDS,w) end)
return _WORDS
end
function ReloadQuestions()
guessArray = {}
lngGuessmax = 0
local boolRestart = 0
if (boolWord ~= 0) then
SendToAll(BotName, "Reloading questions, game will be shut down!")
StopQuiz()
boolRestart = 1
end
handle=openfile("Trivia.txt","r")
if (handle ~= nil) then
local line
line = read(handle,"*a")
line=strsub(line,1,strlen(line)-1)
guessArray=tokenize(line,"nr")
for i=1,guessArray.n do
lngGuessmax = lngGuessmax + 1
end
else
guessArray = {
"The finest car there is?Ã,§Honda CRX del Sol"
}
end
closefile(handle)
if (boolRestart == 1) then
SendToAll(BotName, "Reloaded questions, game will be restarted! Current # of questions: "..lngGuessmax)
StartQuiz()
end
end
Isto é a linguagem .lua, certo? Não estou a ver mto mais poder que outras linguagens conhecidas (como Java ou C).
Boas..
KhAoTiK_TaChYoN, o que se passou foi o seguinte, eu e i lynux queria-mos dizer poderoso em termos de scripts ( .lua ) para correr no PtoKax para servir um hub..
Na área de scripts para hubs, este é o mais poderoso..
OBS: Mas como eu disse, este assunto não vou debater contigo, pq não estou àtua altura..
QuoteIsto é a linguagem .lua, certo? Não estou a ver mto mais poder que outras linguagens conhecidas (como Java ou C).
Yap, é lua sem dúvida nenhuma, tÃÂtulo do tópico alterado.
QuoteIsto é a linguagem .lua, certo? Não estou a ver mto mais poder que outras linguagens conhecidas (como Java ou C).
Sim é lua, esquecime de especificar. Eu quando disse que era poderoso, é em termos de sript para hubs. Mas podes crer que não fica atrás de outra linguagem qualquer. Eu pessoalmente o que sei de lua aprendi sozinho, com muito esforço e compreensão. Não sei muito, confesso, mas vou tentanto perceber e desenvolver scripts para a comunidade portuguesa direct connet.
Uma coisa é certa, não é mais poderosa que asm, nem que a linguagem com que é feito o compilador/interpretador (com já referi no outro post onde falámos disto) e que adivinho que seja o C (e consequentemente, todas as suas variantes: C++, C#, Obj-C, Obj-C++,...).