Перейти к публикации

Electr0

Администраторы
  • Публикаций

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

  • Посещение

  • Дней в лидерах

    414

Все публикации пользователя Electr0

  1. переносил как, какие пункты меню нажимал
  2. и опиши видел ли ты их в слоте 2 после того как перенес
  3. последовательность твоих действий после переноса из слота в слот двух предметов опиши.
  4. почему они появились в воздухе
  5. как с тобой работать если ты даже сервер указать не можешь.
  6. из описания не ясно что делали, пиши нормально что нажимал, из какого слота в какой что перегонял
  7. Electr0

    Шаблоны убег

    блин надо собрать все в один кусок потому у меня уже в голове идея типа возможность сохранить свою убегу в слоты для шаблонов и грузить любую убегу из этих слотов на любой карте без гемора на месте курсора
  8. Electr0

    Шаблоны убег

    ну я думаю до 100 объектов какие нибудь простенькие штучки
  9. Electr0

    Шаблоны убег

    В связи с положительным прохождением тестов по вопросу алгоритма работы шаблонов: думаю стоит начинать делать наброски по функционалу того что можно сделать на основе этого. Мне видится следующее: Администрация будет иметь возможность сохранить слот в публично доступный всем раздел в стройке с шаблонами, по нажатию на какой либо шаблон происходит загрузка убежки из данного шаблона в место куда смотрит игрок Возможно можно будет предоставить игрокам возможность предоставлять свои шаблоны для других игроков (ОГОВОРОЧКА, платные предметы в шаблон входить не будут) Слоты шаблонного типа из которых можно разворачивать сохраненные в них убеги (без оружия, с лимитом в 100 предметов на слот) С помощью этой технологии можно: Сделать функцию телепорта убеги на место под курсором Сделать функцию загрузки любой убеги на любой карте (для админов) по месту курсора
  10. Значение Статус изменено на: Тестируется
  11. Значение Статус изменено на: Сделано
  12. Значение Статус изменено на: Будет сделано
  13. Теория работает, можно приступать к разработке
  14. Набросал тестовую реализацию теории, по итогу из исходных координат предметов создаем шаблон сдвигов предметов, после чего накладываем шаблон на координату позиции курсора игрока, вечером проверю работает ли это на практике, тогда можно будет начать писать код создания шаблона из слота и помещение его в спец таблицу где будут лежать шаблоны которые игроки смогут загружать. public Action CmdLoadTemplate(int client, int args) { float vPos[3][3], vSpawnPos[3][3], vTemplatePos[3][3], vMainOffsetPos[3]; // ИСХОДНЫЕ КООРДИНАТЫ ПРЕДМЕТОВ // координата позииции предмета 1 vPos[0][0] = 0.0; vPos[0][1] = 0.0; vPos[0][2] = 0.0; // координата позииции предмета 2 vPos[1][0] = 0.0; vPos[1][1] = 0.0; vPos[1][2] = 0.0; // координата позииции предмета 3 vPos[2][0] = 0.0; vPos[2][1] = 0.0; vPos[2][2] = 0.0; PrintToChat(client, "Входные координаты:: vPos[0] %f %f %f, vPos[1] %f %f %f, vPos[2] %f %f %f", vPos[0][0], vPos[0][1], vPos[0][2], vPos[1][0], vPos[1][1], vPos[1][2], vPos[2][0], vPos[2][1], vPos[2][2]); // СОЗДАНИЕ ШАБЛОНА // Берем координату первого предмета за базовую и вычитаем ее из всех остальных, а координату первого считаем как нулевую точку (тоесть первый предмет будет рождатся на позиции курсора). vMainOffsetPos[0] = vPos[0][0]; vMainOffsetPos[1] = vPos[0][1]; vMainOffsetPos[2] = vPos[0][2]; // Координату первого обнуляем. vTemplatePos[0][0] = 0.0; vTemplatePos[0][1] = 0.0; vTemplatePos[0][2] = 0.0; // Координата шаблона следующих предметов будет: координата предмета вычесть координату первого предмета. // Вычисляем координату сдвига второго и третьего предмета SubtractVectors(vPos[1], vMainOffsetPos, vTemplatePos[1]); SubtractVectors(vPos[2], vMainOffsetPos, vTemplatePos[2]); PrintToChat(client, "Шаблон:: vTemplatePos[0] %f %f %f, vTemplatePos[1] %f %f %f, vTemplatePos[2] %f %f %f", vTemplatePos[0][0], vTemplatePos[0][1], vTemplatePos[0][2], vTemplatePos[1][0], vTemplatePos[1][1], vTemplatePos[1][2], vTemplatePos[2][0], vTemplatePos[2][1], vTemplatePos[2][2]); // РОЖДЕНИЕ ИЗ ШАБЛОНА // Берем место куда смотрит курсор float vClientEyePos[3], vClientEyeAng[3], vCursorPos[3]; GetClientEyePosition(client, vClientEyePos); GetClientEyeAngles(client, vClientEyeAng); Handle trace = TR_TraceRayFilterEx( vClientEyePos, vClientEyeAng, MASK_SOLID_BRUSHONLY, RayType_Infinite, TraceEntityFilterPlayers ); if(TR_DidHit( trace )) { TR_GetEndPosition( vCursorPos, trace ); // Накладываем на шаблонные координаты сдвигов позицию курсора AddVectors(vCursorPos, vTemplatePos[0], vSpawnPos[0]); AddVectors(vCursorPos, vTemplatePos[1], vSpawnPos[1]); AddVectors(vCursorPos, vTemplatePos[2], vSpawnPos[2]); PrintToChat(client, "Координаты спавна из шаблона:: vSpawnPos[0] %f %f %f, vSpawnPos[1] %f %f %f, vSpawnPos[2] %f %f %f", vSpawnPos[0][0], vSpawnPos[0][1], vSpawnPos[0][2], vSpawnPos[1][0], vSpawnPos[1][1], vSpawnPos[1][2], vSpawnPos[2][0], vSpawnPos[2][1], vSpawnPos[2][2]); } } public bool TraceEntityFilterPlayers(int entity, int contentsMask, any data ) { return entity > MaxClients && entity != data; }
  15. Меню сделано, пока что на глаз, без тестов в игре
  16. Нужно сделать меню и можно тестировать.
  17. С @EskimoCallboy проверили работу переноса предметов через команду !sm_fs_send_slot_to_player 7 "Eskimo Callboy" 1 и !sm_fs_send_slot_to_player 1 "Electr0" 7, благодарю за внезапную помощь
  18. добавлена команда: sm_fs_move_slot_to_player <твой слот> <целевой игрок #userid|имя> <слот в который переместить целевому игроку>
  19. устранены две уязвимости: в коде переноса предмета из слота в слот перестала работать проверка на кол-во предметов в слоте игрока если переносить один предмет не проводилось удаление действий над предметом у других игроков что могло повлечь восстановление предмета или его предыдущих данных по номеру слота.
  20. Функцию обработчик переноса написал, осталось сделать меню.
  21. zYnthetic – Abandon All

×
×
  • Создать...