|
[ВАЖНО] Помощь по триггерам
|
|
| DragoN | Дата: Пятница, 12 Февраля 2010, 16:47:23 | Сообщение # 1 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки: 
| Правила данной темы. - 1. Вопросы задавать исключительно по триггерам.
- 2. Вопрос должен быть максимально ясным, лаконичным и содержательным.
- 3. Оффтоп и флуд карается 3-х дневным баном.
El Psy Congroo
|
| |
|
|
| gleb0n | Дата: Суббота, 27 Февраля 2010, 23:42:25 | Сообщение # 401 |
1 уровень
Группа: Пользователи
Сообщений: 18
Награды: 0
Репутация: 0
Блокировки: 
| Простите за нубский вопрос,просто я ещё новичек в редакторе, но как сделать безлимит декораций? в WEU?
|
| |
|
|
| Saladan | Дата: Суббота, 27 Февраля 2010, 23:58:14 | Сообщение # 402 |
2 уровень
Группа: Пользователи
Сообщений: 26
Награды: 0
Репутация: 2
Блокировки: 
| Quote (gleb0n) Простите за нубский вопрос,просто я ещё новичек в редакторе, но как сделать безлимит декораций? в WEU? в WEU, есть на сайте в разделе файлы
когда тупость перестанет существовать, то люди тоже перестанут существовать, поэтому тупость никогда не перестанет существовать, потому что и люди будут долго жить, но когда цивилизация перестанет существовать, то тупость всё равно не перестанет существовать,потому что это тупость, когда мир существует без людей...
|
| |
|
|
| @ARMAGEDDON@ | Дата: Воскресенье, 28 Февраля 2010, 00:02:28 | Сообщение # 403 |
6 уровень
Группа: Проверенные
Сообщений: 151
Награды: 0
Репутация: 20
Блокировки: 
| inhuman89, http://rghost.ru/1066695 На посмотри ты не понял о чём я.
1. Вы сейчас в интернете. 2. Вы на сайте warcraft3ft.info 3. Вы читаете это. 5. Вы не заметили что отсутствует пункт 4. 6. Вы сейчас это проверили. 7. Вы улыбаетесь.
|
| |
|
|
| inhuman89 | Дата: Воскресенье, 28 Февраля 2010, 00:40:58 | Сообщение # 404 |
5 уровень
Группа: Пользователи
Сообщений: 106
Награды: 0
Репутация: 5
Блокировки: 
| @ARMAGEDDON@, http://rghost.ru/1066941
•
|
| |
|
|
| @ARMAGEDDON@ | Дата: Воскресенье, 28 Февраля 2010, 00:54:55 | Сообщение # 405 |
6 уровень
Группа: Проверенные
Сообщений: 151
Награды: 0
Репутация: 20
Блокировки: 
| inhuman89, Вот ты сделал правильно но не совсем: Попробуй отбежать. Он летит в сторону где я находился когда он возвращался а надо чтобы за мной летел. Понял?
1. Вы сейчас в интернете. 2. Вы на сайте warcraft3ft.info 3. Вы читаете это. 5. Вы не заметили что отсутствует пункт 4. 6. Вы сейчас это проверили. 7. Вы улыбаетесь.
|
| |
|
|
| inhuman89 | Дата: Воскресенье, 28 Февраля 2010, 01:27:43 | Сообщение # 406 |
5 уровень
Группа: Пользователи
Сообщений: 106
Награды: 0
Репутация: 5
Блокировки: 
| значит в триггере когда дамми летит обратно, в действии перемещения дамми, ставь чтобы дамми двигался в позицию кастера. например Move (dummy) instantly to ((Position of (dummy)) offset by 20.00 towards (Angle from (Position of (dummy)) to (Position of (caster))) degrees) и вообще лучше двигать не дамми а локейшн, и потом просто в него толкать даммика.
•
|
| |
|
|
| @ARMAGEDDON@ | Дата: Воскресенье, 28 Февраля 2010, 03:47:57 | Сообщение # 407 |
6 уровень
Группа: Проверенные
Сообщений: 151
Награды: 0
Репутация: 20
Блокировки: 
| inhuman89, Всё сделал просто ты в триггере "Run" поставил "set udg_Casster[1] = null"- Зачем? Если в следующем ты делаеш "call SetUnitPositionLocFacingBJ( udg_Casster[2], PolarProjectionBJ(GetUnitLoc(udg_Casster[2]), udg_Reall[2], udg_Reall[1]), udg_Reall[1] )" Я просто поставил чтобы через 0.01 сек он выполнял действие-call SetUnitPositionLocFacingBJ( udg_Casster[2], PolarProjectionBJ(GetUnitLoc(udg_Casster[2]), udg_Reall[2], udg_Reall[1]), udg_Reall[1] )! Всё равно спасибо.
1. Вы сейчас в интернете. 2. Вы на сайте warcraft3ft.info 3. Вы читаете это. 5. Вы не заметили что отсутствует пункт 4. 6. Вы сейчас это проверили. 7. Вы улыбаетесь.
|
| |
|
|
| inhuman89 | Дата: Воскресенье, 28 Февраля 2010, 03:52:45 | Сообщение # 408 |
5 уровень
Группа: Пользователи
Сообщений: 106
Награды: 0
Репутация: 5
Блокировки: 
| лол я этой функции не добавлял, она там была уже когда я скачал, сам посмотри ссылку которую ты на ргхост давал, скачай и посмотри.
•
|
| |
|
|
| P@d®e | Дата: Воскресенье, 28 Февраля 2010, 03:53:42 | Сообщение # 409 |
6 уровень
Группа: Пользователи
Сообщений: 221
Награды: 0
Репутация: 73
Блокировки: 
| Привет всем! inhuman89, той код может зацмклить дамми. Лучше делать:Code function move takes unit dammy, unit caster returns nothing local location p local location p1 local location p2 local real r
set p = GetUnitLoc(dammy) set p1 = GetUnitLoc(caster) if (DistanceBetweenPoints(p,p1)<100) then call RemoveUnit(dammy) else set r =AngleBetweenPoints(p,p1) call MoveLocation(p2,GetUnitX(dammy)+50*Cos(r+180),GetUnitY(dammy)+50*Sin(r+180)) call SetUnitPositionLoc(dammy, p2) endif call RemoveLocation(p) call RemoveLocation(p1) call RemoveLocation(p2) set r=0 //return endfunction этот код сделан для возвращения дамми прямо в кастера. он сразу оптимизирован. дамми просто удаляется после прилета.
Кому помог поставьте плюсичек.
|
| |
|
|
| inhuman89 | Дата: Воскресенье, 28 Февраля 2010, 03:53:52 | Сообщение # 410 |
5 уровень
Группа: Пользователи
Сообщений: 106
Награды: 0
Репутация: 5
Блокировки: 
| я еще удивился зачем ты real обнуляешь оО
•
|
| |
|
|
| P@d®e | Дата: Воскресенье, 28 Февраля 2010, 03:55:12 | Сообщение # 411 |
6 уровень
Группа: Пользователи
Сообщений: 221
Награды: 0
Репутация: 73
Блокировки: 
| память засоряется даже от такой мелочи
Кому помог поставьте плюсичек.
|
| |
|
|
| inhuman89 | Дата: Воскресенье, 28 Февраля 2010, 03:59:07 | Сообщение # 412 |
5 уровень
Группа: Пользователи
Сообщений: 106
Награды: 0
Репутация: 5
Блокировки: 
| P@d®e, у меня была задача не написать "нелагаующую дрянь" а просто показать как сделать чтобы дами летел в сторону кастера •_•Добавлено (28-02-2010, 03:59) ---------------------------------------------
Quote (P@d®e) память засоряется даже от такой мелочи смысл писать set real = 0.00... это же не то "обнуление" как например set u = null, просто записывается новое значение 0.00
•
|
| |
|
|
| @ARMAGEDDON@ | Дата: Воскресенье, 28 Февраля 2010, 04:35:03 | Сообщение # 413 |
6 уровень
Группа: Проверенные
Сообщений: 151
Награды: 0
Репутация: 20
Блокировки: 
| inhuman89, P@d®e, Какая щас разница? Вот новый вопрос: Как сделать чтобы наносила дамаг только 2 раза: 1-Когда летит в перёд 2-Понятное дело назад Quote (inhuman89) просто записывается новое значение 0.00 или Quote (inhuman89) писать set real = 0.00 Какая разница?? Кому как удобней
1. Вы сейчас в интернете. 2. Вы на сайте warcraft3ft.info 3. Вы читаете это. 5. Вы не заметили что отсутствует пункт 4. 6. Вы сейчас это проверили. 7. Вы улыбаетесь.
|
| |
|
|
| P@d®e | Дата: Воскресенье, 28 Февраля 2010, 04:45:42 | Сообщение # 414 |
6 уровень
Группа: Пользователи
Сообщений: 221
Награды: 0
Репутация: 73
Блокировки: 
| Quote (inhuman89) смысл писать set real = 0.00... это же не то "обнуление" как например set u = null, просто записывается новое значение 0.00 под 0 вделяется 0 байтов в памяти компа. тем более как только мы объявляем какую-нить переменную ей сразу дается значение 0 или null.Quote (inhuman89) P@d®e, у меня была задача не написать "нелагаующую дрянь" а просто показать как сделать чтобы дами летел в сторону кастера •_• если залагает то никогда не долетит, для @ARMAGEDDON@,-а надо делать все качественно - он мой друг! =)Добавлено (28-02-2010, 04:45) --------------------------------------------- ща буду делать...
Кому помог поставьте плюсичек.
|
| |
|
|
| @ARMAGEDDON@ | Дата: Воскресенье, 28 Февраля 2010, 04:57:53 | Сообщение # 415 |
6 уровень
Группа: Проверенные
Сообщений: 151
Награды: 0
Репутация: 20
Блокировки: 
| Quote (P@d®e) он мой друг! =) А я думал что уже не спомнишь=)Добавлено (28-02-2010, 04:57) ---------------------------------------------
Quote (P@d®e) call MoveLocation(p2,GetUnitX(dammy)+50*Cos(r+180),GetUnitY(dammy)+50*Sin(r+180)) Ого... Нет я лучше свои способом
1. Вы сейчас в интернете. 2. Вы на сайте warcraft3ft.info 3. Вы читаете это. 5. Вы не заметили что отсутствует пункт 4. 6. Вы сейчас это проверили. 7. Вы улыбаетесь.
|
| |
|
|
| inhuman89 | Дата: Воскресенье, 28 Февраля 2010, 05:29:57 | Сообщение # 416 |
5 уровень
Группа: Пользователи
Сообщений: 106
Награды: 0
Репутация: 5
Блокировки: 
| Quote (@ARMAGEDDON@) он мой друг! =) Quote (@ARMAGEDDON@) Как сделать чтобы наносила дамаг только 2 раза: я бы сделал так: в триге перемещения дамми создал действие, пикающее юнитов в небольшом радиусе вокруг дамми и дамажил их нещадно pick every unit (units whithin 80 of (position of (dummy)) and do action: order (casting unit) to damage (picked unit) dealing N dmg.... если немного не правильно написал названия, прошу простить так как пишу по памяти.
•
|
| |
|
|
| @ARMAGEDDON@ | Дата: Воскресенье, 28 Февраля 2010, 05:45:01 | Сообщение # 417 |
6 уровень
Группа: Проверенные
Сообщений: 151
Награды: 0
Репутация: 20
Блокировки: 
| inhuman89, Я так же сделал и получилось что он при малейшом столкновении сразу убивает(Понятно что если через каждые 0.01 сек наносить к примеру 50 дамага) А их надо както добавить в групу, нанести дамаг и всё чтобы их триггер не трогал пока бумеранг не полетит обратно. Добавлено (28-02-2010, 05:45) --------------------------------------------- @ARMAGEDDON@, Блин, я кажись ответил на свой вопрос... вот. щас...
1. Вы сейчас в интернете. 2. Вы на сайте warcraft3ft.info 3. Вы читаете это. 5. Вы не заметили что отсутствует пункт 4. 6. Вы сейчас это проверили. 7. Вы улыбаетесь.
|
| |
|
|
| inhuman89 | Дата: Воскресенье, 28 Февраля 2010, 05:53:39 | Сообщение # 418 |
5 уровень
Группа: Пользователи
Сообщений: 106
Награды: 0
Репутация: 5
Блокировки: 
| да кстати забыл сказать, зря ты такой короткий период взял (0.01) 0.03 вполне достаточно. и еще забыл сказал что когда я использую свой предложеный вариант у себя в мапе, при первом столкновении с врагом и после нанесения дамага я обычно удаляю дамми.. в твоем случае он должен всетаки долететь до кастера.. тогда попробуй добавлять врага в группу предварительно нанеся ему урон, а в функции нанесения урона поставь условие, что нада дамажить только тех юнитов, которые НЕ находятся в группе..Добавлено (28-02-2010, 05:51) --------------------------------------------- кстати если хочешь я дам тебе ссылку на мой старенткий гуи спелл, из которго ты можешь много подчерпнуть (я надеюсь) . Правда он текучий, но не в этом суть. также там есть пример как сделать чтобы бумеранг твой, долетев до цели не моментально разворачивался и летел назад, а как бы тормозил, останавливался, и потом набирая скорость летел обратно . Добавлено (28-02-2010, 05:53) ---------------------------------------------
Quote (@ARMAGEDDON@) Ого... Нет я лучше свои способом А что? так гораздо правильнее и безутечнее, чем двигать юнита непосредственно.
•
|
| |
|
|
| @ARMAGEDDON@ | Дата: Воскресенье, 28 Февраля 2010, 05:55:57 | Сообщение # 419 |
6 уровень
Группа: Проверенные
Сообщений: 151
Награды: 0
Репутация: 20
Блокировки: 
| Code function Trig_Rest_1_Func001Func005002003 takes nothing returns boolean return ( IsPlayerEnemy(GetOwningPlayer(udg_Casster[1]), GetOwningPlayer(GetFilterUnit())) == true ) endfunction
function Trig_Rest_1_Func001Func007A takes nothing returns nothing call UnitDamageTargetBJ( udg_Casster[1], GetEnumUnit(), 50.00, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL ) call GroupAddUnitSimple( GetEnumUnit(), udg_group[2] ) call AddSpecialEffectTargetUnitBJ( "chest", GetEnumUnit(), "Objects\\Spawnmodels\\Human\\HumanBlood\\BloodElfSpellThiefBlood.mdl" ) call DestroyEffectBJ( GetLastCreatedEffectBJ() ) endfunction
function Trig_Rest_1_Func001C takes nothing returns boolean if ( not ( DistanceBetweenPoints(GetUnitLoc(udg_Casster[1]), GetUnitLoc(udg_Casster[2])) <= 100.00 ) ) then return false endif return true endfunction
function Trig_Rest_1_Actions takes nothing returns nothing if ( Trig_Rest_1_Func001C() ) then call DisableTrigger( GetTriggeringTrigger() ) set udg_group[1] = null call UnitApplyTimedLifeBJ( 0.01, 'BTLF', udg_Casster[2] ) call GroupClear( udg_group[2] ) else set udg_Point[2] = GetUnitLoc(udg_Casster[2]) set udg_Reall[2] = ( udg_Reall[2] + 0.10 ) set udg_Reall[1] = AngleBetweenPoints(GetUnitLoc(udg_Casster[2]), GetUnitLoc(udg_Casster[1])) call SetUnitPositionLocFacingBJ( udg_Casster[2], PolarProjectionBJ(GetUnitLoc(udg_Casster[2]), udg_Reall[2], udg_Reall[1]), udg_Reall[1] ) set udg_group[1] = GetUnitsInRangeOfLocMatching(128.00, udg_Point[2], Condition(function Trig_Rest_1_Func001Func005002003)) call GroupRemoveGroup( udg_group[2], udg_group[1] ) call ForGroupBJ( udg_group[1], function Trig_Rest_1_Func001Func007A ) endif endfunction
//=========================================================================== function InitTrig_Rest_1 takes nothing returns nothing set gg_trg_Rest_1 = CreateTrigger( ) call DisableTrigger( gg_trg_Rest_1 ) call TriggerRegisterTimerEventPeriodic( gg_trg_Rest_1, 0.01 ) call TriggerAddAction( gg_trg_Rest_1, function Trig_Rest_1_Actions ) endfunction Всё уже сделал  Добавлено (28-02-2010, 05:55) ---------------------------------------------
Quote (inhuman89) тогда попробуй добавлять врага в группу предварительно нанеся ему урон, а в функции нанесения урона поставь условие, что нада дамажить только тех юнитов, которые НЕ находятся в группе.. Уже сделал=)
1. Вы сейчас в интернете. 2. Вы на сайте warcraft3ft.info 3. Вы читаете это. 5. Вы не заметили что отсутствует пункт 4. 6. Вы сейчас это проверили. 7. Вы улыбаетесь.
|
| |
|
|
| Omni174 | Дата: Воскресенье, 28 Февраля 2010, 08:07:45 | Сообщение # 420 |
|
Группа: Заблокированные
Сообщений: 1274
Награды: 1
Репутация: 359
Блокировки: 
| Saladan, Можешь пример? (+ поставлю) TVA, Я делаю спел я все подготовил осталось сделать дамаг вокруг зоны 1 раз всех юнитов
|
| |
|
|
| Бюллетень | Дата: Воскресенье, 28 Февраля 2010, 10:01:09 | Сообщение # 421 |
6 уровень
Группа: Проверенные
Сообщений: 160
Награды: 0
Репутация: 21
Блокировки: 
| @ARMAGEDDON@, твой код бяка =\
[ ZorDe] Ф бой Тускарцы, вы мега %)
|
| |
|
|
| @ARMAGEDDON@ | Дата: Воскресенье, 28 Февраля 2010, 10:10:37 | Сообщение # 422 |
6 уровень
Группа: Проверенные
Сообщений: 151
Награды: 0
Репутация: 20
Блокировки: 
| Quote (Бюллетень) твой код бяка =\ Что тебе в нём не понравилось?
1. Вы сейчас в интернете. 2. Вы на сайте warcraft3ft.info 3. Вы читаете это. 5. Вы не заметили что отсутствует пункт 4. 6. Вы сейчас это проверили. 7. Вы улыбаетесь.
|
| |
|
|
| Бюллетень | Дата: Воскресенье, 28 Февраля 2010, 10:17:33 | Сообщение # 423 |
6 уровень
Группа: Проверенные
Сообщений: 160
Награды: 0
Репутация: 21
Блокировки: 
| Quote (@ARMAGEDDON@) Что тебе в нём не понравилось? Оптимизация, или ты в жасс перевёл от нефиг делать?)
[ ZorDe] Ф бой Тускарцы, вы мега %)
|
| |
|
|
| @ARMAGEDDON@ | Дата: Воскресенье, 28 Февраля 2010, 10:19:21 | Сообщение # 424 |
6 уровень
Группа: Проверенные
Сообщений: 151
Награды: 0
Репутация: 20
Блокировки: 
| Quote (Бюллетень) Оптимизация, или ты в жасс перевёл от нефиг делать?) Почти в точку, но не от нефиг делать, а легче просто скинуть код(Пофиг какой главное чтобы смысл поняли) Чем заного буду карту заливать
1. Вы сейчас в интернете. 2. Вы на сайте warcraft3ft.info 3. Вы читаете это. 5. Вы не заметили что отсутствует пункт 4. 6. Вы сейчас это проверили. 7. Вы улыбаетесь.
|
| |
|
|
| Saladan | Дата: Воскресенье, 28 Февраля 2010, 10:23:54 | Сообщение # 425 |
2 уровень
Группа: Пользователи
Сообщений: 26
Награды: 0
Репутация: 2
Блокировки: 
| Событие: Боевая единица - Событие игрока Игрок 1 (красный) Завершает подготовку боевой единицы Условие: (Тип юнита (Подготовленный юнит)) равно Продажа Действие: Игрок-Добавить((Точка-значение юнита(Тип юнита(Переключающий юнит)))/2) к (Владелец(Подготовленный юнит)) Золото (текущ.) Я сделал продажу как боевой юнит. Но почему то этот триггер не работает, а продаёт за 100 голда, хотя юнит стоит 4. Подскажите что не так плиз)
когда тупость перестанет существовать, то люди тоже перестанут существовать, поэтому тупость никогда не перестанет существовать, потому что и люди будут долго жить, но когда цивилизация перестанет существовать, то тупость всё равно не перестанет существовать,потому что это тупость, когда мир существует без людей...
|
| |
|
|