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

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

    Крашит компилятор.

    Вот собственно код:

    1. new Bar:hunger = CreateProgressBar(548.00, 105.00, 58.50, 3.19, -1933154646, 100.0);
    2. new Bar:thirst = CreateProgressBar(548.00, 116.00, 58.50, 3.20, 2026960298, 100.0);
    3. new Bar:need = CreateProgressBar(548.00, 127.00, 58.50, 3.20, -32598, 100.0);


    Если я объявляю переменные как глобальные и присваиваю функцию CreateProgressBar, у меня перестает как-то реагировать компилятор, не выдает ни ошибок, вообще ничего, получается что-то вот это:



    Самое удивительное то, что если я объявляю переменные в каком-нибудь паблике, например OnPlayerSpawn, то компилятор нормально работает. Так как это прогресс бары нужды, голода и жажды, мне необходимо чтобы эти переменные были глобальными, как это сделать так, чтобы компилятор подавал хоть какие-то признаки жизни?

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

    Статус
    Оффлайн
    Регистрация
    04.01.2015
    Адрес
    Гомель, Беларусь
    Сообщений
    547
    Репутация:
    158 ±
    Поставь для теста этот, если стоит обычный.
    Не хотите постоянно проверять обновления моих скриптов?
    Подключите его последним, после всех остальных
    Nexius's Update Checker

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

    Статус
    Оффлайн
    Регистрация
    15.08.2019
    Сообщений
    13
    Репутация:
    0 ±
    Цитата Сообщение от Nexius_Tailer Посмотреть сообщение
    Поставь для теста этот, если стоит обычный.
    Компилятор то теперь работает, но как исправить ошибки, которые он теперь выдает?

    1. D:\сервер\gamemodes\new.pwn(68) : error 029: invalid expression, assumed zero
    2. D:\сервер\gamemodes\new.pwn(69) : error 029: invalid expression, assumed zero
    3. D:\сервер\gamemodes\new.pwn(70) : error 029: invalid expression, assumed zero
    4. D:\сервер\gamemodes\new.pwn(2023) : error 055: start of function body without function header
    5. D:\сервер\gamemodes\new.pwn(2025) : error 010: invalid function or declaration


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

    На строки 2023 и 2025 обращать внимания не стоит, ошибку выдает именно из за 68, 69 и 70, где непосредственно само объявление переменных.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Эмм, ну так переменные создавай глобально, а текстдравы создавай уже при подключении и записывай их ID в переменные.

    То бишь:
    1. // Глобально
    2. new Bar:hunger;
    3. new Bar:thirst;
    4. new Bar:need;
    5.  
    6. //OnPlayerConnect
    7. hunger = CreateProgressBar(548.00, 105.00, 58.50, 3.19, -1933154646, 100.0);
    8. thirst = CreateProgressBar(548.00, 116.00, 58.50, 3.20, 2026960298, 100.0);
    9. need = CreateProgressBar(548.00, 127.00, 58.50, 3.20, -32598, 100.0);
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    15.08.2019
    Сообщений
    13
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Эмм, ну так переменные создавай глобально, а текстдравы создавай уже при подключении и записывай их ID в переменные.

    То бишь:
    1. // Глобально
    2. new Bar:hunger;
    3. new Bar:thirst;
    4. new Bar:need;
    5.  
    6. //OnPlayerConnect
    7. hunger = CreateProgressBar(548.00, 105.00, 58.50, 3.19, -1933154646, 100.0);
    8. thirst = CreateProgressBar(548.00, 116.00, 58.50, 3.20, 2026960298, 100.0);
    9. need = CreateProgressBar(548.00, 127.00, 58.50, 3.20, -32598, 100.0);
    Я уже пыталась так делать, но проблема в том, что мне нужно создать ТАЙМЕР, чтобы значения прогресс баров со временем уменьшались.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Ну так в чём проблема? Ты создаёшь прогресс бары при подключении игрока и там же создаёшь таймер на их обновление (либо используешь уже созданный таймер). А уже внутри функции, которую будет вызывать таймер, обновляешь значение прогресс баров соответствующей функцией, указывая переменную, в которую был записан их ID при создании.

    То бишь, будет как-то так:
    1. enum e_PLAYER_PROGRESS_BAR_LIST
    2. {
    3. Bar:ppbHunger,
    4. Bar:ppbThirst,
    5. Bar:ppbNeed
    6. };
    7. new pProgressBar[MAX_PLAYERS][e_PLAYER_PROGRESS_BAR_LIST];
    8.  
    9.  
    10. public OnPlayerConnect(playerid)
    11. {
    12. pProgressBar[playerid][ppbHunger] = CreateProgressBar(548.00, 105.00, 58.50, 3.19, -1933154646, 100.0);
    13. // ...
    14. }
    15.  
    16.  
    17.  
    18. public OnPlayerDisconnect(playerid, reason)
    19. {
    20. DestroyProgressBar(pProgressBar[playerid][ppbHunger]);
    21. pProgressBar[playerid][ppbHunger] = Bar:0;
    22. // ...
    23. }
    24.  
    25.  
    26.  
    27.  
    28. //Таймер
    29. {
    30. SetProgressBarValue(pProgressBar[playerid][ppbHunger], /*Новое значение*/); // Обновили значение прогресс бара
    31. UpdatePlayerProgressBar(playerid, pProgressBar[playerid][ppbHunger]);// Показали изменения игроку
    32. }
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

 

 

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

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

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

Ваши права

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