[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Архив - только для чтения
Форум » Гильдии » Гильдия картоделов » Вопросы по скриптам и динам. скриптам.
Вопросы по скриптам и динам. скриптам.
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
 
Форум » Гильдии » Гильдия картоделов » Вопросы по скриптам и динам. скриптам.
Поиск: