XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
redfal1
has left the game
offline
Опыт: 3,632
Активность:
каждые 60 сек. +1 уровень
Народ как сделать так чтобы когда герой приходил в определённый регион ему каждые 60 сек. давался лвл.
Старый 21.01.2010, 16:15
agentex

offline
Опыт: 34,834
Активность:
регистрируешь вхождение юнита в регион, стартуешь индивидуальный таймер (см. аттачи) ну и по таймеру прибавляешь лвл.
Старый 21.01.2010, 16:21
Tooy

offline
Опыт: 1,231
Активность:
Every 60 sec.
Bool comparsion - ((rect) contains (unit))= true
Hero -Set lvl of unit = hero_lvl (unit) + 1
Ну или как agentex написал
Старый 21.01.2010, 16:21
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
герой вошёл запустил таймер
таймер истёк добавил левол
запустил новый таймер

Отредактировано 16GB, 21.01.2010 в 16:32.
Старый 21.01.2010, 16:22
redfal1
has left the game
offline
Опыт: 3,632
Активность:
не понятно( можно наработку пожалуйста
Старый 21.01.2010, 16:27
avatarDr
Neophyte
offline
Опыт: 6,474
Активность:
тайпер истёк добавел левол
Круто звучит.
redfal1, собственно, уточни, тебе надо, чтобы каждые 60 сек. игрового времени давался уровень, или каждые 60 сек. после входа в локацию?
Старый 21.01.2010, 16:28
redfal1
has left the game
offline
Опыт: 3,632
Активность:
герой вошёл в регион предположим просидел он там 60 сек. ему дали +1 лвл, захотел он купить что-то вышел, всё ему не дают лвла до тех пор пока он в этот регион не придёт опять и стоять там не будет 60 сек.
Старый 21.01.2010, 16:31
avatarDr
Neophyte
offline
Опыт: 6,474
Активность:
globals
timer array LVLTIMER
endglobals

unit enters region
if GetEnteringUnit()==Hero then
    call TimerStart(LVLTIMER[GetPlayerId(GetOwningPlayer(GetEnteringUnit()))],60,true,function Levelup)
endif

unit leaves region
if GetEnteringUnit()==Hero then
    call TimerPause(LVLTIMER)
endif
Никогда не паузил таймеры, поэтому могу ошибаться, но общий смысл такой.
Старый 21.01.2010, 16:55
redfal1
has left the game
offline
Опыт: 3,632
Активность:
не чёто муть какая то) можно и проще, но не могу понять где у меня ошибка вот посмотрите если найдёте исправьте ктонибудь
Прикрепленные файлы
Тип файла: w3x lvlup.w3x (17.0 Кбайт, 11 просмотров )
Старый 21.01.2010, 17:06
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
надо ставить условие or между типом юнитов
Старый 21.01.2010, 17:30
Voland

offline
Опыт: 1,320
Активность:
Твой код:
С - каждые 10 сек игр. времени
У - Выбранный юнит = твой юнит
Д - выбор каждого юнита в регионе, проверяешь, мёртв он или нет и даёшь каждому по +1 лвл.
Так вот, я думаю, ошибка в том, что ты проверяешь, соответствует ли выбранный юнит к-либо типу, хотя ты никого не выбирал, выбираешь ты уже в Д.
И ещё, если кто-то умный будет раз в 10 сек. забегать в регион, то он будет получать лвл!
Старый 21.01.2010, 17:35
ShamaN26

offline
Опыт: 9,546
Активность:
нууу както так
Прикрепленные файлы
Тип файла: w3x Exp.w3x (18.0 Кбайт, 8 просмотров )
Старый 21.01.2010, 17:37
Voland

offline
Опыт: 1,320
Активность:
ShamaN26, А если одновременно зайдут двое? Или с паузой в 5 секунд? Или зайдут вдвоём и через 15 сек. один выйдет?
Voland aka VIN добавил:
Неее, надо с локалками делать...
Старый 21.01.2010, 17:47
ShamaN26

offline
Опыт: 9,546
Активность:
=) если много Персов то условия можно поставить на игроков тобеш интэрин юнит равно герой игрока синего(или красного) могу переделать нормально=)
Старый 21.01.2010, 18:05
Doc

offline
Опыт: 63,163
Активность:
Проще сделать без утечек на жассе с массивами
Старый 21.01.2010, 18:37
ShamaN26

offline
Опыт: 9,546
Активность:
вот сделал всё норм
Прикрепленные файлы
Тип файла: w3x Exp v2.0.w3x (11.8 Кбайт, 8 просмотров )
Старый 21.01.2010, 18:47
redfal1
has left the game
offline
Опыт: 3,632
Активность:
нужен именно +1 лвл а не опыт
даже если твой герой не стоял там 60 сек а прилетел когда уже прошло 45 секунд ему всё равно дадут лвлглавное чтобы в игре 60 сек. проходило.
Старый 21.01.2010, 19:28
Doc

offline
Опыт: 63,163
Активность:
Так это еще проще. Таймеры даже ненужны. Создаем триг с событием: every 60 seconds of game time. В действиях берем всех героев в области и даем им уровень
Старый 21.01.2010, 19:37
redfal1
has left the game
offline
Опыт: 3,632
Активность:
выложил скрин посмотри
Миниатюры
Кликните на картинку для увеличения
Название:  Безымянный.jpg
Просмотров: 21
Размер:  45.0 Кбайт  

Отредактировано redfal1, 21.01.2010 в 19:59.
Старый 21.01.2010, 19:44
Doc

offline
Опыт: 63,163
Активность:
Выложи скрин трига, скажу что исправить
Старый 21.01.2010, 19:46
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 10:28.