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

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

    Этот код оптимизирован?

    PHP код:
    if(s_player[playerid][pTdm] == 0)//spawn после смерти вирт мир нулевой
        
    {
            switch(
    random(8))
            {
                case 
    0:{spp(playerid1544.1465, -1353.4860329.4740);} // крыша}
                
    case 1:{spp(playerid1722.3826, -652.968442.4220);} //spawn 1..7}
                
    case 2:{spp(playerid2035.4363963.361810.5156);}
                case 
    3:{spp(playerid2013.82652907.274447.8231);}
                case 
    4:{spp(playerid735.49191740.19075.9912);}
                case 
    5:{spp(playerid, -1656.7496384.73367.1875);}
                case 
    6:{spp(playerid, -1213.77512679.775146.1915);}
                case 
    7:{spp(playerid, -2398.48632222.79224.9844);}
            }
            
    SetPlayerColor(playerid, -1);
            
    SetPlayerSkin(playerids_player[playerid][pSkin]);
            
    spvw(playerid0);
        } 
    Или можно ещё легче сделать?
    На сокращенные не обращайте внимания я знаю что там итак ничего не дает сокращенным или нет. Мне просто так легче орентироваться

    - - - Updated - - -

    И на счет "{" после низа if отступ это в BB code у вас так сделало

  2. #2
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    551
    Репутация:
    274 ±
    А почему не сократили остальное?
    spc
    sps?

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

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

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

    Статус
    Оффлайн
    Регистрация
    22.01.2016
    Сообщений
    40
    Репутация:
    7 ±
    Цитата Сообщение от phpadmin Посмотреть сообщение
    руки не дошли, вообще я уберу раз разщницы нет обратно стандарт сделаю, а так код оптимизирован?
    Можно сделать и с помощью массива:
    PHP код:
    if(s_player[playerid][pTdm] == 0)
    {
        new const
            
    Floatrandom_spawn_pos[][] =
        {
            {
    1544.1465, -1353.4860329.4740},
            {
    1722.3826, -652.968442.4220},
            {
    2035.4363963.361810.5156},
            {
    2013.82652907.274447.8231},
            {
    735.49191740.19075.9912},
            {-
    1656.7496384.73367.1875},
            {-
    1213.77512679.775146.1915},
            {-
    2398.48632222.79224.9844}
        };
        new
            
    rnd random(sizeof(random_spawn_pos));
        
    SetPlayerPos(playeridrandom_spawn_pos[rnd][0], random_spawn_pos[rnd][1], random_spawn_pos[rnd][2]);
        
    SetPlayerVirtualWorld(playerid0);
        
        
    SetPlayerSkin(playerids_player[playerid][pSkin]);

    На работоспособность код НЕ ПРОВЕРЯЛСЯ!
    Последний раз редактировалось middlematt; 03.07.2017 в 17:05.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от middlematt Посмотреть сообщение
    Типичный код с G-I. Можно сделать и с помощью массива:
    PHP код:
    if(s_player[playerid][pTdm] == 0)
    {
        new const
            
    Floatrandom_spawn_pos[][] =
        {
            {
    1544.1465, -1353.4860329.4740},
            {
    1722.3826, -652.968442.4220},
            {
    2035.4363963.361810.5156},
            {
    2013.82652907.274447.8231},
            {
    735.49191740.19075.9912},
            {-
    1656.7496384.73367.1875},
            {-
    1213.77512679.775146.1915},
            {-
    2398.48632222.79224.9844}
        };
        new
            
    rnd random(sizeof(random_spawn_pos));
        
    SetPlayerPos(playeridrandom_spawn_pos[rnd][0], random_spawn_pos[rnd][1], random_spawn_pos[rnd][2]);
        
    SetPlayerVirtualWorld(playerid0);
        
        
    SetPlayerSkin(playerids_player[playerid][pSkin]);

    На работоспособность код НЕ ПРОВЕРЯЛСЯ!
    Только разницы особой нет, кроме стиля оформления

    Это как, вроде, на п-и в одной из недавних тем (ну как недавних... Когда меня ещё там не забанили) в разделе с разработками один из форумчан сделал замечание по поводу того, что увеличение значения переменной прописано не "++", а "+=1".
    Одно дело докапываться до коверканья названий, что сбивают с толку и ломают совместимость. Но не нужно возводить в абсолют синтаксические замечания. В данном случае его метод может даже выигрывать за счёт отсутствия обращения к ячейкам массива, но реальная разница будет в сотых долях микросекунд. В остальном оба варианта вполне нормальны
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    06.03.2016
    Адрес
    Moscow
    Сообщений
    167
    Репутация:
    44 ±
    Цитата Сообщение от middlematt Посмотреть сообщение
    Можно сделать и с помощью массива:
    PHP код:
    if(s_player[playerid][pTdm] == 0)
    {
        new const
            
    Floatrandom_spawn_pos[][] =
        {
            {
    1544.1465, -1353.4860329.4740},
            {
    1722.3826, -652.968442.4220},
            {
    2035.4363963.361810.5156},
            {
    2013.82652907.274447.8231},
            {
    735.49191740.19075.9912},
            {-
    1656.7496384.73367.1875},
            {-
    1213.77512679.775146.1915},
            {-
    2398.48632222.79224.9844}
        };
        new
            
    rnd random(sizeof(random_spawn_pos));
        
    SetPlayerPos(playeridrandom_spawn_pos[rnd][0], random_spawn_pos[rnd][1], random_spawn_pos[rnd][2]);
        
    SetPlayerVirtualWorld(playerid0);
        
        
    SetPlayerSkin(playerids_player[playerid][pSkin]);

    На работоспособность код НЕ ПРОВЕРЯЛСЯ!
    Я бы глобально запилил это дело.. Координаты явно не в одном месте понадобятся.
    p.s. на деймоса смешно тоже смотреть.. раньше за эти доли секунд усирался, теперь наоборот всё.
    Член сообщества Green Square.

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

    Статус
    Оффлайн
    Регистрация
    22.01.2016
    Сообщений
    40
    Репутация:
    7 ±
    Цитата Сообщение от Nash_Brigers Посмотреть сообщение
    Я бы глобально запилил это дело.. Координаты явно не в одном месте понадобятся.
    p.s. на деймоса смешно тоже смотреть.. раньше за эти доли секунд усирался, теперь наоборот всё.
    Ну, это уже по усмотрению разработчика мода, будет он ли их еще использовать или нет.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Nash_Brigers Посмотреть сообщение
    p.s. на деймоса смешно тоже смотреть.. раньше за эти доли секунд усирался, теперь наоборот всё.
    А теперь найди те темы, где я "усирался" и прочти мои рассуждения на тему того, почему там действительно следует "усираться". А заодно и нам ссылки скинь, дабы мы тоже посмеялись.

    В программировании нет одной единственно правильной крайности, которую нужно придерживаться всякий раз. И задача действительно грамотного программиста заключается в том, чтоб оценивать ситуации и видеть на что нужно делать упор при написании кода (оптимизация памяти, оптимизация процессора или оптимизация структуры кода).

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    06.03.2016
    Адрес
    Moscow
    Сообщений
    167
    Репутация:
    44 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    А теперь найди те темы, где я "усирался" и прочти мои рассуждения на тему того, почему там действительно следует "усираться". А заодно и нам ссылки скинь, дабы мы тоже посмеялись.
    Не найду твои сообщения, написанные год-два (может больше) назад.. Помню лишь, что вы за это палками били всех остальных, кто не учитывал затраты в доли секунд)
    Член сообщества Green Square.

  10. #10
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Всё же будет лучше отделить данные от логики, это одна из хороших практик в программировании. Даже, если бы код с массивом был бы в 2 раза медленнее, я бы всё-равно использовал его.

    P.S. Кстати, в некоторых новых языках (Swift) по определённым причинам нет инкрементов и им подобных.

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

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

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

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

Ваши права

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