Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 4 из 4
  1. #1
    Аватар для den4is01
    Пользователь

    Статус
    Оффлайн
    Регистрация
    16.02.2015
    Сообщений
    8
    Репутация:
    0 ±

    Помощь с командой

    Здравствуйте пользователи pro-pawn.ru.Столкнулся с такой проблемой.При вводе /paper ничего не происходит , при вводе /paper write выводит сообщение Введите:{FFFFFF} /paper write [papernr]. Если ввожу номер газеты то всё равно выводит сообщение Введите:{FFFFFF} /paper write [papernr].
    http://pastebin.com/rUFrw4Qb

  2. #2
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Не знаю, скорее всего вот так:
    PHP код:
    CMD:paper(playeridparams[])
    {
        if(!
    IsPlayerConnected(playerid)) return true;
        if(
    PlayerInfo[playerid][pMember] != 9)
            return 
    SendClientMessage(playeridGR"Вы не Репортер!");
        if(!
    IsPlayerInRangeOfPoint(playerid,3.0,2164.4080,1600.1506,999.9773))
            return 
    SendClientMessage(playeridCOLOR_GREY"Вы не в Здания Редакции Новостей !");
        new
            
    type_paper[50],
            
    value_news;
        if(
    sscanf(params"sd"type_papervalue_news))
            return 
    SendClientMessage(playeridCOLOR_GRAYWHITE"Введите:{FFFFFF} /paper write [papernr] or /paper delete [papernr]");
        if(
    strcmp(type_paper"write"true) == 0)
        {
            if(
    value_news || value_news 10)
                return 
    SendClientMessage(playeridCOLOR_GREY"Номер Газеты может быть от 1 до 10 !");
            
    value_news -= 1;
            if(
    PaperInfo[value_news][PaperUsed] == 1)
                return 
    SendClientMessage(playeridCOLOR_GREY"С этим номером есть уже Газета !");
            
    SendClientMessage(playeridCOLOR_LIGHTBLUE"Вы принялись за создание новой Газеты. Все, что Вы печатаете теперь, будет добавлено в Газету, Вы имеете 11 строк в наличии.");
            
    SendClientMessage(playeridCOLOR_RED"Длина строки должна не превышать 70 символов, т.е. не больше чем область для ввода строки !");
            
    SendClientMessage(playeridCOLOR_PINK"Пожалуйста придумайте Название вашей Газеты длиной не более 32 символа !");
            
    WritingPaper[playerid] = 1;//подняли флаг, чтобы писать газету
            
    WritingLine[playerid] = 1;//флаг для название для вашей газеты
            
    WritingPaperNumber[playerid] = value_news;//номер газеты т.е. строка массива куда будем всё писать
        
    }
        else if(
    strcmp(type_paper"delete"true) == 0)
        {
            if(
    PlayerInfo[playerid][pRank] < 8)
                return 
    SendClientMessage(playeridCOLOR_GREY"Вы должны иметь Ранг 8, чтобы Удалять Газеты !");
            if(
    type_paper || type_paper 10)
                return 
    SendClientMessage(playeridCOLOR_GREY"Номер Газеты может быть от 1 до 10 !");
            
    type_paper -= 1;
            
    ClearPaper(type_paper);
            new
                
    number type_paper,
                
    string_paper[22];

            
    number += 1;

            
    format(string_papersizeof(string_paper), "   Bы удалили Газету %d.",number);
            
    SendClientMessage(playeridCOLOR_YELLOWstring_paper);
        }
        else if(
    strcmp(type_paper"write"true) != || strcmp(type_paper"delete"true) != 0)
            return 
    SendClientMessage(playeridCOLOR_GRAYWHITE"Введите:{FFFFFF} /paper write [papernr] or /paper delete [papernr]");
        return 
    true;


  3. #3
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Вся проблема в том, что если в sscanf указать спецификатор "s", считана будет вся строка, в т.ч. и содержимое после пробела. На следующий спецификатор ("d") ничего не останется и считывание в любом случае будет неудачным.
    Если нужно считать строковое значение до первого пробела, спецификатор "s" следует отделять пробелом от следующего спецификатора (например, "s d").
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

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

    Статус
    Оффлайн
    Регистрация
    16.02.2015
    Сообщений
    8
    Репутация:
    0 ±
    Спасибо большое, помогло!

 

 

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

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

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

Ваши права

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