|
Клиенты для игры Все что связано с клиентами для игры. Jmc, MMC, ZMud etc... |
|
Опции темы | Опции просмотра |
02.06.2006, 17:53 | #16 |
Отличник форума
Регистрация: 18.10.2005
Адрес: Пермь
Сообщений: 273
|
Раз просили поделюсь )) и поясню
Гдето раньше Worm уже вкладывал перехват тело, ну вот выложу тоже самое ну чуть доработанное )) в доработке помогла Зиля var CNRM = "\x1B[0;0m"; var CBLK = "\x1B[0;30m"; var CRED = "\x1B[0;31m"; var CGRN = "\x1B[0;32m"; var CYEL = "\x1B[0;33m"; var CBLU = "\x1B[0;34m"; var CMAG = "\x1B[0;35m"; var CCYN = "\x1B[0;36m"; var CWHT = "\x1B[0;37m"; var CNUL = ""; var BBLK = "\x1B[1;30m"; var BRED = "\x1B[1;31m"; var BGRN = "\x1B[1;32m"; var BYEL = "\x1B[1;33m"; var BBLU = "\x1B[1;34m"; var BMAG = "\x1B[1;35m"; var BCYN = "\x1B[1;36m"; var BWHT = "\x1B[1;37m"; var BKBLK = "\x1B[40m"; var BKRED = "\x1B[41m"; var BKGRN = "\x1B[42m"; var BKYEL = "\x1B[43m"; var BKBLU = "\x1B[44m"; var BKMAG = "\x1B[45m"; var BKCYN = "\x1B[46m"; var BKWHT = "\x1B[47m"; function CaptureTells() { var tmp=jmc.Event; var tely=/\[1;36m([А-Яа-я]+|Кто-то) сказал[а]? Вам : '(.+)'$/; var ytel=/\[1;36mВы сказали ([А-Яа-я]+|Кому-то) : '(.+)'$/; var gtel=/^(\[0;32m\d+H\[0;37m \[0;32m\d+M\[0;37m (\?\?\?|\d+о) Зауч\:.+> )?([А-Яа-я]+|Кто-то) сообщил[а]? группе : '(.+)'$/; var ygtel=/^(\[0;32m\d+H\[0;37m \[0;32m\d+M\[0;37m (\?\?\?|\d+о) Зауч\:.+> )?Вы сообщили группе : '(.+)'$/; var gdtel=/^(\[0;32m\d+H\[0;37m \[0;32m\d+M\[0;37m (\?\?\?|\d+о) Зауч\:.+> )?([А-Яа-я]+) дружине: \[1;31m'(.+)'.\[0;37m$/; var gstel=/^(\[0;32m\d+H\[0;37m \[0;32m\d+M\[0;37m (\?\?\?|\d+о) Зауч\:.+> )?([А-Яа-я]+) союзникам: \[1;32m'(.+)'.\[0;37m$/; if(tely.test(tmp)==true) { res = tely.exec(tmp); if((res[1]!='Кузнец') && (res[1]!='Умелец') && (res[1]!='Скорняк') && (res[1]!='Трактирщик') && (res[1]!='Травник') && (res[1]!='Индус') && (res[1]!='Пленник') && (res[1]!='Пекарь') && (res[1]!='Торговец') && (res[1]!='Подмастерье')) { jmc.Output(""+BYEL+"$TIME | "+CWHT+" "+res[1]+" Вам : "+BCYN+"'"+res[2]+"'"); Tells(""+BYEL+Date()+" | "+CWHT+" "+res[1]+" Вам : "+BCYN+"'"+res[2]+"'"); } } if(ytel.test(tmp)==true) { res = ytel.exec(tmp); jmc.Output(""+BYEL+"$TIME | "+CWHT+" Вы "+res[1]+" : "+BCYN+"'"+res[2]+"'"); Tells(""+BYEL+Date()+" | "+CWHT+" Вы "+res[1]+" : "+BCYN+"'"+res[2]+"'"); } if(gtel.test(tmp)==true) { res = gtel.exec(tmp); jmc.Output(""+BYEL+"$TIME | "+CWHT+" "+res[3]+" группе : "+BWHT+"'"+res[4]+"'"); Tells(""+BYEL+Date()+" | "+CWHT+" "+res[3]+" группе : "+BWHT+"'"+res[4]+"'"); } if(ygtel.test(tmp)==true) { res = ygtel.exec(tmp); jmc.Output(""+BYEL+"$TIME | "+CWHT+" Вы группе : "+BWHT+"'"+res[3]+"'"); Tells(""+BYEL+Date()+" | "+CWHT+" Вы группе : "+BWHT+"'"+res[3]+"'"); } if(gdtel.test(tmp)==true) { res = gdtel.exec(tmp); jmc.Output(""+BYEL+"$TIME | "+CWHT+" "+res[3]+" дружине : "+BRED+"'"+res[4]+"'"); Tells(""+BYEL+Date()+" | "+CWHT+" "+res[3]+" дружине : "+BRED+"'"+res[4]+"'"); } if(gstel.test(tmp)==true) { res = gstel.exec(tmp); jmc.Output(""+BYEL+"$TIME | "+CWHT+" "+res[3]+" союзникам :"+BGRN+" '"+res[4]+"'"); Tells(""+BYEL+Date()+"| "+CWHT+" "+res[3]+" союзникам :"+BGRN+" '"+res[4]+"'"); } } jmc.RegisterHandler("Incoming","CaptureTells()"); function Tells(name) { var fso = new ActiveXObject("Scripting.FileSystemObject"); var file = fso.OpenTextFile("tells.txt",8); file.WriteLine(""+name+""); file.Close(); }
__________________
Владение орфографией русского языка - это как кунг-фу, истинные мастера которого не применяют его без надобности. |
02.06.2006, 18:12 | #17 |
Отличник форума
Регистрация: 18.10.2005
Адрес: Пермь
Сообщений: 273
|
Терь разберемся что тут происходит
var tely=/\[1;36m([А-Яа-я]+|Кто-то) сказал[а]? Вам : '(.+)'$/; var ytel=/\[1;36mВы сказали ([А-Яа-я]+|Кому-то) : '(.+)'$/; var gtel=/^(\[0;32m\d+H\[0;37m \[0;32m\d+M\[0;37m (\?\?\?|\d+о) Зауч\:.+> )?([А-Яа-я]+|Кто-то) сообщил[а]? группе : '(.+)'$/; var ygtel=/^(\[0;32m\d+H\[0;37m \[0;32m\d+M\[0;37m (\?\?\?|\d+о) Зауч\:.+> )?Вы сообщили группе : '(.+)'$/; var gdtel=/^(\[0;32m\d+H\[0;37m \[0;32m\d+M\[0;37m (\?\?\?|\d+о) Зауч\:.+> )?([А-Яа-я]+) дружине: \[1;31m'(.+)'.\[0;37m$/; var gstel=/^(\[0;32m\d+H\[0;37m \[0;32m\d+M\[0;37m (\?\?\?|\d+о) Зауч\:.+> )?([А-Яа-я]+) союзникам: \[1;32m'(.+)'.\[0;37m$/; Здесь мы придаем переменным регулярные выражения Регулярные выражения представляют собой образцы для поиска заданных комбинаций символов в текстовых строках (такой поиск называется сопоставлением с образцом). Регулярное выражение не может быть пустым: два символа // подряд задают начало комментария. Поэтому для задания пустого регулярного выражения используйте выражение /.?/. также нам встричается Tells() - это процедура которыю мы создали function Tells(name) { var fso = new ActiveXObject("Scripting.FileSystemObject"); var file = fso.OpenTextFile("tells.txt",8); file.WriteLine(""+name+""); file.Close(); } это процедура, она записывает в фаил tells.txt при этом этот фаил уже должен быть в папке JMC ну для просмотра мы пользуемся темже скриптом что и для просмотра пкл(см. выше)
__________________
Владение орфографией русского языка - это как кунг-фу, истинные мастера которого не применяют его без надобности. |
08.06.2006, 02:58 | #18 |
Знакомый Мадера
Регистрация: 31.05.2006
Адрес: Прага
Сообщений: 54
|
хорошая штука
а теперь можно это сделать что бы по запросу аляса скаже "вспвсе" выводилось эко или шоуми всех теллов за последние скажем 9 часов. причем разными цветами
__________________
#read pk.cfg |
09.06.2006, 07:38 | #19 |
Отличник форума
Регистрация: 18.10.2005
Адрес: Пермь
Сообщений: 273
|
можно тока блин сессия идет, мама клавиатуру отобрала а экранной я медленно печатаю
__________________
Владение орфографией русского языка - это как кунг-фу, истинные мастера которого не применяют его без надобности. |
17.06.2006, 14:13 | #20 |
Отличник форума
Регистрация: 18.10.2005
Адрес: Пермь
Сообщений: 273
|
Ща стала актуальна тема казино в маде так вот
нашел статейку Поговорим немного о совсем необязательных, но весьма приятных штуках, которые позволяет написать JS. Допустим у Вас много свободного времени, когда Вам нечем заняться. Можно ведь попробовать развлечь себя и других, ведя какую-нибудь из старых добрых игр =) Например, наперстки. Если мне не изменяет память, то правила такие: берутся 3 наперстка, под один кладется горошина, потом наперсти двигают, а игроки угадывают, под каким же лежит горошина. Сие можно делать руками, но это не наш путь. Напишем простой скриптик, используя генератор случайных чисел, но сначала триггеры. #var startgame 0 #action {произносит: 'Поехали!'} {#if {$startgame != 1} {#scri start_thimble()}} {games} #action {/^(\w+) произносит: '1'$/} {#if {$startgame == 1} {#scri check_thimble(1, "$0")}} {games} #action {/^(\w+) произносит: '2'$/} {#if {$startgame == 1} {#scri check_thimble(2, "$0")}} {games} #action {/^(\w+) произносит: '3'$/} {#if {$startgame == 1} {#scri check_thimble(3, "$0")}} {games} #action {дает тебе %0 золотых.} {#scri get_gold(%0)} {games} Триггеры все примитивные. Чтобы начать игру кто-то должен сказать "Поехали!", также группа триггеров "games" должна быть включена (#group enable games). Теперь сам скрипт. var readygame = 0; var thimble = 0; function start_thimble() { if (readygame <= 0) { jmc.send("say Дня начала игры дайте мне 20 голда"); } else { readygame = readygame - 1; jmc.SetVar("startgame", "1"); randomize_thimble(); } } function get_gold(num) { num = parseInt(num); if (num >= 20) { num = num / 20; num = parseInt(num); readygame = readygame + num; jmc.send("nod"); } else { jmc.send("say Not enough "); } } function randomize_thimble() { var a = 0; a = Math.random(); a = a*100; a = parseInt(a); a = a%3; if (a == 0) { jmc.send("emo кладет горошину под первый наперсток."); thimble = 0; } if (a == 1) { jmc.send("emo кладет горошину под второй наперсток."); thimble = 1; } if (a == 2) { jmc.send("emo кладет горошину под третий наперсток."); thimble = 2; } for (i = 0; i < 10; i++) { a = Math.random(); a = a*1000; a = parseInt(a); a = a%2; if (thimble == 0) { if (a == 0) { thimble = 1; jmc.send("emo передвигает все наперстки на один."); } if (a == 1) { thimble = 2; jmc.send("emo меняет местами крайние наперстки."); } } else if (thimble == 1) { if (a == 0) { thimble = 0; jmc.send("emo хитрым движением передвигает средний и крайний наперстки."); } if (a == 1) { thimble = 2; jmc.send("emo передвигает средний и крайний наперстки."); } } else { if (a == 0) { thimble = 1; jmc.send("emo быстро шевелит руками, передвигая все наперстки на один."); } if (a == 1) { thimble = 0; jmc.send("emo меняет местами крайние наперстки."); } } } jmc.send("say Где же горошина?"); a = thimble + 1; jmc.showme("Горошина:" + a + " наперсток"); } function check_thimble(num, name) { a = num - 1; if (a == thimble) { thimble = -1; jmc.send("emo поднимает указанный наперсток... Вот она горошинка!"); jmc.send("say You win, " + name + "!"); a = Math.random(); a = a + 1; count = 20 * a; count = parseInt(count); jmc.send("giv " + count + " gold " + name); jmc.SetVar("startgame", "0"); } else { a = thimble; thimble = -1; jmc.SetVar("startgame", "0"); if (a == 0) { jmc.send("emo поднимает указанный наперсток... Пусто \:\("); jmc.send("emo поднимает первый наперсток... Удача была так близка \:\)"); jmc.send("say " + name + ", Вы проиграли! Она была под первым наперстком."); } if (a == 1) { jmc.send("emo поднимает указанный наперсток... Пусто \:\("); jmc.send("emo поднимает второй наперсток... Удача была так близка \:\)"); jmc.send("say " + name + ", Вы проиграли! Она была под вторым наперстком."); } if (a == 2) { jmc.send("emo поднимает указанный наперсток... Пусто \:\("); jmc.send("emo поднимает третий наперсток... Удача была так близка \:\)"); jmc.send("say " + name + ", Вы проиграли! Она была под третим наперстком."); } } } Начнем по порядку. readygame - вспомогательная переменная, в ней мы будем хранить количество оплаченных игр (зачем же давать играть на халяву?). thimble - переменная, которая хранит значение наперстка, под которым лежит горошина. thimble_start() начинает игру, если есть оплаченные игры, если их нету - она просит денег. get_gold() проверяет достаточно ли Вам дали денег, и если дали более 20, то, при условии, что хватит на пару игр, прибавляет эти самые игры. Мы подошли к самому интересному - к генератору - randomize_thimble() Записываем в переменную a случайное число в интервале от 0 до 1 с помощью стандартной функции языка Math.random(), далее у нас три варианта под какой наперсток положить, берем остаток от деления a на 3, т.е. получаем целое число от 0 до 2 - это и будет наш наперсток, куда мы положим горошину. Далее "мешаем" наперстки с помощью того же рандома. У нас есть всегда 2 варианта, куда можно подвинуть, проверяем куда нельзя и двигаем туда, куда можно (хорошая фраза получилась). Так мы поступаем 10 раз, скрипт показывает Вам, под каким наперстком лежит горошина. Ждем ответа от игроков просто say'ем (say 1 или say 2 или say 3). Вступает в работу функция check_thimble(), которая просто проверяет угадал игрок или нет. Если он угадал, ему выдается заслуженная награда в размере от 20 до 40 голда. Все честно На мой взгляд, это достаточно объемистый пример, но хорошо иллюстрирующий те или иные возможности языка. Ps чесно взято с www.df2.ru
__________________
Владение орфографией русского языка - это как кунг-фу, истинные мастера которого не применяют его без надобности. |
17.07.2006, 10:56 | #21 | |
Новичок
Регистрация: 26.05.2005
Адрес: Киров
Сообщений: 42
|
перехват теллов
Цитата:
В связи с этим вопрос - проблема в настройках моего клиента или это *плата* за удобства? Спасибо за внимание. |
|
18.07.2006, 00:59 | #22 |
Админ форума
Регистрация: 05.03.2004
Сообщений: 635
|
скорее второе - регэкспы в ява скриптах очень тормозные как вариант прикрутить к жабе актив перл, а еще лучше просто перейти на ммц
__________________
©º°¨¨°º© МПМ "Былины" ©º°¨¨°º© Мир преданий и сказаний Древней Руси |
18.07.2006, 10:28 | #23 | |
Новичок
Регистрация: 26.05.2005
Адрес: Киров
Сообщений: 42
|
переход на ммц
Цитата:
В связи с этим переход на ммц мне заказан Спасибо за внимание |
|
18.07.2006, 21:59 | #24 |
Админ форума
Регистрация: 05.03.2004
Сообщений: 635
|
если ты могешь разобраться с яваскриптом чтобы обрабатывал то что тебе нужно, то язык скриптов ммц тебе по сложности как выпускнику задачи из первого класса... если считаешь, что там нужно быть зубром перла, то я тебя огорчу... там главное знать что тебе нужно и иногда уметь пользоваться гуглем или яндексом
__________________
©º°¨¨°º© МПМ "Былины" ©º°¨¨°º© Мир преданий и сказаний Древней Руси |
22.07.2006, 22:06 | #25 |
Занятой мадер
Регистрация: 23.03.2004
Сообщений: 146
|
что такое скрипты обьясните пожайлуста!
|
24.07.2006, 09:51 | #26 |
Отличник форума
Регистрация: 03.05.2006
Адрес: Новосибирск
Сообщений: 337
|
Скрипт - программа, содержащая набор инструкций для некоторых приложений или утилит. Семантика и синтаксис инструкций в скриптах определяются соответствующими приложениями. Обычно язык скриптов включает простые структуры управления: линейные последовательности, циклы и условные выражения.
|
24.07.2006, 11:03 | #27 |
Отличник форума
Регистрация: 21.05.2004
Сообщений: 581
|
палюбому выдрал из словаря (причем электронного)
__________________
I це тiльки початок... |
20.08.2006, 05:15 | #28 | |
Занятой мадер
Регистрация: 21.11.2004
Адрес: Питер
Сообщений: 131
|
Цитата:
|
|
22.08.2006, 00:32 | #29 |
Отличник форума
Регистрация: 18.10.2005
Адрес: Пермь
Сообщений: 273
|
Кому тока не прикручивал этот перехват, ни у кого не тормозит, странно
__________________
Владение орфографией русского языка - это как кунг-фу, истинные мастера которого не применяют его без надобности. |
25.08.2006, 07:26 | #30 |
Занятой мадер
Регистрация: 21.11.2004
Адрес: Питер
Сообщений: 131
|
Кстати что у тебя за комп, у меня например даже на P1 200MHz без лагов этот скрипт работал.И не только он а ещё база шмота и там всякая фигня, правда база грузилась долго.
|