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

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

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

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

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

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

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

BorizzK , я запутался в твоей терминологии к чертям собачьим!:veryangry:

Только что, BorizzK сказал:

ref ZonesClass Zones = new ZonesClass; - Инициализируем класс

Что в твоём понимании "инициализируем"? 

В моём понимании и понимании всего нормального (не программерского) человечества "инициализировать" означает "начинать" что либо. То есть применительно к какому-либо объекту - "включить" (Инициализировать протокол - начать выполнять какие-то заранее предписанные действия).

Как можно инициализировать то, чего ещё нет?! Если

Только что, BorizzK сказал:

class ZonesClass //Создаём пользовательский класс ZonesClass

?! 

Сначала включили свет, потом сделали выключатель и провели проводку?!

Только что, BorizzK сказал:

void ZonesClass()  Ничего мы тут не вызываем - МЫ ОПРЕДЕЛЯЕМ!!!

Что, Дьявол меня раздери совсем мы тут "определяем"? И как?

 

Только что, BorizzK сказал:

если в классе не обьявить КОНСТРУКТОР ручками как мы выше сделали - это за нас сделает движок

Вот пусть и делает, хоть какая-то польза от него должна быть?..:veryangry:

Только что, BorizzK сказал:

но мы в него ничего добавить не можем

А что мы в него "добавляем" и где? 

 

Только что, BorizzK сказал:

ZonesInit(); //Вызываем ФУНКЦИЮ из этого же класса !!!!!!!!!!!!!!!!!!!!!!!!!! - она там ниже в классе обьявлена

То есть это вообще не часть штопаного конструктора? Это просто вызов функции? А на пару страниц раньше об этом сказать? Ну так это "Вирус, ты, блин, приплетаешь яичницу к синхрофазотрону - это вообче-то, ну так, между нами, по секрету, вообще не про это"?!:veryangry:

 

Извиняюсь, психанул...

Давай сначала и, по-возможности человеческим языком. Как работает конструктор класса - что, конкретно он делает? 

Зачем он нам нужен в данном случае? Почему мы не использовали его при создании класса Zone{}?

Я понял, только одно - без конструктора мы не сможем "добавлять" в класс. Что и зачем добавлять?

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

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


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

VIRrusR 

int A; // Объявление переменной с именем А, и типом int(integer - Целые числа).

A = 1; // Инициализация переменной. т.к. выше она только объявлена, но не инициализирована(не присвоено ни одно стартовое значение).

 

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

Если класс является наследником какого либо другого класса, и ты не указал конструктор в наследнике, то произойдет вызов конструктора предка.

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


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

NoNameUltima Ну наконец-то профи подтянулись )))))

 

Ты бы поактивней участвовал в жизни конфы что ли ))

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


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

Что в твоём понимании "инициализируем"? 

В моём понимании и понимании всего нормального (не программерского) человечества "инициализировать" означает "начинать" что либо. То есть применительно к какому-либо объекту - "включить" (Инициализировать протокол - начать выполнять какие-то заранее предписанные действия).

Как можно инициализировать то, чего ещё нет?! Если

 

class ZonesClass

{

 

}

обявили класс

 

ref ZonesClass Zones = new ZonesClass; - Вызвали класс / Создали указатель / при этом происходит "инициализация класса" и если внутри есть конструктор код из него выполняется

 

ref ZonesClass Zones = new ZonesClass; можно расположить хоть перед обьявлением класса хоть после - ПОФИГ - ЭТО НЕ ВЫПОЛНЕНИЕ КОДА - ЭТО ИНСТРУКЦИЯ КОМПИЛЯТОРУ (в нашем случае движку)

 

Он ВСЕ прочитает и только потом разберется что и для чего

 

пока мы не укажем в файле ref ZonesClass Zones = new ZonesClass; движок ничего не предпримет по отношению к этому классу - не выполнит код из конструктора и не создаст указатель. те ref ZonesClass Zones = new ZonesClass мы указываем не ради указателя, а ради выполнения кода конструктора

указатель - это побочный эффект

 

 

 

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

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


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

NoNameUltima У меня вот к тебе вопрос. Однако уверен, что ты не ответишь.

 

Мне надо вне scripts привязывать к игрокам переменные

 

Пытался так

 

class cPlayerBase : PlayerBase

{

   bool cState = false;

}

 

Затем в другом классе в функции

 

cPlayerBase cPlayer = cPlayerBase.Cast(player);

cPlayer.cState = true;

 

хренушки - NULL pointer to instance.

 

Такое вообще реально?

 

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

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


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

VIRrusR 

Теперь по поводу OnInit()

 

Допустим у тебя есть класс А, с конструктором.
Конструктор принимает один аргумент типа int

class A
{
    void A(int MyVar)
    {
        //    Тут что то делаем
    }
}

т.е. создать класс можно так
new A(100500);

Далее, ты создал класс B, наследник А
И хочешь впаять ему другой конструктор

class B : A
{
    void B(string MyVar)
    {
        //    Тут что то делаем
    }
}

Такое не прокатит, т.к. в базовом классе уже определен конструктор. Перекрывать конструктор нельзя.
Но тебе необходимо как то влезть в процесс инициализации класса, т.е. в процедуру конструктора - сделать что то в момент создания.

Для это можно сделать финт ушами

Немного переделаем класс А, и добавим в него процедуру с именем OnInit(можно и любое другое имя)
Переместим код конструктора внутрь процедуры OnInit
А в самом конструкторе просто вызовем OnInit

class A
{
    void OnInit(int MyVar)
    {
        //    Тут что то делаем
    }
    
    void A(int MyVar)
    {
        OnInit(MyVar);
    }
}
ПО СУТИ все вроде осталось как и было.

Но OnInit то не является по факту конструктором, а значит мы можем перекрыть её в наследнике

class B : A
{
    //    Создаем процедуру которая будет вызвана при созании класса. Имя любое
    void TipaKonstruktor(string MyVar)
    {
    }
    
    //    Перекрываем OnInit родителя
    override void OnInit(int MyVar)
    {
        //Для начала вызываем свою процедуру
        TipaKonstruktor("test");
        //    При необходимости вызываем и OnInit родителя(Это можно сделать и ДО вызова TipaKonstruktor, и после, или вообще не вызывать)
        super.OnInit(MyVar);
    }
}

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


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

BorizzK 

13 минуты назад, BorizzK сказал:

Однако уверен, что ты не ответишь.

Конечно, пока был в ЧС не отвечаю. А в ЧС на 2 месяца, автоматом попадают все кто постит у меня в темах свои исключительные мнения.

 

14 минуты назад, BorizzK сказал:

class cPlayerBase : PlayerBase

1.

modded class PlayerBase

{

    bool cv_State = false;

}

 

.......

 

2. В твоем варианте, ты создал собственный класс, и насрать чей он там наследник, НО ГДЕ ТЫ ЕГО ПРОИНИЦИАЛИЗИРОВАЛ ТО? ты его создал где то?

new cPlayerBase();

????

Или ты его решил от балды использовать? На что закономерно и получил -

18 минут назад, BorizzK сказал:

NULL pointer to instance.

 

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


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

int A; // Объявление переменной с именем А, и типом int(integer - Целые числа).

A = 1; // Инициализация переменной. т.к. выше она только объявлена, но не инициализирована(не присвоено ни одно стартовое значение).

Это я чётко понимаю. Спасибо! Разница между "объявить" и "инициализировать". 

Применительно к нашему осточертевшему примеру -?

Только что, BorizzK сказал:

ref ZonesClass Zones = new ZonesClass; - Вызвали класс / Создали указатель / при этом происходит "инициализация класса" и если внутри есть конструктор код из него выполняется

 

ref ZonesClass Zones = new ZonesClass; можно расположить хоть перед обьявлением класса хоть после - ПОФИГ - ЭТО НЕ ВЫПОЛНЕНИЕ КОДА - ЭТО ИНСТРУКЦИЯ КОМПИЛЯТОРУ (в нашем случае движку)

Так вот так и нужно было объяснить с самого начала! Я то понял так, что это именно "выполнение кода"!.. И два дня пытаюсь понять логику выполнения кода, которой не существует! То есть, "конструктор класса" - это просто инструкция компилятору: "Определи класс ZonesClass{} как пользовательский" и, по большому счёту, мне нафик не нужно понимать, как там компилятор это делает и передаёт движку! Эту конструкцию нужно просто тупо запомнить.

 

Только что, BorizzK сказал:

пока мы не укажем в файле ref ZonesClass Zones = new ZonesClass; движок ничего не предпримет по отношению к этому классу - не выполнит код из конструктора и не создаст указатель. те ref ZonesClass Zones = new ZonesClass мы указываем не ради указателя, а ради выполнения кода конструктора

указатель - это побочный эффект

,но

Только что, NoNameUltima сказал:

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

Не понял! 

То есть, мы могли не городить это конструктор, а просто создать класс ZonesClass{}, затем создать указатель на этот класс ref ZonesClass Zones = new ZonesClass; и точно так же, спокойно использовать функции и переменные класса ZonesClass{} через указатель Zones? Например так: item.Zones.GetHealth();

Тогда на кой?!:blink:

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


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

BorizzK И вообще это дич какаято...

cPlayerBase cPlayer = cPlayerBase.Cast(player);

 

взять создать класс с хреновой горой параметров(он же полноценный наследник), от базового, ради какой то там переменной...

Попытаться перетянуть из базы в свой класс все его параметры(прокастить is as)

Только чтобы поставить true в одну переменную...

Это типа как выражение - "..ах..ть дайте две!"

?)

 

Используй modded, если тебе в моде надо модифицировать базу из дайза.

 

И без всяких финтов ушами.

 

 

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


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

Тогда на кой?!:blink:

Что на кой?

На кой конструктор?

Интересно...

Ну если он не нужен, то ни накой.

 

А что если твой класс должен сразу запустить некий таймер? т.е. при вызове к примеру автоматом добавляется в OnEachFrame

Ну к примеру, ты создал класс, который в неких точках РЕспавнит зомбов, при чем с указанным интервалом.

Раз в Х секунд для одной точки, раз в Y для другой, и кол-во у них разные зомбов и т.п.

Ты предлагаешь всегда использовать переменные класса, чтобы к нему потом обращаться? - А зачем они?

Надо к примеру запустить спавн зомбов, ну и напишу себе

new MyClassZombie("10 0 10", 600, 5);

Создастся класс который в коордах 10 0 10, каждые 600сек, будет создавать 5 зомбов.

Далее еще хочу

new MyClassZombie("100 0 500", 600, 5);

 

А ты предлагаешь создавать доп. процедуру, + переменную

MyClassZombie MyZM = new MyClassZombie();

MyZM.OnInit("100 0 500", 600, 5);

 

и так далее?

Есть множество ситуаций, когда необходимо использовать конструктор. Есть и те когда конструктор нафиг не нужен. Есть ситуации когада можно обойтись без конструктора.

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

 

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


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

NoNameUltima Про modded и тп я в курсе

Я пытаюсь обойтись без modded и вмешательство в скриптс

вот в чем дело

 

вроде нашел переменную в PlayerBase которая не используется сервером, а используется только на клиенте

попытаюсь поработать с ней

 

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


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

Я пытаюсь обойтись без modded и вмешательство в скриптс

это как? телепатически?

интересно, где ж ты тогда класс cPlayer создаешь

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


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

NoNameUltima , спасибо конечно!..

Но вопрос был адресован BorizzK. Мы тут пытаемся разобрать конкретный скрипт им предложенный несколько страниц назад (далеко назад за моими бреднями:dry:). То есть я пытаюсь учиться по скрипту заражённых зон от elanc, а BorizzK мне помогает. Вот, вымучили проверку на повреждение защитных костюмов. Теперь BorizzK предложил реализацию с заданием разных типов зон, сразными "уронами" и разными сетами защиты, но с единым алгоритмом проверки. Вот применительно к этой реализации я тут и брежу (бредю?..) Потому и вопрос не "в общем случае", а в конкретном - зачем нам конструктор класса в этом, конкретном скрипте?

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


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

NoNameUltima Где
Грубо - в init.c - подключаю свой файл инклюдом

 

все работает

но для каждого перса нужен персональный флаг что бы не выполнять некоторую лишнюю работу есл она уже выполнена

можно через профиль сервера, но хочу и без этого обойтись

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

 

опят же - хотелось бы на основе своего класса создать scripted entity

если действовать в scripts - все арбайтен

 

но за пределами - хрен

 

в контексте scripts это работает (часть кода понятно опустил), как и расчет задержки (пропуска) в EOnFrame - потому как если не делать задержек то проверка каждый фрейм - дичайшая нагрузка на серв

расчет веду по счетчику и GetTime()

class ZoneObject extends ScriptedEntity
{
	private vector m_Center;

	void ZoneObject()
	{
		SetFlags(EntityFlags.TRIGGER, false);
		SetEventMask(EntityEvent.FRAME);
	}

	void InitZone(vector zoneCenter)
	{
		 m_Center = zoneCenter;
	}

	void CheckZone(player);
	{
		
	}
	
	override void EOnFrame(IEntity other, float timeSlice)
	{
		CheckZone(player);
	}
}

class MyZones
{

	ZoneObject  m_ZonesObject;
	vector m_Pos = "6000 0 6000";
	m_ZonesObject = ZoneObject.Cast(GetGame().CreateObject("ZoneObject", m_Pos, false));
	m_ZonesObject.InitZone(m_Pos);
}

 

Вобщем хочу что-то аналогичное но без модов и вмешателсьства в scripts

А смысл всего - уйти от CallLater

 

 

 

 

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

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


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

VIRrusR не смотрел что там...

 

Ну или делай свой класс, можешь и без конструктора, и вставляй его в какой либо цикл. - вызывай проверку раз в Х секунд.

 

Или делай наследника scriptedEntity и в него код в OnUpdate - и никаких указателй не нужно. Создай GameObject и он там сам крутить твой код проверки в OnUpdate будет.

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


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

BorizzK 

А в чем разница? Напихал ты в инит своих инклюдов, вместо вменяемой мод системы..

Ну да даже не суть...

Ты интересный... Хочешь добавить переменную игроку, но игрока самого не затрагивать, - не моддить.

А как? телепатически?

 

Ну если исключить телепатию, то можно конечно велосипед с массивами провернуть -

Если так уж хочется работать через жопу, то вперед -

static	ref	array< ref VarsForMyPlayer>	cv_VarsForMyPlayer	=	new array< ref VarsForMyPlayer>;
	
class VarsForMyPlayer
{
	PlayerBase	cv_Player;
	bool		cv_Bool		=	false;
	
	void VarsForMyPlayer(PlayerBase v_Player, bool v_Bool)
	{
		cv_Player	=	v_Player;
		cv_Bool		=	v_Bool;
	}
}

.....

Где в неведомых скриптах борзика -
//	Как то получаем необходимого игрока
PlayerBase	v_Player	=	......
//	Заполняем переменную булеву, хрен знает там от чего зависящую
bool		v_Bool		=	true;
//	Добавляем в массив
cv_VarsForMyPlayer.Insert( new VarsForMyPlayer(v_Player, v_Bool) );

Когда надо получить какие то данные об игроке
//	Как то получаем необходимого игрока
PlayerBase	v_Player	=	......
//	По умолчанию фальш
bool		v_Bool		=	true;
for (int i=0; i<cv_VarsForMyPlayer.Count(); i++ )
{
	if (cv_VarsForMyPlayer[i].cv_Player == v_Player)
	{
		v_Bool	=	cv_VarsForMyPlayer[i].cv_Bool;
		break;
	}
}

 

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


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

NoNameUltima Не

С массивом фигня получается

и ресурсы жрет

нужна всего одна привязанная к конкретному персу

через PlayerBase понятно все просто

важно что при уничтожении экземпляра игрока и экземпляр его класса вместе со всеми переменными грохается

 

вобщем надо дальше рыть

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


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

BorizzK 

Вот поэтому и добавляют не УКАЗАТЕЛЬ, а переменную.

UID к примеру.

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


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

NoNameUltima Это я понимаю прекрасно

Хочется сделать реально полноценный триггер, а не эту муйню с помощью CallLater

При этом без моддинга и вмешательства в scripts

 

То что можно вызывать через OnUpdate класса серверной миссии, понятно

но как зафиксировать флаг игроку что он в зоне и что он вышел

 

опять же - без использования профиля сервера

 

я пытаюсь создать класс

игрок вошел в зону - создался его экземпляр и указатель на игрока попал в него

игрок вышел - экземпляр класса грохнулся со всем содержимым

игрок отключился/погиб - указатель на него обнулился - грохнулся экземпляр этого класса

 

сижу думаю

 

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

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


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

При этом без моддинга и вмешательства в scripts

Это тебе в Богемию надо звонить, или вступить в Аненербе.

Тебе дали инструмент, с помощью которого ты в базу можешь добавить свою переменную, достаточно 1 слово дописать -

modded class PlayerBase

{

}

P.S. при чем можно его так же приинклюдить раз тебе так хочется без мода.

Но ты очень хочешь обойти то что тебе дали и сделать по каким то только тебе понятным правилам......

 

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

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


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

NoNameUltima да, хочу и ищу способы

кое-чего уже удалось кстати

но об этом какнить потом

 

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


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

VIRrusR 

 

На кой коструктор?

 

Обьясняю еще раз

 

вот мы обьявили класс

class ZonesClass
{

   int a;

 

вот мы его  проинициализировали и создали указатель

неважно где это строка расположена - до или после обьявления класса (почему так не спрашивай)

 

ref ZonesClass Zones = new ZonesClass;

 

если конструктора в классе нет - ничего не произойдет

 

ну вот вообще ничего

 

можно только из других классов будет вызывать методы (функции) и работать с переменными в этом классе

либо через имя класса либо через указатель

 

вызов функции из класса:

ZonesClass.Функция();

Zones.Функция();
 

ZonesClass.a = 2;

Zones.a = 2;

 

ну и работать с переменными как обычными переменными итд итп

а нам нужно что?

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

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


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

если конструктора в классе нет - ничего не произойдет

:biggrin: Фух!..

Ну наконец-то! Чётко и ясно.

Кажется я понял: для класса Zone{} мы конструктор не использовали, потому, что он не содержит никаких функций, верно? То есть в нём, только объявляются переменные, определять и использовать которые мы будем из класса ZonesClass{},так? То есть, если класс, назовём условно "пассивный", в нём ничего не вычисляется, а лишь объявляется, то конструктор не нужен. А вот если пользовательский класс "активный", то есть в нём будут производится вычисления, переопределяться значения переменных и т.п. - то конструктор нужен. Верно?

 

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: Troy1
      Всем привет. Суть в чём, пишу мод на событие и когда происходит событие, параллельно должна меняться скорость ветра, не могу понять как заставить скрипт управлять силой ветра. Понижать силу ветра получилось сделать, а вот повышать не как. Только после перезагрузки сервера сила ветра задаётся в нужном значение.
      Как сделать, что бы по вызову функции менялась сила ветра в большую или в меньшую сторону?
      protected void SetWind(float wind, float time) { if (!g_Game) return; Weather m_Weather = g_Game.GetWeather(); if (!m_Weather) return; m_Weather.SetWindMaximumSpeed(wind); m_Weather.SetWind(Vector(1/Math.Sqrt(3), 1/Math.Sqrt(3), 1/Math.Sqrt(3)) * wind); m_Weather.SetWindSpeed(wind); m_Weather.SetWindFunctionParams(1.0, 1.0, -1); } Это скрипт на понижение силы ветра.
      Работает понижение силы ветра в том случае, если до этого сила ветра была выше.
      Пример:
      Изначально на сервере сила ветра = 20 m/s А нужно понизить до 10 m/s
      Только в этом случае сработает скрипт который я приложил выше.
      Помогите пожалуйста решить этот вопрос.
      За ранние благодарю.
    • Автор: Troy1
      Всем привет. Помогите пожалуйста со скриптом.
      Суть. Я пытаюсь сделать синхранизацию сервера с клиентом передавая c конфига время разделки животного.
      В родных скриптах есть class UATimeSpent с константами и там есть константа SKIN.
      Мне нужно её перезаписать на своё значение и мне выдаёт ошибку: Trying to modify write protected variable 'SKIN' в переводе на Русский Попытка изменить защищенную от записи переменную «SKIN».
      Функция скрипта: Когда игрок запускает клиент, идёт запрос на серверную часть и получает в ответ время разделки.
      Задача: Нужно перезаписать константу SKIN на новое значение и всё.
      Сам скрипт.
      class timeToComplete extends UATimeSpent { protected ref UATimeSpent m_UATimeSpent; void timeToComplete() { GetDayZGame().Event_OnRPC.Insert(OnRPC); CheckUATimeSpent(); } void ~timeToComplete() { GetDayZGame().Event_OnRPC.Remove(OnRPC); } void CheckUATimeSpent() { GetGame().RPCSingleParam(NULL, SOC_TIME_RPCs.SOC_GT, NULL, true); } void OnRPC(PlayerIdentity sender, Object target, int rpc_type, ParamsReadContext ctx) { if (rpc_type == SOC_TIME_RPCs.SOC_RT) { Param1<float> soc_srt; if (ctx.Read(soc_srt)) { if (soc_srt.param1!= 0) { m_UATimeSpent.SKIN = soc_srt.param1; Print("Пришёл ответ от сервера в m_UATimeSpent.SKIN - " + m_UATimeSpent.SKIN) } } } } };  
    • Автор: RedWoodGamer
      Ищу мододела который напишет мод на поиск предметов в ванильной фурнитуре с возможностью конфигурации лутабельных объектов и лута внутри них, а так-же КД на лутаемый объект (Простыми словами чтобы нельзя было лутать один и тот же объект двум игрокам одновременно, если один залутал, включается определённый таймер и второй игрок может залутать его через прошедшее время, либо же завязать это время на рестарт сервера.)
      Бюджет есть, оценивайте свою работу и предлагайте цену, кто не хочет в комментариях вот Discord : RedWood#6323
    • Автор: CubeIn
      Приветствую друзья, возникла неприятная ошибка.
      Подписал все ключи через DS Utils, вставил ключ в северную часть, но все равно при заходе на сервер пишет данную ошибку.
      Client contains PBO which is not part of server data
       
    • Автор: CubeIn
      Есть ли у кого ни будь шаблон или инструкция как создать свой шеврон?
      Нашел видео от Фидова, но ссылка на шаблон не действительна

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

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

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

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

Поддержка