0
8
11 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / prio

nothing SetHeroesTakeItems ( boolean state) 
  • слабейший герой будет подбирать предметы. К сожалению не всегда. Ценность предмета определяется полем в РО Характеристики - приоритет.
0
8
11 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / Arthas Revenge Siege

Вышла новая версия! Прокрутить к ресурсу
Убрана команда -kick игрока и -Off, так как модераторы Айкапа не хотят добавить проект, исправлена ошибка с установкой уровня при репике героя, добавлены новые условия для ИИ, теперь они в определенный момент могут говорить, переделана формула подсчета игроков, теперь в качестве индекса используется именованные ключи хэш таблицы, изменилась иконка Икфура rкак и его способности, исправлена ошибка с названием гибели Иллидана и созданием 2 Иллиданов на последней волне, исправлена ошибка с ивентами на последней волне, изменились способности Бадика, изменился способ получения Тириона Фордринга, теперь достаточно написать команду -король, доработана система спавнов, теперь 2 волна разделена на 4 субволны, 2 субволна и 4 будет создавать Бугая и Всадника, и изменилось расположение Командира Чембера.
0
8
11 месяцев назад
0

» WarCraft 3 / Количество Рабов на шахте

Проще свою систему добычи сделать
согласен так будет гораздо понятнее
0
8
11 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / Количество Рабов на шахте

тут надо и инкремент увеличить каждый раз когда пеон начинает добывать золото
и менять значение текста на + 1 или - 1 если пеон не добывает
0
8
11 месяцев назад
0

» WarCraft 3 / Перенос карты с Reforged на 1.26a

я сделал следующим образом
скачал редактор 1.31 и на основе существующей карте заточенная под 1.26 добавил новые условия для рефорджа.
про обратную совместимость не в курсе но рефордж отличается от патча 1.26, если так сильно хочется можно поочередно вытащить из рефорджа все необходимое используя Mpq Master и смотреть если в версии 1.26 она откроется, если нет то убрать дополнительные поля в РО которые мешают открытия карты и еще раз попытаться.
ябы так сделал.
точно также и с триггерами.
0
8
11 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / квест с убийством юнитов

а если аое?
в каком смысле АОЕ? если убить несколько юнитов?
тогда есть специальная функция Добавления Юнита в Группу, с помощью нее посчитаем сколько юнитов погибло но надо добавлять этих юнитов в группу
далее посчитать сколько юнитов погибло
но оно сработает в любом случае...если цикл запущен то посчитает сколько юнитов погибло
0
8
11 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / квест с убийством юнитов

anton1623:
я приведу пример как сделать подобное
сначал создаем триггер где вставляем в Событие Юнит Умирает
каждый раз когда ктото (неважно кто) Умирает срабатывает это Событие
далее мы должны узнать Кто умер
в Условие вставляем что умер такой юнит
Тип юнита Погибающий Юнит Равняется Наш Юнит
и в действие вставляет получить 1 золото Каждый Раз когда наш Юнит погибает
далее нажимаем комбинацию клавишь CTRL + B и открываются Переменные
нажимаем на Зеленый крестик и выскачит окно
здесь пишем название переменной (Любое)
и Тип Переменной Ищем Целочисленная
нажимаем на Ок и готово наша переменная заведена
дальше возвращаемся в наш Триггер
и добавляем новое Действие
каждый раз когда этот юнит погибнет переменная увеличит кол-во на 1 (мы же убиваем по 1 юниту?)
и в конце добавляем это
готово
конечный результат должен быть таким но только вместо пехотинца выбираем нашу боевую единицу
0
8
11 месяцев назад
0

» WarCraft 3 / Arthas Revenge Siege

Последние новости!
Кнопка Получить обновлена до новейшей версии
Список изменений в Дискорде
0
8
11 месяцев назад
0

» WarCraft 3 / Arthas Revenge Siege

Последние новости!
Изменения в версии 7.1
Полностью перестроена Система создания юнитов как Союзников так и Противников, теперь в ней присутствует Субволна, Субволна это Волна которая разделяется на определенное кол-во юнитов, добавлены новые юниты в них и разделены, а также для каждой Волны добавлены культовые герои из Кампании такие как Джайна, Утер Рексар Рохан Кэрн Фарион и даже Иллидан, Герои могут повышать свои характеристики с каждой волной пока не убьют Артаса, на данный момент 1 Волна разделена на 4, 2 Волна на 2, 3 Волна на 2, и 4 тоже на 2 а также добавлены Казармы которые соответствуют Героям, например для Утера Казармы Людей, Для Рексара Казармы Орков и для Иллидана Древо Войны.
0
8
11 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / Arthas Revenge Siege

Последние новости!
0
8
11 месяцев назад
0

» Блог им. ofeerist / Обзор на пиво

🤣🤣🤣Пиво🤣🤣
0
8
11 месяцев назад
0

» Таверна "Ржавое колесо" / Жульен с грибами

🤣 Не люблю Сметану но для Жульена самое то!🤣🤣
0
8
11 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / Сломалась карта

это скорее всего по невнимательности, это решается убиранием всех строк кода из war3map.j на которые указывают редактор, новые функции которые поддерживаются в JNJP не будут работать в обычном редакторе
либо использовать тот же редактор в котором прописаны эти функции
0
8
11 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / ворота по вертикале

Идем в Редакторе Объектов -> Разрушаемые объекты или Декорации -> Ищем например Ворота (СВ- ЮЗ) или (СЗ - ЮВ) -> ищем Параметр J) Графика - Фиксированное вращение (bfxr) и указываем от 0 до 360.00 где значение указывается в градусах
Далее выбираем Файл Модель (bfil) Ворот на (З-В)
Выбираем на панель инструментов и смотрим в какую сторону Ворота смотрят
0
8
11 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / Как играть с другом против бота в WarCraft 3?

видимо он имеет в виду про команду !comp <> <> на боте
если в карте в которой играете предусмотрен механизм создания Компьютерного игрока то да можно написать эту команду
если же в условиях нету такого механизма зря вставляете в слоты игроков компьютера он не сработает а проигнорирует их
а так зависит от разработчиков проекта и самого бота. если можно ввести эту команду и в слоте игрока появится компьютер то карта запустится с компьютером.
но они не действуют, когда ввожу их в игре
это потому что в Лобби надо их вводить а не в самой игре
0
8
11 месяцев назад
0

» WarCraft 3 / Проверка на наличие значения (HaveSavedValue)

Centyrion, если исправно работает, то и смущаться лишний раз незачем.
ну все-же предупрежден значит вооружен.
оказывается я все это время сохранял Имя Игрока вместо идентификатора, т.е 0 1 2 3 4 в зависимости от айди игрока, так даже лучше...но не каждый зайдет в Function List и глянет что там происходит, все-же это дело оптимизации. как напишешь так и сработает.

Centyrion, если исправно работает, то и смущаться лишний раз незачем.
спасибо за ответ.
0
8
11 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / Проверка на наличие значения (HaveSavedValue)

Откуда вообще был взят первый вариант, где два раза _STRING? Всё там должно быть нормально.
не сомневаюсь
вот пример, пояснения в конце
call SavePlayerHandleBJ(GetOwningPlayer((Hero[GetPlayerId(GetTriggerPlayer())])),15,1,udg_H)
call SaveLocationHandle(udg_H, 3, StringHash("GV"+I2S(GetPlayerId(GetTriggerPlayer()))), GetUnitLoc(Hero[GetPlayerId(GetTriggerPlayer())]))
if HaveSavedValue(15, bj_HASHTABLE_HANDLE, 1, udg_H) == true then
do action
здесь и наткнулся на  HaveSavedValue
call SetUnitPositionLoc(Hero[GetPlayerId(GetOwningPlayer(GetManipulatingUnit()))],LoadLocationHandle(udg_H, 3, StringHash("GV"+I2S(GetPlayerId(GetOwningPlayer(GetManipulatingUnit()))))))
else
endif
HaveSavedValue работает исправно но смущает
    elseif (valueType == bj_HASHTABLE_STRING) then
        return HaveSavedHandle(table, missionKey, key)
    else
                return false

Centyrion, ещё раз, зачем использовать обёртку вместо нативки?
как вариант, хоть и незачем

Откуда вообще был взят первый вариант, где два раза _STRING? Всё там должно быть нормально.
это прописано в Function List Jass New Gen Pack

ссылка на сайте
0
8
11 месяцев назад
0

» WarCraft 3 / Проверка на наличие значения (HaveSavedValue)

тут выбор не велик
  1. использовать другие значения для сохранения хэндла в хэш таблице кроме HaveSavedHandle но при этом использовать BJ функции
  2. можно без BJ но использовать HaveSavedHandle
  3. записать в некую переменную значение которое должно проверятся и проверить ее перед определенным действием
  4. ну или использовать обычный редактор не JNJP
  5. запилить свою функцию на подобие этой и туда прописать что мне нужно сохранять с последующим очищением
5 )наиболее подходящий вариант

я о том почему JNJP написал в Function List подобное
Потому что такая функция имеется в игре наверное.
она есть но сохраняет false вместо хэндла

воспользуюсь конструкции типа bj_HASHTABLE_INTEGER
все равно игрока можно записать как Player(index)
а индекс и будет целочисленной

или зависит от того что буду делать можно и bj_HASHTABLE_BOOLEAN чтобы не использовать BJ функции

тем более они занимают намного меньше места в памяти нежели хэндлы
0
8
11 месяцев назад
0

» WarCraft 3 / Проверка на наличие значения (HaveSavedValue)

Почему бы не использовать напрямую HaveSavedHandle?
Потому что так неинтересно и невозможно из гуя.
верно подметил 🙂я о том почему JNJP написал в Function List подобное
0
8
11 месяцев назад
0

» WarCraft 3 / 1.31.1

1.31.1 я тоже скачал, пользовался ноутбуком 2010 года
1.26 работал с 20 фпс
1.31.1 работает но только с 10
проблема с твоим компьютером
0
8
11 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / Проверка на наличие значения (HaveSavedValue)

или все-же целочисленную переменную сохранить вместо хэндла?
valueType == bj_HASHTABLE_INTEGER

особой роли не играет что буду сохранять но смущает Function List из JNJP

	// Hashtable value types
	constant integer   bj_HASHTABLE_BOOLEAN                 = 0
	constant integer   bj_HASHTABLE_INTEGER                 = 1
	constant integer   bj_HASHTABLE_REAL                    = 2
	constant integer   bj_HASHTABLE_STRING                  = 3
	constant integer   bj_HASHTABLE_HANDLE                  = 4
0
8
1 год назад
Отредактирован Centyrion
0

» WarCraft 3 / Доска Статистики

сдаюсь

loop
exitwhen k >= F_MaxPlayers()
if GetPlayerSlotState(Player(k)) == PLAYER_SLOT_STATE_PLAYING and GetPlayerSlotState(Player(k)) != PLAYER_SLOT_STATE_EMPTY then
call MultiboardSetRowCount(udg_MB, k + 2)
endif
set k = k + 1
endloop
что же ему не хватает

он все равно добавляет эти иконки
попробую по другому

если указать в качестве строки переменную типа массив с порядковым номером игрока и через эту нативку установить кол-во строк то оно не сработает....так как функция не умеет считать кол-во игроков

или 2 вариант...когда цикл достиг конца и условие выполнилось.. взять и добавить булевую переменную в качестве остановки цикла
простым языком цикл будет выполнятся до тех пор пока не сработает условие выхода из цикла а условие не сработает так как она добавит только лишнее
или 3 вариант в качестве выхода из цикла указать кол-во игроков и дальше ручками править

Возможно ошибка в коде, попробуй
local integer l = 0
local integer i = 0
loop
exitwhen i >= 10
if GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING and GetPlayerSlotState(Player(i)) != PLAYER_SLOT_STATE_EMPTY then
call MultiboardSetRowCount(udg_MB, l + 2)
set l = l + 1
endif
set i = i + 1
endloop
этот вариант сработал

но
loop
exitwhen k >= F_MaxPlayers()
if GetPlayerSlotState(Player(k)) == PLAYER_SLOT_STATE_PLAYING and GetPlayerSlotState(Player(k)) != PLAYER_SLOT_STATE_EMPTY then
set r = r + 1
call MultiboardSetRowCount(udg_MB, r + 1) //не + 2 а + 1 так как цикл уже запущен
endif
set k = k + 1
endloop

но надо перестроить и другие функции.

10 строк кода вместо одной функции и 1 переменная )) оригинально ))

спасибо за ответ
Загруженные файлы
0
8
1 год назад
0

» WarCraft 3 / Доска Статистики

Borodach:
пробовал и так, нивкакую не хочет
перестроил полностью функцию
проблема была и в этом и в другом
MultiboardSetRowCount мне оно понадобилось чтобы не указать переменную которая проверяет кол-во игроков которые играют и так далее
чтобы было все понятно

создал цикл и поставил в начале функции
постоянно забываю про порядок выполнения кода
если не соблюдать порядок строк оно и не заработает
0
8
1 год назад
Отредактирован Centyrion
0

» WarCraft 3 / Доска Статистики

грешу на то что в цикле нельзя установить кол-во строк таблицы
только присвоить переменную которая проверит кто играет и кто нет и установить кол-во строк