Сейчас 12:26:10 Пятница, 26 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Раздел картостроителя » [JASSфак] Лекция 2. Локальные переменные.
[JASSфак] Лекция 2. Локальные переменные.
AkvariumДата: Пятница, 20 Ноября 2009, 16:51:12 | Сообщение # 26
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
В чем ошибка?
Code

function Trig_A takes nothing returns nothing
call KillUnit( GetEnumUnit() )
endfunction
function Trig_A_Actions takes nothing returns effect
               call ForDroupBJ(GetUnitsInRangeOfLocAll(300.00, GetUnitLoc(GetTriggerUnit())), function Trig_A)
               set bj_lastCreatedEffect = AddSpecialEffectLoc("Abilities\\Spells\\Human\\Resurrect\\ResurrectCaster.mdl", GetUnitLoc(GetTriggerUnit()))       
               return bj_lastCreatedEffect        
               set bj_lastCreatedEffect = null
               set bj_lastCreatedEffect = AddSpecialEffectLoc("Abilities\\Spells\\Undead\\RegenerationAura\\ObsidianRegenAura.mdl", GetUnitLoc(GetTriggerUnit()))       
               return bj_lastCreatedEffect        
               set bj_lastCreatedEffect = null
               call ReviveHeroLoc( GetTriggerUnit(), GetUnitLoc(GetTriggerUnit()), false )
               set bj_forLoopAIndex = bj_forLoopAIndex + 1
endfunction
//===========================================================================
function InitTrig_A takes nothing returns nothing
       local integer index = 0      
       set gg_trg_A = CreateTrigger(  )
       loop
           call TriggerRegisterPlayerUnitEvent(gg_trg_A, Player(index), EVENT_PLAYER_UNIT_DEATH, null)
           set index = index + 1
           exitwhen index == bj_MAX_PLAYER_SLOTS
       endloop
       call TriggerAddAction( gg_trg_A, function Trig_A_Actions )
endfunction

Пишет "отсутствует название функции" (5 стока сверху)
Утечки и прочее уберу потом. Скажите в чем ошибка.
ЗЫ: [DUOS], к те там в приемной комиссии на jassфак еще ломятся)




Сообщение отредактировал Akvarium - Пятница, 20 Ноября 2009, 16:51:36
 

СорнемусДата: Пятница, 20 Ноября 2009, 17:03:35 | Сообщение # 27
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
Akvarium, опять пишешь Droup, а не Group...

Добавлено (20-11-2009, 17:03)
---------------------------------------------
Akvarium, раскрывать TriggerRegisterAnyUnitEventBJ не обязательно =)

 

AkvariumДата: Пятница, 20 Ноября 2009, 17:04:55 | Сообщение # 28
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
Сорнемус, ахахаахахахахахах))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
А почему не обязательно?)))


 

СорнемусДата: Пятница, 20 Ноября 2009, 17:08:27 | Сообщение # 29
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
Quote (Akvarium)
Сорнемус, ахахаахахахахахах)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) А почему не обязательно?)))

Статью читал? -_- Где там сказано что обязательно?
 

AkvariumДата: Пятница, 20 Ноября 2009, 17:47:31 | Сообщение # 30
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
Quote (Сорнемус)
Где там сказано что обязательно?

а где сказано что не обязательно? -_-


 

0x4453Дата: Пятница, 20 Ноября 2009, 17:53:09 | Сообщение # 31
3 уровень
Группа: Пользователи
Сообщений: 74
Награды: 0
Репутация: 13
Блокировки:
Akvarium, опять локи
вообще я бы написал так:
Code
function Action takes nothing returns nothing  
call KillUnit( GetEnumUnit() )  
endfunction  

function Trig_A_Actions takes nothing returns nothing
   local location loc = GetUnitLoc(GetTriggerUnit())
   local effect e
   call ForGroup(GetUnitsInRangeOfLocAll(300.00, loc), function Action)  
   set e = AddSpecialEffectLoc("Abilities\\Spells\\Human\\Resurrect\\ResurrectCaster.mdl", loc)        
   call DestroyEffect(e)       
   set e = null  
   set e = AddSpecialEffectLoc("Abilities\\Spells\\Undead\\RegenerationAura\\ObsidianRegenAura.mdl", loc)            
   call DestroyEffect(e)       
   set e = null  
   call ReviveHeroLoc( GetTriggerUnit(), loc, false )  
   call RemoveLocation(loc)
   set loc = null
endfunction  
//===========================================================================  
function InitTrig_A takes nothing returns nothing  
        local integer i = 0x00       
        local trigger t = CreateTrigger(  )  
        loop  
          exitwhen i>0x0f
            call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_DEATH, null)  
            set t = t + 1  
        endloop  
        call TriggerAddAction( t, function Trig_A_Actions )  
endfunction

надеюсь правильно идея была
 

AkvariumДата: Пятница, 20 Ноября 2009, 17:54:37 | Сообщение # 32
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
0x4453,
Quote (Akvarium)
Утечки и прочее уберу потом. Скажите в чем ошибка.

Ответ я получил.


 

0x4453Дата: Пятница, 20 Ноября 2009, 17:56:34 | Сообщение # 33
3 уровень
Группа: Пользователи
Сообщений: 74
Награды: 0
Репутация: 13
Блокировки:
хотя я так в основном и пишу
PS: hex <3

Добавлено (20-11-2009, 17:56)
---------------------------------------------
ну я тебе красивее код как бэ сделал

Code
function InitTrig_A takes nothing returns nothing   
         local integer i = 0x00        
         local trigger t = CreateTrigger(  )   
         loop   
           exitwhen i>0x0f  
             call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_DEATH, null)   
             set t = t + 0x01   
         endloop   
         call TriggerAddAction( t, function Trig_A_Actions )   
        set t = null
endfunction

так даже правильнее
 

СорнемусДата: Пятница, 20 Ноября 2009, 18:31:55 | Сообщение # 34
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
Quote (Akvarium)
а где сказано что не обязательно? -_-

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

Добавлено (20-11-2009, 18:31)
---------------------------------------------
Блин, где в глобальных переменных тип "Хеш-таблица" >.<

 

AkvariumДата: Пятница, 20 Ноября 2009, 18:33:56 | Сообщение # 35
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
Сорнемус, я ржал что 2 раз допустил ошибку Group->Droup

 

СорнемусДата: Пятница, 20 Ноября 2009, 18:53:06 | Сообщение # 36
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
Да что за хрень >.<
JNGP пишет что не бывает такой функции InitHashtable >.<
У меня 1.24
 

[DUОS]Дата: Пятница, 20 Ноября 2009, 20:01:17 | Сообщение # 37
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Quote (Сорнемус)
Да что за хрень >.<
JNGP пишет что не бывает такой функции InitHashtable >.<
У меня 1.24

Поменяй common.j на этот.


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


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

СорнемусДата: Пятница, 20 Ноября 2009, 21:29:04 | Сообщение # 38
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
[DUОS], убийственный вопрос: а где его менять? О_о

Добавлено (20-11-2009, 21:29)
---------------------------------------------
Всё, понял где =)

 

[DUОS]Дата: Пятница, 20 Ноября 2009, 21:40:41 | Сообщение # 39
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Quote (Сорнемус)
Всё, понял где =)

Хорошо. :)


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


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

0x4453Дата: Пятница, 20 Ноября 2009, 23:27:32 | Сообщение # 40
3 уровень
Группа: Пользователи
Сообщений: 74
Награды: 0
Репутация: 13
Блокировки:
В папке с джассхэлпером
т.к он считывает для проверки b.j и c.j оттуда
 

GooGLeДата: Суббота, 21 Ноября 2009, 09:18:14 | Сообщение # 41
1 уровень
Группа: Пользователи
Сообщений: 15
Награды: 0
Репутация: 0
Блокировки:
0x4453, а в восьмеричной системе можешь?
0x4453, а вставлять свой код в карту умеешь? Ошибка там.
 

AkvariumДата: Суббота, 21 Ноября 2009, 13:03:07 | Сообщение # 42
8 уровень
Группа: Проверенные
Сообщений: 581
Награды: 1
Репутация: 87
Блокировки:
[DUОS], а когда 3 урок? ^_^

 

0x4453Дата: Суббота, 21 Ноября 2009, 15:13:55 | Сообщение # 43
3 уровень
Группа: Пользователи
Сообщений: 74
Награды: 0
Репутация: 13
Блокировки:
GooGLe, я изменял имеющийся,а в восьмеричной и двоичной нету смысла(второе вар не подерживает)
 

DjimmДата: Суббота, 21 Ноября 2009, 15:33:28 | Сообщение # 44
5 уровень
Группа: Проверенные
Сообщений: 117
Награды: 0
Репутация: 20
Блокировки:
Возможно ответы уже прозвучали здесь, но я все же отвечу для себя. :)
Quote (|DUОS|)
1. Найти то, что можно было сделать локальной переменной (пункт 3)

GetPlayersAll()
Quote (|DUОS|)
2. По статье "Как оптимизировать код" догадайтесь, как можно оптимизировать действие.

Code
function Trig_Untitled_Trigger_001_Actions takes nothing returns nothing  
local player p=GetLocalPlayer()
   call DisplayTimedTextToPlayer( p, 30, "hello" )  
endfunction

Quote (|DUОS|)
3. Ну и, конечно же, жду ваших шаржей в JASS.

Вот
P.s. Извиняюсь, что так долго. В четверг не успел, а в пятницу вообще свободного времени не было.
 

GooGLeДата: Суббота, 21 Ноября 2009, 15:48:54 | Сообщение # 45
1 уровень
Группа: Пользователи
Сообщений: 15
Награды: 0
Репутация: 0
Блокировки:
Твой
function InitTrig_A takes nothing returns nothing
local integer i = 0x00
local trigger t = CreateTrigger( )
loop
exitwhen i>0x0f
call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_DEATH, null)
set t = t + 0x01
endloop
call TriggerAddAction( t, function Trig_A_Actions )
set t = null
endfunction
хуже оригинала и с лишней ошибкой, которой в оригинале не было.
 

0x4453Дата: Суббота, 21 Ноября 2009, 16:04:22 | Сообщение # 46
3 уровень
Группа: Пользователи
Сообщений: 74
Награды: 0
Репутация: 13
Блокировки:
GooGLe, если ты про bj_MAX_PLAYER_SLOTS,то можно досчитать и до 15 =\
 

GooGLeДата: Суббота, 21 Ноября 2009, 16:28:37 | Сообщение # 47
1 уровень
Группа: Пользователи
Сообщений: 15
Награды: 0
Репутация: 0
Блокировки:
exitwhen i == bj_MAX_PLAYER_SLOTS и exitwhen i>0x0f эквивалентны.
Думай дальше.
 

[DUОS]Дата: Суббота, 21 Ноября 2009, 16:40:46 | Сообщение # 48
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Quote (Djimm)
1. Найти то, что можно было сделать локальной переменной (пункт 3)

Djimm,
Не попал в точку.
Там надо было избавиться от GetPlayersAll(), заменив на GetLocalPlayer().
А 3-й пункт - можно было сделать локальным ещё и триггер.

А шарж великолепен. Мне понравилось. Если бы ты определял ещё и ничью, было бы шикарно :).

0x4453,
Ты знаток джасса. Разъясни мне одну вещь: каким посредством менять GetInventoryIndexOfItemBJ() на нативку?


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


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

0x4453Дата: Суббота, 21 Ноября 2009, 16:59:55 | Сообщение # 49
3 уровень
Группа: Пользователи
Сообщений: 74
Награды: 0
Репутация: 13
Блокировки:
[DUОS], у мя даже этой бжшки нету в тэше О_о
GooGLe, т.т
я нарыл очепятку
function InitTrig_A takes nothing returns nothing
local integer i = 0x00
local trigger t = CreateTrigger( )
loop
exitwhen i>0x0f
call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_DEATH, null)
set i = i + 0x01
endloop
call TriggerAddAction( t, function Trig_A_Actions )
set t = null
endfunction

Добавлено (21-11-2009, 16:59)
---------------------------------------------
так надо )

 

GooGLeДата: Суббота, 21 Ноября 2009, 17:50:39 | Сообщение # 50
1 уровень
Группа: Пользователи
Сообщений: 15
Награды: 0
Репутация: 0
Блокировки:
0x4453, ну как же ты не смог догадаться то. [DUОS], учитель, имел ввиду GetInventoryIndexOfItemTypeBJ.
А теперь найди два усовершенствования для своего
function InitTrig_A takes nothing returns nothing
    local integer i = 0x00
    local trigger t = CreateTrigger( )
    loop
      exitwhen i>0x0f
      call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_DEATH, null)
      set i = i + 0x01

    endloop
    call TriggerAddAction( t, function Trig_A_Actions )
    set t = null

endfunction

Добавлено (21-11-2009, 17:49)
---------------------------------------------
Одно усовершенствование покажет, что ты таки кодер, а второе, - что ты таки знаешь JASS2.

Добавлено (21-11-2009, 17:50)
---------------------------------------------

Quote (0x4453)
так надо )

Не надо так.
 

Форум о Warcraft 3 » Раздел для картостроителей » Раздел картостроителя » [JASSфак] Лекция 2. Локальные переменные.
  • Страница 2 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:

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