alexprey, естественно. Я у себя реализовывал их способ компрессии целых чисел (varint), когда можно у тебя числа 1 300 и 50000 займут в массиве не 12 байт, а 6 (вроде), on a larger scale, это очень сильно играет. Isstrebitel, подход может и ближе, только язык от этого ближе не становится.
Я не уверен что это сработает в 100% случаев.
В таком случае зачем стандартная абилка, если можно позволить герою умереть, сделать замедление, и потом триггерно его воскресить.
Alex Daniels, нет уж, ему нужно передать 50 id интов, которые поместятся в 100 байт (думаю в 25к игроков вы уложитесь), огого. Информацию о игроке нужно передать тогда, когда этот игрок появится непосредственно в радиусе видимости. И так как мы сейчас обсуждаем совсем другую проблему, если 50 игроков появятся в зоне видимости, то все сфейлится, потому что по какой-то причине у тебя данные из сети в сыром виде парсятся жассом, чего быть не должно.
Alex Daniels, а зачем вообще спорить если ты знаешь самый быстрый способ и вообще самый умный? Или самый быстрый в смысле тяп ляп закодить? Ну вот он твой самый быстрый способ, уперся в лимиты. Ради чего все это? Экономия запросов к серверу? А их и не должно быть, кроме как "игрок сделал приказ двигаться/атаковать/остановиться". Экономия запросов от сервера? Смехота, у вас оверхед от постоянной передачи данных от всех 50 игроков будет намного больше. Игрок не знает о других залогиненных игроках? Так передайте ему эту информацию когда он логинится, а всем залогиненным информацию о том что зашел игрок с ником Х. Так сложно?
А какая связь между запросами на сервер и получением данных из переменных?
Уже предложили все, самая очевидная архитектура - создавать свой ивент на получение данных, сторить эти данные в нормальных глобалках нормальных типов и использовать эти глобалки (т.к. логический поток в вк3 один проблем с этим не возникнет).
Я честно даже не могу представить что здесь непонятного.
И да перечитал тут постики, передавать каждый раз героя и логин игрока (которые не меняются) просто смешно. Координаты приказа, статы и хп тоже не часто (раз в секунду это не часто) меняются. Вам бы почитать о том как мультиплеерные игры делаются или подумать о том сколько лишних действий происходит. С такой архитектурой как сейчас будут проблемы и проблемы большие.
какая блин оптимизация, ты вообще что понимаешь в этом, хелло? конвертация числа из его представления в строку и потом вытаскивание из строки это НАМЕРЕННОЕ УСЛОЖНЕНИЕ кода, потому что числа блин изначально не хранятся в строках, с чего это использование изначального варианта архитектуры который просто испортили и усложнили будет считаться оптимизацией?
че за бред вообще передавать такие данные строками, лол?
вам просто нужно механизм передачи данных полностью пересмотреть, у вас сделано говно сейчас, я это гарантирую
передавать нужно не символы, а массив байтов, если уж справились с внедрением таких вещей в игру то должны понимать что-то
Я в общем не смог понять, это игра для мобилок? Если да - то все ок, если нет - у вас очень плохой и очень большой интерфейс, который занимает слишком много места, про шрифты и оформление ничего не говорю, это понятно что можно просто исправить. Но сам лейаут нереально огромный и громоздкий без причины.
Находка интересная, безусловно, хоть и на вид бесполезная.
16GB правда полностью прав в этом плане, использование других абилок это в целом либо лень (в данном случае скорее желание сохранить поведение скиллов таким же как оно и было в оригинале), либо новичковская ошибка.
Кет, эта хрень может фактически выдавать 2-4 секунды вместо 0.5 или 0.1. В общем ждет сколько захочет.
Ну и вранье, лол. Такого быть не может, сори. Но вейты работают сквозь паузу, да и для точного ожидания не подходят т.к. период их проверки (и следовательно погрешность и минимальное время ожидания) 0.1, если не ошибаюсь. Это не всегда существенно.
При касте добавляем кастера в группу, записываем в хештаблице на этого юнита integer timeRemaining = 5 (например), записываем на него нужное значение в ту же хештаблицу.
Делаем триггер который срабатывает каждую секунду.
В нем для всех юнитов в нашей группе уменьшаем timeRemaining на 1, если timeRemaining == 0, убираем из группы, уменьшаем нужное значение.
Доступно?
Будет погрешность от 0 до 1 секунды, если не нравится - делаем период триггера 0.01, действия те же.
И да вы все тут пытаетесь симулировать хеш-таблицы или параллельные массивы через индексы, когда вам уже все инструменты даны.
Никогда не понимал смысла подчистую копировать другие игры, это же твои старания только аннулирует, многие ведь играли в дудл джамп. Я никак не считаю тебя за плохого разработчика и не считаю что игра сделано плохо, судя по видео все замечательно. Но просто не понимаю ну зачем? Ведь можно же сесть и обмозговать и выдать оригинальную идею. Понятно квесты там, разные персонажи, босс файт, но это мало что меняет. Никто же не заставлял делать такую игру, думаю самому хотелось. Немного понятно если это первый опыт, так сказать игра для развития, но и тут можно что-то интереснее придумать. И это сразу как-то поднимет тебя в глазах многих.
На правах рекламы очень советую использовать wurst script, он действительно лучше чем комбо cjass + vjass, честно-честно, я пару лет пользовал последнее и потом был очень приятно удивлен тем как в вурсте все сделано.
» Ангар Истребителя / C#: bool с сюрпризом
» Ангар Истребителя / C#: bool с сюрпризом
» Ангар Истребителя / C#: bool с сюрпризом
Isstrebitel, подход может и ближе, только язык от этого ближе не становится.
» Ангар Истребителя / C#: bool с сюрпризом
» WarCraft 3 / Откат Пассивки
» WarCraft 3 / Можно ли расширить переменую string в Warcraft III?
» WarCraft 3 / Откат Пассивки
В таком случае зачем стандартная абилка, если можно позволить герою умереть, сделать замедление, и потом триггерно его воскресить.
Ред. Doc
» WarCraft 3 / Откат Пассивки
» WarCraft 3 / Можно ли расширить переменую string в Warcraft III?
» WarCraft 3 / Можно ли расширить переменую string в Warcraft III?
» WarCraft 3 / Можно ли расширить переменую string в Warcraft III?
Ред. Doc
» WarCraft 3 / Можно ли расширить переменую string в Warcraft III?
» WarCraft 3 / Можно ли расширить переменую string в Warcraft III?
» WarCraft 3 / Можно ли расширить переменую string в Warcraft III?
Уже предложили все, самая очевидная архитектура - создавать свой ивент на получение данных, сторить эти данные в нормальных глобалках нормальных типов и использовать эти глобалки (т.к. логический поток в вк3 один проблем с этим не возникнет).
Я честно даже не могу представить что здесь непонятного.
Ред. Doc
» WarCraft 3 / Можно ли расширить переменую string в Warcraft III?
» WarCraft 3 / Можно ли расширить переменую string в Warcraft III?
Ред. Doc
» WarCraft 3 / Можно ли расширить переменую string в Warcraft III?
вам просто нужно механизм передачи данных полностью пересмотреть, у вас сделано говно сейчас, я это гарантирую
передавать нужно не символы, а массив байтов, если уж справились с внедрением таких вещей в игру то должны понимать что-то
» Sqworld / Sqworld - свежий отчет
» WarCraft 3 / Кэширование абилок движком
16GB правда полностью прав в этом плане, использование других абилок это в целом либо лень (в данном случае скорее желание сохранить поведение скиллов таким же как оно и было в оригинале), либо новичковская ошибка.
» WarCraft 3 / Ошибка
Ред. Doc
» WarCraft 3 / Ошибка
» WarCraft 3 / Array Timer
Ред. Doc
» WarCraft 3 / Array Timer
В нем для всех юнитов в нашей группе уменьшаем timeRemaining на 1, если timeRemaining == 0, убираем из группы, уменьшаем нужное значение.
» Magic Tower / Magic Tower
Ред. Doc
» WarCraft 3 / Как в cJass записываются интерфейсы функций?