AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   How to optimize this? (PLEASE) (https://forums.alliedmods.net/showthread.php?t=117198)

OptimizeR 01-30-2010 00:54

How to optimize this? (PLEASE)
 
PHP Code:

public menu_puntos(id)
{
    static 
Items[99999]
    static 
Items2[99999]
    static 
Items3[99999]
    new 
name[33]
    
get_user_name(idname32)
    
formatex(Itemscharsmax(Items),"\yMenu de mejoras humanas^n^nTienes \w%d\y puntos para gastar^nTienes \w%d\y puntos gastados^nGanaras tu proximo punto al matar un\r Nemesis"g_puntos[id], g_gastados[id])
    new 
Menu menu_create(Items"menu_habilidades456")
    
    
formatex(Items2charsmax(Items2), "\w Resetear Mejoras (\r3 puntos\w)")
    
formatex(Items3charsmax(Items3), "\d Resetear Mejoras (\r3 puntos\w)")
    
    
    
// OPCION 1
    
    
if (g_banco[id] == 0)
    {
        if (
g_puntos[id] >= 1)
            
menu_additem(Menu"\w Aumentar Daño (1) (\r1 puntos\w)""1"0)
        else
            
menu_additem(Menu"\d Aumentar Daño (1) (\r1 puntos\d)""1"0)
    }
    if (
g_banco[id] == 1)
    {
        if (
g_puntos[id] >= 3)
            
menu_additem(Menu"\w Aumentar Daño (2) (\r3 puntos\w)""1"0)
        else
            
menu_additem(Menu"\d Aumentar Daño (2) (\r3 puntos\d)""1"0)
    }
    if (
g_banco[id] == 2)
    {
        if (
g_puntos[id] >= 5)
            
menu_additem(Menu"\w Aumentar Daño (3) (\r5 puntos\w)""1"0)
        else
            
menu_additem(Menu"\d Aumentar Daño (3) (\r5 puntos\d)""1"0)
    }
    if (
g_banco[id] == 3)
    {
        if (
g_puntos[id] >= 9)
            
menu_additem(Menu"\w Aumentar Daño (4) (\r9 puntos\w)""1"0)
        else
            
menu_additem(Menu"\d Aumentar Daño (4) (\r9 puntos\d)""1"0)
    }
    if (
g_banco[id] == 4)
    {
        if (
g_puntos[id] >= 12)
            
menu_additem(Menu"\w Aumentar Daño (5) (\r12 puntos\w)""1"0)
        else
            
menu_additem(Menu"\d Aumentar Daño (5) (\r12 puntos\d)""1"0)
    }
    if (
g_banco[id] == 5)
    {
        if (
g_puntos[id] >= 15)
            
menu_additem(Menu"\w Aumentar Daño (6) (\r 15 puntos\w)""1"0)
        else
            
menu_additem(Menu"\d Aumentar Daño (6) (\r 15 puntos\d)""1"0)
    }
    if (
g_banco[id] == 6)
    {
        if (
g_puntos[id] >= 20)
            
menu_additem(Menu"\w Aumentar Daño (7) (\r 20 puntos\w)""1"0)
        else
            
menu_additem(Menu"\d Aumentar Daño (7) (\r 20 puntos\d)""1"0)
    }
    if (
g_banco[id] == 7)
    {
        if (
g_puntos[id] >= 24)
            
menu_additem(Menu"\w Aumentar Daño (8) (\r 24 puntos\w)""1"0)
        else
            
menu_additem(Menu"\d Aumentar Daño (8) (\r 24 puntos\d)""1"0)
    }
    if (
g_banco[id] == 8)
    {
        if (
g_puntos[id] >= 32)
            
menu_additem(Menu"\w Aumentar Daño (9) (\r 32 puntos\w)""1"0)
        else
            
menu_additem(Menu"\d Aumentar Daño (9) (\r 32 puntos\d)""1"0)
    }
    if (
g_banco[id] == 9)
    {
        if (
g_puntos[id] >= 42)
            
menu_additem(Menu"\w Aumentar Daño (10) (\r 42 puntos\w)""1"0)
        else
            
menu_additem(Menu"\d Aumentar Daño (10) (\r 42 puntos\d)""1"0)
    }
    
    if (
g_banco[id] == 10)
    {
        
menu_additem(Menu"\w Aumentar Daño (\yMAX\w)""1"0)
    }
    
    
// OPCION 2
    
    
if (g_banco1[id] == 0)
    {
        if (
g_puntos[id] >= 1)
            
menu_additem(Menu"\w Aumentar Vida (1) (\r1 puntos\w)""2"0)
        else
            
menu_additem(Menu"\d Aumentar Vida (1) (\r1 puntos\d)""2"0)
    }
    if (
g_banco1[id] == 1)
    {
        if (
g_puntos[id] >= 3)
            
menu_additem(Menu"\w Aumentar Vida (2) (\r3 puntos\w)""2"0)
        else
            
menu_additem(Menu"\d Aumentar Vida (2) (\r3 puntos\d)""2"0)
    }
    if (
g_banco1[id] == 2)
    {
        if (
g_puntos[id] >= 5)
            
menu_additem(Menu"\w Aumentar Vida (3) (\r5 puntos\w)""2"0)
        else
            
menu_additem(Menu"\d Aumentar Vida (3) (\r5 puntos\d)""2"0)
    }
    if (
g_banco1[id] == 3)
    {
        if (
g_puntos[id] >= 9)
            
menu_additem(Menu"\w Aumentar Vida (4) (\r9 puntos\w)""2"0)
        else
            
menu_additem(Menu"\d Aumentar Vida (4) (\r9 puntos\d)""2"0)
    }
    if (
g_banco1[id] == 4)
    {
        if (
g_puntos[id] >= 12)
            
menu_additem(Menu"\w Aumentar Vida (5) (\r12 puntos\w)""2"0)
        else
            
menu_additem(Menu"\d Aumentar Vida (5) (\r12 puntos\d)""2"0)
    }
    if (
g_banco1[id] == 5)
    {
        if (
g_puntos[id] >= 15)
            
menu_additem(Menu"\w Aumentar Vida (6) (\r15 puntos\w)""2"0)
        else
            
menu_additem(Menu"\d Aumentar Vida (6) (\r15 puntos\d)""2"0)
    }
    if (
g_banco1[id] == 6)
    {
        if (
g_puntos[id] >= 20)
            
menu_additem(Menu"\w Aumentar Vida (7) (\r20 puntos\w)""2"0)
        else
            
menu_additem(Menu"\d Aumentar Vida (7) (\r20 puntos\d)""2"0)
    }
    if (
g_banco1[id] == 7)
    {
        if (
g_puntos[id] >= 24)
            
menu_additem(Menu"\w Aumentar Vida (8) (\r24 puntos\w)""2"0)
        else
            
menu_additem(Menu"\d Aumentar Vida (8) (\r24 puntos\d)""2"0)
    }
    if (
g_banco1[id] == 8)
    {
        if (
g_puntos[id] >= 32)
            
menu_additem(Menu"\w Aumentar Vida (9) (\r32 puntos\w)""2"0)
        else
            
menu_additem(Menu"\d Aumentar Vida (9) (\r32 puntos\d)""2"0)
    }
    if (
g_banco1[id] == 9)
    {
        if (
g_puntos[id] >= 42)
            
menu_additem(Menu"\w Aumentar Vida (10) (\r42 puntos\w)""2"0)
        else
            
menu_additem(Menu"\d Aumentar Vida (10) (\r42 puntos\d)""2"0)
    }
    if (
g_banco1[id] == 10)
    {
        
menu_additem(Menu"\w Aumentar Vida (\yMAX\w)""2"0)
    }
    
    
// OPCION 3
    
    
if (g_banco2[id] == 0)
    {
        if (
g_puntos[id] >= 1)
            
menu_additem(Menu"\w Aumentar Velocidad (1) (\r1 puntos\w)^n^n""3"0)
        else
            
menu_additem(Menu"\d Aumentar Velocidad (1) (\r1 puntos\d)^n^n""3"0)
    }
    if (
g_banco2[id] == 1)
    {
        if (
g_puntos[id] >= 3)
            
menu_additem(Menu"\w Aumentar Velocidad (2) (\r3 puntos\w)^n^n""3"0)
        else
            
menu_additem(Menu"\d Aumentar Velocidad (2) (\r3 puntos\d)^n^n""3"0)
    }
    if (
g_banco2[id] == 2)
    {
        if (
g_puntos[id] >= 5)
            
menu_additem(Menu"\w Aumentar Velocidad (3) (\r5 puntos\w)^n^n""3"0)
        else
            
menu_additem(Menu"\d Aumentar Velocidad (3) (\r5 puntos\d)^n^n""3"0)
    }
    if (
g_banco2[id] == 3)
    {
        if (
g_puntos[id] >= 9)
            
menu_additem(Menu"\w Aumentar Velocidad (4) (\r9 puntos\w)^n^n""3"0)
        else
            
menu_additem(Menu"\d Aumentar Velocidad (4) (\r9 puntos\d)^n^n""3"0)
    }
    if (
g_banco2[id] == 4)
    {
        if (
g_puntos[id] >= 12)
            
menu_additem(Menu"\w Aumentar Velocidad (5) (\r12 puntos\w)^n^n""3"0)
        else
            
menu_additem(Menu"\d Aumentar Velocidad (5) (\r12 puntos\d)^n^n""3"0)
    }
    if (
g_banco2[id] == 5)
    {
        if (
g_puntos[id] >= 15)
            
menu_additem(Menu"\w Aumentar Velocidad (6) (\r15 puntos\w)^n^n""3"0)
        else
            
menu_additem(Menu"\d Aumentar Velocidad (6) (\r15 puntos\d)^n^n""3"0)
    }
    if (
g_banco2[id] == 6)
    {
        if (
g_puntos[id] >= 20)
            
menu_additem(Menu"\w Aumentar Velocidad (7) (\r20 puntos\w)^n^n""3"0)
        else
            
menu_additem(Menu"\d Aumentar Velocidad (7) (\r20 puntos\d)^n^n""3"0)
    }
    if (
g_banco2[id] == 7)
    {
        if (
g_puntos[id] >= 24)
            
menu_additem(Menu"\w Aumentar Velocidad (8) (\r24 puntos\w)^n^n""3"0)
        else
            
menu_additem(Menu"\d Aumentar Velocidad (8) (\r24 puntos\d)^n^n""3"0)
    }
    if (
g_banco2[id] == 8)
    {
        if (
g_puntos[id] >= 32)
            
menu_additem(Menu"\w Aumentar Velocidad (9) (\r32 puntos\w)^n^n""3"0)
        else
            
menu_additem(Menu"\d Aumentar Velocidad (9) (\r32 puntos\d)^n^n""3"0)
    }
    if (
g_banco2[id] == 9)
    {
        if (
g_puntos[id] >= 42)
            
menu_additem(Menu"\w Aumentar Velocidad (10) (\r42 puntos\w)^n^n""3"0)
        else
            
menu_additem(Menu"\d Aumentar Velocidad (10) (\r42 puntos\d)^n^n""3"0)
    }
    if (
g_banco2[id] == 10)
    {
        
menu_additem(Menu"\w Aumentar Velocidad (\yMAX\w)""3"0)
    }
    
    
// OPCION 4
    
    
if (g_banco[id] >= 10 || g_banco1[id] >= 10 || g_banco2[id] >= 10)
    {
        if (
g_banco4[id] == 0)
        {
            if (
g_puntos[id] >= 1)
                
menu_additem(Menu"\w Aumentar Armadura (1) (\r1 puntos\w)^n^n""4"0)
            else
                
menu_additem(Menu"\d Aumentar Armadura (1) (\r1 puntos\d)^n^n""4"0)
        }
        if (
g_banco4[id] == 1)
        {
            if (
g_puntos[id] >= 3)
                
menu_additem(Menu"\w Aumentar Armadura (2) (\r3 puntos\w)^n^n""4"0)
            else
                
menu_additem(Menu"\d Aumentar Armadura (2) (\r3 puntos\d)^n^n""4"0)
        }
        if (
g_banco4[id] == 2)
        {
            if (
g_puntos[id] >= 5)
                
menu_additem(Menu"\w Aumentar Armadura (3) (\r5 puntos\w)^n^n""4"0)
            else
                
menu_additem(Menu"\d Aumentar Armadura (3) (\r5 puntos\d)^n^n""4"0)
        }
        if (
g_banco4[id] == 3)
        {
            if (
g_puntos[id] >= 9)
                
menu_additem(Menu"\w Aumentar Armadura (4) (\r9 puntos\w)^n^n""4"0)
            else
                
menu_additem(Menu"\d Aumentar Armadura (4) (\r9 puntos\d)^n^n""4"0)
        }
        if (
g_banco4[id] == 4)
        {
            if (
g_puntos[id] >= 12)
                
menu_additem(Menu"\w Aumentar Armadura (5) (\r12 puntos\w)^n^n""4"0)
            else
                
menu_additem(Menu"\d Aumentar Armadura (5) (\r12 puntos\d)^n^n""4"0)
        }
        if (
g_banco4[id] == 5)
        {
            if (
g_puntos[id] >= 15)
                
menu_additem(Menu"\w Aumentar Armadura (6) (\r15 puntos\w)^n^n""4"0)
            else
                
menu_additem(Menu"\d Aumentar Armadura (6) (\r15 puntos\d)^n^n""4"0)
        }
        if (
g_banco4[id] == 6)
        {
            if (
g_puntos[id] >= 20)
                
menu_additem(Menu"\w Aumentar Armadura (7) (\r20 puntos\w)^n^n""4"0)
            else
                
menu_additem(Menu"\d Aumentar Armadura (7) (\r20 puntos\d)^n^n""4"0)
        }
        if (
g_banco4[id] == 7)
        {
            if (
g_puntos[id] >= 24)
                
menu_additem(Menu"\w Aumentar Armadura (8) (\r24 puntos\w)^n^n""4"0)
            else
                
menu_additem(Menu"\d Aumentar Armadura (8) (\r24 puntos\d)^n^n""4"0)
        }
        if (
g_banco4[id] == 8)
        {
            if (
g_puntos[id] >= 32)
                
menu_additem(Menu"\w Aumentar Armadura (9) (\r32 puntos\w)^n^n""4"0)
            else
                
menu_additem(Menu"\d Aumentar Armadura (9) (\r32 puntos\d)^n^n""4"0)
        }
        if (
g_banco4[id] == 9)
        {
            if (
g_puntos[id] >= 42)
                
menu_additem(Menu"\w Aumentar Armadura (10) (\r42 puntos\w)^n^n""4"0)
            else
                
menu_additem(Menu"\d Aumentar Armadura (10) (\r42 puntos\d)^n^n""4"0)
        }
        if (
g_banco4[id] == 10)
        {
            
menu_additem(Menu"\w Aumentar Armadura (\yMAX\w)^n^n""4"0)
        }
        if (
g_puntos[id] >= 3)
        {
            
menu_additem(MenuItems2"5"0)
        }
        else
        {
            
menu_additem(MenuItems3"5"0)
        }
    }
    else
    {
        if (
g_puntos[id] >= 3)
        {
            
menu_additem(MenuItems2"4"0)
        }
        else
        {
            
menu_additem(MenuItems3"4"0)
        }
    }
    
    
menu_setprop(MenuMPROP_EXITNAME"\ySalir")
    
menu_display(idMenu0)
}

public 
menu_habilidades456(idMenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(Menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
Data[6], Name[64]
    new 
AccessCallback
    menu_item_getinfo
(MenuitemAccessDatasizeof(Data)-1Namesizeof(Name)-1Callback)
    
    new 
Key str_to_num(Data)
    
    switch (
Key)
    {
        case 
1:
        {
            if (
g_banco[id] == 9)
            {
                if (
g_puntos[id] >= 42)
                {
                    
g_banco[id]++
                    
g_puntos[id] -= 42
                    g_gastados
[id] += 42
                
}
            }
            if (
g_banco[id] == 8)
            {
                if (
g_puntos[id] >= 32)
                {
                    
g_banco[id]++
                    
g_puntos[id] -= 32
                    g_gastados
[id] += 32
                
}
            }
            if (
g_banco[id] == 7)
            {
                if (
g_puntos[id] >= 24)
                {
                    
g_banco[id]++
                    
g_puntos[id] -= 24
                    g_gastados
[id] += 24
                
}
            }
            if (
g_banco[id] == 6)
            {
                if (
g_puntos[id] >= 20)
                {
                    
g_banco[id]++
                    
g_puntos[id] -= 20
                    g_gastados
[id] += 20
                
}
            }
            if (
g_banco[id] == 5)
            {
                if (
g_puntos[id] >= 15)
                {
                    
g_banco[id]++
                    
g_puntos[id] -= 15
                    g_gastados
[id] += 15
                
}
            }
            if (
g_banco[id] == 4)
            {
                if (
g_puntos[id] >= 12)
                {
                    
g_banco[id]++
                    
g_puntos[id] -= 12
                    g_gastados
[id] += 12
                
}
            }
            if (
g_banco[id] == 3)
            {
                if (
g_puntos[id] >= 9)
                {
                    
g_banco[id]++
                    
g_puntos[id] -= 9
                    g_gastados
[id] += 9
                
}
            }
            if (
g_banco[id] == 2)
            {
                if (
g_puntos[id] >= 5)
                {
                    
g_banco[id]++
                    
g_puntos[id] -= 5
                    g_gastados
[id] += 5
                
}
            }
            if (
g_banco[id] == 1)
            {
                if (
g_puntos[id] >= 3)
                {
                    
g_banco[id]++
                    
g_puntos[id] -= 3
                    g_gastados
[id] += 3
                
}
            }
            if (
g_banco[id] == 0)
            {
                if (
g_puntos[id] >= 1)
                {
                    
g_banco[id]++
                    
g_puntos[id] -= 1
                    g_gastados
[id]++
                }
            }
            
menu_puntos(id)
        }
        case 
2:
        {
            if (
g_banco1[id] == 9)
            {
                if (
g_puntos[id] >= 42)
                {
                    
g_banco1[id]++
                    
g_puntos[id] -= 42
                    g_gastados
[id] += 42
                
}
            }
            if (
g_banco1[id] == 8)
            {
                if (
g_puntos[id] >= 32)
                {
                    
g_banco1[id]++
                    
g_puntos[id] -= 32
                    g_gastados
[id] += 32
                
}
            }
            if (
g_banco1[id] == 7)
            {
                if (
g_puntos[id] >= 24)
                {
                    
g_banco1[id]++
                    
g_puntos[id] -= 24
                    g_gastados
[id] += 24
                
}
            }
            if (
g_banco1[id] == 6)
            {
                if (
g_puntos[id] >= 20)
                {
                    
g_banco1[id]++
                    
g_puntos[id] -= 20
                    g_gastados
[id] += 20
                
}
            }
            if (
g_banco1[id] == 5)
            {
                if (
g_puntos[id] >= 15)
                {
                    
g_banco1[id]++
                    
g_puntos[id] -= 15
                    g_gastados
[id] += 15
                
}
            }
            if (
g_banco1[id] == 4)
            {
                if (
g_puntos[id] >= 12)
                {
                    
g_banco1[id]++
                    
g_puntos[id] -= 12
                    g_gastados
[id] += 12
                
}
            }
            if (
g_banco1[id] == 3)
            {
                if (
g_puntos[id] >= 9)
                {
                    
g_banco1[id]++
                    
g_puntos[id] -= 9
                    g_gastados
[id] += 9
                
}
            }
            if (
g_banco1[id] == 2)
            {
                if (
g_puntos[id] >= 5)
                {
                    
g_banco1[id]++
                    
g_puntos[id] -= 5
                    g_gastados
[id] += 5
                    
                
}
            }
            if (
g_banco1[id] == 1)
            {
                if (
g_puntos[id] >= 3)
                {
                    
g_banco1[id]++
                    
g_puntos[id] -= 3
                    g_gastados
[id] += 3
                
}
            }
            if (
g_banco1[id] == 0)
            {
                if (
g_puntos[id] >= 1)
                {
                    
g_banco1[id]++
                    
g_puntos[id] -= 1
                    g_gastados
[id] += 1
                
}
            }
            
menu_puntos(id)
        }
        
        case 
3:
        {
            if (
g_banco2[id] == 9)
            {
                if (
g_puntos[id] >= 42)
                {
                    
g_banco2[id]++
                    
g_puntos[id] -= 42
                    g_gastados
[id] += 42
                
}
            }
            if (
g_banco2[id] == 8)
            {
                if (
g_puntos[id] >= 32)
                {
                    
g_banco2[id]++
                    
g_puntos[id] -= 32
                    g_gastados
[id] += 32
                
}
            }
            if (
g_banco2[id] == 7)
            {
                if (
g_puntos[id] >= 24)
                {
                    
g_banco2[id]++
                    
g_puntos[id] -= 24
                    g_gastados
[id] += 24
                
}
            }
            if (
g_banco2[id] == 6)
            {
                if (
g_puntos[id] >= 20)
                {
                    
g_banco2[id]++
                    
g_puntos[id] -= 20
                    g_gastados
[id] += 20
                
}
            }
            if (
g_banco2[id] == 5)
            {
                if (
g_puntos[id] >= 15)
                {
                    
g_banco2[id]++
                    
g_puntos[id] -= 15
                    g_gastados
[id] += 15
                
}
            }
            if (
g_banco2[id] == 4)
            {
                if (
g_puntos[id] >= 12)
                {
                    
g_banco2[id]++
                    
g_puntos[id] -= 12
                    g_gastados
[id] += 12
                
}
            }
            if (
g_banco2[id] == 3)
            {
                if (
g_puntos[id] >= 9)
                {
                    
g_banco2[id]++
                    
g_puntos[id] -= 9
                    g_gastados
[id] += 9
                
}
            }
            if (
g_banco2[id] == 2)
            {
                if (
g_puntos[id] >= 5)
                {
                    
g_banco2[id]++
                    
g_puntos[id] -= 5
                    g_gastados
[id] += 5
                
}
            }
            if (
g_banco2[id] == 1)
            {
                if (
g_puntos[id] >= 3)
                {
                    
g_banco2[id]++
                    
g_puntos[id] -= 3
                    g_gastados
[id] += 3
                
}
            }
            if (
g_banco2[id] == 0)
            {
                if (
g_puntos[id] >= 1)
                {
                    
g_banco2[id]++
                    
g_puntos[id] -= 1
                    g_gastados
[id] += 1
                
}
            }
            
menu_puntos(id)
        }
        
        case 
4:
        {
            if (
g_banco[id] >= 10 || g_banco1[id] >= 10 || g_banco2[id] >= 10)
            {
                if (
g_banco4[id] == 9)
                {
                    if (
g_puntos[id] >= 42)
                    {
                        
g_banco4[id]++
                        
g_puntos[id] -= 42
                        g_gastados
[id] += 42
                    
}
                }
                if (
g_banco4[id] == 8)
                {
                    if (
g_puntos[id] >= 32)
                    {
                        
g_banco4[id]++
                        
g_puntos[id] -= 32
                        g_gastados
[id] += 32
                    
}
                }
                if (
g_banco4[id] == 7)
                {
                    if (
g_puntos[id] >= 24)
                    {
                        
g_banco4[id]++
                        
g_puntos[id] -= 24
                        g_gastados
[id] += 24
                    
}
                }
                if (
g_banco4[id] == 6)
                {
                    if (
g_puntos[id] >= 20)
                    {
                        
g_banco4[id]++
                        
g_puntos[id] -= 20
                        g_gastados
[id] += 20
                    
}
                }
                if (
g_banco4[id] == 5)
                {
                    if (
g_puntos[id] >= 15)
                    {
                        
g_banco4[id]++
                        
g_puntos[id] -= 15
                        g_gastados
[id] += 15
                    
}
                }
                if (
g_banco4[id] == 4)
                {
                    if (
g_puntos[id] >= 12)
                    {
                        
g_banco4[id]++
                        
g_puntos[id] -= 12
                        g_gastados
[id] += 12
                    
}
                }
                if (
g_banco4[id] == 3)
                {
                    if (
g_puntos[id] >= 9)
                    {
                        
g_banco4[id]++
                        
g_puntos[id] -= 9
                        g_gastados
[id] += 9
                    
}
                }
                if (
g_banco4[id] == 2)
                {
                    if (
g_puntos[id] >= 5)
                    {
                        
g_banco4[id]++
                        
g_puntos[id] -= 5
                        g_gastados
[id] += 5
                    
}
                }
                if (
g_banco4[id] == 1)
                {
                    if (
g_puntos[id] >= 3)
                    {
                        
g_banco4[id]++
                        
g_puntos[id] -= 3
                        g_gastados
[id] += 3
                    
}
                }
                if (
g_banco4[id] == 0)
                {
                    if (
g_puntos[id] >= 1)
                    {
                        
g_banco4[id]++
                        
g_puntos[id] -= 1
                        g_gastados
[id]++
                    }
                }
                
menu_puntos(id)
                return 
PLUGIN_HANDLED
            
}
            if (
g_puntos[id] >= 3)
            {
                
g_banco[id] = 0
                g_banco1
[id] = 0
                g_banco2
[id] = 0
                g_banco4
[id] = 0
                g_puntos
[id] -= 3
                g_puntos
[id] += g_gastados[id]
                
zp_colored_print(id"^x04[ZA]^x01 Puntos devueltos:^x04 %d^x01 Puntos actuales:^x04 %d"g_gastados[id], g_puntos[id])
                
g_gastados[id] = 0
            
}
            
menu_puntos(id)
        }
        case 
5:
        {
            if (
g_puntos[id] >= 3)
            {
                
g_banco[id] = 0
                g_banco1
[id] = 0
                g_banco2
[id] = 0
                g_puntos
[id] -= 3
                g_puntos
[id] += g_gastados[id]
                
zp_colored_print(id"^x04[ZA]^x01 Puntos devueltos:^x04 %d^x01 Puntos actuales:^x04 %d"g_gastados[id], g_puntos[id])
                
g_gastados[id] = 0
            
}
            
menu_puntos(id)
        }
    }
    
menu_destroy(Menu)
    
SaveExp(id)
    return 
PLUGIN_HANDLED



fysiks 01-30-2010 04:01

Re: How to optimize this? (PLEASE)
 
Use switches in instead of if() if() if() if() if() if(). One for ever "option"

OptimizeR 01-30-2010 14:24

Re: How to optimize this? (PLEASE)
 
Quote:

Originally Posted by fysiks (Post 1072532)
Use switches in instead of if() if() if() if() if() if(). One for ever "option"

Look this, is ok?

PHP Code:

public menu_puntos(id)
{
    static 
Items[999], Items2[999], Items3[999]
    new 
name[33], Menu
    get_user_name
(idname32)
    
formatex(Itemscharsmax(Items),"\yMenu de mejoras humanas^n^nTienes \w%d\y puntos para gastar^nTienes \w%d\y puntos gastados^nGanaras tu proximo punto al matar un\r Nemesis"g_puntos[id], g_gastados[id])
    
Menu menu_create(Items"menu_habilidades456")
    
    
formatex(Items2charsmax(Items2), "\w Resetear Mejoras (\r3 puntos\w)")
    
formatex(Items3charsmax(Items3), "\d Resetear Mejoras (\r3 puntos\w)")
    
    
    
// OPCION 1
    
static banco1
    banco1 
g_banco[id]
    switch(
banco1)
    {
        case 
0:
        {
            if (
g_puntos[id] >= 1)
            
menu_additem(Menu"\w Aumentar Daño (1) (\r1 puntos\w)""1"0)
            else
            
menu_additem(Menu"\d Aumentar Daño (1) (\r1 puntos\d)""1"0)
        }
        case 
1:
        {
            if (
g_puntos[id] >= 3)
            
menu_additem(Menu"\w Aumentar Daño (2) (\r3 puntos\w)""1"0)
            else
            
menu_additem(Menu"\d Aumentar Daño (2) (\r3 puntos\d)""1"0)
        }
        case 
2:
        {
            if (
g_puntos[id] >= 5)
            
menu_additem(Menu"\w Aumentar Daño (3) (\r5 puntos\w)""1"0)
            else
            
menu_additem(Menu"\d Aumentar Daño (3) (\r5 puntos\d)""1"0)
        }
        case 
3:
        {
            if (
g_puntos[id] >= 9)
            
menu_additem(Menu"\w Aumentar Daño (4) (\r9 puntos\w)""1"0)
            else
            
menu_additem(Menu"\d Aumentar Daño (4) (\r9 puntos\d)""1"0)
        }
        case 
4:
        {
            if (
g_puntos[id] >= 12)
            
menu_additem(Menu"\w Aumentar Daño (5) (\r12 puntos\w)""1"0)
            else
            
menu_additem(Menu"\d Aumentar Daño (5) (\r12 puntos\d)""1"0)
        }
        case 
5:
        {
            if (
g_puntos[id] >= 15)
            
menu_additem(Menu"\w Aumentar Daño (6) (\r 15 puntos\w)""1"0)
            else
            
menu_additem(Menu"\d Aumentar Daño (6) (\r 15 puntos\d)""1"0)
        }
        case 
6:
        {
            if (
g_puntos[id] >= 20)
            
menu_additem(Menu"\w Aumentar Daño (7) (\r 20 puntos\w)""1"0)
            else
            
menu_additem(Menu"\d Aumentar Daño (7) (\r 20 puntos\d)""1"0)
        }
        case 
7:
        {
            if (
g_puntos[id] >= 24)
            
menu_additem(Menu"\w Aumentar Daño (8) (\r 24 puntos\w)""1"0)
            else
            
menu_additem(Menu"\d Aumentar Daño (8) (\r 24 puntos\d)""1"0)
        }
        case 
8:
        {
            if (
g_puntos[id] >= 32)
            
menu_additem(Menu"\w Aumentar Daño (9) (\r 32 puntos\w)""1"0)
            else
            
menu_additem(Menu"\d Aumentar Daño (9) (\r 32 puntos\d)""1"0)
        }
        case 
9:
        {
            if (
g_puntos[id] >= 42)
            
menu_additem(Menu"\w Aumentar Daño (10) (\r 42 puntos\w)""1"0)
            else
            
menu_additem(Menu"\d Aumentar Daño (10) (\r 42 puntos\d)""1"0)
        }
        case 
10menu_additem(Menu"\w Aumentar Daño (\yMAX\w)""1"0)
    }
    
    static 
banco2
    banco2 
g_banco1[id]

    switch(
banco2)
    {
        case 
0:
        {
            if (
g_puntos[id] >= 1)
            
menu_additem(Menu"\w Aumentar Vida (1) (\r1 puntos\w)""2"0)
            else
            
menu_additem(Menu"\d Aumentar Vida (1) (\r1 puntos\d)""2"0)
        }
        case 
1:
        {
            if (
g_puntos[id] >= 3)
            
menu_additem(Menu"\w Aumentar Vida (2) (\r3 puntos\w)""2"0)
            else
            
menu_additem(Menu"\d Aumentar Vida (2) (\r3 puntos\d)""2"0)
        }
        case 
2:
        {
            if (
g_puntos[id] >= 5)
            
menu_additem(Menu"\w Aumentar Vida (3) (\r5 puntos\w)""2"0)
            else
            
menu_additem(Menu"\d Aumentar Vida (3) (\r5 puntos\d)""2"0)
        }
        case 
3:
        {
            if (
g_puntos[id] >= 9)
            
menu_additem(Menu"\w Aumentar Vida (4) (\r9 puntos\w)""2"0)
            else
            
menu_additem(Menu"\d Aumentar Vida (4) (\r9 puntos\d)""2"0)
        }
        case 
4:
        {
            if (
g_puntos[id] >= 12)
            
menu_additem(Menu"\w Aumentar Vida (5) (\r12 puntos\w)""2"0)
            else
            
menu_additem(Menu"\d Aumentar Vida (5) (\r12 puntos\d)""2"0)
        }
        case 
5:
        {
            if (
g_puntos[id] >= 15)
            
menu_additem(Menu"\w Aumentar Vida (6) (\r15 puntos\w)""2"0)
            else
            
menu_additem(Menu"\d Aumentar Vida (6) (\r15 puntos\d)""2"0)
        }
        case 
6:
        {
            if (
g_puntos[id] >= 20)
            
menu_additem(Menu"\w Aumentar Vida (7) (\r20 puntos\w)""2"0)
            else
            
menu_additem(Menu"\d Aumentar Vida (7) (\r20 puntos\d)""2"0)
        }
        case 
7:
        {
            if (
g_puntos[id] >= 24)
            
menu_additem(Menu"\w Aumentar Vida (8) (\r24 puntos\w)""2"0)
            else
            
menu_additem(Menu"\d Aumentar Vida (8) (\r24 puntos\d)""2"0)
        }
        case 
8:
        {
            if (
g_puntos[id] >= 32)
            
menu_additem(Menu"\w Aumentar Vida (9) (\r32 puntos\w)""2"0)
            else
            
menu_additem(Menu"\d Aumentar Vida (9) (\r32 puntos\d)""2"0)
        }
        case 
9:
        {
            if (
g_puntos[id] >= 42)
            
menu_additem(Menu"\w Aumentar Vida (10) (\r42 puntos\w)""2"0)
            else
            
menu_additem(Menu"\d Aumentar Vida (10) (\r42 puntos\d)""2"0)
        }
        case 
10menu_additem(Menu"\w Aumentar Vida (\yMAX\w)""2"0)
    }
    
    static 
banco3
    banco3 
g_banco2[id]
    
    switch(
banco3)
    {
        case 
0:
        {
            if (
g_puntos[id] >= 1)
            
menu_additem(Menu"\w Aumentar Velocidad (1) (\r1 puntos\w)^n^n""3"0)
            else
            
menu_additem(Menu"\d Aumentar Velocidad (1) (\r1 puntos\d)^n^n""3"0)
        }
        case 
1:
        {
            if (
g_puntos[id] >= 3)
            
menu_additem(Menu"\w Aumentar Velocidad (2) (\r3 puntos\w)^n^n""3"0)
            else
            
menu_additem(Menu"\d Aumentar Velocidad (2) (\r3 puntos\d)^n^n""3"0)
        }
        case 
2:
        {
            if (
g_puntos[id] >= 5)
            
menu_additem(Menu"\w Aumentar Velocidad (3) (\r5 puntos\w)^n^n""3"0)
            else
            
menu_additem(Menu"\d Aumentar Velocidad (3) (\r5 puntos\d)^n^n""3"0)
        }
        case 
3:
        {
            if (
g_puntos[id] >= 9)
            
menu_additem(Menu"\w Aumentar Velocidad (4) (\r9 puntos\w)^n^n""3"0)
            else
            
menu_additem(Menu"\d Aumentar Velocidad (4) (\r9 puntos\d)^n^n""3"0)
        }
        case 
4:
        {
            if (
g_puntos[id] >= 12)
            
menu_additem(Menu"\w Aumentar Velocidad (5) (\r12 puntos\w)^n^n""3"0)
            else
            
menu_additem(Menu"\d Aumentar Velocidad (5) (\r12 puntos\d)^n^n""3"0)
        }
        case 
5:
        {
            if (
g_puntos[id] >= 15)
            
menu_additem(Menu"\w Aumentar Velocidad (6) (\r15 puntos\w)^n^n""3"0)
            else
            
menu_additem(Menu"\d Aumentar Velocidad (6) (\r15 puntos\d)^n^n""3"0)
        }
        case 
6:
        {
            if (
g_puntos[id] >= 20)
            
menu_additem(Menu"\w Aumentar Velocidad (7) (\r20 puntos\w)^n^n""3"0)
            else
            
menu_additem(Menu"\d Aumentar Velocidad (7) (\r20 puntos\d)^n^n""3"0)
        }
        case 
7:
        {
            if (
g_puntos[id] >= 24)
            
menu_additem(Menu"\w Aumentar Velocidad (8) (\r24 puntos\w)^n^n""3"0)
            else
            
menu_additem(Menu"\d Aumentar Velocidad (8) (\r24 puntos\d)^n^n""3"0)
        }
        case 
8:
        {
            if (
g_puntos[id] >= 32)
            
menu_additem(Menu"\w Aumentar Velocidad (9) (\r32 puntos\w)^n^n""3"0)
            else
            
menu_additem(Menu"\d Aumentar Velocidad (9) (\r32 puntos\d)^n^n""3"0)
        }
        case 
9:
        {
            if (
g_puntos[id] >= 42)
            
menu_additem(Menu"\w Aumentar Velocidad (10) (\r42 puntos\w)^n^n""3"0)
            else
            
menu_additem(Menu"\d Aumentar Velocidad (10) (\r42 puntos\d)^n^n""3"0)
        }
        case 
10menu_additem(Menu"\w Aumentar Velocidad (\yMAX\w)""3"0)
    }
    if (
g_banco[id] >= 10 || g_banco1[id] >= 10 || g_banco2[id] >= 10)
    {
        static 
banco4
        banco4 
g_banco4[id]
        
        switch(
banco4)
        {
            case 
0:
            {
                if (
g_puntos[id] >= 1)
                
menu_additem(Menu"\w Aumentar Armadura (1) (\r1 puntos\w)^n^n""4"0)
                else
                
menu_additem(Menu"\d Aumentar Armadura (1) (\r1 puntos\d)^n^n""4"0)
            }
            case 
1:
            {
                if (
g_puntos[id] >= 3)
                
menu_additem(Menu"\w Aumentar Armadura (2) (\r3 puntos\w)^n^n""4"0)
                else
                
menu_additem(Menu"\d Aumentar Armadura (2) (\r3 puntos\d)^n^n""4"0)
            }
            case 
2:
            {
                if (
g_puntos[id] >= 5)
                
menu_additem(Menu"\w Aumentar Armadura (3) (\r5 puntos\w)^n^n""4"0)
                else
                
menu_additem(Menu"\d Aumentar Armadura (3) (\r5 puntos\d)^n^n""4"0)
            }
            case 
3:
            {
                if (
g_puntos[id] >= 9)
                
menu_additem(Menu"\w Aumentar Armadura (4) (\r9 puntos\w)^n^n""4"0)
                else
                
menu_additem(Menu"\d Aumentar Armadura (4) (\r9 puntos\d)^n^n""4"0)
            }
            case 
4:
            {
                if (
g_puntos[id] >= 12)
                
menu_additem(Menu"\w Aumentar Armadura (5) (\r12 puntos\w)^n^n""4"0)
                else
                
menu_additem(Menu"\d Aumentar Armadura (5) (\r12 puntos\d)^n^n""4"0)
            }
            case 
5:
            {
                if (
g_puntos[id] >= 15)
                
menu_additem(Menu"\w Aumentar Armadura (6) (\r15 puntos\w)^n^n""4"0)
                else
                
menu_additem(Menu"\d Aumentar Armadura (6) (\r15 puntos\d)^n^n""4"0)
            }
            case 
6:
            {
                if (
g_puntos[id] >= 20)
                
menu_additem(Menu"\w Aumentar Armadura (7) (\r20 puntos\w)^n^n""4"0)
                else
                
menu_additem(Menu"\d Aumentar Armadura (7) (\r20 puntos\d)^n^n""4"0)
            }
            case 
7:
            {
                if (
g_puntos[id] >= 24)
                
menu_additem(Menu"\w Aumentar Armadura (8) (\r24 puntos\w)^n^n""4"0)
                else
                
menu_additem(Menu"\d Aumentar Armadura (8) (\r24 puntos\d)^n^n""4"0)
            }
            case 
8:
            {
                if (
g_puntos[id] >= 32)
                
menu_additem(Menu"\w Aumentar Armadura (9) (\r32 puntos\w)^n^n""4"0)
                else
                
menu_additem(Menu"\d Aumentar Armadura (9) (\r32 puntos\d)^n^n""4"0)
            }
            case 
9:
            {
                if (
g_puntos[id] >= 42)
                
menu_additem(Menu"\w Aumentar Armadura (10) (\r42 puntos\w)^n^n""4"0)
                else
                
menu_additem(Menu"\d Aumentar Armadura (10) (\r42 puntos\d)^n^n""4"0)
            }
            case 
10menu_additem(Menu"\w Aumentar Armadura (\yMAX\w)^n^n""4"0)
        }
        if (
g_puntos[id] >= 3)
        {
            
menu_additem(MenuItems2"5"0)
        }
        else
        {
            
menu_additem(MenuItems3"5"0)
        }
    }
    else
    {
        if (
g_puntos[id] >= 3)
        {
            
menu_additem(MenuItems2"4"0)
        }
        else
        {
            
menu_additem(MenuItems3"4"0)
        }
    }
    
    
menu_setprop(MenuMPROP_EXITNAME"\ySalir")
    
menu_display(idMenu0)
}

public 
menu_habilidades456(idMenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(Menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
Data[6], Name[64]
    new 
AccessCallback
    menu_item_getinfo
(MenuitemAccessDatasizeof(Data)-1Namesizeof(Name)-1Callback)
    
    new 
Key str_to_num(Data)
    
    switch (
Key)
    {
        case 
1:
        {
            static 
banco1
            banco1 
g_banco[id]
            
            switch(
banco1)
            {
                case 
9:
                {
                    if (
g_puntos[id] >= 42)
                    {
                        
g_banco[id]++
                        
g_puntos[id] -= 42
                        g_gastados
[id] += 42
                    
}
                }
                case 
8:
                {
                    if (
g_puntos[id] >= 32)
                    {
                        
g_banco[id]++
                        
g_puntos[id] -= 32
                        g_gastados
[id] += 32
                    
}
                }
                case 
7:
                {
                    if (
g_puntos[id] >= 24)
                    {
                        
g_banco[id]++
                        
g_puntos[id] -= 24
                        g_gastados
[id] += 24
                    
}
                }
                case 
6:
                {
                    if (
g_puntos[id] >= 20)
                    {
                        
g_banco[id]++
                        
g_puntos[id] -= 20
                        g_gastados
[id] += 20
                    
}
                }
                case 
5:
                {
                    if (
g_puntos[id] >= 15)
                    {
                        
g_banco[id]++
                        
g_puntos[id] -= 15
                        g_gastados
[id] += 15
                    
}
                }
                case 
4:
                {
                    if (
g_puntos[id] >= 12)
                    {
                        
g_banco[id]++
                        
g_puntos[id] -= 12
                        g_gastados
[id] += 12
                    
}
                }
                case 
3:
                {
                    if (
g_puntos[id] >= 9)
                    {
                        
g_banco[id]++
                        
g_puntos[id] -= 9
                        g_gastados
[id] += 9
                    
}
                }
                case 
2:
                {
                    if (
g_puntos[id] >= 5)
                    {
                        
g_banco[id]++
                        
g_puntos[id] -= 5
                        g_gastados
[id] += 5
                    
}
                }
                case 
1:
                {
                    if (
g_puntos[id] >= 3)
                    {
                        
g_banco[id]++
                        
g_puntos[id] -= 3
                        g_gastados
[id] += 3
                    
}
                }
                case 
0:
                {
                    if (
g_puntos[id] >= 1)
                    {
                        
g_banco[id]++
                        
g_puntos[id] -= 1
                        g_gastados
[id]++
                    }
                }
            }
            
menu_puntos(id)
        }
        case 
2:
        {
            static 
banco2
            banco2 
g_banco1[id]
            
            switch(
banco2)
            {
                case 
9:
                {
                    if (
g_puntos[id] >= 42)
                    {
                        
g_banco1[id]++
                        
g_puntos[id] -= 42
                        g_gastados
[id] += 42
                    
}
                }
                case 
8:
                {
                    if (
g_puntos[id] >= 32)
                    {
                        
g_banco1[id]++
                        
g_puntos[id] -= 32
                        g_gastados
[id] += 32
                    
}
                }
                case 
7:
                {
                    if (
g_puntos[id] >= 24)
                    {
                        
g_banco1[id]++
                        
g_puntos[id] -= 24
                        g_gastados
[id] += 24
                    
}
                }
                case 
6:
                {
                    if (
g_puntos[id] >= 20)
                    {
                        
g_banco1[id]++
                        
g_puntos[id] -= 20
                        g_gastados
[id] += 20
                    
}
                }
                case 
5:
                {
                    if (
g_puntos[id] >= 15)
                    {
                        
g_banco1[id]++
                        
g_puntos[id] -= 15
                        g_gastados
[id] += 15
                    
}
                }
                case 
4:
                {
                    if (
g_puntos[id] >= 12)
                    {
                        
g_banco1[id]++
                        
g_puntos[id] -= 12
                        g_gastados
[id] += 12
                    
}
                }
                case 
3:
                {
                    if (
g_puntos[id] >= 9)
                    {
                        
g_banco1[id]++
                        
g_puntos[id] -= 9
                        g_gastados
[id] += 9
                    
}
                }
                case 
2:
                {
                    if (
g_puntos[id] >= 5)
                    {
                        
g_banco1[id]++
                        
g_puntos[id] -= 5
                        g_gastados
[id] += 5
                        
                    
}
                }
                case 
1:
                {
                    if (
g_puntos[id] >= 3)
                    {
                        
g_banco1[id]++
                        
g_puntos[id] -= 3
                        g_gastados
[id] += 3
                    
}
                }
                case 
0:
                {
                    if (
g_puntos[id] >= 1)
                    {
                        
g_banco1[id]++
                        
g_puntos[id] -= 1
                        g_gastados
[id] += 1
                    
}
                }
            }
            
menu_puntos(id)
        }
        
        case 
3:
        {
            static 
banco3
            banco3 
g_banco2[id]
            
            switch(
banco3)
            {
                case 
9:
                {
                    if (
g_puntos[id] >= 42)
                    {
                        
g_banco2[id]++
                        
g_puntos[id] -= 42
                        g_gastados
[id] += 42
                    
}
                }
                case 
8:
                {
                    if (
g_puntos[id] >= 32)
                    {
                        
g_banco2[id]++
                        
g_puntos[id] -= 32
                        g_gastados
[id] += 32
                    
}
                }
                case 
7:
                {
                    if (
g_puntos[id] >= 24)
                    {
                        
g_banco2[id]++
                        
g_puntos[id] -= 24
                        g_gastados
[id] += 24
                    
}
                }
                case 
6:
                {
                    if (
g_puntos[id] >= 20)
                    {
                        
g_banco2[id]++
                        
g_puntos[id] -= 20
                        g_gastados
[id] += 20
                    
}
                }
                case 
5:
                {
                    if (
g_puntos[id] >= 15)
                    {
                        
g_banco2[id]++
                        
g_puntos[id] -= 15
                        g_gastados
[id] += 15
                    
}
                }
                case 
4:
                {
                    if (
g_puntos[id] >= 12)
                    {
                        
g_banco2[id]++
                        
g_puntos[id] -= 12
                        g_gastados
[id] += 12
                    
}
                }
                case 
3:
                {
                    if (
g_puntos[id] >= 9)
                    {
                        
g_banco2[id]++
                        
g_puntos[id] -= 9
                        g_gastados
[id] += 9
                    
}
                }
                case 
2:
                {
                    if (
g_puntos[id] >= 5)
                    {
                        
g_banco2[id]++
                        
g_puntos[id] -= 5
                        g_gastados
[id] += 5
                    
}
                }
                case 
1:
                {
                    if (
g_puntos[id] >= 3)
                    {
                        
g_banco2[id]++
                        
g_puntos[id] -= 3
                        g_gastados
[id] += 3
                    
}
                }
                case 
0:
                {
                    if (
g_puntos[id] >= 1)
                    {
                        
g_banco2[id]++
                        
g_puntos[id] -= 1
                        g_gastados
[id] += 1
                    
}
                }
            }
            
menu_puntos(id)
        }
        
        case 
4:
        {
            if (
g_banco[id] >= 10 || g_banco1[id] >= 10 || g_banco2[id] >= 10)
            {
                static 
banco4
                banco4 
g_banco4[id]
                
                switch(
banco4)
                {
                    case 
9:
                    {
                        if (
g_puntos[id] >= 42)
                        {
                            
g_banco4[id]++
                            
g_puntos[id] -= 42
                            g_gastados
[id] += 42
                        
}
                    }
                    case 
8:
                    {
                        if (
g_puntos[id] >= 32)
                        {
                            
g_banco4[id]++
                            
g_puntos[id] -= 32
                            g_gastados
[id] += 32
                        
}
                    }
                    case 
7:
                    {
                        if (
g_puntos[id] >= 24)
                        {
                            
g_banco4[id]++
                            
g_puntos[id] -= 24
                            g_gastados
[id] += 24
                        
}
                    }
                    case 
6:
                    {
                        if (
g_puntos[id] >= 20)
                        {
                            
g_banco4[id]++
                            
g_puntos[id] -= 20
                            g_gastados
[id] += 20
                        
}
                    }
                    case 
5:
                    {
                        if (
g_puntos[id] >= 15)
                        {
                            
g_banco4[id]++
                            
g_puntos[id] -= 15
                            g_gastados
[id] += 15
                        
}
                    }
                    case 
4:
                    {
                        if (
g_puntos[id] >= 12)
                        {
                            
g_banco4[id]++
                            
g_puntos[id] -= 12
                            g_gastados
[id] += 12
                        
}
                    }
                    case 
3:
                    {
                        if (
g_puntos[id] >= 9)
                        {
                            
g_banco4[id]++
                            
g_puntos[id] -= 9
                            g_gastados
[id] += 9
                        
}
                    }
                    case 
2:
                    {
                        if (
g_puntos[id] >= 5)
                        {
                            
g_banco4[id]++
                            
g_puntos[id] -= 5
                            g_gastados
[id] += 5
                        
}
                    }
                    case 
1:
                    {
                        if (
g_puntos[id] >= 3)
                        {
                            
g_banco4[id]++
                            
g_puntos[id] -= 3
                            g_gastados
[id] += 3
                        
}
                    }
                    case 
0:
                    {
                        if (
g_puntos[id] >= 1)
                        {
                            
g_banco4[id]++
                            
g_puntos[id] -= 1
                            g_gastados
[id]++
                        }
                    }
                }
                
menu_puntos(id)
                return 
PLUGIN_HANDLED
            
}
            if (
g_puntos[id] >= 3)
            {
                
g_banco[id] = 0
                g_banco1
[id] = 0
                g_banco2
[id] = 0
                g_banco4
[id] = 0
                g_puntos
[id] -= 3
                g_puntos
[id] += g_gastados[id]
                
zp_colored_print(id"^x04[ZA]^x01 Puntos devueltos:^x04 %d^x01 Puntos actuales:^x04 %d"g_gastados[id], g_puntos[id])
                
g_gastados[id] = 0
            
}
            
menu_puntos(id)
        }
        case 
5:
        {
            if (
g_puntos[id] >= 3)
            {
                
g_banco[id] = 0
                g_banco1
[id] = 0
                g_banco2
[id] = 0
                g_puntos
[id] -= 3
                g_puntos
[id] += g_gastados[id]
                
zp_colored_print(id"^x04[ZA]^x01 Puntos devueltos:^x04 %d^x01 Puntos actuales:^x04 %d"g_gastados[id], g_puntos[id])
                
g_gastados[id] = 0
            
}
            
menu_puntos(id)
        }
    }
    
menu_destroy(Menu)
    
SaveExp(id)
    return 
PLUGIN_HANDLED



Sylwester 01-30-2010 16:37

Re: How to optimize this? (PLEASE)
 
Quote:

Originally Posted by fysiks (Post 1072532)
Use switches in instead of if() if() if() if() if() if(). One for ever "option"

lol, like it would fix the main problem...

Quote:

Originally Posted by OptimizeR (Post 1073194)
Look this, is ok?

It looks as bad as before. You should use loop. I can't help you much with this because it's not coded in english and I don't know how is it supposed to work.

Example menu + handler from one of my plugins (it's using old menu system, but it doesn't matter):
PHP Code:

public menu_buy_upg(idpage){
    static 
ikeysposupgpricemaxcache[1024]
    
pos 0
    keys 
0
    
if(page*8>=g_enabled_upgs)
        
page 0
    g_p_menu_page
[id] = page

    max 
= (g_enabled_upgs-1)/8+1
    
if(max<1)
        
max=1
    pos 
+= format(cache[pos], 1023-pos"\yRPG mod \d[#.1]\wBuy menu^n\d[%d/%d]\w[Credits: \y%d\w]^n\wn. \d[ \wlvl\d ][\wprice\d]\wupgrade^n^n"page+1maxg_p_credits[id])
    
max g_enabled_upgs page*8
    
if(max>8)
        
max=8
    
for(i=0i<8i++){
        if(
i>=max){
            
pos += formatex(cache[pos], 1023-pos"\d%d.^n"i+1)
            continue
        }
        
upg g_enabled_list[i+page*8]
        
price g_upg_sp[upg] + g_upg_ip[upg]*g_p_upg[id][upg]
        if(
g_p_upg[id][upg] >= g_upg_maxlvl[upg]){
            
pos += formatex(cache[pos], 1023-pos"\d%d. [\rmax\d][-----]%s^n"i+1g_upg_name[upg])
        }else if(
price g_p_credits[id]){
            
pos += formatex(cache[pos], 1023-pos"\d%d. [%4d ][\r%5d \d]%s^n"i+1g_p_upg[id][upg]+1priceg_upg_name[upg])
        }else{
            
pos += formatex(cache[pos], 1023-pos"\w%d. \d[\w%4d \d][\y%5d \d]\w%s^n"i+1g_p_upg[id][upg]+1priceg_upg_name[upg])
            
keys keys|(1<<i)
        }
    }

    
pos += formatex(cache[pos], 1023-pos"^n%s9. More...^n"g_enabled_upgs>"\w" "\d")
    
keys keys|(1<<8)|(1<<9)
    
pos += formatex(cache[pos], 1023-pos"\w0. Back^n")
    
show_menuidkeyscache, -1)
    return 
PLUGIN_HANDLED
}


public 
hnd_menu_buy_upg(id,key){
    static 
upg

    
if(key<8){
        
upg g_enabled_list[g_p_menu_page[id]*8+key]
        
g_p_credits[id] -= g_upg_sp[upg] + g_upg_ip[upg]*g_p_upg[id][upg]
        
g_p_upg[id][upg]++
        
upgrade_change(idupg)
        
menu_buy_upg(idg_p_menu_page[id])
    }else if(
key==8){
        
menu_buy_upg(idg_p_menu_page[id]+1)
    }else{
        
menu_main(id)
    }

    return 
PLUGIN_HANDLED


You can probably change your menu code into something as short as this too.

fysiks 01-30-2010 17:26

Re: How to optimize this? (PLEASE)
 
Quote:

Originally Posted by Sylwester (Post 1073375)
Quote:

Originally Posted by fysiks (Post 1072532)
Use switches in instead of if() if() if() if() if() if(). One for ever "option"

lol, like it would fix the main problem...

It's still an optimization of his original code :). I wasn't willing to offer much more because it's not in English.

Seta00 01-31-2010 06:55

Re: How to optimize this? (PLEASE)
 
To minimally optimize this code you have to rewrite it from scratch. You're using non-english code, magic numbers everywhere and lots and lots of unnecessary ifs.

Bugsy 01-31-2010 09:56

Re: How to optimize this? (PLEASE)
 
90% of that code is redundant.

Like so:

PHP Code:

switch ( val )
{
    case 
90CallFunc"something 90" );
    case 
55callfunc"something 55" );


May as well just do:

PHP Code:

CallFunc"something %d" val ); 

Not all of the numbers match like that but you can create an array for those that don't or use multiplication if possible.

Owyn 01-31-2010 10:26

Re: How to optimize this? (PLEASE)
 
Quote:

Use switches in instead of if() if() if() if() if() if()
why? switch+case is pretty same as if+else if

i think it's a matter of code look only

Sylwester 01-31-2010 11:09

Re: How to optimize this? (PLEASE)
 
You are wrong.
http://wiki.amxmodx.org/Optimizing_P..._instead_of_If

01101101 01-31-2010 11:19

Re: How to optimize this? (PLEASE)
 
Using either switch or if in this case suck hard. Look at Bugsy comment.

Quote:

Originally Posted by Bugsy (Post 1074048)
90% of that code is redundant.

Like so:

PHP Code:

switch ( val )
{
    case 
90CallFunc"something 90" );
    case 
55callfunc"something 55" );


May as well just do:

PHP Code:

CallFunc"something %d" val ); 

Not all of the numbers match like that but you can create an array for those that don't or use multiplication if possible.


By the way this plugins looks very similar to this one

http://forums.alliedmods.net/showthread.php?t=107698

More precisely http://forums.alliedmods.net/showpos...6&postcount=11


All times are GMT -4. The time now is 07:28.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.