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

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

    возник вопрос на счет переменных

    1 вопрос: у локальных перемен есть лимит?

    PHP код:
    else if(s_player[playerid][pTdm] == 2)
        {
            switch(
    random(2))
            {
                case 
    0:
                {
                    new 
    skin[] = {153468159242};
                    new 
    skinon skin[random(sizeof skinon)];
                    
    SetPlayerSkin(playeridskinon);
                    
    SetPlayerFacingAngle(playerid180.4592);
                    
    SetPlayerPos(playerid139.95511374.15501085.8101);
                    
    SetPlayerInterior(playerid5);
                    
    SetPlayerVirtualWorld(playerid10);
                    return 
    1;
                }
                case 
    1:
                {
                    new 
    skin[] = {162158159235136};
                    new 
    skinon skin[random(sizeof skinon)];
                    
    SetPlayerSkin(playeridskinon);
                    
    SetPlayerFacingAngle(playerid102.3782);
                    
    SetPlayerPos(playerid148.64201370.70731083.8594);
                    
    SetPlayerInterior(playerid5);
                    
    SetPlayerVirtualWorld(playerid10);
                    return 
    1;
                }
            }
        } 
    - - - Updated - - -

    Ещё возникла проблема, когда респавнюсь у обеих case выбирается первые скины.

    Остальные не выбираются путем рандома. Лишь 15 и 162
    Последний раз редактировалось phpadmin; 10.07.2017 в 00:02.

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

    Статус
    Оффлайн
    Регистрация
    19.05.2017
    Сообщений
    103
    Репутация:
    1 ±
    Ошибку понял, нужно было в рандом ставить переменную skin лол :D, я поставил skinon

    - - - Updated - - -

    Но все равно ответьте на 1 вопрос, есть лимиты?

  3. #3
    Аватар для VVWVV
    ?

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Есть - размер стека. Если учитывать, что одна переменная (не массив) занимает 4 байта, то вы сможете сделать около 4096 переменных (если у вас стандартный размер Stack/Heap сегмента; в ином случае это число может быть больше). Хотя, если переменные являются статическими, то для них практически нет лимита, поскольку они находятся в сегменте данных, а не в стеке.
    Последний раз редактировалось VVWVV; 10.07.2017 в 00:52.

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

    Статус
    Оффлайн
    Регистрация
    19.05.2017
    Сообщений
    103
    Репутация:
    1 ±
    Цитата Сообщение от VVWVV Посмотреть сообщение
    Есть - размер стека. Если учитывать, что одна переменная (не массив) занимает 4 байта, то вы сможете сделать около 4096 переменных (если у вас стандартный размер Stack/Heap сегмента; в ином случае это число может быть больше). Хотя, если переменные являются статическими, то для них практически нет лимита, поскольку они находятся в сегменте данных, а не в стеке.
    PHP код:
    case 0..73:
                        {
                            if(
    s_player[playerid][pBox]>0)
                            {
                                new 
    String[250];
                                
    s_player[playerid][pBox] -=1;
                                
    format(Stringsizeof(String), "%s {FFFFFF}Вы открыли элитную коробку (осталось: %d .шт)\n\n",String,s_player[playerid][pBox]);
                                new 
    rand Vaper[random(sizeof Vaper)];
                                new 
    patr Vaper1[random(sizeof Vaper1)];
                                
    GivePlayerWeaponAC(playerid,rand,patr);
                                
    format(Stringsizeof(String), "%s {FFFFFF}Оружие: {CC8DEC}%s\n",String,gname(rand));
                                new 
    skin Spinner[random(sizeof Spinner)];
                                
    SetPlayerSkin(playerid,skin);
                                
    format(String,sizeof(String), "%s {FFFFFF}Временная одежда: (id одежды: {708DEB}%d{FFFFFF})\n",String,skin);
                                new 
    dollar Gibby[random(sizeof Gibby)];
                                
    s_player[playerid][pDollar]+=dollar;
                                
    format(String,sizeof(String), "%s {FFFFFF}Бонусные доллары: {79D26D}%d$\n",String,dollar);
                                
    ShowPlayerDialog(playerid,9903,DIALOG_STYLE_MSGBOX,"{FFFFFF}Elite BOX",String,"Закрыть","");
                            }
                        } 
    Ку, вот представь что там стеки ну типа локальные переменные. Это правильный код в плане оптимизации или можно по другому сделать?

    - - - Updated - - -

    на лесену внимания не обращай у меня все норм в павно

    - - - Updated - - -

    Я не особо понял чо такое стек, но я кое что чекал, я крч вот там где выполняются функции, крч вызываемые как код выше, поставил стринг 4000+ ячеек и там крч при этой херне компиляции выдавало мол чето про байты, потом я допер мол в моде у меня больше чем 4000 ячеек в общем но такой херни небыло типа про байты. И тут доперло типа что это вызывается если столько памяти используешь в одной функции.

    Типа крч например new strign[4000] (+-) в локальном виде. То там показывает что употребляется память слишком много или как там. Ты это называешь стеками?

    - - - Updated - - -

    PHP код:
    new skin[] = {153468159242};
                    new 
    skinon skin[random(sizeof skinon)]; 
    Там где skin[] <- это автоподсчет?

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

    Статус
    Оффлайн
    Регистрация
    22.04.2016
    Адрес
    Украина
    Сообщений
    157
    Репутация:
    35 ±
    Цитата Сообщение от phpadmin Посмотреть сообщение
    Там где skin[] <- это автоподсчет?
    Да.

    Меньше "типа" и "крч" и получишь ответ, а то твой текст читать не хочется. Проблема то не ясна.

  7. Пользователь сказал cпасибо:
    Geebrox (11.07.2017)
  8. #6
    Аватар для DeimoS
    Модератор?

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

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

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

    Steve Pavlina

 

 

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

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

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

Ваши права

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