Сейчас 09:11:03 Пятница, 16 января, 2026 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: PUVer, SirNikolas, Ty3uK  
[ВАЖНО] Помощь по триггерам
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] )! :p
Всё равно спасибо.



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))

Ого... Нет я лучше свои способом :D



1. Вы сейчас в интернете.
2. Вы на сайте warcraft3ft.info
3. Вы читаете это.
5. Вы не заметили что отсутствует пункт 4.
6. Вы сейчас это проверили.
7. Вы улыбаетесь.
 

inhuman89Дата: Воскресенье, 28 Февраля 2010, 05:29:57 | Сообщение # 416
5 уровень
Группа: Пользователи
Сообщений: 106
Награды: 0
Репутация: 5
Блокировки:
Quote (@ARMAGEDDON@)
он мой друг! =)

friends

Quote (@ARMAGEDDON@)
Как сделать чтобы наносила дамаг только 2 раза:

я бы сделал так:
в триге перемещения дамми создал действие, пикающее юнитов в небольшом радиусе вокруг дамми и дамажил их нещадно :D
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

Всё уже сделал :D

Добавлено (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 (Бюллетень)
твой код бяка =\

Что тебе в нём не понравилось? :D



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 (Бюллетень)
Оптимизация, или ты в жасс перевёл от нефиг делать?)

Почти в точку, но не от нефиг делать, а легче просто скинуть код(Пофиг какой главное чтобы смысл поняли) Чем заного буду карту заливать :D



1. Вы сейчас в интернете.
2. Вы на сайте warcraft3ft.info
3. Вы читаете это.
5. Вы не заметили что отсутствует пункт 4.
6. Вы сейчас это проверили.
7. Вы улыбаетесь.
 

SaladanДата: Воскресенье, 28 Февраля 2010, 10:23:54 | Сообщение # 425
2 уровень
Группа: Пользователи
Сообщений: 26
Награды: 0
Репутация: 2
Блокировки:
Событие:
Боевая единица - Событие игрока Игрок 1 (красный) Завершает подготовку боевой единицы
Условие:
(Тип юнита (Подготовленный юнит)) равно Продажа
Действие:
Игрок-Добавить((Точка-значение юнита(Тип юнита(Переключающий юнит)))/2) к (Владелец(Подготовленный юнит)) Золото (текущ.)

Я сделал продажу как боевой юнит.
Но почему то этот триггер не работает, а продаёт за 100 голда, хотя юнит стоит 4. Подскажите что не так плиз)


когда тупость перестанет существовать, то люди тоже перестанут существовать, поэтому тупость никогда не перестанет существовать, потому что и люди будут долго жить, но когда цивилизация перестанет существовать, то тупость всё равно не перестанет существовать,потому что это тупость, когда мир существует без людей...
 

Поиск:

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