Форум online MUD игры АРДА
16.12.18, 23:58:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости:
 
   Начало   Помощь Поиск Календарь Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: zMUD: странности  (Прочитано 20279 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Kiber_
Постоялец
*

Карма: 1
Офлайн Офлайн

Сообщений: 131


WWW
« Ответ #35 : 13.02.07, 16:48:43 »

Grelin
Цитировать
Ну и где здесь я сделал обработку скриптовым языком

там-нет, а раньше -
Цитировать
#script

В 1м случае я так понимаю ты пытаешься поймать тик когда явно о тике ничего не свидетельствует, основываясь на том что в этом случае выдается 2 пустые строки подряд. А если они выскочат по другой причине? Я, когда выбирал "как буду ловить тик", решил что это должно быть событие однозначно определяющее тик. Благо когда левелишься, проблем с такими событиями не возникает, а когда тупо трансишь до квеста, то и тик не особо нужен.
С чем я могу согласиться так это с твоим последним триггером, там действительно без скрипта через оператор "или" ты обработал смену времени. Однако в обработке ты использовал не саму смену времени а переменную опыта, которая числовая. Забавный ход, а что если тебе нужно опыт проанализировать? Плюсовать будешь?
Что это как не реализация через Ж? Просто согласись...

Про спамотик я тебе рассказал дабы подать пример - как можно рассказывать о методе, не копипастя.

Ну детский сад, ей богу...
Вы в своих примерах раскрашиваете фразы вручную, а я говорю о том что если тебе телльнули в цвете, то полноценно перевести фразу в output можно только при помощи скриптов, в остальных случаях фраза будет переведена в output обесцвеченной.
Отчаянный Дикки
спамер -.-
Записан

Отчаянный Дикки
Путешественник
**

Карма: 0
Офлайн Офлайн

Сообщений: 309



« Ответ #36 : 13.02.07, 16:57:54 »

Да я спамер =) Я Же Гродер черт меня дери.. Это как второе имя =)

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

PS:
Жаль я не знаю перл и ничтоЖен в программировании. Так бы разумеется сидел на ММС. Хотя мне сказали что его выучить совсем не слоЖно. ЧтоЖ. Будет время - попробую. А пока - я за Жабу.
Записан

[size=20]  IN TYLER WE TRUST  [/size]
Локхорн
Громогласный
******

Карма: 4
Офлайн Офлайн

Сообщений: 3422


Псевдомудрое и как бы мыслящее


WWW
« Ответ #37 : 16.02.07, 19:30:06 »

фор Кибер онли (первые мадклиенты):
http://postnext.com/archives/033431.html#more
Записан

bash: Помоему, у геймеров есть только один инстинкт - инстинкт автосохранения
Barkett
Любимец Богов
***

Карма: -6
Офлайн Офлайн

Сообщений: 1318



« Ответ #38 : 17.02.07, 01:19:58 »

Одни из первых программ я писал для МК-61 и МК-85.
Записан

если у вас совесть чиста, значит ваш друг - Бог. (с) Е.Ачилова

http://klanz.ru/ref/user_4535
Kiber_
Постоялец
*

Карма: 1
Офлайн Офлайн

Сообщений: 131


WWW
« Ответ #39 : 24.02.07, 12:45:34 »

Но вообще да, должен признать что бы неправ насчет времени - событие можно поймать без #script.
Однако такой метод забирает 4 %-переменных, поэтому на остальные параметры из строки приглашения остается 6 (по два на хп, ману и мувы), получается анализом опыта мы жертвуем, что не очень хорошо.
У мну такой вопрос:
как можно при помощи скриптов заменить какой-либо приходящий символ на символ возврата каретки (CR)?
jmc.RegisterHandler("Incoming", "OnInc()");
function OnInc()
{var line = jmc.Event;
if (line.search("$symbol")!=-1)
{jmc.Event = line.replace("$symbol"," - Huh?? - ")};
}
Все заменяется, загвоздка в самом символе возврата каретки - я не знаю, есть-ли у jmc специальный символ, я вообще не знаю как телнетом реализовать возврат каретки.
Записан

Seido
Орден Серебрянного Единорога
Постоялец
*

Карма: 5
Офлайн Офлайн

Пол: Мужской
Сообщений: 129


« Ответ #40 : 24.02.07, 23:45:26 »

чет много понапесали, ничитал

Цитировать
Цитата:#action {%0 arrives from the %1} {#script if ("%0"=="$target") jmc.Send("kill $target")}

Из которой видно, что реализация идет через скриптовый язык (по умолчанию в жабе js),

а ч0 мешает напесать
#action {$target arrives from the} {kill $target}
хах, а главное - работает
по мноооогим остальным пунктам описанным на последней странице, в том числе по тикерам, проблемы решаемы тривиально. мыслить нада шире, способов достижения цели как правило настолько много, что хотя бы один - элементарно реализуем.
сравнение строк... ахахаха ((%

з.ы. возврат каретки в телнете такой же как везде - #13 (в js - вместо "- Huh?? -" самое обычное "\0D"); просто врядли это приведет к ожидаемому тобой резалту: вывод строки обрывается символом CR и начинается вывод следующей строки, а не продолжения той же, что вполне естественно.
Записан
Kiber_
Постоялец
*

Карма: 1
Офлайн Офлайн

Сообщений: 131


WWW
« Ответ #41 : 25.02.07, 09:05:13 »

Seido
а как тогда вставить еще и CR? )))
Записан

Seido
Орден Серебрянного Единорога
Постоялец
*

Карма: 5
Офлайн Офлайн

Пол: Мужской
Сообщений: 129


« Ответ #42 : 25.02.07, 18:16:08 »

Цитировать
Seido
а как тогда вставить еще и CR? )))

он и вставляется! ч0заептянипанимаю.

можешь просто по-русски сказать - ч0 те нада?
я вот на днях пытался состряпать эмулирование нейросетей для распознавания и автокоррекции ачипяток в вводе ардовских команд и частых буквосочетаний (типа "вх вс1 ркнд") - идиотизм, но был стимул - предстоящая лаба по сетям хемминга, поготовился типа, ну а вот тебе - зачем фигнёй страдать? какова цель-то?

на самом деле как бы чево ни сделал ты с выводом строки, в которой есть символ CR - ни к чему хорошему это не приведёт, вот тебе кусочег исходнега жабы (3.27):

void tintin_puts2(char *cptr) // Вывод строки cptr в окно жабы - Seido
{
<...>
       char buff[BUFFER_SIZE];
       strcpy ( buff , cptr);
       strcat(buff, "\n"); // Ять! Нам пох на те символы которые ПОСЛЕ символа возврата каретки!!! - Seido
       DirectOutputFunction(buff, 0); // out to main wnd
<...>
}

ну будем считать я экстрасенс и решил, что тебе надо каждую приходящую от сервера строку разбить на несколько строк - символом(подстрокой) $symbol с удалением оного(оной).
тогда способов мильен, например дуболомный:

jmc.RegisterHandler("Incoming", "OnInc()");
function OnInc()
{while(jmc.Event.search("$symbol") != -1) {
jmc.ShowMe( jmc.Event.substr(0, jmc.Event.search("$symbol")) );
jmc.Event = jmc.Event.substr(jmc.Event.search("$symbol") + 1, 512)
}
}

но, повторюсь, всё зависит от того что именно и зачем именно тебе нада.
Записан
Kiber_
Постоялец
*

Карма: 1
Офлайн Офлайн

Сообщений: 131


WWW
« Ответ #43 : 25.02.07, 19:06:26 »

Seido
ты в прицнипе правильно понял - я хочу реализовать разбивку одной строки на две, и что-бы жабой обработались обе эти строки.
Записан

Antalos
Постоялец
*

Карма: 0
Офлайн Офлайн

Пол: Мужской
Сообщений: 164



WWW
« Ответ #44 : 26.02.07, 04:54:32 »

Предлагаю каждому крутому программеру написать свой клиент и не париться с вопросами подобного плана.

ЗЫ В идеале это будет бот, чтобы не париться также и с игровыми вопросами
Записан

Иду к успеху, пока фартит
All Hail the Glory of the Hypnotoad
Они среди нас
Seido
Орден Серебрянного Единорога
Постоялец
*

Карма: 5
Офлайн Офлайн

Пол: Мужской
Сообщений: 129


« Ответ #45 : 26.02.07, 11:41:47 »

Цитировать
Предлагаю каждому крутому программеру написать свой клиент и не париться с вопросами подобного плана.

+1
а если сильно лень или не хватает "крутости" (как мне ((% ) - можно просто подправить исходники  жабы в соответствии со своими требованиями и получить желаемый клиентег. например, имхо, задача Kiber_ либо неразрешима либо разрешима мегаизвратским способом (проблема в том что жаба проверяет строки на соответствие триггерским шаблонам лишь в очень малом числе случаев, не предоставляя прямых средств "имитации" сообщения с сервера). зато если в исходниках удалить ровно один символ, то строка, выдаваемая командой #showme (а значит и методом jmc.Showme), будет проверяться на соответствие триггерам. что разрешает, кстати, сразу большую кучу проблем ((%
Записан
Kiber_
Постоялец
*

Карма: 1
Офлайн Офлайн

Сообщений: 131


WWW
« Ответ #46 : 26.02.07, 17:03:46 »

Antalos
я и не программер, и даже не любитель, и операторы бейсика я не знаю (читай и лень и нехватает крутости и вообще вилосипеды изобретать как-то не хочется, 10 лет изобретаешь, 5 лет ездишь x)).
про бот это да))), есть слухи что Аланна - бот Морриса (его альтер-эго в электронной форме, своего рода позитронный мозг), вы слышали?)
Seido
Символ случайно не звездочка?)))

(Добавление)
Аланна, ты только не обижайся, сама знаешь: ради красного словца..

Записан

Seido
Орден Серебрянного Единорога
Постоялец
*

Карма: 5
Офлайн Офлайн

Пол: Мужской
Сообщений: 129


« Ответ #47 : 26.02.07, 17:07:51 »

нет, цифра 2
ха, не очевидно, да? ((((%
Записан
Kiber_
Постоялец
*

Карма: 1
Офлайн Офлайн

Сообщений: 131


WWW
« Ответ #48 : 26.02.07, 17:12:49 »

Seido
угу, вообще никак))))))

(Добавление)
сейчас найду)))
потом еще найду c, откомпилирую и попробую запустить))

Записан

Antalos
Постоялец
*

Карма: 0
Офлайн Офлайн

Пол: Мужской
Сообщений: 164



WWW
« Ответ #49 : 26.02.07, 18:00:44 »

Пойду гляну сорцы жабы )
Записан

Иду к успеху, пока фартит
All Hail the Glory of the Hypnotoad
Они среди нас
Seido
Орден Серебрянного Единорога
Постоялец
*

Карма: 5
Офлайн Офлайн

Пол: Мужской
Сообщений: 129


« Ответ #50 : 26.02.07, 22:37:21 »

кстати, не сложно и заточить жабу на восприятие цветов в триггерах... в простейшем варианте (хотя и не очень удобном в плане эксплуатации) - просто закамментить вырезание анси-команд,
void check_all_actions(char *line1)
<...>
/*        case 0x1B:
           while ( *ptr && *ptr != 'm' )
               ptr++; */
<...>
(если, конечно, я правильно разобрался в исходнегах (не тестил), что вполне вероятно ((% )
Записан
Seido
Орден Серебрянного Единорога
Постоялец
*

Карма: 5
Офлайн Офлайн

Пол: Мужской
Сообщений: 129


« Ответ #51 : 09.08.07, 11:57:15 »

у меня тут вопрос возник... чисто исследовательского характера ((%
Цитировать
#if умеет сравнивать только числа . Сравнить строки можно используя команду #script:
#action {%0 arrives from the %1} {#script if ("%0"=="$target") jmc.Send("kill $target")}
Нельзя в самом триггере (а не в теле) разносить инфу по переменным. Да и нужно ли? Чем тебя не устраивает тело? Зачем усложнять?
кто-нибудь пользуется чем-то подобным?
ну что-нибудь типа
#script ...("%0")...
?
Записан
Kiber_
Постоялец
*

Карма: 1
Офлайн Офлайн

Сообщений: 131


WWW
« Ответ #52 : 09.08.07, 22:42:17 »

сейчас я полностью портировал конфиг на жабу, но ты в странноватой теме задаешь этот вопрос.
Ты не мог-бы поточнее объяснить что ты хочешь узнать?
Если ты про использование переменных %0-9 в  #script, то да - это работает, я использую.
Записан

Seido
Орден Серебрянного Единорога
Постоялец
*

Карма: 5
Офлайн Офлайн

Пол: Мужской
Сообщений: 129


« Ответ #53 : 10.08.07, 11:46:41 »

сейчас я полностью портировал конфиг на жабу, но ты в странноватой теме задаешь этот вопрос.
Ты не мог-бы поточнее объяснить что ты хочешь узнать?
Если ты про использование переменных %0-9 в  #script, то да - это работает, я использую.
тема эта потому что цитата из этой темы.
да я про эту слепую передачу параметров из жабы в скрипт. причем именно %0.
убирай нахрен ((((%
для приведенного мной в цитате триггера достаточно набрать в Арде
сказать Kiber_ la" + jmc.parse("мечтать JS рулит") + "la arrives from the north.
ну и так далее
Записан
Kiber_
Постоялец
*

Карма: 1
Офлайн Офлайн

Сообщений: 131


WWW
« Ответ #54 : 10.08.07, 12:33:36 »

а что возвратит парс?
Вообще немного не понял.. Зачем убирать, и что демонстрирует твой пример?
Записан

Seido
Орден Серебрянного Единорога
Постоялец
*

Карма: 5
Офлайн Офлайн

Пол: Мужской
Сообщений: 129


« Ответ #55 : 10.08.07, 13:11:52 »

а что возвратит парс?
Вообще немного не понял.. Зачем убирать, и что демонстрирует твой пример?
парсу не обязательно что-то возвращать для того чтобы нормально отработать (%
лучше процитируй свой триггер (%
Записан
Kiber_
Постоялец
*

Карма: 1
Офлайн Офлайн

Сообщений: 131


WWW
« Ответ #56 : 12.08.07, 13:27:17 »

Seido, а, все, понял =)))
Опять баг с обработкой.
По счастью теллы я обрабатываю обычными триггерами (а зачем там скрипт, если цвета в аутпуте всеравно не будет...), поэтому на телл я не поведусь.
Ну и всегда есть такая защита как
#action {jmc.} {#nop} {0}
Записан

Seido
Орден Серебрянного Единорога
Постоялец
*

Карма: 5
Офлайн Офлайн

Пол: Мужской
Сообщений: 129


« Ответ #57 : 12.08.07, 15:17:21 »

По счастью теллы я обрабатываю обычными триггерами (а зачем там скрипт, если цвета в аутпуте всеравно не будет...), поэтому на телл я не поведусь.
что мешает теллнуть нужную строку?
мораль в том, что все триггеры, взаимодействующие с (=передающие параметры в) JS, необходимо заменить на соответствующую обработку "Incoming" (а делается это легким движением руки).

Ну и всегда есть такая защита как
#action {jmc.} {#nop} {0}
зависит от конфига. у меня вот конфиг заточен под #multiaction on.

к тому же я привел лишь пример с jmc., а сделать-то можно фактически всё что угодно - вплоть до форматирования твоего жесткого диска (через FSO например).
Записан
Kiber_
Постоялец
*

Карма: 1
Офлайн Офлайн

Сообщений: 131


WWW
« Ответ #58 : 13.08.07, 00:15:05 »

Угу, согласен, особенно в варианте работы с мультитриггерами.
Какие предложения по устранению?
В инкоминге понятно как устранить.
А если через мультиэкшн?
Записан

Deyar
Братство Ронинов
Герой
****

Карма: -173
Офлайн Офлайн

Пол: Мужской
Сообщений: 2062


« Ответ #59 : 13.08.07, 00:46:26 »

Вопрос в тему ,)
Я клацаю иконку с чаром, и у меня оутпут все время отделяется от строки с кнопками "файл, алиас итп". Каждый раз вручную соединяю это. Как это устранить? ,)
Записан
Kiber_
Постоялец
*

Карма: 1
Офлайн Офлайн

Сообщений: 131


WWW
« Ответ #60 : 13.08.07, 08:39:38 »

Попробуй
Layout-Save Layout
когда все окошки на местах
Записан

Deyar
Братство Ронинов
Герой
****

Карма: -173
Офлайн Офлайн

Пол: Мужской
Сообщений: 2062


« Ответ #61 : 13.08.07, 11:38:54 »

Кибер, спасибо )
Записан
Seido
Орден Серебрянного Единорога
Постоялец
*

Карма: 5
Офлайн Офлайн

Пол: Мужской
Сообщений: 129


« Ответ #62 : 13.08.07, 14:05:32 »

Какие предложения по устранению?
пока никаких конструктивных ((%

казалось, что могло бы помочь
#sub {"} {\"}
но только убивается всё тем же способом только в телле вместо кавычки надо написать \", что заменится на \\" и интерпретатор благополучно захавает все ту же паганую неэкранированную кавычку..

тогда казалось бы что могло бы помочь
#sub {"} {'}
но только это неприятно (всё-таки хотелось бы знать что пришло с сервера - кавычка или апостроф, хз для чево но интересно же))))

однако это только казалось, потому как жаба какашка не делает больше одного сабса в строке. по крайней мере я не нашел в 3.26 в хелпе ничего о том как сделать чтобы сабсило пока не останется ни одного подходящего сабса, может от зацикливания сделали такое ограничение, хз.
так что остается всё тот же инкаминг, вместо замены всех "плохих" триггеров надо вставить одну строчку в самом начале обработчика.
Типа таво:

jmc.RegisterHandler("Incoming", "OnInc()");
<...>
function OnInc() {
  while (jmc.Event.search("\"") != -1) jmc.Event = jmc.Event.replace("\"","'");
<...>
}


но это всё, разумеется, не то чего хотелось бы.

з.ы. а вообще стандартный аутпут плох тем что время к нему не припишешь. прикольно когда чат аутпутится с припиской системного времени.
Записан
Kiber_
Постоялец
*

Карма: 1
Офлайн Офлайн

Сообщений: 131


WWW
« Ответ #63 : 13.08.07, 15:58:48 »

хм, конечно не очень красиво, но красота не главное =)
по поводу
Цитировать
прикольно когда чат аутпутится с припиской системного времени.
попробуй использовать переменные $DATE $TIME.
Записан

Кирд
Победитель нежити
**

Карма: 3
Офлайн Офлайн

Сообщений: 431



WWW
« Ответ #64 : 14.11.07, 02:28:28 »

Предлагаю каждому крутому программеру написать свой клиент и не париться с вопросами подобного плана.

done
Записан

С ув. Кирд
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0.524 секунд. Запросов: 28.