XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
tgonta
Pixelated Sora Coder
offline
Опыт: 3,160
Активность:
Пустяковое условие...
» Здесь условие
function GetFullRecipeId takes unit u, integer pickedType returns integer
    local integer i = 1
    local integer i2 = 0
    local boolean array have
    local boolean b
    local integer index = 0
    local integer currentType
    local integer recCount
    local integer uCount

    loop
        exitwhen index > udg_TotalRecipes
        
        loop
            exitwhen i > 7
            set currentType = LoadInteger(udg_RecipeHash,index,i)
            set recCount = GetRecipeComponentCount(currentType)
            set uCount = UnitCountItemsOfType(u,currentType)
            
            if currentType == pickedType and b == false then
                set uCount = uCount + 1
                set b = true    
            endif
            
            if uCount >= recCount then
                set have[i] = true
            else
                set have[i] = false
            endif
        
            if currentType == null then
                set b = true
                set i2 = 1
                loop
                    exitwhen i2 > i - 1
                    
                    set b = b and have[i]
                
                    set i2 = i2 + 1
                endloop 
                if b then
                    return index
                else
                    set i = 7
                    set i2 = 1
                    loop
                        exitwhen i2 > i - 1
                    
                        set b = b and have[i]
                
                        set i2 = i2 + 1
                    endloop 
                endif
            endif
            
            set i = i + 1
        endloop    
        
        set b = false
        
        set index = index + 1
    endloop   
    return -1 
endfunction
Это условие неправильно проверяет индекс рецепта, на который юнит имеет все компоненты, включая подобранный.
Помогите исправить.
Старый 15.12.2010, 17:16
Sebra

offline
Опыт: 5,603
Активность:
А каждый раз i=1 кто ставить будет?
Старый 15.12.2010, 18:56
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 17:23.