Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 7 из 7
  1. #1
    Аватар для ALIT13
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.05.2014
    Сообщений
    250
    Репутация:
    2 ±

    Оптимизация кода

    Оптимизация кода , как можно упростить рандом или что нибудь чтоб код был более меньше
    PHP код:
    case 17:
            {
                switch(
    listitem)
                {
                    case 
    0:
                    {
                        if(
    P::[playerid][pSex] == 1)
                        {
                            new 
    NegrM random(sizeof(NegrRandM));
                            
    SetPlayerSkin(playerid,NegrRandM[NegrM]);
                            
    PlayerInfo[playerid][pSkin] = NegrRandM[NegrM];
                          }
                           else
                           {
                               new 
    NegrF random(sizeof(NegrRandF));
                            
    SetPlayerSkin(playerid,NegrRandF[NegrF]);
                            
    PlayerInfo[playerid][pSkin] = NegrRandF[NegrF];
                          }
                        
    SendClientMessage(playerid,COLOR_ORANGE,"Õîðîøî, âàøà ðàñà òåïåðü:{FFFFFF} 'Àâñòðàëîèäíàÿ (òåìíîêîæèå)'"), PlayerInfo[playerid][pRasa] = 0;
                    }
                    case 
    1:
                    {
                        if(
    P::[playerid][pSex] == 1)
                        {
                            new 
    NegrM random(sizeof(NegrRandM2));
                            
    SetPlayerSkin(playerid,NegrRandM2[NegrM]);
                            
    PlayerInfo[playerid][pSkin] = NegrRandM2[NegrM];
                          }
                           else
                           {
                               new 
    NegrF random(sizeof(NegrRandF));
                            
    SetPlayerSkin(playerid,NegrRandF[NegrF]);
                            
    PlayerInfo[playerid][pSkin] = NegrRandF[NegrF];
                          }
                        
    SendClientMessage(playerid,COLOR_ORANGE,"Õîðîøî, âàøà ðàñà òåïåðü:{FFFFFF} 'Íåãðîèäíàÿ (òåìíîêîæèå)'"), PlayerInfo[playerid][pRasa] = 1;
                    }
                    case 
    2:
                    {
                        if(
    P::[playerid][pSex] == 1)
                        {
                            new 
    BeloM random(sizeof(BeloRandM));
                            
    SetPlayerSkin(playerid,BeloRandM[BeloM]);
                            
    PlayerInfo[playerid][pSkin] = BeloRandM[BeloM];
                          }
                           else
                           {
                               new 
    BeloF random(sizeof(BeloRandF));
                            
    SetPlayerSkin(playerid,BeloRandF[BeloF]);
                            
    PlayerInfo[playerid][pSkin] = BeloRandF[BeloF];
                          }
                        
    SendClientMessage(playerid,COLOR_ORANGE,"Õîðîøî, âàøà ðàñà òåïåðü:{FFFFFF} 'Åâðîïåîèäíàÿ (áåëîêîæèå)'"), PlayerInfo[playerid][pRasa] = 2;
                    }
                    case 
    3:
                    {
                        if(
    P::[playerid][pSex] == 1)
                        {
                            new 
    JoltM random(sizeof(JoltRandM));
                            
    SetPlayerSkin(playerid,JoltRandM[JoltM]);
                            
    PlayerInfo[playerid][pSkin] = JoltRandM[JoltM];
                          }
                           else
                           {
                               new 
    JoltF random(sizeof(JoltRandF));
                            
    SetPlayerSkin(playerid,JoltRandF[JoltF]);
                            
    PlayerInfo[playerid][pSkin] = JoltRandF[JoltF];
                          }
                        
    SendClientMessage(playerid,COLOR_ORANGE,"Õîðîøî, âàøà ðàñà òåïåðü:{FFFFFF} 'Ìîíãîëîèäíàÿ (æåëòîêîæèå)'"), PlayerInfo[playerid][pRasa] = 3;
                    }
                }
            } 

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

    Статус
    Оффлайн
    Регистрация
    14.11.2013
    Адрес
    Свердловская обл.
    Сообщений
    694
    Репутация:
    104 ±
    "чтоб код был более меньше" - думаешь отразится на производительности в лучшую сторону?...
    PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..

    25% времени в программировании уходит на размышления о том, что пользователь может сделать не так.[HR]/Брайан Хьюмс/





    #FIXSAMP

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

    Статус
    Оффлайн
    Регистрация
    24.05.2014
    Сообщений
    250
    Репутация:
    2 ±
    ну да , может можно не заносить в каждую case рандом

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

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    608
    Репутация:
    289 ±

  5. 2 пользователя(ей) сказали cпасибо:
    $continue$ (19.01.2016)[ForD] (19.01.2016)
  6. #5
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,360
    Репутация:
    113 ±
    PHP код:
    // перед switch(listitem) объявить переменные
    new sex P::[playerid][pSex];
    new 
    NegrM random(sizeof(NegrRandM)); 
    // далее так
    if(sex == 1

          
    SetPlayerSkin(playerid,NegrRandM[NegrM]); 
          
    PlayerInfo[playerid][pSkin] = NegrRandM[NegrM]; 

    else if(
    sex == 2)

          
    SetPlayerSkin(playerid,NegrRandF[NegrF]); 
          
    PlayerInfo[playerid][pSkin] = NegrRandF[NegrF];

    + как писал кортез, sizeof увеличивает время компиляции,
    там тоже можно было бы вручную ввести цифры и тогда это всё что можно оптимизировать.
    Последний раз редактировалось vovandolg; 20.01.2016 в 00:55.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    PHP код:
    new sex P::[playerid][pSex];
    new 
    NegrM random(sizeof(NegrRandM)); 
    if(
    sex == 1

          
    SetPlayerSkin(playerid,NegrRandM[NegrM]); 
          
    PlayerInfo[playerid][pSkin] = NegrRandM[NegrM]; 

    else if(
    sex == 2)

          
    SetPlayerSkin(playerid,NegrRandF[NegrF]); 
          
    PlayerInfo[playerid][pSkin] = NegrRandF[NegrF];

    Только забыл учесть, что там разные массивы используются ;) Но ход мыслей верный. Как-то так:
    PHP код:
    case 17:
    {
        if(!
    response) return 1;
        new 
    sex P::[playerid][pSex];
        switch(
    listitem)
        {
            case 
    0:
            {
                
    PlayerInfo[playerid][pSkin] = (sex == NegrRandM[random(sizeof(NegrRandM)] : NegrRandF[random(sizeof(NegrRandF)]);
                
    SendClientMessage(playerid,COLOR_ORANGE,"Хорошо, ваша раса теперь:{FFFFFF} 'Австралоидная (темнокожие)'");
            }
            case 
    1:
            {
                
    PlayerInfo[playerid][pSkin] = (sex == NegrRandM[random(sizeof(NegrRandM2)] : NegrRandF[random(sizeof(NegrRandF)]);
                
    SendClientMessage(playerid,COLOR_ORANGE,"Хорошо, ваша раса теперь:{FFFFFF} 'Негроидная (темнокожие)'");
            }
            case 
    2:
            {
                
    PlayerInfo[playerid][pSkin] = (sex == NegrRandM[random(sizeof(BeloRandM)] : NegrRandF[random(sizeof(BeloRandF)]);
                
    SendClientMessage(playerid,COLOR_ORANGE,"Хорошо, ваша раса теперь:{FFFFFF} 'Европеоидная (белокожие)'");
            }
            case 
    3:
            {
                
    PlayerInfo[playerid][pSkin] = (sex == NegrRandM[random(sizeof(JoltRandM)] : NegrRandF[random(sizeof(JoltRandF)]);
                
    SendClientMessage(playerid,COLOR_ORANGE,"Хорошо, ваша раса теперь:{FFFFFF} 'Монголоидная (желтокожие)'");
            }
        }
        
    PlayerInfo[playerid][pRasa] = listitem;
        
    SetPlayerSkin(playeridPlayerInfo[playerid][pSkin]);
        return 
    1;

    Только насчёт тернарника не совсем уверен, ибо давно им уже не пользовался
    Последний раз редактировалось DeimoS; 20.01.2016 в 01:11.
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,360
    Репутация:
    113 ±
    Ошмёток забыли вставить
    PHP код:
    if(response)


  9. Пользователь сказал cпасибо:
    DeimoS (20.01.2016)
 

 

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

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

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

Ваши права

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