what Дата: Среда, 04.09.2013, 19:00 | Сообщение # 1
Группа: Заблокированные
Сообщений: 8
Награды:
0
Репутация:
0
Статус: Offline
загрузка наград ...
Сегодня я покажу вам как создать движение крипов как в доте Создаем новый триггер ( называем как хочем) Фото триггеров (http://2.firepic.org/2/images/2013-09/04/aqj5vgdckp6y.jpg) Создаем в тойже папке новы триггер ( называем как хочем) Фото 2 триггеров(http://2.firepic.org/2/images/2013-09/04/b45yfau3sbk9.jpg) Вот и все надеюсь помог) (если помог +1 репутация)
SaMuRa][ Дата: Четверг, 05.09.2013, 14:33 | Сообщение # 2
Группа: Модераторы
Сообщений: 525
Награды:
11
Репутация:
140
Статус: Offline
загрузка наград ...
Вообще то в доте крипы сделаны примерно так, только с такой системой.
library AntiHarrasSystem initializer Init_AHS needs Main, PlayerSettings { trigger AHS_listener; private trigger GetHarraser; private trigger GetHarraser2; private trigger HarrasEnds; private trigger HarrasEnds2; private trigger Clean; private trigger GetHarrasOnTower; private boolexpr AHSFilter; private boolexpr TowerFilter; private region BleachRegion; private region NarutoRegion; private group array Stackers; define { private CREEP_OBJECT = 'ACRE'; private TOWER_OBJECT = 'ATOW'; private TOWER_MAX_RANGE = 900.0; } private struct point { float x; float y; } private void SetHarrassed() { UnitAddAbility(GetEnumUnit(),'AHCR'); debug SetUnitVertexColor(GetEnumUnit(),0,0,255,255); } private void GetHarraser_A(unit u, unit a) { integer i = GetPlayerId(GetOwningPlayer(u)); group m = Stackers; temp_filter = Player(i); GroupEnumUnitsInRange(m,GetUnitX(a),GetUnitY(a), 700.,AHSFilter); if ((FirstOfGroup(m) == null) ) { return; } if (IsUnitDetected(u,PlayerGetSideComp(Player(i)))) { return; } UnitAddAbility(u,'A01I'); ForGroup(m,function SetHarrassed); GroupTargetOrderById(m,order_attack,u); } private void HarrasEnds_A() { unit u = GetTriggerUnit(); group m = Stackers[GetUnitUserData(u)]; point i; UnitRemoveAbility(u,'A01I'); Stackers[GetUnitUserData(u)] = CreateGroup(); TriggerSleepAction(1.25); loop { u = FirstOfGroup(m); exitwhen u == null; GroupRemoveUnit(m,u); UnitRemoveAbility(u,'AHCR'); debug SetUnitVertexColor(u,255,255,255,255); i = GetUnitUserData(u); IssuePointOrderById(u,order_attack,i.x,i.y); } DestroyGroup(m); m = null; } private void GetHarrasOnTower_A(unit a) { group g = CreateGroup(); unit u; GroupEnumUnitsInRange(g,GetUnitX(a),GetUnitY(a),TOWER_MAX_RANGE,TowerFilter); u = FirstOfGroup(g); if (u == null) { return; } DestroyGroup(g); g = null; IssueTargetOrderById(u,order_attack,a); } private bool AHSFilter_C() { return (GetUnitAbilityLevel(GetFilterUnit(), CREEP_OBJECT) > 0 && \ IsUnitEnemy(GetFilterUnit(),temp_filter) == true && \ GetUnitAbilityLevel(GetFilterUnit(), 'AHCR') == 0); } private bool TowerFilter_C() { return (GetUnitAbilityLevel(GetFilterUnit(), TOWER_OBJECT) > 0); } private bool GetHarraser_C() { if (IsUnitType(GetOrderTargetUnit(),UNIT_TYPE_HERO) == true && \ GetUnitAbilityLevel(GetTriggerUnit(), 'A01I') == 0) { GetHarraser_A(GetTriggerUnit(),GetOrderTargetUnit()); } return false; } private bool GetHarraser2_C() { if (IsUnitType(GetAttacker(),UNIT_TYPE_HERO) == true && \ GetUnitAbilityLevel(GetAttacker(), 'A01I') == 0 ) { GetHarraser_A(GetAttacker(),GetTriggerUnit()); } return false; } private bool HarrasEnds2_C() { if (GetUnitAbilityLevel(GetTriggerUnit(), 'A01I') > 0) { HarrasEnds_A(); } return false; } private bool HarrasEnds_C() { if (GetUnitAbilityLevel(GetTriggerUnit(), 'A01I') > 0 ) { return (!(GetOrderTargetUnit() != null && \ IsUnitEnemy(GetOrderTargetUnit(), GetOwningPlayer(GetTriggerUnit())) && \ IsUnitType(GetOrderTargetUnit(),UNIT_TYPE_HERO) == true)); } return false; } private bool GetHarrasOnTower_C() { unit a = GetAttacker(); player p = GetOwningPlayer(GetTriggerUnit()); if (IsUnitType(a,UNIT_TYPE_HERO) == true && IsUnitEnemy(a, p)) { if (PlayerGetTeam(p) == BLEACH_SIDE) { if (IsPointInRegion(BleachRegion,GetUnitX(a),GetUnitY(a))) { GetHarrasOnTower_A(a); } } else { if (IsPointInRegion(NarutoRegion,GetUnitX(a),GetUnitY(a))) { GetHarrasOnTower_A(a); } } } return false; } private bool AHS_listener_C() { point p; if (GetUnitAbilityLevel(GetTriggerUnit(), CREEP_OBJECT) > 0 ) { if (GetIssuedOrderId() == order_attack ) { p = GetUnitUserData(GetTriggerUnit()); if (p != 0) { p.destroy(); } p = point.create(); p.x = GetOrderPointX(); p.y = GetOrderPointY(); SetUnitUserData(GetTriggerUnit(),p); } } return false; } private bool Clean_C() { point p; if (GetUnitAbilityLevel(GetTriggerUnit(), CREEP_OBJECT) > 0 ) { p = GetUnitUserData(GetTriggerUnit()); p.destroy(); } return false; } public void RegisterHero(unit u) { TriggerRegisterUnitEvent(HarrasEnds,u,EVENT_UNIT_ISSUED_TARGET_ORDER); TriggerRegisterUnitEvent(HarrasEnds,u,EVENT_UNIT_ISSUED_POINT_ORDER); TriggerRegisterUnitEvent(HarrasEnds,u,EVENT_UNIT_ISSUED_ORDER); TriggerRegisterUnitEvent(HarrasEnds2, u, EVENT_UNIT_DEATH); TriggerRegisterUnitEvent(GetHarraser,u,EVENT_UNIT_ISSUED_TARGET_ORDER); TriggerRegisterUnitEvent(GetHarraser2,u,EVENT_UNIT_ATTACKED); TriggerRegisterUnitEvent(GetHarrasOnTower,u,EVENT_UNIT_ATTACKED); } void Init_AHS() { int i = 0; player p; AHS_listener = CreateTrigger(); GetHarraser = CreateTrigger(); GetHarraser2 = CreateTrigger(); HarrasEnds = CreateTrigger(); HarrasEnds2 = CreateTrigger(); GetHarrasOnTower = CreateTrigger(); Clean = CreateTrigger(); TriggerAddCondition(AHS_listener, Condition(function AHS_listener_C)); TriggerAddCondition(HarrasEnds, Condition(function HarrasEnds_C)); TriggerAddCondition(HarrasEnds2, Condition(function HarrasEnds2_C)); TriggerAddCondition(GetHarraser, Condition(function GetHarraser_C)); TriggerAddCondition(GetHarraser2, Condition(function GetHarraser2_C)); TriggerAddCondition(GetHarrasOnTower, Condition(function GetHarrasOnTower_C)); TriggerAddCondition(Clean, Condition(function Clean_C)); TriggerAddAction(HarrasEnds, function HarrasEnds_A); loop { i = i + 1; if (i != 6 ) { Stackers = CreateGroup(); } exitwhen i >= 11; } TriggerRegisterPlayerUnitEvent( Clean,Player(0), EVENT_PLAYER_UNIT_DEATH,null ); TriggerRegisterPlayerUnitEvent( AHS_listener,Player(0), EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER,null ); TriggerRegisterPlayerUnitEvent( Clean,Player(6), EVENT_PLAYER_UNIT_DEATH,null ); TriggerRegisterPlayerUnitEvent( AHS_listener,Player(6), EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER,null ); DisableTrigger(AHS_listener); AHSFilter = Filter(function AHSFilter_C); TowerFilter = Filter(function TowerFilter_C); group g = CreateGroup(); unit u; BleachRegion = CreateRegion(); NarutoRegion = CreateRegion(); GroupEnumUnitsOfPlayer(g,Player(0),TowerFilter); loop { u = FirstOfGroup(g); exitwhen u == null; GroupRemoveUnit(g,u); RegionAddCircle(BleachRegion,GetUnitX(u),GetUnitY(u),TOWER_MAX_RANGE); } GroupEnumUnitsOfPlayer(g,Player(6),TowerFilter); loop { u = FirstOfGroup(g); exitwhen u == null; GroupRemoveUnit(g,u); RegionAddCircle(NarutoRegion,GetUnitX(u),GetUnitY(u),TOWER_MAX_RANGE); } DestroyGroup(g); g = null; } }
Сообщение отредактировал SaMuRa][ - Четверг, 05.09.2013, 14:33
what Дата: Четверг, 05.09.2013, 16:21 | Сообщение # 3
Группа: Заблокированные
Сообщений: 8
Награды:
0
Репутация:
0
Статус: Offline
загрузка наград ...
У тебя показано jass. А я показал простыми русскими триггерами . Для людей которые вовсе не знают jass
farfacer Дата: Четверг, 05.09.2013, 16:24 | Сообщение # 4
xFyntuk/DOF
Группа: Проверенные
Сообщений: 716
Награды:
15
Репутация:
148
Статус: Offline
загрузка наград ...
what , С этими крипами полно ошибок будет
_ИТАЧИ_ Дата: Среда, 11.09.2013, 11:24 | Сообщение # 5
Ленивая попа
Группа: Старший модератор
Сообщений: 829
Награды:
26
Репутация:
302
Статус: Offline
загрузка наград ...
ну их можно исправить...а начало норм _)...продолжай улучшать свои навыки в триггерах
Нажмите на картинку, если хотите увидеть мой проект
HellSinG Дата: Вторник, 29.10.2013, 01:27 | Сообщение # 6
Группа: Проверенные
Сообщений: 91
Награды:
2
Репутация:
468
Статус: Offline
загрузка наград ...
полностью согласен с _ИТАЧИ_.
sairon188 Дата: Среда, 30.10.2013, 23:08 | Сообщение # 7
Группа: Проверенные
Сообщений: 86
Награды:
4
Репутация:
5
Статус: Offline
загрузка наград ...
Как-то,всё понял но не могу найти Боевая единица-Приказать...что за??(У меня триггеры на русском,перевод немножко корявенький честно говоря,если можете киньте ссылку на норм перевод)Могу приказать атаковать item(как я понял вещь)Добавлено (30.10.2013, 23:08) --------------------------------------------- Всё,нашел..у меня перевод корявый просто,разобрался уже, спс!Если можно киньте ссылку на норм перевод триггеров,мог бы и на анг языке но мне не удобно.
Сообщение отредактировал sairon188 - Вторник, 29.10.2013, 18:40
SaMuRa][ Дата: Воскресенье, 08.06.2014, 01:02 | Сообщение # 8
Группа: Модераторы
Сообщений: 525
Награды:
11
Репутация:
140
Статус: Offline
загрузка наград ...
Эту систему писал я для одной карты это пример харас системы -_- Ai у мобов.
Imba Дата: Четверг, 24.07.2014, 17:41 | Сообщение # 9
=◕◡◕=
Группа: Элита
Сообщений: 1153
Награды:
27
Репутация:
1554
Статус: Offline
загрузка наград ...
Закрыто. Это даже не статья =/ На сайте вроде была наработка. Кому нужно будет - найдет. П.С. в доте все сделано на джассе.
Кликни на баннер!