|
|
|
|
Fatal error
|
|
demon_nrt | Дата: Понедельник, 05 Августа 2013, 19:27:21 | Сообщение # 1 |
6 уровень
Группа: Проверенные
Сообщений: 193
Награды: 0
Репутация: 2
Блокировки:
| Парни прошу помощи, сделал способность которая при использовании выдает Fatal error, проверял код, но сам ошибки не нашел.
function Trig_Moshnii_Udar_Conditions takes nothing returns boolean if ( not ( GetSpellAbilityId() == 'A03N' ) ) then return false endif return true endfunction function Volni takes nothing returns nothing local timer Mutant = GetExpiredTimer() local integer h = GetHandleId(Mutant) local unit Musa = LoadUnitHandle(udg_Hash,h,1) local location Mul = GetUnitLoc (Musa) local integer Mui local unit Musa1 local unit Musa2 local unit Musa3 local unit Musa4 set Mui = ( Mui + 200 ) call CreateNUnitsAtLoc( 1, 'e00K', GetOwningPlayer(Musa), PolarProjectionBJ( GetUnitLoc(Musa), I2R(Mui), GetUnitFacing(Musa)), bj_UNIT_FACING ) set Musa1 = GetLastCreatedUnit() call UnitApplyTimedLifeBJ( 1.00, 'BTLF', Musa1 ) call IssuePointOrderLocBJ( Musa1, "shockwave", Mul ) call CreateNUnitsAtLoc( 1, 'e00K', GetOwningPlayer(Musa), PolarProjectionBJ(GetUnitLoc(Musa), I2R(Mui), ( 90.00 + GetUnitFacing(Musa) )), bj_UNIT_FACING ) set Musa2 = GetLastCreatedUnit() call UnitApplyTimedLifeBJ( 1.00, 'BTLF', Musa2 ) call IssuePointOrderLocBJ( Musa2, "shockwave", Mul ) call CreateNUnitsAtLoc( 1, 'e00K', GetOwningPlayer(Musa), PolarProjectionBJ(GetUnitLoc(Musa), I2R(Mui), ( 180.00 + GetUnitFacing(Musa) )), bj_UNIT_FACING ) set Musa3 = GetLastCreatedUnit() call UnitApplyTimedLifeBJ( 1.00, 'BTLF', Musa3 ) call IssuePointOrderLocBJ( Musa3, "shockwave", Mul ) call CreateNUnitsAtLoc( 1, 'e00K', GetOwningPlayer(Musa), PolarProjectionBJ(GetUnitLoc(Musa), I2R(Mui), ( 270.00 + GetUnitFacing(Musa) )), bj_UNIT_FACING ) set Musa4 = GetLastCreatedUnit() call UnitApplyTimedLifeBJ( 1.00, 'BTLF', Musa4 ) call IssuePointOrderLocBJ( Musa4, "shockwave", Mul ) endfunction function Trig_Moshnii_Udar_Actions takes nothing returns nothing local timer Mutant = GetExpiredTimer() local integer h = GetHandleId(Mutant) local unit Musa = GetSpellAbilityUnit() call SaveUnitHandle(udg_Hash,h,1,Musa) call TimerStart(Mutant,0.25,true, function Volni ) call PolledWait( 3.00 ) call PauseTimer (Mutant) endfunction
//=========================================================================== function InitTrig_Moshnii_Udar takes nothing returns nothing set gg_trg_Moshnii_Udar = CreateTrigger( ) call TriggerRegisterAnyUnitEventBJ( gg_trg_Moshnii_Udar, EVENT_PLAYER_UNIT_SPELL_EFFECT ) call TriggerAddCondition( gg_trg_Moshnii_Udar, Condition( function Trig_Moshnii_Udar_Conditions ) ) call TriggerAddAction( gg_trg_Moshnii_Udar, function Trig_Moshnii_Udar_Actions ) endfunction
Прошу, не писать лишнего, я только недавно изучил Jass поэтому лишь использую базовые знания. Не пишите про обнуления я их обнулю позже.
|
|
|
|
[SeKtOR] | Дата: Понедельник, 05 Августа 2013, 20:00:37 | Сообщение # 2 |
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
| Я конечно не проверял, но мне кажется использование шоквейва(волны силы) каждые .25 сек х4 к добру не приведёт...
Сообщение отредактировал [SeKtOR] - Понедельник, 05 Августа 2013, 20:00:59 |
|
|
|
demon_nrt | Дата: Понедельник, 05 Августа 2013, 20:04:22 | Сообщение # 3 |
6 уровень
Группа: Проверенные
Сообщений: 193
Награды: 0
Репутация: 2
Блокировки:
| Да, не в этом дело) Это просто тест для себя. Что то вроде учения. Вот и проблема в Fatal error на триггерах все работает. У меня еще один вопрос : Почему при использовании локальных integer оно не перезаписывается. Пример : local integer int set int = int + 10 (Оно не будет 10,20,30) а будет только 10. При таймере в 1 сек.
|
|
|
|
NightCatty | Дата: Понедельник, 05 Августа 2013, 20:56:14 | Сообщение # 4 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| Цитата (|SeKtOR|) Я конечно не проверял, но мне кажется использование шоквейва(волны силы) каждые .25 сек х4 к добру не приведёт... чушь, зырь ульту Hexing, там, если не ошибаюсь, каждые .1 сек, это от слэма земля заглючить может demon_nrt, важно инициализировать переменную: Код local integer i = 0 set i = i + 10 //10 set i = i / 10 //1 set i = i * 0.44445 //1 <img rel="usm" src="http://warcraft3ft.info/image/smiles/biggrin.gif" border="0" align="absmiddle" alt=":D" /> set i = i+10// 11 if not (i == 11) then call BJDebugMsg("Над моим редактором поработали хацкеры!") endif
Тщетно бытиё! :c
|
|
|
|
demon_nrt | Дата: Понедельник, 05 Августа 2013, 21:16:26 | Сообщение # 5 |
6 уровень
Группа: Проверенные
Сообщений: 193
Награды: 0
Репутация: 2
Блокировки:
| Цитата (NightCatty) demon_nrt, важно инициализировать переменную: Код local integer i = 0 set i = i + 10 //10 set i = i / 10 //1 set i = i * 0.44445 //1 <img rel="usm" src="http://warcraft3ft.info/image/smiles/biggrin.gif" border="0" align="absmiddle" alt=":D" /> set i = i+10// 11 if not (i == 11) then call BJDebugMsg("Над моим редактором поработали хацкеры!") endif
Простите но я не понял, что вы имели виду.
|
|
|
|
NightCatty | Дата: Понедельник, 05 Августа 2013, 21:49:52 | Сообщение # 6 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| Цитата (demon_nrt) local integer int здесь нет int = 0, а значит переменная не инициализирована, к ней нельзя прибавлять что либо
Тщетно бытиё! :c
|
|
|
|
demon_nrt | Дата: Понедельник, 05 Августа 2013, 22:27:50 | Сообщение # 7 |
6 уровень
Группа: Проверенные
Сообщений: 193
Награды: 0
Репутация: 2
Блокировки:
| Цитата (NightCatty) здесь нет int = 0, а значит переменная не инициализирована, к ней нельзя прибавлять что либо Ну даже так : local int = o set int = int+ 10 (оно будет писать что int равно 0) Даже не 10 и не 20 а именно 0
|
|
|
|
Prikol | Дата: Понедельник, 05 Августа 2013, 22:39:37 | Сообщение # 8 |
8 уровень
Группа: Проверенные
Сообщений: 699
Награды: 0
Репутация: 427
Блокировки:
| Цитата (demon_nrt) function Trig_Moshnii_Udar_Actions takes nothing returns nothing local timer Mutant = GetExpiredTimer() local integer h = GetHandleId(Mutant) local unit Musa = GetSpellAbilityUnit() call SaveUnitHandle(udg_Hash,h,1,Musa) call TimerStart(Mutant,0.25,true, function Volni ) call PolledWait( 3.00 ) call PauseTimer (Mutant) endfunction
А разве не должно стоять CreateTimer() вместо GetExpiredTimer() ? Ведь таймер то не создан а ты с ним воротишь что то
Сообщение отредактировал Prikol - Понедельник, 05 Августа 2013, 22:42:33 |
|
|
|
demon_nrt | Дата: Понедельник, 05 Августа 2013, 23:48:31 | Сообщение # 9 |
6 уровень
Группа: Проверенные
Сообщений: 193
Награды: 0
Репутация: 2
Блокировки:
| Блин друг большое спасибо, вот что значит не внимательность!!Ты не представляешь как ты выручил меня!! Но остался еще 1 вопрос с целочисленными.
|
|
|
|
NightCatty | Дата: Понедельник, 05 Августа 2013, 23:53:37 | Сообщение # 10 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| Цитата (demon_nrt) Но остался еще 1 вопрос с целочисленными. быть может ты каждый раз в функции заного создаёшь эту переменную? для повторного использования переменных используй глобальные переменные, локальные лишь разовые для функции
Тщетно бытиё! :c
|
|
|
|
demon_nrt | Дата: Понедельник, 05 Августа 2013, 23:55:58 | Сообщение # 11 |
6 уровень
Группа: Проверенные
Сообщений: 193
Награды: 0
Репутация: 2
Блокировки:
| Ну мне надо, сделать так чтобы каждые 0.25 секунд целочисленная увеличивалась на 200 на локальных переменных. У меня код выглядит вот так : local integer Mui = 0 set Mui = Mui + 200
|
|
|
|
NightCatty | Дата: Вторник, 06 Августа 2013, 00:18:56 | Сообщение # 12 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| demon_nrt, ну что за люди? ни малейшего понятия о локальных переменных, дуй сюда и читай весь цикл статей тебе нужна глобальная переменная, а для mui - глобальный массив или хештаблица объяснять по пальцам не буду, ибо спать пошёл
Тщетно бытиё! :c
|
|
|
|
|
|
|
|
|
|
|