[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: Jery, Rey  
Форум » Knights and Merchants: Remake » Общий » Выход следующей версии kam remeake.
Выход следующей версии kam remeake.
JeryДата: Понедельник, 18.03.2013, 17:55 | Сообщение # 61
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
Цитата (AntonP)
Krom, по поводу массива юнитов. В Варкрафте 3 как раз и возвращался массив юнитов. Но это всё можно погрузить на плечи игроков. Главное чтобы имелась возможность выделить (скриптово) каждого юнита отдельно.
Никаких массивов юнитов варкрафте не было. Там был отдельный тип group, который наследовался от agent, который в свою очередь наследовался от handle. Юниты из региона прошедшие фильтр добавлялись в группу и возвращался ее описатель.
У group был свой API. Приведу часть интерфейса может натолкнет на какие-нибудь полезные мысли:

Код
native CreateGroup                          takes nothing returns group
native DestroyGroup                         takes group whichGroup returns nothing
native GroupAddUnit                         takes group whichGroup, unit whichUnit returns nothing
native GroupRemoveUnit                      takes group whichGroup, unit whichUnit returns nothing

native ForGroup                 takes group whichGroup, code callback returns nothing
native FirstOfGroup             takes group whichGroup returns unit

Вот так было в варкрафте3. Для наших целей можно написать функцию PickEveryUnitInRegion(region) возвращающую массив(как определить его размер?). И уже каждый в ручную будет реализовывать итерацию по массиву как ему нужно. Либо вводить новую сущность группы давать ей описатель в виде интового ID и уже этот ID использовать везде.


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

Сообщение отредактировал Jery - Вторник, 19.03.2013, 23:10
 
andreusДата: Понедельник, 18.03.2013, 18:23 | Сообщение # 62
Sir James Vagabond
Группа: Администраторы
Сообщений: 3876
Награды: 21
Репутация: 391
Статус: Offline
В r4785:



Когда союзный ИИ строит здание где-то в Тьмутаракани, где местность скрыта туманом войны, планы строительства все равно видны поверх черноты)) Выглядит странно wacko
Прикрепления: 0280149.jpg(125.2 Kb)



Нашли баг на моей карте? Есть идеи по улучшению карт? Дайте мне знать
 
ВовецДата: Понедельник, 18.03.2013, 22:19 | Сообщение # 63
PsychoBotoKiller
Группа: Администраторы
Сообщений: 4231
Награды: 25
Репутация: 358
Статус: Offline
АИ ведь всевидящее Око Мордора =)

Без лишней скромности: один из основателей R.A
Гильдия бойцов: 2011-2014. Помним, любим, скорбим.
 
AntonPДата: Среда, 20.03.2013, 11:31 | Сообщение # 64
Дозорный
Группа: Проверенные
Сообщений: 339
Награды: 1
Репутация: 7
Статус: Offline
Цитата (Jery)
Никаких массивов юнитов варкрафте не было. Там был отдельный тип group, который наследовался от agent, который в свою очередь наследовался от handle. Юниты из региона прошедшие фильтр добавлялись в группу и возвращался ее описатель. У group был свой API.
Я пользовался триггерами а не Jass, в то время я в программировании был 0. В триггерах какраз и возвращался массив. Тобишь (не помню как там точно) было чтото примерно так Выбрать Каждого юнита в группе юнитов (Юниты в регионе (Регион)) , тоесть брался массив в данном случае массивом какраз и является группа юнитов.
Цитата (Jery)
Вот так было в варкрафте3. Для наших целей можно написать функцию PickEveryUnitInRegion(region) возвращающую массив(как определить его размер?). И уже каждый в ручную будет реализовывать итерацию по массиву как ему нужно. Либо вводить новую сущность группы давать ей описатель в виде интового ID и уже этот ID использовать везде.
Размер? Легко определить размер) Ведь есть динамические массивы, сколько юнитов такой и размер будет. А в скриптах КАМа есть глобальные переменные?))


Война и мир лучшая!
 
KromДата: Среда, 20.03.2013, 11:44 | Сообщение # 65
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
AntonP, глобальные переменные в скриптах есть. Т.е. ты можешь вверху написать var G: Integer; и в функциях к ней обращаться.

Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
 
Alexandr_5Дата: Среда, 20.03.2013, 11:49 | Сообщение # 66
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline

Цитата (Krom)
AntonP, глобальные переменные в скриптах есть. Т.е. ты можешь вверху написать var G: Integer; и в функциях к ней обращаться.
 

Разумеется есть. Это достоинство паскаль скрипт. Вот бы мне делать использовать паскаль скрипт на делфи 7.
 
JeryДата: Среда, 20.03.2013, 12:00 | Сообщение # 67
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
Цитата (AntonP)
Я пользовался триггерами а не Jass, в то время я в программировании был 0. В триггерах какраз и возвращался массив. Тобишь (не помню как там точно) было чтото примерно так Выбрать Каждого юнита в группе юнитов (Юниты в регионе (Регион)) , тоесть брался массив в данном случае массивом какраз и является группа юнитов.
Каждый триггер транслировался в jass, можно было сделать это в ручную и увидеть что не массив там совсем. Он даже ведет себя не как массив, а как список. Можно выбирать с головы группы и удалять по одному, был бы массив ничего не мешало обращаться к нужному элементу напрямую по индексу, а вот удалять элементы из середины было бы тяжело.

Цитата (AntonP)
Размер? Легко определить размер) Ведь есть динамические массивы, сколько юнитов такой и размер будет. А в скриптах КАМа есть глобальные переменные?))
Т.е. ты предлагаешь увеличивать длину массива при добавлении каждого юнита? В худшем случае это N операций копирования всего массива, если следующая за массивом ячейка памяти занята, где N кол-во юнитов в регионе. И как ты предлагаешь определить размер глобального массива(ведь в какой-то момент нужно будет выделить под него память), как узнать какую циферку подставлять в SetLength?


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

Сообщение отредактировал Jery - Среда, 20.03.2013, 14:41
 
KromДата: Среда, 20.03.2013, 16:18 | Сообщение # 68
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
Jery, скорее всего будем возвращать массив. Один раз выделим место под 32 юнита, если упремся в это число, то выделим еще 32 и т.д. Перед возвратом обрежем массив по фактическому числу элементов. Ничего супер-сложного или долгого. Вопрос только проверить как PS поддерживает аргументы вида массивов и есть ли high() low() функции.

Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
 
dms-71Дата: Суббота, 30.03.2013, 23:37 | Сообщение # 69
Воин
Группа: Проверенные
Сообщений: 132
Награды: 1
Репутация: 7
Статус: Offline
Итак. Покопался в редакторе карт Героев III и заметил полезные штуки:1. полоски координат клеток
2. вкл./выкл сетку
3. кисть создания препятствий (в нашем случае можно сделать кисть мусора (которая учитывает биомы) - ветки, трава, грибы, камни и кисть деревьев - ну тут понятно как все должно работать)
4. распределение объектов по биомам

На днях приступлю к другому редактору карт.
 
Alexandr_5Дата: Воскресенье, 31.03.2013, 12:23 | Сообщение # 70
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
dms-71По-моему сетку там и так можно поставить. Покопайся внастройках жми F11.
 
KromДата: Воскресенье, 31.03.2013, 12:34 | Сообщение # 71
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
dms-71
1. не получится, т.к вертикальные координаты меняются в зависимости от рельефа
2. отчасти есть, в меню F11, но в редакторе сделаем и галкой в обычном меню
3. будет
4. может быть. пока объектов и так немного

Спасибо за идеи!


Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
 
andreusДата: Понедельник, 01.04.2013, 21:28 | Сообщение # 72
Sir James Vagabond
Группа: Администраторы
Сообщений: 3876
Награды: 21
Репутация: 391
Статус: Offline
Решил пройти Town Tutorial... После того как синего игрока не стало, пришло сообщеньице:

Сииний игрок побежден!

Что за цвет такой - сииний? biggrin



Нашли баг на моей карте? Есть идеи по улучшению карт? Дайте мне знать
 
KromДата: Понедельник, 01.04.2013, 22:53 | Сообщение # 73
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
andreus, спс, исправил (5001 ревизия biggrin .

Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
 
andreusДата: Понедельник, 01.04.2013, 23:02 | Сообщение # 74
Sir James Vagabond
Группа: Администраторы
Сообщений: 3876
Награды: 21
Репутация: 391
Статус: Offline
Вот и пятитысячник, с юбилейчиком))


Нашли баг на моей карте? Есть идеи по улучшению карт? Дайте мне знать
 
Alexandr_5Дата: Вторник, 02.04.2013, 07:06 | Сообщение # 75
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
Цитата (andreus)
Сииний игрок побежден!


Неправильно говорица лучше Армия под синим флагом побеждена.

Добавлено (02.04.2013, 07:06)
---------------------------------------------
Кстати Ремейк с юбилеем. Огромная благодарность тот кто делал ремейк и кто помогалю


Сообщение отредактировал AlexandrV - Вторник, 02.04.2013, 07:06
 
Форум » Knights and Merchants: Remake » Общий » Выход следующей версии kam remeake.
Поиск: