Сейчас 02:17:17 Среда, 29 ноября, 2023 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Раздел картостроителя » [JASSфак] Лекция 4. Циклы.
[JASSфак] Лекция 4. Циклы.
[DUОS]Дата: Воскресенье, 29 Ноября 2009, 14:39:16 | Сообщение # 26
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Quote (HAPKOMAH)
правильного варианта от учителя не будет?

Quote (Akvarium)
set bj_lastCreatedEffect

Akvarium,
Меняй! Меняй это на локал эффект!
Quote (Akvarium)
bj_wantDestroyGroup

-_- Вообще не нужно...


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


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

H_A_PKДата: Вторник, 05 Января 2010, 03:29:42 | Сообщение # 27
Быдлокодер
Группа: Проверенные
Сообщений: 2605
Награды: 1
Репутация: 822
Блокировки:
Ы) я даж д/з не выложил, корочи вот!
Code
function Trig_g_Func003A takes nothing returns nothing
           set e = AddSpecialEffectLoc(GetUnitLoc(GetEnumUnit()), "Abilities\\Spells\\Undead\\DarkRitual\\DarkRitualTarget.mdl")
           set e = null
endfunction

function Trig_g_Conditions takes nothing returns boolean
           if  ( GetSpellAbilityId() == 'AOcl' ) then
           endif
endfunction

functions Trig_g_Actions takes nothing returns nothig

local unit u
set u = GetSpellTargetUnit
local real r = 256
local location Point = GetUnitLoc(u)
local group g = GetUnitsInRangeOfLocMatching(r, Point, Condition(function Trig_g_Func003001002003))) == true ) ) then
local boolean wantDestroy = bj_wantDestroyGroup
set bj_wantDestroyGroup = false
call ForGroup(g, Trig_g_Func003A)
set u = null
set Point = null

endfunction

//===========================================================================
function InitTrig_g takes nothing returns nothing
           set gg_trg_g = CreateTrigger(  )
           call TriggerRegisterAnyUnitEventBJ( gg_trg_g, EVENT_PLAYER_UNIT_SPELL_CAST )
           call TriggerAddCondition( gg_trg_g, Condition( function Trig_g_Conditions ) )
           call TriggerAddAction( gg_trg_g, function Trig_g_Actions )
endfunction


проклятье ляжет на любого
кто дочитает до конца
нет не дочитывай не надо
остановись ну всё капец


Сообщение отредактировал H_A_PK - Вторник, 05 Января 2010, 05:44:34
 

СорнемусДата: Вторник, 05 Января 2010, 15:54:20 | Сообщение # 28
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
H_A_PK, нус, пройдёмся. Условия ставить надо вот так:
Code
function Trig_g_Conditions takes nothing returns boolean  
            return GetSpellAbilityId() == 'AOcl'
endfunction



Code
function Trig_g_Func003A takes nothing returns nothing  
            set e = AddSpecialEffectLoc(GetUnitLoc(GetEnumUnit()), "Abilities\\Spells\\Undead\\DarkRitual\\DarkRitualTarget.mdl")  
            set e = null  
endfunction

А где объявление этой самой переменной?
Так надо:
Code
function Trig_g_Func003A takes nothing returns nothing  
            local effect e = AddSpecialEffectLoc(GetUnitLoc(GetEnumUnit()), "Abilities\\Spells\\Undead\\DarkRitual\\DarkRitualTarget.mdl")  
            set e = null  
endfunction



Code
functions Trig_g_Actions takes nothing returns nothig  

local unit u  
set u = GetSpellTargetUnit  
local real r = 256  
local location Point = GetUnitLoc(u)  
local group g = GetUnitsInRangeOfLocMatching(r, Point, Condition(function Trig_g_Func003001002003))) == true ) ) then  
local boolean wantDestroy = bj_wantDestroyGroup  
set bj_wantDestroyGroup = false  
call ForGroup(g, Trig_g_Func003A)  
set u = null  
set Point = null  

endfunction

Объявление переменныех должно быть в начале функции. Плюс ошибочка:
Code
functions Trig_g_Actions takes nothing returns nothig  
local unit u  = GetSpellTargetUnit()
local real r = 256
local location Point = GetUnitLoc(u)  
local group g = GetUnitsInRangeOfLocMatching(r, Point, Condition(function Trig_g_Func003001002003))) == true ) ) then  
local boolean wantDestroy = bj_wantDestroyGroup  
set bj_wantDestroyGroup = false  
call ForGroup(g, Trig_g_Func003A)  
set u = null  
set Point = null
set g = null
endfunction



Code
function Trig_g_Func003001002003

А где эта функция находится? О_о
 

H_A_PKДата: Вторник, 05 Января 2010, 16:18:17 | Сообщение # 29
Быдлокодер
Группа: Проверенные
Сообщений: 2605
Награды: 1
Репутация: 822
Блокировки:
Quote (Сорнемус)
А где объявление этой самой переменной? Так надо:

забыл блин
Quote (Сорнемус)
Объявление переменныех должно быть в начале функции. Плюс ошибочка:

))
Quote (Сорнемус)
А где эта функция находится? О_о

Code
Function Trig_g_Func003001002003 takes nothing returns nothing
   return (короч: совбодающий)!= u
endfunction

ай забыл )

Вобщем Сорнемус, сПС ток + ща немогу, типа 3 дня ещё )


проклятье ляжет на любого
кто дочитает до конца
нет не дочитывай не надо
остановись ну всё капец
 

СорнемусДата: Вторник, 05 Января 2010, 17:03:47 | Сообщение # 30
9 уровень
Группа: Проверенные
Сообщений: 854
Награды: 0
Репутация: 120
Блокировки:
Quote (H_A_PK)
Function Trig_g_Func003001002003 takes nothing returns nothing   
 return (короч: совбодающий)!= u
endfunction

Откуда взялся u? =) Не забывай, что локальные переменные действуют только в пределах одной функции. Передавать между функциями можно глобалками, хеш-таблицами (насчёт этого пока не заморачивайся) или объявлять их.
 

subakuДата: Понедельник, 25 Января 2010, 17:00:12 | Сообщение # 31
6 уровень
Группа: Проверенные
Сообщений: 174
Награды: 0
Репутация: -18
Блокировки:
[DUОS], тут, можно ещё дать советы оптимизации циклов, пример:
"Циклы с триггеров на джазз переводятся некорректно
"
Quote (|DUОS|)
exitwhen i > 7

Если бы, это было с триггера переведено, то там бы было так:
Code
exitwhen TriggerblablablaFunc252352

Тоесть, в начале триггера создалась бы функция TriggerblablablaFunc252352 для проверки i > 7
Её нужно удалить а exitwhen TriggerblablablaFunc252352 заменить на
exitwhen i > 7
;)
Ну а в целом статья неплохая)


ФЕНИКС ЧО


Сообщение отредактировал subaku - Понедельник, 25 Января 2010, 17:02:08
 

SirNikolasДата: Пятница, 29 Октября 2010, 15:18:43 | Сообщение # 32
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Подскажите, пожалуйста, как раскрывается "ForGroupBJ". А то из-за моего бреда карта вылетает после загрузки.

Добавлено (29-10-2010, 15:18)
---------------------------------------------
Наконец-то добрался до этой работы.
Purge Lighting
Однако эффекты не всегда создаются, на ком нужно.




Сообщение отредактировал SirNikolas - Четверг, 22 Июля 2010, 21:28:47
 

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

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