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

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 6 из 6
  1. #1
    Аватар для stimorol
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.08.2015
    Сообщений
    55
    Репутация:
    1 ±

    Перевод команды

    Всем привет.

    Помогите пожалуйста перевести команду на командный процессор DC_CMD:
      Открыть/закрыть

    Код:
    if(strcmp(cmd, "/ban", true) == 0)
    {
           tmp = strtok(cmdtext, idx);
           if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]");
           giveplayerid = strval(tmp);
           tmp = strtok(cmdtext, idx);
           if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]");
           new type = strval(tmp);
           tmp = strtok(cmdtext, idx);
           if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]");
           new chislo = strval(tmp);
           if(PlayerInfo[playerid][pAdmin] >= 4)
           {
                  if(giveplayerid != INVALID_PLAYER_ID)
                  {
                         new length = strlen(cmdtext);
                         while ((idx < length) && (cmdtext[idx] <= ' ')) idx++;
                         new offset = idx;
                         new result[64];
                         while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                         {
                                result[idx - offset] = cmdtext[idx];
                                idx++;
                         }
                         result[idx - offset] = EOS;
                         if(!strlen(result)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]");
                         new PlayerNick[MAX_PLAYER_NAME], PlayerBan[MAX_PLAYER_NAME];
                         GetPlayerName(playerid, PlayerNick, MAX_PLAYER_NAME);
                         GetPlayerName(giveplayerid, PlayerBan, MAX_PLAYER_NAME);
                         AddBan(giveplayerid, PlayerBan, PlayerNick, type, chislo, result);
                         return true;
                  }//not connected
           }
           return true;
    }

    Именная переменная у меня в моде: pNick(playerid)

    Буду очень благодарен.
    Последний раз редактировалось stimorol; 06.03.2016 в 11:51.

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    м?
    PHP код:
    CMD:ban(playeridparams[])
    {
        if(
    PlayerInfo[playerid][pAdmin] < 4) return 1;
        new 
    giveplayerid,
            
    type,
            
    value,
            
    reason[145];
        if(!
    sscanf(params"iiis[144]"giveplayeridtypevaluereason)) return SendClientMessage(playerid0xFFFFFFFF"USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]");
        if(!
    IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, -1"Игрок не в сети");
        
    AddBan(giveplayeridpNick(giveplayerid), pNick(playerid), typevalueresult);
        return 
    true;

    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    04.08.2015
    Сообщений
    55
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    м?
    PHP код:
    CMD:ban(playeridparams[])
    {
        if(
    PlayerInfo[playerid][pAdmin] < 4) return 1;
        new 
    giveplayerid,
            
    type,
            
    value,
            
    reason[145];
        if(!
    sscanf(params"iiis[144]"giveplayeridtypevaluereason)) return SendClientMessage(playerid0xFFFFFFFF"USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]");
        if(!
    IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, -1"Игрок не в сети");
        
    AddBan(giveplayeridpNick(giveplayerid), pNick(playerid), typevalueresult);
        return 
    true;

    А можно допустим так?
    PHP код:
    CMD:ban(playeridparams[])
    {
        if(
    PlayerInfo[playerid][pAdmin] < 4) return true;
        if(
    sscanf(params"iiis[144]"params[0], params[1], params[2], params[3])) return SendClientMessage(playerid0xFFFFFFFF"USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]");
        if(!
    IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, -1"Игрок не в сети");
        
    AddBan(params[0], pNick(params[0]), pNick(playerid), params[1], params[2], params[3]);
        return 
    true;

    Последний раз редактировалось stimorol; 06.03.2016 в 14:54.

  5. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Цитата Сообщение от stimorol Посмотреть сообщение
    А можно допустим так?
    PHP код:
    CMD:ban(playeridparams[])
    {
        if(
    PlayerInfo[playerid][pAdmin] < 4) return true;
        if(
    sscanf(params"iiis[144]"params[0], params[1], params[2], params[3])) return SendClientMessage(playerid0xFFFFFFFF"USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]");
        if(!
    IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, -1"Игрок не в сети");
        
    AddBan(params[0], pNick(params[0]), pNick(playerid), params[1], params[2], params[3]);
        return 
    true;

    Да, но разве смысл такого кода легче разобрать?
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    04.08.2015
    Сообщений
    55
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Да, но разве смысл такого кода легче разобрать?
    Команду, которую скинули Вы, для меня тоже понятна. Но я привык использовать params, для меня это более удобно.
    Последний раз редактировалось stimorol; 06.03.2016 в 16:03.

  7. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 

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

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

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

Ваши права

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