Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 16 из 16
  1. #11
    Аватар для kala4iks
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    317
    Репутация:
    0 ±
    Цитата Сообщение от XakeP Посмотреть сообщение
    PHP код:
    UpdatePlayerPosition(playerid); 
    - можно глянуть что у вас тут? Так как от RLS и прочего хлама меня Бог уберег

    P.S. По поводу кода, полностью согласен, ни кто не запрещает, но если вы хотите, что бы вам помогли, то наверно все же лучше пару минут по нажимать кнопочку "Tab", по мне дак это обычное не уважение...
    Вот все координаты сохраняются но после слежки все равно сначала вроде на то место где спекать начал а потом резко на респу.
    PHP код:
    stock UpdatePlayerPosition(playerid

        new 
    Float:xFloat:yFloat:z
        
    GetPlayerPos(playerid,x,y,z); 
        
    Player[playerid][pDpos_x] = x
        
    Player[playerid][pDpos_y] = y
        
    Player[playerid][pDpos_z] = z
        
    Player[playerid][pDint] = GetPlayerInterior(playerid); 
        
    Player[playerid][pDworld] = GetPlayerVirtualWorld(playerid); 
        return 
    1


  2. #12
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Просто раскрыл и оттабулировал код. Немного переделал.

    PHP код:
    CMD:spec(playerid,params[])
    {
        if(
    Player[playerid][pAdmin] < || AdminDuty[playerid] == 0) return NoRights;
        if(
    Spectate[playerid] == 999)
        {
            if(
    sscanf(params,"u",params[0]))
                return 
    send(playerid,COLOR_COMAND,"[КОМАНДЫ] {FFFFFF}/spec [id игрока].");
            if(!
    IsPlayerConnected(params[0]))
                return 
    Notonline;
            if(
    Player[params[0]][pAdmin] > Player[playerid][pAdmin])
                return 
    send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Ты не можешь наблюдать за администратором старше тебя.");
            
            
    TogglePlayerSpectating(playerid,1);
            
    SetCameraBehindPlayer(params[0]);
            
    Spectate[playerid] = params[0];
            
    SetPlayerInterior(playerid,GetPlayerInterior(params[0]));
            
    SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(params[0]));
            
    PlayerSpectatePlayer(playerid,params[0]);
            
            new    
    Float:health,
                
    // НИЧОСИ
                // мы же не индийское имя записываем
                // MAX_PLAYER_NAME
                
    giveplayer[124];
            
            
    GetPlayerHealth(Spectate[playerid],health);
            
    TextDrawShowForPlayer(playeridFULLRECON[playerid]);
            
    GetPlayerName(Spectate[playerid],giveplayer,sizeof(giveplayer));
            
    GameTextForPlayer(playerid,"~w~Pe›њЇ ®a—ћ«љe®њ¬~g~‹kћ«¤e®",5000,6);
            
    SetCameraBehindPlayer(params[0]);
            
    UpdatePlayerPosition(playerid);
            return 
    1;
        }
        if(
    Spectate[playerid] != 999)
        {
            
    Spectate[playerid] = 999;
            
    TogglePlayerControllable(playerid,1);
            
    TogglePlayerSpectating(playerid,0);
            
    SetCameraBehindPlayer(playerid);
            
    GameTextForPlayer(playerid,"~w~Pe›њЇ ®a—ћ«љe®њ¬~r~‹Ёkћ«¤e®"50006);
        
    /*    Как подсказывает мой хрустальный шар,
            то вы так возвращаете игрока на начало "спека" ?
        
            new Float:x,Float:y,Float:z;
            x = Player[playerid][pDpos_x];
            y = Player[playerid][pDpos_y];
            z = Player[playerid][pDpos_z];
            ServerSetPlayerPos(playerid,x,y,z+0.5);
        */    
            // Насоздавали массивов
            // Теперь мучаетесь с ними
            // #define не слоабаков =(

            
    new Float:x,Float:y,Float:z;
            
    ServerSetPlayerPos(    playerid,Player[playerid][pDpos_x],
                                
    Player[playerid][pDpos_y],
                                
    Player[playerid][pDpos_z]+0.5);
            
    // ...
            
            
    SetPlayerInterior(playerid,Player[playerid][pDint]);
            
    SetPlayerVirtualWorld(playeridPlayer[playerid][pDworld]);
            
    TextDrawHideForPlayer(playerid,FULLRECON[playerid]);
        }
        return 
    1;

    И что за ServerSetPlayerPos? Надеюсь, что не
    PHP код:
    // КЭК
    #define ServerSetPlayerPos(%0,%1,%2,%3) \
        
    (SetPlayerPos(%0,%1,%2,%3)) 

  3. Пользователь сказал cпасибо:
    $continue$ (08.08.2015)
  4. #13
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2590 ±
    Похоже, никто так и не заметил, что команда сфейлится при попытке спекта за 999-м игроком.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  5. #14
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Похоже, никто так и не заметил, что команда сфейлится при попытке спекта за 999-м игроком.
    Заметил, но желание приписывать команду нет.

  6. #15
    Аватар для kala4iks
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    317
    Репутация:
    0 ±
    Цитата Сообщение от Zangetsu Посмотреть сообщение
    Просто раскрыл и оттабулировал код. Немного переделал.

    PHP код:
    CMD:spec(playerid,params[])
    {
        if(
    Player[playerid][pAdmin] < || AdminDuty[playerid] == 0) return NoRights;
        if(
    Spectate[playerid] == 999)
        {
            if(
    sscanf(params,"u",params[0]))
                return 
    send(playerid,COLOR_COMAND,"[КОМАНДЫ] {FFFFFF}/spec [id игрока].");
            if(!
    IsPlayerConnected(params[0]))
                return 
    Notonline;
            if(
    Player[params[0]][pAdmin] > Player[playerid][pAdmin])
                return 
    send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Ты не можешь наблюдать за администратором старше тебя.");
            
            
    TogglePlayerSpectating(playerid,1);
            
    SetCameraBehindPlayer(params[0]);
            
    Spectate[playerid] = params[0];
            
    SetPlayerInterior(playerid,GetPlayerInterior(params[0]));
            
    SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(params[0]));
            
    PlayerSpectatePlayer(playerid,params[0]);
            
            new    
    Float:health,
                
    // НИЧОСИ
                // мы же не индийское имя записываем
                // MAX_PLAYER_NAME
                
    giveplayer[124];
            
            
    GetPlayerHealth(Spectate[playerid],health);
            
    TextDrawShowForPlayer(playeridFULLRECON[playerid]);
            
    GetPlayerName(Spectate[playerid],giveplayer,sizeof(giveplayer));
            
    GameTextForPlayer(playerid,"~w~Pe›њЇ ®a—ћ«љe®њ¬~g~‹kћ«¤e®",5000,6);
            
    SetCameraBehindPlayer(params[0]);
            
    UpdatePlayerPosition(playerid);
            return 
    1;
        }
        if(
    Spectate[playerid] != 999)
        {
            
    Spectate[playerid] = 999;
            
    TogglePlayerControllable(playerid,1);
            
    TogglePlayerSpectating(playerid,0);
            
    SetCameraBehindPlayer(playerid);
            
    GameTextForPlayer(playerid,"~w~Pe›њЇ ®a—ћ«љe®њ¬~r~‹Ёkћ«¤e®"50006);
        
    /*    Как подсказывает мой хрустальный шар,
            то вы так возвращаете игрока на начало "спека" ?
        
            new Float:x,Float:y,Float:z;
            x = Player[playerid][pDpos_x];
            y = Player[playerid][pDpos_y];
            z = Player[playerid][pDpos_z];
            ServerSetPlayerPos(playerid,x,y,z+0.5);
        */    
            // Насоздавали массивов
            // Теперь мучаетесь с ними
            // #define не слоабаков =(

            
    new Float:x,Float:y,Float:z;
            
    ServerSetPlayerPos(    playerid,Player[playerid][pDpos_x],
                                
    Player[playerid][pDpos_y],
                                
    Player[playerid][pDpos_z]+0.5);
            
    // ...
            
            
    SetPlayerInterior(playerid,Player[playerid][pDint]);
            
    SetPlayerVirtualWorld(playeridPlayer[playerid][pDworld]);
            
    TextDrawHideForPlayer(playerid,FULLRECON[playerid]);
        }
        return 
    1;

    И что за ServerSetPlayerPos? Надеюсь, что не
    PHP код:
    // КЭК
    #define ServerSetPlayerPos(%0,%1,%2,%3) \
        
    (SetPlayerPos(%0,%1,%2,%3)) 
    НЕ помогло все равно.

    А вот и ServerSetPlayerPos

    PHP код:
    stock ServerSetPlayerPos(playeridFloat:xFloat:yFloat:z)
    {
        
    TeleportTime[playerid] = 10;
        
    SetPlayerPos(playeridxyz);
        
    ReadPlayerPosition[playerid][ReadX] = x;
        
    ReadPlayerPosition[playerid][ReadY] = y;
        
    ReadPlayerPosition[playerid][ReadZ] = z;
        return 
    1;


  7. #16
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от kala4iks Посмотреть сообщение
    НЕ помогло все равно.

    А вот и ServerSetPlayerPos

    PHP код:
    stock ServerSetPlayerPos(playeridFloat:xFloat:yFloat:z)
    {
        
    TeleportTime[playerid] = 10;
        
    SetPlayerPos(playeridxyz);
        
    ReadPlayerPosition[playerid][ReadX] = x;
        
    ReadPlayerPosition[playerid][ReadY] = y;
        
    ReadPlayerPosition[playerid][ReadZ] = z;
        return 
    1;

    Тут легче похоже команду переписать чем копаться в куче хлама.
    Например массив надо использовать с INVALID_PLAYER_ID

  8. 2 пользователя(ей) сказали cпасибо:
    Desulaid (08.08.2015) XakeP (08.08.2015)
 

 
Страница 2 из 2 ПерваяПервая 1 2

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •