Unable to find prototype: function InitSetBar takes nothing *** inside the library.
Выдает такую ошибку, хотя раньше все работало. Я только добавил одну функцию в библиотеку и ее вызов. Что могло пойти не так?
Выдает такую ошибку, хотя раньше все работало. Я только добавил одну функцию в библиотеку и ее вызов. Что могло пойти не так?
Принятый ответ
Так ты всю либо кинь.
кат
//=====================================================================================================\\
library MainBar initializer InitSetBar
native UnitAlive takes unit u returns boolean
globals
constant real br_updatePeriod = 0.2 //период обновления баров.
integer array br_indHP //сохраняет текущий индекс модели хпбара, чтобы сравнить, изменился ли он.
integer array br_indMP //сохраняет текущий индекс модели мпбара, чтобы сравнить, изменился ли он.
integer array br_abilityHP
integer array br_abilityMP
integer br_unitCounter = 0
effect array br_effHP //записывает хпбар, чтобы его можно было удалить и заменить другим.
effect array br_effMP //записывает хпбар, чтобы его можно было удалить и заменить другим.
region br_mapArea = null
unit array br_unit
boolean array br_unitIntimer
endglobals
nothing SetBar( ){
integer i = 1
integer iend = br_unitCounter
integer indHP
integer indMP
loop{
exitwhen i > iend
if (UnitAlive(br_unit[i])) {
indHP = R2I(GetUnitLifePercent(br_unit[i])/5)
if (br_indHP[i] != indHP) {
UnitRemoveAbility(br_unit[i], br_abilityHP[br_indHP[i]])
UnitAddAbility (br_unit[i], br_abilityHP[indHP])
br_indHP[i] = indHP
}
indMP = R2I(GetUnitManaPercent(br_unit[i])/5)
if (br_indMP[i] != indMP) and (GetUnitState(br_unit[i], UNIT_STATE_MAX_MANA) > 0) {
UnitRemoveAbility(br_unit[i], br_abilityMP[br_indMP[i]])
UnitAddAbility (br_unit[i], br_abilityMP[indMP])
br_indMP[i] = indMP
}
}
i++
}
}
nothing TimerStartEx ( timer whichTimer, real period, boolean isPeriodic, code handlerFunc, integer userData ){
TimerStart(whichTimer, I2R(userData), false, null)
PauseTimer(whichTimer)
TimerStart(whichTimer, period, isPeriodic, handlerFunc )
}
integer TimerGetUserData ( timer whichTimer ){
return R2I(TimerGetRemaining(whichTimer )+0.5)
}
nothing ClearIDBar () {
timer t = GetExpiredTimer()
integer id = TimerGetUserData(t)
if UnitAlive(br_unit[id]) == false {
br_unit[id] = br_unit[br_unitCounter]
br_effHP[id] = br_effHP[br_unitCounter]
br_effMP[id] = br_effMP[br_unitCounter]
br_indHP[id] = br_indHP[br_unitCounter]
br_indMP[id] = br_indMP[br_unitCounter]
br_unit[br_unitCounter] = null
br_effHP[br_unitCounter] = null
br_effMP[br_unitCounter] = null
br_indHP[br_unitCounter] = 0
br_indMP[br_unitCounter] = 0
br_unitCounter = br_unitCounter - 1
} else
br_unitInTimer[id] = false
DestroyTimer(t)
t = null
}
nothing ClearRemoteUnits() {
integer i = 1
integer iend = br_unitCounter
loop{
exitwhen i > iend
if (br_unit[i] == null) and (br_unitInTimer[i] == false) {
BJDebugMsg("null " + I2S(i))
}
i++
}
}
nothing ClearBarDeath ( ){
integer i = 1
integer iend = br_unitCounter
integer id
loop {
exitwhen i > iend
if br_unit[i] == GetTriggerUnit() {
DestroyEffect(br_effHP[i])
DestroyEffect(br_effMP[i])
id = i
}
i++
}
timer t = CreateTimer()
br_unitInTimer[id] = true
TimerStartEx(t, 88, false, function ClearIDBar, id)
t = null
}
nothing InitSetBar(){
EnablePreSelect(false, false) //скрывает полоски здоровья и информацию при наведении на юнита.
br_abilityHP[0] = 'HP00'
br_abilityHP[1] = 'HP01'
br_abilityHP[2] = 'HP02'
br_abilityHP[3] = 'HP03'
br_abilityHP[4] = 'HP04'
br_abilityHP[5] = 'HP05'
br_abilityHP[6] = 'HP06'
br_abilityHP[7] = 'HP07'
br_abilityHP[8] = 'HP08'
br_abilityHP[9] = 'HP09'
br_abilityHP[10] = 'HP10'
br_abilityHP[11] = 'HP10'
br_abilityHP[12] = 'HP12'
br_abilityHP[13] = 'HP13'
br_abilityHP[14] = 'HP14'
br_abilityHP[15] = 'HP15'
br_abilityHP[16] = 'HP16'
br_abilityHP[17] = 'HP17'
br_abilityHP[18] = 'HP18'
br_abilityHP[19] = 'HP19'
br_abilityHP[20] = 'HP20'
br_abilityMP[0] = 'MP00'
br_abilityMP[1] = 'MP01'
br_abilityMP[2] = 'MP02'
br_abilityMP[3] = 'MP03'
br_abilityMP[4] = 'MP04'
br_abilityMP[5] = 'MP05'
br_abilityMP[6] = 'MP06'
br_abilityMP[7] = 'MP07'
br_abilityMP[8] = 'MP08'
br_abilityMP[9] = 'MP09'
br_abilityMP[10] = 'MP10'
br_abilityMP[11] = 'MP11'
br_abilityMP[12] = 'MP12'
br_abilityMP[13] = 'MP13'
br_abilityMP[14] = 'MP14'
br_abilityMP[15] = 'MP15'
br_abilityMP[16] = 'MP16'
br_abilityMP[17] = 'MP17'
br_abilityMP[18] = 'MP18'
br_abilityMP[19] = 'MP19'
br_abilityMP[20] = 'MP20'
integer i = 0
integer iend = 20
unit u = CreateUnit( Player(0), 'hfoo' , 0, 0, 0)
loop {
exitwhen i > iend
UnitAddAbility(u, br_abilityHP[i])
UnitAddAbility(u, br_abilityMP[i])
i++
}
KillUnit(u)
RemoveUnit(u)
u = null
TimerStart(CreateTimer(), br_updatePeriod, true, function SetBar )
TimerStart(CreateTimer(), 30, true, function ClearRemoteUnits)
trigger trg_br_ClearIDBarDeath = CreateTrigger( )
TriggerRegisterAnyUnitEventBJ( trg_br_ClearIDBarDeath, EVENT_PLAYER_UNIT_DEATH )
TriggerAddAction( trg_br_ClearIDBarDeath, function ClearBarDeath )
}
endlibrary
//=====================================================================================================\\
Ошибка была в том, что при удалении блока else, удалил только скобки, а else оставил.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Скорее всего, у тебя эта функция что-то возвращает.