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

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

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

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

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

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

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

BorizzK почти. он про item.GetOwner() писал. Костыль, но все же))

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

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


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



123new Это я пропустил как всегда ))

Однако!

 

Только что проверил

 

	override void EEKilled( Object killer )
	{
		Print("EEKilled, you have died");

		//MY
		if (killer)
		{
			Print("EEKilled, you killed by" + killer.ToString());
		}
		//MY
		
		if( GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_CLIENT )
		{
			// @NOTE: this branch does not happen, EEKilled is called only on server
			if( GetGame().GetPlayer() == this )
			{
				super.EEKilled( killer );
			}
			if (GetHumanInventory().GetEntityInHands())
				GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(ServerDropEntity,1000,false,( GetHumanInventory().GetEntityInHands() ));
		}
		else if( GetInstanceType() == DayZPlayerInstanceType.INSTANCETYPE_SERVER)//server
		{
			if( GetBleedingManager() ) delete GetBleedingManager();
			if( GetHumanInventory().GetEntityInHands() )
				GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(ServerDropEntity,1000,false,( GetHumanInventory().GetEntityInHands() ));
		}
		
		if ( GetSoftSkillManager() )
		{
			delete GetSoftSkillManager();
		} 
		
		GetStateManager().OnPlayerKilled();
		
		// kill character in database
		if (GetHive())
		{
			GetHive().CharacterKill(this);
		}
	}

 

Добавил

 

  if (killer)
  {
   Print("EEKilled, you killed by" + killer.ToString());
  }

 

Обьект зомби великолепно передается в функцию

 

Сижу ищу где происходит обработка непосредственно нанесения ущерба приводящего к смерти

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

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


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

item.PlaceOnSurface(); работает коряво

портит модель
игрок потом ходит по поверхности но если поверхность понижается он ходит по воздуху над поверхностью ))))
иногда это решается переустановкой позиции игрока player.SetPosition(player.GetPosition()); , а иногд нет
предметов это то же иногда касается - текстуры становятся свободными ля прохода (((
 

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


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

Ребят, а как активировать дебаг монитор на своем сервере?

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


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

Всеж дайз еще ну  ОООООЧЕНЬ сырой. Некоторые вещи просто не написать нормально, особенно если это касается клиентских скриптов.

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


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

NoNameUltima 

Клиентские пока рано

С серверным  бы разобраться

У меня пока 3 главных вопроса

1 глобальные переменные привязанные к игроку

2 просто глобальные переменные

3 где именно обрабатывается урон на строне сервера и как

 

 

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


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

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

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


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

1 глобальные переменные привязанные к игроку

2 просто глобальные переменные

Выкинь арму из башки.

Что значит глобальные? Глобальные для кого? Для сервера? - Ну так они в классе есть - взял и вытянул.

Клиент-Серверные - синхронизировать надо.

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

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


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

Ну вот например

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

 

В playerbase.c виклассе playerbase

Обьявил переменную

 

int plzone = 0;

 

И потом в скрипте обработки проверки входа/выхода из зоны в missionserver.c 

Работаю с ней применитнльно к обьекту каждого игрока

 

player.plzone = 1; при входе

player.plzone = 0; при выходе

 

И в условиях там же проверяю

 

Но

 

Обьявил в том же классе playerbase переменную

 

int killscore = 0;

 

Пытаюсь по такому же принципу работать с ней в eekilled

 

Типа killer.killscore = 1;

 

Хрен

 

Undefined variable

 

Ок

 

Возможно killer у нас зомбак или животное или вообще предмет

 

Им считать убийства не нужно

 

И вот как с этим быть, я неврубаюсь пока...

 

Или нужно по условиям смотреть и работать с этой переменной только внутри условия, при условии что killer.isman(), но и зомбак из той же серии

 

И как проверить принадлежность обьекта к тому или иному классу?

 

И еще, как создать переменную доступную во всех функциях, всех классов на стороне сервера?

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


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

 

1 час назад, BorizzK сказал:

Обьявил в том же классе playerbase переменную

 

int killscore = 0;

 

Пытаюсь по такому же принципу работать с ней в eekilled

а ниче что надо попытатся прокаст сделать, обжект в плеербаз т.к. аргументом в еекилл приходит объект, и ты типу Object пытаешься какую то мифическую для него killscore нарастить.

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


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

Возможно killer у нас зомбак или животное или вообще предмет

киллер - обжект.

а кто он конкретно -

IsMan\IsBaseItem\....... - проверяй ручками. вообще скрипт я выкладывал...

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


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

NoNameUltima 
О!

Точно

 

в классе

playerbase m_killer;

 

в функции

Class.CastTo(m_killer, killer);

m_killer.killscore = m_killer.killscore + 1;

 

Но

А если обьект предмет, зомби или животное? Мне же надо только на игрока переменную вешать

 

 

 

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

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


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

NoNameUltima А нет ссылочки на скрипт?

 

IsMan\IsBaseItem\....... - реально не понял о чем это (((

 

isMan() понятно

IsBaseItem - нет такого в скриптах

 

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

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


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

NoNameUltima А нет ссылочки на скрипт?

 

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


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

и еще где то валялась в скриптах kindOf или iskind... не пользовался, но думаю определить принадлежность в несколько проверок можно...

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

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


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

NoNameUltima 
Ага
Это я видел, но койчего упустил из виду
Спасибо за подсказки ))

 

Только вот хочу сделать точную проверку на зомби, тк если зомбак, то выходит умер по неизвестной причине

Зомби обьект в killer точно попадает

 

простым сравнением

только вот я не в курсе как в сравнении сделать проверку вхождения строки

типа

 if (killer.ToString() сождержит "Zombie")

 if (killer.ToString() сождержит "Animal")

итп

 

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

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


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

BorizzK //! Check config class name of the object

поиском найдешь файл, с этим текстом, там все что нужно.

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


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

NoNameUltima 

killer.IsKindOf("AnimalBase"); //принадлежность к живтоным

killer.IsKindOf("ZombieBase"); //принадлежность к зомбям

 

Получилось так

 

кусок кода

			deathMsg	=	player_name + " died for an unknown reason.";
			if ( killer.IsKindOf("AnimalBase") )
			{
				deathMsg	=	player_name + " killed by animal.";
			} 
			else if ( killer.IsKindOf("ZombieBase") )
			{
				deathMsg	=	player_name + " killed by zombie.";	
			}	

 

Целиком скрипт с доработанными оповещениями и счетчиком убийств выложил в соответствующей теме

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

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


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

а находил кто аналог функции titiletext с sqf в новом языке? никто не находил?

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


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

123new 
titleText выполняется на клиенте внутри SpawnForClient {}
Уверен, в случае 063 Нужно смотреть в сторону RPCSingleParam и его параметров-команд

 

scripts\3_Game\Enums\ERPCs.c

 

... и вообще RPC

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


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

BorizzK ну RPC, как уже и так, наверно, всем ясно, сетевое взаимодействие от клиента к серверу, ну или наоборот? вопрос тут больше по сути самой комманды, нежели о том, где исполняется. Ладно, будем искать дальше...

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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

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

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

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