если загонять в переменную GetCameraTargetPosition - то загонится у всех разное значение
если закавычить в if getlocalplayer - потом загнать в массив переменных - то другие не узнают значение закавыченного игрока, т.к. значение присваивалось только лично у него - что есть десинхрон
то есть нет никакой функции (узнать координаты камеры player X) а есть только своя камера
Я совсем не понял что вам нужно =))
вы хотите, чтобы камера двигалась за объектом?
в первом сообщении под "привязка к камере" имелись ввиду координаты GetCameraTargetPosition
по крестьянски это можно назвать "в центре экрана у игрока" poisoNDealer:
Фреймы.
мы вам перезвоним
мда,
GetCameraTargetPosition то десинхронная
и её координаты никак не передать в значения массива да?
если один двинул камеру, то другие об этом никак не узнают?
там похоже на привязку точки к мышке, типа как прицел
я же говорю просто про вывод изображения в центр экрана
похоже, что с этим справится CinematicFadeBJ, потестирую его немного
ещё есть какая-то ShowImage, но там через хендл вроде, а CinematicFadeBJ просто через путь к blp-шке
еще CinematicFilterGenericBJ
интересно было бы найти что-то с опциональным офсетом, но и только в центре - уже хорошо
никакие депротекторы тебе не помогут, когда:
в оригинале HELLHALT v5.0.29 - 668 файлов,
а в твоей ВОССТАНОВЛЕННОЙ карте, которую ты прикрепил - 364 файла.
и пока ты не начнешь такое замечать - можешь вообще темы не создавать. помудохайся сначала месяц и научись готовить листфайл, а потом уже переходи к открытию карты в World Editor'e и всем с этим связанным вопросам
всем, кто задаёт подобные вопросы я бы предложил прикладывать к своим постам скриншоты о прохождении проверки лицушности винды, офиса и софта от Adobe, а также же чеки на каждый трек в mp3-плеере и каждую игру на HDD. надеюсь они не пираты какие-то со дна общества с ворованым варкрафтом
первый вопрос - листфайл от карты у тебя полный или нет?
ничего не видил при загрузке карты, т.e даже слоты - как будто карта мертвая, скорее всего и так, но я не понял почему
то есть сравнение содержимого каталогов у тебя не изобрели? сравни оригинал и после обработки этой прогой. и сравни какие файлы изменены. скорее всего w3i, из-за того что он изменён - она и крашит
брал war3.j, с протектной версии и вшивал в мою (депротект) версию мапы - при загрузке карты (50-70%) - фатал (crash).
j файл ты итак можешь оттуда изъять, отредактировать и назад вшить в оригинал без всяких крашей
чтобы полноценно оформиться придется с документами возиться
ну возни то там немного - 30 минут заполнить заявление на регистрацию ИП , чек госпошлины и через неделю забрать свидетельство о регистрации + ежемесячная аренда буха (мешка с костями или электронного), другое дело будет ли с магаза что-то капать? хотя судя по ммо дрочильням и прочим донатным браузеркам и телефонным приложухам - среди людей такое популярно. а вот готовы ли картоделы добавлять плюшки за реал в карту, чтобы и самим попилить навар - вот вопрос. если не будет картоделов - то люди даже не узнают что так можно играть. ну а лесю на 12й слот посадить через UjApi, думаю не проблема - автоматом при создании и инициализации карты , а в карте нативка Call AutoAddLesya(12)
и второй вопрос - кто расскажет картоделам о возможностях UjApi ? о каждой из нативок, которых добавляется по сотне каждое обновление. для этого надо написать бы пару статей. чтобы картоделы узнали про новые нативки, узнали что можно НОВОГО и ОФИГЕННОГО сделать в новом редакторе, ну а потом и игрокам показать эти офигенности, которые будут играть в карты
можно даже пару карт портировать с азиатского региона и заменить запросы к их магазам в нашу ирину - это проще чем с нуля пилить крутую карту. ну а увидя возможности редактора и картоделы начнут тянуться
по привлечению людей хз что. может им нравится дроч на ладдер и рейтинг. играют же зачем то они 20 лет в доту и в диабло 2
по поводу голосового чата - зависит от сложности реализации. но очевидно если он будет искаропки, то им будут пользоваться больше и чаще, чем серваками дискорда. ну как в кс 1.6, только там он был реализован на уровне игры, а тут пилить разве что глобальный хоткей и аудиопоток слать не через игру а через коннектор придётся в обход
Мы планируем сместить акцент с поиска лобби на поиск карты. Грубо говоря вам не придется искать хост с картой - у вас будет список карт, а хост найдется/создастся сам
о, так и было на нетизе кста
только успех многих фич действительно зависит от количества аудитории. если три игрока онлаен, то новые фичи никто не оценит и не будет пользоваться ими. как тут писали, что многие не знают про game.dll , я даже больше скажу - в 2к23 году на форуме асикапа была тема с вопросом "а что такое ирина" (и её там быстренько закрыли от коментов)
так что? теперь картоделы могут пилить карты с магазином за реал и автосохранением ачивок и бафов на серваке ирины? если ты играл на китайском нетизе пока он не умер или на корейском m16 и понимаешь о чём я
если запускать варик через кнопку "запустить игру" из коннектора - то коннектор выступает как ланчер? если да - тогда было бы неплохо камерахак вшить. как на нетизе было - ползунок с высотой камеры. ну или KP_MINUS KP_PLUS
/follow по нику не планируется?
еще можно добавить автоудаление игр из списка майнера, когда игра заканчивается, чтобы вручную не очищать
вообще, если появился GUI то можно бесконечно пилить новые фичи, пока руки не отсохнут. а если он не просто коннектор, но еще и ланчер - то можно писать фичи, пока руки совсем не отвалятся, ну или склеить с WFE как ты правильно заметил. другой вопрос - как набрать аудиторию и увеличить её хотя бы раза в 3-4? позвать соседей если только. почему на iccup 5-10 тысяч игроков а на ирине 300-800 ? вот вопрос. когда ирина была на асикапе - это были золотые времена, и любая захощенная карта заполнялась за 10 секунд до фула на випке
код "Проверка" при добавлении в j файл не работает
не хватает:
globals
leaderboard udg_HandleBoard = null
function main takes nothing returns nothing
call InitTrig_HandleCounter()
endfunction
вот верный полный код
только надо строку из "function main" перенести в свою main функцию на карте
globals
leaderboard udg_HandleBoard = null
function HandleCounter_Update takes nothing returns nothing
local integer i = 0
local integer id
local location array P
local real result=0
loop
exitwhen i >= 50
set i = i + 1
set P[i] = Location(0,0)
set id = GetHandleId(P[i])
set result = result + (id-0x100000)
endloop
set result = result/i-i/2
loop
call RemoveLocation(P[i])
set P[i] = null
exitwhen i <= 1
set i = i - 1
endloop
call LeaderboardSetItemValue(udg_HandleBoard,0,R2I(result))
endfunction
function HandleCounter_Actions takes nothing returns nothing
set udg_HandleBoard = CreateLeaderboard()
call LeaderboardSetLabel(udg_HandleBoard, "Handle Counter")
call PlayerSetLeaderboard(GetLocalPlayer(),udg_HandleBoard)
call LeaderboardDisplay(udg_HandleBoard,true)
call LeaderboardAddItem(udg_HandleBoard,"Handles",0,Player(0))
call LeaderboardSetSizeByItemCount(udg_HandleBoard,1)
call HandleCounter_Update()
call TimerStart(GetExpiredTimer(),0.05,true,function HandleCounter_Update)
endfunction
function InitTrig_HandleCounter takes nothing returns nothing
call TimerStart(CreateTimer(),0,false,function HandleCounter_Actions)
endfunction
function main takes nothing returns nothing
call InitTrig_HandleCounter()
endfunction
Игровые объекты
Мы рассмотрели переменные, и как их обнулять, переменная - это ссылка на определенный игровой объект, но обнуление переменной не значит, что удаляется и объект по ссылке из переменной, объект нужно удалять отдельно (ДО(!) обнуления переменой) с помощью специальной функции. т.к. иначе после обнуление переменной ссылка на объект потеряется, и его нельзя будет удалить.
как можно работать 4 месяца над картой, но не иметь папку с сотней релизных рабочих версий 0.1 0.2 0.3 ... 1.1 1.2
или тем более не залить карту куда то ни разу
как это работает?
ты хочешь чтобы кто-то за тебя всё делал, а ты ничего не пытался и не писал и не тестил? один раз у тебя критануло и весь xgm побежал тоже тестить по 4 часа за 1 ран? 5 дней прошло, а от тебя никакой инфы кроме "нууу, у меня критануло 1 раз"
вылетать не должно вообще ни разу
хотя это зависит от навороченности карты. когда нетиз ещё жил и позволял играть в навороченные китайские карты размером по 400 МБ (которые даже JN loader открывал со скрипом и частично неработающими функциями) (и я сейчас не про импорт многотонных моделей, а про движок в карте и новые возможности всяких окошек и менюшек) - то не просто так сам нетиз при подключении к кому-то в игру открывал новое окно варика, а при отключении от игры это окно закрывал - т.е. принудительно делал так, что на каждую игру у всех игроков открывается новое окно.
другое дело, насколько у тебя там навороченная карта?
и странно, что в этой теме не было дано ни одной ссылки по оптимизации кода от других картоделов
чё-нить хотя бы такое
если первое небыло привязано к какой либо переменной, то оно (первое) утекает.
это и есть ответ, который нужен был на вопрос 2-1
В чем загадка то?
с таким вопросом можно весь раздел /qa закрыть, т.к. ответ на любой вопрос кому-нибудь да известен и не является загадкой для него, а вот для вопрошающего как раз наоборот
наоборот. я не хочу готовить яишницу (я ковыряюсь в яишнице, созданной вариком) и не хочу создавать 3 "умных" отдельных окна. я хочу разобраться как эти 3 окна создал варкрафт и что с ними можно сделать. именно разобраться - могу ли я что-то с этими уже созданными (не мной как я захотел, а варкрафтом через функцию -test3-test3-test3) окнами сделать или нет
версия выше с перехватом через
set TestDialogArr[0] = TestDialog
уже больше похоже на правду, она не меняет изначальную структуру создания окон
только все 3 новых строчки с перехватом выше фразы "мы тут", т.е. этакое компромиссное решение
из чего делаю вывод по вопросу 2-1
2-1:
что после создания подряд трёх окон (при условии что во время создания мы рядом не стояли и переменную не копировали себе в массив) - мы не можем к ним никак обратиться и что-то с ними сделать. а можем только с самым последним созданным
по поводу вопроса 3-1 :
выявлено опытным путём, что DestroyTimer(t) нежелательно пользоваться, т.к. после этой нативки надо заново создавать таймер, как мы это делали в инициализации глобалок через timer t=CreateTimer()
call DestroyTimer(t)
set t=CreateTimer()
TimerStart(t,60,false,null)
при этом же - конечно же если мы юзаем PauseTimer(t), то сама переменная не уничтожается, а остается таймером, с которым можно опять работать, т.е. через паузу результат примерно такой же но более щадящий.
call PauseTimer(t)
TimerStart(t,60,false,null)
в отличие от самого окна - после уничтожения нам уже не требуется заново назначать окно, как мы это делали при инициализации глобалок, а можно сразу создавать готовое окно
DestroyTimerDialog(GetLastCreatedTimerDialogBJ())
DestroyTimerDialog(TestDialog)
set TestDialog=CreateTimerDialogBJ(t,"Time")
и еще дополнение:
уничтожение таймерного окна не уничтожает и не останавливает сам таймер
т.е. окна не будет, а таймер продолжит тикать и будут срабатывать все привязанные к этому таймеру функции т.е. нужно уничтожать и окно и останавливать таймер
Ред. host_pi
» WarCraft 3 / Как контрить Alt+QQ?
Ред. host_pi
» WarCraft 3 / как поставить точку в центр экрана?
если закавычить в if getlocalplayer - потом загнать в массив переменных - то другие не узнают значение закавыченного игрока, т.к. значение присваивалось только лично у него - что есть десинхрон
то есть нет никакой функции (узнать координаты камеры player X) а есть только своя камера
Ред. host_pi
» WarCraft 3 / как поставить точку в центр экрана?
по крестьянски это можно назвать "в центре экрана у игрока"
poisoNDealer:
GetCameraTargetPosition то десинхронная
и её координаты никак не передать в значения массива да?
если один двинул камеру, то другие об этом никак не узнают?
Ред. host_pi
» WarCraft 3 / как поставить точку в центр экрана?
похоже, что с этим справится CinematicFadeBJ, потестирую его немного
еще CinematicFilterGenericBJ
интересно было бы найти что-то с опциональным офсетом, но и только в центре - уже хорошо
Ред. host_pi
» WarCraft 3 / Депротект (знаю заеженная тема)
Ред. host_pi
» WarCraft 3 / Депротект (знаю заеженная тема)
в оригинале HELLHALT v5.0.29 - 668 файлов,
а в твоей ВОССТАНОВЛЕННОЙ карте, которую ты прикрепил - 364 файла.
и пока ты не начнешь такое замечать - можешь вообще темы не создавать. помудохайся сначала месяц и научись готовить листфайл, а потом уже переходи к открытию карты в World Editor'e и всем с этим связанным вопросам
Ред. host_pi
» WarCraft 3 / Депротект (знаю заеженная тема)
первый вопрос - листфайл от карты у тебя полный или нет?
Ред. host_pi
» WarCraft 3 / Good Jassspy (JASS логер)
Ред. host_pi
» IrInA Host Bot / Обновление коннектора (анонс)
» WarCraft 3 / У кого-нибудь есть незащищённая карта
Ред. host_pi
» IrInA Host Bot / Обновление коннектора (анонс)
Kokomi:
только успех многих фич действительно зависит от количества аудитории. если три игрока онлаен, то новые фичи никто не оценит и не будет пользоваться ими. как тут писали, что многие не знают про game.dll , я даже больше скажу - в 2к23 году на форуме асикапа была тема с вопросом "а что такое ирина" (и её там быстренько закрыли от коментов)
Ред. host_pi
» IrInA Host Bot / Обновление коннектора (анонс)
Ред. host_pi
» WarCraft 3 / Как сделать чтобы статистика игрока сохранялась. Если можно
Ред. host_pi
» WarCraft 3 / Как написать код на Jass
Ред. host_pi
» WarCraft 3 / Оптимизация jass кода
не хватает:
только надо строку из "function main" перенести в свою main функцию на карте
» WarCraft 3 / как уничтожить все таймер-диалоги timerdialog ?
» WarCraft 3 / Можно ли с помощью триггеров/JASS вращать юнита по любым осям?
Ред. host_pi
» WarCraft 3 / Карта откатилась :(
или тем более не залить карту куда то ни разу
как это работает?
Ред. host_pi
» WarCraft 3 / Фатал
- ты на разных цветах играешь или только на красном? критует цвет или тебя? у других игроков критует?
- сколько у тебя ОЗУ ? уже давно мог бы написать
- что по проге от IceFog ? тестил?
TechnoViking:Ред. host_pi
» WarCraft 3 / Вообще нет идей с десинхроном...
что ты там в ней скрываешь? свои пароли на биткоины?
Ред. host_pi
» WarCraft 3 / Десинхронизация
в гугле xgm сплошные Q A и ответы в стиле "да нет" от бывалых
Ред. host_pi
» WarCraft 3 / Десинхронизация
если десинхов на картах будет меньше - то от этого выйграют все
Ред. host_pi
» WarCraft 3 / Десинхронизация
хотя это зависит от навороченности карты. когда нетиз ещё жил и позволял играть в навороченные китайские карты размером по 400 МБ (которые даже JN loader открывал со скрипом и частично неработающими функциями) (и я сейчас не про импорт многотонных моделей, а про движок в карте и новые возможности всяких окошек и менюшек) - то не просто так сам нетиз при подключении к кому-то в игру открывал новое окно варика, а при отключении от игры это окно закрывал - т.е. принудительно делал так, что на каждую игру у всех игроков открывается новое окно.
и странно, что в этой теме не было дано ни одной ссылки по оптимизации кода от других картоделов
чё-нить хотя бы такое
https://maxcheaters.com/topic/13071-guidetriggers-memory-leaks-a...
https://world-editor-tutorials.thehelper.net/cat_usersubmit.php?...
Ред. host_pi
» WarCraft 3 / как уничтожить все таймер-диалоги timerdialog ?
Ред. host_pi
» WarCraft 3 / как уничтожить все таймер-диалоги timerdialog ?
только все 3 новых строчки с перехватом выше фразы "мы тут", т.е. этакое компромиссное решение
из чего делаю вывод по вопросу 2-1
2-1:
что после создания подряд трёх окон (при условии что во время создания мы рядом не стояли и переменную не копировали себе в массив) - мы не можем к ним никак обратиться и что-то с ними сделать. а можем только с самым последним созданным
выявлено опытным путём, что DestroyTimer(t) нежелательно пользоваться, т.к. после этой нативки надо заново создавать таймер, как мы это делали в инициализации глобалок через timer t=CreateTimer()
уничтожение таймерного окна не уничтожает и не останавливает сам таймер
т.е. окна не будет, а таймер продолжит тикать и будут срабатывать все привязанные к этому таймеру функции т.е. нужно уничтожать и окно и останавливать таймер