Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 10 из 10

Тема: /virtmir (DC_CMD)

  1. #1
    Аватар для Alanchick
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.01.2016
    Сообщений
    15
    Репутация:
    9 ±

    /virtmir (DC_CMD)

    Доброго времени суток, Уважаемые пользователи Pro-Pawn.Ru!
    Команда /virtmir предназначена для изменения виртуального мира указанному игроку на указанный мир.
    Без особых предисловий, перейдем к коду:

    Ко всем #define
    PHP код:
    #define SCM SendClientMessage 
    В public OnPlayerConnect
    PHP код:
    SetPVarInt(playerid"Logged"0); 
    В public OnPlayerSpawn
    PHP код:
    SetPVarInt(playerid"Logged"1); 
    Сама команда:
    PHP код:
    CMD:virtmir(playeridparams[])
    {
        new
            
    player,
            
    mir;

        if(
    GetPVarInt(playerid"Logged") == 0)
            return 
    true;   // Проверка на авторизацию

        
    if(PlayerInfo[playerid][pAdmin] < 3)
            return 
    true;  // Проверка на админ-уровень (с 3 админ-уровня)

        
    if(sscanf(params"dd"playermir))
            return 
    SCM(playerid, -1"Введите: /virtmir [ID игрока] [вирт. мир]"); // Если администратор не ввел какое либо из значений

        
    if(GetPVarInt(id"Logged") == 0)
            return 
    SCM(playerid, -1"Игрок не авторизован!"); // Если игрок, id которого ввели, не авторизован

        
    SetPlayerVirtualWorld(playermir); // присвоение указанного вирт. мира указанному игроку

        
    static const
                
    msg[] = "Администратор %s изменил ваш виртуальный мир на %d.",
               
    msg1[] = "Вы изменили вирт. мир игроку %s на %d.";

        new 
    fmt_msg[sizeof(msg) - MAX_PLAYER_NAME 2];

        
    format(fmt_msgsizeof(fmt_msg), msgPlayerInfo[playerid][pName], mir);
        
    SCM(player, -1fmt_msg); // Собщение игроку

        
    format(fmt_msgsizeof(fmt_msg), msg1PlayerInfo[player][pName], mir);
        
    SCM(playerid, -1fmt_msg); // сообщение администратору
        
    return 1;

    Жду адекватной критики.
    Автор: Alanchick
    За помощь спасибо: Untonyst
    Последний раз редактировалось Alanchick; 07.01.2016 в 18:00.
    Команды:
    [CMD]/byplayer
    [CMD] /virtmir
    [CMD] /hp
    Функции:
    [FUNCTION] SetPlayerTimeSkin

    Код:
    Хочешь спрятать дерево — спрячь его в лесу // Конан Дойл, «Записки о Шерлоке Холмсе»

  2. Пользователь сказал cпасибо:
    #enotik (06.01.2016)
  3. #2
    Аватар для #enotik
    Пользователь

    Статус
    Оффлайн
    Регистрация
    16.11.2015
    Сообщений
    8
    Репутация:
    0 ±
    Как же много всего..
    Попроще бы сделал..
    Весь-весь-весь приличный люд, превратился в сброд, не-не-не унять народ, здравствуй Новый Год.

  4. #3
    Аватар для InCorrect
    Пользователь

    Статус
    Оффлайн
    Регистрация
    30.12.2015
    Сообщений
    24
    Репутация:
    2 ±
      Открыть/закрыть
    Цитата Сообщение от Alanchick Посмотреть сообщение
    Доброго времени суток, Уважаемые пользователи Pro-Pawn.Ru!
    Команда /virtmir предназначена для изменения виртуального мира указанному игроку на указанный мир.
    Без особых предисловий, перейдем к коду:

    Ко всем #define
    PHP код:
    #define SCM SendClientMessage 
    В public OnPlayerConnect
    PHP код:
    SetPVarInt(playerid"Logged"0); 
    В public OnPlayerSpawn
    PHP код:
    SetPVarInt(playerid"Logged"1); 
    Сама команда:
    PHP код:
    CMD:virtmir(playeridparams[])
    {
        static const 
    msg[] = "Администратор %s изменил ваш виртуальный мир на %d.",
                     
    msg1[] = "Вы изменили вирт. мир игроку %s на %d.";
        new 
    player,
            
    mir,
            
    fmt_msg[sizeof(msg) - MAX_PLAYER_NAME 2],
            
    fmt_msg1[sizeof(msg1) - MAX_PLAYER_NAME 2];

        if(
    GetPVarInt(playerid"Logged") == 0) return true;   // Проверка на авторизацию
        
    if(PlayerInfo[playerid][pAdmin] < 3) return true;  // Проверка на админ-уровень (с 5 админ-уровня)
        
    if(sscanf(params"dd"playermir)) return
            
    SCM(playerid, -1"Введите: /virtmir [ID игрока] [вирт. мир]"); // Если администратор не ввел какое либо из значений
        
    if(GetPVarInt(id"Logged") == 0) return
            
    SCM(playerid, -1"Игрок не авторизован!"); // Если игрок, id которого ввели, не авторизован
        
    SetPlayerVirtualWorld(playermir); // присвоение указанного вирт. мира указанному игроку
        
        
    format(fmt_msgsizeof(fmt_msg), msgPlayerInfo[playerid][pName], mir);
        
    SCM(player, -1fmt_msg); // Собщение игроку
        
        
    format(fmt_msg1sizeof(fmt_msg1), msg1PlayerInfo[player][pName], mir);
        
    SCM(playerid, -1fmt_msg1); // сообщение администратору
        
    return 1;

    Жду адекватной критики.
    Автор: Alanchick
    За помощь спасибо: Untonyst

    Зачем объявлять статические константы в самом начале?Ведь при не совпадение одного из условий они во все не понадобятся.

    PHP код:
    if(PlayerInfo[playerid][pAdmin] < 3) return true
    // Проверка на админ-уровень (с 5 админ-уровня)
    Ничего странного не замечаете?
    Последний раз редактировалось Osetin; 07.01.2016 в 04:21. Причина: Засунул цитату под спойлер.

  5. #4
    Аватар для #enotik
    Пользователь

    Статус
    Оффлайн
    Регистрация
    16.11.2015
    Сообщений
    8
    Репутация:
    0 ±
    Цитата Сообщение от InCorrect Посмотреть сообщение
    Зачем объявлять статические константы в самом начале?Ведь при не совпадение одного из условий они во все не понадобятся.

    PHP код:
    if(PlayerInfo[playerid][pAdmin] < 3) return true
    // Проверка на админ-уровень (с 5 админ-уровня)
    Ничего странного не замечаете?
    Ну ошибся человек в тексте, хотел не с пятого а с четвертого уровня
    Весь-весь-весь приличный люд, превратился в сброд, не-не-не унять народ, здравствуй Новый Год.

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

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

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

    Статус
    Оффлайн
    Регистрация
    05.01.2016
    Сообщений
    15
    Репутация:
    9 ±
    Цитата Сообщение от InCorrect Посмотреть сообщение
    Зачем объявлять статические константы в самом начале?Ведь при не совпадение одного из условий они во все не понадобятся.
    Перенес.
    Цитата Сообщение от InCorrect Посмотреть сообщение
    PHP код:
    if(PlayerInfo[playerid][pAdmin] < 3) return true
    // Проверка на админ-уровень (с 5 админ-уровня)
    Ничего странного не замечаете?
    Опечатка. Исправил.
    Последний раз редактировалось Alanchick; 06.01.2016 в 19:36.
    Команды:
    [CMD]/byplayer
    [CMD] /virtmir
    [CMD] /hp
    Функции:
    [FUNCTION] SetPlayerTimeSkin

    Код:
    Хочешь спрятать дерево — спрячь его в лесу // Конан Дойл, «Записки о Шерлоке Холмсе»

  8. #7
    Аватар для #enotik
    Пользователь

    Статус
    Оффлайн
    Регистрация
    16.11.2015
    Сообщений
    8
    Репутация:
    0 ±
    Цитата Сообщение от Untonyst Посмотреть сообщение
    Сентябрь горит, перфекционист плачет, автор не мог поступить иначе, логики нееееет
    в чем именно нет логики?
    Весь-весь-весь приличный люд, превратился в сброд, не-не-не унять народ, здравствуй Новый Год.

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

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от #enotik Посмотреть сообщение
    в чем именно нет логики?
    не знал что в песню впихнуть, сейчас немного свой вариант сделаю :)

    ня. фулл улучшение :3

    PHP код:
    CMD:vworld(playeridparams[]) 

        if (!
    IsPlayerAdmin(playerid)) // замените на свой аналог 
            
    return 1;
        
        new 
    targetidvirtual_world;
        if (
    sscanf(params"dd"targetidvirtual_world)) 
            return 
    SendClientMessage(playerid, -1"Введите: /vworld [ID игрока] [вирт. мир]");
        
        if (
    == IsPlayerConnected(targetid)) 
            return 
    SendClientMessage(playerid, -1"Игрок не подключен!");
        
        
    SetPlayerVirtualWorld(targetidvirtual_world);
        
        static const 
            
    msg_1[] = "Администратор %s изменил ваш виртуальный мир на %d."
            
    msg_2[] = "Вы изменили вирт. мир игроку %s на %d."
        
        new 
    fmt_msg[sizeof(msg_1) - MAX_PLAYER_NAME 2];
        
        
    GetPlayerName(targetidfmt_msgsizeof(fmt_msg));
        
    format(fmt_msgsizeof(fmt_msg), msg_1fmt_msgvirtual_world); 
        
    SendClientMessage(targetid, -1fmt_msg); 
        
        
    GetPlayerName(playeridfmt_msgsizeof(fmt_msg));
        
    format(fmt_msgsizeof(fmt_msg), msg_2fmt_msgvirtual_world); 
        
    SendClientMessage(playerid, -1fmt_msg);
        return 
    1

    Последний раз редактировалось Desulaid; 06.01.2016 в 23:29.

  10. #9
    Аватар для #enotik
    Пользователь

    Статус
    Оффлайн
    Регистрация
    16.11.2015
    Сообщений
    8
    Репутация:
    0 ±
    Цитата Сообщение от Untonyst Посмотреть сообщение
    не знал что в песню впихнуть, сейчас немного свой вариант сделаю :)

    ня. фулл улучшение :3

    PHP код:
    CMD:vworld(playeridparams[]) 

        if (!
    IsPlayerAdmin(playerid)) // замените на свой аналог 
            
    return 1;
        
        new 
    targetidvirtual_world;
        if (
    sscanf(params"dd"targetidvirtual_world)) 
            return 
    SendClientMessage(playerid, -1"Введите: /vworld [ID игрока] [вирт. мир]");
        
        if (
    == IsPlayerConnected(targetid)) 
            return 
    SendClientMessage(playerid, -1"Игрок не подключен!");
        
        
    SetPlayerVirtualWorld(targetidvirtual_world);
        
        static const 
            
    msg_1[] = "Администратор %s изменил ваш виртуальный мир на %d."
            
    msg_2[] = "Вы изменили вирт. мир игроку %s на %d."
        
        new 
    fmt_msg[sizeof(msg_1) - MAX_PLAYER_NAME 2];
        
        
    GetPlayerName(targetidfmt_msgsizeof(name));
        
    format(fmt_msgsizeof(fmt_msg), msg_1fmt_msgvirtual_world); 
        
    SendClientMessage(targetid, -1fmt_msg); 
        
        
    GetPlayerName(playeridfmt_msgsizeof(fmt_msg));
        
    format(fmt_msgsizeof(fmt_msg), msg_2fmt_msgvirtual_world); 
        
    SendClientMessage(playerid, -1fmt_msg);
        return 
    1

    особо разницы не заметил..
    Только что пвары не юзаются, да и код немного по другому построен.
    Весь-весь-весь приличный люд, превратился в сброд, не-не-не унять народ, здравствуй Новый Год.

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

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от #enotik Посмотреть сообщение
    особо разницы не заметил..
    Только что пвары не юзаются, да и код немного по другому построен.
    Сейчас они очень похожи, потому что с автором мы в личной переписке поболтали. Но свои "плюхи" он оставил.

 

 

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

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

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

Ваши права

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