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

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

    где лучше объявить переменную

    Здравствуйте, куда лучше ставить переменную или создавать каждую по отедльносьи или создать одну сверху всего?

    1. case 1125:
    2. {
    3. if(!response) return 1;
    4. new fmt_str[здесь кол-во ячеек]; //или лучше снизу
    5. switch(listitem)
    6. {
    7. case 0:
    8. {
    9. //new fmt_str[] везде так ставить или одну сверху
    10. format(fmt_str,sizeof(fmt_str), "здесь был %s", тут любое значение);
    11. }
    12. case 1:
    13. {
    14. //new fmt_str[] везде так ставить или одну сверху
    15. format(fmt_str,sizeof(fmt_str), "здесь был %s.....", тут любое значение);
    16. }
    17. }
    18. }

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

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

    Тут больше уже от удобства зависит и от желания сделать свой код более устойчивым к ошибкам (вариант с индивидуальными массивами более устойчив по озвученным выше причинам). Память в любом случае будет высчитываться по максимально большому массиву, а затраты на инициализацию ничтожно малы, чтоб их учитывать.
    В общем, делай так, как тебе удобнее :)
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  3. Пользователь сказал cпасибо:
    DmitriyVasilev (04.03.2019)
  4. #3
    Аватар для Nexius_Tailer
    Пользователь

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

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

    Статус
    Оффлайн
    Регистрация
    01.01.2019
    Сообщений
    86
    Репутация:
    0 ±
    а это как - то плохо ( дублирование )??

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

    вот например я тут sendmes меняю на форматы и не знаю сверху одну поставить или в каждое условие
    1. case 1:
    2. {
    3. if(strval(inputtext) == -1)
    4. {
    5. if(strcmp(WorkshopInfo[i][wDeputy1],"None",true) == 0) return SendClientMessage(playerid,COLOR_GREY," Данный слот не занят!"), ShowPlayerDialog(playerid, 6005, DIALOG_STYLE_INPUT, "Нанять рабочего","Введите ид игрока в данное окно\n\nВНИМАНИЕ: Введите -1 для увольнения","Далее","Назад");
    6. new fmt_str[41 + ( -2 + MAX_PLAYER_NAME )]
    7. SendMes(playerid,0x6BB3FFAA,"Вы уволили %s с должности заместителя [1]",WorkshopInfo[i][wDeputy1]), strmid(WorkshopInfo[i][wDeputy1],"None", 0, strlen("None"), 32);
    8. }
    9. else
    10. {
    11. strmid(WorkshopInfo[i][wDeputy1],User[strval(inputtext)][pName], 0, strlen(User[strval(inputtext)][pName]), 32);
    12. SendMes(playerid,0x6BB3FFAA,"Вы приняли %s на должность заместителя [1]",WorkshopInfo[i][wDeputy1]);
    13. SendMes(strval(inputtext),0x6BB3FFAA,"%s принял вас на должность заместителя [1]",User[playerid][pName]);
    14. }
    15. }
    16. case 2:
    17. {
    18. if(strval(inputtext) == -1)
    19. {
    20. if(strcmp(WorkshopInfo[i][wDeputy2],"None",true) == 0) return SendClientMessage(playerid,COLOR_GREY,"Данный слот не занят!"), ShowPlayerDialog(playerid, 6005, DIALOG_STYLE_INPUT, "Нанять рабочего","Введите ид игрока в данное окно\n\nВНИМАНИЕ: Введите -1 для увольнения","Далее","Назад");
    21. SendMes(playerid,0x6BB3FFAA," Вы уволили %s с должности заместителя [2]",WorkshopInfo[i][wDeputy2]), strmid(WorkshopInfo[i][wDeputy2],"None", 0, strlen("None"), 32);
    22. }
    23. else
    24. {
    25. strmid(WorkshopInfo[i][wDeputy2],User[strval(inputtext)][pName], 0, strlen(User[strval(inputtext)][pName]), 32);
    26. SendMes(playerid,0x6BB3FFAA,"Вы приняли %s на должность заместителя [2]",WorkshopInfo[i][wDeputy2]);
    27. SendMes(strval(inputtext),0x6BB3FFAA,"%s принял вас на должность заместителя [2]",User[playerid][pName]);
    28. }
    29. }
    30. case 3:
    31. {
    32. if(strval(inputtext) == -1)
    33. {
    34. if(strcmp(WorkshopInfo[i][wDeputy3],"None",true) == 0) return SendClientMessage(playerid,COLOR_GREY,"Данный слот не занят!"), ShowPlayerDialog(playerid, 6005, DIALOG_STYLE_INPUT, "Нанять рабочего","Введите ид игрока в данное окно\n\nВНИМАНИЕ: Введите -1 для увольнения","Далее","Назад");
    35. SendMes(playerid,0x6BB3FFAA,"Вы уволили %s с должности заместителя [3]",WorkshopInfo[i][wDeputy3]), strmid(WorkshopInfo[i][wDeputy3],"None", 0, strlen("None"), 32);
    36. }
    37. else
    38. {
    39. strmid(WorkshopInfo[i][wDeputy3],User[strval(inputtext)][pName], 0, strlen(User[strval(inputtext)][pName]), 32);
    40. SendMes(playerid,0x6BB3FFAA,"Вы приняли %s на должность заместителя [3]",WorkshopInfo[i][wDeputy3]);
    41. SendMes(strval(inputtext),0x6BB3FFAA,"%s принял вас на должность заместителя [3]",User[playerid][pName]);
    42. }
    43. }
    44. case 4:
    45. {
    46. if(strval(inputtext) == -1)
    47. {
    48. if(strcmp(WorkshopInfo[i][wMechanic1],"None",true) == 0) return SendClientMessage(playerid,COLOR_GREY,"Данный слот не занят!"), ShowPlayerDialog(playerid, 6005, DIALOG_STYLE_INPUT, "Нанять рабочего","Введите ид игрока в данное окно\n\nВНИМАНИЕ: Введите -1 для увольнения","Далее","Назад");
    49. SendMes(playerid,0x6BB3FFAA,"Вы уволили %s с должности механика [1]",WorkshopInfo[i][wMechanic1]), strmid(WorkshopInfo[i][wMechanic1],"None", 0, strlen("None"), 32);
    50. }
    51. else
    52. {
    53. strmid(WorkshopInfo[i][wMechanic1],User[strval(inputtext)][pName], 0, strlen(User[strval(inputtext)][pName]), 32);
    54. SendMes(playerid,0x6BB3FFAA,"Вы приняли %s на должность механика [1]",WorkshopInfo[i][wMechanic1]);
    55. SendMes(strval(inputtext),0x6BB3FFAA,"%s принял вас на должность механика [1]",User[playerid][pName]);
    56. }
    57. }
    58. case 5:
    59. {
    60. if(strval(inputtext) == -1)
    61. {
    62. if(strcmp(WorkshopInfo[i][wMechanic2],"None",true) == 0) return SendClientMessage(playerid,COLOR_GREY,"Данный слот не занят!"), ShowPlayerDialog(playerid, 6005, DIALOG_STYLE_INPUT, "Нанять рабочего","Введите ид игрока в данное окно\n\nВНИМАНИЕ: Введите -1 для увольнения","Далее","Назад");
    63. SendMes(playerid,0x6BB3FFAA,"Вы уволили %s с должности механика [2]",WorkshopInfo[i][wMechanic2]), strmid(WorkshopInfo[i][wMechanic2],"None", 0, strlen("None"), 32);
    64. }
    65. else
    66. {
    67. strmid(WorkshopInfo[i][wMechanic2],User[strval(inputtext)][pName], 0, strlen(User[strval(inputtext)][pName]), 32);
    68. SendMes(playerid,0x6BB3FFAA,"Вы приняли %s на должность механика [2]",WorkshopInfo[i][wMechanic2]);
    69. SendMes(strval(inputtext),0x6BB3FFAA,"%s принял вас на должность механика [2]",User[playerid][pName]);
    70. }
    71. }
    72. case 6:
    73. {
    74. if(strval(inputtext) == -1)
    75. {
    76. if(strcmp(WorkshopInfo[i][wMechanic3],"None",true) == 0) return SendClientMessage(playerid,COLOR_GREY,"Данный слот не занят!"), ShowPlayerDialog(playerid, 6005, DIALOG_STYLE_INPUT, "Нанять рабочего","Введите ид игрока в данное окно\n\nВНИМАНИЕ: Введите -1 для увольнения","Далее","Назад");
    77. SendMes(playerid,0x6BB3FFAA,"Вы уволили %s с должности механика [3]",WorkshopInfo[i][wMechanic3]), strmid(WorkshopInfo[i][wMechanic3],"None", 0, strlen("None"), 32);
    78. }
    79. else
    80. {
    81. strmid(WorkshopInfo[i][wMechanic3],User[strval(inputtext)][pName], 0, strlen(User[strval(inputtext)][pName]), 32);
    82.  
    83. SendMes(playerid,0x6BB3FFAA," Вы приняли %s на должность механика [3]",WorkshopInfo[i][wMechanic3]);
    84. SendMes(strval(inputtext),0x6BB3FFAA," %s принял вас на должность механика [3]",User[playerid][pName]);
    85. }
    86. }
    87. case 7:
    88. {
    89. if(strval(inputtext) == -1)
    90. {
    91. if(strcmp(WorkshopInfo[i][wMechanic4],"None",true) == 0) return SendClientMessage(playerid,COLOR_GREY," Данный слот не занят!"), ShowPlayerDialog(playerid, 6005, DIALOG_STYLE_INPUT, "Нанять рабочего","Введите ид игрока в данное окно\n\nВНИМАНИЕ: Введите -1 для увольнения","Далее","Назад");
    92. SendMes(playerid,0x6BB3FFAA," Вы уволили %s с должности механика [4]",WorkshopInfo[i][wMechanic4]), strmid(WorkshopInfo[i][wMechanic4],"None", 0, strlen("None"), 32);
    93. }
    94. else
    95. {
    96. strmid(WorkshopInfo[i][wMechanic4],User[strval(inputtext)][pName], 0, strlen(User[strval(inputtext)][pName]), 32);
    97. SendMes(playerid,0x6BB3FFAA,"Вы приняли %s на должность механика [4]",WorkshopInfo[i][wMechanic4]);
    98. SendMes(strval(inputtext),0x6BB3FFAA,"%s принял вас на должность механика [4]",User[playerid][pName]);
    99. }
    100. }
    101. case 8:
    102. {
    103. if(strval(inputtext) == -1)
    104. {
    105. if(strcmp(WorkshopInfo[i][wMechanic5],"None",true) == 0) return SendClientMessage(playerid,COLOR_GREY," Данный слот не занят!"), ShowPlayerDialog(playerid, 6005, DIALOG_STYLE_INPUT, "Нанять рабочего","Введите ид игрока в данное окно\n\nВНИМАНИЕ: Введите -1 для увольнения","Далее","Назад");
    106. SendMes(playerid,0x6BB3FFAA,"Вы уволили %s с должности механика [5]",WorkshopInfo[i][wMechanic5]), strmid(WorkshopInfo[i][wMechanic5],"None", 0, strlen("None"), 32);
    107. }
    108. else
    109. {
    110. strmid(WorkshopInfo[i][wMechanic5],User[strval(inputtext)][pName], 0, strlen(User[strval(inputtext)][pName]), 32);
    111. SendMes(playerid,0x6BB3FFAA,"Вы приняли %s на должность механика [5]",WorkshopInfo[i][wMechanic5]);
    112. SendMes(strval(inputtext),0x6BB3FFAA,"%s принял вас на должность механика [5]",User[playerid][pName]);
    113. }
    114. }
    115. }

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

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

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

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

    Steve Pavlina

 

 

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

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

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

Ваши права

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