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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Fatal error (Fatal error)
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
 

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

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