myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
История благодарностей участнику RomanGTe. Спасибо сказали: 1
Дата поста: В теме: За сообщение: Спасибо сказали:
2.3.2010, 17:44 Trivia Mod
API2 | Игра "Викторина"
Вот так выглядит у меня конечный код

CODE
function ParseData(curUser,data)
data = string.sub(data,1,string.len(data)-1)
local _,_,sdata = string.find( data, "^%b<>%s(.*)$")
local _,_,pre,cmd = string.find( data, "^%b<>%s*(%p)(%S+)")
if (pre and cmd) and pre == CPrefix then
cmd = string.lower(cmd)
if tProfiles[curUser.iProfile] == 1 and tFuncCmd[cmd] then
tFuncCmd[cmd](curUser,data)
return true
end
if tProfilesConfig[curUser.iProfile] == 1 and tFuncConfig[cmd] then
tFuncConfig[cmd](curUser,data)
return true
end
if tProfilesConfigPlus[curUser.iProfile] == 1 and tFuncConfigPlus[cmd] then
tFuncConfigPlus[cmd](curUser,data)
return true
end
elseif sdata then
if sdata == "Викторина" or sdata == "викторина" then
if (tConf.mode == "main") and tCfg.maintoall then
SendMsgToUser(curUser,"Викторина проводится в главном чате, авторизация не требуется.")
else
if not _Players[curUser.sNick] then
_Players[curUser.sNick] = 1
SendMsgToPlayers("\""..curUser.sNick.."\" присоединился к игре.")
else
SendMsgToUser(curUser,"Ты уже играешь!")
end
end
if tConf.allowuserstart == 1 then
if Started then
SendMsgToUser(curUser,"Ошибка: Викторина уже запущена.")
else
UserAutostop = tCfg.UserAutostop
TriviaStart()
SendMsgToPlayers("Игра Викторина была запущена! Запустил: "..curUser.sNick..". Игра будет автоматически остановлена, если на "..UserAutostop.." вопросов подряд не будет дан правильный ответ.")
end
else
SendMsgToUser(curUser,"Извините, у Вас нет доступа к этой команде.")
end
end
local corrans = nil
for _,v in ipairs(TrivData.Answers) do
if string.lower(sdata) == string.lower(v) then
corrans = v
end
end
if corrans and (not TrivData.GetQuestion) then
TrivData.GetQuestion = true
local ansTime = string.format("%.2f",(os.clock()-TrivData.Start)) -- Get Answering Time in sec.
local talked = nil
if string.lower(sdata) == string.lower(corrans) then
talked = corrans
end
if talked then
if tConf.mode ~= "pm" then
if tCfg.maintoall then
Core.SendToAll("<"..curUser.sNick.."> "..corrans)
else
SendMsgToPlayers(corrans,curUser)
end
end
local tmpstring = ""
if (tCfg.showcorrectanswer == 1) then
tmpstring = " Время: "..ansTime.." секунд(ы)."
end
SendMsgToPlayers("На этот вопрос правильно ответил: "..curUser.sNick..", Ответ был: \""..corrans.."\". Очки: "..TrivData.Points.."."..tmpstring)
if _Scores[curUser.sNick] then
_Scores[curUser.sNick].Score = _Scores[curUser.sNick].Score + TrivData.Points
_Scores[curUser.sNick].AvTime[1] = _Scores[curUser.sNick].AvTime[1] + ansTime
_Scores[curUser.sNick].AvTime[2] = _Scores[curUser.sNick].AvTime[2] + 1
_Scores[curUser.sNick].AvTime[3] = tonumber(string.format("%.2f",_Scores[curUser.sNick].AvTime[1]/_Scores[curUser.sNick].AvTime[2]))
else
_Scores[curUser.sNick] = {}
_Scores[curUser.sNick].Score = TrivData.Points
_Scores[curUser.sNick].Streak = 1
_Scores[curUser.sNick].AvTime = { tonumber(ansTime),1,tonumber(ansTime) }
end
if (tCfg.showcorrectanswer == 1) then
SendMsgToPlayers(curUser.sNick..": Всего очков: ".._Scores[curUser.sNick].Score..", Правильных ответов: ".._Scores[curUser.sNick].AvTime[2]..", Среднее время на ответ: "..string.format("%.2f",_Scores[curUser.sNick].AvTime[3]).." секунд(ы).")
end
if TrivData.Availans > 1 then
ShowAnswer()
end
UpdateStreak(curUser)
if not CheckAutostop() then
ResetMainTimer()
end
return true
end
end
end
end
TiGRpp

RSS Сейчас: 27.4.2024, 5:35