Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 132 из 133 ПерваяПервая ... 32 82 122 130 131 132 133 ПоследняяПоследняя
Показано с 1,311 по 1,320 из 1325
  1. #1311
    Аватар для Nexius_Tailer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.01.2015
    Адрес
    Гомель, Беларусь
    Сообщений
    547
    Репутация:
    158 ±
    Цитата Сообщение от Scander Посмотреть сообщение
    В Сампе есть ограничение MAX_PICKUPS = 4098.
    Вопрос:
    Гарантируется ли то, что функция CreatePickup возвращает айдишники в диапазоне от 0 до 4097?
    Или она и подобные ей функции (TextDrawCreate, CreateActor и т. д.) как-то по-другому выделяют айди?

    Просто хочу создать такой вот массив: Pickup[MAX_PICKUPS][E_PICKUP], где я мог бы хранить некоторую инфу о пикапах.
    И мне нужно, чтобы я мог обращаться к каждому пикапу в массиве по айди, который возвращается через функцию CreatePickup.
    Стартовые иды пикапов/объектов/текстдравов и всего прочего можно посмотреть тут (клик). Ну а так, везде они выделяются всегда друг за другом в порядке возрастания и почти везде (кроме таймеров) освобождаются при удалении какого-то созданного элемента.
    Не хотите постоянно проверять обновления моих скриптов?
    Подключите его последним, после всех остальных
    Nexius's Update Checker

  2. Пользователь сказал cпасибо:
    Scander (25.06.2021)
  3. #1312
    Аватар для Scander
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.05.2021
    Сообщений
    24
    Репутация:
    2 ±
    Цитата Сообщение от Nexius_Tailer Посмотреть сообщение
    Стартовые иды пикапов/объектов/текстдравов и всего прочего можно посмотреть тут (клик). Ну а так, везде они выделяются всегда друг за другом в порядке возрастания и почти везде (кроме таймеров) освобождаются при удалении какого-то созданного элемента.
    Поонял) Спасибо. Значит, можно для массива использовать эти иды.

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

    PHP код:
    new const Kek:MAX_KEKS Kek:1000;
    new 
    Kek[MAX_KEKS][3]; 
    Почему не работает этот код?
    Если MAX_KEKS объявить как просто const без new (насколько я знаю, это аналог #define), то все работает.
    А с new ошибка error 008: must be a constant expression; assumed zero
    Последний раз редактировалось Scander; 25.06.2021 в 21:45.

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

    Статус
    Оффлайн
    Регистрация
    11.10.2020
    Сообщений
    59
    Репутация:
    2 ±
    Так не делают, если хотите попробуйте так
    1. new Kek[_:MAX_KEKS][3];

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от Scander Посмотреть сообщение
    PHP код:
    new const Kek:MAX_KEKS Kek:1000;
    new 
    Kek[MAX_KEKS][3]; 
    Почему не работает этот код?
    Если MAX_KEKS объявить как просто const без new (насколько я знаю, это аналог #define), то все работает.
    А с new ошибка error 008: must be a constant expression; assumed zero
    Потому что размер массива должен быть константным значением. Сочетание "new const" создаёт иммутабельную переменную: значение такой переменной нельзя изменять, как у константы, но это всё ещё переменная.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  6. Пользователь сказал cпасибо:
    Scander (26.06.2021)
  7. #1315
    Аватар для Scander
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.05.2021
    Сообщений
    24
    Репутация:
    2 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Потому что размер массива должен быть константным значением. Сочетание "new const" создаёт иммутабельную переменную: значение такой переменной нельзя изменять, как у константы, но это всё ещё переменная.
    Понял, подозревал такой ответ, исходя из сообщения компилятора.
    Спасибо)

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

    Статус
    Оффлайн
    Регистрация
    19.05.2021
    Сообщений
    24
    Репутация:
    2 ±
    1. Почему я не могу из двух констант сделать одну?
    Это глобальные константы, если что.
    PHP код:
    new const INVENTORY_UI_CTR_ROWS 4;
    new const 
    INVENTORY_UI_CTR_COLUMNS 4;
    new const 
    INVENTORY_UI_CTR_SLOTS INVENTORY_UI_CTR_ROWS*INVENTORY_UI_CTR_COLUMNS
    Ошибка: error 008: must be a constant expression; assumed zero
    Если не писать new, то работает.
    UPD: разобрался, кажись также как с размером массива, должны быть "строгие" константы.
    UPDx2: хотя нет, получилось и без констант создать, но не в примере выше.

    2. А здесь не работает ни без, ни с new:
    PHP код:
    const INVENTORY_UI_CTR_COLUMNS 4;
    const 
    Float:INVENTORY_UI_SLOT_WIDTH 35.0;
    const 
    Float:INVENTORY_UI_CTR_WIDTH INVENTORY_UI_CTR_COLUMNS*INVENTORY_UI_SLOT_WIDTH +...и т.д
    Если перед INVENTORY_UI_SLOT_WIDTH поставить _:, то работает, но если перед INVENTORY_UI_CTR_COLUMNS поставить Float:, то не работает.
    Последний раз редактировалось Scander; 28.06.2021 в 18:51.

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

    Статус
    Оффлайн
    Регистрация
    19.05.2021
    Сообщений
    24
    Репутация:
    2 ±
    Что делать, если нужны числа больше 4 байт? Онли массив?

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

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    если вам нужны большие числа, то можете посмотреть:

    https://github.com/tdworg/samp-include-ulong
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

  11. 2 пользователя(ей) сказали cпасибо:
    oukibt (06.07.2021) Scander (06.07.2021)
  12. #1319
    Аватар для Outsider
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.03.2017
    Сообщений
    82
    Репутация:
    0 ±
    1. hook OnPlayerDamageDone(playerid, Float:amount, issuerid, weapon, bodypart) {
    2. if (playerid == INVALID_PLAYER_ID) return 1;
    3.  
    4. new character_death_state = GetCharacterDeathStage(playerid);
    5. new character_state_dead = GetCharacterDeathStage(playerid) == CHARACTER_DIED;
    6.  
    7. if (character_death_state == CHARACTER_INJURED) {
    8. character_death_state = CHARACTER_DIED;
    9. }
    10.  
    11. GetPlayerHealth(playerid, gHealth);
    12. if (gHealth <= STAGE_HEALTH_AMOUNT) {
    13. SetPlayerHealth(playerid, STAGE_HEALTH_AMOUNT);
    14.  
    15. if (!character_death_state) {
    16. character_death_state = CHARACTER_INJURED;
    17. }
    18. }
    19.  
    20. if (!character_state_dead) {
    21. gCharacter[playerid][e_cDeathStage] = character_death_state;
    22. SetCharacterDeathStage(playerid, character_death_state);
    23. }
    24.  
    25. return 1;
    26. }


    Не помощи ради пишу, интереса для. Как бы вы отрефакторили этот код? Мне в голову не приходит вообще ничего.
    Последний раз редактировалось Outsider; 21.11.2021 в 23:47.

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

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±
    Особо и рефакторить нечего. Правила написания кода, разве что.

    Не особо понял смысла от 21 и 22 строки кода. Сдаётся, что они выполняют одно и тоже действие

 

 
Страница 132 из 133 ПерваяПервая ... 32 82 122 130 131 132 133 ПоследняяПоследняя

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

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

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

Ваши права

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