Доступ к архиву

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Прыжки с парашюта

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

Pelekan

Начинающий
Пользователь
Регистрация
19 Мар 2013
Сообщения
51
Лучшие ответы
0
Репутация
14
Сегодня сделал такую системку: Прыжки с парашюта!
Начнём:
Ко всем new:
PHP:
new Text3D:parawut;
new samolet[2];
new parajut;
new Sozdan[MAX_PLAYERS]
new Zapusk[MAX_PLAYERS];
new Delete[MAX_PLAYERS];
Создаём команду в public OnPlayerCommandText(playerid, cmdtext[]):

PHP:
if(strcmp(cmdtext, "/samolet", true) == 0)
    {
        new string[256], s[32], z[32], d[32];
          if(Sozdan[playerid] == 0) { s = "{FF0000}Не выполнено{ffffff}"; } else { s = "{00CD00}Выполнено{ffffff}"; }
          if(Zapusk[playerid] == 0) { z = "{FF0000}Не выполнено{ffffff}"; } else { z = "{00CD00}Выполнено{ffffff}"; }
          if(Delete[playerid] == 0) { d = "{FF0000}Не выполнено{ffffff}"; } else { d = "{00CD00}Выполнено{ffffff}"; }
        format(string, sizeof(string), "Создать самолёт [%s]\nЗапустить самолёт [%s]\nУдалить самолёт [%s]",s,z,d);
        ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Меню",string,"Выбрать","Отмена");
        return 1;
    }
Далее создаём функции для диалога в public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]):

PHP:
if(dialogid == 1)
     {
         if(response)
        {
             if(listitem == 0)
            {
                 if(Sozdan[playerid] == 0)
                 {
                      parawut = Create3DTextLabel( "Парашют! :)", 0x7FFF00FF, 2008.8929,-2532.5046,14.0, 40.0, 0 );
                     samolet[0] = CreateObject(14553, 1980.20, -2506.91, 25.82,   0.00, 0.00, 220.00);
                    samolet[1] = CreateObject(14548, 1983.20, -2510.50, 25.50,   0.00, 0.00, 220.00);
                    for(new i=0;i<MAX_PLAYERS;i++)
                    {
                        parajut = 1;
                         SetPlayerCheckpoint(i, 2008.8929,-2532.5046,13.5469, 1.0);
                        SendClientMessage(i, 0xff0000ff,"{ff0000}Внимание: {ffffff}Всех желающих попрыгать с парашюта ждём в {ADD8E6}Аэропорту Los Santos");
                        Sozdan[playerid] = 1;
                        Delete[playerid] = 0;
                    }
                }
                    else
                {
                    SendClientMessage(playerid, 0xff0000ff, "Ошибка: {ffffff}Самолёт уже создан!");
                }
            }
             if(listitem == 1)
             {
                 if(Sozdan[playerid] == 0) return SendClientMessage(playerid, 0xff0000ff, "Ошибка: {ffffff}Самолёт не создан!");
                if(Zapusk[playerid] == 0)
                {
                     MoveObject(samolet[0], -10.251000404358, -264.27801147461, 2000.32, 40);
                    MoveObject(samolet[1], -7.251000404358, -267.86801147461, 2000.0, 40);
                    Zapusk[playerid] = 1;
                    Delete3DTextLabel(Text3D:parawut);
                    for(new i=0;i<MAX_PLAYERS;i++)
                    {
                        DisablePlayerCheckpoint(i);
                    }
                    return 1;
                }
                    else
                {
                    SendClientMessage(playerid, 0xff0000ff, "Ошибка: {ffffff}Самолёт уже в полёте!");
                }
             }
             if(listitem == 2)
             {
                 if(Sozdan[playerid] == 0) return SendClientMessage(playerid, 0xff0000ff, "Ошибка: {ffffff}Самолёт не создан!");
                 if(Delete[playerid] == 0)
                {
                      Delete3DTextLabel(Text3D:id);
                      DestroyObject(samolet[0]);
                    DestroyObject(samolet[1]);
                    for(new i=0;i<MAX_PLAYERS;i++)
                    {
                        DisablePlayerCheckpoint(i);
                    }
                    Delete[playerid] = 1;
                    Zapusk[playerid] = 0;
                    Sozdan[playerid] = 0;
                }
                    else
                {
                    SendClientMessage(playerid, 0xff0000ff, "Ошибка: {ffffff}Самолёт уже удалён!");
                }
            }
                else
            {
              }
          }
    }
И в public OnPlayerEnterCheckpoint(playerid):
PHP:
 if(parajut == 1)
 {
  GivePlayerWeapon(playerid,46,1);
  return 1;
 }
В принципе всё, опять же: над оптимизацией не работал, главное работает, кому надо тот сделает. Может где-то есть лишняя переменная, но вроде всё на месте
Видео:
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу