[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: Jery, Rey  
Форум » Knights and Merchants: Remake » Идеи и предложения » Скрипты
Скрипты
JeryДата: Суббота, 09.03.2013, 23:03 | Сообщение # 106
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
Может за тебя всю карту написать? Разберись в чем-нибудь сам. Все делается по аналогии.

«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)
 
Alexandr_5Дата: Суббота, 09.03.2013, 23:05 | Сообщение # 107
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
По какой аналогии английский язык я незнаю и скрипты как сделать это не смогу
 
JeryДата: Суббота, 09.03.2013, 23:10 | Сообщение # 108
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
С русским тоже не очень у тебя. Все нужные функции уже встречались коде, нужно просто дописать условий. Задайся вопросом какие здания должны быть уничтожены у врага, чтобы случилась победа. Как считать кол-во зданий определенного типа ты знаешь, так что действуй. В крайнем случае переводчик гугла помогает.

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


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

Сообщение отредактировал Jery - Суббота, 09.03.2013, 23:12
 
Alexandr_5Дата: Суббота, 09.03.2013, 23:13 | Сообщение # 109
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
Jery, Скажи какие процедуры или функции содержат уничтожить врага или если уничтожены важные постройки вот в чем проблема а проблемы указать числа игроков и т.п нет
 
JeryДата: Суббота, 09.03.2013, 23:17 | Сообщение # 110
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
Я тебе уже все написал читай внимательно и разбирайся. Функций или процедур, который по взмаху волшебной палочки полностью дублируют функционал скриптов из DAT файла, не существует. Голову включай. Как посчитать кол-во определенной постройки у игрока ты знаешь, ты это уже писал. Ответь на вопрос, что включает в себя понятие "важные постройки"?

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

Сообщение отредактировал Jery - Суббота, 09.03.2013, 23:18
 
Alexandr_5Дата: Суббота, 09.03.2013, 23:18 | Сообщение # 111
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
Цифру но какую
 
JeryДата: Суббота, 09.03.2013, 23:21 | Сообщение # 112
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
Какую цифру? Откуда цифру. "Важные постройки" что это в принципе в игре значит, забудь о скриптах.

«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)
 
Alexandr_5Дата: Суббота, 09.03.2013, 23:22 | Сообщение # 113
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
Постройки без которых невозможно будет играть обычно склад
 
JeryДата: Суббота, 09.03.2013, 23:22 | Сообщение # 114
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
Цитата (andreus)
Как задать тип здания: 13 - школа
27 - харчевня
14 - каменоломня
9 - лесник
0 - лесопилка
8 - ферма
22 - мельница
7 - пекарня
16 - свинарник
24 - колбаске
28 - бухлодельня
3 - угольная шахта
15 - выплавка золота
19 - оружейня
25 - дубильня
20 - доспешня
12 - конячке
4 - железная шахта
1 - выплавка железа
2 - кузница
10 - доспешня
21 - казармы
11 - склад
17 - башня
6 - рыбак
29 - рынок

Я даже не знаю как ты читаешь, что тебе пишут. Написано тремя страницами ранее. Все идентификаторы зданий НА РУССКОМ.
Если для тебя важные постройки это только склад, то пиши циферку склада, если знаешь куда писать.


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

Сообщение отредактировал Jery - Суббота, 09.03.2013, 23:24
 
Alexandr_5Дата: Суббота, 09.03.2013, 23:24 | Сообщение # 115
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
Но а указать разрушено тогда как
 
JeryДата: Суббота, 09.03.2013, 23:26 | Сообщение # 116
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
States.StatHouseTypeCount(0,5) = 3 вот этим что ты проверял?

«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)
 
Alexandr_5Дата: Суббота, 09.03.2013, 23:29 | Сообщение # 117
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
Тоесть States.StatHouseTypeCount(0,11) = 0 Then Actions.PlayerWin(0,false);

Это будет означать если у игрока 1 разрушен скад то игрок 1 и его команда проигрывают

тогда мне нужно тип армии типы построек и ресурсов есть нужно тип армии и как он работает


Сообщение отредактировал AlexandrV - Суббота, 09.03.2013, 23:33
 
JeryДата: Суббота, 09.03.2013, 23:35 | Сообщение # 118
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
Нет =) Это означает, что если у игрока с индексом 0 (у первого) нет складов(их число равно 0, здесь не важно разрушены они или вообще не строились), то он почему-то у тебя выигрывает причем один без команды.

Actions.PlayerWin(players_index, team_victory) - дает победу всем перечисленным игрокам в players_index и их союзникам, если team_victory=true. Если team_victory = false, то выигрывают только перечисленные игроки без их союзников, т.е. союзники проигрывают=)

В твоем случае нужно считать склады у противника, а победу давать себе, насколько я понял. Вот и пиши как надо.


«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)
 
Alexandr_5Дата: Суббота, 09.03.2013, 23:38 | Сообщение # 119
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
Ну и еще надо давать поражения тогда что использовать если не States.StatHouseTypeCount(0,11) = 0

тогда нужно функция разрушеных зданий а неколичество их
 
JeryДата: Суббота, 09.03.2013, 23:50 | Сообщение # 120
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
Нужна не функция разрушения зданий, а функция поражения. Ну и запихать ее в нужное место.
То есть нужно правильно выбрать событие, при котором будут выполняться проверки. Есть несколько видов событий:

OnHouseBuilt - Возникает когда игрок построил здание.
Принимает:
aHouseID: Integer; //HouseID здания которое было построено.

OnHouseDestroyed - Возникает когда игрок уничтожил вражеское здание, причем HouseId уничтоженного здания еще можно использовать.
Принимает:
aHouseID: Integer; //HouseID здания, которое было уничтожено.
aDestroyerIndex: Integer; //Индекс игрока, который уничтожил.
aFullyBuilt: Boolean //True если здание было достроенным.

OnHouseLost - Возникает когда игрок теряет здание (включая саморазрушение - снос), причем HouseId уничтоженного здания еще можно использовать. Принимает:
aHouseID: Integer; //HouseID потерянного здания.
aFullyBuilt: Boolean //True если здание было достроенным.

OnMissionStart - Возникает сразу после загрузки карты

OnPlayerDefeated- Возникает когда игрок проигрывает. Defeat conditions are checked separately by Player AI.
Принимает:
aIndex: Integer; //Индекс проигравшего игрока.

OnPlayerVictory - Возникает когда игрок выигрывает. Victory conditions are checked separately by Player AI.
Принимает:
aIndex: Integer; //Индекс выигравшего игрока.

OnTick - Возникает каждый тик игры (обновления игрового состояния)

OnUnitKilled - Возникает когда юнит убит. Called just before the unit is destroyed so UnitID is usable only during this event.
Принимает:
aUnitID: Integer; //UnitID убитого юнита.
aKillerIndex: Integer; //Индекс убившего игрока.

OnUnitLost - Возникает когда игрок теряет юнита(включая голод). Called just before the unit is destroyed so UnitID is usable only during this event.
Принимает:
aUnitID: Integer; //UnitID потерянного юнита.

OnUnitTrained - Возникает после тренировки юнита.
Принимает:
aUnitID: Integer; //UnitID обученного юнита.

OnWarriorEquipped - Возникает после вооружения война.
Принимает:
aUnitID: Integer; //UnitID экипированного юита.
aGroupID: Integer; //GroupID группы к которой он присоединился либо создал.

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

Код
procedure OnUnitKilled(aUnitId : Integer; aKillerIndex : Integer);
begin
//ВСТАВЬТЕ ВАШ КОД СЮДА
end;


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

Сообщение отредактировал Jery - Воскресенье, 10.03.2013, 00:23
 
Форум » Knights and Merchants: Remake » Идеи и предложения » Скрипты
Поиск: