Перейти к содержанию

Electr0

Администраторы
  • Постов

    10 387
  • Зарегистрирован

  • Посещение

  • Победитель дней

    417

Весь контент Electr0

  1. Готово, пришлось обновить только созданный плагин (см. последние коментарии): Вот стопка предметов в которые будет помещен танк: Помещаем танка и ждем 0.5 сек: А вот что случилось через пол секунды:
  2. Готово, во время первой трассировки понимаю застревает или нет клиент, если да то делаю вторичную трассировку со сбором пропов в которых клиент застрял и оформляю это все в ArrayList записывая пропы через PushArrayCell в EntRef формате, дальше на этапе создания событий OnClientStartStuck и OnClientStuck я извлекаю данные из ArrayList и помещаю их в обычный числовой массив который уже через параметр Param_Array можно передать событию, не забывая указать кол-во ячеек в массиве, дальше в плагинах которые слушают события OnClientStartStuck, OnClientStuck можно получить полный список пропов которые мешают игроку двигатся в конкретный момент.
  3. Есть проблема, т.к. плагин передает за раз только один проп, то плагин исправления застревания, если клиент застрял в сотнях предметов работает не мгновенно, а с задержкой в 0.5 сек и шагом 1 предмет - 0.5 сек, то есть. если поставить кучу предметов и сунуть туда танка, то он будет раз в 0.5 сек убирать предмет мешающий танку, думаю надо подумать как его ускорить, надо как-то научится за один раз передавать данные обо всех предметах что мешают игроку, тогда это будет то что нужно, и можно будет за раз хоть 200 предметов двинуть.
  4. Значение Статус изменено на: В обработке
  5. т.к. плагин исправления застревания работает не мгновенно, а с задержкой в 0.5 сек и шагом 1 предмет 0.5 сек, то есть. если поставить кучу предметов и сунуть туда танка, то он будет раз в 0.5 сек убирать предмет мешающий танку, думаю надо подумать как его ускорить, надо как-то научится за один раз передавать данные обо всех предметах что мешают игроку, тогда это будет то что нужно, и можно будет за раз хоть 200 предметов двинуть.
  6. Значение Статус изменено на: Исправлено
  7. Значение Статус изменено на: Исправлено
  8. Значение Статус изменено на: Исправлено
  9. Explosions In The Sky – It's Natural to Be Afraid

  10. Значение Статус изменено на: Тестируется
  11. то как система работает в действии конечно угарно) телепортируешь танка или кого нить живого ну на вроде куры в стопку пропов чтобы он там застрял и пропы в которых он застрял сами поднимаются над ним давая ему пройти.
  12. По такому принципу идет расчет, после того как узнал высоту самого низкого края предмета. // если самый низкий угол выше либо равен высоте предмета (99.9 % что нет, но все же если такое произойдет то у логики не должно быть исключений) if (vLowestEdgeZ >= fVecEntPos[2]) { // приравниваем высоту предмета к высоте над головой игрока. fVecEntPos[2] = fVecPlayerPos[2] += vPlayerMaxs[2] + 10.0; DispatchKeyValueVector( entity, "Origin", fVecEntPos ); } else { // высота выше либо равной которой должен быть самый низкий край предмета (это позиции ног + рост игрока + 10 юнитов) fVecPlayerPos[2] += vPlayerMaxs[2] + 10.0; // вычитаю из самого низкого края, высоту выше которой должен быть самый низкий край, получаю кол-во юнитов на которое надо поднять проп. float vUnitsToMoveUP = vLowestEdgeZ - fVecPlayerPos[2]; // если число получилось отрицательное делаю его положительным. if (vUnitsToMoveUP < 0.0) { vUnitsToMoveUP = -vUnitsToMoveUP; } // прибавляю к оси Z предмета кол-во юнитов на которое надо поднять предмет. fVecEntPos[2] += vUnitsToMoveUP; DispatchKeyValueVector( entity, "Origin", fVecEntPos ); }
  13. При застревании игрока или танка в пропе, предлагаю узнавать самую низкую точку предмета (мы же понимаем что ориентироватся на центр нет смысла, ты повернешь проп вниз и получится так что его центр будет вверху но игрок всеравно в нем застревает)), поэтому нужно узнать высоту крайне низкой точки предмета и сравнив ее с высотой игрока понять насколько юнитов нужно телепортнуть предмет вверх
  14. Значение Статус изменено на: Тестируется
  15. это хорошо работает на прямоугольных вытянутых предметах.
  16. Значение Статус изменено на: Тестируется
  17. Значение Статус изменено на: Тестируется
  18. проблемка, урон от смокера идет раз в секунд как оказалось, тактику меняем, если игрока курят застрявшим, на событии OnEntityStartStuck делаем старт личного повторяющегося таймера урона на 1 сек который будет принудительно закрыт во время события OnEntityEndStuck
  19. надо использовать OnEntityStuck который стреляет раз в 0.5 сек, поставить условие если человек скурен то давать ему лещей с вот такими параметрами по Damage, и damagetype, Inflictor OnTakeDamage(victim 1, Attacker 7, Inflictor 7 (player), Damage 10.000000, damagetype 1048576)
  20. public void OnEntityStartStuck(int client, int entity) { PrintToChatAll("OnEntityStartStuck(%N, %i)", client, entity); } public void OnEntityStuck(int client, int entity) { PrintToChatAll("OnEntityStuck(%N, %i)", client, entity); } public void OnEntityEndStuck(int client) { PrintToChatAll("OnEntityEndStuck(%N)", client); } OnClientStartStuck, и последующие OnClientStuck через промежудки проверки, Проп убран, выстреливает OnClientEndStuck
  21. технологии убего строения дошли и до таких убег в которых телепорт танки застревают, а так же полагаю и люди
  22. с указанием пропа в котором застревает игрок, чтобы можно было удалять такие пропы автоматически если они созданы человеком, интервал проверки 0.5 сек
  23. https://invisioncommunity.com/files/file/8900-bim42-status-updates-widget/ появился интересующий нас плагин по статусам на новую версию движка, можно начинать работы по внедрению 4.2.X но сначала я думаю можно подождать выхода 4.3 которая выйдет к лету, а там уже подождать пока выйдет этот плагин и тогда купить, потому что эра 4.2.x подошла к концу.., а мы тем временем еще на 4.1.x но все же без этого плагина который появился так поздно смысла обновляться не было, просто я не вижу смысла верстать по новой стиль на 4.2.x если выйдет 4.3 скоро совсем, и при этом придется делать все сначала.., при том что продление раз в пол года лицензии на плагинчик то
×
×
  • Создать...