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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » jass (jass)
jass
rixt7956Дата: Среда, 13 Октября 2010, 19:40:33 | Сообщение # 26
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
)blazer(, Что в ошибке написано?
 

)blazer(Дата: Среда, 13 Октября 2010, 19:42:43 | Сообщение # 27
7 уровень
Группа: Проверенные
Сообщений: 308
Награды: 0
Репутация: 49
Блокировки:
отсутствует название
 

[san9]Дата: Среда, 13 Октября 2010, 19:43:50 | Сообщение # 28
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
)blazer(,
Ты хоть пойми код))
Как ты хочеш присвоить переменной функцию? Ты делаеш типо того)
Боевая еденица - Двигать (unit) в центр точки е
set unit = Двигать(unit) в центр точки е

Дибилизм не правда ли?))
'CLPB' это типо тип молнии? Такую локальную переменную я не нашёл)

должно быть так

set udg_molniya = твоя молния


 

rixt7956Дата: Среда, 13 Октября 2010, 19:45:36 | Сообщение # 29
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
[san9], Подскажи ему,а то я щас занят буду
 

)blazer(Дата: Среда, 13 Октября 2010, 19:48:48 | Сообщение # 30
7 уровень
Группа: Проверенные
Сообщений: 308
Награды: 0
Репутация: 49
Блокировки:
Quote (rixt7956)
Как ты хочеш присвоить переменной функцию? Ты делаеш типо того)

можно. Функция возвращает переменную (было написано в одной статье)

Добавлено (13-10-2010, 19:48)
---------------------------------------------

Quote (|san9|)
'CLPB' это типо тип молнии?

да тип молнии
 

[san9]Дата: Среда, 13 Октября 2010, 19:51:41 | Сообщение # 31
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
)blazer(,
Ну как ты можеш двигать тип молнии?


 

)blazer(Дата: Среда, 13 Октября 2010, 19:53:32 | Сообщение # 32
7 уровень
Группа: Проверенные
Сообщений: 308
Награды: 0
Репутация: 49
Блокировки:
set udg_molniya[e] = AddLightningEx("CLPB", true, GetWidgetX(ugd_punctum[e]), GetWidgetY(ugd_punctum[e]), 0, GetWidgetX(ugd_punctum[e+1]), GetWidgetY(ugd_punctum[e+1]), 200)
СОздается молния в координатах ху и зет и она записывается в переменную молния (е)
 

[san9]Дата: Среда, 13 Октября 2010, 19:53:35 | Сообщение # 33
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
)blazer(,
Дай чёткий ответ что ты хочеш зделать. Скину пример.


 

rixt7956Дата: Среда, 13 Октября 2010, 19:55:49 | Сообщение # 34
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
Quote (san9)
Как ты хочеш присвоить переменной функцию? Ты делаеш типо того)
Функции на добавление ефекта,юнита,молнии,и т.п возвращают переменные
К примеру
Code
set p =GetRectCentr(какята область)

Может ты и не задумываешься но в этот момент срабатывает функция определения точки,тут так же
 

)blazer(Дата: Среда, 13 Октября 2010, 19:58:19 | Сообщение # 35
7 уровень
Группа: Проверенные
Сообщений: 308
Награды: 0
Репутация: 49
Блокировки:
Quote ()blazer()
Короче нужно чтобы из точки 1[е] в точку 2[ е+1] молнии создавались, но так чтобы они были как бы под углом, т.е. из т1 (высота 0) в т.2 (высота 200)

во

Добавлено (13-10-2010, 19:58)
---------------------------------------------
http://rghost.ru/2909482
саня лучше это исправь

 

[san9]Дата: Среда, 13 Октября 2010, 19:58:46 | Сообщение # 36
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
)blazer(,
А зачем циклы?


 

[DUОS]Дата: Среда, 13 Октября 2010, 20:00:04 | Сообщение # 37
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
)blazer(,
Возвращайся в "В" класс на NEW SYSTEM...

Code
    loop
         exitwhen udg_e > 7
         set udg_molniya[udg_e] = AddLightningEx("CLPB", true, GetWidgetX(udg_punctum[udg_e]), GetWidgetY(udg_punctum[udg_e]), 0, GetWidgetX(udg_punctum[udg_e+1]), GetWidgetY(udg_punctum[udg_e+1]), 200)
         set udg_e = udg_e + 1
     endloop

Вот и ответ.


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


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


Сообщение отредактировал [DUОS] - Среда, 13 Октября 2010, 20:00:31
 

)blazer(Дата: Среда, 13 Октября 2010, 20:04:38 | Сообщение # 38
7 уровень
Группа: Проверенные
Сообщений: 308
Награды: 0
Репутация: 49
Блокировки:
Quote (|san9|)
А зачем циклы?

так легче мне
Quote (|DUОS|)
Возвращайся в "В" класс на NEW SYSTEM...

ок,

Добавлено (13-10-2010, 20:03)
---------------------------------------------

Quote (|DUОS|)
Вот и ответ.

неверный тип аргумента

Добавлено (13-10-2010, 20:04)
---------------------------------------------
лан завтра решим, я просто ща офф (уроки надо сделать)))

 

EdiTTORRДата: Среда, 13 Октября 2010, 20:09:43 | Сообщение # 39
8 уровень
Группа: Проверенные
Сообщений: 585
Награды: 0
Репутация: 147
Блокировки:
Code
function t1A takes nothing returns nothing
local unit u=gg_unit_hkni_0000
local unit d
local real px=GetUnitX(u)
local real py=GetUnitY(u)
local real array pux
local real array puy
loop
exitwhen i>8
set pux[i]=px[i]+300*Cos((45*i)*0.0174532777777778)
set puy[i]=py[i]+300*Sin((45*i)*0.0174532777777778)
set i=i+1
endloop
set i=9
loop
exitwhen i>14
set pux[i]=px+200*Cos((60*i)*0.0174532777777778)
set puy[i]=py+200*Sin((60*i)*0.0174532777777778)
set i=i+1
endloop
set i=1
loop
exitwhen i>14
set d[i]=CreateUnit(Player(0),'ewsp',pux[i],puy[i],270)
call UnitAddAbility(d[i],'Amrf')
call UnitRemoveAbility(d[i],'Amrf')
set i=i+1
endloop
set i=9
loop
exitwhen i>14
call SetUnitFlyHeight(d[i],200,0)
set i=i+1
endloop
set i=1
loop
exitwhen i>7
set udg_molniya[i]=AddLightningEx("CLPB",true,pux[e],puy[e],0,pux[e+1],puy[i+1],200)
set i=i+1
endloop
endfunction
function InitTrig_t1 takes nothing returns nothing
set gg_trg_t=CreateTrigger()
call TriggerRegisterPlayerEvent(gg_trg_t1,Player(0),ConvertPlayerEvent(17))
call TriggerAddAction(gg_trg_t1,function t1A )
endfunction


Местами здесь.
 

[DUОS]Дата: Среда, 13 Октября 2010, 20:13:35 | Сообщение # 40
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
EdiTTORR,
Это полный код?)


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


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

EdiTTORRДата: Среда, 13 Октября 2010, 20:15:14 | Сообщение # 41
8 уровень
Группа: Проверенные
Сообщений: 585
Награды: 0
Репутация: 147
Блокировки:
[DUОS], ну вроде да unsure а что?

Местами здесь.
 

[DUОS]Дата: Среда, 13 Октября 2010, 20:19:11 | Сообщение # 42
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Code
function t1A takes nothing returns nothing
     local unit u = gg_unit_hkni_0000
     local unit d
     local real px = GetWidgetX(u)
     local real py = GetWidgetY(u)
     local real array pux
     local real array puy
     loop
         exitwhen i > 8
         set pux[i] = px[i]+ 300. * Cos((45. * i) * .0174532)
         set puy[i] = py[i]+ 300. * Sin((45. * i) * .0174532)
         set i = i + 1
     endloop
     set i = 9
     loop
         exitwhen i > 14
         set pux[i] = px + 200. * Cos((60. * i) * .0174532)
         set puy[i] = py + 200. * Sin((60. * i) * .0174532)
         set i = i + 1
     endloop
     set i = 1
     loop
         exitwhen i > 14
         set d[i] = CreateUnit(Player(0),'ewsp',pux[i],puy[i],270.)
         call UnitAddAbility(d[i],'Amrf')
         call UnitRemoveAbility(d[i],'Amrf')
         set i = i + 1
     endloop
     set i = 9
     loop
         exitwhen i > 14
         call SetUnitFlyHeight(d[i],200.,0.)
         set i = i + 1
     endloop
     set i = 1
     loop
         exitwhen i > 7
         set udg_molniya[i] = AddLightningEx("CLPB",true,pux[i],puy[i],0.,pux[i+1],puy[i+1],200.)
         set i = i + 1
     endloop
endfunction  

function InitTrig_t1 takes nothing returns nothing
     set gg_trg_t=CreateTrigger()
     call TriggerRegisterPlayerEvent(gg_trg_t1,Player(0),EVENT_PLAYER_END_CINEMATIC)
     call TriggerAddAction(gg_trg_t1,function t1A)
endfunction

Добавлено (13-10-2010, 20:19)
---------------------------------------------
Надо вот так. И ошибок не будет :)
Хотя можно ещё сократить.


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


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

EdiTTORRДата: Среда, 13 Октября 2010, 20:20:27 | Сообщение # 43
8 уровень
Группа: Проверенные
Сообщений: 585
Награды: 0
Репутация: 147
Блокировки:
[DUОS], надо пробелов поменьше <_<
А то некрасиво копипастер.


Местами здесь.


Сообщение отредактировал EdiTTORR - Среда, 13 Октября 2010, 20:20:55
 

[DUОS]Дата: Среда, 13 Октября 2010, 20:22:12 | Сообщение # 44
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Code
function t1A takes nothing returns nothing
       local unit u = gg_unit_hkni_0000
       local unit array d
       local real px = GetWidgetX(u)
       local real py = GetWidgetY(u)
       local real array pux
       local real array puy
          
       loop
           exitwhen i > 14
           set pux[i] = px[i]+ 300. * Cos((45. * i) * .0174532)
           set puy[i] = py[i]+ 300. * Sin((45. * i) * .0174532)
           if i > 8 then
               set pux[i] = px + 200. * Cos((60. * i) * .0174532)
               set puy[i] = py + 200. * Sin((60. * i) * .0174532)       
           endif
           set i = i + 1
       endloop

       set i = 1
       loop
           exitwhen i > 14
           set d[i] = CreateUnit(Player(0),'ewsp',pux[i],puy[i],270.)
           call UnitAddAbility(d[i],'Amrf')
           call UnitRemoveAbility(d[i],'Amrf')
           if i > 8 then
               call SetUnitFlyHeight(d[i],200.,0.)
           endif
           set d[i] = null
           set i = i + 1
       endloop

       set i = 1
          
       loop
           exitwhen i > 7
           set udg_molniya[i] = AddLightningEx("CLPB",true,pux[i],puy[i],0.,pux[i+1],puy[i+1],200.)
           set i = i + 1
       endloop
          
       set u = null
endfunction    

//======================================================================
function InitTrig_t1 takes nothing returns nothing
       set gg_trg_t=CreateTrigger()
       call TriggerRegisterPlayerEvent(gg_trg_t1,Player(0),EVENT_PLAYER_END_CINEMATIC)
       call TriggerAddAction(gg_trg_t1,function t1A)
endfunction

Во. Это нормально. И не копипаст. Я просто напросто тебя поправил.


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


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


Сообщение отредактировал [DUОS] - Среда, 13 Октября 2010, 20:24:04
 

EdiTTORRДата: Среда, 13 Октября 2010, 20:24:30 | Сообщение # 45
8 уровень
Группа: Проверенные
Сообщений: 585
Награды: 0
Репутация: 147
Блокировки:
Quote (|DUОS|)
set puy[i] = py[i]+ 300. * Sin((45. * i) * .0174532)

У тебя припадок? Что это за число?


Местами здесь.


Сообщение отредактировал EdiTTORR - Среда, 13 Октября 2010, 20:25:20
 

[DUОS]Дата: Среда, 13 Октября 2010, 21:00:25 | Сообщение # 46
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
EdiTTORR,
пи делёное на 180, а что?
Точки ставятся для того, чтобы парсер точно знал, что это реальная.


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


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

)blazer(Дата: Среда, 13 Октября 2010, 21:20:16 | Сообщение # 47
7 уровень
Группа: Проверенные
Сообщений: 308
Награды: 0
Репутация: 49
Блокировки:
а локалку i объявлять не надо чтоли?

Добавлено (13-10-2010, 21:17)
---------------------------------------------

Добавлено (13-10-2010, 21:20)
---------------------------------------------

Code
function t1A takes nothing returns nothing  
      local integer i = 1
      local unit u = gg_unit_hkni_0000  
      local unit d  
      local real px = GetWidgetX(u)  
      local real py = GetWidgetY(u)  
      local real array pux  
      local real array puy  
      loop  
          exitwhen i > 8  
          set pux[i] = px[i]+ 300. * Cos((45. * i) * .0174532)  
          set puy[i] = py[i]+ 300. * Sin((45. * i) * .0174532)  
          set i = i + 1  
      endloop  
      set i = 9  
      loop  
          exitwhen i > 14  
          set pux[i] = px + 200. * Cos((60. * i) * .0174532)  
          set puy[i] = py + 200. * Sin((60. * i) * .0174532)  
          set i = i + 1  
      endloop  
      set i = 1  
      loop  
          exitwhen i > 14  
          set d[i] = CreateUnit(Player(0),'ewsp',pux[i],puy[i],270.)  
          call UnitAddAbility(d[i],'Amrf')  
          call UnitRemoveAbility(d[i],'Amrf')  
          set i = i + 1  
      endloop  
      set i = 9  
      loop  
          exitwhen i > 14  
          call SetUnitFlyHeight(d[i],200.,0.)  
          set i = i + 1  
      endloop  
      set i = 1  
      loop  
          exitwhen i > 7  
          set udg_molniya[i] = AddLightningEx("CLPB",true,pux[i],puy[i],0.,pux[i+1],puy[i+1],200.)  
          set i = i + 1  
      endloop  
endfunction   

function InitTrig_t1 takes nothing returns nothing  
      set gg_trg_t1=CreateTrigger()  
      call TriggerRegisterPlayerEvent(gg_trg_t1,Player(0),EVENT_PLAYER_END_CINEMATIC)  
      call TriggerAddAction(gg_trg_t1,function t1A)  
endfunction

Пишу так, остаётся исправить ошибки (попытка проиндексировать переменную=))

 

[DUОS]Дата: Среда, 13 Октября 2010, 21:24:10 | Сообщение # 48
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Quote (|DUОS|)
local unit array d

!!!


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


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

EdiTTORRДата: Четверг, 14 Октября 2010, 00:01:16 | Сообщение # 49
8 уровень
Группа: Проверенные
Сообщений: 585
Награды: 0
Репутация: 147
Блокировки:
Quote (|DUОS|)
пи делёное на 180

bj_DEGTORAD(близзовское пи / 180 используемое в полярках jass)=0.01745327777777783
Quote (|DUОS|)
Точки ставятся для того, чтобы парсер точно знал, что это реальная

Если ты даёшь число параметру реальная (даже если нету дроби) то парсер воспринимает его как реальное (интеджер с дробью это другой разговор).
Code
function t1A takes nothing returns nothing
local unit u=gg_unit_hkni_0000
local unit d
local integer i=1
local real px=GetUnitX(u)
local real py=GetUnitY(u)
local real array pux
local real array puy
loop
exitwhen i>8
set pux[i]=px[i]+300*Cos((45*i)*0.0174532777777778)
set puy[i]=py[i]+300*Sin((45*i)*0.0174532777777778)
set i=i+1
endloop
set i=9
loop
exitwhen i>14
set pux[i]=px+200*Cos((60*i)*0.0174532777777778)
set puy[i]=py+200*Sin((60*i)*0.0174532777777778)
set i=i+1
endloop
set i=1
loop
exitwhen i>14
set d[i]=CreateUnit(Player(0),'ewsp',pux[i],puy[i],270)
call UnitAddAbility(d[i],'Amrf')
call UnitRemoveAbility(d[i],'Amrf')
set i=i+1
endloop
set i=9
loop
exitwhen i>14
call SetUnitFlyHeight(d[i],200,0)
set i=i+1
endloop
set i=1
loop
exitwhen i>7
set udg_molniya[i]=AddLightningEx("CLPB",true,pux[e],puy[e],0,pux[e+1],puy[i+1],200)
set i=i+1
endloop
endfunction
function InitTrig_t1 takes nothing returns nothing
set gg_trg_t=CreateTrigger()
call TriggerRegisterPlayerEvent(gg_trg_t1,Player(0),ConvertPlayerEvent(17))
call TriggerAddAction(gg_trg_t1,function t1A )
endfunction


Местами здесь.
 

)blazer(Дата: Четверг, 14 Октября 2010, 09:15:22 | Сообщение # 50
7 уровень
Группа: Проверенные
Сообщений: 308
Награды: 0
Репутация: 49
Блокировки:
Code
function t1A takes nothing returns nothing  
local unit u=gg_unit_hkni_0000  
local unit array d  
local integer i=1  
local real px = GetUnitX(u)  
local real py = GetUnitY(u)  
local real array pux
local real array puy  
loop  
exitwhen i>8  
set pux[i]=px+300*Cos((45*i)*0.0174532777777778)  
set puy[i]=py+300*Sin((45*i)*0.0174532777777778)  
set i=i+1  
endloop  
set i=9  
loop  
exitwhen i>14  
set pux[i]=px+200*Cos((60*i)*0.0174532777777778)  
set puy[i]=py+200*Sin((60*i)*0.0174532777777778)  
set i=i+1  
endloop  
set i=1  
loop  
exitwhen i>14  
set d[i]=CreateUnit(Player(0),'ewsp',pux[i],puy[i],270)  
call UnitAddAbility(d[i],'Amrf')  
call UnitRemoveAbility(d[i],'Amrf')  
set i=i+1  
endloop  
set i=9  
loop  
exitwhen i>14  
call SetUnitFlyHeight(d[i],200,0)  
set i=i+1  
endloop  
set i=1  
loop  
exitwhen i>7  
set udg_molniya[i]=AddLightningEx("CLPB",true,pux[i],puy[i],0,pux[i+1],puy[i+1],200)  
set i=i+1  
endloop  
endfunction  
function InitTrig_t1 takes nothing returns nothing  
set gg_trg_t1=CreateTrigger()  
call TriggerRegisterPlayerEvent(gg_trg_t1,Player(0),ConvertPlayerEvent(17))  
call TriggerAddAction(gg_trg_t1,function t1A )  
endfunction

Вот я все ваши недочёты исправил)
теперь ошибок нет

Добавлено (14-10-2010, 09:15)
---------------------------------------------
да и ещё
п делить на 180 лучше писать 0.01745329 --- так ошибок нет, а 0.0174532777777778 - багово)

 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » jass (jass)
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

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