Гость

/ptp (player to player)

В теме 5 сообщений

Суть команды: вы можете телепортировать одного игрока к другому (включая виртуальный мир и интерьер).

CMD:ptp(playerid, params[])
{
    // Сюда суйте свои проверки на админки и т.д
    new player1, player2;
    if(sscanf(params, "ii", player1, player2)) return SendClientMessage(playerid, -1, "Используйте: /ptp [id] [to id]");
    if(!IsPlayerConnected(player1) || !IsPlayerConnected(player2)) return SendClientMessage(playerid, -1, "Один из указанных игроков не подключен");

    static const
        player1_message[] = "Администратор %s[%d] телепортировал к Вам игрока %s[%d]",
        player2_message[] = "Администратор %s[%d] телепортировал Вас к игроку %s[%d]",
        admin_message[] = "Вы телепортировали %s[%d] к %s[%d]";

    const
        p1_msg_size = sizeof(player1_message) + (-2+MAX_PLAYER_NAME)*2 + (-2+5)*2,
        p2_msg_size = sizeof(player2_message) + (-2+MAX_PLAYER_NAME)*2 + (-2+5)*2,
        a_msg_size = sizeof(admin_message) + (-2+MAX_PLAYER_NAME)*2 + (-2+5)*2;
        
    #if p1_msg_size > p2_msg_size && p1_msg_size > a_msg_size
        #define size p1_msg_size
        
    #elseif p2_msg_size > p1_msg_size && p2_msg_size > a_msg_size
        #define size p2_msg_size
        
    #else
        const size = a_msg_size;
        
    #endif
    
    new buffer[size];


    new
        playerid_name[MAX_PLAYER_NAME],
        player1_name[MAX_PLAYER_NAME],
        player2_name[MAX_PLAYER_NAME];

    GetPlayerName(playerid, playerid_name, sizeof(playerid_name));
    GetPlayerName(player1, player1_name, sizeof(player1_name));
    GetPlayerName(player2, player2_name, sizeof(player2_name));

    new
        Float:pos_x,
        Float:pos_y,
        Float:pos_z,
        player2_world = GetPlayerVirtualWorld(player2),
        player2_interior = GetPlayerInterior(player2);

    GetPlayerPos(player2, pos_x, pos_y, pos_z);

    SetPlayerVirtualWorld(player1, player2_world);
    SetPlayerInterior(player1, player2_interior);
    SetPlayerPos(player1, pos_x, pos_y, pos_z);

    format(buffer, sizeof(buffer), player1_message, playerid_name, playerid, player1_name, player1);
    SendClientMessage(player2, -1, buffer);
    format(buffer, sizeof(buffer), player2_message, playerid_name, playerid, player2_name, player2);
    SendClientMessage(player1, -1, buffer);
    format(buffer, sizeof(buffer), admin_message, player1_name, player1, player2_name, player2);
    SendClientMessage(playerid, -1, buffer);
    return 1;
}  

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прикольно)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

C:\Users\МЭЛТ\Downloads\arizonasliv\arizonasliv\gamemodes\arizonarp.pwn(66683) : error 036: empty statement

что делать?

 

Заметка от keyl , создано

Как минимум приложить кусочек кода в котором возникла данная ошибка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за идею

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • djxxx
      От djxxx
      приветствую всех.
       
      Задался таким вопросом при добавлении одной системы на DIALOG_STYLE_TABLIST_HEADERS.
       
      Суть проблемы в том, что диалог не выравнивается под нужные показатели, а просто как будто находиться по середине, в диалоге используется \t, но они особо не помогают в решении, также не ровно.
       
      а если попытаться выравнивать большим количеством \t, оно компилируется но в игре происходят вылеты
       
      Код такой:
      DialogAdmShop ( playerid, DIALOG_EPOINTSHOP, DIALOG_STYLE_TABLIST_HEADERS, fmt_str, ""BR"номер\t"BR"наименование\t"BR"доступное действие\n"\ "{EB4C42}#1\t{FFFFFF}Виртуальная валюта\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#2\t{FFFFFF}Донат валюта\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#3\t{FFFFFF}Вип статусы\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#4\t{FFFFFF}Кейсы\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#5\t{FFFFFF}Уникальные аксессуары\t{888888}нажмите для взаимодействия", "Выбрать", "Закрыть" ); }  
      сток dialogadmshop:
      stock DialogAdmShop(playerid, dialogid, style, title[], text[], button[], button2[]) {   if(style == 5)   {      ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "...", "...", "...", "");    }   ShowPlayerDialog(playerid, dialogid, style, title, text, button, button2);   return 1; }  
    • Dev_Persona
      От Dev_Persona
      Приветствую всех, у меня возник такой вопрос:
       
      - хочу изменить базовую регистрацию в админке в крмп, на Болле сложную то-есть, сейчас изначально пароль от админки может быть только из цифр, хотелось бы узнать как можно было бы сделать что бы можно было использовать и цифры и буквы, вот код:
       
      case DIALOG_ADMIN_REG:
         {
          if(!response) return FixKick(playerid);
       
          if(strval(inputtext) < 100000 || strval(inputtext) > 999999) return ShowPlayerDialog(playerid, DIALOG_ADMIN_REG, DIALOG_STYLE_INPUT, "{FF6347}"PROJECT_NAME" {ffffff}| Придумайте пароль", "{FFFFFF}Для того, чтобы продолжить дальше - придумайте и введите\n{FFFFFF}пароль от панели администратора в диалоговое поле ниже.\n\n{FFFFFF}Пароль должен быть из 6 цифр.\n", "Готово", "");
                   SetPlayerData(playerid, P_APASS, strval(inputtext));
       
                   UpdatePlayerDatabaseInt(playerid, "AdminPassword", GetPlayerData(playerid, P_APASS));
       
                   AdminAuthorization(playerid);
         }