Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
BorizzK

DAYZ enScript (вопросы, ответы)

Рекомендованные сообщения

Предлагаю все возможные гайды по enscript/моддингу публиковать в этой теме

Ссылка на предыдущею версию темы по enscript версии 0.62 - там можно прочитать в общих чертах про этот язык

 

Изменено пользователем BorizzK
добавлена пометка в названии темы (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах





зОдачко 1
 

Телепортнуть игрока рядом с определенным предметом/игроком и тп

 

void ChangePos(vector pos)
{
ref array<Man> players = new array<Man>;
GetGame().GetPlayers( players );
vector teleport_pos;
PlayerBase iplayer;
for ( int i = 0; i < players.Count(); i++ )
{
teleport_pos[0] = pos[0] + 5;
teleport_pos[1] = 0;
teleport_pos[2] = pos[2] + 5;
Class.CastTo(iplayer, players.Get(i));
iplayer.SetPosition(teleport_pos);
}
}

 

ChangePos(предмет.GetPosition());


Игрок должен телепортнуться на расстоянии от самого предмета (+5м по оси X  + 5м по оси Y) и на поверхности, а он телепортится под землю если предмет лежит на горке.... Раньше если Z = 0 то это всегда означала поверхность...
Как сделать так что бы он на поверхности остался?
Мизев сказал, что была какая-то функция позволявшая по координатам X и Y найти координату Z соответствующую поверхности, но что это за функция сейчас не помнит... Может кто знает о чем речь

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
16 минут назад, BorizzK сказал:

 была какая-то функция позволявшая по координатам X и Y найти координату Z соответствующую поверхности, но что это за функция сейчас не помнит... Может кто знает о чем речь

Брехня.(но если найдешь че - маякни. Я не нашел... пока что).

 

Из того что есть, но бесполезно

/*!
Get water ocean height at given point
\param worldX        world x position
\param worldZ        world z position
*/
proto native float GetOceanHeight(float worldX, float worldZ);


/*!
Get water ocean height and displacement at given point, returns vector(displaceX, height, displaceZ)
\param worldX        world x position
\param worldZ        world z position
*/
proto native vector GetOceanHeightAndDisplace(float worldX, float worldZ);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну те телепортнуть однозначно на поверхность не получится пока...
Чтож пошел рыть

 

Кстати
вот include в init.c в корне миссии работает оказывается

 

#include "mpmissions\dayzOffline.chernarusplus\init_mod.c"

 

)))

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

BorizzK инклюд как бэ везде работает. А почему не должен?

по поводу поверхности, хз... по идее - должно быть. Ну как то же спавнится техника\зомбы рандомно. Сомневаюсь, что там высота задана)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

NoNameUltima Спавнится, да. Но если SetPosition (5000,0,5000) то оказываешься на уровне моря
Хотя
Сейчас еще раз проверю

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

BorizzK я про то, что возможность должна быть или спавнить с каким то аргументом - чтоб ось З была "на поверхности", ну или функция.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

NoNameUltima так про спавн речи и не идет

 

Изменено пользователем BorizzK (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

BorizzK возвращаясь к тому, что писал в соседней теме, что я предлагаю:
1. Пишем функцию, чтения файла и записи данных в массив

2. Проверяем массив строк построчно, и ищем какие-либо значения в строках (например, tpto=). Если нашли, убираем контрольное слово, и оставляем в строке данные, которые передаем в следующую функцию

3. Третьей функцием обрабатываем аргументы. например, аргумент был "tpto=Dima,Gabriel", значит в функцию попало "Dima,Gabriel"

4. В соответствии с оставшимися данными в функции выполняем действие, например находим в списке игроков object персонажа в ником Dima и телепортируем его к Gabriel

5. Готово, операция выполнен, пишем в лог действие.
Муторно? Не спорю. Не удобно? Возможно. Но это хоть какой-то вариант посыла комманд серверу и операций над игроками.

Соответственно, список функций можно расширять.

Изменено пользователем 123new (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

123new Как вариант для некоторых действий подойдет

Но только для некоторых

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

123new псдц. и зачем это?

Или ты про админку прогрммную не ИнГейм?

Ну так то можно, но... убого. Делал еще на А2 такое в DZEU был телепорт и т.п.

Изменено пользователем NoNameUltima (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кстати

Надо присмотреться

Что и как создает менюху действия для пожрать, банку открыть и как резалт приходит на сервер...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

BorizzK 

vector SnapToGround(vector pos)
    {
        float pos_x = pos[0];
        float pos_z = pos[2];
        float pos_y = GetGame().SurfaceY(pos_x, pos_z);
        vector tmp_pos = Vector(pos_x, pos_y, pos_z);
        tmp_pos[1] = tmp_pos[1] + pos[1];
    
        return tmp_pos;
    }

 

или просто

item.PlaceOnSurface();

 

Это к твоему вопросу, - как на поверхность положить.(в 1 примере есть получение позиции)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо.

Очень полезно.

 

А говорил БРЕХНЯ )))

 

 

 

Изменено пользователем BorizzK (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

NoNameUltima BorizzK понятно что убого и ограниченно по действиям, но в любом случае это хоть что-то, хоть как-то управлять сервером.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

void TeleportToPos(vector pos, float distance) // Teleport all players to airdrop position on land + distance
 {
  ref array<Man> players = new array<Man>;
  GetGame().GetPlayers( players );
  vector teleport_pos;
  
  for ( int i = 0; i < players.Count(); i++ )
  {
   teleport_pos[0] = pos[0] + distance;
   teleport_pos[2] = pos[2] + distance;
   teleport_pos[1] = GetGame().SurfaceY(teleport_pos[0], teleport_pos[2]);
 
   PlayerBase iplayer;
   Class.CastTo(iplayer, players.Get(i));
   
   SendMessage("You are teleport to: " + teleport_pos.ToString());
   Print("Player " + iplayer.ToString () + " teleport to: " + teleport_pos.ToString());
   iplayer.SetPosition(teleport_pos);
   iplayer.PlaceOnSurface();
  }
 }


 

Ну и как бы начинаются дичайшие глюки

игроки бегают не по рельефу, а на высоте куда их поместило

оказались на горке и бежим к старому

так и бегаем над старым ))))

уверен, что это глюк движка...

 

 

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

iplayer.PlaceOnSurface(); тут лишнее (добавлял для теста)

 

убрал

Все ОК!

 

Одна задачка решена )))


 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну что... Вроде как появился наконец лаунчер с возможностью автоматически скачивать необходимые для игры моды, при заходе на сервер. И вроде как инфа есть как автостартануть инит мода\аддона.

Можно вобщемто начинать делать гуи, и искать - как серв и клиент инфой обмениваются(собственные пакеты с данными).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Есть паоа идей

Для реализации хочу понять

Где на стороне сервера в контексте и6рокао брабатывается 

Смерть игрока, аналог event_playerkilled

Нанесение урона, аналог event_assetdamage

Стрельба, аналог event_weaponfired

 

Кто подскажет?

 

 

 

Изменено пользователем BorizzK (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

BorizzK смерть на серверной стороне обрабатывается:
scripts\4_World\Entities\ManBase\PlayerBase.c
функция override void EEKilled( Object killer )
спасибо за наводку от Мизева. Думаю, именно ее надо крутить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

123new Мизев говорил, что на входе object killer пустой прилетает...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

BorizzK он там же и писал как можно определить принадлежность оружия к тому или иному объекту

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

123new Ну да, получив обьект оружия, из которого убили, перебирам вокруг игроков с этим обьектом и получив нужного игрока назначаем его убийцей

костыль, да

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: RedWoodGamer
      Ищу мододела который напишет мод на поиск предметов в ванильной фурнитуре с возможностью конфигурации лутабельных объектов и лута внутри них, а так-же КД на лутаемый объект (Простыми словами чтобы нельзя было лутать один и тот же объект двум игрокам одновременно, если один залутал, включается определённый таймер и второй игрок может залутать его через прошедшее время, либо же завязать это время на рестарт сервера.)
      Бюджет есть, оценивайте свою работу и предлагайте цену, кто не хочет в комментариях вот Discord : RedWood#6323
    • Автор: CubeIn
      Приветствую друзья, возникла неприятная ошибка.
      Подписал все ключи через DS Utils, вставил ключ в северную часть, но все равно при заходе на сервер пишет данную ошибку.
      Client contains PBO which is not part of server data
       
    • Автор: CubeIn
      Есть ли у кого ни будь шаблон или инструкция как создать свой шеврон?
      Нашел видео от Фидова, но ссылка на шаблон не действительна

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
  • Наш выбор

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

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.