Скрипты
|
andreus | Дата: Четверг, 07.03.2013, 23:50 | Сообщение # 76 |
Sir James Vagabond
Группа: Администраторы
Сообщений: 3876
Награды: 21
Репутация: 391
Статус: Offline
| Цитата (andreus) .script будет работать только в новой версии ремейка
Нашли баг на моей карте? Есть идеи по улучшению карт? Дайте мне знать
|
|
| | |
Alexandr_5 | Дата: Пятница, 08.03.2013, 15:31 | Сообщение # 77 |
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
| То есть в r4725 и выше.
Добавлено (08.03.2013, 15:31) --------------------------------------------- Кром, Почемута скрипт
procedure OnTick; begin if (States.StatHouseTypeCount(0,5) = 5) and (States.StatHouseTypeCount(0,4) = 5) and (if States.StatResourceProducedCount(0,3) = 50) and (if States.StatResourceProducedCount(0,4) = 50) then Actions.PlayerWin(0,true);
end; в r4725 не работает но читает
Сообщение отредактировал AlexandrV - Пятница, 08.03.2013, 17:01 |
|
| | |
Jery | Дата: Пятница, 08.03.2013, 18:26 | Сообщение # 78 |
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
| В игре он тебе сообщения кидает, если что-то не так. Что за ифы в скобках....
«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)
|
|
| | |
Alexandr_5 | Дата: Пятница, 08.03.2013, 18:45 | Сообщение # 79 |
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
| Синтаксическая ошибка
Добавлено (08.03.2013, 18:45) --------------------------------------------- Если написать так procedure OnTick; begin if (States.StatHouseTypeCount(0,5) = 3) and (States.StatHouseTypeCount(0,4) = 3) and (if States.StatResourceProducedCount(0,3) = 50) and (if States.StatResourceProducedCount(0,4) = 50) then Actions.PlayerWin(0,true); end;
То выдает это
а если написать так
procedure OnTick; begin if States.StatHouseTypeCount(0,5) = 3 and (States.StatHouseTypeCount(0,4) = 3) and (if States.StatResourceProducedCount(0,3) = 50) and (if States.StatResourceProducedCount(0,4) = 50) then Actions.PlayerWin(0,true); end;
то выдает это
Сообщение отредактировал AlexandrV - Пятница, 08.03.2013, 18:47 |
|
| | |
Jery | Дата: Пятница, 08.03.2013, 20:03 | Сообщение # 80 |
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
| Потому что нужно писать так: procedure OnTick; begin if ((States.StatHouseTypeCount(0,5) = 3) and (States.StatHouseTypeCount(0,4) = 3)) and ((States.StatResourceProducedCount(0,3) = 50) and (States.StatResourceProducedCount(0,4) = 50)) then Actions.PlayerWin(0,true); end;
Без всяких дополнительных ифов в скобках.
Еще чтобы не возникало глупых вопросов, когда видишь сообщение: [Error](4:89): Syntax error - это значит что у тебя синтаксическая ошибка в четвертой строке после 89го символа. [Error](4:82): Type mismatch - несоответствие типов в четвертой строке после 82го символа.
Это там где ты пишешь нелепый IF в скобках.
«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)
Сообщение отредактировал Jery - Пятница, 08.03.2013, 20:04 |
|
| | |
Alexandr_5 | Дата: Пятница, 08.03.2013, 20:09 | Сообщение # 81 |
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
| С ифами уже понял. Добавлено (08.03.2013, 20:09) --------------------------------------------- procedure OnTick; begin if ((States.StatHouseTypeCount(0,5) = 3) and (States.StatHouseTypeCount(0,4) = 3)) and ((States.StatResourceProducedCount(0,3) = 50) and (States.StatResourceProducedCount(0,4) = 50)) then Actions.PlayerWin(0,true); end;
А теперь что не так после 216 символа
|
|
| | |
Jery | Дата: Пятница, 08.03.2013, 20:37 | Сообщение # 82 |
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
| Что пишет в сообщении? Я ошибок не вижу. У меня нет последней версии ремейка, где можно это запустить. В моей версии старые названия динамических скриптов.
«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)
Сообщение отредактировал Jery - Пятница, 08.03.2013, 20:47 |
|
| | |
Alexandr_5 | Дата: Пятница, 08.03.2013, 20:53 | Сообщение # 83 |
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
| [Error](3:216): Type mismatch
Сообщение отредактировал AlexandrV - Пятница, 08.03.2013, 20:53 |
|
| | |
Jery | Дата: Пятница, 08.03.2013, 21:24 | Сообщение # 84 |
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
| Видать где-то типы опять не совпадают. Наверно в PlayerWin , там нужен массив индексов игроков. Хз как это понимать. У крома надо спрашивать=) Замени PlayerWin на что-нибудь другое, чтобы можно было понять где ошибка. Например на Actions.GiveUnit(0,1,1,1,1), если все будет хорошо то ошибка точно в PlayerWin.
«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)
Сообщение отредактировал Jery - Пятница, 08.03.2013, 21:27 |
|
| | |
Alexandr_5 | Дата: Пятница, 08.03.2013, 21:26 | Сообщение # 85 |
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
| Jery, А ты не знаешь как сделать массив индексов игроков.
|
|
| | |
Jery | Дата: Пятница, 08.03.2013, 21:31 | Сообщение # 86 |
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
| Нужно у крома узнавать, что это значит. Может это просто цифры через запятую типа Actions.PlayerWin(0,1,2, true), а может что посложнее. procedure OnTick; begin if (States.StatHouseTypeCount(0,5) = 3) and (States.StatHouseTypeCount(0,4) = 3) and (States.StatResourceProducedCount(0,3) = 50) and (States.StatResourceProducedCount(0,4) = 50) then Actions.PlayerWin(0,true); end; Попробуй так, я убрал все лишние скобки.
«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)
Сообщение отредактировал Jery - Пятница, 08.03.2013, 21:33 |
|
| | |
Alexandr_5 | Дата: Пятница, 08.03.2013, 21:33 | Сообщение # 87 |
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
| Jery, Только это нашел в исходных скриптах крома но я незнаю английского PlayerWin Set specified player(s) victorious, and all team members of those player(s) if the 2nd parameter TeamVictory is set to true. All players who were not set to victorious are set to defeated. 1 - array player index 2 - TeamVictory: Boolean
|
|
| | |
Jery | Дата: Пятница, 08.03.2013, 21:35 | Сообщение # 88 |
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
| Здесь и написано про массив индексов игроков, я просто не понимаю что это значит. Почитал я немножко про паскаль попробуй еще написать вот так: Actions.PlayerWin([1], true);
«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)
Сообщение отредактировал Jery - Пятница, 08.03.2013, 21:38 |
|
| | |
Alexandr_5 | Дата: Пятница, 08.03.2013, 21:36 | Сообщение # 89 |
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
| А проверить у себя можешь скрипт и сказать мне как правильно у себя написать
|
|
| | |
Jery | Дата: Пятница, 08.03.2013, 21:42 | Сообщение # 90 |
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
| Я же говорю у меня нет последней версии ремейка, разбираться с его компиляцией тоже нет времени. А скачивать готовый ремейк инет не позволяет.
«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)
|
|
| |
|