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


Фотография

Проблемы с закрыванием техники.


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

#1 OFFLINE   DeepSilence

DeepSilence

    Рядовой

  • Пользователи
  • 7 сообщений

Отправлено 25 September 2014 - 17:23

Привет! Сделали на сервере возможность закрывать технику, но возникла проблема: если закрыть технику выйти с сервера а затем зайти вновь, то открыть ее уже невозможно. Перелопатили все что можно, но так и не нашли решение. Если кто знает как это решить буду очень признателен


  • 0

#2 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 25 September 2014 - 19:54

Привет! Сделали на сервере возможность закрывать технику, но возникла проблема: если закрыть технику выйти с сервера а затем зайти вновь, то открыть ее уже невозможно. Перелопатили все что можно, но так и не нашли решение. Если кто знает как это решить буду очень признателен

Дайте код, каким закрываете


  • 0

#3 OFFLINE   DeepSilence

DeepSilence

    Рядовой

  • Пользователи
  • 7 сообщений

Отправлено 28 September 2014 - 19:00

Вы хотите помочь или Вам просто нужен код?


  • 0

#4 OFFLINE   WAF3R

WAF3R

    Майор

  • ex. Администратор
  • 2234 сообщений

Отправлено 28 September 2014 - 19:13

Вы хотите помочь или Вам просто нужен код?

 

А зачем ему просто ваш код?

Вы думаете что он сам его не сможет написать?


  • 0

#5 OFFLINE   DeepSilence

DeepSilence

    Рядовой

  • Пользователи
  • 7 сообщений

Отправлено 29 September 2014 - 18:01

Да мне не жалко и просто его дать. Просто если человек просит для себя, то как я уже сказал в нем есть большой недостаток. Ну и в ответ на вопрос: а откуда я могу знать может он его написать или нет? 


  • 0

#6 OFFLINE   DeepSilence

DeepSilence

    Рядовой

  • Пользователи
  • 7 сообщений

Отправлено 29 September 2014 - 18:57

 

Привет! Сделали на сервере возможность закрывать технику, но возникла проблема: если закрыть технику выйти с сервера а затем зайти вновь, то открыть ее уже невозможно. Перелопатили все что можно, но так и не нашли решение. Если кто знает как это решить буду очень признателен

Дайте код, каким закрываете

 

А система закрывания техники взята из Altis Life и скопирована на Wasteland. 

 

case 0: // LOCK

{
     R3F_LOG_mutex_local_verrou = true;
_totalDuration = 5;
_lockDuration = _totalDuration;
_iteration = 0;
 
player switchMove "AinvPknlMstpSlayWrflDnon_medic";
 
for "_iteration" from 1 to _lockDuration do
{
// If the player is too far or dies, revert state.
            if (player distance _object > 14 || !alive player) exitWith
{
       2 cutText ["Vehicle save interrupted...", "PLAIN DOWN", 1];
                R3F_LOG_mutex_local_verrou = false;
};
            
// Keep the player locked in medic animation for the full duration of the unlock.
            if (animationState player != "AinvPknlMstpSlayWrflDnon_medic") then {
                player switchMove "AinvPknlMstpSlayWrflDnon_medic";
            };
            
_lockDuration = _lockDuration - 1;
   _iterationPercentage = floor (_iteration / _totalDuration * 100);
   
2 cutText [format["Vehicle Save %1%2 complete", _iterationPercentage, _stringEscapePercent], "PLAIN DOWN", 1];
   sleep 1;
   
// Sleep a little extra to show that saving is enabled.
if (_iteration >= _totalDuration) exitWith
{
       sleep 1;
          //    _object setVariable ["objectLocked", true, true];
_object setVariable ["ownerUID", getPlayerUID player, true];
                2 cutText ["Vehicle save enabled", "PLAIN DOWN", 1];
                R3F_LOG_mutex_local_verrou = false;
   }; 
};
 
player switchMove ""; // Redundant reset of animation state to avoid getting locked in animation.       
    };
    case 1: // UNLOCK
{
        R3F_LOG_mutex_local_verrou = true;
_totalDuration = if (_object getVariable ["ownerUID", ""] == getPlayerUID player) then { 10 } else { 45 }; // Allow owner to unlock quickly
_unlockDuration = _totalDuration;
_iteration = 0;
 
Мы думаем, что проблема в том, что при выходе и возвращении на сервер у игрока меняется ID. Но совершенно не можем найти где это прописано или не прописано и как это решить

  • 0

#7 OFFLINE   Endspiel

Endspiel

    Рядовой

  • Пользователи
  • 7 сообщений

Отправлено 29 September 2014 - 19:05

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

 
Hey guys,
 
something plain and simple from my side which I think isn't documented anywhere yet.
 
With this little script you can add keys back to the players after they disconnect/relog/die.
 
Create a file called "fn_addKey.sqf" in your core folder and place the following in it:

/*
File: fn_addKey
Author: Dexter
 
Description:
Adds keys back to the player after relogging/death/disconnect
*/
 
private["_allVeh","_pUID"];
 
sleep 5;
 
_allVeh = allMissionObjects "Car" + allMissionObjects "Air" + allMissionObjects "Ship";
_name = name player;
 
{
_owners = _x getVariable ["vehicle_info_owners",[]];
_index = [_name,_owners] call fnc_index;
 
if(!(_index == -1)) then {
life_vehicles set[count life_vehicles, _x];
};
} foreach _allVeh;

 

 

 
and in your init.sqf in YOURMISSION/core/init.sqf add the following : ( just copied the end of it, enough to see where it belongs )
life_fnc_moveIn = compileFinal
"
player moveInCargo (_this select 0);
";
 
[] execVM "core\init_survival.sqf";
[] execVM "core\fn_addKey.sqf";///here
 
 
__CONST__(life_paycheck,life_paycheck); //Make the paycheck static.

 

 

And thats it, players get their keys back after relogging/disconnects/dying now.
 
Hope this helps some people.
 
IMPORTANT :
 
from 3.1.4 use this in the fn_addKey.sqf at line 18:
_index = [_name,_owners] call TON_fnc_index;

 

 

and you should be good to go.
 
Little edit:
 
As the newer Altis Life versions delete vehicles ( without changing it ) that are 300m far away from the player, you should change that.
 
Pretty simple stuff, go into your life_server/Functions/system folder and open your cleanup.sqf, theres the following line:
_units = {(_x distance _veh < 300)} count playableUnits; // 300 is the basic distance, just change that to whatever you like

 

 


  • 0

#8 OFFLINE   DeepSilence

DeepSilence

    Рядовой

  • Пользователи
  • 7 сообщений

Отправлено 29 September 2014 - 19:09

Спасибо! Попробуем. Потом тут отпишусь работает или нет


  • 0

#9 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 30 September 2014 - 02:04

Глюк может быть связан с этим

_object setVariable ["ownerUID", getPlayerUID player, true];

 

 

Я должен успеть вставить ко-какое предупреждение, пока вы не убились об стену, борясь с вопросом: "Почему эта хня не работает с этим объектом?!?". Дома, например, как и другие картографические объекты (и я имею в виду те объекты, которые были добавлены при создании карты, а не миссии) - подгружаемые. Воспринимайте это как... ну... карты в Армочке огромны, поэтому, даже если вы можете загрузить всю карту сразу, это заберёт слишком много вычислительной мощи вашего процессора. Это означает, что если вы прикрепите переменную к объекту на карте и попытаетесь сделать её (переменную) глобальной, на других компьютерах этого предмета может ещё не существовать. А когда, позже, он появится на тех компьютерах, в них может и не оказаться той переменной, которую вы прикрепили, поэтому, стоит за помнить этот нюанс.

 

Это отсюда

http://arma3.ru/foru...kriptopisaniiu/

ArmA Scripting Tutorials: Переменные (Часть Номер Три).

 

 

 

но возникла проблема: если закрыть технику выйти с сервера

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

 

И ещё, если данный код исполняется на клиенте, это плохая идея, такое должно исполняться на сервере.


Сообщение отредактировал SteelRat: 30 September 2014 - 02:11

  • 0

#10 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 30 September 2014 - 02:18

 

 

Мы думаем, что проблема в том, что при выходе и возвращении на сервер у игрока меняется ID.

Код обращается к UID, он у каждого персональный и на вечно.


  • 0




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