• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Слишком много pVar`ов можно как-то оптимизировать?

Статус
В этой теме нельзя размещать новые ответы.

Alex_Jemison

Умник
Нашол рекон за игроком . То что мне и нужно без текстдравов и менюшок . Но уж очень мне не нравится количество pVar'ов
Как можно ето более умнее сделать , оптимировать данный код .

PHP:
cmd:re(playerid, params[])
{
        extract params -> new id; else
            return SendClientMessage(playerid, 0xCC0000FF, "[Синтаксис]: {FFFFFF}/re [ID игрока]"); // Проверка на синтаксис команды.
        if(!IsPlayerConnected(id))
            return SendClientMessage(playerid, 0xCECECEFF, "Игрок не в сети."); // Проверка, в сети ли игрок?
            
        if(GetPVarInt(playerid, "SET_ADM_POS") == 0) // Проверка на PVAR set_adm_pos, описал в return SetPVarInt(playerid, "SET_ADM_POS", 1);
        {
            new Float: reX, Float: reY, Float: reZ, Float: reA;
            GetPlayerPos(playerid, reX, reY, reZ);
            GetPlayerFacingAngle(playerid, reA);
            
            SetPVarFloat(playerid, "re_X", reX);
            SetPVarFloat(playerid, "re_Y", reY);
            SetPVarFloat(playerid, "re_Z", reZ);
            SetPVarFloat(playerid, "re_A", reA);
            
            SetPVarInt(playerid, "re_int", GetPlayerInterior(id));
            SetPVarInt(playerid, "re_virt", GetPlayerVirtualWorld(id)); // Ну и тут естественно, создаем сами PVAR с значениями спавна админа на прежнее место, а также интерьера и вирт.мира.
        }
        TogglePlayerSpectating(playerid, true);

        SetPlayerInterior(playerid, GetPlayerInterior(id)); // Устанавливаем админу интерьер игрока.
        SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(id)); // Устанавливаем админку вирт.мир игрока.       

        if(IsPlayerInAnyVehicle(id))
        
        PlayerSpectateVehicle(playerid, GetPlayerVehicleID(id), 1);
                else
        PlayerSpectatePlayer(playerid, id, 1);
        
        return SetPVarInt(playerid, "SET_ADM_POS", 1); // Устанавливаем PVAR set_adm_pos для того, чтобы при перемещении по слежке координаты не менялись.
}
PHP:
cmd:reoff(playerid)
{
        if(GetPVarInt(playerid, "SET_ADM_POS") == 0) return 1; // Если админ не начал следить, то ничего не происходит.
        TogglePlayerSpectating(playerid, false); // Отключаем режим спектора.
        
        return OnPlayerSpawn(playerid); // Спавним через паблик OnPlayerSpawn
}

PHP:
if(GetPVarInt(playerid, "SET_ADM_POS") == 1) // Если админ уже следит, то спавним на прежнее место.
        {
            DeletePVar(playerid, "SET_ADM_POS"); // Удаляем PVAR с координатами.
            
            SetPlayerPos(playerid, GetPVarFloat(playerid, "re_X"), GetPVarFloat(playerid, "re_Y"), GetPVarFloat(playerid, "re_Z")); // Спавним админа по координатам.
            SetPlayerInterior(playerid, GetPVarInt(playerid, "re_int")); // Устанавливаем админку прежний интерьер.
            SetPlayerVirtualWorld(playerid, GetPVarInt(playerid, "re_virt")); // Устанавливаем админку прежний вирт.мир.
            
                DeletePVar(playerid, "re_X"); // Удаляем PVAR с координатами.
                DeletePVar(playerid, "re_Y"); // Удаляем PVAR с координатами.
                DeletePVar(playerid, "re_Z"); // Удаляем PVAR с координатами.
                DeletePVar(playerid, "re_int"); // Удаляем PVAR с интерьером.
                DeletePVar(playerid, "re_virt"); // Удаляем PVAR с вирт.миром.
        }
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу