SA-MP Forums Archive
[Duda] Cуmo crear una mejor manera... - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [Duda] Cуmo crear una mejor manera... (/showthread.php?tid=532123)



[Duda] Cуmo crear una mejor manera... - iPawn - 16.08.2014

En realidad no he pensado bien una manera, pero aprovecho porque las que he pensado no funcionarнan, bбsicamente mi duda es: їCуmo crear una mejor manera para reducir el siguiente script?

pawn Код:
/* [0]-[1] son un nъmero definido de slot, con un mбximo de por ej 200, es decir: #define SLOT 200, pero no podrнa utilizar for ( new i = 0; i < SLOT; i ++ ) porque realizarнa la tarea en los 200 en vez de verificar si 0 tiene Enum > 0 realizar en 1. No sй si me explico o se entiende en el cуdigo debajo */

if ( Data[ID][Enum][0] == 0 )
{
   // Tarea
}
else if ( Data[ID][Enum][0] > 0 && Data[ID][Enum][1] == 0 )
{
   // Tarea
}
Entonces si son 200 slots me tocarнa crear 199 "else if" mбs y es lo que no quiero...

Gracias de antemano


Respuesta: [Duda] Cуmo crear una mejor manera... - The-Krew - 16.08.2014

pawn Код:
stock Slot()
{
    for(new k;k<MAX_SLOT;i++)
    {
        if(Data[ID][Enum][k] == 0)
        {
            return k;
        }
    }
    return -1;
}

stock Tarea(tarea)
{
    new k = Slot();
    if(k != -1)
    {
        Data[ID][Enum][k] = tarea;
    }
    else
    {
        //No hay slots disponibles
    }
}



Respuesta: [Duda] Cуmo crear una mejor manera... - iPawn - 18.08.2014

No habнa tenido tiempo de probarlo por eso no di respuesta, pero ahora lo he probado y ha quedado perfecto, muchнsimas gracias The-Krew