Doc #1 - 3 дня назад (отредактировано ) 0

» Блог им. nvc123 / XGM для Android

[10:38:25] nvc123 * обычный люд не видет айди сообщения
[10:37:38] nvc123 * блин хреного
Никакой костыльности. Отправил я два одинаковых сообщения в одну секунду, а отображается одно. И дело даже не в том что корнер кейз, а в том что все это делается ради того, чтобы обойти отсутствие апи.
Doc #2 - 3 дня назад 0

» Блог им. nvc123 / XGM для Android

Будут дублироваться сообщения если между подгрузками будут написаны новые.
Соответственно добавляем дедубликацию по дате. Соответственно еще и по имени. Соответственно те самые костыли из первого сообщения.
Doc #3 - 3 дня назад 1

» Блог им. nvc123 / XGM для Android

30 сообщений на странице, из них 20 сообщений мелиссы, мелисса в чс, 10 сообщений на странице.
Doc #4 - 3 дня назад 0

» Блог им. nvc123 / XGM для Android

С трудом видится возможность добавить ЧС без костылей.
Doc #5 - 2 недели назад 1

» Dota 2 / Результаты конкурса героев Dota 2

Ты же понимаешь, что твоя неспособность открыть видео с youtube и нежелание проверять героев самому - исключительно твоя проблема?
Doc #6 - 2 недели назад 0

» Clamp'ова кухня / Герой после конкурса: WIP

У меня лаптопа даже нет с собой. ТИ кончается через неделю, так что примерно тогда.
Doc #7 - 2 недели назад 0

» Clamp'ова кухня / Герой после конкурса: WIP

Героя посмотрю как вернусь с ТИ, но сразу скажу: придумать героя у которого все способности связаны-перевязаны проще всего, и я считаю что лион будет интереснее 99% героев завязанных на одной сущности и к тому же не могущих без нее существовать. Но это так, прелюдия. Интересный ли герой еще предстоит увидеть. То что я описал выше - не предвзятость, а скорее исходит из персонального опыта.
Doc #8 - 2 недели назад 4

» Dota 2 / Результаты конкурса героев Dota 2

Случайно потер свой камент...
Поверьте мы все хотим чтобы было 1000 работ в доте, шестизначные числа в призовых и стив джобс в судьях. Но в итоге делаем как можем, а вы только срете.
Чуваки сдали работы, получили критику и призы. В чем смысл щас приходить срать на это все?
Doc #10 - 2 недели назад 2

» Dota 2 / Результаты конкурса героев Dota 2

Выбросьте ремейки всех игр насрать на качество. Дум 2016? Тьфу на него. Да и на квейк, по сути то ремейк дума. Да и дота2 ремейк первой, внимания не стоит. Троеточие...
Doc #11 - 3 недели назад 6

» Dota 2 / Результаты конкурса героев Dota 2

а вот хотя бы тот же абатур или яйцо мурчаля - оригинально, про чо'галла молчу
или саппорт, который может свои киллы превращать в киллы для выбранного керри
или вон серого клирика выкладывал чел идею, после смерти все герои переходят на 2-3 секунды или что ли, в состояние стана с 0 хп., и за это время > > дамаг его будет вводить в минус хп, а хил в плюс, если выхилишь, то герой реснется сразу с этими хп там же, а если нет, то умрёт "навсегда"
Я согласен, но никто такого не сделал.
Doc #12 - 3 недели назад 6

» Dota 2 / Результаты конкурса героев Dota 2

Оригинальность это когда у тебя одна из абилок активируется нажатием на портрет или когда можно жонглировать зданиями или когда у тебя мувспид зависит от текущей заполненности полоски опыта? Если да, я бы ни одну из этих абилок высоко не оценил.
Doc #13 - 4 недели назад 0

» WarCraft 3 / vJass: метод destroy()

Напиши простейший код, скомпиль и посмотри во что превращается. Никаких структур в движке варика нет, вжасс это надстройка которая транспилит в обычный жасс.
Doc #14 - 4 недели назад (отредактировано ) 8

» Dota 2 / Результаты конкурса героев Dota 2

Концепция не обязательно должна быть сложной, поймите. Это то что тц пытается вам объяснять. В доте куча героев со "скучными" в вакууме скиллами которые основаны на базовых механиках (дроу, лина, па, миллион других) но играются и работают при этом уникально. Мне лично концепция с миссами показалась интересной, хоть и не очень фановой, гендер-бейзд я правда воспринял больше как шуточную механику.
"грязный" код это субъективно тоже, но был. Откройте карту диаболико.
По мне лазанье по деревьям и 1001 эффект от одного скилла не мега интересно, а гавное нужно при игре в доту. Знаешь ли-весь хайв завален мега крутыми ( в визуальном плане ) спеллами, но от них нету толку, их невозможно использовать либо бесполезны, либо имбовы. Всем насрать (уж извините) что герой танцует 10 сек, и под конец сьедает всем в 300 аое 10 интелекта, никто не будет на вас смотреть а просто зафокусят как изи фраг и все.
Я не сразу до этого дочитал но в общем да, суть.
Мне долгий АоЕ дисарм тоже показался довольно интересным. Иногда просто большое число на банальной механике уже небанально, смотрите какой-нибудь крит мортры или кучу карт в мтг-подобных играх.
Doc #15 - 4 недели назад 4

» Dota 2 / Результаты конкурса героев Dota 2

Один судья все же значит субъективное мнение в той или иной степени. Я старался оценивать по качеству и ощущениям в целом. У победителя была работа с наибольшим consistency, имхо. У тоадкопа вся ставка была сделана на модель, оно и понятно, времени не было.
У меня крашей не было, хотя я довольно долго все тестировал, но отрицательные заряды воспроизводились без проблем.
Doc #16 - 1 месяц назад 0

» Clamp'ова кухня / Clamp's Physics Engine

И еще, то, что в системе называется "impulse", это на самом деле должно называться "velocity", потому что импульс это масса*скорость, отсюда кстати и та вышеуказанная ошибка с умножением на массу.
Я вот с этим кстати мега согласен и на самом деле просто забыл написать.
Doc #17 - 1 месяц назад 2

» Clamp'ова кухня / Clamp's Physics Engine

В коде нет совершенно ничего нового да и старое сделано на данный момент не везде лучшим образом, в этом и суть.
xgm.guru/forum/showthread.php?t=25570 пжлст, опана, гляди-ка
void HitGround(Body a) {
     real z0 = GetZ(a.x,a.y)
     real z2 = GetZ(a.x+CollPlosk,a.y)
     real z1 = GetZ(a.x,a.y+CollPlosk)
     real nx = (z0-z2)/SquareRoot((z0-z2)*(z0-z2) + (z0-z1)*(z0-z1) + CollPlosk*CollPlosk)
     real ny = (z0-z1)/SquareRoot((z0-z2)*(z0-z2) + (z0-z1)*(z0-z1) + CollPlosk*CollPlosk)
     real nz = CollPlosk/SquareRoot((z0-z2)*(z0-z2) + (z0-z1)*(z0-z1) + CollPlosk*CollPlosk)
Абсолютно то же самое, например. Да, код выглядит как нечитабельное говно. Да, тут тоже массивы называются стеком. Но тут и фичи и конфигурация.
Doc #18 - 1 месяц назад 0

» Clamp'ова кухня / Clamp's Physics Engine

Фактически проблемы нет в наименовании никакой, работает - ок, но по факту если претендуешь на понятный код то естественно называть нужно своими именами.
Уничтожаться ниче офк не должно, какого фига физический объект должен за это отвечать? Но мое изначальное замечание было в сторону настраиваемости "движка".
Doc #19 - 1 месяц назад (отредактировано ) 0

» Clamp'ова кухня / Clamp's Physics Engine

То есть в этом случае чем больше сопротивление тем быстрее падает объект?)
Я бы ничего это не писал если бы не заявления в духе
[20:06:50] Clamp * Потому что всё от и до построено на матмодели, а не через костыли типа "юнит вошёл в область"
[20:06:16] Clamp * Доделал по инерции, смею утверждать, что у меня физика производительнее, чем в TcX
И прочий ненужный пафос.
Doc #20 - 1 месяц назад (отредактировано ) 4

» Clamp'ова кухня / Clamp's Physics Engine

Сори, но это пиздец говно. Я заревьювил все твои 500-600 строк кода и единственное, что в нем хорошего это стиль, код реально чистый.
Начнем по порядку.
    private void StackPop(int id) {
        stackCounter--;
        stack[id] = stack[stackCounter];
    }
Здесь у меня просто случилась аневризма. Стэк так не работает. При чем тут стек и зачем эта переменная названа стек - непонятно. Это random access list. В стеке нет доступа ни к чему, кроме хвоста.
        private PhysObj physic;
        private VisObj visual;
        private DmgObj damage;
Честно просто смешная попытка замутить нечто похожее на entity-component-system, ни о какой модульности речи тут не идет, с тем же успехом можно было слить все эти чайлд структуры в основную и ничего бы не изменилось. Оверинжиниринг без цели и бенефитсов.
Снаряды тупо всегда уничтожают себя при колижне с юнитами. Это та самая хваленая "матмодель"? Я не знаю смеяться или плакать. Это преимущество над движком тсх? Ты понимаешь вообще что там было основано на входе в ректангл только чтобы максимально перенести отсеивание колижнов в нативный код? Что наверняка в движке реализовано какое-нибудь quadtree которое нормально работает с большим количеством юнитов? Что есть у тебя? GroupEnumUnits? Я уже не говорю о том что поделие совершенно нерасширяемое, ты просто сам попробуй не трогая основной код реализовать пару спеллов. Тут даже такие банальности как то, что гравитация это скаляр, а не вектор. Зато зачем-то есть настраиваемый тикрейт и сила трения. Сила трения правда одна на всю карту, удобно.
Мега физика в "движке" это семплинг нормали граунда через GetTerrainZ? А, нет, вот, нашел:
this.impulse.z -= this.mass*gravity;
вот с этого просто в АХАХАХА, т.е. объект который весит меньше будет медленнее падать?
Какбы в итоге зашибись, учиться - учись. Но понты и умничанье в оффтопке лучше попридержать до момента пока не научишься. Тонна таких и намного лучше систем валяется на барахолке уже с десяток лет, без шуток. Код с семплингом нормали я видел в каждой из них, да и сам писал такой. Подобная система есть, например, у ханабиши.
Doc #21 - 1 месяц назад 2

» Game Dev / Поиск ближайшей точки к кривой

Очень сомневаюсь в "нельзя". Если искать пересечение между линией и плоскостью, но используя вместо уравнения плоскости уравнение безье то наверное может получиться. Советую спросить не здесь, а на stackoverflow/math.stackexchange
Doc #22 - 1 месяц назад (отредактировано ) 0

» WarCraft 3 / 8. Кортежи

Кортежи не могут быть связаны с обобщенными типами. То есть, вы не можете использовать конструкцию List<vec>, если vec это кортеж
Это такая недоработка компайлера? Не вижу на это причин.
А все, прочитал наоборот, сорян борян.
Doc #23 - 1 месяц назад 2

» WarCraft 3 / 1. Основы

Если вы используете внешний редактор Visual Studio Code (что рекомендуется и подразумевается)
Когда я пробовал подразумевался эклипс, сейчас уже нет?
Doc #24 - 1 месяц назад 2

» Game Dev / Поиск ближайшей точки к кривой

Откуда кривая то собственно взялась, если не из набора точек? Какая-то формула? Можно спроецировать её на прямую и найти локальные минимумы.
Doc #25 - 1 месяц назад 0
Doc #26 - 1 месяц назад (отредактировано ) 0

» WarCraft 3 / Экономия cjass и vjass триггера функций в редакторе NewGen?

Функшн поинтеров помимо типа code в жассе нет. Можно полагаться только на ExecuteFunc, куда аргументы передаются только глобалками, соответственно никакого тайпчекинга.
Использовать можно например так
struct mystruct
    static method mymethod takes nothing returns nothing
        call BJDebugMsg("this works")
    endmethod
endstruct

function myfunction takes nothing returns nothing
    call ExecuteFunc(mystruct.mymethod.name) //ExecuteFunc compatibility

    call OnAbilityCast('A000',mystruct.mymethod.name)
    //for example, caster system's OnAbilityCast, requires a function name
endfunction
Взято из vjass manual.
Doc #27 - 1 месяц назад (отредактировано ) 0

» WarCraft 3 / vJass

Module Initializers are used because they run first :p
After module initializers -> struct initializers
After that -> library initializers
After that -> scope initializers
After that -> ... nothing :p
Doc #28 - 1 месяц назад 0

» WarCraft 3 / vJass

Какие-то причины помнится на самом деле были.
Doc #29 - 1 месяц назад 0

» WarCraft 3 / World Editor - Не смогла найти даже вопросы, чтобы найти ответ.

Не супер уверен что квесты можно через гет локал плеер давать, т.к. все же хендлы.
Doc #30 - 1 месяц назад 17

» Unity 3D / Это реально?

Абсолютно нереально. Варкрафт 3 например сделали с помощью магии.
Doc #31 - 2 месяца назад (отредактировано ) 2

» WarCraft 3 / Array Timer

struct MyTimer {
    float endTime;
    unit attachedUnit;
}

int NULL = 0;
MyTimer[8] timers;

void Update() {
    for (int i = 0; i < 8; i++) {
        if (timers[i] != NULL && timers[i].endTime <= GetGameTime()) {
            KillUnit(timers[i].attachedUnit);
            timers[i] = NULL;
        }
    }
}

void StartTimer(int whichOne, unit forWhom, float delay) {
    timers[whichOne] = MyTimer();
    timers[whichOne].endTime = GetGameTime() + delay;
    timers[whichOne].attachedUnit = forWhom;
}
Не самая сложная проблема в программировании.
Doc #32 - 2 месяца назад 0

» WarCraft 3 / Не работает ForGroup в структуре

при мгновенных действиях никаких багов быть не может, в игре один поток
Doc #33 - 2 месяца назад (отредактировано ) 0

» Dota 2 / Продление конкурса героев до 1-го июня

Это шутка была... Просто вспомнились прошлые спеллконтесты итд с кучей судей.
Мне не обидно за задержку.
Doc #34 - 2 месяца назад (отредактировано ) 4

» WarCraft 3 / движение через ( X . y )

Вы че тут рофлите просто? Че это за жесть. Ну попытались бы хоть развернуть формулы и посмотреть что вы конвертите из одного в другого а потом обратно, зачем?
// target = origin + normalize(source - origin) * speed
u = GetEnumUnit()
ux = GetUnitX(u)
uy = GetUnitY(u)

tx = GetUnitX(udg_topot_caster)
ty = GetUnitY(udg_topot_caster)

dx = ux - tx
dy = uy - ty

len = SquareRoot(dx * dx + dy * dy)
// Also need a 0 len check
dx = dx / len
dy = dy / len

SetUnitX(u, ux + dx * 10)
SetUnitY(u, uy + dy * 10)
struct
	real x
	real y
endstruct
Нужна только чтобы туда добавить методы для работы с векторами.
Углы, косинусы, синусы в большинстве случаев не нужны ВООБЩЕ.
Doc #35 - 2 месяца назад 0

» Dota 2 / Продление конкурса героев до 1-го июня

Ну я тоже виноват типа судить там было на полтора дня работы, но ваще да тут совокупность судя по всему. Хгм уже не торт...
Doc #36 - 2 месяца назад 0

» WarCraft 3 / JASS: группа или массив?

нет никакой разницы, плиз.
void myForEach(Value[] values, Consumer<Value> action, int index) {
    if (values.length == index) {
        return;
    }

    action.accept(values[index]);
    myForEach(values, action, index + 1);
}
вместо того чтобы хранить index в локалке значение хранится в стеке вместе с values и action.
Doc #37 - 2 месяца назад (отредактировано ) 0

» WarCraft 3 / JASS: группа или массив?

Щас бы использовать рекурсию для прохода по массива в языке без поддержки хвостовой рекурсии и засирать стек вызовов ммм.
Плохо читал, это уже написали оказывается.
Рекурсия это просто использование стека вызовов для хранения стейта, ничего больше. Не нужно её использовать там где проще без нее обойтись.
Doc #38 - 2 месяца назад 0

» WarCraft 3 / JASS: группа или массив?

В чем смысл чето городить. На 1 юнита достаточно одной структуры в любой карте. Адрес структуры можно хранить в кастом велью. Единственные места где нужно пользоваться самим юнитом это там куда этот юнит приходит (ивенты) и там куда он уходит (нативки). В остальном пользуемся самой структурой.
Doc #39 - 2 месяца назад 0

» WarCraft 3 / local и global timer нагружаются в локальной сети?

Записываете реплей игры, смотрите: вес реплея это вес всего трафика переденного по сети от хоста каждому отдельному игроку.
Doc #40 - 2 месяца назад 0

» Блог имени меня / Я тоже хочу сделать игру #1

Ты может и в шахматы сам с собой играешь?)
Doc #41 - 2 месяца назад 0

» WarCraft 3 / Jass New Gen Pack - Rebuild 1.3

Для 1.28 есть замена жнгп, скачать можно на хайве
Doc #42 - 2 месяца назад 0

» WarCraft 3 / Jass New Gen Pack - Rebuild 1.3

Крайний патч это какой, 1.28? С ним жнгп не работает.
Doc #43 - 2 месяца назад 0

» Блог имени меня / Я тоже хочу сделать игру #1

Какие-же по-твоему тогда проекты не "слабенькие", эксперт?
Doc #44 - 2 месяца назад 0

» Блог имени меня / Я тоже хочу сделать игру #1

ни продуманного одиночного режима, ни толковой сюжетной подоплёки
О это вы сейчас про DOTA2 или League of Legends? Да, слабенькие проекты.
Doc #45 - 2 месяца назад 5

» Dota 2 / Продление конкурса героев до 1-го июня

Заканчиваю проверять работы, всё будет скоро. Извините за долгую задержку, прокрастинировал.
Готово. Теперь ждем тыщу.
Doc #46 - 2 месяца назад 5
Doc #47 - 2 месяца назад 4

» Dota 2 / Продление конкурса героев до 1-го июня

Не все. Editor и Toadcop прислали героев сделанных в доте2.
Doc #48 - 2 месяца назад (отредактировано ) 0

» Dota 2 / Продление конкурса героев до 1-го июня

Я не уверен т.к. тыща мне не скинул все работы (кто-то кидал мне, кто-то ему), но я проверяю то что есть.
Вот то что есть у меня:
Doc #49 - 3 месяца назад 0
Doc #50 - 3 месяца назад 6

» Программирование / Крестики-нолики на C++

По-моему он все же имел в виду работу с дебаггером, а ручку с листочком только как вспомогательное.