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

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

Закрытая тема
 
vladfaust

offline
Опыт: 12,714
Активность:
Не работает код добавления золота
//Defines//
    define {
        //Types//
        int  = integer
        bool = boolean
        trig = trigger
        mb   = multiboard
        mbi  = multiboarditem
        void = nothing
        code = function
        gold = PLAYER_STATE_RESOURCE_GOLD
        //Functions//
        newTrig = Create##Trigger()
        newMb   = Create##Multiboard()
        //Different//
        PLAYER(int i) = Pl##ayer(i-1)
    }

//Globals//        
    //Optional//
    integer StartGold = 1000
    //Not Optional//
    rect REV_AREA    = gg_rct_ReviveArea
    rect HEAD_AREA   = gg_rct_HeadDeliveryArea
    rect RUNE_1      = gg_rct_RUNE_1
    rect RUNE_2      = gg_rct_RUNE_2
    player LocPlayer = GetLocalPlayer()
    int NumOfPlayers
//EndGlobals//

//==================================================================================================​==//
//CODE STARTED!!!//

//Init the map//
library Initialize {
    //Initialization trigger//
    void InitActs () {
        TriggerSleepAction(0.01)
        local integer i = 1
        whilenot (i>12) {
            if GetPlayerSlotState(PLAYER(i)) == PLAYER_SLOT_STATE_PLAYING {
                NumOfPlayers += 1
            }
            i++
        }
        i = 1
        whilenot (i>NumOfPlayers) {
            SetPlayerState(PLAYER(i), gold, StartGold)
            i++
        }
    }
    
    void InitTrig_InitActs () {
        trig Init = newTrig
        TriggerAddAction(Init, code InitActs)
    }
}
ВЕСЬ код, используемый в карте. При проверке не добавляется золота, почему?!
Head_Hunter_44 добавил:
Эм... Триггер с игроками вообще не запускается.
Head_Hunter_44 добавил:
Ладно, разберусь.
[+] замечание от alexkill: название темы не отражает сути вопроса
Старый 12.08.2011, 15:46
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Цитата:
Сообщение от Head_Hunter_44
code = function


вообще то тип данных code зарезервирован ...

Допиши у либы initializer InitTrig_InitActs
Старый 12.08.2011, 15:47
vladfaust

offline
Опыт: 12,714
Активность:
Как запустить триггер при ините карты?
Head_Hunter_44 добавил:
Ок, ща.
Head_Hunter_44 добавил:
Неа, нифига.
Старый 12.08.2011, 15:52
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Цитата:
Сообщение от Faion
initializer InitTrig_InitActs


Как раз для:

Цитата:
Сообщение от Head_Hunter_44
Как запустить триггер при ините карты?


Т.е. дебагай.
Старый 12.08.2011, 15:53
vladfaust

offline
Опыт: 12,714
Активность:
library Initialize initializer Init {
    //Initialization trigger//
    void Init () {
        BJDebugMsg("1")
        local integer i = 1
        whilenot (i>12) {
            if GetPlayerSlotState(PLAYER(i)) == PLAYER_SLOT_STATE_PLAYING {
                NumOfPlayers += 1
            }
            BJDebugMsg("i="+I2S(i))
            BJDebugMsg("NOP = "+I2S(NumOfPlayers))
            i++
        }
        i = 1
        whilenot (i>NumOfPlayers) {
            SetPlayerState(PLAYER(i), gold, StartGold)
            i++
        }
    }
}
0o, ничего кроме одной единички не пишет!
Старый 12.08.2011, 15:53
Doc

offline
Опыт: 63,163
Активность:
Ахахахаха, смешно, пробовал NumOfPlayers инициализировать?
Старый 12.08.2011, 16:06
vladfaust

offline
Опыт: 12,714
Активность:
Яфшоке. Никогда не инитил интегеры 0о
Doc, пасибо, помогло.
Вдогонку, Pl##ayer (i) - можно так делать?
Старый 12.08.2011, 16:09
Doc

offline
Опыт: 63,163
Активность:
int NumOfPlayers = 0

callback onInit(){
	for(int i = 0; i < 12; i++){
		if (GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING){
			NumOfPlayers++
			SetPlayerState(Player(i), gold, StartGold)
		}
	}
}
не?
Старый 12.08.2011, 16:09
vladfaust

offline
Опыт: 12,714
Активность:
Doc, красиво)
Где прочитать про callback?
И
Pl##ayer (i) - можно так делать?
Head_Hunter_44 добавил:
Да, можно. Что такое callback?
Старый 12.08.2011, 16:16
Doc

offline
Опыт: 63,163
Активность:
Старый 12.08.2011, 16:22
vladfaust

offline
Опыт: 12,714
Активность:
Ваще от бесит)
Зачем мне фидбэк?
В Вики про это ничего нет.
Лаконичный, твайумать!
Head_Hunter_44 добавил:
Аа... Понял, клоз. Всего лишь надо было указать на этот пост.
Head_Hunter_44 добавил:
close the topic.
Doc, thx)
Старый 12.08.2011, 16:28
Doc

offline
Опыт: 63,163
Активность:
В гуглокоде сейчас постятся неофициальные обновления.

Отредактировано Doc, 12.08.2011 в 22:35.
Старый 12.08.2011, 17:11
Закрытая тема

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

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

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

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



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