Сейчас 05:10:25 Суббота, 27 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Помогите выключить мобам мозги. (Крипы возвращаются)
Помогите выключить мобам мозги.
34hrapДата: Воскресенье, 05 Июля 2009, 19:42:10 | Сообщение # 1
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Блокировки:
Делаю AoS карту, есть проблема: когда крипы доходят до области или на них нападают, то они оборачиваются и уходят к области появления. Делаю крипов так:
Событие:
Времени прошло - Elapsed game time is 30.00 seconds
Условие:
Действие:
Боевая еденица - Create 2 Пехотинец for Игрок 6 (оранжевый) at (center of Lstart <gen>) facing Стандартная ориентация зданий degrees.

Ходят крипы так:
Событие:
Боевая еденица - A unit enters Lstart <gen>
Условие:
Действие:
Отрят - Order (Units in Lstart <gen> owned by Игрок 6 (оранжевый)) to Перейти, нападая на противников (Center of Lend <gen>)
Помогите чем можете :)

 

AkvariumДата: Воскресенье, 05 Июля 2009, 19:49:41 | Сообщение # 2
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
1) http://warcraft3ft.info/load/39-1-0-1204 скачай и не мучайся с этим англо-русским месевом.
2) Может проблема в других триггерах?
2.1) Попробуй вместо
Quote (34hrap)
Units in Lstart <gen> owned by Игрок 6 (оранжевый)
вставить Triggining unit/перключающий юнит


 

34hrapДата: Воскресенье, 05 Июля 2009, 20:03:46 | Сообщение # 3
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Блокировки:
1) Русик у меня есть, спасибо.
2) Я выключал все триггеры, это ничего не меняло.
2. 1) Поставил, только проблему это не решило Да и прибавило еще одну: если поставить героя на респ крипов, то он вместе с ними пойдет до области, развернется и уйдет обратно.
 

Smert113Дата: Воскресенье, 05 Июля 2009, 20:08:42 | Сообщение # 4
9 уровень
Группа: Проверенные
Сообщений: 1068
Награды: 0
Репутация: 161
Блокировки:
Меня кстати тоже интерисует, почему крипы назад идут? Их както остановить можно?

Вы ничего не хотите делать сами, поэтому вы здесь.
 

34hrapДата: Воскресенье, 05 Июля 2009, 20:30:10 | Сообщение # 5
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Блокировки:
Крипы идут уничтожая все на своем пути, доходят то области, уничтожая базу врага, и уходят обратно. Я пустил в ход таких же крипов у врага, крипы встретились, победили оранжевые пехотинцы, которые после стычки неожиданно развернулись и ушли обратно.

Добавлено (05-07-2009, 20:30)
---------------------------------------------
ВНИМАНИЕ, внимание!!!! Я решил проблемы всех времен и народов!!! Лезем в дополнительно -> игровые константы и меняем там Монстры: время возвращения охраны и Монстры: время возвращения охраны(сек) на 10000( это макс. число). Они ходят! Правда они все таки будут возвращатся после 10 тыс. секунд, но за такое время они быстрее сдохнут)))

 

Smert113Дата: Понедельник, 06 Июля 2009, 11:25:00 | Сообщение # 6
9 уровень
Группа: Проверенные
Сообщений: 1068
Награды: 0
Репутация: 161
Блокировки:
Приписку твою прочитал, молодец! :)

Добавлено (06-07-2009, 11:25)
---------------------------------------------
Только она походу неработает....


Вы ничего не хотите делать сами, поэтому вы здесь.
 

34hrapДата: Понедельник, 06 Июля 2009, 13:44:21 | Сообщение # 7
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Блокировки:
Нда, когда как. Редко отходят назад, но все таки отходят. Где профи? Почему немогут рассказать, хотябы как они делали AoS\TD карты.
 

AkvariumДата: Понедельник, 06 Июля 2009, 13:58:20 | Сообщение # 8
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
http://ifolder.ru/12977610
Так?


 

EnforcerДата: Понедельник, 06 Июля 2009, 13:58:22 | Сообщение # 9
Энф
Когда-то смотрел за порядком
Группа: Ветераны
Сообщений: 3127
Награды: 7
Репутация: 981
Блокировки:
У меня такая же трабла в ETS. Я решил проблему что сделал Игрока Нейтральным, а не компом и триггерами распределил Союз между этим игроком.

Это решает проблему с возращанием но появляется новая: если нет других компов в клане и игроков то по сети придется начинать если запихать компа в слот игроков.


 

34hrapДата: Понедельник, 06 Июля 2009, 17:46:01 | Сообщение # 10
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Блокировки:
Спасибо, действительно работает. Но все-таки кто-нибудь может зайти и за крипов, а это будет проблема, не всегда же закрывать компьютером слот.

Я нашел другое решение.

Ходьба крипов как в Dota Allstars

Доброго времени суток дорогие посетители.

Сегодня я расскажу вам как избежать сложностей с созданием крипов из нейтральных игроков.
Даже самые начитаные мапперы сталкивались с проблемой когда созданный крип не выполнял поставленных
ему действий, а именно:

1. Когда крип доходит до последней точки, он (если еще остался живым) возвращается на то место, где появился.
2. Здания - они атакуют находящегося в зоне действия крипа при этом когда у крипа оказывается уровень жизни на 50%, он убегает.
3. Крипы на пролом проходят мимо оборонительных сооружений, при этом получают урон и получается проблема № 2. Конечно когда они будут возвращатся, тогда их окончательно убьёт оборонительное сооружение.

Давайте разберёмся от чего получаются подобные проблемы.

Наверное все замечали, что если ударить любого крипа (нейтрала, врага) и отбежать, то он будет бежать за вами, но не долго. После он развернётся и пойдёт на исходную позицию. Это так сказать "фишка" близзардов, так сказать что бы крипы не скитались по миру, а были на своём посту, но если мы делаем карту типа Доты, Коридоров то, нам просто необходимо отключить данную способность. За эту способность отвечает одна интересная функция Guard Position, далее рассмотрим ее более подробно.

Для понимания данной функции мы направим крипа в точку обозначая ее Locations записывая в колонку Custom value ID направления к которому должен идти наш крип. Теперь рассмотрим это в действии, так описываем событие Trigger:

Code
call TriggerRegisterPlayerUnitEvent(t,Player(13),EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER,null)  
call TriggerRegisterPlayerUnitEvent(t,Player(14),EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER,null)

Условие, здесь опишем что нам нужно от события, а нам нужно передвижение к определенному ID Locations:

Code
return GetIssuedOrderId()==OrderId("move")

Описываем действие (перемещения крипа) события:

Code
function IssOrder takes nothing returns nothing  
local unit u = GetTriggerUnit()  
call SetUnitPosition(u,GetUnitX(u),GetUnitY(u))  
call DisableTrigger(GetTriggeringTrigger())  
call IssuePointOrderByIdLoc(u,OrderId("attack"),udg_Locations[GetUnitUserData(u)])  
call EnableTrigger(GetTriggeringTrigger())  
endfunction

Обратите внимание на скрипт:

Code
call SetUnitPosition(u,GetUnitX(u),GetUnitY(u))

Что же делает этот участок скрипта, спросите вы, а делает он очень не хитрое, но очень нужное действие. Он сбивает точку появления крипа и заменяет ее на ту где он в данный момент. Тоесть он будет следовать совей цели не смотря ни на что. Вот и всё, убили одновременно два зайца, так как проблемы под № 1 и 2 мы только что решили.

Хочу ещё обратить ваше внимание на не менее интересный кусок скрипта:

Code
call IssuePointOrderByIdLoc(u,OrderId("attack"),udg_Locations[GetUnitUserData(u)])

Как видим из написаного, наш крип перемещается с точки "рождения" которая постоянно меняется на ту где он находится по пути атакуя все вражиские цели, за это отвечает функция attack.

У нас осталась проблема под № 3, давайте решим и её.

Исправить данную проблуму можно двумя способами, первый самый простой, но не очень надёжный. Берем направляем нашего крипа в нужную точку с параметром attack. Для примера взгляните на скрипт описанный выше. Это так сказать домашне задание. Теперь давайте рассмотрим самый сложный и в одно время самы надёжный способ решения проблемы с атакой сооружений.

Для этого напишем событие, в котором будем перебирать юнитов и сооружения. Первым делом создаём Trigger и добавим ему следующее событие:

Code
set t = CreateTrigger()  
set g = CreateGroup()  
call GroupEnumUnitsOfPlayer(g,Player(13),null)  
loop  
set u = FirstOfGroup(g)  
exitwhen u == null  
call GroupRemoveUnit(g,u)  
if GetUnitAcquireRange(u)!=0 and IsUnitType(u,UNIT_TYPE_STRUCTURE) then  
call TriggerRegisterUnitInRange(t,u,600,null)  
endif  
endloop  
call DestroyGroup(g)  
set g = CreateGroup()  
call GroupEnumUnitsOfPlayer(g,Player(14),null)  
loop  
set u = FirstOfGroup(g)  
exitwhen u == null  
call GroupRemoveUnit(g,u)  
if GetUnitAcquireRange(u)!=0 and IsUnitType(u,UNIT_TYPE_STRUCTURE) then  
call TriggerRegisterUnitInRange(t,u,600,null)  
endif  
endloop  
call DestroyGroup(g)

Здесь мы указали что крип проходя свой путь (Locations) не только вражеских юнитов, но и сооружения, как это сделано в "Dota Allstars".
Добавим условие нашему Triggers, описанное в решении проблемы № 1 и 2:

Code
call TriggerAddCondition(t,Condition(function IsMobCondition))  
call TriggerAddAction(t,function IssOrder)

А наша функция условия, будет таковой:

function IsMobCondition takes nothing returns boolean
return (GetOwningPlayer(GetTriggerUnit())==Player(13)) or (GetOwningPlayer(GetTriggerUnit())==Player(14))
endfunction

Вот и всё, удачного маппинга и до новых встречь!

Источник http://zone-game.info/guard_position.html

Я знаю джасс на самом нубском уровне, ниже некуда. Я понял, что здесь делать, но писать скрипт с нуля не умею, тем более незнаю порядок написания скриптов. Так, что если есть знатоки джасса, пожалуйста объедените это один скрипт. :(

 

nkviz07Дата: Понедельник, 06 Июля 2009, 18:11:12 | Сообщение # 11
9 уровень
Группа: Проверенные
Сообщений: 871
Награды: 0
Репутация: 74
Блокировки:
не стал читать последний пост просто укажу на твою ошибку:
Quote (34hrap)
Отрят - Order (Units in Lstart <gen> owned by Игрок 6 (оранжевый)) to Перейти, нападая на противников (Center of Lend <gen>)

здесь нет проверки, понимаешь? ВООБЩЕ НИКАКОЙ ПРОВЕРКИ, т.е. когда этот триггер включается он берёт ВСЕХ ВСЕХ ВСЕХ юнитов в области и пихает их топать в ту, понимаешь??
надо добавить в условие отряда owner of matching unit равно игрок 6
 

34hrapДата: Понедельник, 06 Июля 2009, 18:36:36 | Сообщение # 12
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Блокировки:
А разве owned by Игрок 6 (оранжевый) это не проверка? Ладно, условие сделал, последний крип всегда идет обратно.
 

nkviz07Дата: Вторник, 07 Июля 2009, 14:48:42 | Сообщение # 13
9 уровень
Группа: Проверенные
Сообщений: 871
Награды: 0
Репутация: 74
Блокировки:
не знаю действительно ли это так но мне кажется неправильным эта штука:
Quote (34hrap)
Ходят крипы так:
Событие:
Боевая еденица - A unit enters Lstart <gen>

очень странное условие О_о
 

34hrapДата: Вторник, 07 Июля 2009, 18:22:08 | Сообщение # 14
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Блокировки:
Ну скажи пожалуйста. как можно сделать крипов, которые не возвращались бы. Если бы ты делал АоС, как бы ты делал триггеры?
 

nkviz07Дата: Вторник, 07 Июля 2009, 22:35:56 | Сообщение # 15
9 уровень
Группа: Проверенные
Сообщений: 871
Награды: 0
Репутация: 74
Блокировки:
1)
Событие Инициализация
Действие Wait 20 game-time seconds
вкл. триггер 2)
2)
Событие every (например 20) секунд
Действие for each integer A from 0 to (сколько мобов появляется в области)
{
create 1 (кого надо) (где надо) (куда смотрел)
Issue order last created unit to идти нападая на противников (куда надо)
}
 

34hrapДата: Вторник, 07 Июля 2009, 23:03:46 | Сообщение # 16
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Блокировки:
Действительно работает, спасибо. Если мобы дойдут до точки, то они вернутся, но я думаю это фигня, по сравнению с ливанием с поля боя))
 

МитяйДата: Вторник, 07 Июля 2009, 23:56:51 | Сообщение # 17
8 уровень
Группа: Заблокированные
Сообщений: 607
Награды: 0
Репутация: 39
Блокировки:
34hrap, можно сделать чтобы когда они доходили до точки то ихнее действие отменялось (ходьба)
Или переход в другую позицию ^_^


<b>Alice</b>, из за тебя пропадает смысл в паролях, а так же постоянно будет требоваться пинать админа...(Enforcer)
 

EnforcerДата: Среда, 08 Июля 2009, 01:54:17 | Сообщение # 18
Энф
Когда-то смотрел за порядком
Группа: Ветераны
Сообщений: 3127
Награды: 7
Репутация: 981
Блокировки:
nkviz07, в твоем предложении есть изьян. Они пойдут ПО ПРЯМОЙ. А не зигзагом как надо, например.

 

34hrapДата: Среда, 08 Июля 2009, 13:26:32 | Сообщение # 19
3 уровень
Группа: Пользователи
Сообщений: 44
Награды: 0
Репутация: 0
Блокировки:
Это да, но в моей карте все равно куда они пойдут))))
Enforcer, Напиши свой пример.

Добавлено (08-07-2009, 13:26)
---------------------------------------------
Кто знает как можно сделать скилл на увеличение атаки? Как у снайпера в доте.

 

nkviz07Дата: Среда, 08 Июля 2009, 13:41:17 | Сообщение # 20
9 уровень
Группа: Проверенные
Сообщений: 871
Награды: 0
Репутация: 74
Блокировки:
Quote (Enforcer)
nkviz07, в твоем предложении есть изьян. Они пойдут ПО ПРЯМОЙ. А не зигзагом как надо, например.

да в нём много изъянов
скажем там только один тип юнитов а если создание крипов идёт сразу в нескольких точках может глюкнуть триг и 2 из 3 будут стоять на месте, т.к. last created unit работает относительно последнего, а эти трое всё равно создаются не одновременно а с разницей в несколько тактов, поэтому логично использовать джасс, а я всего лишь подкинул идею для реализации, а как её будет использовать создатель - исключительно его дело.
 

amigo13Дата: Вторник, 29 Декабря 2009, 22:22:08 | Сообщение # 21
3 уровень
Группа: Заблокированные
Сообщений: 50
Награды: 0
Репутация: 0
Блокировки:
а мобам мозги моно избавить токо если ударить их биткой по голове alco

Увидели в игре ГМа и думаете застали за работой? Неа, он из-за лагов вылетел с инвиза и игры
На мне пятикратный взлом админсотава этова сайта. Ты возражаешь? Я тебя не замечаю.
 

MTTДата: Вторник, 29 Декабря 2009, 23:55:41 | Сообщение # 22
9 уровень
Группа: Пользователи
Сообщений: 941
Награды: 0
Репутация: 81
Блокировки:
я делал ТД, у меня небыло такой проблемы... Откуда у вас такое...
Я делал так.
Создается куча крипов.
Пикается в отряд.

Юнит входит в зону
Если интеринг юнит из той группы, то двигаем интеринг юнит к другой...
Крипы коричневого игрока, в константах ничего не минял...
Проблем небыло...

 

}{[]††@Бь[4Дата: Пятница, 15 Января 2010, 18:16:05 | Сообщение # 23
3 уровень
Группа: Заблокированные
Сообщений: 63
Награды: 0
Репутация: 10
Блокировки:
Во:
1)Событие: каждые 30 сек
Действие:Ран (игноринг) тиггер 2)
ждать 0.1. сек
Ран (игноринг) тиггер 3)
ждать 0.1. сек
Ран(игноринг) тиггер 4)
2) или 3) или 4)
событие: нет
деиствие: криэйт 1 (юнит) ин (регион) фэйсинг ()
Ордер (Ласт криэйт юнит) (перейти, нападая на противников) ин (регион)
ждать 0.1. сек
криэйт 1 (юнит) ин (регион) фэйсинг ()
Ордер (Ласт криэйт юнит) (перейти, нападая на противников) ин (регион)

ТиПа ЭтОгО :) ^_^
Удачи ;)


<b>Alice</b>, из за тебя пропадает смысл в паролях, а так же постоянно будет требоваться пинать админа...(Enforcer)
 

[DUОS]Дата: Пятница, 15 Января 2010, 18:54:52 | Сообщение # 24
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Enforcer,
Ns помог лично мне. Спасибище! :) Они пошли норм!


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

sAinessДата: Пятница, 15 Января 2010, 19:32:23 | Сообщение # 25
Группа: Проверенные
Сообщений: 266
Награды: 0
Репутация: 305
Блокировки:
Сорри за оффтоп, но
:D :D Оригинальное название темы :D :D
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Помогите выключить мобам мозги. (Крипы возвращаются)
  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz