Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя
Показано с 11 по 20 из 46
  1. #11
    Аватар для Sarah
    Пользователь

    Статус
    Оффлайн
    Регистрация
    28.11.2015
    Адрес
    Moscow City
    Сообщений
    19
    Репутация:
    6 ±
    Цитата Сообщение от Snegovik1337 Посмотреть сообщение
    Вызывать регистрацию в OnPlayerConnect, не самый лучший вариант, версия 0.3DL даст о себе знать

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

    Это
    PHP код:
            case D_REG_SEX: {
                if(!
    response) return Kick(playerid);
                new 
    rand;
                switch(
    listitem) {
                    case 
    0: {
                        
    pInfo[playerid][Sex] = 1;
                        
    rand random(sizeof(Random_Skin_Male));
                        
    pInfo[playerid][Skin] = Random_Skin_Male[rand];
                    }
                    case 
    1: {
                        
    pInfo[playerid][Sex] = 2;
                        
    rand random(sizeof(Random_Skin_Female));
                        
    pInfo[playerid][Skin] = Random_Skin_Female[rand];
                    }
                }
                
    CreateNewAccount(playerid);
                return 
    true;
            } 
    На
    PHP код:
            case D_REG_SEX: {
                if(!
    response) return Kick(playerid);
                
    pInfo[playerid][Sex] = listitem 1;
                
    pInfo[playerid][Skin] = (listitem == 0)?
                (
    Random_Skin_Male[random(sizeof(Random_Skin_Male))]):(Random_Skin_Female[random(sizeof(Random_Skin_Female))]);
                
    CreateNewAccount(playerid);
                return 
    true;
            } 
    На счет регистрации не очень понял
    А насчет выбора пола - спасибо :)
    Последний раз редактировалось Sarah; 13.02.2018 в 17:56.

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

    Статус
    Оффлайн
    Регистрация
    13.01.2018
    Сообщений
    17
    Репутация:
    3 ±
    Вызывай регистрацию в OnPlayerRequestClass, иначе будет в 0.3DL так


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

    Статус
    Оффлайн
    Регистрация
    28.11.2015
    Адрес
    Moscow City
    Сообщений
    19
    Репутация:
    6 ±
    Цитата Сообщение от Snegovik1337 Посмотреть сообщение
    Вызывай регистрацию в OnPlayerRequestClass, иначе будет в 0.3DL так

    Я не собираюсь пока что использовать, но ладно, в будущем возьму на заметке

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    4,289
    Репутация:
    1610 ±
    Цитата Сообщение от egy Посмотреть сообщение
    Я не собираюсь пока что использовать, но ладно, в будущем возьму на заметке
    Лучше сразу переписать и сделать правильно, дабы потом остальные системы, зависимые от регистрации, не развалились и не начали глючить :)
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    28.11.2015
    Адрес
    Moscow City
    Сообщений
    19
    Репутация:
    6 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Лучше сразу переписать и сделать правильно, дабы потом остальные системы, зависимые от регистрации, не развалились и не начали глючить :)
    У меня почему-то персонаж не спавнится, только после того как я нажму кнопку "spawn"
    Хотя SpawnPlayer стоит в загрузке аккаунта

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    4,289
    Репутация:
    1610 ±
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

  8. #17
    Аватар для $continue$
    Заблокирован

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,466
    Репутация:
    265 ±
    В данном случай ты убил читаемость кода, почти на 0. В таких ситуациях лучше не использовать тернарный оператор.
    Цитата Сообщение от Snegovik1337 Посмотреть сообщение
    Вызывать регистрацию в OnPlayerConnect, не самый лучший вариант, версия 0.3DL даст о себе знать

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

    Это
    PHP код:
            case D_REG_SEX: {
                if(!
    response) return Kick(playerid);
                new 
    rand;
                switch(
    listitem) {
                    case 
    0: {
                        
    pInfo[playerid][Sex] = 1;
                        
    rand random(sizeof(Random_Skin_Male));
                        
    pInfo[playerid][Skin] = Random_Skin_Male[rand];
                    }
                    case 
    1: {
                        
    pInfo[playerid][Sex] = 2;
                        
    rand random(sizeof(Random_Skin_Female));
                        
    pInfo[playerid][Skin] = Random_Skin_Female[rand];
                    }
                }
                
    CreateNewAccount(playerid);
                return 
    true;
            } 
    На
    PHP код:
            case D_REG_SEX: {
                if(!
    response) return Kick(playerid);
                
    pInfo[playerid][Sex] = listitem 1;
                
    pInfo[playerid][Skin] = (listitem == 0)?
                (
    Random_Skin_Male[random(sizeof(Random_Skin_Male))]):(Random_Skin_Female[random(sizeof(Random_Skin_Female))]);
                
    CreateNewAccount(playerid);
                return 
    true;
            } 

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    4,289
    Репутация:
    1610 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
      Открыть/закрыть
    Цитата Сообщение от Snegovik1337 Посмотреть сообщение
    Вызывать регистрацию в OnPlayerConnect, не самый лучший вариант, версия 0.3DL даст о себе знать

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

    Это
    PHP код:
            case D_REG_SEX: {
                if(!
    response) return Kick(playerid);
                new 
    rand;
                switch(
    listitem) {
                    case 
    0: {
                        
    pInfo[playerid][Sex] = 1;
                        
    rand random(sizeof(Random_Skin_Male));
                        
    pInfo[playerid][Skin] = Random_Skin_Male[rand];
                    }
                    case 
    1: {
                        
    pInfo[playerid][Sex] = 2;
                        
    rand random(sizeof(Random_Skin_Female));
                        
    pInfo[playerid][Skin] = Random_Skin_Female[rand];
                    }
                }
                
    CreateNewAccount(playerid);
                return 
    true;
            } 
    На
    PHP код:
            case D_REG_SEX: {
                if(!
    response) return Kick(playerid);
                
    pInfo[playerid][Sex] = listitem 1;
                
    pInfo[playerid][Skin] = (listitem == 0)?
                (
    Random_Skin_Male[random(sizeof(Random_Skin_Male))]):(Random_Skin_Female[random(sizeof(Random_Skin_Female))]);
                
    CreateNewAccount(playerid);
                return 
    true;
            } 


    В данном случай ты убил читаемость кода, почти на 0. В таких ситуациях лучше не использовать тернарный оператор.



    Да ещё и лишних инструкций добавил, типа второго обращения к listitem и операции сложения, сохранив, при этом, условие. Кода стало меньше, но лучше он не стал :(
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

  10. #19
    Аватар для Long-
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.11.2016
    Сообщений
    130
    Репутация:
    23 ±
    Я бы сделал так:
    PHP код:
    case D_REG_SEX

         if(!
    response
               return 
    Kick(playerid); 

          
    pInfo[playerid][Sex] = listitem 1;

          if(
    pInfo[playerid][Sex] == 1)
               
    pInfo[playerid][Skin] = Random_Skin_Male[random(sizeof(Random_Skin_Male))];
          else
               
    pInfo[playerid][Skin] = Random_Skin_Female[random(sizeof(Random_Skin_Female))];

          
    CreateNewAccount(playerid); 
          return 
    true


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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    4,289
    Репутация:
    1610 ±
    Цитата Сообщение от Long- Посмотреть сообщение
    Я бы сделал так:
    PHP код:
    case D_REG_SEX

         if(!
    response
               return 
    Kick(playerid); 

          
    pInfo[playerid][Sex] = listitem 1;

          if(
    pInfo[playerid][Sex] == 1)
               
    pInfo[playerid][Skin] = Random_Skin_Male[random(sizeof(Random_Skin_Male))];
          else
               
    pInfo[playerid][Skin] = Random_Skin_Female[random(sizeof(Random_Skin_Female))];

          
    CreateNewAccount(playerid); 
          return 
    true

    Тоже стоит понимать, что ради компактности ты жертвуешь процессорным временем :)
    Тут действует принцип "китайского кода": да, код более объёмный, но все вариации прописаны сразу, за счёт чего не происходит лишних обращений к переменным и прочих действий.

    По-хорошему, здесь стоит только от лишней переменной избавится, как это сделал ты
    PHP код:
            case D_REG_SEX: { 
                if(!
    response) return Kick(playerid); 
                switch(
    listitem) { 
                    case 
    0: { 
                        
    pInfo[playerid][Sex] = 1
                        
    pInfo[playerid][Skin] = Random_Skin_Male[random(sizeof(Random_Skin_Male)]; 
                    } 
                    case 
    1: { 
                        
    pInfo[playerid][Sex] = 2
                        
    pInfo[playerid][Skin] = Random_Skin_Female[random(sizeof(Random_Skin_Female)]; 
                    } 
                } 
                
    CreateNewAccount(playerid); 
                return 
    true
            } 
    В остальном код оптимален (нет повторных вызовов ни для listitem, ни для pInfo)
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

  12. Пользователь сказал cпасибо:
    Long- (15.02.2018)
 

 
Страница 2 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя

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

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

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

Ваши права

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