Закрыть Привет! Если вы читаете это - Вы еще не зарегистрированы. Это займет не больше минуты. Нажмите здесь, чтобы пройти регистрацию в несколько простых шагов, чтобы пользоваться всеми возможностями нашего форума. Обратите внимание, запрещены непристойные, матерные, бессмысленные (цифры, случайный набор букв) ники. Удачи!

Тема: /fly - для администраторов.

Показано с 1 по 10 из 10

  1. #1
    Заблокирован

    Аватар для Velaso

    Статус: Оффлайн
    Регистрация:29.04.2018
    Адрес:ZONE 51
    Сообщений:111
    Репутация:12 [+/-] 

    /fly - для администраторов.

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

    Начнём!


    PHP код:
    //Переменные
    new bool:flying[MAX_PLAYERS]; 
    PHP код:
    //pInfo
    FloatpPos[4], 
    PHP код:
    CMD:fly(playeridparams[]) {
        if(
    PlayerLogged[playerid] != true) return 1// Проверка если игрок авторизован
        
    if(PI[playerid][pAdmLevel] < || AdminLogged[playerid] == false) return 1// Проверка если игрок имеет права адмнистратора и уровень + вошел ли он в систему
        
    new Float:xFloat:yFloat:z;
        if((
    flying[playerid] = !flying[playerid])) {
            
    GetPlayerPos(playeridxyz);
            
    t_SetPlayerPos(playeridxyz+5);
            
    SetHealth(playerid10000.0);
            
    PI[playerid][pHeal] = 10000;
            
    PI[playerid][pArmur] = 10000;
            
    SetPlayerArmorAC(playerid10000);
            
    SetTimerEx("AdminFly"1000"d"playerid);
        }
        else
        {
            
    GetPlayerPos(playeridxyz);
            
    t_SetPlayerPos(playeridxyz+0.5);
            
    ClearAnimations(playerid);
            
    SetHealth(playerid100.0);
            
    PI[playerid][pHeal] = 100;
            
    PI[playerid][pArmur] = 100;
            
    SetPlayerArmorAC(playerid100);
            return 
    1;
        }
        return 
    true;

    Где все ваши стоки
    PHP код:
    //stock
    stock t_SetPlayerPos(playeridFloat:xFloat:yFloat:z) {
        
    SetPlayerPos(playeridxyz);
        
    Streamer_Update(playerid);
        
    PI[playerid][pPos][0] = x;
        
    PI[playerid][pPos][1] = y;
        
    PI[playerid][pPos][2] = z;
        return 
    1;

    В конец мода
    PHP код:
    publicsAdminFly(playerid) {
        if(!
    IsPlayerConnected(playerid))
        return 
    flying[playerid] = false;
        if(
    flying[playerid]) {
            if(!
    IsPlayerInAnyVehicle(playerid))
            {
                new 
    keysudlrFloat:x[2], Float:y[2], Float:z;
                
    GetPlayerKeys(playeridkeysudlr);
                
    GetPlayerVelocity(playeridx[0], y[0], z);
                if(
    ud == KEY_UP) {
                    
    GetPlayerCameraPos(playeridx[0], y[0], z);
                    
    GetPlayerCameraFrontVector(playeridx[1], y[1], z);
                    
    ApplyAnimation(playerid"PARACHUTE""FALL_SkyDive_Accel"4.111111);
                    
    SetPlayerToFacePos(playeridx[0] + x[1], y[0] + y[1]);
                    
    SetPlayerVelocity(playeridx[1], y[1], z);
                }
                else 
    SetPlayerVelocity(playerid0.00.00.01);
            }
            
    SetTimerEx("AdminFly"1000"d"playerid);
        }
        return 
    0;

    PHP код:
    //Cокращение которые я использовал
    PI PlayerInfo 
    С вами был Velaso,до новых встреч
    Псс..будут вопросы задавай
  2. #2
    Пользователь

    Аватар для Алексей Мещеряков

    Статус: Оффлайн
    Регистрация:25.12.2011
    Адрес:Россия. Воронеж
    Сообщений:1,698
    Репутация:423 [+/-] 

    Предыдущая тема, что тебе написали, ничему не научила. Расписывать не буду даже что не так, от неизвестных мне названий массивов, которые взялись неизвестно откуда, до выполнения функционала, который явно не нужен тут.
  3. #3
    Заблокирован

    Аватар для Velaso

    Статус: Оффлайн
    Регистрация:29.04.2018
    Адрес:ZONE 51
    Сообщений:111
    Репутация:12 [+/-] 
    В этом и есть фишка,я пытаюсь работать над оптимизацией однако пока не хорошо получается.
  4. #4
    Пользователь

    Аватар для Алексей Мещеряков

    Статус: Оффлайн
    Регистрация:25.12.2011
    Адрес:Россия. Воронеж
    Сообщений:1,698
    Репутация:423 [+/-] 
    В этом и есть фишка,я пытаюсь работать над оптимизацией однако пока не хорошо получается.
    Да ты хотя бы извлек информацию из того примера, что whale тебе предоставил. На одни и те же грабли наступаешь. Ознакомься с этим!
  5. #5
    Заблокирован

    Аватар для Velaso

    Статус: Оффлайн
    Регистрация:29.04.2018
    Адрес:ZONE 51
    Сообщений:111
    Репутация:12 [+/-] 
    Понял,спасибо
  6. #6
    /proger/

    Аватар для whale

    Статус: Оффлайн
    Регистрация:20.09.2013
    Сообщений:701
    Репутация:204 [+/-] 
    Полностью делать систему не буду, но реализовать можно было примерно так:

    PHP код:
    new
        
    Float:pFlyPosX[MAX_PLAYERS],
        
    Float:pFlyPosY[MAX_PLAYERS],
        
    Float:pFlyPosZ[MAX_PLAYERS];

    CMD:fly(playeridparams[])
    {
        if(
    GetPVarType(playerid, !"pFlyStatus") == PLAYER_VARTYPE_NONE)
        {
            
    SetPVarInt(playerid, !"pFlyStatus"0);
            
    SendClientMessage(playerid, -1, !"Вы включили режим полёта.");

            
    GetPlayerPos(playeridpFlyPosX[playerid], pFlyPosY[playerid], pFlyPosZ[playerid]);
        }
        else
        {
            
    DeletePVar(playerid, !"pFlyStatus");
            
    SendClientMessage(playerid, -1, !"Вы отключили режим полёта.");
        }
        return 
    1;
    }

    public 
    OnPlayerKeyStateChange(playeridnewkeysoldkeys)
    {
        if(
    GetPVarType(playerid, !"pFlyStatus") == PLAYER_VARTYPE_INT)
        {
            if(
    newkeys == KEY_ANALOG_UP// NUM8 - вверх
            
    {
                
    // работа с координатами
            
    }
            else if(
    newkeys == KEY_ANALOG_DOWN// NUM2 - вниз
            
    {
                
    // работа с координатами
            
    }
            else if(
    newkeys == KEY_ANALOG_LEFT// NUM4 - влево
            
    {
                
    // работа с координатами
            
    }
            else if(
    newkeys == KEY_ANALOG_RIGHT// NUM6 - вправо
            
    {
                
    // работа с координатами
            
    }
            else if(
    newkeys == KEY_SPRINT// SPACE (пробел) - вперёд
            
    {
                
    // работа с координатами
            
    }
        }
        return 
    1;

  7. #7
    Ньюсмейкер

    Аватар для AndreY.eXe

    Статус: Оффлайн
    Регистрация:16.09.2017
    Адрес:Top secret
    Сообщений:839
    Репутация:117 [+/-] 
    Полностью делать систему не буду, но реализовать можно было примерно так:

    PHP код:
    new
        
    Float:pFlyPosX[MAX_PLAYERS],
        
    Float:pFlyPosY[MAX_PLAYERS],
        
    Float:pFlyPosZ[MAX_PLAYERS];

    CMD:fly(playeridparams[])
    {
        if(
    GetPVarType(playerid, !"pFlyStatus") == PLAYER_VARTYPE_NONE)
        {
            
    SetPVarInt(playerid, !"pFlyStatus"0);
            
    SendClientMessage(playerid, -1, !"Вы включили режим полёта.");

            
    GetPlayerPos(playeridpFlyPosX[playerid], pFlyPosY[playerid], pFlyPosZ[playerid]);
        }
        else
        {
            
    DeletePVar(playerid, !"pFlyStatus");
            
    SendClientMessage(playerid, -1, !"Вы отключили режим полёта.");
        }
        return 
    1;
    }

    public 
    OnPlayerKeyStateChange(playeridnewkeysoldkeys)
    {
        if(
    GetPVarType(playerid, !"pFlyStatus") == PLAYER_VARTYPE_INT)
        {
            if(
    newkeys == KEY_ANALOG_UP// NUM8 - вверх
            
    {
                
    // работа с координатами
            
    }
            else if(
    newkeys == KEY_ANALOG_DOWN// NUM2 - вниз
            
    {
                
    // работа с координатами
            
    }
            else if(
    newkeys == KEY_ANALOG_LEFT// NUM4 - влево
            
    {
                
    // работа с координатами
            
    }
            else if(
    newkeys == KEY_ANALOG_RIGHT// NUM6 - вправо
            
    {
                
    // работа с координатами
            
    }
            else if(
    newkeys == KEY_SPRINT// SPACE (пробел) - вперёд
            
    {
                
    // работа с координатами
            
    }
        }
        return 
    1;

    Одного не могу понять, зачем проверять на тип ПВАра? Вы будете менять тип с числового на строковой? Бред...

    ---------- Сообщение добавлено в 01:16 ---------- Предыдущее сообщение добавлено в 01:15 ----------

    И лучше тогда сделать bool переменную.
  8. #8
    /proger/

    Аватар для whale

    Статус: Оффлайн
    Регистрация:20.09.2013
    Сообщений:701
    Репутация:204 [+/-] 
    Одного не могу понять, зачем проверять на тип ПВАра? Вы будете менять тип с числового на строковой? Бред...

    ---------- Сообщение добавлено в 01:16 ---------- Предыдущее сообщение добавлено в 01:15 ----------

    И лучше тогда сделать bool переменную.
    Если бы ты хоть немного понимал в оптимизации - ты бы не задавал глупых вопросов :)
  9. #9
    Ньюсмейкер

    Аватар для AndreY.eXe

    Статус: Оффлайн
    Регистрация:16.09.2017
    Адрес:Top secret
    Сообщений:839
    Репутация:117 [+/-] 
    Если бы ты хоть немного понимал в оптимизации - ты бы не задавал глупых вопросов :)
    Топ оптимизация, использовать ПВАРЫ, вместо переменных :). Да еще не нужные проверки задавать, мде....
  10. #10
    Пользователь

    Аватар для Icy Narco

    Статус: Оффлайн
    Регистрация:14.05.2018
    Сообщений:51
    Репутация:-6 [+/-] 
    Спасибо за команду, плюсик)) Думал вырезать из модов искать))

Ваши права

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