Page 1 of 1

Говорящий бот

Posted: 2005-03-13 02:59:52
by poiNt_3D
Недавно познакомился с inject - классная штука.
Пытаюсь создать скрипт, который разговаривает с игроками - по ключевым словам.

Вот мой скрипт:

Code: Select all


sub speak()
begin:
   while not UO.InJournal("а") and not UO.InJournal("а") and not UO.InJournal("о") and not UO.InJournal("у") and not UO.InJournal("э") and not UO.InJournal("и") and not UO.InJournal("е") and not UO.InJournal("я") and not UO.InJournal("ю") and not UO.InJournal("ы")
      UO.DeleteJournal()
      wait(7000)
      UO.Print("*")
   wend

if UO.InJournal("poiNt_3D: ") then # Мой ник. Чтобы не болтал сам с собой :)
UO.Print("Message from self")
UO.DeleteJournal()
wait(1000)
goto begin
endif

############ KEYWORDS ##############

if UO.InJournal("Привет") or UO.InJournal("Здоров") or UO.InJournal("Здравствуй") then
UO.say("Привет")
UO.DeleteJournal()
wait(1000)
goto begin
endif

if UO.InJournal("Дурак") or UO.InJournal("лох") or UO.InJournal("тупой") or UO.InJournal("урод") then
UO.say("Сам такой")
UO.DeleteJournal()
wait(1000)
goto begin
endif

if UO.InJournal("ты тут") or UO.InJournal("ты здесь") then
UO.say("Меня нет. Это скрипт.")
UO.DeleteJournal()
wait(1000)
goto begin
endif
####################################


UO.Say("Я робот")
UO.DeleteJournal()
wait(1000)
goto begin
end sub



Проблема в том, что скрипт отреагирует только на кириллицу.

И еще несколько вопросов.

1) Можно ли преобразовывать текст в нижний регистр? Если да, то как?
2) Если запущенно несколько скриптов, использующих поиск в журнале, и очищающих его, наверное, могут возникнуть конфликты. Как их избежать?
3) Можно ли както конкретнее определить речь игроков? Например, цветом текста...

Спасибо.

Posted: 2005-03-14 00:54:05
by poiNt_3D
Хм, почему никого нету... :(

Posted: 2005-03-14 15:43:14
by Yoko
1) написать скрипт, перебирающий текст побуквенно и заменяя каждую букву на нужную
2) обходиться без uo.DeleteJounal(), использовать SetJournalLine
3) игрок ли это смотри по сериалу JournalSerial (насколько я помню). можно дополнительно привлечь IsNPC для проверки живой ли это обьект. если тебе нужен цвет, то JournalColor (опять же насколько я помню)