|
|
|
|
[Вопрос] Способность
|
|
Hock | Дата: Воскресенье, 27 Ноября 2011, 11:34:18 | Сообщение # 26 |
3 уровень
Группа: Проверенные
Сообщений: 57
Награды: 0
Репутация: 14
Блокировки:
| Спасибо всем большое))Особенно Hexing, Ty3uK, Extremator, SirNikolas,Добавлено (27 Ноябрь 2011, 11:15:32) --------------------------------------------- SirNikolas, как сказал все получилось,осталось убрать резкость в повороте и будет все круто) Extremator, Спасибо за карту-пример)) Добавлено (27 Ноябрь 2011, 11:30:51) ---------------------------------------------
Code local integer i=0 local unit u=GetTriggerUnit() local unit d=CreateUnit(GetOwningPlayer(u),'h00A',GetSpellTargetX(),GetSpellTargetY(),0) local real x1=GetUnitX(u) local real y1=GetUnitY(u) local real x2=GetUnitX(d) local real y2=GetUnitY(d) local unit d2=CreateUnit(GetOwningPlayer(u),'h00A',x1,y1,0) local lightning l = AddLightning("AFOD", true, x1, y1, x2, y2) local lightning l2 = AddLightning("LEAS", true, x1, y1, x2, y2) local lightning l3 = AddLightning("SPLK", true, x1, y1, x2, y2) local lightning l4 = AddLightning("AFOD", true, x1, y1, x2, y2) local location li local real angle= GetUnitFacing(u) * .0175//bj_PI / 180. call SetUnitTurnSpeed(u,0.01) call SetUnitMoveSpeed( u, 0.00 ) loop exitwhen i>40 call TriggerSleepAction(0.05) call IssuePointOrder(d2,"shockwave",x2,y2) call IssuePointOrder(d1,"shockwave",x1,y1) set x1 = GetWidgetX(u) set y1 = GetWidgetY(u) set x2 = GetWidgetX(d) set y2 = GetWidgetY(d) set angle = GetUnitFacing(u) * .0175//bj_PI / 180. call SetUnitPosition(d, x1 + Cos(angle) * 700., y1 + Sin(angle) * 700.) call MoveLightning(l,true,x1,y1,x2,y2) call MoveLightning(l2,true,x1,y1,x2,y2) call MoveLightning(l3,true,x1,y1,x2,y2) call MoveLightning(l4,true,x1,y1,x2,y2) call DestroyEffect(AddSpecialEffect("Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl",x2,y2)) set i=i+1 endloop call SetUnitMoveSpeed( u, GetUnitDefaultMoveSpeed(u) ) call SetUnitTurnSpeed( u, GetUnitDefaultTurnSpeed(u) ) call DestroyLightning(l) call DestroyLightning(l2) call DestroyLightning(l3) call DestroyLightning(l4) set l = null set l2 = null set l3 = null set l4 = null call RemoveUnit(d) call RemoveUnit(d2) set d2=null set d=null set u=null Вот,все работает,но если не трудно последняя просьба-есть ли утечки?) Я просто еще может их не замечаю.Добавлено (27 Ноябрь 2011, 11:34:18) ---------------------------------------------
Code local integer i=0 local unit u=GetTriggerUnit() local unit d=CreateUnit(GetOwningPlayer(u),'h00A',GetSpellTargetX(),GetSpellTargetY(),0) local real x1=GetUnitX(u) local real y1=GetUnitY(u) local real x2=GetUnitX(d) local real y2=GetUnitY(d) local unit d2=CreateUnit(GetOwningPlayer(u),'h00A',GetUnitX(u),GetUnitY(u),0) local lightning l = AddLightning("AFOD", true, x1, y1, x2, y2) local lightning l2 = AddLightning("LEAS", true, x1, y1, x2, y2) local lightning l3 = AddLightning("SPLK", true, x1, y1, x2, y2) local lightning l4 = AddLightning("AFOD", true, x1, y1, x2, y2) local location li local real angle= GetUnitFacing(u) * .0175//bj_PI / 180. call SetUnitTurnSpeed(u,0.01) call SetUnitMoveSpeed( u, 0.00 ) loop exitwhen i>40 call TriggerSleepAction(0.05) call IssuePointOrder(d2,"shockwave",x2,y2) call IssuePointOrder(d,"shockwave",x1,y1) set x1 = GetWidgetX(u) set y1 = GetWidgetY(u) set x2 = GetWidgetX(d) set y2 = GetWidgetY(d) set angle = GetUnitFacing(u) * .0175//bj_PI / 180. call SetUnitPosition(d, x1 + Cos(angle) * 700., y1 + Sin(angle) * 700.) call MoveLightning(l,true,x1,y1,x2,y2) call MoveLightning(l2,true,x1,y1,x2,y2) call MoveLightning(l3,true,x1,y1,x2,y2) call MoveLightning(l4,true,x1,y1,x2,y2) call DestroyEffect(AddSpecialEffect("Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl",x2,y2)) set i=i+1 endloop call SetUnitMoveSpeed( u, GetUnitDefaultMoveSpeed(u) ) call SetUnitTurnSpeed( u, GetUnitDefaultTurnSpeed(u) ) call DestroyLightning(l) call DestroyLightning(l2) call DestroyLightning(l3) call DestroyLightning(l4) set l = null set l2 = null set l3 = null set l4 = null call RemoveUnit(d) call RemoveUnit(d2) set d2=null set d=null set u=null Точнее вот этот код))
http://warcraft3ft.info/forum/26-34958-1
|
|
|
|
Hexing | Дата: Воскресенье, 27 Ноября 2011, 11:36:52 | Сообщение # 27 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Quote (Hock) Вот,все работает,но если не трудно последняя просьба-есть ли утечки?) еще допиши Добавлено (27 Ноябрь 2011, 11:36:52) --------------------------------------------- хотя вообще удали серавно ты не используешь эту переменную
|
|
|
|
Hock | Дата: Воскресенье, 27 Ноября 2011, 12:58:41 | Сообщение # 28 |
3 уровень
Группа: Проверенные
Сообщений: 57
Награды: 0
Репутация: 14
Блокировки:
| Hexing, ага ,когда пытался сделать,перепробывал многое,и забыл видимо поудалять)
http://warcraft3ft.info/forum/26-34958-1
|
|
|
|
SirNikolas | Дата: Воскресенье, 27 Ноября 2011, 15:18:16 | Сообщение # 29 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Попробуйте запустить следующий код:Code call BJDebugMsg(R2S(3.14159265358)) Вы будете сильно удивлены.Добавлено (27 Ноябрь 2011, 15:18:16) --------------------------------------------- Это я насчет округления.
|
|
|
|
Hexing | Дата: Понедельник, 28 Ноября 2011, 09:38:28 | Сообщение # 30 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| SirNikolas, уже пробывал, но думаю это ограничение лишь для преоброзавания числа в строку, лучше проверить моим способом
|
|
|
|
SirNikolas | Дата: Вторник, 29 Ноября 2011, 15:14:10 | Сообщение # 31 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (Hexing) это ограничение лишь для преоброзавания числа в строку Нет, это везде так. Сам недавно выяснил - когда делал "Электрический щит", у меня молнии как-то странно располагались.
|
|
|
|
FatalBlade | Дата: Среда, 30 Ноября 2011, 21:58:15 | Сообщение # 32 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (SirNikolas) Code call BJDebugMsg(R2S(3.14159265358)) Вы будете сильно удивлены. А чё будет? Влом проверять
|
|
|
|
Ty3uK | Дата: Четверг, 01 Декабря 2011, 07:59:24 | Сообщение # 33 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Будет то, что отобразится это число со всеми десятичными знаками. Но у реальных все равно максимум 3 десятичных знака после запятой
|
|
|
|
SirNikolas | Дата: Четверг, 01 Декабря 2011, 14:13:31 | Сообщение # 34 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| От такой уверенности Ty3uK'а в вышесказанном перепроверил еще раз. Нет, я не ошибался - будет выведено следующее мистическое число:
|
|
|
|
Extremator | Дата: Четверг, 01 Декабря 2011, 14:21:55 | Сообщение # 35 |
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
| Quote (SirNikolas) 4.048 , которое, по мнению Близзов, является округлением числа Пи до тысячных. а разве ПИ это не ~3.14 ? оО
|
|
|
|
SirNikolas | Дата: Четверг, 01 Декабря 2011, 14:25:49 | Сообщение # 36 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (SirNikolas) Попробуйте запустить следующий код: Code call BJDebugMsg(R2S(3.14159265358)) Вы будете сильно удивлены. Это результат исполнения данной строки.
А вообще Задорнов же говорил, что в Америке π ≈ 4.
|
|
|
|
Hexing | Дата: Четверг, 01 Декабря 2011, 14:28:54 | Сообщение # 37 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Quote (SirNikolas) А вообще Задорнов же говорил, что в Америке π ≈ 4.
|
|
|
|
Ty3uK | Дата: Четверг, 01 Декабря 2011, 17:18:21 | Сообщение # 38 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Ну так я же и сказал, что он должен округлить число до трех знаков после запятой. Или я снова не так понял твой пост?
|
|
|
|
[DUОS] | Дата: Четверг, 01 Декабря 2011, 23:40:56 | Сообщение # 39 |
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
| Quote (SirNikolas) 4.048 , которое, по мнению Близзов, является округлением числа Пи до тысячных. Вот это жёстко!
|
|
|
|
|
|
|
|
|
|
|