Page 1 of 1

Screenshooter - Автоматический скриншот.

Posted: 2006-11-23 14:24:16
by Destruction
Скрипт приметив одно из слов в списке - делает следущее:
1. Выводит на экран информацию о слове.
2. Делает скриншот с названием вида: dd.mm.yy hh:mm:ss [name - phrase].bmp

Code: Select all

var sc = "./sc/" ; директория, куда записывать скриншоты

sub FoulToScreen()
   var i, name, nc_msg, msg = '', words_count = 1 ; количество слов
   DIM foul[1]
   ; Далее - слова в НИЖНЕМ регистре
   foul[0] = "тест";
   repeat
      if not msg == uo.lastmessage() then
         msg = uo.lastmessage()
         nc_msg = strtolower( msg )
         name = uo.getname( uo.journalserial( 0 ) )
         for i=0 to words_count-1
            if FindEntry( foul[ i ], nc_msg, false ) > -1 then
               uo.print( "Матерное слово обнаружено, в строке:");
               uo.print( msg )
               uo.print( "Было найдено слово '"+foul[i]+"'" )
               uo.print( "Дата: "+date(uo.date(),'.') + " в " + time(uo.time(), ":") + " времени.." )
               wait(1000)
               uo.snap( "BMP", sc + date(uo.date(),'.') + " " + time(uo.time(), "-")+" ["+name+' - '+foul[i]+"].bmp" )
               i = words_count-1
            endif
         next
      endif
      wait( 500 )
   until false
endsub


Необходимые функции для работы скрипта можно найти в топике "Function not found".

Пример получаемого скриншота: http://img174.imageshack.us/img174/8851/scna2.jpg

К сожалению Injection далёк от регистронезависимого поиска (насколько я на данный момент помню) - поэтому для смены регистра используется достаточно медленная функция.
Скрипт генерирует достаточно сильную нагрузку на ЦП, почти независимую от количества приходящих сообщений.

http://dl.ultimasoft.ru/storage/scripts/censore.txt - подборка цензурных слов -)

Posted: 2006-11-23 15:57:40
by GrandMaster Ranger
что даже wait( 500 ) в конце перед антилом от лагов не спасает?
кстати за пол секунды вполне можно сказать больше 1 строки, то есть ластмеседж может пропустить нужную фразу...
и вобще зачем это? такой скрипт разве что можно переделать под СТЕЛС и чтобы какойто стафф раставил в людных местах гостов , чтобы они ловили маты :lol: ну и потом садить за это... но стелс не делает скрины, однако можно просто записывать в какойто файл время и имя сказавшего...

Posted: 2006-11-23 16:06:36
by Destruction
Время и место сказавшего мало чего даст.

Я не говорю о лаге, я говорю о нагрузке на ЦП. У меня она с 40% до 60% выросла, когда я дома просто стою кую..

Не за полсекунды - а больше, ты не учитываешь время выполнения непосредственно цикла, обычно - когда ругаются матом, ругаются так, что шанс, что скрипт не сделает ни одного скрина - достаточно низкий.

Posted: 2006-11-23 22:50:54
by Destruction
http://dl.ultimasoft.ru/storage/scripts/censore.txt - наваял тут, под вдохновением -)

Posted: 2006-11-24 11:44:44
by GrandMaster Ranger
Destruction wrote:http://dl.ultimasoft.ru/storage/scripts/censore.txt - наваял тут, под вдохновением -)

ох красавец :lol: :D поделись словарным запасом :wink:
не даю 100% но помойму если напишут мат с большой буквы или просто она гдето в середине слова будет... то твой массив его не споймает уже )

Posted: 2006-11-24 17:12:05
by Destruction
1. Думаешь нафига я записываю переменную nc_msg ?

2. Смотри функцию FindEntry.

3. Не работает оно нифига -( С одним словом - на ура, а с такой толпой всех и всяй скриншотит -(

Posted: 2006-11-24 17:27:47
by I'm
Destruction wrote:3. Не работает оно нифига -( С одним словом - на ура, а с такой толпой всех и всяй скриншотит -(

Так он заранее! Знает что рано или поздно что-нибудь скажут :)))