Скрипт - Викторина.

Good scripts, not reviewed and checked yet

Moderators: Murderator+, Murderator

Post Reply

Работает или нет?

Да
8
42%
Нет
11
58%
 
Total votes: 19

Don SpiL
Posts: 108
Joined: 2005-05-03 11:51:04
Location: KDK Elite Group (c)
Contact:

Скрипт - Викторина.

Post by Don SpiL »

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

Code: Select all

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 - парни..скелетик прикольный...можно подписать результаты,всякие там топы,лучших игроков и т.д. Если кто-то возметься будем рады. Я конечно и сам пишу но время на все не хватает а народ требует ))
Don SpiL
Posts: 108
Joined: 2005-05-03 11:51:04
Location: KDK Elite Group (c)
Contact:

Post by Don SpiL »

Кто нибудь тестил? Хотелось бы выслушать коменты по скрипту....
CuHTpoH
Posts: 287
Joined: 2007-11-01 19:09:30
Location: Moscow
Contact:

Post by CuHTpoH »

файл не найден (( перезалей базу вопросов плз
**Выставляем отступы в скриптах*** ©Destruction
Feel the Power of Dark Side
Igore6ka
Posts: 51
Joined: 2006-05-12 06:52:11

Post by Igore6ka »

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

Post by kexwer »

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


Перезалей базу плиз, хочу попробывать :oops:
admir
Posts: 528
Joined: 2005-01-13 07:20:54

Post by admir »

Интересно , + реализовать независимость регистра букв.
У меня почемуто возникла подобная идея дня 3 назад... только на стелсе:)
все для альфы , [url=http://newvlad.nm.ru/prog]здесь[/url]
модернизация ремонт продажа игровых консолей
Sky: admirka1 Москва
texxsus
Posts: 2
Joined: 2009-04-16 19:48:32

Post by texxsus »

У когонибудь сохранился фаил викторины ?
Don SpiL
Posts: 108
Joined: 2005-05-03 11:51:04
Location: KDK Elite Group (c)
Contact:

Post by Don SpiL »

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

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

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