SA-MP Forums Archive
[AYUDA]Optimizacion - 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: [AYUDA]Optimizacion (/showthread.php?tid=527199)



[AYUDA]Optimizacion - chusothe41 - 21.07.2014

pawn Код:
public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
    if(checkpointid == rutacamionero1)
    {
        TogglePlayerDynamicCP(playerid, rutacamionero1, 0);
        TogglePlayerDynamicCP(playerid, rutainicio1, 1);
        SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Ve hasta el siguiente checkpoint para cobrar el envio");
    }
    if(checkpointid == rutacamionero2)
    {
        TogglePlayerDynamicCP(playerid, rutacamionero2, 0);
        TogglePlayerDynamicCP(playerid, rutainicio1, 1);
        SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Ve hasta el siguiente checkpoint para cobrar el envio");
    }
    if(checkpointid == rutacamionero3)
    {
        TogglePlayerDynamicCP(playerid, rutacamionero3, 0);
        TogglePlayerDynamicCP(playerid, rutainicio1, 1);
        SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Ve hasta el siguiente checkpoint para cobrar el envio");
    }
    if(checkpointid == rutacamionero4)
    {
        TogglePlayerDynamicCP(playerid, rutacamionero4, 0);
        TogglePlayerDynamicCP(playerid, rutainicio1, 1);
        SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Ve hasta el siguiente checkpoint para cobrar el envio");
    }
    if(checkpointid == rutacamionero5)
    {
        TogglePlayerDynamicCP(playerid, rutacamionero5, 0);
        TogglePlayerDynamicCP(playerid, rutainicio1, 1);
        SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Ve hasta el siguiente checkpoint para cobrar el envio");
    }
    if(checkpointid == rutainicio1)
    {
        new vehicle;
        vehicle = GetPlayerVehicleID(playerid);
        GivePlayerMoney(playerid, 1000);
        SetVehicleToRespawn(vehicle);
        TogglePlayerDynamicCP(playerid, rutainicio1, 0);
        SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Has terminado la ruta, vuelve a otro camion para seguir trabajando");
        enruta = 0;
    }
    return 1;
}
Tenia planeado hacer un swich case pero... no se me ocurre como, igual haciendo la ruta camion como un array... ni idea
їalguna ayuda?


Respuesta: [AYUDA]Optimizacion - Juance - 21.07.2014

A ver si asн te funciona.

pawn Код:
public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
   switch(checkpointid)
   {
    case rutacamionero1:
    {
        TogglePlayerDynamicCP(playerid, rutacamionero1, 0);
        TogglePlayerDynamicCP(playerid, rutainicio1, 1);
        SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Ve hasta el siguiente checkpoint para cobrar el envio");
    }
    case rutacamionero2:
    {
        TogglePlayerDynamicCP(playerid, rutacamionero2, 0);
        TogglePlayerDynamicCP(playerid, rutainicio1, 1);
        SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Ve hasta el siguiente checkpoint para cobrar el envio");
    }
    case rutacamionero3: // Y abajo seguнs vos.
    {
        TogglePlayerDynamicCP(playerid, rutacamionero3, 0);
        TogglePlayerDynamicCP(playerid, rutainicio1, 1);
        SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Ve hasta el siguiente checkpoint para cobrar el envio");
    }
    if(checkpointid == rutacamionero4)
    {
        TogglePlayerDynamicCP(playerid, rutacamionero4, 0);
        TogglePlayerDynamicCP(playerid, rutainicio1, 1);
        SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Ve hasta el siguiente checkpoint para cobrar el envio");
    }
    if(checkpointid == rutacamionero5)
    {
        TogglePlayerDynamicCP(playerid, rutacamionero5, 0);
        TogglePlayerDynamicCP(playerid, rutainicio1, 1);
        SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Ve hasta el siguiente checkpoint para cobrar el envio");
    }
    if(checkpointid == rutainicio1)
    {
        new vehicle;
        vehicle = GetPlayerVehicleID(playerid);
        GivePlayerMoney(playerid, 1000);
        SetVehicleToRespawn(vehicle);
        TogglePlayerDynamicCP(playerid, rutainicio1, 0);
        SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Has terminado la ruta, vuelve a otro camion para seguir trabajando");
        enruta = 0;
    }
    }
    return 1;
}



Respuesta: [AYUDA]Optimizacion - chusothe41 - 28.07.2014

Lo acabo de probar y no me funciona


Respuesta: [AYUDA]Optimizacion - unuky - 28.07.2014

Si que debe de funcionar:

pawn Код:
public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
    switch (checkpointid)
    {
        case rutacamionero1:
        {
            // Pones el cуdigo a ejecutar
        }
        case rutacamionero2:
        {
            // Pones el cуdigo a ejecutar
        }
       
        // Sigues por aquн con mбs cases
       
    } // Cerramos el switch
}



Respuesta: [AYUDA]Optimizacion - DesingMyCry - 28.07.2014

Switch solo acepta valores constantes.


Respuesta: [AYUDA]Optimizacion - chusothe41 - 28.07.2014

Es lo que estoy haciendo

pawn Код:
public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
    switch(checkpointid)
    {
        case rutacamionero1:
        {
            TogglePlayerDynamicCP(playerid, rutacamionero1, 0);
            TogglePlayerDynamicCP(playerid, rutainicio1, 1);
            SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Ve hasta el siguiente checkpoint para cobrar el envio");
        }
        case rutacamionero2:
        {
            TogglePlayerDynamicCP(playerid, rutacamionero2, 0);
            TogglePlayerDynamicCP(playerid, rutainicio1, 1);
            SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Ve hasta el siguiente checkpoint para cobrar el envio");
        }
        case rutacamionero3:
        {
            TogglePlayerDynamicCP(playerid, rutacamionero3, 0);
            TogglePlayerDynamicCP(playerid, rutainicio1, 1);
            SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Ve hasta el siguiente checkpoint para cobrar el envio");
        }
        case rutacamionero4:
        {
            TogglePlayerDynamicCP(playerid, rutacamionero4, 0);
            TogglePlayerDynamicCP(playerid, rutainicio1, 1);
            SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Ve hasta el siguiente checkpoint para cobrar el envio");
        }
        case rutacamionero5:
        {
            TogglePlayerDynamicCP(playerid, rutacamionero5, 0);
            TogglePlayerDynamicCP(playerid, rutainicio1, 1);
            SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Ve hasta el siguiente checkpoint para cobrar el envio");
        }
        case rutainicio1:
        {
            new vehicle;
            vehicle = GetPlayerVehicleID(playerid);
            GivePlayerMoney(playerid, 1000);
            SetVehicleToRespawn(vehicle);
            TogglePlayerDynamicCP(playerid, rutainicio1, 0);
            SendClientMessage(playerid, COL_TRABAJOS, "Trabajo: "COL_WHITE"Has terminado la ruta, vuelve a otro camion para seguir trabajando");
            enruta = false;
        }
    }
    return 1;
}
Код:
D:\Samp\Servidor de 0\gamemodes\Andreasfield3.6.3.pwn(2256) : error 008: must be a constant expression; assumed zero
D:\Samp\Servidor de 0\gamemodes\Andreasfield3.6.3.pwn(2262) : error 008: must be a constant expression; assumed zero
D:\Samp\Servidor de 0\gamemodes\Andreasfield3.6.3.pwn(2268) : error 008: must be a constant expression; assumed zero
D:\Samp\Servidor de 0\gamemodes\Andreasfield3.6.3.pwn(2274) : error 008: must be a constant expression; assumed zero
D:\Samp\Servidor de 0\gamemodes\Andreasfield3.6.3.pwn(2280) : error 008: must be a constant expression; assumed zero
D:\Samp\Servidor de 0\gamemodes\Andreasfield3.6.3.pwn(2286) : error 008: must be a constant expression; assumed zero
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


6 Errors.



Respuesta: [AYUDA]Optimizacion - chusothe41 - 28.07.2014

Quote:
Originally Posted by DesingMyCry
Посмотреть сообщение
Switch solo acepta valores constantes.
Me tengo que conformar con un sucio "if"?


Respuesta: [AYUDA]Optimizacion - DesingMyCry - 28.07.2014

O si quieres hacerlo mas avanzado aun puedes utilizar Switch...


Respuesta: [AYUDA]Optimizacion - chusothe41 - 28.07.2014

Quote:
Originally Posted by DesingMyCry
Посмотреть сообщение
O si quieres hacerlo mas avanzado aun puedes utilizar Switch...
Haciendo #defines te refieres?

Lo intente y me daba otro error


Respuesta: [AYUDA]Optimizacion - adri1 - 28.07.2014

Haciendo arrays...