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

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

Ответ
 
Опции темы Опции просмотра
Старый 02.03.2011, 15:15   #1
Tony
Новичок
 
Регистрация: 27.12.2005
Сообщений: 48
По умолчанию zmud cmud mapper

Сам использую cmudpro 3.33 client(след версия от разрабов zmud). менее багованная версия чем zmud. Потому гайд + триги для него. Многое верно и для змуда(на самом деле почти все).

Возможности маппера:
a) Понятная и наглядная отрисовка комнат.
http://img251.imageshack.us/img251/359/cmapper1.jpg
б) возможность делать ломанные связки клеток. кусок около 1ой родовой. сказка и например проход на остров немного скошен чтобы не было наплыва клеток друга на друга.
http://img222.imageshack.us/img222/7172/skazka.jpg
в) возможность отрисовывать самые запутанные лабиринты
http://img854.imageshack.us/img854/1654/chern.jpg
кусок с чернигов и болдиными горами
конечно иногда это выглядит очень запутанно, но тем не менее маппер никогда не потеряется если вы следуете за кем то по таким лабиринтам и вам не надо будет снова искать клетку где вы находитесь.
г) быстрая загрузка. у меня карта в которой есть примерно 90 процентов мада. на компе которому уже года 3 загрузка всего этого порядка 5-10 секунд.
д) каждая комната имеет свой виртуальный номер в маппере. и с этим номером можно работать. например если вы дали 1100 кун волхву в НК и оказались в корсе, то благодаря тригам это легко отловить и маппер сразу перепрыгнет в нужную клетку.
Код:
#trig {^У вас закружилась голова, и на миг вы потеряли сознание\.\.\.$\n$\nВ городище$} {#te 70}
#te - это функция телепорта маппера в какую то клетку
70 -это виртуальный номер клетки в маппере
строка условие - написана с использованием regexp т.к. там надо отловить целых 3 строки, чтобы не ошибиться. это строка про голову потом пустую строку и потом название клетки "В городище".

Ну это пример трига чуток дальше примитива. Многие переходы можно легко написать без знания регекспов.

Например переход в р1, когда даете знак стражу.
Код:
#trig {^Резко изменивший направление ветер подхватил Вас и понес вперед.$} {#te 1234}
только надо подставить номер клетки нужной
ж)
-клеткам можно задавать цвет
-цену в мувах прохода через эту клетку
-особый параметр не входить в клетку(полезно для обозначения дт или клеток в которые ни при каких условиях не надо входить)
-можно отметить наличие двери. заперта ли она. название двери. и все это маппер будет использовать сам если надо. а точнее при спидволке из одной точки в другую он сам по пути откроет дверь и отопрет если потребуется(ну если у вас есть ключ или вы написали спидволк так что он подобрал по пути ключ)
-в каждой клетке можно устанавливать набор действий которые маппер будет выполнять при входе в нее.
например в ворах указываете набором действий
обыскать останки
взять ключ
и когда вы зайдете в эту комнату ключ моментально окажется у вас в инвентаре при наличии света в комнате(можно добавить в действия алиас на одевание света или снятия тьмы и тогда ключ чуть ли не в любом случае окажется у вас в инвентаре)
з) почти всеми параметрами маппера можно управлять из строки ввода. это конечно немного труднее, но у меня есть набор простых алиасов на покраску клетки в мирку(зеленый цвет)ванрум(голубой)дт(черный,плюс устанавливается особый флаг не входить)
про дт будет дальше еще упоминаине.
к)легко разделять зоны и тп. например вы начинаете рисовать карту и в итоге она получается у вас довольно большой и в ней присутствует несколько зон - можно мышкой + используя клавишу ктрл выделить клетки одной зоны и указать переместить их в новую созданную зону. маппер автоматом перенесет клетки плюс создаст подписанные выходы-переходы(кои можно было заметить на скринах "to блаблабла").
л) возможность задавать переход из одной клетки в другую используя особые команды
например "ползти лаз" или "перепрыгнуть пропасть" ну это более продвинутое использование маппера
м) простые спидволки дабл кликом в нужную клетку
н) возможность запрограммировать кучу различных плюшек связанных с маппером
п) можно сздавать группы карт (у меня например города, тракты(дороги от одного города до другого,зоны и замки такая система была предложена Мичурой, чьи карты брал за основу и вполне удовлетворяет ))
ну я всяко еще забыл кучу плюсов

Минусы маппера:
а) просто никакой встроенный поиск положения на карте(я уже даже не помню как он работает и каких требует настроек)
б) даже он не способен найти точное место на карте если вы стоите в клетке Лес в поле 10 на 10 из клеток Лес и вокруг вас во всех направлениях "Лес". Но легко находит клетку Лес если вокруг другие различные клетки(ну при наличии группы тригеров и тп).
в) настройка строк-сообщений которые не относятся к отображению клетки т.п. немного отличается от мудмаппера и посложнее пожалуй.
ну тут тоже что то забыл, но основное назвал. ну и самому без пол-литры тяжковато



Основа настройки маппера.
1. Ну первое это настройка встроенным визардом(мастером настроек).
Он запускается: Config - Reconfigure
но для начала надо установить нужные режимы в самом маде.
-А это именно режим автовыход (чтобы выходы отображались на английском языке после названия клетки или описания)
-Плюс если вы будете использовать режим краткий(отображение информации о клетке без описания, когда вы двигаетесь, то его надо сразу включить)
и добавить набор триггеров из пункта 2 ниже.
Затем включить мастер настроек.
а)Первый шаг он предлагает ввести в каком направлении вы переместитесь, чтобы считать информацию из мада и на основании этого настроить себя. Надо просто задать один из возможных выходов из клетки, при условии что вы туда переместитесь(вы не сидите, вас не сагрят, не запретят двигаться и тп)
плюс задать колво секунды в течении которого вы совериште данное действие. Ну можно указать 1-2 секунды, если у вас не ОЧЕНЬ большой пинг(время отклилка от севера).
Главное чтобы во время движения не возникло ситуации что в клетку кто то вошел, или т.п. Где нибудь в тихом месте. Нажимаете Next
б) второй шаг - вы видите набор из 3х галочек.
Если вы используете режим краткий то вторую надо убрать. 1 и 3 оставить. Next
в) вы видите буфер текста из мада. где разными цветами показаны захваченные строки.
синий - название команты
зеленый - описание комнаты(если вы не убрали галочку)
красный - выходы(после слова Exit)
если все так, то всего скорее все получилось успешно и можем жать finish. ну и тут надо сохранить конфиг где то в том же меню.
Для отрисовки мада настройка почти закончена. Теперь если вы включите режим рисования в маппере и будете двигаться по зоне, то маппер сам будет рисовать клетки и переходы между ними. Единственной проблемой тут станет ток наличие лишних строк в клетках, если вы не добавили триггеры из пункта 2.(например упоминание о снеге льде грязи и т.п. или если в комнате темнота) В мудмаппере(кто с ним имел дело) это настраивалось в специальном меню путем вбивания нужных строк.
В смуд змуд маппере это делается набором тригеров.

2) доп триггеры для настройки маппера
Код:
#trig {^(*) прегради%w Вам путь.$} {#nodir} 
#trig {^Вы не сможете туда пройти...$} {#nodir} 
#trig {^Вы слишком устали.$} {#nodir}
#trig {^Нет... Вы слишком расслаблены...} {#nodir}
#trig {^Ни за что !  Вы сражаетесь за свою жизнь!$} {#nodir}
#trig {^Слишком мало места.$} {#nodir}
по каким то причинам вы не двигаетесь и не надо рисовать
Код:
#trig {^Вы просто увязаете в грязи...} {#nomap}
#trig {^Слишком темно...} {#nomap}
#trig {^Тоненький ледок вот-вот проломится под Вами.$} {#nomap}
#trig {^Слабый ветер} {#nomap}
#trig {^Вы поплелись {на|в}} {#nomap}
все триггеры переменные алиасы и тп можно легко закидывать в отдельную папку чтобы. если вы хорошо их написали и в будущем на планируется их права, то их можно засунуть в самую глубокую папку и они не будут на виду и мешатся.
строки не относящиеся к описанию клетки и тп или временные строки, которые не несут никакой смысловой нагрузки для маппера.

Последний раз редактировалось Tony; 02.03.2011 в 15:55.
Tony вне форума   Ответить с цитированием
Старый 02.03.2011, 15:16   #2
Tony
Новичок
 
Регистрация: 27.12.2005
Сообщений: 48
По умолчанию

3) В маппере есть 3 режима передвижения.
Это fast, safe и slow режимы.
а) Fast - без каких либо проверок просто передвигается на запад по карте если вы нажали хоткей запад(если проход на запад есть). Или в любом другом направлении. Т.е. если вы быстро передвигаетесь то маппер опережает немного происходящее в маде.
б) safe вроде бы ловит строку движения и только после этого двигается в указанном направлении(т.е. типо я увидел что мы куда то походили но двинулся туда куда ты указал)
в) slow выполняет проверку после движения по названию клетки или описанию и только после этого маркер на карте передвигается в нужном направлении. (я увидел куда мы сходили и туда сдвинулся или как то так)

вывод - режим б) и в) почти не использовал(так что не исключено что с ними нет особых проблем). использую всегда а)(для скорости).
4) в режиме отрисовки карты появляются доп кнопки рядом с картой (квадрат - установить новую пустую клетку, линия - создать связь между клетками причем можно указать как и обычное соединение восточный выход с западным входом так и не оч обычные угловые или т.п.) т.е. можно вручную править и тп. правой кнопкой на клетку и там опция properties - там куча настроек которые можно изменить вручную так же.

Вобщем используя эти знания можно уже свободно рисовать карты.

2 be continued
Tony вне форума   Ответить с цитированием
Старый 02.03.2011, 15:28   #3
Мичурa
Мадер
 
Регистрация: 10.09.2004
Сообщений: 167
По умолчанию

Как человек игравший на змуде, смуде - скажу - глючнее штуки нет И вообще маппер зло - страдал от этого не раз, маппер потеряет клетку - и все хана, заблудился в сказке ((

>> а) просто никакой встроенный поиск положения на карте(я уже даже не помню как он работает и каких требует настроек)

Чето насколько я помню встроенного там и не было никакого, я сам писал себе.
Мичурa вне форума   Ответить с цитированием
Старый 02.03.2011, 15:53   #4
Tony
Новичок
 
Регистрация: 27.12.2005
Сообщений: 48
По умолчанию

Ну и самое главное это поиск клетки. За основу взят скрипт, который мне давно давно переслал Мичура. И доработан.
Минусы. Не всегда находит клетки. Если есть запертые двери или т.п.(это можно тоже поправить, но пока ломает)

1 папки
у нас будет пара папок. основная папка это wherei . в ней папка mapdirection.
если захотите использовать без редактирования, то придется соблюсти названия.
2 тригеры
а) в папке wherei будет 1 тригер
Код:
#trig {^{^Тоненький ледок вот-вот проломится}%e[1;36m([АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщъЫыьЭэЮюЯz",. -])%e[0m$}  {#var nameroom {%1} _nodef wherei}
и должны стоять галки у тригера
-ANSI Trigger
-Trigger on NEWLINE
-Trigger on Trigger
делается это в окне редактирования тригера (нажать кнопку more снизу, если не нажата)

б)папка mapdirecion
Код:
#trig {^Вверх - (*)} {#var udir {%1} _nodef wherei}
#trig {^Вниз  - (*)} {#var ddir {%1} _nodef wherei}
#trig {^Восток - (*)} {#var edir {%1} _nodef wherei}
#trig {^Запад - (*)} {#var wdir {%1} _nodef wherei}
#trig {^Север - (*)} {#var ndir {%1} _nodef wherei}
#trig {^Юг    - (*)} {#var sdir {%1} _nodef wherei}
у всех тригеров галки
-Trigger on NEWLINE
-Trigger on Trigger

3) Алиас по сути где угодно но проще держать в папке wherei
название тоже какое угодно у алиаса - у меня "гдея"
Код:
#alias {гдея} {
#var sdir "" _nodef wherei
#var ndir "" _nodef wherei
#var wdir "" _nodef wherei
#var udir "" _nodef wherei
#var ddir "" _nodef wherei
#var edir "" _nodef wherei
#t+ mapdirection
look
вых
#waitfor {Видимые выходы} 5500 {
   #wait 400   
   #t- mapdirection
   #win Main {@nameroom  ~(@ndir  @sdir @wdir @edir @udir @ddir~)}
   #if (@nameroom =~ ~") {
   #var searchstr {%concat("[Name] LIKE'",@nameroom,"'")} _nodef wherei
   }
   {
   #var searchstr {%concat("Name='",@nameroom,"'")} _nodef wherei
   }
   #var roomsid {%mapquery(@searchstr)} _nodef wherei
   #win main {ищем в @roomsid}
   #forall @roomsid {
   #if (%roomname( %roomlink( %i, s))=@sdir and %roomname( %roomlink( %i, w))=@wdir and %roomname( %roomlink( %i, e))=@edir and %roomname( %roomlink( %i, n))=@ndir and %roomname( %roomlink( %i, up))=@udir and %roomname( %roomlink( %i, down))=@ddir)
   {
   #win main {%ansi(32)---------------------------}
   #win main {%ansi(32)--GOTIT %i = %roomname( %i)}
   #win main {%ansi(32)---------------------------}
   #te %i
   }
   }
}
{
#ECHO  ЛАГ НЕ ЛАГ НАЙТИ НЕ МОГУ
#t- mapdirection
}
#CALL %mapfilter("")
}
вот теперь введя гдея (или повесив алиас на кнопку маппер находит мою клетку за пол секунды-секунду)
маппер считывает клетки по всем сторонам из мада и сверяет их с клетками в карте. если подходящий вариант найден то он телепортирует туда и выводит соответствующее сообщение. правда если таких клеток не 1 а больше, то он телепортируется по всем ним по очереди и останавливается на последней. ну эту беду пожалуй никак не победить(только если включить отображение виртуальных номер комнат в самом маде - как есть на некоторых серварах, но не в былинах). На идеальный триг не претендую, но с задачей справляется в большинстве случаев.

в алиасе идет вывход доп инфы о переменных. это для того чтобы ловить ошибки. кому надо - уберет

Последний раз редактировалось Tony; 02.03.2011 в 16:03.
Tony вне форума   Ответить с цитированием
Старый 02.03.2011, 15:56   #5
Tony
Новичок
 
Регистрация: 27.12.2005
Сообщений: 48
По умолчанию

Мичурa привет. Tony в шоке, что ты еще читаешь этот форум)
Вобще маппер конечно зло сам по себе. Но обеспечивает чуть ли не мгновенное передвижение по миру. Основываясь на памяти таких успехов не добьешься). Но минусы тоже кошмрные .. мир не знаешь по названиям клеток почти.

Последний раз редактировалось Tony; 02.03.2011 в 16:29.
Tony вне форума   Ответить с цитированием
Старый 02.03.2011, 16:10   #6
Tony
Новичок
 
Регистрация: 27.12.2005
Сообщений: 48
По умолчанию

Ах да и еще триггер когда вы в группе или следуете за кем то.
Код:
#trig {^Вы поплелись следом за %x (*).} {
$temp = %1
#if (@map_edit = 0) {
#switch ($temp = "на запад") {#move w} ($temp = "на восток") {#move e } ($temp = "на север") {#move n} ($temp = "на юг") {#move s} ($temp = "вверх") {#move u} ($temp = "вниз") {#move d} {#echo какоетоневерноуваснаправление }
} 
{
#switch ($temp = "на запад") {#map w} ($temp = "на восток") {#map e} ($temp = "на север") {#map n} ($temp = "на юг") {#map s} ($temp = "вверх") {#map u} ($temp = "вниз") {#map d} {#echo  какоетоневерноуваснаправление }
}
}
передвигает маркер на карте в том направлении куда вы последовали


позже выложу защиту от случайного ухода в известное карте дт
Tony вне форума   Ответить с цитированием
Ответ


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

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

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


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


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