Yoko

All sides of Injection
It is currently 2018-07-18 14:31:59

All times are UTC+02:00




Post new topic  Reply to topic  [ 8 posts ] 

Работает или нет?
Да 42%  42%  [ 8 ]
Нет 58%  58%  [ 11 ]
Total votes: 19
Author Message
PostPosted: 2007-01-12 08:39:01 
Offline

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


Top
   
 Post subject:
PostPosted: 2007-01-20 13:32:15 
Offline

Joined: 2005-05-03 11:51:04
Posts: 108
Location: KDK Elite Group (c)
Кто нибудь тестил? Хотелось бы выслушать коменты по скрипту....


Top
   
 Post subject:
PostPosted: 2007-12-29 20:09:45 
Offline
User avatar

Joined: 2007-11-01 19:09:30
Posts: 287
Location: Moscow
файл не найден (( перезалей базу вопросов плз

_________________
**Выставляем отступы в скриптах*** ©Destruction
Feel the Power of Dark Side


Top
   
 Post subject:
PostPosted: 2008-04-24 09:46:21 
Offline

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


Top
   
 Post subject:
PostPosted: 2008-12-21 09:31:59 
Offline
User avatar

Joined: 2005-06-19 19:21:28
Posts: 157
Файл не найден...


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


Top
   
 Post subject:
PostPosted: 2009-01-27 10:05:23 
Offline
User avatar

Joined: 2005-01-13 07:20:54
Posts: 528
Интересно , + реализовать независимость регистра букв.
У меня почемуто возникла подобная идея дня 3 назад... только на стелсе:)

_________________
все для альфы , [url=http://newvlad.nm.ru/prog]здесь[/url]
модернизация ремонт продажа игровых консолей
Sky: admirka1 Москва


Top
   
 Post subject:
PostPosted: 2009-04-16 19:59:53 
Offline

Joined: 2009-04-16 19:48:32
Posts: 2
У когонибудь сохранился фаил викторины ?


Top
   
 Post subject:
PostPosted: 2009-06-15 12:54:14 
Offline

Joined: 2005-05-03 11:51:04
Posts: 108
Location: KDK Elite Group (c)
Ого скриптик то жив. Всем привет.

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

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 8 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited