IPB

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

2 страниц V   1 2 >  
Reply to this topicStart new topic
> ERM-->LUA
dik X.B.
сообщение 30 Oct 2010, 06:58
Сообщение #1

Choziain Veteras
Сообщений: 348
Спасибо сказали: 180 раз




Не знал где открыть тему, но инфа вроде интересная.

http://heroescommunity.com/viewthread.php3?TID=33943


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Berserker
сообщение 30 Oct 2010, 13:29
Сообщение #2

Immortal
Сообщений: 1 468
Спасибо сказали: 1153 раза




Ну вот и на этом поле у вогтим поражение.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
dik X.B.
сообщение 30 Oct 2010, 16:54
Сообщение #3

Choziain Veteras
Сообщений: 348
Спасибо сказали: 180 раз




Похоже, что да.
Go to the top of the pageAdd Nick
 
+Quote Post
hippocamus
сообщение 30 Oct 2010, 22:47
Сообщение #4

допустим, мяў
Сообщений: 24 131
Спасибо сказали: 13444 раза




Берс, это имхо детский конструктор для начинающих скриптёров. Они же пишут, что охват триггеров 90% и ресиверов 40%. То есть, при имеющейся беспомощности ERM вообще, этот эмулятор и того не может...


--------------------
Вокруг столько фильмов, книг, музыки - а природа какая невероятная!
Если тебе скучно жить - ты совсем дурак. (Татьяна Черниговская)
Go to the top of the pageAdd Nick
 
+Quote Post
Berserker
сообщение 30 Oct 2010, 23:25
Сообщение #5

Immortal
Сообщений: 1 468
Спасибо сказали: 1153 раза




Цитата
о есть, при имеющейся беспомощности ERM вообще, этот эмулятор и того не может...

При имеющейся силе ЕРМ, превосходящей Луа в Героях 5 по выразительности (читать: возможностям), автор сможет дописать переходники к остальным триггерам и командам. Это не сложно, просто рутинно. Я предложил другую модель реализации на форуме, в десятки, если не сотни раз быстрее.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
Etoprostoya
сообщение 30 Oct 2010, 23:32
Сообщение #6

Etoslozhnostatus
Сообщений: 8 681
Спасибо сказали: 16216 раз




Цитата(Berserker @ 31 Oct 2010, 00:25) *
Я предложил другую модель реализации на форуме, в десятки, если не сотни раз быстрее.

Имеешь в виду, писать скрипты на высокоуровневом языке, обрабатываемом потом PHP?


--------------------
- Да ну!?
- Horn of the Argali гну!
Go to the top of the pageAdd Nick
 
+Quote Post
feanor
сообщение 31 Oct 2010, 00:11
Сообщение #7

laughed as one fey
Сообщений: 12 167
Спасибо сказали: 20605 раз




Не, делать перехват триггеров не механикой "хуки вога - ерм - ангел.длл - луа.длл", а напрямую. Ну и ресиверы исполнять через нативный код.
Go to the top of the pageAdd Nick
 
+Quote Post
hippocamus
сообщение 31 Oct 2010, 00:46
Сообщение #8

допустим, мяў
Сообщений: 24 131
Спасибо сказали: 13444 раза




Цитата(Berserker @ 30 Oct 2010, 23:25) *
Цитата
о есть, при имеющейся беспомощности ERM вообще, этот эмулятор и того не может...

При имеющейся силе ЕРМ, превосходящей Луа в Героях 5 по выразительности (читать: возможностям),

Сила ERM?
Напиши на ERM скрипт, воскрешающий последний убитый отряд!
Напиши на ERM скрипт, сажающий героя в лодку!
Напиши на ERM скрипт, закрывающий карту-загадку!
Напиши на ERM скрипт, обеспечивающий диалог герой-герой, или открывающий окно определённого города!
Напиши на ERM скрипт, обеспечивающий посещение героем объекта без подтверждения!
Напиши на ERM скрипт, ставящий на карту тюрьму!
Не пиши про UN:C, с помощью UN:C можно всё, но всё это аналогично бинарной правке экзешника. C помощью UN:C можно написать геройский вирус.

Слабо? Разве это не есть то, чего мы ждём от ЛУА - нормальной работы со всеми объектами, без исключений?


--------------------
Вокруг столько фильмов, книг, музыки - а природа какая невероятная!
Если тебе скучно жить - ты совсем дурак. (Татьяна Черниговская)
Go to the top of the pageAdd Nick
 
+Quote Post
feanor
сообщение 31 Oct 2010, 01:48
Сообщение #9

laughed as one fey
Сообщений: 12 167
Спасибо сказали: 20605 раз




Нет. От луа я жду нормальных именованных переменных, нормального синтаксиса и нормальной структуры программы. Ну и интерфейса для низкого уровня, да. А все функции реализовать всё равно невозможно.
Go to the top of the pageAdd Nick
 
+Quote Post
packa
сообщение 31 Oct 2010, 08:43
Сообщение #10

Immortal
Сообщений: 3 301
Спасибо сказали: 2643 раза




Я не понял что это штука делает, но

Ограничения снимает эта штуковина или нет (127 лвл, 10 городов, 255 юнитов)


--------------------
Удалено Администрацией. Браузеры жаловались на вредоносное ПО.
Ссылка на оригинальное изображение: http://herоeslibrary.nеt/Site_images/admin.jpg
Ссылка на сайт по нажатию баннера: http://herоeslibrary.nеt

(ссылки содержат кириллические символы вместо оригинальных)

Видишь бяку, - упрости! (с) кто-то из выдающихся математиков)
Учи матан & Сходи с ума (с) архидедус
Go to the top of the pageAdd Nick
 
+Quote Post
Vizit0r
сообщение 31 Oct 2010, 09:48
Сообщение #11

Immortal
Сообщений: 1 437
Спасибо сказали: 2149 раз




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


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Berserker
сообщение 31 Oct 2010, 13:47
Сообщение #12

Immortal
Сообщений: 1 468
Спасибо сказали: 1153 раза




Цитата
Сила ERM?
Напиши на ERM скрипт, воскрешающий последний убитый отряд!
Напиши на ERM скрипт, сажающий героя в лодку!
Напиши на ERM скрипт, закрывающий карту-загадку!
Напиши на ERM скрипт, обеспечивающий диалог герой-герой, или открывающий окно определённого города!
Напиши на ERM скрипт, обеспечивающий посещение героем объекта без подтверждения!
Напиши на ERM скрипт, ставящий на карту тюрьму!
Не пиши про UN:C, с помощью UN:C можно всё, но всё это аналогично бинарной правке экзешника. C помощью UN:C можно написать геройский вирус.

Слабо? Разве это не есть то, чего мы ждём от ЛУА - нормальной работы со всеми объектами, без исключений?

По твоим меркам все Герои должны быть написаны на ЕРМ. Иначе нельзя из ЕРМ управлять каждой возможностью игры. Достаточно того, что функционал позволяет реализовывать целые карты-миры-моды с абсолютно другой механикой, чего не сделать ни в четвёрке, ни в пятёрке. А Луа не панацея. Точно также нужно выполнять обратный реинжиниринг кода и писать переходники/функции для реализации нужных фич.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
hippocamus
сообщение 31 Oct 2010, 20:22
Сообщение #13

допустим, мяў
Сообщений: 24 131
Спасибо сказали: 13444 раза




Понятно. Я не знаю Луа, предполагал, что это си-подобный язык, дающий нам работу напрямую с классами. Примерно так (пишу на Делфи):

Код
if Heroes[I].Owner in Alliances[0] then
  begin
     Inc(Heroes[I].PrimarySkills[psSpellPower], 10);
     Heroes[I].DirectVisit(GetObject(0, 14, 52));
  end
else Heroes[I].ActiveSpells := Heroes[I].ActiveSpells or [spVisions];


--------------------
Вокруг столько фильмов, книг, музыки - а природа какая невероятная!
Если тебе скучно жить - ты совсем дурак. (Татьяна Черниговская)
Go to the top of the pageAdd Nick
 
+Quote Post
feanor
сообщение 31 Oct 2010, 20:24
Сообщение #14

laughed as one fey
Сообщений: 12 167
Спасибо сказали: 20605 раз




Для этого классы надо расковырять.
А если они будут все разобраны - проще будет написать SDK для внешних DLL. Или вообще клон героев.
Go to the top of the pageAdd Nick
 
+Quote Post
Айвен
сообщение 01 Nov 2010, 09:35
Сообщение #15

Advanced Member
Сообщений: 108
Спасибо сказали: 65 раз




Цитата
Понятно. Я не знаю Луа

Понятно. Информацией не владеем, а громкие заявления и решительные суждения выносим. Ну-ну. Типично.


--------------------
Голову долой, супостаты гнилородные!
Go to the top of the pageAdd Nick
 
+Quote Post
Berserker
сообщение 01 Nov 2010, 14:13
Сообщение #16

Immortal
Сообщений: 1 468
Спасибо сказали: 1153 раза




hippocamus, есть делфи - пиши на нём, а ЕРМ команды вызывать функцией. Вот тебе и предполагаемый язык. Единственный недостаток - исходников не видно и не сохраняется в сейве.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
tolich
сообщение 01 Nov 2010, 14:30
Сообщение #17

😸🧡✊✌️
Сообщений: 16 496
Спасибо сказали: 3404 раза




А зачем вызывать ERM-команды?


--------------------
Я слежу за тобой!
* tolic.narod.ru

Цитата
Всегда приятно осознавать, что кто-то делает что-то хуже, чем делал бы ты, если бы умел.
Борис "Бонус" Репетур, "От винта!", выпуск 38.
Go to the top of the pageAdd Nick
 
+Quote Post
feanor
сообщение 01 Nov 2010, 15:17
Сообщение #18

laughed as one fey
Сообщений: 12 167
Спасибо сказали: 20605 раз




Потому что искать родные функции иногда напрягает.
Go to the top of the pageAdd Nick
 
+Quote Post
Berserker
сообщение 01 Nov 2010, 17:58
Сообщение #19

Immortal
Сообщений: 1 468
Спасибо сказали: 1153 раза




Потому что тысячи строк кода уже написаны в ЕРМ. Делать повторную работу = делать базу для замены ЕРМ. А от этого уже все отказались по понятным причинам. Собираюсь сделать плагин, реализующий описанный мною на HC метод. А там уж дело за модерами. Кто-то Луа, кто-то ЯП в DLL использует.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
Berserker
сообщение 01 Nov 2010, 21:35
Сообщение #20

Immortal
Сообщений: 1 468
Спасибо сказали: 1153 раза




Готово.
http://heroescommunity.com/viewthread.php3...mp;pagenumber=1
http://wogarchive.ru/category.php?id=9


--------------------


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Etoprostoya
сообщение 01 Nov 2010, 21:49
Сообщение #21

Etoslozhnostatus
Сообщений: 8 681
Спасибо сказали: 16216 раз




Berserker, можно поподробнее, что к чему?


--------------------
- Да ну!?
- Horn of the Argali гну!
Go to the top of the pageAdd Nick
 
+Quote Post
feanor
сообщение 01 Nov 2010, 22:29
Сообщение #22

laughed as one fey
Сообщений: 12 167
Спасибо сказали: 20605 раз




На НС глянь, там вроде понятней.
Вроде как надо сначала создать "библиотеку" ERM-команд, которые нужно исполнять из длл.
Выглядеть она должна примерно так:
Код
!?FU40741;
!!ER:M^Needful erm receiver 1^;
!!ER:M^Needful erm receiver 2^;

Потом вызвать функции длл примерно так:
SetErmExecTrigger(40741);
ExecErmCmdByInd(1);


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
Berserker
сообщение 02 Nov 2010, 00:02
Сообщение #23

Immortal
Сообщений: 1 468
Спасибо сказали: 1153 раза




Да, в таком ключе.
Код
!?FU70000;
!!HEv1:K; №0 убить героя с номером v1
!!HEv1:Ov2; №1 установить герою v1 хозяина v2


SetErmExecTrigger(70000);
v1:=0; // Orrin
ExecErmCmdByInd(0); выполнить 0-ую команду триггера
v1:=1;
v2:=RED;
ExecErmCmdByInd(1); выполнить 1-ую команду триггера


Переходники для Луа в итоге пишутся не сложно. Рутинно, конечно, из-за кол-ва ЕРМ команд и необходимости различать GET/SET синтаксис.
И такой подход по быстродействию много предпочтительнее, чем выбрал GrayFace - натравливание объёмной процедуры FindErm на маленький кусочек текста, его анализ и динамическое выполнение. Хотя в таком случае можно выполнять команды любые, даже динамически сгенерированные.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post

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

 



Текстовая версия Сейчас: 23 December 2025 - 07:12
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика