Вернуться   МПМ Былины - Мир Древней Руси > Для игроков > Клиенты для игры

Клиенты для игры Все что связано с клиентами для игры. Jmc, MMC, ZMud etc...

Ответ
 
Опции темы Опции просмотра
Старый 02.06.2006, 16:53   #16
Devastator
Отличник форума
 
Регистрация: 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();
}
__________________
Владение орфографией русского языка - это как кунг-фу, истинные мастера которого не применяют его без надобности.
Devastator вне форума   Ответить с цитированием
Старый 02.06.2006, 17:12   #17
Devastator
Отличник форума
 
Регистрация: 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
ну для просмотра мы пользуемся темже скриптом что и для просмотра пкл(см. выше)
__________________
Владение орфографией русского языка - это как кунг-фу, истинные мастера которого не применяют его без надобности.
Devastator вне форума   Ответить с цитированием
Старый 08.06.2006, 01:58   #18
Гурик
Знакомый Мадера
 
Регистрация: 31.05.2006
Адрес: Прага
Сообщений: 54
По умолчанию

хорошая штука
а теперь можно это сделать что бы по запросу аляса скаже "вспвсе"
выводилось эко или шоуми всех теллов за последние скажем 9 часов.
причем разными цветами
__________________
#read pk.cfg
Гурик вне форума   Ответить с цитированием
Старый 09.06.2006, 06:38   #19
Devastator
Отличник форума
 
Регистрация: 18.10.2005
Адрес: Пермь
Сообщений: 273
По умолчанию

можно тока блин сессия идет, мама клавиатуру отобрала а экранной я медленно печатаю
__________________
Владение орфографией русского языка - это как кунг-фу, истинные мастера которого не применяют его без надобности.
Devastator вне форума   Ответить с цитированием
Старый 17.06.2006, 13:13   #20
Devastator
Отличник форума
 
Регистрация: 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
__________________
Владение орфографией русского языка - это как кунг-фу, истинные мастера которого не применяют его без надобности.
Devastator вне форума   Ответить с цитированием
Старый 17.07.2006, 09:56   #21
Яруго
Новичок
 
Регистрация: 26.05.2005
Адрес: Киров
Сообщений: 42
По умолчанию перехват теллов

Цитата:
Сообщение от Devastator
Раз просили поделюсь )) и поясню
Гдето раньше Worm уже вкладывал перехват тело, ну вот выложу тоже самое ну чуть доработанное )) в доработке помогла Зиля
[/color]
Прикрутил вышеописанный *перехват телов* в редакции Devastator к своему конфигу, все работает, очень понравилось, НО клиент стал тормозить со страшной силой.
В связи с этим вопрос - проблема в настройках моего клиента или это *плата* за удобства?

Спасибо за внимание.
Яруго вне форума   Ответить с цитированием
Старый 17.07.2006, 23:59   #22
lexik
Админ форума
 
Регистрация: 05.03.2004
Сообщений: 635
По умолчанию

скорее второе - регэкспы в ява скриптах очень тормозные как вариант прикрутить к жабе актив перл, а еще лучше просто перейти на ммц
__________________
©º°¨¨°º© МПМ "Былины" ©º°¨¨°º© Мир преданий и сказаний Древней Руси
lexik вне форума   Ответить с цитированием
Старый 18.07.2006, 09:28   #23
Яруго
Новичок
 
Регистрация: 26.05.2005
Адрес: Киров
Сообщений: 42
По умолчанию переход на ммц

Цитата:
Сообщение от lexik
скорее второе - регэкспы в ява скриптах очень тормозные как вариант прикрутить к жабе актив перл, а еще лучше просто перейти на ммц
К сожалению ниразу не програмист перл - не мой родной язык *сож.
В связи с этим переход на ммц мне заказан

Спасибо за внимание
Яруго вне форума   Ответить с цитированием
Старый 18.07.2006, 20:59   #24
lexik
Админ форума
 
Регистрация: 05.03.2004
Сообщений: 635
По умолчанию

если ты могешь разобраться с яваскриптом чтобы обрабатывал то что тебе нужно, то язык скриптов ммц тебе по сложности как выпускнику задачи из первого класса... если считаешь, что там нужно быть зубром перла, то я тебя огорчу... там главное знать что тебе нужно и иногда уметь пользоваться гуглем или яндексом
__________________
©º°¨¨°º© МПМ "Былины" ©º°¨¨°º© Мир преданий и сказаний Древней Руси
lexik вне форума   Ответить с цитированием
Старый 22.07.2006, 21:06   #25
Saydus
Занятой мадер
 
Регистрация: 23.03.2004
Сообщений: 146
По умолчанию

что такое скрипты обьясните пожайлуста!
Saydus вне форума   Ответить с цитированием
Старый 24.07.2006, 08:51   #26
ludomir
Отличник форума
 
Регистрация: 03.05.2006
Адрес: Новосибирск
Сообщений: 337
По умолчанию

Скрипт - программа, содержащая набор инструкций для некоторых приложений или утилит. Семантика и синтаксис инструкций в скриптах определяются соответствующими приложениями. Обычно язык скриптов включает простые структуры управления: линейные последовательности, циклы и условные выражения.
ludomir вне форума   Ответить с цитированием
Старый 24.07.2006, 10:03   #27
Tejko
Отличник форума
 
Регистрация: 21.05.2004
Сообщений: 581
По умолчанию

палюбому выдрал из словаря (причем электронного)
__________________
I це тiльки початок...
Tejko вне форума   Ответить с цитированием
Старый 20.08.2006, 04:15   #28
WorM
Занятой мадер
 
Регистрация: 21.11.2004
Адрес: Питер
Сообщений: 131
По умолчанию

Цитата:
Сообщение от Aleksey_s
захотел я написать суперпродвинутые скрипты для жабы, и конешно не на его экшнах и алиасах, а на какомнить скриптовом движке типа JScript
Пытаюсь зайти во вкладку "скрипты" в настройках, и вылетает критическая ошибка... Переустановил жабу в другой каталог (эта у меня была не установлена, а просто скопирована...) (переустановил именно с инсталяшки), установил поверх апдейт до 3.27 и опять таже история. ПЫтаюсь открыть вкладку "скрипты" - жаба вылетает.
Подскажите че тут делать
Если у тебя винда 2000 или 98 обязательно чтоб все корректно в жабе работало надо IE6 ставить.
WorM вне форума   Ответить с цитированием
Старый 21.08.2006, 23:32   #29
Devastator
Отличник форума
 
Регистрация: 18.10.2005
Адрес: Пермь
Сообщений: 273
По умолчанию

Цитата:
Сообщение от Яруго Посмотреть сообщение
Прикрутил вышеописанный *перехват телов* в редакции Devastator к своему конфигу, все работает, очень понравилось, НО клиент стал тормозить со страшной силой.
В связи с этим вопрос - проблема в настройках моего клиента или это *плата* за удобства?
Кому тока не прикручивал этот перехват, ни у кого не тормозит, странно
__________________
Владение орфографией русского языка - это как кунг-фу, истинные мастера которого не применяют его без надобности.
Devastator вне форума   Ответить с цитированием
Старый 25.08.2006, 06:26   #30
WorM
Занятой мадер
 
Регистрация: 21.11.2004
Адрес: Питер
Сообщений: 131
По умолчанию

Цитата:
Сообщение от Яруго Посмотреть сообщение
Прикрутил вышеописанный *перехват телов* в редакции Devastator к своему конфигу, все работает, очень понравилось, НО клиент стал тормозить со страшной силой.
В связи с этим вопрос - проблема в настройках моего клиента или это *плата* за удобства?

Спасибо за внимание.
Кстати что у тебя за комп, у меня например даже на P1 200MHz без лагов этот скрипт работал.И не только он а ещё база шмота и там всякая фигня, правда база грузилась долго.
WorM вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 03:40.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot