Yoko
http://forum.yoko.com.ua/

Скрипт - Викторина.
http://forum.yoko.com.ua/viewtopic.php?f=15&t=11086
Page 1 of 1

Author:  Don SpiL [ 2007-01-12 08:39:01 ]
Post subject:  Скрипт - Викторина.

Всем привет. Пришлось мне тут как то стать админом одного IRC сервера.
Прикручивать всяких ботов, заниматься разработкой последних. В общем ко мне в руки попала не плохая база вопросов для викторины - 12тысяч вопросов.
Вот сижу как то вечерком и думаю..а не порадовать ли народ скриптиком
под УО..и вот оно родилось.
Скрипт ведет викторину - (аналог скрипта Trivia под IRC серверы)

Code:
var questionsfile=file(".\questions.txt") ;Путь к файлу с вопросами (сейчас таже папка где лежит скрипт)
var timeout_1=25 ;таймаут на ответ
var timeout_2=10 ;таймаут на подсказку
var botname="Викторина бот."
var botowner=chr(169)+" Don SpiL"
var botinfo=""
var startmess=""
var Botinfocicle=10 ;Количество вопросов в раунде (будет повторен копирайт)
var marker="*" ;Разделитель вопрос-ответ в файле с вопросами

Sub Main()
var readline="",num=0,i,timer
questionsfile.open()
while readline<>"File read error"
 readline=trim(safe call questionsfile.ReadLn())
 if readline<>"File read error" then
  num=num+1
  uo.setglobal("OntextQuestions"+str(num),Left(readline,Len(readline)-1))
 end If
wend
questionsfile.close()
uo.setglobal("NumQuestions",num)

 While 1==1
  uo.say(botname)
  uo.say(botinfo)
  uo.say(botowner)
  wait(5000)
  For i=0 To Botinfocicle
   play()
   wait(11000)
  next
 wend

End Sub

Sub play()
 uo.deletejournal()
 var Timer=0,answerOK
 uo.say(startmess)
 QuestANDAnswer()
 correctSay()
 answerOK="false"
 Timer=uo.timer()
  While Not uo.injournal(uo.getglobal("Answer")) And  uo.timer()-Timer<timeout_2*10
   wait(50)
  Wend
   If Not uo.injournal(uo.getglobal("Answer")) and uo.timer()-Timer>=timeout_2*10 Then
    uo.say(">> подсказка <<")
    help()
   End If
  While Not uo.injournal(uo.getglobal("Answer")) and uo.timer()-Timer<timeout_1*10
   wait(100)
  Wend
  If uo.injournal(uo.getglobal("Answer")) Then
   uo.say("Поздравляю")
   uo.say(">> "+uo.getname(uo.journalserial(uo.journal(uo.getglobal("Answer"))))+" << ")
   uo.say(" ответ был - "+uo.getglobal("Answer"))
   Else
   uo.say("Время вышло!! Ответ был - "+uo.getglobal("Answer"))
  End If
End sub


sub QuestANDAnswer()
 var i,k,markerpoint=0
 var Random=uo.random(val(uo.getglobal("NumQuestions")))+1
 var QuestionLine=uo.getglobal("OntextQuestions"+str(Random))
 For i=0 To Len(QuestionLine)
  If Mid(QuestionLine,i,1)==marker Then
   markerpoint=i
  End if
 Next
 uo.setglobal("Quest",Left(QuestionLine,markerpoint))
 uo.setglobal("Answer",Right(QuestionLine,Len(QuestionLine)-markerpoint-1))
End Sub

Sub help()
 var i,simbols=0
 var text=uo.getglobal("Answer")
 var helpmsg=Left(text,Len(text)/2)
 simbols=Len(text)/2
  if Len(text)<=3 then
   helpmsg=helpmsg+"*"
  end if
 repeat
  simbols=simbols+1
  helpmsg=helpmsg+"*"
 Until simbols>=Len(text)
 uo.say(helpmsg)
End Sub

Sub correctSay()
var msg=uo.getglobal("Quest")
var simbols=Len(msg)
If simbols>80 Then
uo.say(left(msg,75))
 msg=Right(msg,simbols-74)
 wait(1000)
 uo.say(msg)
 Else
 uo.say(msg)
End If
End sub

файл вопросов - http://slil.ru/23729098

2allCoders - парни..скелетик прикольный...можно подписать результаты,всякие там топы,лучших игроков и т.д. Если кто-то возметься будем рады. Я конечно и сам пишу но время на все не хватает а народ требует ))

Author:  Don SpiL [ 2007-01-20 13:32:15 ]
Post subject: 

Кто нибудь тестил? Хотелось бы выслушать коменты по скрипту....

Author:  CuHTpoH [ 2007-12-29 20:09:45 ]
Post subject: 

файл не найден (( перезалей базу вопросов плз

Author:  Igore6ka [ 2008-04-24 09:46:21 ]
Post subject: 

Скрипт хороший, дописал к нему рейтинг с сохранением в файл (правда сортирует после каждого ответа долго по секунд 10-15), зашибись работает :) На Oldp Paradise на мп поставил - народу понравилось. Планирую ещё перевод м латинице в кирилицу дописать, а то многие транслитом отвечают. Автору зачёт за идею и исходник!

Author:  kexwer [ 2008-12-21 09:31:59 ]
Post subject: 

Файл не найден...


Перезалей базу плиз, хочу попробывать :oops:

Author:  admir [ 2009-01-27 10:05:23 ]
Post subject: 

Интересно , + реализовать независимость регистра букв.
У меня почемуто возникла подобная идея дня 3 назад... только на стелсе:)

Author:  texxsus [ 2009-04-16 19:59:53 ]
Post subject: 

У когонибудь сохранился фаил викторины ?

Author:  Don SpiL [ 2009-06-15 12:54:14 ]
Post subject: 

Ого скриптик то жив. Всем привет.

Прошло много лет и я решил катануть в УО ))

Сейчас перечитаю чего я там тогда писал и выложу обновленное.

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/