Локальная переменная
GameprO Дата: Вторник, 01 Мая 2012, 17:59:20 | Сообщение # 1
7 уровень
Группа: Проверенные
Сообщений: 422
Награды:
0
Репутация:
76
Блокировки:
Я пока-что начинающий жассер, и хочу сделать вот так: Герой атакован, то нанести врагу урон ( 1-3% от здоровья атакующего ), и создать плав. текст, над атакующим юнитом ( урон нанесённый атакующему от спелла ) и через 0.5 сек удалить, но за это время могут ударить 5 врагов, ну я попробовал сделать через локальную переменную... Код:
Code
local string S function Trig_SkillAypA_Conditions takes nothing returns boolean if ( not ( UnitHasBuffBJ(GetAttackedUnitBJ(), 'BHtc') == true ) ) then return false endif return true endfunction function Trig_SkillAypA_Actions takes nothing returns nothing set udg_A_DAMAGE[4] = ( GetRandomReal(0.01, 0.03) * GetUnitStateSwap(UNIT_STATE_MAX_LIFE, GetAttacker()) ) call AddSpecialEffectLocBJ( GetUnitLoc(GetAttacker()), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" ) call UnitDamageTargetBJ( GetAttackedUnitBJ(), GetAttacker(), udg_A_DAMAGE[4], ATTACK_TYPE_NORMAL, DAMAGE_TYPE_LIGHTNING ) call CreateTextTagUnitBJ( R2S(udg_A_DAMAGE[4]), GetAttacker(), 0, 10, 0.00, 0.00, 100, 0 ) set S = GetLastCreatedTextTag() call SetTextTagVelocityBJ( S, 250.00, 90 ) call TriggerSleepAction( 0.50 ) call DestroyTextTagBJ( S ) endfunction //=========================================================================== function InitTrig_SkillAypA takes nothing returns nothing set gg_trg_SkillAypA = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_SkillAypA, EVENT_PLAYER_UNIT_ATTACKED ) call TriggerAddCondition( gg_trg_SkillAypA, Condition( function Trig_SkillAypA_Conditions ) ) call TriggerAddAction( gg_trg_SkillAypA, function Trig_SkillAypA_Actions ) endfunction set S = null
Помогите.
Всё гениальное - просто, но не всё простое - гениально...
oleg_best_oleg Дата: Вторник, 01 Мая 2012, 18:04:28 | Сообщение # 2
Группа: Заблокированные
Сообщений: 1726
Награды:
0
Репутация:
654
Блокировки:
Разве оно должно стоять в самом верху ? Попробуй там где set udg_A_Damaga[4] = .... И JPNG есть ?
SirNikolas Дата: Вторник, 01 Мая 2012, 18:05:02 | Сообщение # 3
Группа: Модераторы
Сообщений: 6729
Награды:
1
Репутация:
1867
Блокировки:
Code
call SetTextTagPermanent(t, false) call SetTextTagLifespan(t, .5)
GameprO Дата: Вторник, 01 Мая 2012, 18:05:10 | Сообщение # 4
7 уровень
Группа: Проверенные
Сообщений: 422
Награды:
0
Репутация:
76
Блокировки:
Есть, но не открывается. Quote
Разве оно должно стоять в самом верху ? Попробуй там где set udg_A_Damaga[4] = ....
Сейчас попробую
Всё гениальное - просто, но не всё простое - гениально...
SirNikolas Дата: Вторник, 01 Мая 2012, 18:05:28 | Сообщение # 5
Группа: Модераторы
Сообщений: 6729
Награды:
1
Репутация:
1867
Блокировки:
Quote (oleg_best_oleg )
JPNG
JASS NewGen Pack
GameprO Дата: Вторник, 01 Мая 2012, 18:20:06 | Сообщение # 6
7 уровень
Группа: Проверенные
Сообщений: 422
Награды:
0
Репутация:
76
Блокировки:
Тут что за хрень? код:
Code
function Trig_SkillAypA_Conditions takes nothing returns boolean if ( not ( UnitHasBuffBJ(GetAttackedUnitBJ(), 'BHtc') == true ) ) then return false endif return true endfunction function Trig_SkillAypA_Actions takes nothing returns nothing local string S set udg_A_DAMAGE[4] = ( GetRandomReal(0.01, 0.03) * GetUnitStateSwap(UNIT_STATE_MAX_LIFE, GetAttacker()) ) call AddSpecialEffectLocBJ( GetUnitLoc(GetAttacker()), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" ) call UnitDamageTargetBJ( GetAttackedUnitBJ(), GetAttacker(), udg_A_DAMAGE[4], ATTACK_TYPE_NORMAL, DAMAGE_TYPE_LIGHTNING ) call CreateTextTagUnitBJ( R2S(udg_A_DAMAGE[4]), GetAttacker(), 0, 10, 0.00, 0.00, 100, 0 ) set udg_A_D_C_CT[3] = GetLastCreatedTextTag() call SetTextTagVelocityBJ( udg_A_D_C_CT[3], 250.00, 90 ) call SetTextTagPermanent(S, false) call SetTextTagLifespan(S, .5) endfunction //=========================================================================== function InitTrig_SkillAypA takes nothing returns nothing set gg_trg_SkillAypA = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_SkillAypA, EVENT_PLAYER_UNIT_ATTACKED ) call TriggerAddCondition( gg_trg_SkillAypA, Condition( function Trig_SkillAypA_Conditions ) ) call TriggerAddAction( gg_trg_SkillAypA, function Trig_SkillAypA_Actions ) endfunction
Всё гениальное - просто, но не всё простое - гениально...
Сообщение отредактировал GameprO - Вторник, 01 Мая 2012, 18:20:45
SirNikolas Дата: Вторник, 01 Мая 2012, 18:21:03 | Сообщение # 7
Группа: Модераторы
Сообщений: 6729
Награды:
1
Репутация:
1867
Блокировки:
Quote (pjass.exe )
Строка 6194: Отсутствует название Строка 6195: Отсутствует название
Ну так замени t на нужный тексттэг. Насчет JNGP - его используют вместо World Editor.
GameprO Дата: Вторник, 01 Мая 2012, 18:22:01 | Сообщение # 8
7 уровень
Группа: Проверенные
Сообщений: 422
Награды:
0
Репутация:
76
Блокировки:
Quote
Ну так замени t на нужный тексттэг.
Заменил уже, последняя ошибка
Всё гениальное - просто, но не всё простое - гениально...
SirNikolas Дата: Вторник, 01 Мая 2012, 18:23:28 | Сообщение # 9
Группа: Модераторы
Сообщений: 6729
Награды:
1
Репутация:
1867
Блокировки:
... Где заменил? Какую... строку ты передаешь в функции?
GameprO Дата: Вторник, 01 Мая 2012, 18:25:07 | Сообщение # 10
7 уровень
Группа: Проверенные
Сообщений: 422
Награды:
0
Репутация:
76
Блокировки:
Code
call SetTextTagPermanent(t, false) call SetTextTagLifespan(t, .5)
на Code
call SetTextTagPermanent(S, false) call SetTextTagLifespan(S, .5)
заменил, но выводит странную ошибку
Всё гениальное - просто, но не всё простое - гениально...
SirNikolas Дата: Вторник, 01 Мая 2012, 18:26:38 | Сообщение # 11
Группа: Модераторы
Сообщений: 6729
Награды:
1
Репутация:
1867
Блокировки:
На udg_A_D_T_T_C_еще_какую_то_хрень[3] надо заменять.
GameprO Дата: Вторник, 01 Мая 2012, 18:29:46 | Сообщение # 12
7 уровень
Группа: Проверенные
Сообщений: 422
Награды:
0
Репутация:
76
Блокировки:
SirNikolas , "udg_A_D_T_T_C_еще_какую_то_хрень[3]" вроде не локальная переменная, или я не понимаю зачем?Добавлено (01 Май 2012, 18:29:46) --------------------------------------------- Аааа,
Code
set udg_A_D_C_CT[3] = GetLastCreatedTextTag() call SetTextTagVelocityBJ( udg_A_D_C_CT[3], 250.00, 90 )
Забыл "S" указать там)))
Всё гениальное - просто, но не всё простое - гениально...
SirNikolas Дата: Вторник, 01 Мая 2012, 18:31:30 | Сообщение # 13
Группа: Модераторы
Сообщений: 6729
Награды:
1
Репутация:
1867
Блокировки:
У S должен быть тип texttag.
GameprO Дата: Вторник, 01 Мая 2012, 18:33:29 | Сообщение # 14
7 уровень
Группа: Проверенные
Сообщений: 422
Награды:
0
Репутация:
76
Блокировки:
Теперь ещё 5 ошибок высветились, а не можете мне сделать такой спелл? :\Добавлено (01 Май 2012, 18:33:29) ---------------------------------------------SirNikolas , у меня "local string S"
Всё гениальное - просто, но не всё простое - гениально...
SirNikolas Дата: Вторник, 01 Мая 2012, 18:38:14 | Сообщение # 15
Группа: Модераторы
Сообщений: 6729
Награды:
1
Репутация:
1867
Блокировки:
Простой вопрос: зачем ты создал переменную S типа string?
Hexing Дата: Вторник, 01 Мая 2012, 18:39:19 | Сообщение # 16
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды:
1
Репутация:
432
Блокировки:
Quote (GameprO )
local string S
занеси в тело функции
GameprO Дата: Вторник, 01 Мая 2012, 18:41:56 | Сообщение # 17
7 уровень
Группа: Проверенные
Сообщений: 422
Награды:
0
Репутация:
76
Блокировки:
"string" не отвечает за локальную? ок, сейчас поменяю, туплю^^ SirNikolas , Спасибо большое!!! Работает:)
Всё гениальное - просто, но не всё простое - гениально...
Сообщение отредактировал GameprO - Вторник, 01 Мая 2012, 18:42:08
SirNikolas Дата: Вторник, 01 Мая 2012, 18:42:39 | Сообщение # 18
Группа: Модераторы
Сообщений: 6729
Награды:
1
Репутация:
1867
Блокировки:
Quote (SirNikolas )
Простой вопрос: зачем ты создал переменную S типа string?
Добавлено (01 Май 2012, 18:42:39) --------------------------------------------- Ну наконец-то.