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

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

    Не правильно возвращает значение

    Здравствуйте. Есть диалог,

    Код:
    case 815:
    	   {
              if(!response) return true;
              new targetid;
    		  if(sscanf(inputtext, "u",targetid)) return ShowPlayerDialog(playerid, 815, DIALOG_STYLE_INPUT, " ", "{CED0BD}Введите ниже ID игрока, которого желаете сделать"Выбрать", "Закрыть");
    		  InvalidTest(playerid, targetid);
    		  strmid(test,GetName(targetid), 0, strlen(GetName(targetid)), MAX_PLAYER_NAME);
                      SendClientMessage(playerid,-1.!"test");
    		}

    Код:
    stock InvalidTest(playerid, id)
    {
              if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY,"вы указали свой id");
              return false;
    }
    Вопрос таков, почему после проверки InvalidTest(playerid, id), мне пишется в чате " Test " ? Хотя проверка остановлена уже.

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

    Статус
    Оффлайн
    Регистрация
    13.06.2016
    Адрес
    Одесса, Украина
    Сообщений
    281
    Репутация:
    51 ±
    Потому что твоя функция InvalidTest - возвращает значение false вникуда. Хотя бы в условие бы ее запихал
    И даже больше скажу - у тебя даже после сообщения о том что игрок ввел свой id - все равно дальше выполнятся все ниженаписанные действия.
    Лучше лишний раз показаться глупым и что то узнать, чем вы*бнуться и обосраться.

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

    Статус
    Оффлайн
    Регистрация
    24.04.2017
    Сообщений
    133
    Репутация:
    0 ±
    Кодом как исправить?

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

    Статус
    Оффлайн
    Регистрация
    22.09.2017
    Сообщений
    20
    Репутация:
    0 ±
    Цитата Сообщение от Killer Посмотреть сообщение
    Кодом как исправить?
    Мне интересно, почему у вас
    PHP код:
    SendClientMessage(playerid,-1.!"test"); 
    -1.

    PHP код:
    case 815:
           {
                  if(!
    response) return true;
                  new 
    targetid;
                  if(
    sscanf(inputtext"u",targetid)) return ShowPlayerDialog(playerid815DIALOG_STYLE_INPUT" ""{CED0BD}Введите ниже ID игрока, которого желаете сделать""Выбрать""Закрыть");
                  
    InvalidTest(playeridtargetid);
                  
    strmid(test,GetName(targetid), 0strlen(GetName(targetid)), MAX_PLAYER_NAME);
                  
    SendClientMessage(playerid,-1,!"test");
            } 
    Замените, как это дело вообще у вас ещё и компилируется

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

    Статус
    Оффлайн
    Регистрация
    24.04.2017
    Сообщений
    133
    Репутация:
    0 ±
    Это я поторопился, когда исправлял, все отлично у меня компилируется.
    Вопрос совсем в другом

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

    Статус
    Оффлайн
    Регистрация
    15.08.2015
    Сообщений
    106
    Репутация:
    8 ±
    PHP код:
    if(InvalidTest(playeridtargetid)) return 1

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

    Статус
    Оффлайн
    Регистрация
    24.04.2017
    Сообщений
    133
    Репутация:
    0 ±
    Не работает данный вариант.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    PHP код:
    case 815:
    {
        if(!
    response
            return 
    1;

        new 
    targetid;
        if(
    sscanf(inputtext"u",targetid)) 
            return 
    ShowPlayerDialog(playerid815DIALOG_STYLE_INPUT" ""{CED0BD}Введите ниже ID игрока, которого желаете сделать""Выбрать""Закрыть");
        if(!
    InvalidTest(playeridtargetid))
            return 
    1;
        
    strmid(testGetName(targetid), 0MAX_PLAYER_NAMEMAX_PLAYER_NAME);
        
    SendClientMessage(playerid, -1, !"test");
        return 
    1;

    PHP код:
    stock InvalidTest(playeridid)
    {
        if(
    id == INVALID_PLAYER_ID
            return 
    SendClientMessage(playeridCOLOR_GREY,"Указанный игрок не найден на сервере"), 0;
        else if(
    playerid == id
            return 
    SendClientMessage(playeridCOLOR_GREY,"Вы указали свой ID"), 0;
        return 
    1;

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

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

    Steve Pavlina

 

 

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

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

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

Ваши права

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