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

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

    Проблемма с диалогом

    Помогите пожалуйста у меня вот такая проблемма у меня имеется воспроизведение радиостанций для всех игроков посредством потоковой ссылки хочу переделать на диалог чтобы постоянно не вводить ссылки а просто их сразу прописать но когда начинаю создавать case 0: case 1:
    и так далее у меня сразу вылетает ошибка на case 0:


    вот команда для включения
    PHP код:
    CMD:amusic(playeridparams[])
    {
        if(!
    PlayerLogged[playerid]) return true;
        if(
    PlayerInfo[playerid][pAdmin] < || AdminLogged[playerid] == false) return true;
        
    ShowPlayerDialog(playerid2631DIALOG_STYLE_INPUT"{FFCD00}Музыка""{FFFFFF}Функция позволяет включать музыку всем игрокам\nВведите URL аудиофайла или потока""Принять""Отмена");
        return 
    true;


    и сам диалог

    PHP код:
        case 2631:
            {
                if(
    response)
                {
                    foreach(
    Playeri)
                    {
                    case 
    0:PlayAudioStreamForPlayer(i,"http://s0.radioheart.ru:8000/rostov");
                                    case 
    1:PlayAudioStreamForPlayer(i,"http://s0.radioheart.ru:8000/rostov");
                                    case 
    2:PlayAudioStreamForPlayer(i,"http://s0.radioheart.ru:8000/rostov");
                                    case 
    3:PlayAudioStreamForPlayer(i,"http://s0.radioheart.ru:8000/rostov");
                    }
                }
            } 

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

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±
    Без сто грамм не разберёшь, что ты пытаешься сделать. Я так понял, ты хочешь не вводить в поле ссылку, а сразу воспроизводить из списка.
    1. new
    2. const LIST_OF_RADIO_STATIONS[][] =
    3. {
    4. "http://s0.radioheart.ru:8000/rostov",
    5. "http://s0.radioheart.ru:8000/rostov",
    6. "http://s0.radioheart.ru:8000/rostov",
    7. "http://s0.radioheart.ru:8000/rostov"
    8. //etc
    9. };
    10.  
    11. CMD:amusic(playerid)
    12. {
    13. if (!PlayerLogged[playerid] || PlayerInfo[playerid][pAdmin] < 6 || AdminLogged[playerid] == false)
    14. return true;
    15.  
    16. static
    17. string[sizeof(LIST_OF_RADIO_STATIONS)*sizeof(LIST_OF_RADIO_STATIONS[])];
    18. string[0] = '\0';
    19. for (new i = 0; i < sizeof(LIST_OF_RADIO_STATIONS); i++)
    20. {
    21. strcat(string, LIST_OF_RADIO_STATIONS[i]);
    22. strcat(string, "\n");
    23. }
    24.  
    25. playerid,
    26. 2631,
    27. DIALOG_STYLE_LIST,
    28. !"{FFCD00}Музыка",
    29. string,
    30. !"Принять", !"Отмена");
    31. }
    32.  
    33. case 2631:
    34. {
    35. if (!response)
    36. return 1;
    37.  
    38. foreach(new i : Player)
    39. {
    40. PlayAudioStreamForPlayer(i, LIST_OF_RADIO_STATIONS[listitem]);
    41. }
    42. }
    Последний раз редактировалось execution; 12.09.2019 в 21:02.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от execution Посмотреть сообщение
    Без сто грамм не разберёшь, что ты пытаешься сделать. Я так понял, ты хочешь не вводить в поле ссылку, а сразу воспроизводить из списка.
    1. new
    2. const LIST_OF_RADIO_STATIONS[][] =
    3. {
    4. "http://s0.radioheart.ru:8000/rostov",
    5. "http://s0.radioheart.ru:8000/rostov",
    6. "http://s0.radioheart.ru:8000/rostov",
    7. "http://s0.radioheart.ru:8000/rostov"
    8. //etc
    9. };
    10.  
    11. CMD:amusic(playerid)
    12. {
    13. if (!PlayerLogged[playerid] || PlayerInfo[playerid][pAdmin] < 6 || AdminLogged[playerid] == false)
    14. return true;
    15.  
    16. static
    17. string[sizeof(LIST_OF_RADIO_STATIONS)*sizeof(LIST_OF_RADIO_STATIONS[])];
    18. string[0] = '\0';
    19. for (new i = 0; i < sizeof(LIST_OF_RADIO_STATIONS); i++)
    20. {
    21. strcat(string, LIST_OF_RADIO_STATIONS[i]);
    22. strcat(string, "\n");
    23. }
    24.  
    25. playerid,
    26. 2631,
    27. DIALOG_STYLE_LIST,
    28. !"{FFCD00}Музыка",
    29. string,
    30. !"Принять", !"Отмена");
    31. }
    32.  
    33. case 2631:
    34. {
    35. if (!response)
    36. return 1;
    37.  
    38. foreach(new i : Player)
    39. {
    40. PlayAudioStreamForPlayer(i, LIST_OF_RADIO_STATIONS[i]);
    41. }
    42. }
    Только, наверное, не
    1. PlayAudioStreamForPlayer(i, LIST_OF_RADIO_STATIONS[i]);

    а
    1. PlayAudioStreamForPlayer(i, LIST_OF_RADIO_STATIONS[listitem]);
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  4. Пользователь сказал cпасибо:
    execution (12.09.2019)
  5. #4
    Аватар для Andrik851
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.10.2018
    Сообщений
    199
    Репутация:
    1 ±
    Цитата Сообщение от execution Посмотреть сообщение
    Без сто грамм не разберёшь, что ты пытаешься сделать. Я так понял, ты хочешь не вводить в поле ссылку, а сразу воспроизводить из списка.
    1. new
    2. const LIST_OF_RADIO_STATIONS[][] =
    3. {
    4. "http://s0.radioheart.ru:8000/rostov",
    5. "http://s0.radioheart.ru:8000/rostov",
    6. "http://s0.radioheart.ru:8000/rostov",
    7. "http://s0.radioheart.ru:8000/rostov"
    8. //etc
    9. };
    10.  
    11. CMD:amusic(playerid)
    12. {
    13. if (!PlayerLogged[playerid] || PlayerInfo[playerid][pAdmin] < 6 || AdminLogged[playerid] == false)
    14. return true;
    15.  
    16. static
    17. string[sizeof(LIST_OF_RADIO_STATIONS)*sizeof(LIST_OF_RADIO_STATIONS[])];
    18. string[0] = '\0';
    19. for (new i = 0; i < sizeof(LIST_OF_RADIO_STATIONS); i++)
    20. {
    21. strcat(string, LIST_OF_RADIO_STATIONS[i]);
    22. strcat(string, "\n");
    23. }
    24.  
    25. playerid,
    26. 2631,
    27. DIALOG_STYLE_LIST,
    28. !"{FFCD00}Музыка",
    29. string,
    30. !"Принять", !"Отмена");
    31. }
    32.  
    33. case 2631:
    34. {
    35. if (!response)
    36. return 1;
    37.  
    38. foreach(new i : Player)
    39. {
    40. PlayAudioStreamForPlayer(i, LIST_OF_RADIO_STATIONS[listitem]);
    41. }
    42. }
    спасибо ща протестим

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

    Статус
    Оффлайн
    Регистрация
    03.10.2018
    Сообщений
    199
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Только, наверное, не
    1. PlayAudioStreamForPlayer(i, LIST_OF_RADIO_STATIONS[i]);

    а
    1. PlayAudioStreamForPlayer(i, LIST_OF_RADIO_STATIONS[listitem]);
    с этими ссылками которые сейчас работает нормально а вот попытался ссылки изменить выдпло кучу ошибок и все они в 2 строках команды

    ошибки
    PHP код:
    D:\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39830) : warning 224indeterminate array size in "sizeof" expression (symbol "")
    D:\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39830) : error 009invalid array size (negativezero or out of bounds)
    D:\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39830) : warning 217loose indentation
    D
    :\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39830) : error 036: empty statement
    D
    :\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39831) : warning 217loose indentation
    D
    :\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39831) : error 017undefined symbol "string"
    D:\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39831) : warning 215expression has no effect
    D
    :\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39831) : error 001expected token";"but found "]"
    D:\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39831) : error 029invalid expressionassumed zero
    D
    :\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39831) : fatal error 107too many error messages on one line

    Compilation aborted
    .

    Pawn compiler 3.10.8              Copyright (c1997-2006ITB CompuPhase


    6 Errors


    команда с ошибками
    PHP код:
    CMD:amusic(playerid)
    {
        if (!
    PlayerLogged[playerid] || PlayerInfo[playerid][pAdmin] < || AdminLogged[playerid] == false)
            return 
    true;

        static
            
    string[sizeof(LIST_OF_RADIO_STATIONS)*sizeof(LIST_OF_RADIO_STATIONS[])];// ошибка
        
    string[0] = '\0';// ошибка
        
    for (new 0sizeof(LIST_OF_RADIO_STATIONS); i++)
        {
            
    strcat(stringLIST_OF_RADIO_STATIONS[i]);
            
    strcat(string"\n");
        }

        return 
    ShowPlayerDialog(playerid2631DIALOG_STYLE_LIST, !"{FFCD00}Музыка"string, !"Принять", !"Отмена");

    - - - Добавлено - - -

    Цитата Сообщение от Andrik851 Посмотреть сообщение
    с этими ссылками которые сейчас работает нормально а вот попытался ссылки изменить выдпло кучу ошибок и все они в 2 строках команды

    ошибки
    PHP код:
    D:\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39830) : warning 224indeterminate array size in "sizeof" expression (symbol "")
    D:\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39830) : error 009invalid array size (negativezero or out of bounds)
    D:\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39830) : warning 217loose indentation
    D
    :\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39830) : error 036: empty statement
    D
    :\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39831) : warning 217loose indentation
    D
    :\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39831) : error 017undefined symbol "string"
    D:\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39831) : warning 215expression has no effect
    D
    :\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39831) : error 001expected token";"but found "]"
    D:\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39831) : error 029invalid expressionassumed zero
    D
    :\ÌÎÉ ÑÅÐÂÅÐ\ëîêàëüíûé ñåðâåð\gamemodes\mrpv1.pwn(39831) : fatal error 107too many error messages on one line

    Compilation aborted
    .

    Pawn compiler 3.10.8              Copyright (c1997-2006ITB CompuPhase


    6 Errors


    команда с ошибками
    PHP код:
    CMD:amusic(playerid)
    {
        if (!
    PlayerLogged[playerid] || PlayerInfo[playerid][pAdmin] < || AdminLogged[playerid] == false)
            return 
    true;

        static
            
    string[sizeof(LIST_OF_RADIO_STATIONS)*sizeof(LIST_OF_RADIO_STATIONS[])];// ошибка
        
    string[0] = '\0';// ошибка
        
    for (new 0sizeof(LIST_OF_RADIO_STATIONS); i++)
        {
            
    strcat(stringLIST_OF_RADIO_STATIONS[i]);
            
    strcat(string"\n");
        }

        return 
    ShowPlayerDialog(playerid2631DIALOG_STYLE_LIST, !"{FFCD00}Музыка"string, !"Принять", !"Отмена");

    да и еще как прописать название радиостанций а то светятся в диалоге одни ссылки а где какая не понятно

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    1. #define MAX_RADIO_STATION_NAME 9
    2. #define MAX_RADIO_URL 36
    3. enum e_RADIO_STATION_LIST
    4. {
    5. rsStationName[MAX_RADIO_STATION_NAME],
    6. rsUrl[MAX_RADIO_URL]
    7. };
    8. new const RadioStationList[][e_RADIO_STATION_LIST] =
    9. {
    10. {"Название", "http://s0.radioheart.ru:8000/rostov"},
    11. {"Название", "http://s0.radioheart.ru:8000/rostov"},
    12. {"Название", "http://s0.radioheart.ru:8000/rostov"},
    13. {"Название", "http://s0.radioheart.ru:8000/rostov"}
    14. };
    15.  
    16. CMD:amusic(playerid)
    17. {
    18. if (!PlayerLogged[playerid] || PlayerInfo[playerid][pAdmin] < 6 || AdminLogged[playerid] == false)
    19. return true;
    20.  
    21. new string[(MAX_RADIO_STATION_NAME+1)*sizeof(RadioStationList)];
    22. for (new i = 0; i < sizeof(RadioStationList); i++)
    23. {
    24. strcat(string, RadioStationList[i][rsStationName]);
    25. strcat(string, "\n");
    26. }
    27.  
    28. ShowPlayerDialog(playerid, 2631, DIALOG_STYLE_LIST, "{FFCD00}Музыка", string, "Принять", "Отмена");
    29. return 1;
    30. }
    31.  
    32. case 2631:
    33. {
    34. if (!response)
    35. return 1;
    36.  
    37. foreach(new i : Player)
    38. {
    39. PlayAudioStreamForPlayer(i, RadioStationList[listitem][rsUrl]);
    40. }
    41. return 1;
    42. }
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    03.10.2018
    Сообщений
    199
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    1. #define MAX_RADIO_STATION_NAME 9
    2. #define MAX_RADIO_URL 36
    3. enum e_RADIO_STATION_LIST
    4. {
    5. rsStationName[MAX_RADIO_STATION_NAME],
    6. rsUrl[MAX_RADIO_URL]
    7. };
    8. new const RadioStationList[][e_RADIO_STATION_LIST] =
    9. {
    10. {"Название", "http://s0.radioheart.ru:8000/rostov"},
    11. {"Название", "http://s0.radioheart.ru:8000/rostov"},
    12. {"Название", "http://s0.radioheart.ru:8000/rostov"},
    13. {"Название", "http://s0.radioheart.ru:8000/rostov"}
    14. };
    15.  
    16. CMD:amusic(playerid)
    17. {
    18. if (!PlayerLogged[playerid] || PlayerInfo[playerid][pAdmin] < 6 || AdminLogged[playerid] == false)
    19. return true;
    20.  
    21. new string[(MAX_RADIO_STATION_NAME+1)*sizeof(RadioStationList)];
    22. for (new i = 0; i < sizeof(RadioStationList); i++)
    23. {
    24. strcat(string, RadioStationList[i][rsStationName]);
    25. strcat(string, "\n");
    26. }
    27.  
    28. ShowPlayerDialog(playerid, 2631, DIALOG_STYLE_LIST, "{FFCD00}Музыка", string, "Принять", "Отмена");
    29. return 1;
    30. }
    31.  
    32. case 2631:
    33. {
    34. if (!response)
    35. return 1;
    36.  
    37. foreach(new i : Player)
    38. {
    39. PlayAudioStreamForPlayer(i, RadioStationList[listitem][rsUrl]);
    40. }
    41. return 1;
    42. }
    выдает ошибку чтото связанное с enum

    PHP код:
    D:\МОЙ СЕРВЕР\локальный сервер\gamemodes\mrpv1.pwn(1163) : warning 228length of initialler exceeds size of the enum field
    D
    :\МОЙ СЕРВЕР\локальный сервер\gamemodes\mrpv1.pwn(1163) : error 018initialization data exceeds declared size
    Pawn compiler 3.10.8              Copyright 
    (c1997-2006ITB CompuPhase


    1 Error

    здесь ошибка
    PHP код:
    new const RadioStationList[][e_RADIO_STATION_LIST] =
    {
        {
    "Радио Rostov""http://s0.radioheart.ru:8000/rostov"},// ошибка
        
    {"Радио Тихий Дон""http://skycast.su:2007/3749"},
        {
    "Радио MIX""http://air.radiorecord.ru:8102/rus_320"},
        {
    "Супер дискотека 90""http://air.radiorecord.ru:8102/sd90_320"}
    }; 

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

    Статус
    Оффлайн
    Регистрация
    22.04.2016
    Адрес
    Украина
    Сообщений
    157
    Репутация:
    35 ±
    Немного увеличь дефайны.

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

    Статус
    Оффлайн
    Регистрация
    03.10.2018
    Сообщений
    199
    Репутация:
    1 ±
    Цитата Сообщение от Pa4enka Посмотреть сообщение
    Немного увеличь дефайны.
    ок ща попробую

 

 

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

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

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

Ваши права

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