Скрипты - Страница 100 - Форум HeroesWorld-а

Быстрая навигация по основным разделам форума:
Турниры
КАРТЫ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Герои Меча и Магии 5 - Картостроительство (Редактор карт) В этом разделе можно обсуждать все что касается редактора карт для Heroes of Might and Magic V. Так же здесь обсуждаем картостроительство.

Ответ
Страница 100 из 260
 
Опции темы
#1486
Старый 08.07.2013, 14:32
  #1486
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

ОлегархПогуглил, нашел это:

try
... (block) ...
end

If error occurs in the block, the control immediately jumps to the first statement after END, and
the error will be ignored.

another form,

try
... (block) ...
catch err do
... (handler) ...
end
Это не луа. Работать не будет.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1487
Старый 08.07.2013, 15:04
  #1487
^
Олегарх
 
Аватар для Олегарх
📖
Регистрация: 02.12.2011
Сообщения: 294
Регистрация: 02.12.2011
Сообщения: 294
По умолчанию
Re: Скрипты

хмм, странно, вот ссылка: http://lua-users.org/lists/lua-l/2008-01/msg00650.html
и первая же фраза:
I just wrote a TRY..CATCH extension for Lua, and adapted it into version 5.1.3

тогда, может, сработает pcall?
pcall (f, arg1, ···)
Вызывает функцию f с данными параметрами в защищенном режиме (protected mode). Это значит, что при возникновении любой ошибки внутри функции f она дальше не передается; напротив, pcall перехватывает ошибку и возвращает статус.
__________________
Мои карты:

Town

Готовится:Чума (40%), Сосиска(42%), Война Грааля
Мои карты:

Town

Готовится:Чума (40%), Сосиска(42%), Война Грааля
Олегарх вне форума
Ответить с цитированием
#1488
Старый 08.07.2013, 15:13
  #1488
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Олегарххмм, странно, вот ссылка: http://lua-users.org/lists/lua-l/2008-01/msg00650.html
и первая же фраза:
I just wrote a TRY..CATCH extension for Lua, and adapted it into version 5.1.3

тогда, может, сработает pcall?
pcall (f, arg1, ···)
Вызывает функцию f с данными параметрами в защищенном режиме (protected mode). Это значит, что при возникновении любой ошибки внутри функции f она дальше не передается; напротив, pcall перехватывает ошибку и возвращает статус.
Да, он написал. Но это расширение для языка, а не встроенная конструкция, и оно не для внедрения в игру.
Версия lua в игре не 5.1, а 4.0.
Разработчики убрали почти все встроенные функции.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1489
Старый 08.07.2013, 18:34
  #1489
^
Dyrman
 
Аватар для Dyrman
📖
Регистрация: 24.06.2008
Адрес: Там, где неба кончается край
Сообщения: 3479
Отправить сообщение для  Dyrman с помощью ICQ
Регистрация: 24.06.2008
Адрес: Там, где неба кончается край
Сообщения: 3479
Отправить сообщение для  Dyrman с помощью ICQ
По умолчанию
Re: Скрипты

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

Неужели нет никаких даже обработок исключений хотя бы. Самому чтоле писать))
Dyrman вне форума
Ответить с цитированием
#1490
Старый 08.07.2013, 18:50
  #1490
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

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

Неужели нет никаких даже обработок исключений хотя бы. Самому чтоле писать))
Потоки начинаются и заканчиваются...
Что, надо, чтобы все-все функции работали без ошибок вне зависимости от того, что передать в них в качестве параметров?
Что эти обработки исключений должны делать?
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1491
Старый 08.07.2013, 19:45
  #1491
^
Dyrman
 
Аватар для Dyrman
📖
Регистрация: 24.06.2008
Адрес: Там, где неба кончается край
Сообщения: 3479
Отправить сообщение для  Dyrman с помощью ICQ
Регистрация: 24.06.2008
Адрес: Там, где неба кончается край
Сообщения: 3479
Отправить сообщение для  Dyrman с помощью ICQ
По умолчанию
Re: Скрипты

RedHeavenHeroПотоки начинаются и заканчиваются...
Что, надо, чтобы все-все функции работали без ошибок вне зависимости от того, что передать в них в качестве параметров?
Что эти обработки исключений должны делать?
Для тестовой базы должны быть бесконечные потоки. Совмещение в один поток чревато задержками скрипта и невозможностью выполнять свои функции, плюс высокая возможность убиения скрипта. Разбиение во много потоков чревато задержками самой игры.
Пока есть выход использовать смешанную систему: часть последовательно, часть параллельно, но при стремлении системы к бесконечности, задержка вырастет. Самым оптимальным решением как раз бы оказались пропуски тех функций, которые дают сбои. Как ни странно, даже сбойная функция может послужить во благо.
В одиночной игре это все не так критично, но в сетевой(не хот сит) это полный абзац! )

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

Добавлено через 5 минут
Придётся выбрать просто обычную оптимальную систему, в которой уже наверняка исключены ошибки(стековую), но и создать и вторую среду для тестирования(распараллеленную).
Протестирую - погляжу.

Добавлено через 8 минут
Максимальное количество действующих героев на одной карте - 127. Это на самом деле и будет лимит "бесконечности". Но 127 одновременных бесконечных потоков - жесть!
Dyrman вне форума
Ответить с цитированием
#1492
Старый 09.07.2013, 11:20
  #1492
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Но других способов обойти ошибку, кроме как использовать startThread, вроде бы и нет.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1493
Старый 09.07.2013, 11:23
  #1493
^
Dyrman
 
Аватар для Dyrman
📖
Регистрация: 24.06.2008
Адрес: Там, где неба кончается край
Сообщения: 3479
Отправить сообщение для  Dyrman с помощью ICQ
Регистрация: 24.06.2008
Адрес: Там, где неба кончается край
Сообщения: 3479
Отправить сообщение для  Dyrman с помощью ICQ
По умолчанию
Re: Скрипты

RedHeavenHeroНо других способов обойти ошибку, кроме как использовать startThread, вроде бы и нет.
Плохо
Кстати, я твоего Хафада переделаю: сделаю чтобы на героев его абилка тоже действовала, даже если те сидят в городе.
Можешь, конечно, и сам сделать) Нужна будет только одна функция без триггеров и принудительных соприкосновений.
Dyrman вне форума
Ответить с цитированием
#1494
Старый 09.07.2013, 14:24
  #1494
^
Олегарх
 
Аватар для Олегарх
📖
Регистрация: 02.12.2011
Сообщения: 294
Регистрация: 02.12.2011
Сообщения: 294
По умолчанию
Re: Скрипты

DyrmanПлохо
Кстати, я твоего Хафада переделаю: сделаю чтобы на героев его абилка тоже действовала, даже если те сидят в городе.
Можешь, конечно, и сам сделать) Нужна будет только одна функция без триггеров и принудительных соприкосновений.
Может, подойдет errorHook?
void errorHook( fCallback )

Позволяет установить перехватчик ошибки. По умолчанию при возникновении ошибки скрипта текущий поток завершает свою работу. Благодаря данной функции у Вас есть возможность откорректировать это поведение – перед остановом управление будет передано функции fCallback
Нашел у Новика. Если это не поможет-тогда больше вариантов нет)
__________________
Мои карты:

Town

Готовится:Чума (40%), Сосиска(42%), Война Грааля
Мои карты:

Town

Готовится:Чума (40%), Сосиска(42%), Война Грааля
Олегарх вне форума
Ответить с цитированием
#1495
Старый 09.07.2013, 18:36
  #1495
^
Dyrman
 
Аватар для Dyrman
📖
Регистрация: 24.06.2008
Адрес: Там, где неба кончается край
Сообщения: 3479
Отправить сообщение для  Dyrman с помощью ICQ
Регистрация: 24.06.2008
Адрес: Там, где неба кончается край
Сообщения: 3479
Отправить сообщение для  Dyrman с помощью ICQ
По умолчанию
Re: Скрипты

RedHeavenHeroНа героев не слишком ли мощно будет? Там всё-таки чума убивает довольно большой процент всего количества.
Будет убивать меньше

Добавлено через 59 секунд
ОлегархМожет, подойдет errorHook?
void errorHook( fCallback )

Позволяет установить перехватчик ошибки. По умолчанию при возникновении ошибки скрипта текущий поток завершает свою работу. Благодаря данной функции у Вас есть возможность откорректировать это поведение – перед остановом управление будет передано функции fCallback
Нашел у Новика. Если это не поможет-тогда больше вариантов нет)
Это не то.
Dyrman вне форума
Ответить с цитированием
#1496
Старый 10.07.2013, 00:01
  #1496
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
По умолчанию
Re: Скрипты

	< HeroesPool >
				< Count >1< /Count >
				< Heroes >
					< Item >
						< HeroScriptName >RedHeavenHero01< /HeroScriptName >
						< TargetCampaign/ >
						< TargetMission >1< /TargetMission >
					< /Item >
				< /Heroes >
			< /HeroesPool >

В первом миссии и во второй меняется только число около target mission. Копировал, вроде, с файла разработчиков, c небольшими изменениями. Однако, герой в следующую миссию с недавнего времени переходить перестал. Не могу понять, в чем дело...
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#1497
Старый 11.07.2013, 19:28
  #1497
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
По умолчанию
Re: Скрипты

Так, ладно, а как быть с ф-ией

AllowPlayerTavernRace ?

Мне нужно, чтобы в городах под руководством игрока 1 вообще никогда не появлялись герои-некроманты, маги, орки и тэльфы. Вроде, по описанию, ф-ия подходит, но только при попытке её написать скрипт ругается на nil в третьем параметре, хотя я ума не приложу, в мануале написано true/nil ....
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#1498
Старый 11.07.2013, 21:47
  #1498
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Третий параметр должен быть 0.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1499
Старый 11.07.2013, 22:07
  #1499
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
По умолчанию
Re: Скрипты

ааа. (В мануале, однако, четко написано nil) Благодарю.
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#1500
Старый 11.07.2013, 23:41
  #1500
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Heroist
	< HeroesPool >
				< Count >1< /Count >
				< Heroes >
					< Item >
						< HeroScriptName >RedHeavenHero01< /HeroScriptName >
						< TargetCampaign/ >
						< TargetMission >1< /TargetMission >
					< /Item >
				< /Heroes >
			< /HeroesPool >

В первом миссии и во второй меняется только число около target mission. Копировал, вроде, с файла разработчиков, c небольшими изменениями. Однако, герой в следующую миссию с недавнего времени переходить перестал. Не могу понять, в чем дело...
Как я понимаю, данный кусок сохраняет героев, имена которых указаны в pool, какими они были в этой миссии на конец игры. М.б. использовал @Win() и герой остался первого уровня, поэтому и перешел в следующую миссию ни с чем.
TargetMission должен быть равен текущей миссии.
Можно попробовать написать в TargetCampaign имя файла кампании.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
Ответ
Страница 100 из 260


Опции темы



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


vBulletin v3.5.0, Copyright ©2000-2024, Jelsoft Enterprises Ltd. (Русский)

Яндекс цитирование    Top.Mail.Ru