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

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

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

    Всем добрый день скажите пожалуйста можно ли как то оптимизировать данный код?
    Заранее спасибо.

      Открыть/закрыть
    PHP код:
            if(IsPlayerInRangeOfPoint(playerid,0.8,290.3806,1581.8920,1089.7699)) // Вход в хранилище банка для ограбления
            
    {
                new 
    string[132];
                if(
    Player[playerid][pRobTime] == 0)
                {
                    if(
    GetPVarInt(playerid,"pLevel") == 0)return send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Грабить банк можно только с 1 уровня.");
                    if(
    GetPlayerVirtualWorld(playerid) == 1)
                    {
                        
    ServerSetPlayerPos(playerid,266.4912,1627.2740,1086.0583);
                        
    Player[playerid][pWanted] += 5;
                        if(
    Player[playerid][pWanted] > 6)Player[playerid][pWanted] = 6;
                        
    SetPlayerWantedLevel(playerid,Player[playerid][pWanted]);
                        
    f(string"Игрок %s[%d] совершил преступление(Проникновение в хранилище) стукач: Аноним.",sendername(playerid),playerid);
                        
    SendTeamM(1COLOR_LIGHTREDstring);
                        
    SendTeamM(2COLOR_LIGHTREDstring);
                        
    f(string,"Уровень розыска повысился на 5 (Всего: %d). Причина: Проникновение в хранилище ЛС. Стукач: Аноним.",GetPlayerWantedLevel(playerid));
                        
    send(playerid,0xFFFF00AA,string);
                        return 
    1;
                    }
                    if(
    GetPlayerVirtualWorld(playerid) == 2)
                    {
                        
    ServerSetPlayerPos(playerid,266.4912,1627.2740,1086.0583);
                        
    Player[playerid][pWanted] += 5;
                        if(
    Player[playerid][pWanted] > 6)Player[playerid][pWanted] = 6;
                        
    SetPlayerWantedLevel(playerid,Player[playerid][pWanted]);
                        
    f(string"Игрок %s[%d] совершил преступление(Проникновение в хранилище) стукач: Аноним.",sendername(playerid),playerid);
                        
    SendTeamM(1COLOR_LIGHTREDstring);
                        
    SendTeamM(2COLOR_LIGHTREDstring);
                        
    f(string,"Уровень розыска повысился на 5 (Всего: %d). Причина: Проникновение в хранилище СФ. Стукач: Аноним.",GetPlayerWantedLevel(playerid));
                        
    send(playerid,0xFFFF00AA,string);
                        return 
    1;
                    }
                    if(
    GetPlayerVirtualWorld(playerid) == 3)
                    {
                        
    ServerSetPlayerPos(playerid,266.4912,1627.2740,1086.0583);
                        
    Player[playerid][pWanted] += 5;
                        if(
    Player[playerid][pWanted] > 6)Player[playerid][pWanted] = 6;
                        
    SetPlayerWantedLevel(playerid,Player[playerid][pWanted]);
                        
    f(string"Игрок %s[%d] совершил преступление(Проникновение в хранилище) стукач: Аноним.",sendername(playerid),playerid);
                        
    SendTeamM(1COLOR_LIGHTREDstring);
                        
    SendTeamM(2COLOR_LIGHTREDstring);
                        
    f(string,"Уровень розыска повысился на 5 (Всего: %d). Причина: Проникновение в хранилище ЛВ. Стукач: Аноним.",GetPlayerWantedLevel(playerid));
                        
    send(playerid,0xFFFF00AA,string);
                        return 
    1;
                    }
                }
                else 
    f(string,"Ты недавно грабил банк, попробуй через %s.",ConvertSeconds(Player[playerid][pRobTime])),send(playerid,COLOR_RED,string);
            } 

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

    Статус
    Оффлайн
    Регистрация
    06.02.2017
    Сообщений
    123
    Репутация:
    16 ±
    PHP код:
            if(IsPlayerInRangeOfPoint(playerid,0.8,290.3806,1581.8920,1089.7699)) // Вход в хранилище банка для ограбления
            
    {
                new 
    string[132],pWorld GetPlayerVirtualWorld(playerid);
                if(!
    Player[playerid][pRobTime] && pWorld 4)
                {
                    if(
    GetPVarInt(playerid,"pLevel") == 0)return send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Грабить банк можно только с 1 уровня.");
                    
    ServerSetPlayerPos(playerid,266.4912,1627.2740,1086.0583);
                    
    Player[playerid][pWanted] += 5;
                    if(
    Player[playerid][pWanted] > 6Player[playerid][pWanted] = 6;
                    
    SetPlayerWantedLevel(playerid,Player[playerid][pWanted]);
                    
    f(string"Игрок %s[%d] совершил преступление(Проникновение в хранилище) стукач: Аноним.",sendername(playerid),playerid);
                    
    SendTeamM(1COLOR_LIGHTREDstring);
                    
    SendTeamM(2COLOR_LIGHTREDstring);
                    
    f(string,"Уровень розыска повысился на 5 (Всего: %d). Причина: Проникновение в хранилище %s. Стукач: Аноним.",GetPlayerWantedLevel(playerid),(pWorld == 1)?("ЛС"):((pWorld == 2)?("СФ"):("ЛВ"));
                    
    send(playerid,0xFFFF00AA,string);
                    return 
    1;
                }
                else 
    f(string,"Ты недавно грабил банк, попробуй через %s.",ConvertSeconds(Player[playerid][pRobTime])),send(playerid,COLOR_RED,string);
            } 
    Ну, как-то так.
    Последний раз редактировалось Alpano; 22.02.2017 в 14:22.
    MyProject:
    DriftEmpire©

    Ленивые всё делают быстро, чтобы поскорее избавиться от работы.
    И делают качественно, чтобы потом не переделывать.

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

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    317
    Репутация:
    0 ±
    Цитата Сообщение от Alpano Посмотреть сообщение
    PHP код:
            if(IsPlayerInRangeOfPoint(playerid,0.8,290.3806,1581.8920,1089.7699)) // Вход в хранилище банка для ограбления
            
    {
                new 
    string[132],pWorld GetPlayerVirtualWorld(playerid);
                if(!
    Player[playerid][pRobTime] && pWorld 4)
                {
                    if(
    GetPVarInt(playerid,"pLevel") == 0)return send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Грабить банк можно только с 1 уровня.");
                    
    ServerSetPlayerPos(playerid,266.4912,1627.2740,1086.0583);
                    
    Player[playerid][pWanted] += 5;
                    if(
    Player[playerid][pWanted] > 6Player[playerid][pWanted] = 6;
                    
    SetPlayerWantedLevel(playerid,Player[playerid][pWanted]);
                    
    f(string"Игрок %s[%d] совершил преступление(Проникновение в хранилище) стукач: Аноним.",sendername(playerid),playerid);
                    
    SendTeamM(1COLOR_LIGHTREDstring);
                    
    SendTeamM(2COLOR_LIGHTREDstring);
                    
    f(string,"Уровень розыска повысился на 5 (Всего: %d). Причина: Проникновение в хранилище %s. Стукач: Аноним.",GetPlayerWantedLevel(playerid),(pWorld == 1)?("ЛС"):((pWorld == 2)?("СФ"):("ЛВ"));
                    
    send(playerid,0xFFFF00AA,string);
                    return 
    1;
                }
                else 
    f(string,"Ты недавно грабил банк, попробуй через %s.",ConvertSeconds(Player[playerid][pRobTime])),send(playerid,COLOR_RED,string);
            } 
    Ну, как-то так.
    Спасибо за помощь.

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

    И еще если такой код заменить на такой тоже лучше будет?


      Открыть/закрыть
    PHP код:
    if(IsPlayerInRangeOfPoint(playerid,0.8,290.3806,1581.8920,1089.7699)) // Вход в хранилище банка для ограбления
            
    {
                new 
    string[132],pWorld GetPlayerVirtualWorld(playerid);
                if(!
    Player[playerid][pRobTime] && pWorld 4)
                {
                    if(
    GetPVarInt(playerid,"pLevel") == 0)return send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Грабить банк можно только с 1 уровня.");
                    
    ServerSetPlayerPos(playerid,266.4912,1627.2740,1086.0583);
                    
    Player[playerid][pWanted] += 5;
                    if(
    Player[playerid][pWanted] > 6Player[playerid][pWanted] = 6;
                    
    SetPlayerWantedLevel(playerid,Player[playerid][pWanted]);
                    
    f(string"Игрок %s[%d] совершил преступление(Проникновение в хранилище) стукач: Аноним.",sendername(playerid),playerid);
                    
    SendTeamM(1COLOR_LIGHTREDstring);
                    
    SendTeamM(2COLOR_LIGHTREDstring);
                    
    f(string,"Уровень розыска повысился на 5 (Всего: %d). Причина: Проникновение в хранилище %s. Стукач: Аноним.",GetPlayerWantedLevel(playerid),(pWorld == 1)?("ЛС"):((pWorld == 2)?("СФ"):("ЛВ"));
                    
    send(playerid,0xFFFF00AA,string);
                    return 
    1;
                }
                else 
    f(string,"Ты недавно грабил банк, попробуй через %s.",ConvertSeconds(Player[playerid][pRobTime])),send(playerid,COLOR_RED,string);
            } 



      Открыть/закрыть
    PHP код:
                    if(IsPlayerInRangeOfPoint(playerid,0.8,290.3806,1581.8920,1089.7699)) // Вход в хранилище банка для ограбления
            
    {
                if(!
    Player[playerid][pRobTime])
                {
                    if(
    GetPVarInt(playerid,"pLevel") == 0)return send(playerid,COLOR_RED,"[ОШИБКА] {FFFFFF}Грабить банк можно только с 1 уровня.");
                    new 
    World GetPlayerVirtualWorld(playerid);
                    
    ServerSetPlayerPos(playerid,266.4912,1627.2740,1086.0583);
                    
    Player[playerid][pWanted] += 5;
                    if(
    Player[playerid][pWanted] > 6)Player[playerid][pWanted] = 6;
                    
    SetPlayerWantedLevel(playerid,Player[playerid][pWanted]);
                    static const 
    kop[] = "%s[%d] %s преступление (Проникновение в хранилище %s). Стукач: Аноним.";
                    new 
    str[sizeof(kop)+MAX_PLAYER_NAME+3+2+2-8];
                    
    format(str,sizeof(str),kop,sendername(playerid),playerid,(World == 1)?("ЛС"):((World == 2)?("СФ"):("ЛВ")),GetPVarInt(playerid,"Sex") == ? ("совршил") : ("совершила"));
                    
    SendTeamM(1,COLOR_LIGHTRED,str);
                    
    SendTeamM(2,COLOR_LIGHTRED,str);
                    static const 
    pronik[] = "Уровень розыска повысился на 5 (Всего: %d). Причина: Проникновение в хранилище %s. Стукач: Аноним.";
                    new 
    bank[sizeof(pronik)+2+2-4];
                    
    format(bank,sizeof(bank),pronik,GetPlayerWantedLevel(playerid),(World == 1)?("ЛС"):((World == 2)?("СФ"):("ЛВ")));
                    
    send(playerid,0xFFFF00AA,bank);
                    return 
    1;
                }
                else
                {
                    static const 
    cherez[] = "[ОШИБКА] {FFFFFF}Вы уже грабили банк, попробуйте через %s.";
                    new 
    potom[sizeof(cherez)+2-2];
                    
    format(potom,sizeof(potom),cherez,ConvertSeconds(Player[playerid][pRobTime]));
                    
    send(playerid,COLOR_RED,potom);
                }
            } 

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

    Статус
    Оффлайн
    Регистрация
    06.02.2017
    Сообщений
    123
    Репутация:
    16 ±
    Цитата Сообщение от kala4iks Посмотреть сообщение
    PHP код:
    ...new potom[sizeof(cherez)+2-2]... 


    Ставь то, что тебе кажется лучше.
    Лучшая оптимизация - это хорошо читаемый, логичный код
    MyProject:
    DriftEmpire©

    Ленивые всё делают быстро, чтобы поскорее избавиться от работы.
    И делают качественно, чтобы потом не переделывать.

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

    Статус
    Оффлайн
    Регистрация
    27.02.2015
    Сообщений
    317
    Репутация:
    0 ±
    Цитата Сообщение от Alpano Посмотреть сообщение


    Ставь то, что тебе кажется лучше.
    Лучшая оптимизация - это хорошо читаемый, логичный код
    Я там уже подправил забыл посчитать просто.

 

 

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

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

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

Ваши права

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