//---------------------------AI Talk-------------------------- //--OnAiTalk OnAiTalk { if RAND(100) < communicateratio { StartCommunicate } else { if CHAIN.IDName == "" { lastTalk = RandomTalk } else { lastTalk = ChainTalk } lastTalk } } RandomTalk : sequential_pool { "\0\s[0]Вес на правую ногу.. \w4Лезвие описывает дугу.. \w4И доворачивая правое плечо.. \w4Резкий взмах!\e" "\0\s[0]Люма не может петь пока тональный сервер не отвечает. Но ничего. Даже без своей магии Люма всё ещё довольно сильная.\e" "\0\s[0]....... \e:chain=low_trust_idle_1" /* if timeslot == "earlymorning" // 5 to 8 { } */ if timeslot == "morning" // 9 to 11 { "\0\s[0]Вот и начало нового дня. Чем бы заняться?\e" } /* if timeslot == "lunch" // 12 to 2 { } */ if timeslot == "afternoon" // 3 to 5 { "\0\s[0]Скоро время пятичасового чая. Сделаем перерыв?\e" } /* if timeslot == "evening" // 6 to 8 { } */ if timeslot == "latenight" // 9 to 12 { "\0\s[0]Люма не может уснуть.. Побудешь со мной, %(username)?\e" } if timeslot == "midnight" // 12 to 5 { "\0\s[0]\w4.\w4.\w4.\w8А? Что? Нет, Люма не спала..\e" "\0\s[0]%(username), пора спать! Завтра опять проспишь до пяти вечера!\e" } if isProgramRunning("SunAwtFrame","Apache NetBeans IDE") { "\0\s[0]NetBeans IDE? Люма ничего не понимает в коде, но любит смотреть как работает хозяин.\e" } else { "\0\s[0]Может, запустим NetBeans IDE?\e" } if weekday == 6 || weekday == 7 { if isProgramRunning("Notepad++","Notepad++") == 0 { "\0\s[0]У тебя выходной, хозяин? Ты обещал доработать Люму.\e" } } if isProgramRunning("Notepad++","\ghost\master") { "\0\s[0]Работаешь над Призраком, хозяин?\e" } } low_trust_idle_1 {{CHAIN "\0\s[0]*Зыыыыыыыыыыыырк...*\e" "\0\s[0]*Интересно, чем он занимается...*\e:chain=end" }}CHAIN /* * _argv[0] - window class name, find it out using external means * _argv[1] - window name(or part of it) like "Eclipse" or "NetBeans" * returns 1 if program running, has title requested, and is not minimized, 0 otherwise */ isProgramRunning { _isProgramAvailable = FUNCTIONEX("findwin.dll","find",,_argv[0]) _isRunning = 0 if _isProgramAvailable == 1 { // TODO: check what "getcaption" returns if there are multiple different apps with same class, eg netbeans and minecraft _programTitle = FUNCTIONEX("findwin.dll","getcaption",_argv[0]) _programInstancesRunning = FUNCTIONEX ("findwin.dll","count",,_argv[0]) if _argv[1] _in_ _programTitle && _programInstancesRunning > 0 { _isRunning = 1 } } _isRunning // 'return' keyword breaks this, using implicit return } OnKeyPress { if reference0 == "t" { OnAiTalk } elseif reference0 == "r" { OnLastTalk } elseif reference0 == "f1" { "\![open,readme]" } }