[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: Jery  
Форум » Knights and Merchants: Remake » Идеи и предложения » Скрипты
Скрипты
GamerusДата: Вторник, 05.02.2013, 21:52 | Сообщение # 16
Ополченец
Группа: Проверенные
Сообщений: 27
Награды: 0
Репутация: 0
Статус: Offline
Что ж, подождём...
 
andreusДата: Среда, 06.02.2013, 20:25 | Сообщение # 17
Sir James Vagabond
Группа: Администраторы
Сообщений: 3876
Награды: 21
Репутация: 391
Статус: Offline
Кром, а можно мне оценить возможности скриптов на деле? (я про тестовый скриптовый r456*)

 
KromДата: Среда, 06.02.2013, 20:55 | Сообщение # 18
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
andreus, мы не планировали делать бета-версию скриптов, но если напишешь на то вышлю тебе архив.

Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
 
andreusДата: Среда, 06.02.2013, 22:37 | Сообщение # 19
Sir James Vagabond
Группа: Администраторы
Сообщений: 3876
Награды: 21
Репутация: 391
Статус: Offline
Очень порадовала одна штука - if States.blablabla then Actions.GiveGroup, возможности которой по ходу безграничны)) Можно замутить неожиданные засады, подкрепления, атаки в тыл...

Krom: удалил даблпост, в следующий раз советую редактировать старый пост ;)


 
GamerusДата: Четверг, 07.02.2013, 13:18 | Сообщение # 20
Ополченец
Группа: Проверенные
Сообщений: 27
Награды: 0
Репутация: 0
Статус: Offline
Вопрос по написанию сообщений в миссии. Лично мне приходится заниматься эквилибристикой, чтоб создать новое. Если файлы *.evt ещё и правятся блокнотом, то в дальнейшем приходится пользоваться встроенным транслятором, чтоб выправить *.rus.libx . Ещё одно - для правильной работы в папке помимо указанных файлов обязательно должен присутствовать ещё и оптимизированный *.eng.libx , а почему и зачем?
 Ах да, вопрос - может подскажите средство чтоб не заморачиваться, делая новое сообщение?
 
KromДата: Четверг, 07.02.2013, 13:30 | Сообщение # 21
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
EVT более не работают, мы их полностью уберем. Это был прототип который нас кое-чему научил и послужил шагом к тем скриптам которые мы можем делать сейчас.

.rus.libx и .eng.libx это версии строк для разных локалей, в идеале картоделу стоит написать сообщения на всех языках, но это малореально. Поэтому работает система приоритетов. Если есть родной язык, то берется он. Если родного нет, то берется английский. (у некоторый языков есть еще уровень, когда берется по наличию похожий язык, например Словацкий и Чешский). Соответственно, тебе надо делать сообщения на англ и на русском.

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

Также, это бета-версия и почти наверняка что-то поменяется к релиз-кандидату и к релизу, так что не советую строить ажурную конструкцию скрипта на 20кб чтобы выяснить что она не будет работать в релизе по неясным причинам (если мы поменям формат функции напрмиер, хотя вывод ошибок поможет это найти и исправить). Это просто ознакомительная версия )


Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
 
JeryДата: Четверг, 07.02.2013, 13:47 | Сообщение # 22
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
SVN стянет бету?

«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)
 
andreusДата: Четверг, 07.02.2013, 14:08 | Сообщение # 23
Sir James Vagabond
Группа: Администраторы
Сообщений: 3876
Награды: 21
Репутация: 391
Статус: Offline
Потестил добавление товаров в склад, добавление войск, юнитов; сообщения - все работает отлично! wink
Решил открыть кусочек карты - не получилось...

команды типа

procedure OnTick;
begin
if States.GameTime = 400 then Actions.RevealCircle(0, 10, 10, 10);
end;

игнорируются, при этом выдается сообщение о том, что такая команда Ремейку неизвестна)

В Вики по скриптам напротив RevealCircle стоит плюсик, при том уже давно.

В чем ошибка? И работает ли "открывашка" вообще?))

+ При редактировании позиций защиты выскакивает вот что:


 
GamerusДата: Четверг, 07.02.2013, 16:03 | Сообщение # 24
Ополченец
Группа: Проверенные
Сообщений: 27
Награды: 0
Репутация: 0
Статус: Offline
Krom, с форматом в *.evt , *.libx всё ОК, правлю текст блокнотом на русском языке, англ. - на английском, запускаю тест - в назначенное время выходит сообщение, но об ошибке и нечитаемом стринге, прогоняю файлы через транслятор (написанного ранее нет и в помине, не видно) опять впечатываю текст на русском и англ. - заработало! Может - это только у меня такая беда? Вообще - а по-проще сделать нельзя? Зачем кодить обычный текст?
 
JeryДата: Четверг, 07.02.2013, 16:31 | Сообщение # 25
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
Пара комментариев по поводу новых скриптов:

Код
OnUnitLost` || Occurs when player loses a unit (including starvation) || aIndex: Integer; //Index of player who lost it <br> aUnitType: Integer; //Type of unit that was lost ||             
OnUnitKilled` || Occurs when player kills a unit || aIndex: Integer; //Index of player who lost it <br> aKillerIndex: Integer; //Index of player who killed it <br> aUnitType: Integer; //Type of unit that was killed ||

Вот aUnitType: Integer абсолютно бесполезная информация, лучше передавать ID убитого юнита, по которому можно выяснить все остальное используя States. Там везде принимается ID юнита. 

PS. А вообще лучше ID и убийцы и убитого.
Пытаюсь скомпилировать ремейк, не получается. SVN стянул уже скомпиленый заменил папку дата из стабильного релиза и вроде пошло=)
И там вроде опечатка в вики в описании компиляции:

# Now you you can open ".\KaM Remake.dpk" package and compile the project and/or its utility tools.

Сейчас попробую что-нибудь сделать интересного =)

Где найти коды боевых юнитов.


«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)

Сообщение отредактировал Jery - Четверг, 07.02.2013, 23:52
 
KromДата: Пятница, 08.02.2013, 10:34 | Сообщение # 26
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
andreus, RevealCircle исправили, спасибо за сообщение! *была опечатка в нашем коде. По защите - посмотрим..

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

Jery, OnUnitLost/Killed - дельное предложение, поправим. Коды юнитов в модуле KM_ResourceUnit - массив UnitTypeToIndex.


Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
 
andreusДата: Пятница, 08.02.2013, 15:02 | Сообщение # 27
Sir James Vagabond
Группа: Администраторы
Сообщений: 3876
Награды: 21
Репутация: 391
Статус: Offline
После ЛЮБОГО изменения скрипта (.dat) в KaM Edit, в редакторе ремейка начинается нереальный лагодром, не работает почти ничего wacko , глючат меню настройки ИИ.

Как ни странно, старые миссии, например TSK-20, Northern Islands грузятся нормально, хотя 100500 раз изменены в отдельном редакторе...


 
JeryДата: Пятница, 08.02.2013, 15:08 | Сообщение # 28
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
Не использовал никаких сторонних редакторов, только кастом скрипт. Все работает отлично, только бесит, что текстовые ресурсы надо пихать в какой-то отдельный файл, так дебагать неудобно. Я теперь лесников в угловых клетках ставлю, если что-то не сработает. Хотя удобнее было бы выводить сообщение, которое можно написать в том же файле, а не лезть куда-то еще.

Зачем что-то менять в .dat файле, если можно все написать в .script? Krom, сделай команду которая отменяет любые стандартные условия победы или поражения. Что-бы в редакторе вообще ничего не нужно было в goals менять. Типа команда DefaultGoalsOff и карта будет играться вечно, даже если там нет ни одного юнита и постройки. А свои условия победы используя скрипты написать не проблема.


«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)

Сообщение отредактировал Jery - Пятница, 08.02.2013, 15:13
 
andreusДата: Пятница, 08.02.2013, 21:59 | Сообщение # 29
Sir James Vagabond
Группа: Администраторы
Сообщений: 3876
Награды: 21
Репутация: 391
Статус: Offline
Создал тестовую миссию, с небольшим скриптом. Все вроде работает, хотелось бы потестить миссию с "открывашками" (в скрипте есте несколько RevealCircle'ов). Можно попросить исправление?))

И еще вопрос: можно ли задавать несколько условий через or/and? Например
if (States.GameTime = 6000) and States.PlayerDefeated(1) then ....


 
KromДата: Пятница, 08.02.2013, 21:59 | Сообщение # 30
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
andreus, в редакторе Ремейка в той версии что я вам высылал всегда нереальный лагодром. Это временно, но неизбежно.

Jery, Текст должен быть в отдельных файлах для поддержки многоязычности, как иначе сделать миссию на Рус/АнглПольском? ) Стандартные победы/поражения нужны т.к. отлично подходят для 90% карт. Зачем их убирать? ) Вечные карты мало-кому нужны. Всегда нужны условия победы и поражения.


Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
 
Форум » Knights and Merchants: Remake » Идеи и предложения » Скрипты
Поиск: