View Single Post
Old 13/02/2017, 06:30 AM   #1305
stabker
High-roller
 
stabker's Avatar
 
Join Date: Mar 2012
Location: Andromeda Galaxy
Posts: 1,321
Reputation: 86
Default Re: Оптимизация кода

Quote:
Originally Posted by jakebat View Post
Как бы оптимизировать?
PHP Code:
if(strcmp(cmd"/giverank"true) == 0)
    {
        
tmp strtok(cmdtextidx);
        if(!
strlen(tmp)) return    SCM(playeridCOLOR_WHITE"Введите: /giverank [id] [ранг]");
        new 
para1;
        new 
level;
        
para1 ReturnUser(tmp);
        
tmp strtok(cmdtextidx);
        
level strval(tmp);
        if(
PlayerInfo[playerid][pMember] == 1) { if(level 14 || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 14!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 2) { if(level || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 9!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 3) { if(level 15 || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 15!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 4) { if(level || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 9!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 5) { if(level || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 9!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 6) { if(level || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 9!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 7) { if(level || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 5!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 10) { if(level 14 || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 5!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 11) { if(level || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 7!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 12) { if(level || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 9!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 13) { if(level 10 || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 10!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 14) { if(level 10 || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 10!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 15) { if(level || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 9!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 16) { if(level || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 5!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 17) { if(level || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 9!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 18) { if(level || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 9!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 19) { if(level 15 || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 15!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 21) { if(level 14 || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 14!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 23) { if(level || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 8!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 24) { if(level || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 8!"); return true; } }
        else if(
PlayerInfo[playerid][pMember] == 25) { if(level || level 1) { SCM(playeridCOLOR_GREY"Нельзя меньше 1 и больше 8!"); return true; } }
        
        if (
PlayerInfo[playerid][pMember] == && PlayerInfo[playerid][pRank] >= 12
        
||PlayerInfo[playerid][pMember] == && PlayerInfo[playerid][pRank] >= 7
        
||PlayerInfo[playerid][pMember] == && PlayerInfo[playerid][pRank] >= 13
        
||PlayerInfo[playerid][pMember] == &&PlayerInfo[playerid][pRank] >= 7
        
||PlayerInfo[playerid][pMember] == &&PlayerInfo[playerid][pRank] >= 7
        
||PlayerInfo[playerid][pMember] == &&PlayerInfo[playerid][pRank] >= 7
        
||PlayerInfo[playerid][pMember] == &&PlayerInfo[playerid][pRank] >= 4
        
||PlayerInfo[playerid][pMember] == 10 &&PlayerInfo[playerid][pRank] >= 14
        
||PlayerInfo[playerid][pMember] == 11 &&PlayerInfo[playerid][pRank] >= 7
        
||PlayerInfo[playerid][pMember] == 12 &&PlayerInfo[playerid][pRank] >= 7
        
||PlayerInfo[playerid][pMember] == 13 &&PlayerInfo[playerid][pRank] >= 7
        
||PlayerInfo[playerid][pMember] == 14 &&PlayerInfo[playerid][pRank] >= 7
        
||PlayerInfo[playerid][pMember] == 15 &&PlayerInfo[playerid][pRank] >= 7
        
||PlayerInfo[playerid][pMember] == 16 &&PlayerInfo[playerid][pRank] >= 5
        
||PlayerInfo[playerid][pMember] == 17 &&PlayerInfo[playerid][pRank] >= 7
        
||PlayerInfo[playerid][pMember] == 18 &&PlayerInfo[playerid][pRank] >= 7
        
||PlayerInfo[playerid][pMember] == 19 &&PlayerInfo[playerid][pRank] >= 12
        
||PlayerInfo[playerid][pMember] == 21 &&PlayerInfo[playerid][pRank] >= 12
        
||PlayerInfo[playerid][pMember] == 23 
        
|| PlayerInfo[playerid][pMember] == 24
        
|| PlayerInfo[playerid][pMember] == 25 )
        {
            if(!
IsPlayerConnected(para1)) return SCM(playeridCOLOR_GRAD1"Данный игрок не найден");
            if (
PlayerInfo[playerid][pMember] != PlayerInfo[para1][pMember]) return SCM(playeridCOLOR_GRAD1"Данный игрок не в вашей фракции!");
            if(
para1 == playerid) return SCM(playeridCOLOR_GREY"[Ошибка] Вы указали свой ID"); 
            if (
PlayerInfo[para1][pLeader] >= 1) return SCM(playeridCOLOR_GREY"[Ошибка] Вы указали ID лидера"); 
            if(
PlayerInfo[playerid][pMember] > && PlayerInfo[playerid][pRank] < level) return SCM(playerid,COLOR_GREY,"Ошибка");
            if(
PlayerInfo[playerid][pLeader] <= && PlayerInfo[playerid][pRank] <=  PlayerInfo[para1][pRank]) return SCM(playeridCOLOR_GREY"Ошибка");
            
PlayerInfo[para1][pRank] = level;
            
SendMes(para10x6BB3FFAA"Вас повысил/понизил до %d ранга %s",levelGN(playerid));
            
SendMes(playerid0x6BB3FFAA"Вы повысили %s до %d ранга."GN(para1),level);
        }
        else 
SCM(playeridCOLOR_GRAD1"Вы не можете повышать/понижах        return true;
    } 
Создать массив, который будет хранить соответствующую инфу для каждой фракции (начиная с какого ранга можно повышать, количество рангов).
stabker is online now   Reply With Quote