16

» XGM Team / Онлайн-инструменты для геймдев и моддинг арта

nazarpunk: Проверяй.
вин7 + хром 109.0.5414.120 - работает, скачивается
теперь вместо ярко-зеленых прямоугольников стоят бледно розовые
по хексу (в том месте где прописывается цветопогода) - в прошлой первой версии было 11 D9 33 FF, сейчас стало FF 33 D9 11
в остальных (нецветопогодных) местах файлы идентичные
Загруженные файлы
16

» WarCraft 3 / Как можно оптимизировать этот код с 2D коллизиями?

goodlyhero: Она отрезается условием, но полный перебор с проверкой этой штуки все равно происходит
добавил группу в расчёт по X, количество коллизий сократилось ещё на треть, фпс остался примерно таким же,
макс количество коробок в -box3 режиме выросло на 10%
конечный код:
Открыть
function UnitIndex takes unit u returns integer
	local integer i=1
	loop
		exitwhen i>PLAYER_MAXINUM+Stage_BoxsCount
		if u==OrangeMushroom[i] then
			set u=null
			return i
		endif
		set i=i+1
	endloop
	set u=null
	return 0
endfunction
function MushroomMoving_Collision takes integer i,real x,real y returns integer
	local integer j=1
	local real otherx
	local real othery
	local group G = CreateGroup()
	local unit u=null
	call GroupEnumUnitsInRange(G, x,y, 128, null)
	loop
		set u = FirstOfGroup(G)
		exitwhen u==null
		if u!=OrangeMushroom[i] then
			set j=UnitIndex(u)
			if (GetPlayerSlotState(GetOwningPlayer(OrangeMushroom[j]))==PLAYER_SLOT_STATE_PLAYING or j>PLAYER_MAXINUM) and WhetherCollision[j]==0 and LevelClearState[j]==false then
				if MB_Frame_On==1 then
					set MB_CollisionX = MB_CollisionX+1
				endif
				set otherx=GetUnitX(OrangeMushroom[j])
				set othery=GetUnitY(OrangeMushroom[j])
				if ContainsCoords(otherx-64,othery-64,otherx+64,othery+64,x,y)==true then
					if GetUnitTypeId(OrangeMushroom[i])!='orai' and GetUnitTypeId(OrangeMushroom[j])!='orai' then
						if LeftArrow[Frame_MainPlayer]==true and Acceleration[Frame_MainPlayer]<=0 then
							set WhetherCollision[j]=-1
						elseif RightArrow[Frame_MainPlayer]==true and Acceleration[Frame_MainPlayer]>=0 then
							set WhetherCollision[j]=1
						else
							set WhetherCollision[j]=0
						endif
					endif
					set u=null
					call DestroyGroup(G)
					set G=null
					return j
				endif
			endif
		endif
		call GroupRemoveUnit(G, u)
	endloop
	call DestroyGroup(G)
	set G=null
	return 0
endfunction
function MushroomMoving_CollisionCheck takes integer i,real x,real y returns boolean
	local integer j=1
	local real otherx
	local real othery
	local group G = CreateGroup()
	local unit u=null
	call GroupEnumUnitsInRange(G, x,y, 128, null)
	loop
		set u = FirstOfGroup(G)
		exitwhen u==null
		if u!=OrangeMushroom[i] then
			set j=UnitIndex(u)
			if (GetPlayerSlotState(GetOwningPlayer(OrangeMushroom[j]))==PLAYER_SLOT_STATE_PLAYING or j>PLAYER_MAXINUM) and LevelClearState[j]==false then
				if MB_Frame_On==1 then
					set MB_CollisionY = MB_CollisionY+1
				endif
				set otherx=GetUnitX(OrangeMushroom[j])
				set othery=GetUnitY(OrangeMushroom[j])
				if ContainsCoords(otherx-64,othery-64,otherx+64,othery+64,x,y)==true then
					if PropellyCondition==true then
						if GetUnitTypeId(OrangeMushroom[j])!='orai' then
							set u=null
							call DestroyGroup(G)
							set G=null
							set Frame_MainPlayerY=j
							return false
						endif
					else
						set u=null
						call DestroyGroup(G)
						set G=null
						set Frame_MainPlayerY=j
						return false
					endif
				endif
			endif
		endif
		call GroupRemoveUnit(G, u)
	endloop
	call DestroyGroup(G)
	set G=null
	return true
endfunction
16

» World of WarCraft / Blizzard анонсировала сразу три дополнения для World of Warcraft

The Last Titan — дополнение, в котором игроки вернутся в Нордскол и даже посетят Ульдуар, чтобы раскрыть тайну титанов.
ухты, никогда такого не было
16

» WarCraft 3 / какие свойства есть у абилки 'Aloc' и чем их воспроизвести?

а может есть какая-нибудь абилка невидимости без изменения прозрачности юнита?
чтобы убрать конкретного юнита с миникарты, но оставить его вид таким же
и еще так и не было инфы про "спец значок" и каким кодом это можно сделать
16

» WarCraft 3 / каким софтом можно редактировать цвет прозрачного альфа слоя?

ага, получилось
векторная маска xgm.guru/files/100/316064/comments/520550/ps_mask.png
забавно что стало 514 цветов вместо оригинальных 294+1
т.е. по классике всю картинку фотошоп завандалил и поменял пиксели
чего кстати не произошло после обычного ресейва - там 294 осталось xgm.guru/files/100/316064/comments/520550/ps_resave.png

вот еще до кучи файлы
белый и черный альфа канал (2 и 3 пик из шапки)
но белый тоже завандаленный получается - там белый абрис формируется (виден при добавлении на карту)
черный xgm.guru/files/100/316064/comments/520550/as_black.png
белый xgm.guru/files/100/316064/comments/520550/cap-white.png
Загруженные файлы
16

» XGM Team / Онлайн-инструменты для геймдев и моддинг арта

виртуалку 10 накатил
Открыть
кстати в винде 10 22H2 идёт всего лишь 98й Edge
а 111й вышел в марте 2к23
график выхода версий

nazarpunk: Проверяй
тупой парсер превратил такой код
    set gg_rct_Rect001 = Rect( 576.0, 832.0, 704.0, 960.0 )
    set gg_rct_Rect002 = Rect( 192.0, 192.0, 448.0, 800.0 )
    set gg_rct_Rect003 = Rect( 544.0, 128.0, 1312.0, 448.0 )
    set Rect004 = Rect(100, 300, 500, 600)
    set Wr = Rect(100, 1100, 500, 1500)
в такой текст
Rect001 (576, 832, 704, 960)
Rect002 (192, 192, 448, 800)
Rect003 (544, 128, 1312, 448)
Rect004 (100, 300, 500, 600)
Wr (100, 1100, 500, 1500)
и в такие ректы зеленого цвета:
(6й рект Область005 на картинке для сравнения дефолтного цвета)
получается что совсем и не тупой, а очень полезный
даже сам преобразовал неверные числа в верные по делителю 32 (100 в 96, 500 в 512 итд)
Загруженные файлы
16

» XGM Team / Онлайн-инструменты для геймдев и моддинг арта

nazarpunk: который только в 111 хроме появился, так что обнови бразер
понели вас, перезвоним, оставайтися на линии
разговор на эту тему между нами уже был в теме про томл, так что ответы знаю заранее
а парсинг текста теперь хорошо работает, видит названия переменных любые и даже без gg_rct_
накачу виртуалку за часик
Загруженные файлы
16

» WarCraft 3 / каким софтом можно редактировать цвет прозрачного альфа слоя?

Alan_Gu: Так блпЛаб и отображает твоею .пнг чисто
только нужно нажать на галочку "отобразить прозрачность".
так это понятно, это отображено в шапке на пиках 4 и 5
это же альфа канал - он и определяет прозрачность
Alan_Gu: Тот же пейнт отобразит ее просто белым цветом
пеинт вообще не умеет работать с прозрачностью
и при пересохранении в png вообще удаляет альфа кана и заливает белым
а не "просто отобразит белым"
Alan_Gu: А всякие артефакты как у тебя на первом скрине возникают, когда программа пытается заполнить прозрачную область.
Но это уже зависит от формата изображения и софта, где просматривается изображение - как я думаю.
это не артефакты лол
это не рандом
просто BLP LAB чуть ли не единственная прога которая показывает цвет этого альфа канала, остальные проги тупо прозрачное показывают
у каждого пикселя есть или нету альфа канал, а также есть цвет этого альфа канала
у меня это зависит от конкретных программ
пик 1 и пик 2 я могу легко сделать - заранее пересохраняя в определенных программах
и знаю какой цвет получится, просто потому что у них по дефолту альфа каналу придается свой цвет (черный или белый)
ну это как футболка разного цвета не перестаёт быть футболкой
имеющийся у меня софт может менять цвет альфа в принципе на любой xgm.guru/files/100/316064/comments/520543/11111_orange.png
НО ТОЛЬКО в режиме палитры, а в пнг палитра максимум 256 цветов
что отобразится на качестве картинки
нужно чтобы True Color был
вот я и спрашиваю какой софт умеет менять цвет альфа канала, при этом не теряя саму прозрачность или режим цветности картинки
Alan_Gu: максимум, чего я добился это вот:
В фотошопе сделал. Залил фон синим цветом и добавил альфа-маску там, где раньше была прозрачность и экспортировал обратно.
а можно более подробный гайд всего этого дела? шо жать там и в какой очередности?
с фотошопом вообще странное дело - почему он не показывает слой прозрачности, который есть там изначально при открытии картинки
а позволяет только создать свой новый альфа канал без отображения уже имеющегося альфа канала
это настораживает
после ресейва исходника в фотошопе выглядит забавно
16

» XGM Team / Онлайн-инструменты для геймдев и моддинг арта

nazarpunk: Проверяй
по нажатию кнопки ничего не происходит (файл не добавляется в скачку) (хром 109.0.5414.120) (edge 109.0.1518.78)
с дизайна кнопки орнул, топ
16

» WarCraft 3 / какие свойства есть у абилки 'Aloc' и чем их воспроизвести?

nazarpunk: Не все переборы москитов скипают.
МрачныйВорон делал исследование на эту тему:
МрачныйВорон: xgm.guru/p/wc3/191764/comments/view/350987
была тема о том что нативки которые начинают с GroupEnum....могут не выделять москитов в группу
правда, не все функции. посмотрите код/карту внимательно, сюда добавил все существующие в варе пики и проверял xgm.guru/p/wc3/187447?postid=345848#comment10
с помощью тех нативок GroupEnum..., которые ловят москитов, нельзя указать радиус.
МрачныйВорон: xgm.guru/p/wc3/187447/comments/view/345848
call GroupEnumUnitsInRange(g, x, y, 400., f) ловит всех юнитов, находящихся в радиусе от точке, но москитов не ловит
call GroupEnumUnitsInRangeCounted(g, x, y, 400., f, 4) аналогична GroupEnumUnitsInRange, но берет определенное кол-во юнитов. Москитов не ловит
call GroupEnumUnitsInRangeOfLoc(g, loc,400., f) аналогична GroupEnumUnitsInRange. Москитов не ловит.
call GroupEnumUnitsInRangeOfLocCounted(g, loc,400., f, 4) аналогична GroupEnumUnitsInRangeCounted. Москитов не ловит.
call GroupEnumUnitsInRect(g,bj_mapInitialPlayableArea ,f1) ловит всех юнитов в области. Москитов не ловит.
call GroupEnumUnitsInRectCounted(g,bj_mapInitialPlayableArea ,f1, 4) ловит определенное кол-во юнитов в области. Москитов не ловит.
call GroupEnumUnitsSelected(g,GetTriggerPlayer(),f) ловит юнитов. выделенным игроком. Москитов. очевидно. не ловит.
call GroupEnumUnitsOfPlayer(g,GetTriggerPlayer(),f1) ловит всех-всех юнитов игрока на карте. Москитов ловит нормально.
call GroupEnumUnitsOfType(g,"Peasant", f) ловит всех-всех юнитов с этим именем. Нужно писать английский аналог название (например работник = Peasant). Ловит москитов.
call GroupEnumUnitsOfTypeCounted(g,"Peasant", f, 4) ловит опреденное кол-во юнитов группу. Ловит Москитов.
16

» WarCraft 3 / какие свойства есть у абилки 'Aloc' и чем их воспроизвести?

Extremator: Алок делает юнита неуязвимым.
добавлено в шапку
Extremator: Скрыть юнита с мини-карты выставив ему спец.значок
это в WE делается или в джасе тоже можно?
Загруженные файлы
16

» WarCraft 3 / BLP Laboratory (blplab)

а разрабы не додумались на кнопку "Save As" брать изначальный путь картинки?
то есть им норм каждый раз весь путь с нуля писать в пустое поле, да? и папку и новое имя да? это удобно должно быть?
и если проект закрыт и не обновляется - то почему исходники не выложены?
16

» WarCraft 3 / каким софтом можно создать w3r файлы из координат?

quq_CCCP: Зачем?
чтобы были области в WE
quq_CCCP:у тебя есть координаты с ними и работай
а кто-то писал что у меня пропадают координаты из j файла и я с ними не могу работать?
quq_CCCP:создать в карте новый рект и посмотреть его текущие корды и переписать в j файл раз плюнуть.
зачем создавать рект а потом еще и переписывать его координаты которые итак известны до создания этого ректа?
quq_CCCP:раз плюнуть.
а если таких ректов 200 ?
давай я тебе скину карту и список координат, а ты мне вернёшь карту с уже созданными ректами в WE по этому списку
идёт? тебе же это раз плюнуть вроде
а потом ещё пару раз, для карт с другим номером vерсии карты
quq_CCCP: Зачем?
может тогда вообще рисованные области в WE нинужна? зачем их вообще близы добавили в WE ? итак же всё понятно и без них на цифрах
16

» WarCraft 3 / каким софтом можно создать w3r файлы из координат?

nazarpunk: можешь потестить
не видит обфусцированные (или вручную без WE названные) строки с переменными без gg_rct_
в остальном - и не подкопаешься
Загруженные файлы
16

» XGM Team / Онлайн-инструменты для геймдев и моддинг арта

nazarpunk: Как это нет?
имелось ввиду, что в j файле погода идёт отдельными строками, а не в координатных =Rect() строках, которые юзер будет вставлять на сайт:
а цвет вообще хранится только в w3r файле и нигде больше, т.е. восстановить цвет после удаления w3r никак не получится:
    set gg_rct_Rect4 = Rect( 896.0, 1280.0, 1440.0, 1920.0 )
    set we = AddWeatherEffect( gg_rct_Rect4, 'RAhr' )
ScorpioT1000: А можно как это в hex выглядит?
выглядит весьма локанично - красное координаты, зеленое цвет с погодой

nazarpunk: я уже тупой парсер сделал
лучше будет, если ты его таким и оставишь (с правым окном)
потому как я себе тоже делал подобный парсер чисел, чтобы сравнивать изменения координат при смене версий карты
после обфускации кода по названиям переменных уже не сравнить, а остаётся только по конкретным 4-х числовым координатам сравнивать
(т.е. нужда в переводе j-текста в обычные числа тоже есть)
ещё можно второй вид представления добавить вида "Rect1\t1111,0\t2222,0\t3333,0\t4444,0" чтобы список был максимально числовым с табуляцией без лишнего текста
тогда получится два инструмента в одном - и w3r конвертор, и обработчик координат из j файла
Загруженные файлы
16

» WarCraft 3 / каким софтом можно создать w3r файлы из координат?

nazarpunk: можешь потестить
потестил, парсер прекрасный, обрабатывает даже без пробелов и числа без нулей после точки вида:
set gg_rct_Rect001 = Rect(3071.,1536.,3200.,1664.)
если кнопку "скачать" передвинуть направо под список minX minY, то будет интуитивно понятнее, что качаешь что-то обработанное
а если она слева - то как будто качаешь что-то своё, которое сам вставил необработанное
16

» XGM Team / Онлайн-инструменты для геймдев и моддинг арта

nazarpunk: я так понимаю, что ты хочешь из взломанной карты вернуть ректы в WE?
да, исходника карты у меня нету
а нужно это для визуального отображения, потому как w3r влияет только на отображение в WE и не влияет на исполнение j файла (поэтому протекторы и удаляют w3r собственно)
благо в формате =Rect() нет ни погоды, ничего - можно занулить всё и оставить только 4 координаты и имя, и номер порядковый
16

» WarCraft 3 / каким софтом можно создать w3r файлы из координат?

nazarpunk: ниразу не слышал, что кому либо понадобился w3r
это удобно например в сфере депротекта
когда у тебя есть только координаты и ты выбираешь:
  1. либо по ним вручную мышкой рисовать ректы в WE
  2. либо сидеть ковырять хексы ради одной карты
  3. либо забить и как и раньше вписывать координаты в j файл, без отображения областей в WE
кстати гуишников тоже много, и мало кто из них сидит на чём то более продвинутом - значит ли это, что продвинутое нинужна?
16

» XGM Team / Онлайн-инструменты для геймдев и моддинг арта

nazarpunk: Каким образом такой рект интерпретировать:
если будет инструмент-конвертер хотя бы для чистых числовых координат,
то такой рект (или много ректов в цикле) можно автоматом просчитать и вывести через прелоад в текстовик в виде готовых чисел и сразу скормить их на сайт
в WE тоже нельзя задать переменные в координаты ректа, и в w3r чистые цифры, поэтому перевод из букав в цифры ложится на картодела
а легкий способ по переводу я уже указал
16

» XGM Team / Онлайн-инструменты для геймдев и моддинг арта

nazarpunk: Список ректов в каком формате?
в текстовом, в котором они и хранятся в j файлах