Sign in to follow this  
Followers 0
Shakoladka

/afly - свободная камера, полёт по карте, спек за игроками

2 posts in this topic

Многие ищут эту команду и флудят темами поэтому я решил кинуть сюда эту команду. Нам понадобятся: плагин DC/ZCMD, лучше ZCMD и мод.
Вставляем в конец мода:

Спойлер
CMD:afly(playerid,params[])
{
    if(antiflood[playerid] > 0) return SendClientMessage(playerid, COLOR_WARNING,"Не флуди!");
    antiflood[playerid]++;
        if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,"Вы не авторизованы на сервере!");
    if(PLAYER_DATA[playerid][data_ADMLVL] < 1) return true;
    SetPVarInt(playerid,"spawn_ac",1);
     
        if(GetPVarType(playerid, "FlyMode"))
        {
            new inter, world, Float:X, Float:Y, Float:Z, Float:FA;
            GetPlayerHealth(playerid,PLAYER_DATA[playerid][data_HP]);
                GetPlayerPos(playerid, X, Y, Z);
                GetPlayerFacingAngle(playerid, FA);
                inter = GetPlayerInterior(playerid);
                world = GetPlayerVirtualWorld(playerid);
                SetPVarFloat(playerid, "SpecX", X);
                SetPVarFloat(playerid, "SpecY", Y);
                SetPVarFloat(playerid, "SpecZ", Z);
                SetPVarFloat(playerid, "SpecFA", FA);
                SetPVarInt(playerid, "SpecInt", inter);
                SetPVarInt(playerid, "SpecWorld", world);
                 
                CancelFlyMode(playerid);
        }
        else
        {
                SetPVarInt(playerid, "SpecBool", 1);
                FlyMode(playerid);
        }
        return true;
}

Вот и всё, скорее всего придётся менять переменные. 
Команда из мода +RP.

Спойлер
stock CancelFlyMode(playerid)
{
        DeletePVar(playerid, "FlyMode");
        CancelEdit(playerid);
        TogglePlayerSpectating(playerid, false);
 
        DestroyPlayerObject(playerid, noclipdata[playerid][flyobject]);
        noclipdata[playerid][cameramode] = CAMERA_MODE_NONE;
        return 1;
}
 
 
stock FlyMode(playerid)
{
        new Float:X, Float:Y, Float:Z;
        GetPlayerPos(playerid, X, Y, Z);
        noclipdata[playerid][flyobject] = CreatePlayerObject(playerid, 19300, X, Y, Z, 0.0, 0.0, 0.0);
 
        TogglePlayerSpectating(playerid, true);
        AttachCameraToPlayerObject(playerid, noclipdata[playerid][flyobject]);
 
        SetPVarInt(playerid, "FlyMode", 1);
        noclipdata[playerid][cameramode] = CAMERA_MODE_FLY;
        return 1;
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
stock GetMoveDirectionFromKeys(ud, lr)
{
        new direction = 0;
        if(lr < 0)
        {
                if(ud < 0) direction = MOVE_FORWARD_LEFT;
                else if(ud > 0) direction = MOVE_BACK_LEFT;
                else direction = MOVE_LEFT;
        }
        else if(lr > 0)
        {
                if(ud < 0) direction = MOVE_FORWARD_RIGHT;
                else if(ud > 0) direction = MOVE_BACK_RIGHT;
                else direction = MOVE_RIGHT;
        }
        else if(ud < 0) direction = MOVE_FORWARD;
        else if(ud > 0) direction = MOVE_BACK;
        return direction;
}
//--------------------------------------------------
stock MoveCamera(playerid)
{
        new Float:FV[3], Float:CPR[3];
        GetPlayerCameraPos(playerid, CPR[0], CPR[1], CPR[2]);
    GetPlayerCameraFrontVector(playerid, FV[0], FV[1], FV[2]);
 
        if(noclipdata[playerid][accelmul] <= 1) noclipdata[playerid][accelmul] += ACCEL_RATE;
 
        new Float:speed = MOVE_SPEED * noclipdata[playerid][accelmul];
 
        new Float:X, Float:Y, Float:Z;
        GetNextCameraPosition(noclipdata[playerid][mode], CPR, FV, X, Y, Z);
        MovePlayerObject(playerid, noclipdata[playerid][flyobject], X, Y, Z, speed);
 
        noclipdata[playerid][lastmove] = GetTickCount();
        return 1;
}
//--------------------------------------------------
stock GetNextCameraPosition(move_mode, Float:CPR[3], Float:FV[3], &Float:X, &Float:Y, &Float:Z)
{
    #define OFFSET_X (FV[0]*6000.0)
        #define OFFSET_Y (FV[1]*6000.0)
        #define OFFSET_Z (FV[2]*6000.0)
        switch(move_mode)
        {
                case MOVE_FORWARD:
                {
                        X = CPR[0]+OFFSET_X;
                        Y = CPR[1]+OFFSET_Y;
                        Z = CPR[2]+OFFSET_Z;
                }
                case MOVE_BACK:
                {
                        X = CPR[0]-OFFSET_X;
                        Y = CPR[1]-OFFSET_Y;
                        Z = CPR[2]-OFFSET_Z;
                }
                case MOVE_LEFT:
                {
                        X = CPR[0]-OFFSET_Y;
                        Y = CPR[1]+OFFSET_X;
                        Z = CPR[2];
                }
                case MOVE_RIGHT:
                {
                        X = CPR[0]+OFFSET_Y;
                        Y = CPR[1]-OFFSET_X;
                        Z = CPR[2];
                }
                case MOVE_BACK_LEFT:
                {
                        X = CPR[0]+(-OFFSET_X - OFFSET_Y);
                         Y = CPR[1]+(-OFFSET_Y + OFFSET_X);
                         Z = CPR[2]-OFFSET_Z;
                }
                case MOVE_BACK_RIGHT:
                {
                        X = CPR[0]+(-OFFSET_X + OFFSET_Y);
                         Y = CPR[1]+(-OFFSET_Y - OFFSET_X);
                         Z = CPR[2]-OFFSET_Z;
                }
                case MOVE_FORWARD_LEFT:
                {
                        X = CPR[0]+(OFFSET_X  - OFFSET_Y);
                        Y = CPR[1]+(OFFSET_Y  + OFFSET_X);
                        Z = CPR[2]+OFFSET_Z;
                }
                case MOVE_FORWARD_RIGHT:
                {
                        X = CPR[0]+(OFFSET_X  + OFFSET_Y);
                        Y = CPR[1]+(OFFSET_Y  - OFFSET_X);
                        Z = CPR[2]+OFFSET_Z;
                }
        }
}

в OnPlayerSpawn:

Спойлер
if(GetPVarInt(playerid, "SpecBool") == 1)
       {
               DeletePVar(playerid, "SpecBool");
               new Float:X = GetPVarFloat(playerid, "SpecX"), Float:Y = GetPVarFloat(playerid, "SpecY"), Float:Z = GetPVarFloat(playerid, "SpecZ"),
               Float:FA = GetPVarFloat(playerid, "SpecFA"), inter = GetPVarInt(playerid, "SpecInt"), world = GetPVarInt(playerid, "SpecWorld");
               DeletePVar(playerid, "SpecX");
               DeletePVar(playerid, "SpecY");
               DeletePVar(playerid, "SpecZ");
               DeletePVar(playerid, "SpecFA");
               DeletePVar(playerid, "SpecInt");
               DeletePVar(playerid, "SpecWorld");
               SetPlayerPos(playerid, X, Y, Z);
               SetPlayerFacingAngle(playerid, FA);
               SetPlayerVirtualWorld(playerid, world);
               SetPlayerInterior(playerid, inter);
               SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
               if(PlayerInfo[playerid][pWanted] > 0) SetPlayerWantedLevel(playerid, PlayerInfo[playerid][pWanted]);
               if(PlayerInfo[playerid][pSkin] > 0) SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);
               else SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]);
               return true;
       }

к new:

Спойлер
enum noclipenum
{
        cameramode,flyobject,mode,lrold,udold,lastmove,Float:accelmul
}
new noclipdata[MAX_PLAYERS][noclipenum];

OnPlayerConnect:

Спойлер
noclipdata[playerid][cameramode] = CAMERA_MODE_NONE;
noclipdata[playerid][lrold] = 0;
noclipdata[playerid][udold] = 0;
noclipdata[playerid][mode] = 0;
noclipdata[playerid][lastmove] = 0;
noclipdata[playerid][accelmul] = 0.0;

OnPlayerUpdate:

Спойлер
if(noclipdata[playerid][cameramode] == CAMERA_MODE_FLY)
       {
               new keys,ud,lr;
               GetPlayerKeys(playerid,keys,ud,lr);
 
               if(noclipdata[playerid][mode] && (GetTickCount() - noclipdata[playerid][lastmove] > 100))
               {
                       MoveCamera(playerid);
               }
               if(noclipdata[playerid][udold] != ud || noclipdata[playerid][lrold] != lr)
               {
                       if((noclipdata[playerid][udold] != 0 || noclipdata[playerid][lrold] != 0) && ud == 0 && lr == 0)
                       {
                               StopPlayerObject(playerid, noclipdata[playerid][flyobject]);
                               noclipdata[playerid][mode]      = 0;
                               noclipdata[playerid][accelmul]  = 0.0;
                       }
                       else
                       {
                               noclipdata[playerid][mode] = GetMoveDirectionFromKeys(ud, lr);
                               MoveCamera(playerid);
                       }
               }
               noclipdata[playerid][udold] = ud; noclipdata[playerid][lrold] = lr;
               return 0;
       }

 

Если что то не будет работать, то это из-за переменных. 

Share this post


Link to post
Share on other sites

ты не полностью вырезал систему

Share this post


Link to post
Share on other sites

Your content will need to be approved by a moderator

Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   You have pasted content with formatting.   Remove formatting

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

Loading...
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • xdakoy
      By xdakoy


      Просмотр файла Arizona Script (McDdonalds, ADDVIP, новые бизы, Американская классика, новые ларцы и т.д)
      V2.0:
      - Доделали систему Американской классики
      - Добавили в /mm пункт Американская классика
      - Добавлены новые Luxe-Авто
      - Добавили новые боксы: Ларец с премией, Настольгический Бокс
      - Новые скины
      - Добавлен Тайник Илона Маска
      - Добавлена система Add-Vip
      - Добавлена команда /giveref - выдать реферала
      - Сделана новая синхронизация авто для игроков без лаунчера
      - По просьбе людей обладающих модом, добавлен автоинвайт во фракцию на спавне
      - Убраны Фулл доступы
      - Все админ-команды распределены по 10 админ-уровням
      - Исправлены все варнинги в моде
      - Исправлены мелкие баги
       
       
      Что есть в данном моде: V1.0
      - Новый бизнес лавка с аксессуарами на ЦР
      - McDonalds
      - Luxe Кары/Новые скины
      - Система майнинга(Полностью функциональна, есть предметы смазка и охлаждающая жидкость)
      - Система заточек аксессуаров
      - 10 Уровней Админки (Новые - Руководитель Проекта и Спец.Администратор)
      - /serversettings, /adonatesettings - Настраивать сервер(даже логотип) прямо в игре
      - Rare и Car Боксы
      - Рабочий Центральный Рынок
      - Начата система Американская классика
      - Система пополнения автосалонов
      - Система админиских префиксов в /ao и /a
      - Клады
      - Реконструкции
      - Крафт предметов
      - Объекты на дом/бизнес
      - Новые бизнесы: AZMAX/SAMPBET/SecondHand(Пока что только бизнесы)
      - Новые АЗС
      - Оптимизация для лаунчера
      - Синхронизация Luxe-Каров для игроков без лаунчера
      - Новые призы в рулетке
      - Описание персонажа
      - Уникальная Випка(vipmenu)
      - Новые аксессуары(Бакстебольный мяч, полицейский на плечо и т.д)
      - Все новые и старые модификации
      - Новое Recon-меню
      - Шкаф, мусорки, багажник
      - Криптовалюта
      - Команды /map /dellmap
      - Выдача паспорта на спавне
      - Команда для получения бонусов за отыгранные часы "/arz"
      - Рабочие сертификаты на люкс авто
      - Система /addcode (Вы можете создать код, ввести кол-во активаций и выбрать приз), а игрок должен как можно быстрее ввести /code
      - Система новых худов, спидометров, радаров
      - Система просмотра оффлайн статистики с 0, /checkoff
      - Новая надпись "Welcome"
      - Описания для домов и бизов
      - Система БумБокса
      - Все новые интерьеры во фракциях
      - Исправлено большое количество багов
      Добавил xdakoy Добавлено 30.07.2021 Категория Моды Автор Script Studio( я + другие лица)  
    • xdakoy
      By xdakoy
      V2.0:
      - Доделали систему Американской классики
      - Добавили в /mm пункт Американская классика
      - Добавлены новые Luxe-Авто
      - Добавили новые боксы: Ларец с премией, Настольгический Бокс
      - Новые скины
      - Добавлен Тайник Илона Маска
      - Добавлена система Add-Vip
      - Добавлена команда /giveref - выдать реферала
      - Сделана новая синхронизация авто для игроков без лаунчера
      - По просьбе людей обладающих модом, добавлен автоинвайт во фракцию на спавне
      - Убраны Фулл доступы
      - Все админ-команды распределены по 10 админ-уровням
      - Исправлены все варнинги в моде
      - Исправлены мелкие баги
       
       
      Что есть в данном моде: V1.0
      - Новый бизнес лавка с аксессуарами на ЦР
      - McDonalds
      - Luxe Кары/Новые скины
      - Система майнинга(Полностью функциональна, есть предметы смазка и охлаждающая жидкость)
      - Система заточек аксессуаров
      - 10 Уровней Админки (Новые - Руководитель Проекта и Спец.Администратор)
      - /serversettings, /adonatesettings - Настраивать сервер(даже логотип) прямо в игре
      - Rare и Car Боксы
      - Рабочий Центральный Рынок
      - Начата система Американская классика
      - Система пополнения автосалонов
      - Система админиских префиксов в /ao и /a
      - Клады
      - Реконструкции
      - Крафт предметов
      - Объекты на дом/бизнес
      - Новые бизнесы: AZMAX/SAMPBET/SecondHand(Пока что только бизнесы)
      - Новые АЗС
      - Оптимизация для лаунчера
      - Синхронизация Luxe-Каров для игроков без лаунчера
      - Новые призы в рулетке
      - Описание персонажа
      - Уникальная Випка(vipmenu)
      - Новые аксессуары(Бакстебольный мяч, полицейский на плечо и т.д)
      - Все новые и старые модификации
      - Новое Recon-меню
      - Шкаф, мусорки, багажник
      - Криптовалюта
      - Команды /map /dellmap
      - Выдача паспорта на спавне
      - Команда для получения бонусов за отыгранные часы "/arz"
      - Рабочие сертификаты на люкс авто
      - Система /addcode (Вы можете создать код, ввести кол-во активаций и выбрать приз), а игрок должен как можно быстрее ввести /code
      - Система новых худов, спидометров, радаров
      - Система просмотра оффлайн статистики с 0, /checkoff
      - Новая надпись "Welcome"
      - Описания для домов и бизов
      - Система БумБокса
      - Все новые интерьеры во фракциях
      - Исправлено большое количество багов
    • saasha
      By saasha
      Всем привет! У меня проблема в том, что ответ от админа не доходит до игрока. 
      Когда игрок пишет в репорт, то на панельке появляется ID диалога, админ вводит /ans и ID репорта. Открывается диалоговое окно:
      Админ вводит ответ,но игрок не получает его
      Полный код: