0
15
3 года назад
Отредактирован JackFastGame
0

» WarCraft 3 / Как через условие подключить звуковой патч mix?

Bergi_Bear:
  1. Не использовать патч микс, что реф что Ирина, не имеют лимита в 8 мегабайт это пережиток прошлого, пихайте все в карту
К сожалению, многие игроки на Ирине до сих пор сидят со старым GameDLL, из-за чего их часто кикает с больших карт, а они ничего не понимают.
0
15
3 года назад
0

» WarCraft 3 / Как через условие подключить звуковой патч mix?

goodlyhero:
В мемхаке - GetModuleHandle вернет вам хэндл вашего микса если вы его подключили или 0 если не подключили.
У подключаемых библиотек есть хэндл? Это же простой указатель на место модуля в памяти. А хэндл имеют все объекты, которые наследуют от типа handle.
0
15
3 года назад
0

» WarCraft 3 / Хэш-таблицы в vJass

PT153:
юзаю стринг хеши в качестве ключей
Я юзаю тип key от vJass.
key — это что-то типа GUID?
0
15
3 года назад
0

» WarCraft 3 / кое что о джассе

Vlod:
что сджасс ломал весь остальной код
Какие конкретно конструкции ломает cjass?
Вот-вот, тоже хотелось бы узнать. Я сейчас использую vJass + cJass (пишу первый раз на них), т.к. после C# хочется писать код без особого синтаксического мусора.
0
15
3 года назад
0

» WarCraft 3 / Утечки в коде

quq_CCCP:
ArhiMEN, а что за код, я чето не понял что это за триггер с переодическим таймером 100 раз в сек, чето делает. Каждый раз создается новая группа, зачем? Обьясни что собрался делать?
Я делал бенчмарк (на попугаях Анрайза) прохода по глобальной группе и локально создаваемой группе, разницы практически нет.
0
15
3 года назад
0

» WarCraft 3 / 20. Оптимизация

Больше никаких оптимизаций в современных версиях компилятора vJass нет?
0
15
3 года назад
0

» WarCraft 3 / Вопросы по мемхаку

DracoL1ch:
ссылаются на свою, меняй описание в завимисоти от выделенного юнита локальным игроком по таймеру
Я хочу реализовать систему, чтобы в описании предмета показывалось, сколько игрок нанёс этим предметом урона, сколько раз использовал и т.д.
В процессе вспомнил, что Варкрафт не чистит строки, а записывает их в какую-то таблицу со всеми строками, и при создании новой строки проверяет, существует ли такая же в таблице. Если да, то возвращает указатель на неё, если нет, то записывает новую строку в таблицу. Строки в таблице не удаляются до конца игры. Получается, если постоянно динамически менять описание предмета, то игра будет хранить кучу мусорных строк? Допустим у предмета за игру описание сменится 500 раз, и каждый раз строка будет уникальной, описание предмета весит 1 килобайт, значит на каждый такой предмет в процессе игры сгенерится 500 килобайт мусора. Я правильно рассуждаю? Есть лечение?
0
15
3 года назад
0

» WarCraft 3 / Утекают ли не обнулённые переменные типа handle

rsfghd:
JackFastGame, удаляется, с локацией тут нет проблем
А, я слепой)
0
15
3 года назад
0

» WarCraft 3 / Утекают ли не обнулённые переменные типа handle

Obelick:
Привет. Интересно было почитать. А что можно сказать насчет юнитов? Решил провести свой эксперимент, но с юнитами.
Начал с гуишных функций и глобалок, закончил этим. Все возможные проделанные мною варианты утекают, включая этот
Знаю, что некропостинг, но тут локация p не удаляется.
0
15
3 года назад
0

» WarCraft 3 / Вопросы по мемхаку

DracoL1ch:
ссылаются на свою, меняй описание в завимисоти от выделенного юнита локальным игроком по таймеру
Благодарю.
0
15
3 года назад
Отредактирован JackFastGame
0

» WarCraft 3 / Вопросы по мемхаку

quq_CCCP:
Ну и для всего прочего были, там не сложно. Смешения где лежат ссылки на строки. В мх анрайза вроде тоже было, покрайней мере для юнитов UnitNormalAPI и UnitBaseAPI, ну можно посмотреть в каких смещених относительно адресса итема лежат строки, предмет и юнит - оба виджеты, возможно прокатит с оффсетами юнита, но это неточно =)
Так, получить и изменить описание предметов из их кешированной структуры мне удалось.
Это уже совсем роскошь, но описание конкретных предметов можно изменять?) Или айтемы при создании не копируют строку, а напрямую ссылаются на строку из своей кешированной структуры?
0
15
3 года назад
0

» WarCraft 3 / Вопросы по мемхаку

quq_CCCP:
JackFastGame, они есть в мемхаке, SetObjectTip\ubertip или как то так, для всех полей есть функции.
В каком именно мемхаке? Можно ссылку? Хоть убейте, этих функций я не нашёл ни в карте из темы про детект физического урона, ни в мемхаке Анрайза.
0
15
3 года назад
0

» WarCraft 3 / Вопросы по мемхаку

quq_CCCP:
Новые функции для предметов завезли, лич вылечил проблемы с фаталами. Теперь можно менять описания у всего и вся.

Мемхак к себе в карту копируем, что надо - просим у лича или гуглим, что ненадо вырезаем.
Прошу прощения за некропостинг, а где можно найти функции для изменения описания предметов? Поиск по сайту самым релевантным выдаёт ресурс с детектом физического урона.
0
15
3 года назад
0

» WarCraft 3 / Вращающиеся модели

Bergi_Bear:
И период наверное лучше 0.03125.
Чем? В игре больше 32 кадров в секунду.
1
15
3 года назад
1

» WarCraft 3 / Как запретить возможность сохраняться?

Утилка Анрайза помогла, спасибо ему.
globals
		timer SaveBlockTimer = CreateTimer( )
		dialog PreventSave___Dialog = DialogCreate()
	endglobals
		
	function PreventSave___Exit takes nothing returns nothing
		call DialogDisplay(GetLocalPlayer(), PreventSave___Dialog, false)
	endfunction

	function PreventSave___StopSave takes nothing returns boolean
		local boolean GameAllowSave = false

		if GameAllowSave == false then
			call DisplayTextToPlayer(GetLocalPlayer(), 0, 0, "Save Game is Disabled")
			call DialogDisplay(GetLocalPlayer(), PreventSave___Dialog, true)
		endif

		call TimerStart( SaveBlockTimer, 0.00, false, function PreventSave___Exit)

		return false
	endfunction

	function AntiSaveSystemInit takes nothing returns nothing
		local trigger AntiSaveLocalTrigger = CreateTrigger()
		call TriggerRegisterGameEvent( AntiSaveLocalTrigger, EVENT_GAME_SAVE )
		call TriggerAddCondition( AntiSaveLocalTrigger, Filter(function PreventSave___StopSave ) )
		set AntiSaveLocalTrigger = null
	endfunction
0
15
3 года назад
0

» WarCraft 3 / JNGP: Rebuild от PT153

PT153:
Если вкратце: новый pjass не сообщенает некоторые неошибки, которые сообщал старый. И наоборот сообщается те ошибки, которые всегда ведут к крашу, а старый pjass их не сообщал.
Новый pjass с мемхаком дружит?
Новый TESH имеет лучший функционал: можно добавлять свои функции и шаблоны.
А вот это уже интересно. Свои функции надо вручную добавлять или он сам ловит их сигнатуры в коде карты?
1
15
3 года назад
1

» WarCraft 3 / Движение без поворота

plllo2:
я так понимаю вот так хочешь сделать? www.youtube.com/watch?v=lAeT55AO2-Y
Призови бога вц3 Драколича, мб поможет )
Да, только юнит должен не атаковать, а просто анимацию атаки проигрывать)
Ну там как я понял он инструментами мемхака это сделал вроде SetUnitFacingInstant. Попробую что-нибудь придумать.

Так, поворот я сделал, SetUnitFacingInstant действительно свою работу выполняет. Осталось понять, как сделать так, чтобы анимация атаки не сбивалась анимацией передвижения.
0
15
4 года назад
Отредактирован JackFastGame
0

» IrInA Host Bot / Главная страница

world_editor:
Подскажите с проблемой в картах орпг (любых), ввожу код сохранения персонажа и тут же разрывает соединение. В конекторе надпись: сервер удалил хоста, и такое только с игроками, до этого момента всё хорошо работало. Как можно исправить?
Походу на Ирине и локально ники разные у игроков. Из-за этого десинхрон возникает в картах при проверке на ник. У меня самого такая хрень: мой ник я вижу как JackFast..., у остальных он нормальный: JackFastGame. Странная фигня.
0
15
4 года назад
Отредактирован JackFastGame
0

» WarCraft 3 / SetUnitName мемхак

DracoL1ch:
без восстановления памяти ты скатишься к рандомным крашам после игры, ставь актуальную версию хака
Я видел во второй версии хака функцию InitResoreMemoryOnExit, её надо юзать? У меня после попытки выйти из карты зависает Варкрафт с последующим бесконечным заполнением оперативки процессом War3.exe. Как правильно пользоваться восстановлением памяти?
Я правильно понимаю, что она должна выгружать все заинжекченные dll после выхода из карты?
0
15
4 года назад
0

» WarCraft 3 / [Reforged] Главное меню в стиле LK

С этой убогой интерполяцией точно скачивать не буду.
0
15
4 года назад
0

» WarCraft 3 / Релиз Warcraft 3: Reforged

Локализацию для карт ещё не завезли, не проверяли?
0
15
4 года назад
0

» WarCraft 3 / Lua и ООП

Почему self = nil можно не делать, ведь удаляя объект из списка (таблицы) экземпляров, мы удаляем не сам объект, а ссылку на него из этого списка, разве нет?
Этого будет достаточно?
function Skillshot:Create (...)
    local this = {}
    
    table.insert(skillshotObjectList, this)

	...
end
function Skillshot:Destroy ()
    table.remove(skillshotObjectList, TableFindElement(skillshotObjectList, self))
end
0
15
4 года назад
Отредактирован JackFastGame
0

» WarCraft 3 / Lua и ООП

prog:
JackFastGame, если не важен порядок, то практически в любом языке один из самых быстрых способов удаления чего-либо из списка это поменять его местами с последним элементом списка, занулить последний элемент и сократить длину списка на 1.
Тьфу, оказывается я неправильно вызывал функцию.
Это полностью очищает экземпляр из памяти?
function Skillshot:Destroy ()
    skillshotObjectList[self.id] = skillshotObjectList[skillshotIndex]
    skillshotObjectList[self.id].id = self.id
    table.remove(skillshotObjectList)
    self = nil
    skillshotIndex = skillshotIndex - 1
end
0
15
4 года назад
0

» WarCraft 3 / Lua и ООП

PT153:
Я не спец, но разве не у obj нужно ставить переменную damage?
Ох, действительно, спасибо!
prog:
Drulia_san, фигню понаписал, у тебя методы создаются для каждого экземпляра, а должны для индексной таблицы создаваться один раз, иначе зачем тебе метатаблица и индексная таблица тогда...
Да, сразу это заметил. Но это ведь для наглядности, ничего не мешает вынести эти методы.
В общем, всем спасибо, практически разобрался в принципе работы. Отдельная благодарность к Drulia_san.
Единственное, нужно уточнить один нюанс. Как реализовать деструктор? Имеется список skillshotObjectList, содержащий все создаваемые экземпляры. Необходимо реализовать удаление экземпляра из памяти и соотвественно очистку его из skillshotObjectList.
function Skillshot:Create (...)
    local this = {}
    
    skillshotIndex = skillshotIndex + 1
    skillshotObjectList[skillshotIndex] = this
    this.id = skillshotIndex

	...
end

function Skillshot.Destroy (this)
    ???
    skillshotIndex = skillshotIndex - 1
end
0
15
4 года назад
Отредактирован JackFastGame
0

» WarCraft 3 / Lua и ООП

prog:
Хоть убейте, не нашёл. Как мне, к примеру, реализовать внутри метода "класса" цикл foreach, который пробегает по всем созданным объектам данного "класса"?
Хранить список созданных экземпляров где-нибудь, например в метатаблице, чтобы был простой доступ к этому списку. Создание экземпляров реализовать через метод-фабрику, который инициализирует экземпляр и назначает ему метатаблицу.
Для большего удобства - список экземпляров можно либо записывать в каждый экземпляр при его создании либо положить в индексную таблицу в метатаблице, чтобы до этого списка было еще проще добраться из экземпляров.
Почему-то в цикле он пробегает только по последнему созданному объекту, причём сколько всего объектов, столько раз по нему и проходит.
Реализовывал и через pairs, и через for i = 1, #list.
Для добавления в список я использую table.insert(list, object).
Что я делаю не так?

Вот фрагмент кода. В main loop выводит урон последнего созданного объекта.
Skillshot = {}
list = {}

function Skillshot:Create (damage)
    local obj = {}
    
    setmetatable(obj, self)
    self.__index = self
	table.insert(list, obj)
    
    self.damage = damage

    return obj
end

function Skillshot.Update ()

    --Main loop
    for i = 1, #list do 
        local obj = list[i]

        Debug("i = " .. i .. " " .. list[i].damage)
    end
end

do
    local InitGlobalsOrigin = InitGlobals
    function InitGlobals()
    InitGlobalsOrigin()

        function test()
            local dmg = 5
            TimerStart(CreateTimer(), 2.0, true, function ()
                dmg = dmg + 5
                local skillshot = Skillshot:Create(dmg)
            end)
        end
        test()
    end
end