Перейти к содержимому


Фотография

MP addUniform forceAddUniform AddVest


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 сообщений
  • Откуда:SPB

Отправлено 23 January 2015 - 04:38

Для MP при присоединении игрока, идет проверка - новый игрок\старый игрок - если да - жив\нет
Далее срабатывает скрипт сетапа, и если это старый игрок, и он был жив, выдается инвентарь из БД.

Вот есть такой участок кода для инвентаря:
 

if (_uniform != "") then
    {
        _player forceAddUniform _uniform;
        waitUntil {(uniform _player) != ""};
        if ((count _uniformItems) > 0) then
            {
                { _player addItemToUniform _x; } forEach _uniformItems;
                waitUntil {((count _uniformItems) == (count (uniformItems _player)))};
            };
    };

if (_vest != "") then
    {
        _player addVest _vest;
        waitUntil {(vest _player) != ""};
        if ((count _vestItems) > 0) then
            {
                { _player addItemToVest _x; } forEach _vestItems;
                waitUntil {((count _vestItems) == (count (vestItems _player)))};
            };
    };

    
Предметы добавляются, но после этого идет спам в РПТ:
 

//Это из-за addVest
15:53:18 Error: Object(2 : 1) not found
//Это при AddUniform или forceAddUniform
15:53:18 Client: Object 2:1 (type Type_114) not found.
15:53:22 Client: Object 2:1 (type Type_89) not found.
15:53:30 Client: Object 2:1 (type Type_89) not found.


Почитал тикеты у бисов, там про addUniform был тикет, что мол функция не глобал, тикет закрыт со статусом fixed
Ну да... вроде как теперь глобал, т.к. с сервера все добавляется...

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



Но спам то откуда?

Так же ставил проверку на isUniformAllowed - все ОК, разрешена....

Вот еще нашел по этой теме

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



Не совсем понимаю - если проблема в тикете решена - откуда спам?

Или я как то не так добавляю их??


  • 0

#2 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 23 January 2015 - 20:32

 

//Это из-за addVest 15:53:18 Error: Object(2 : 1) not found

Из каких соображений это ваше заявление, униформа не объект, она описывается в классе Weapons


 

Почитал тикеты у бисов, там про addUniform был тикет, что мол функция не глобал, тикет закрыт со статусом fixed
Ну да... вроде как теперь глобал, т.к. с сервера все добавляется...
 

Сервер считает себя умнее всех, и он имеет на это полное право.

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

Отталкиваясь от этого, если вы меняете униформу у дефолтного класса в мультике, вполне разумно попросить сделать это сервер.


  • 0

#3 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 сообщений
  • Откуда:SPB

Отправлено 23 January 2015 - 22:14

 

 

//Это из-за addVest 15:53:18 Error: Object(2 : 1) not found

Из каких соображений это ваше заявление, униформа не объект, она описывается в классе Weapons


 

Почитал тикеты у бисов, там про addUniform был тикет, что мол функция не глобал, тикет закрыт со статусом fixed
Ну да... вроде как теперь глобал, т.к. с сервера все добавляется...
 

Сервер считает себя умнее всех, и он имеет на это полное право.

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

Отталкиваясь от этого, если вы меняете униформу у дефолтного класса в мультике, вполне разумно попросить сделать это сервер.

 

 

1. Исходя из того, что отключая - данной ошибки нет.

По п.2:

При чем тут "исправляет"? В классе униформа не меняется.

Вопрос то про спам после добавления униформы.

 Код примерно такой(серверный):

Получаем данные из БД
......
_uniform = (_data select 3);
......
Работаем с игроком
......
waitUntil {_player == _player};
removeUniform _player;
if (_uniform != "") then
    {
        _player forceAddUniform _uniform;

  • 0

#4 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 24 January 2015 - 01:23

 

При чем тут "исправляет"? В классе униформа не меняется.

При том, что это был ответ на это

 

Ну да... вроде как теперь глобал, т.к. с сервера все добавляется...
 

Так было всегда.


 

1. Исходя из того, что отключая - данной ошибки нет.

ОК, пусть будет так.

 

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

15:53:18 Client: Object 2:1 (type Type_114) not found.


  • 0

#5 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 24 January 2015 - 01:29

 

Не совсем понимаю - если проблема в тикете решена - откуда спам?
 

Тоже рассмешили)

Спам, это когда минут за пять мегабайта 1.5 в логе, вот это я понимаю спам.

А тут)


  • 0

#6 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 24 January 2015 - 01:45

Так, рекомендация.

Зачем никчёмная приостановка исполнения

{ _player addItemToVest _x; } forEach _vestItems;
waitUntil {((count _vestItems) == (count (vestItems _player)))};

 цикл forEach и так сделает своё дело как надо, и пока не доделает, дальнейший код не будет исполнятся.

Задержку имеет смысл применять при подобном построении функционала

_handler = [_player, _vestItems] spawn {
	{ (_this select 0) addItemToVest _x; } forEach (_this select 1);
};

waitUntil {scriptDone _handler}; // Приостанавливаем исполнение дальнейшего кода, до тех пор пока не исполнится код выше, исполняющийся в отдельном процессе

  • 0

#7 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 сообщений
  • Откуда:SPB

Отправлено 24 January 2015 - 05:49

 

 

Не совсем понимаю - если проблема в тикете решена - откуда спам?
 

Тоже рассмешили)

Спам, это когда минут за пять мегабайта 1.5 в логе, вот это я понимаю спам.

А тут)

 

Ну так пока только я 1 на серве, а при онлайне там и будет несколько мб))))))


  • 0

#8 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 24 January 2015 - 17:28

 

 

 

Не совсем понимаю - если проблема в тикете решена - откуда спам?
 

Тоже рассмешили)

Спам, это когда минут за пять мегабайта 1.5 в логе, вот это я понимаю спам.

А тут)

 

Ну так пока только я 1 на серве, а при онлайне там и будет несколько мб))))))

 

В мультиплеере жирный лог, это вполне нормальное явление. А вот когда он жирный в одного, это уже не нормально)


  • 0




Яндекс.Метрика