0
8
9 месяцев назад
0

» WarCraft 3 / Ограничение для предметов

Дополняю ответ что я хотел этим сказать
0
8
9 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / Arthas Revenge Siege

Жаль, что во все остальные карты нельзя играть за Артаса
Временное "решение", пока есть "возможность" нужно все-же реализовать "Замысел"
0
8
9 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / Arthas Revenge Siege

Последние новости!
Новая локация для получения Высшего Разума
(Необходимый предмет чтобы собрать Силу Бесконечности)
Загруженные файлы
0
8
9 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / Проверка команды Камеры из Массива

чтож


оказывается допустил ошибку при высчитывании

Нельзя
if SubString(ChatString, 0, CommandsListSubstringEnd[CommandsListMaxCounter]) == CommandsList[CommandsListMaxCounter] then //-cam, -Cam
// высчитывать Значение Цикла CommandsListMaxCounter внутри переменной CommandsListSubstringEnd
endif
он подберет Индекс CommandsListMaxCounter и будет проверять CommandsListSubstringEnd на наличие Меньшего Значения начиная с 1 до
CommandsListMax
его сразу надо высчитывать чтобы значения цикла не высчитывались

if SubString(ChatString, 0, CommandsListSubstringEnd[CommandsListMax]) == CommandsList[CommandsListMaxCounter] then
так должно выглядеть

отработает 1 раз для CommandsList с привязкой к СommandsListSubstringEnd

Centyrion, если удалить комментарии, то у тебя пустое условие.
Спасибо! воспользуюсь ссылкой
0
8
9 месяцев назад
0

» WarCraft 3 / Проверка команды Камеры из Массива

if CommandsListMax != 0 then
set CommandsListMaxCounter = 1
loop
exitwhen CommandsListMaxCounter > CommandsListMax // от 1 до 20 команд
//проверить в массиве список Групп Комманд 
//set CommandsListGroupCounter = CommandsListGroupStart[1]
//loop
//exitwhen CommandsListGroupCounter > CommandsListGroupEnd[CommandsListMax] //от 1 до 20 Групп
//проверить в Группе команд Список Команд
set CommandsListCounter = 1
loop
exitwhen CommandsListCounter > CommandsListGroupCounter
//проверить список внутри группы комманд
//if CommandsList[CommandsListCounter] == CommandsList[CommandsListMax] then

//set CommandsListSubstringEnd[CommandsListGroupCounter] = CommandsListGroupCounter

if SubString(ChatString, 0, CommandsListSubstringEnd[CommandsListCounter]) == CommandsList[CommandsListCounter] then //-cam, -Cam



endif

//endif

set CommandsListCounter = CommandsListCounter + 1
endloop
//set CommandsListGroupCounter = CommandsListGroupCounter + 1
//endloop
set CommandsListMaxCounter = CommandsListMaxCounter + 1
endloop
endif

CommandsListSubstringEnd[3] = 5
CommandsListSubstringEnd[1] = 4 // длина строки Первой команды
local real CamA = S2R(SubString(ChatString, 5, StringLength(ChatString)))

if SubString(ChatString, 0, CommandsListSubstringEnd[3]) == CommandsList[1] then
думает что это одно и тоже

четко занес в переменную Длину строки...Подстрока когда дойдет до CommandsListSubstringEnd остановится
дальше
local real CamA = S2R(SubString(ChatString, 5, StringLength(ChatString)))

CommandsList[1] = "-cam"
так и
CommandsList[3] = "-camm"

//===========================================================================
// The parameters for the API Substring function are unintuitive, so this
// merely performs a translation for the starting index.
//
function SubStringBJ takes string source, integer start, integer end returns string
    return SubString(source, start-1, end)
endfunction  
0
8
9 месяцев назад
0

» WarCraft 3 / Проверка команды Камеры из Массива

да понял что здесь происходит
нет заметил это...думал экземпляр структуры в другом месте

ну вот это и пытаюсь сделать

по какойто причине
SubString неправильно высчитывает значения Индексов Массива
0
8
9 месяцев назад
0

» WarCraft 3 / Проверка команды Камеры из Массива

у меня немножко по другому устроено, в одной функции хочу проверить Список всех команд и делать действия, не хочу заморачиваться с Либами
0
8
9 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / Проверка команды Камеры из Массива

либа принимает только 1 команду
а у меня Список

а вот
    function onInit(){
        msg("Чтобы изменить имя напечатайте |cffffff00-zoom |cff909090" + I2S(R2I(Min)) + "<>" + I2S(R2I(Max)));
        
        CustomChatEvent
            .create("zoom") // ловим -zoom
            .addSynonym("зум") // ловим -зум
            .addSynonym("ящщь") // не забываем тех, кто перепутал раскладку
            .onSuccess(function setZoom) // указываем функцию, которая сработает при удачном отлове
        ;

а если без Либы
Стандартным методом проверки Подстроки?
0
8
9 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / Проверка команды Камеры из Массива

CommandsListSubstringEnd[3]
Призван задать ограничение чисто для Команды
дальше
будет работать
local real CamA = S2R(SubString(ChatString, 5, StringLength(ChatString)))

Посмотри в этой системе там это в примерах есть.
Хм...это я реализовал
где
requires CustomChatEvent
0
8
9 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / Проверка команды Камеры из Массива

function SubStringBJ takes string source, integer start, integer end returns string
    return SubString(source, start-1, end)
endfunction

start-1 = 0

//===========================================================================
// The parameters for the API Substring function are unintuitive, so this
// merely performs a translation for the starting index.
//
function SubStringBJ takes string source, integer start, integer end returns string
    return SubString(source, start-1, end)
endfunction  

это упрощенный вариант
этот полный
if CommandsListMax != 0 then
set CommandsListMaxCounter = 1
loop
exitwhen CommandsListMaxCounter > CommandsListMax // от 1 до 20 команд
//проверить в массиве список Групп Комманд 
//set CommandsListGroupCounter = CommandsListGroupStart[1]
//loop
//exitwhen CommandsListGroupCounter > CommandsListGroupEnd[CommandsListMax] //от 1 до 20 Групп
//проверить в Группе команд Список Команд
set CommandsListCounter = 1
loop
exitwhen CommandsListCounter > CommandsListGroupCounter
//проверить список внутри группы комманд
//if CommandsList[CommandsListCounter] == CommandsList[CommandsListMax] then

//set CommandsListSubstringEnd[CommandsListGroupCounter] = CommandsListGroupCounter

if SubString(ChatString, 0, CommandsListSubstringEnd[CommandsListCounter]) == CommandsList[CommandsListCounter] then //-cam, -Cam



endif

//endif

set CommandsListCounter = CommandsListCounter + 1
endloop
//set CommandsListGroupCounter = CommandsListGroupCounter + 1
//endloop
set CommandsListMaxCounter = CommandsListMaxCounter + 1
endloop
endif

и тоже самое выводит
выводит как
CommandsList[1] = "-cam"
так и
CommandsList[3] = "-camm"

простым языком что пытаюсь сделать
Занести в некий...Глобальный Массив Список команд
и одной проверкой SubString указать то что должно происходить в определенных блоках
проверяя Группу Команд Внутри этого массива и проверки Списка команд Определенной Группы Команд

Плодить Одинаковые Блоки кода которые будут делать Одно и тоже Нет Никакого Желания

заметил что Обращение по индексу Массива работает нормально
if SubString(ChatString, 0, CommandsListSubstringEnd[CommandsListMaxCounter]) == CommandsList[CommandsListMaxCounter] then //-cam, -Cam
//повторяется 2 раза
if SubString(ChatString, 0, CommandsListSubstringEnd[CommandsListMaxCounter]) == CommandsList[3] then //-cam, -Cam
срабатывает только 1 раз и нормально

set CommandsListMax = 20

if CommandsListMax != 0 then
set CommandsListMaxCounter = 1
loop
exitwhen CommandsListMaxCounter > CommandsListMax // от 1 до 20 команд
цикл запущен

выяснил
if SubString(ChatString, 0, CommandsListSubstringEnd[3]) == CommandsList[1] then
он выводит 2 раза
но это невозможно
CommandsListSubstringEnd[3] = 5
CommandsListSubstringEnd[1] = 4 // длина строки Первой команды

local real CamA = S2R(SubString(ChatString, 5, StringLength(ChatString)))

нужно как-то...добавить == но переменная и так
= 4
что может быть ровнее этого числа?

положить -1
call TriggerRegisterPlayerChatEvent(trig[4], Player(pi), "-", false)
начнет работать после Пробела
0
8
9 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / Arthas Revenge Siege

Вышла новая версия!
Изменения в версии 7.3
Полностью убрана -kick команда чтобы добавить проект на платформе ICCup, изменилось название Вудора с Хранителя леса на Адепт Природы, исправлены некоторые ошибки связанные с убийством Архимонда и установки ограничения для Добывателей, добавлены новые условия для нанесения урона по области для способностей, теперь проверяется дополнительно если юнит Невосприимчив к магии, изменились все способности Вудора, добавлена новая функция которая может уничтожать деревья а также восполнять их здоровье, переделаны некоторые локации, добавлены новые условия для спавнов, теперь вместо Костяного Завода Склеп а также он может воспроизводить Анимацию как с Казармами, убраны Темные Солдаты, переделаны Казармы, теперь вместо них Алтарь, переделаны условия создания героев в 4 субволне, теперь если Алтарь соответствующий волне уничтожен Герой волны не будет создаваться, изменились Приоритеты игроков так как они влияют на ИИ, исправлена ошибка с загрузкой 2 артефактов, изменилось описание карты, теперь в ней присутствует приглашение в Дискорде, исправлены большинство ошибок связанные с приказами боссов а также некоторые функции переписаны для сокращения строк кода, добавлены новые условия для Спавнов, теперь созданные Юниты волны будут проверятся на наличие проходимости ландшафта так как Летающие Юниты игнорировали этот приказ, также исправлены большинство ошибок связанные с созданием боевой единицы, добавлена новая функция очищения хэндлов при уничтожении боевой единицы а также сократилось количество блоков кода которые выполнялись дважды в разных функциях, и добавлены новые возможности для создания мини боссов для Сил Артаса, исправлена ошибка с получением Тириона Фордринга, теперь предметы даются ему, добавлены новые условия для Сил Артаса, теперь здания волн будут меняться дополнительно проверяя Жизнь и Ману, исправлена ошибка с командой [-repick] и переделаны все скилы Гересина.
0
8
10 месяцев назад
0

» WarCraft 3 / АОЕ Стан абилка для даммиков

молот бурь с макс скоростью
а потом пикать юнитов вокруг точки и станить их группой
  • берем дамика
  • даем ему абилку Оглушение
  • выбираем юнитов на которых будет действовать Стан и Оглушаем их
0
8
10 месяцев назад
0

» WarCraft 3 / Каким образом можно заставить варкрафт работать без родных mpq?

Незнание структуры Карты и Архивов внутри игры приведет к печальным последствиям
удалить ничего не надо, единственное что можно сделать это Оптимизировать то что написал своими ручками, или оптимизировать определенные блоки кода, удалить надо только то что импортировал в карту а не все подряд

Заставить варкрафт работать без родных mpq
это как заставить Мозг думать что он может работать без Ничего
0
8
10 месяцев назад
Отредактирован Centyrion
0

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

МрачныйВорон
Это будет такая дрочильня с приказами. Нужно все тонкости соблюсти.
я уже подумал сколько триггеров на GUI придеться создавать чтобы вот...просто...заставить раб добывать ресурсы
Замечано, что позже после срубки раб ищет ближайшее дерево. А с шахтами неизвестно. Мб он захочет с ближайшей шахты собирать
Дерево это отдельный Ресурс игры, если Дерево Погибло значит рубить другое
если Рудник Истошен он Уничтожается останавливая Работников

это делается 1 строкой
call IssueImmediateOrder( udg_Работник[1], "autoharvestgold" ) для золота
call IssueImmediateOrder( udg_Работник[1], "autoharvestlumber" ) для древесины
call IssueImmediateOrder( udg_Работник[1], "returnresources" ) чтобы принести добытые ресурсы

если ордер уже отдан отследить его согласно условию и менять значение

можно Boolean юзать чтобы отследить приказ
0
8
10 месяцев назад
Отредактирован Centyrion
0

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

Можешь подробнее рассказать про то, как ты с редактором 1.31 сделал, а то я не совсем понял.
это было когда рефордж появился..он был багнутым и я ради спортивного интереса приспособил проект для рефорджа
известно что в рефордже есть такие нативки которые могут установить Броню юнита налету Жизнь атака и так далее
назывались они что-то типа
SetUnitArmor
эти нативки отсутствуют в 1.26 патче поэтому посчитать броню не получится одной нативкой, нужно создавать костыль чтобы посчитать кол-во брони у юнита
просто убрать эти нативки из Редактора Триггеров

nazarpunk
дал ответ какие файлы нужно редактировать чтобы иметь возможность открывать карту в других патчах
0
8
10 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / Подскажите триггер с переносом юнитов

что подразумевается под словом перенести?
есть вариант Выделить Несколько персонажей расположенные друг с другом и перенести их куда вам надо
есть вариант Выделить Несколько персонажей расположенные в разных местах карты
есть вариант привязать переменную к созданию персонажа и указать чтобы эта переменная Двигалась к выбранной точке
есть вариант выделить персонажей в область и приказать им двигаться в указанную точку
есть вообще вариант моментально выделить персонажей и перенести их в другой конец
что именно вам нужно?

непонятно что именно вы ищете
есть вообще вариант выделить персонажей в область и заставить их Прыгнуть в указанную точку

есть еще возможность Нырнуть

есть возможность взять Лопату и копать землю чтобы выходить в другой конец
как Крот или Бурундук

есть еще вариант Взять Огромную металическую перчатку и Швырнуть всех персонажей в указанную точку
0
8
10 месяцев назад
Отредактирован Centyrion
0

» WarCraft 3 / prio

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

» WarCraft 3 / Arthas Revenge Siege

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

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

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

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

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

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

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

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

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

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

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

» WarCraft 3 / Arthas Revenge Siege

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

» WarCraft 3 / Arthas Revenge Siege

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