29

» WarCraft 3 / Не работает loop(цикл)

Принятый ответ
nvc123, У него там отсутствует CreateGroup()
А ещё она в заголовке globals не null'ась

Я о group G
29

» WarCraft 3 / Прога для текстур

Принятый ответ
Blp Lab
Button Manager
Эти программы можно скачать на этом сайте, HiveWorkShop, "Сайт, о котором здесь не говорят".
Поисковик в помощь, я названия уже дал.
29

» WarCraft 3 / Невереное значение глобалки, установленное с помощью ForGroup

NekoriDes,
Примерно так должно быть:
scope Creeps initializer IniCreeps
    
    globals
            constant    player          CreepsPlayer    = Player(11)
                        integer         CreepsMax       = 0
                        integer array   CreepStack
                        integer         iCreep          = 0
                        integer array   crTypeId
                        real array      crX
                        real array      crY
                        boolean array   crIsDeead
                        timer           crTimer         = null        
    endglobals
    
    function CreepsDeadAction takes nothing returns nothing
        local unit      d       = GetTriggerUnit()
        local integer   data    = GetUnitUserData(d)
        set crIsDeead[iCreep] = true
        set d = null
        set data = 0
    endfunction

    function CreepsRespawn takes nothing returns nothing
        set iCreep = 0
        loop
            if crIsDeead[iCreep] then
                set crIsDeead[iCreep] = false
                call SetUnitUserData(CreateUnit( CreepsPlayer, crTypeId[iCreep], crX[iCreep], crY[iCreep], 0. ), iCreep )
            endif
            set iCreep = iCreep + 1
        exitwhen iCreep == CreepsMax
        endloop
    endfunction
    
    function IniCreeps takes nothing returns nothing
        local group g = CreateGroup()
        local unit p = null
        set gg_trg_Creeps = CreateTrigger(  )
        call TriggerAddAction( gg_trg_Creeps, function CreepsDeadAction )
        call TriggerRegisterPlayerUnitEvent( gg_trg_Creeps, CreepsPlayer, EVENT_PLAYER_UNIT_DEATH, null ) 
        set iCreep = -1
        call GroupEnumUnitsOfPlayer( g, CreepsPlayer, null )
		loop
            set p = FirstOfGroup(g)
        exitwhen p == null
            set iCreep = iCreep + 1
            set crX[iCreep] = GetWidgetX(p)
            set crY[iCreep] = GetWidgetY(p)
            set crTypeId[iCreep] = GetUnitTypeId(p)
            set crIsDeead[iCreep] = false
            call SetUnitUserData( p, iCreep )
            call GroupRemoveUnit( g, p )
        endloop
        set CreepsMax = iCreep + 1
        set iCreep = 0
        call DestroyGroup(g)
        set crTimer = CreateTimer()
        call TimerStart( crTimer, .20, true, function CreepsRespawn )
        set g = null
        set p = null
    endfunction
endscope
29

» WarCraft 3 / Невереное значение глобалки, установленное с помощью ForGroup

Примерно так, но я немного изобразил по наркомански, т.к. на скорую руку.
Просмотреть
Загруженные файлы
29

» WarCraft 3 / Невереное значение глобалки, установленное с помощью ForGroup

Принятый ответ
Это я сделал в первую очередь, интереса ради. Разницы ноль, увы.
Разве, что запускает две функции одновременно, делая всего лишнюю операцию.
И так:
  1. Нужен массив для хранение TypeId
  2. Лучше глобальную группу использовать, а то локальная у тебя только на инициализации выполнилась.
  3. Используем loop endloop для большей эффективности
  4. Проверять лучше всё таки стеком,
Насчет дестроя группы. Она же создается один раз, если я ее уничтожу - триггер вообще выполнятся не станет, разве не так?
Это не так, она уже использовалась и стала локальной, и да. Лучше глобальную используй.
Лучше внутри таймера проверять ограниченным кол-во крипов через стек. т.е. о 0 до N ограничения, которые не повлияет на производительность. при этом проверяя на наличие их безжизненности, потом просто воссоздавая их по данным сохранённым внутри данных по юниту.
  1. Если мобы были ранее на карте, то и ранее должны были быть зарегестрированы в массив данных, где храниться их TypeId, PosX\Y и п.р.
29

» WarCraft 3 / Невереное значение глобалки, установленное с помощью ForGroup

Попробуйте использовать:
call GroupClear( g ) // не обязятельно
call DestroyGroup( g )
//
set g = null
	//1
	call TriggerRegisterTimerEvent(gg_trg_rCrips, 0.20, false)
    call TriggerAddAction(gg_trg_rCrips, function Trig_rCrips_Actions)
	// 2
    call TriggerRegisterAnyUnitEventBJ(gg_trg_rCrips, EVENT_PLAYER_UNIT_DEATH)
    call TriggerAddAction(gg_trg_rCrips, function css_Respawn)
Лучше использовать разные триггеры для них..
А ещё поясните, что вы хотите именно с крипами делать, а то просто без отдельного стека вам не обойтись...
29

» WarCraft 3 / Юнит покидает транспорт

Проще отслеживать по способностям выгрузить и погрузить боевую единицу на борт, и ещё проверяя того, кто погружает и выгружает.
29

» WarCraft 3 / Светляк над древе мечты и страданий боли утопления

Принятый ответ
Пример Jass:
// native SetDoodadAnimationRect   takes rect r, integer doodadID, string animName, boolean animRandom returns nothing

call SetDoodadAnimationRect( gg_rct_VarName, 'D000', "stand lumber", false )
Пример GUI:
Посадить можно, лучше используй на основе грибов вид декорации "Окружение". Ну это, чтобы посадить светляков куда надо.
Загруженные файлы
29

» WarCraft 3 / Редактирование поведение нейтралов

Можно использовать
//
// native RemoveGuardPosition takes unit hUnit returns nothing
//

call RemoveGuardPosition( this_unit )
В GUI
ИИ - Ignore Guard Postition (Игнорировать место охраны)
29

» WarCraft 3 / Как стыковать одинаковые(схожие) ауры?

Нужно сделать два разных баффа двум способностям типа ауры - профит. У этой свой бафф, у той свой бафф.
Как и было примерно сказано пользователем Pippetz.
Pippetz:
Насчёт первого: а разве разные баффы не помогают?
29

» WarCraft 3 / Сбой переменной

Принятый ответ
Попробуй заменить,
EVENT_PLAYER_UNIT_SPELL_ENDCAST
на
EVENT_PLAYER_UNIT_SPELL_EFFECT
И да, nvc123 прав на счёт координат.
Зачем использовать наркоманский wait, когда можно всё сделать в таймере?
29

» WarCraft 3 / Сбой переменной

Megacomp:
KingMaximax, Способность сделана на основе канал, с параметром точка . Скинул скриншот моего кода.
В вашем много утечек и лишнего мусора. А ещё хотел бы увидеть что в TrigUltra_Conditions и InitTrig_ultra

// Будьте любезны добавить свой код:
// В блоке переменных
local real x = GetSpellTargetX()
local real y = GetSpellTargetY()

// ниже блока
call BJDebugMsg("SX: " + R2SW(x,8,2) + "SY: " +  R2SW(y,8,2) )
call BJDebugMsg("LX: " + R2SW(GetLocationX(l),8,2) + "LY: " + R2SW(GetLocationY(l),8,2) )
Потом покажите результат, выведенный на экране.
29

» WarCraft 3 / Сбой переменной

nvc123:
Fa1korn, это типо быстрый способ забить оперативку?
если да то создать 10000 юнитов циклом будет быстрее
Скорее он не знает о существовании (пр. ниже), али просто троллит.
GetSpellTargetX()
GetSpellTargetY()
29

» WarCraft 3 / Сбой переменной

Не хочет правильно запоминать переменную local location l = GetSpellTargetLoc() . Вместо правильной позиции запоминает центр карты, пересмотрел почти весь код, вроде все нормально, не пойму в чем проблема.
Причины: У заклинание нет цели, т.е. не указывается точка. Или заклинание может быть нацелено на боевую единицу или предмет или разрушаемое. (Во большинстве случаев возвращает 0.,0. при указании на декорацию или предметы)
Лучше использовать способность на основе канала с параметром цели "боевая единица или точка"
GetSpellTargetLoc - получает току(местоположения) для заклинания.
В центр карты возвращает по умолчанию, если её нет.
Требую изъяснить, для чего используете сие данную переменную и при каких действиях и событиях.
29

» Бред Pitt'a / Прискорбный скиталец

Неплохо, хотя не осилил это всё. Кстати, лучше разделять абзацы новой пустой строкой, чтобы легче было читать.
Типа, хм..
1, Тип абзац A, который просто такой полный абзац, вообще неплохо. Но это всего лишь примерный текст для Абзаца. Зачем, чтобы было понятно, что абзац. Кастрюля щей нас не щадит, в туалет гонит по часам, но нет ещё жестокая стала бездушная зараза, теперь по минутам.
2, Тип абзац B, который просто такой полный абзац, вообще неплохо. Но это всего лишь примерный текст для Абзаца. Зачем, чтобы было понятно, что абзац. Кастрюля супа горохого нас не щадит, в туалет гонит не по дням, а по часам, зверский горох, пощади меня, ай....
29

» Битва Зимой / Отчет по работе над поектом

Кристофер:
Если короче: "Проект бросил, ибо Дуос не хочет писать за меня код."
Ох щи алые свекольные при великие!
Там 10к строк кода я писал, а ещё наполнял РО, когда это должен был делать один человек, который уже и так настрадался... Был бы у него компьютер в порядке, я бы быстрее сделал уже второй тест.
29

» Кузня Волчачки / Моя судьба!

BrEd Pitt:
Ясен пень, не туп олень!
Вроде все эпично и пафосно, но к чему это?
Закопирайть это.
Хмм...
29

» Кузня Волчачки / Резня Инфо

BrEd Pitt:
Кинг, любите ли вы постмодернизм? А то чем-то таким от творчества веет.
Что-то вроде этого и что-то ближе к пост апокалипсису.
Я больше люблю разножанр разностиль...
29

» Кузня Волчачки / Немножка Ландашфта от Максимакса

Кристофер:
Обращения этого места цитадель Павла будет трудоемким.
ПетроПавловская крепость?
Нет. Это другая крепость, особого Павла.. Дело в совмещении порчи и декора в одно целое..
Спокойной ночи.
29

» Кузня Волчачки / Немножка Ландашфта от Максимакса

Nosferoh:
Ледяного Паштета
КМ паштетов
Я их не знаю.
Его база в порче на самом верху, вот с с ней придётся повозится ещё.
Обращения этого места цитадель Павла будет трудоемким.
Картинка
Загруженные файлы
29

» Кузня Волчачки / Немножка Ландашфта от Максимакса

Nosferoh:
Итог - вот такой вопросец "под чем автор сидел?"
Рано. Ещё накидай рандомных кусков на карту.
Накидать их просто, а вот расположить как задумал куда интереснее...
Случайный не всегда тащит... Хотя всё возможно, но я предпочитаю как задумывал...
Карта 192x192(180x180)
Знаешь что самое трудное? Угодить сочетанию особого декора к порче, которого я ещё не подобрал..
Я не показывал базу Ледяного Паштета, особого КМ паштетов, который прибыл на тот остров, чтобы снять проклятие от желания, загаданным им у лорд Цитронуса(Повелитель цитронной вселенной) за артефакт "Ядро Цитронической силы" или просто "Цитрон"...
29

» Кузня Волчачки / Немножка Ландашфта от Максимакса

Nosferoh:
KingMaximax, В конце получится Дно Миров а ля Перумов.
Добавил несколько снимков набросок...
Нет, всё что я делаю, равняется Чераморике, Кингокомании и грибам. Итог - вот такой вопросец "под чем автор сидел?"
29

» Кузня Волчачки / Немножка Ландашфта от Максимакса

Не сходите с ума, ведь это просто ландшафт. Вообще у каждого получается ландшафт по своему, и тем он интереснее...
Ландшафт рождается не с "Я про, а все оно самое - кококо", а с фантазии и представлении. Что ты хочешь увидеть..
Пока вы там ругались немного вдохновения мелькнуло и решил что-то некое непонятное замутить пока маловато грибочков...
Скринчег
Загруженные файлы
29

» Кузня Волчачки / Немножка Ландашфта от Максимакса

Добавил набросок с мистической морской дырой, кажись с кренанутыми водопадиками переборщил. ыть)