IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Reply to this topicStart new topic
> Hameleon, Hameleon - комментарий от разработчика
kealon
сообщение 20 Jan 2009, 08:30
Сообщение #1

Newbie
Сообщений: 3
Спасибо сказали: 0 раз




На форуме был тестинг клиента от Aldaran

[quote=Aldaran,01 Jun 2008, 22:48]Глянул клиент Hameleon... Выглядит довольно приятно, но как оказалось овчинка выделки не стоит:

НЕ ПОНРАВИЛОСЬ:
1) Нет меню насройки мад-клиента, точнее настройки разделителя команд CommandDelimiter, настройки контроля на введенный символ char, настроек расположения курсора, после посылки команды, очистка последнего слова в строке ввода, очистка всех слов, кроме первого и т.д. Нет возможности заменять при записи нового лога старый, в jmc лог можно буквально сохранять с любым именем, тут или *.htm или *.txt, нельзя писать лог типа RMA, для проигрывании его на rma-плеере...
2) Нет меню настройки подцветок highlight.
3) Нет команды #antisubstitute
4) Кнопка клавиши ESС не работает, как очистка строки ввода.
5) Не работает отображение ansi цветов в маде. Пример:
  1mОбщий зал таверны.
  mВыходы: юг.
  (1;33m*36mВолшебное33m*)1;33mДоска объЯвлений(board) - тут вы можете    оставить ваше сообщение.
  31mКамин(fireplace) Ярко пылает, согреваЯ все вокруг.
  35mБрыльский лекарь(healer) отдыхает у огнЯ, готовый помочь пострадавшим.
  1;30mI.. 1;33m1069/1;30m2018 36m309/309 559/559 0 1;30m-ночь- 1mЮ -

6) Команды #stat1/#stat2 - работают только как полоса состаяния для процентной визуализации числовых параметров.
7) Команды #add - работает только для сложения, #sub - только для вычитания. Команда в jmc #math - более практичная, и используется для разных целей: вычитания, сложения, умножения и т.д.
8) При запуске скрипта, #script {Язык} {имя файла} - Нет возможности запускать скрипт по названию. Новый скрипт - новое имя файла.
9) Использование в hotkey кодов клавиш клавиатуры #hotkey {код} {команда}, а не так как сделано в jmc, #hotkey {группа клавиш/клавиша} {команда}.
10) Не работают сокращенные команды, например, если напишешь #act вместо #action, напишет Неизвестная команда #act и т.д.


ПОНРАВИЛОСЬ:
1) Поддержка разных языков скриптов, #script {Язык} {имя файла}, например: #script VBScript d.vbs.
2) Команда #add$, работает #add$ {$переменная} {значение}, добавляет  к переменной $переменная значение, например:
если $переменная равна 100r, то после команды #add$ $переменная 5, изменит значение переменной  $переменная на 100r5.
Команда #percent, используется как #percent $переменная числит знам, заносит в переменную $переменная округленное значения (100*числит/знам)
Команда #ontick {команда, которая выполнится при обнулении счетчика таймера}
#onconnect {команда, которая выполнится в начале соединения с сервером}
#ondisconnect {команда, которая выполнится при разрыве соединения с сервером}
3) Возможность использования массивов (команды #ar/#unar/#for/#sort) и множеств (#set/#sort), например:
  #set d {0123456789}
  #action {Ты получаешь %d опыта.} {гг %d опыта получил}
4) Можно сделать панель кнопок, правда всего одну, на правой или левой стороне, ну а кнопок сколько угодно, можно с помощью команды сделать выделение кнопки.
#selbutton {button№} 0/1 - 1 выделенна, 0 не выделнна
#button {button№} {координаты кнопки} {имя кнопки} {команда}
#delbutton {button№}
5) В меню Вид есть кнопка сброса буфера экрана, да и размер буфера строки меет 900000.
6) Есть возможность менять цвет команд и командных сообщений.
7) Различные вариаты команд сравнения, правда команда #if или #scri if() не плохо рабоют и так.
8) Есть возможность ввода пароля в специальном окне, то есть при команде #pasw появляется окно ввода пароля персонажа.
9) При двойном нажатие стрелок вверх или вниз происходит выделение строки ввода.

JMC остается одним из лучших простых в пользование клиентов, возможно со временем, благодаря Вам, что-то новое появится и у нас.
[/quote]


Добавлено ([mergetime]1232428914[/mergetime]):
по поводу
НЕ ПОНРАВИЛОСЬ:
[quote]1) Нет меню насройки мад-клиента, точнее настройки разделителя команд CommandDelimiter, настройки контроля на введенный символ char, настроек расположения курсора, после посылки команды, очистка последнего слова в строке ввода, очистка всех слов, кроме первого и т.д. Нет возможности заменять при записи нового лога старый, в jmc лог можно буквально сохранять с любым именем, тут или *.htm или *.txt, нельзя писать лог типа RMA, для проигрывании его на rma-плеере...
[/quote]
одной из основных фич клиента был антихакинг на тригерах, т.е. кто то кричал и пр. и через разделитель указывал вредоносные для игрока команды, в переменные тригера попадает значение с особым кодом перед символом разделителя, который вводит его как команду, так что данная опция вроде как не нужна, по этому и не включена

[quote]2) Нет меню настройки подцветок highlight.[/quote]
есть, это делается обычными заменами Опции\Замены
[quote]3) Нет команды #antisubstitute[/quote]
случайно в хелпе эта команда выпала значительно ниже команды #substitute
она называется #unsub
[quote]4) Кнопка клавиши ESС не работает, как очистка строки ввода.[/quote]
в опциях появилась два режима, стирать строку (как в JMC)или нет после ввода (как в ZMUD)

[quote]5) Не работает отображение ansi цветов в маде. Пример:
  1mОбщий зал таверны.
  mВыходы: юг.
  (1;33m*36mВолшебное33m*)1;33mДоска объЯвлений(board) - тут вы можете    оставить ваше сообщение.
  31mКамин(fireplace) Ярко пылает, согреваЯ все вокруг.
  35mБрыльский лекарь(healer) отдыхает у огнЯ, готовый помочь пострадавшим.
  1;30mI.. 1;33m1069/1;30m2018 36m309/309 559/559 0 1;30m-ночь- 1mЮ -
[/quote]
клиент был заточен под конкретный мад и тестился на нём (конкретно Аладон), в текущей версии это можно решить через #substitute или исправить в исходниках клиента Options.pas в инициализации

[quote]6) Команды #stat1/#stat2 - работают только как полоса состаяния для процентной визуализации числовых параметров.[/quote]
[quote]7) Команды #add - работает только для сложения, #sub - только для вычитания. Команда в jmc #math - более практичная, и используется для разных целей: вычитания, сложения, умножения и т.д.[/quote]
я не старался сделать какой то особо мощный парсер выражений, потому ограничился буквально ассемблерными командами, для более мощных вычислений лучше использовать скриптовые языки

[quote]8) При запуске скрипта, #script {Язык} {имя файла} - Нет возможности запускать скрипт по названию. Новый скрипт - новое имя файла.[/quote]
не совсем понял что имелось ввиду
[quote]9) Использование в hotkey кодов клавиш клавиатуры #hotkey {код} {команда}, а не так как сделано в jmc, #hotkey {группа клавиш/клавиша} {команда}.[/quote]
слишком много кода включается на такую организацию хоткеев, а клиент я старался сделать очень маленьким
[quote]10) Не работают сокращенные команды, например, если напишешь #act вместо #action, напишет Неизвестная команда #act и т.д.[/quote]
(так же и регистр влияет) это есть, но это сильно упрощает разбор

основной адресс клиента, там же можно найти и исходники, в них я постарался собрать всё нужное для компиляции(даже компилятор, мейкать Make.bat)


Добавлено ([mergetime]1232429428[/mergetime]):
по поводу

ПОНРАВИЛОСЬ:
[quote]1) Поддержка разных языков скриптов, #script {Язык} {имя файла}, например: #script VBScript d.vbs. [/quote]
к сожалению нормально работает только с VBScript, предположительно JavaScript пытается прочитать библиотеку типов, которой нет

[quote]5) В меню Вид есть кнопка сброса буфера экрана, да и размер буфера строки меет 900000.
[/quote]
буфер циклический, так что его размер не влияет на скорость работы

9) При двойном нажатие стрелок вверх или вниз происходит выделение строки ввода.

собственно преследовалось не это, стрелки вверх-вниз используются для поиска введённых до этого команд (точно так же как и в JMC), если строка не находится то происходит выделение уже введённой строки
Go to the top of the pageAdd Nick
 
+Quote Post
kealon
сообщение 20 Jan 2009, 09:11
Сообщение #2

Newbie
Сообщений: 3
Спасибо сказали: 0 раз




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

я полагаю основным для чего его можно использовать это для содания мапера, через исполнимую COM-библиотеку

для обхода необходимой регистрации библиотеки можно использовать манифесты

я думаю это основное для легкопереносимой программы, так называемой "для флэшки"

пример манифеста, он должен лежать в директории программы
Код
Hameleon.exe.manifest
<?xml version="1.0"?>
<assembly
 xmlns="urn:schemas-microsoft-com:asm.v1"
 manifestVersion="1.0">
<assemblyIdentity
   name="Hameleon"
   processorArchitecture="x86"
   version="5.1.0.0"
   type="win32"/>
<description>Windows Shell</description>
<dependency>
   <dependentAssembly>
       <assemblyIdentity
           type="win32"
           name="Microsoft.Windows.Common-Controls"
           version="6.0.0.0"
           processorArchitecture="x86"
           publicKeyToken="6595b64144ccf1df"
           language="*"
       />
   </dependentAssembly>
</dependency>
<file name="maper.dll">
       <comClass  
           progid="maper.app"
           clsid="{32A05F55-05EA-470D-A9DF-D24F64F3E9CD}"
           threadingModel="Both"
       />

</file>
</assembly>


Так же тестинг программы проводился под вайном (спасибо Терин-у, у меня такой возможности не было) - работает

Проводился сравнительный тестинг с JMC по скорости обработки
(ставился простой прокси и записывалось в файл всё приходящее с сервера, потом программа выдавала содержимое этого файла для подключающихся к ней клиентов)
программа тестинга (51 кб)
Go to the top of the pageAdd Nick
 
+Quote Post
Aldaran
сообщение 23 Aug 2009, 18:46 (Сообщение отредактировал Aldaran - 24 Aug 2009, 22:36)
Сообщение #3

Newbie
Сообщений: 35
Спасибо сказали: 0 раз




Здравствуйте.
Давно хотел отписаться, правда то было лень, то времени не хватало.

Цитата
QUOTE
1) Нет меню насройки мад-клиента, точнее настройки разделителя команд CommandDelimiter, настройки контроля на введенный символ char, настроек расположения курсора, после посылки команды, очистка последнего слова в строке ввода, очистка всех слов, кроме первого и т.д. Нет возможности заменять при записи нового лога старый, в jmc лог можно буквально сохранять с любым именем, тут или *.htm или *.txt, нельзя писать лог типа RMA, для проигрывании его на rma-плеере...

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

Есть такое дело, мало кто в jmc пользуется этим, главное что есть возможность отправки нескольких команд в мад использую стандартный разделитель ";".

Цитата
QUOTE
2) Нет меню настройки подцветок highlight.
есть, это делается обычными заменами Опции\Замены

Не очень удобно использовать, я бы начал говорить о том что в jmc можно поставить на изменение цвета переменную #highlight {yellow,b charcoal} {$aim}, но тут не ручаюсь, извините, в Hameleon'е не проверял, может и есть...

Цитата
QUOTE
3) Нет команды #antisubstitute

случайно в хелпе эта команда выпала значительно ниже команды #substitute
она называется #unsub

В jmc есть 3 команды: #substitute - добавление замены, #antisubstitute - запрет на замену определенного слова/строки, #unsubstitute - удаление замены.

Цитата
QUOTE
4) Кнопка клавиши ESС не работает, как очистка строки ввода.

в опциях появилась два режима, стирать строку (как в JMC)или нет после ввода (как в ZMUD)

Не совсем то имелось ввиду, в jmc так же есть возможность выбора, "Стирать строку ввода после нажатия Enter" или нет. Тут именно очищение страки ввода при нажатие клавиши "Esc", то есть если что-то ненужное уже есть в строке ввода, не пришлось стирать с помощью "Backspaсe".

Цитата
QUOTE
8) При запуске скрипта, #script {Язык} {имя файла} - Нет возможности запускать скрипт по названию. Новый скрипт - новое имя файла.

не совсем понял что имелось ввиду

Пример в jmc:

1) Загружаются файлы (по контексту) так:

#use base.scr
#use questlive.scr
#use weapondisarm.scr

2) В каждом файле может иметься по несколько скриптов начинающиеся с "function ..."

function ShowFile(item){

var FileSystem = new ActiveXObject("Scripting.FileSystemObject");
var eqbase=FileSystem.OpenTextFile("base/"+item+".txt",1);

jmc.ShowMe("");
while (!eqbase.AtEndOfStream)
{
str=eqbase.ReadLine();
jmc.ShowMe(str);
}
jmc.ShowMe("-----");
jmc.ShowMe("");
eqbase.Close();
}

3) Запуск скрипта в мад клиенте: #scr act_corpse("%1","%0")...

Цитата
QUOTE
5) В меню Вид есть кнопка сброса буфера экрана, да и размер буфера строки меет 900000.

буфер циклический, так что его размер не влияет на скорость работы

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


Могу сказать, что если продолжите исправлять баги, дописывать что-то, то получится не плохой мад клиент.
Удачи!


--------------------
КРОВЬ! СМЕРТЬ! СОТОНА!

http://www.arda.pp.ru/
Go to the top of the pageAdd Nick
 
+Quote Post
kealon
сообщение 04 Dec 2009, 07:31
Сообщение #4

Newbie
Сообщений: 3
Спасибо сказали: 0 раз




#highlight {yellow,b charcoal} {$aim}
не совсем понял что эта команда делает

#antisubstitute - как бы исходил из простого - либо есть, либо нет

Цитата
1) Загружаются файлы (по контексту) так:
#use base.scr
#use questlive.scr
#use weapondisarm.scr


к сожалению только один файл,
#script {Язык} {имя файла}
, но начало с function необязательно, скрипт вообще может даже не содержать функций

любую функции скрипта можно вызвать из клиента
#run {текст кода}
вызывает текст кода на выполнение
#run {метод} {param1} {param2} ...
вызывает метод кода на выполнение с указанными параметрами

в скрипте можно использоват объект mud
у нeго всего один метод send с переменным числом параметров,
его действие аналогично отправке текста из строки ввода

например процедуру ShowMe в скрипте можно написать так

sub ShowMe (str)

mud.send "#show {",str,"}"

end sub
Go to the top of the pageAdd Nick
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29 March 2024 - 00:05
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика