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

Почему при выходе из recon администратора переносит в другой интерьер?

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

CVVXN

Дебютант
добрый день, крч у меня баг при выходе с рекона таков, если админ вошёл в слежку находясь в интерьере мэрии например, то при выходе его тпшит не в инту мэрии а в рандомную инту и вирт мир, хотя это всё записывается, исправил это всё publics'om и таймером, но как это сделать моментально, как и было, но без бага? при выходе с рекона вызывается stock setplayerspawn

код прикреплю ниже (это без фикса, как было, баг остаётся в силе)
PHP:
CMD:recon(playerid,params[])
{
    if(!PlayerInfo[playerid][pAlcoInvenxua]) return 1;
    if(!strcmp(params[0],"off",true) && GetPlayerState(playerid) == 9) {
        TogglePlayerSpectatingEx(playerid,0);
        GameTextForPlayer(playerid,"~w~RECON ~r~OFF",3000,4);
        return true;
    }
    if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /re(con) [id]");
    if(!IsPlayerConnected(params[0]) || params[0] == playerid) return SendClientMessage(playerid,COLOR_GRAD1, "Ошибка: Игрока не существует или это Вы");
    if(FD(params[0]) && !FD(playerid)) return SendClientMessage(playerid,-1,"Запрещенно следить за этим человеком!");
    if(PlayerInfo[params[0]][pInv] > 0 && !FD(playerid)) return SendClientMessage(playerid, COLOR_GRAD1, "У игрока куплена функция 'скрытность'!");
    new playerState = GetPlayerState(params[0]);
    if(playerState == PLAYER_STATE_SPECTATING && gSpecID[params[0]] != INVALID_PLAYER_ID) return SendMes(playerid, COLOR_GRAD1, "Администратор следит за %s[%i]", PlayerInfo[gSpecID[params[0]]][pNames], gSpecID[params[0]]);
    if(playerState != 1 && playerState != 2 && playerState != 3) return SendClientMessage(playerid, COLOR_GRAD1, "Игрок не вступил в игру");
    if(GetPlayerState(playerid) != 9)
    {
        GetPlayerPos(playerid, gPlayerPosition[playerid][0],gPlayerPosition[playerid][1],gPlayerPosition[playerid][2]);
        gPlayerInformation[playerid][0] = GetPlayerInterior(playerid);
        gPlayerInformation[playerid][1] = GetPlayerVirtualWorld(playerid);
    }
    gSpecID[playerid] = params[0];
    StartRecon(playerid, params[0]);
    UpdateRecon(playerid, params[0]);
    ShowMenuForPlayer(ReconPanel, playerid);
    for(new i; i < 7; i++) PlayerTextDrawShow(playerid, ReconPlayerText[playerid][i]);
    if(PlayerInfo[playerid][pAlcoInvenxua] < 5) return true;
    return SendClientMessage(playerid, COLOR_GREY, "Для того, чтобы закочить слежку за игроком, введите: '/re off'");

Pawn:
}
stock SetPlayerInteriorEx(playerid, inter) {
    SetPlayerInterior(playerid, inter);
    PlayerInfo[playerid][pInt] = inter;
}
stock SetPlayerVirtualWorldEx(playerid, virt) {
    SetPlayerVirtualWorld(playerid, virt);
    PlayerInfo[playerid][pVirt] = virt;
}
stock TogglePlayerSpectatingEx(playerid, start) {
    SetPVarInt(playerid, "AntiSpecKick", 5);
    if(!start) SetPlayerSpawn(playerid);
    TogglePlayerSpectating(playerid, start);
и это при выходе с рекона


PHP:
stock SetPlayerSpawn(playerid)
{
    if(gSpecID[playerid] != INVALID_PLAYER_ID)
    {
        gSpecID[playerid] = INVALID_PLAYER_ID;
        CancelSelectTextDraw(playerid);
        HideMenuForPlayer(ReconPanel, playerid);
        for(new i; i < 7; i++) PlayerTextDrawHide(playerid, ReconPlayerText[playerid][i]);
        new Float:z_coord = gPlayerPosition[playerid][2] - 1.0;
        SetSpawnInfoEx(playerid, gPlayerPosition[playerid][0], gPlayerPosition[playerid][1], z_coord, 0.0);
        SetPlayerInteriorEx(playerid, gPlayerInformation[playerid][0]);
        SetPlayerVirtualWorldEx(playerid, gPlayerInformation[playerid][1]);
        gSpecState[playerid] = INVALID_PLAYER_ID;
        return 1;
    }
и дальше уже код со спавном игроков если они во фраках и прочее
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу