Вопросы по скриптам и динам. скриптам.
|
Jery | Дата: Понедельник, 03.02.2014, 07:27 | Сообщение # 46 |
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
| Ну вообще-то можно сделать на уровне API вот так например:
Action.StartTimer(timerID:integer, tickCount:integer, reusable:boolean) или Action.StartTimer(tickCount:integer, reusable:boolean):integer или можно еще отделить регистрацию таймера от его старта.
И событие OnTimerExpired(timerId:integer)
Или вместо Id идентифицировать таймер по имени.
В редакторе варкрафта, насколько я помню, было что-то подобное.
«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)
Сообщение отредактировал Jery - Понедельник, 03.02.2014, 07:31 |
|
| | |
Krom | Дата: Понедельник, 03.02.2014, 09:42 | Сообщение # 47 |
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
| Jery, интересная идея, а что значит ключ Reusable? )
Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
|
|
| | |
Jery | Дата: Понедельник, 03.02.2014, 09:46 | Сообщение # 48 |
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
| Значит что таймер автоматом заного стартует с изначальным отсчетом, лучше наверно repeatable, repeating, periodic. Кароче переодический он, тут наверно имело бы смысл сделать команду стоп таймер=)
«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)
Сообщение отредактировал Jery - Понедельник, 03.02.2014, 10:25 |
|
| | |
Jery | Дата: Понедельник, 03.02.2014, 19:29 | Сообщение # 49 |
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
| Еще к таймерам возможно добавить следующее:
Actions.PauseTimer(timerId:integer); - приостановить таймер Actions.ResumeTimer(timerId:integer); - снять приостановку таймера
Actions.DestroyTimer(timerId:integer);
И дополнительные состояния для удобства:
States.TimerGetElapsed(timerId:integer); - сколько времени прошло с запуска таймера States.TimerGetRemaining(timerId:integer); - сколько времени осталось на таймере States.TimerGetTimeout(timerID:integer); - на сколько был установлен таймер
Состояния нужны для удобного отображения информации с таймеров например на оверлее.
«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)
Сообщение отредактировал Jery - Понедельник, 03.02.2014, 19:36 |
|
| | |
Krom | Дата: Понедельник, 03.02.2014, 21:43 | Сообщение # 50 |
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
| Jery, мне кажется это уже лишнее. До сих пор и простой таймер то был не нужен. Можно все в основном таймере сделать.
Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
|
|
| | |
andreus | Дата: Понедельник, 03.02.2014, 21:57 | Сообщение # 51 |
Sir James Vagabond
Группа: Администраторы
Сообщений: 3876
Награды: 21
Репутация: 391
Статус: Offline
| проще всего задать через states.gametime mod, states.gametime div и будут вам минуты с секундами)
(Mission.Time div 600) mod 60 - минуты
(Mission.Time div 10) mod 60 - секунды
Нашли баг на моей карте? Есть идеи по улучшению карт? Дайте мне знать
|
|
| | |
Jery | Дата: Понедельник, 03.02.2014, 22:23 | Сообщение # 52 |
Мечник
Группа: Модераторы
Сообщений: 568
Награды: 2
Репутация: 50
Статус: Offline
| Делайте как вам нравится. Хотите писать пару экранов с привязкой к геймтайму - пишите. Все равно без колбэков в скриптах событие OnTimer раздуется и там будет здоровенный свич и никакой динамики, но зато хоть все в одном месте.
«Художник не тогда знает, что он достиг совершенства, когда нечего добавить, но когда нечего больше отнять». (Антуан де Сент-Экзюпери)
|
|
| | |
Alexandr_5 | Дата: Среда, 05.02.2014, 13:34 | Сообщение # 53 |
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
| Срочно скажите скажите есть скрипт для получения координат курсора если да то напишите.
|
|
| | |
Krom | Дата: Среда, 05.02.2014, 13:56 | Сообщение # 54 |
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
| AlexandrV, такого скрипта нет.
Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
|
|
| | |
Alexandr_5 | Дата: Среда, 05.02.2014, 14:25 | Сообщение # 55 |
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
| тогда можете добавить.
|
|
| | |
Krom | Дата: Среда, 05.02.2014, 14:52 | Сообщение # 56 |
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
| Krom, в скриптах это не нужно. Зачем?
Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
|
|
| | |
Alexandr_5 | Дата: Среда, 05.02.2014, 15:14 | Сообщение # 57 |
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
| Затем чтобы проверить скирипт. Например правильная ли формула подобрана допустим у меня
Код procedure OnHouseBuilt(aHouseID: Integer); Var XHouse,YHouse:Integer; IDSCLAD:Integer; BEGIN If states.HouseType(aHouseID)= 17 then begin XHouse:=states.HousePositionX(aHouseID); YHouse:=states.HousePositionY(aHouseID); IDSCLAD:=states.HouseAt(XSCLAD[ISclad], YSCLAD[ISclad]); If ((XHouse<XSCLAD[ISclad]+30)and(YHouse<YSCLAD[ISclad]+30)and(XHouse>XSCLAD[ISclad]-30)and(YHouse>YSCLAD[ISclad]-30)) then IDHouseStorBAWNRA:=IDHouseStorBAWNRA+1; end; END;
|
|
| | |
Krom | Дата: Среда, 05.02.2014, 16:17 | Сообщение # 58 |
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
| AlexandrV, и при чем тут курсор собственно? Сделай например временный код вывести сообщение на экран, если в границах, то "IN" а если нет - "OUT"
Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
|
|
| | |
Alexandr_5 | Дата: Среда, 05.02.2014, 17:03 | Сообщение # 59 |
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
| Надо проверить курсором пападает в указанные коррдининаты или нет.
|
|
| | |
Alexandr_5 | Дата: Среда, 05.02.2014, 21:54 | Сообщение # 60 |
Воитель
Группа: Проверенные
Сообщений: 1330
Награды: 4
Репутация: 33
Статус: Offline
| А есть скрипт для получения случоного ID юнита Если нет то стоит добавить.
Сообщение отредактировал AlexandrV - Четверг, 06.02.2014, 17:43 |
|
| |
|