tendre algun error
#1

hola queria saber si tengo algun error en el siguiente codigo

pawn Код:
if(dialogid == Dialog_Canje)
{
    if(response)
    {
            if(listitem == 0)
            {
            if(PlayerInfo[playerid][ScoreRace] >= 700)
            {
            GetPlayerName(playerid,NickS,sizeof(NickS));
            format(CompraC,sizeof(CompraC),"- ADRe - %s a Canjeado 500 Score FR Por 700 ScoreRace",NickS);
            SendClientMessageToAll(COLOR_PINK,CompraC);
            PlayerInfo[playerid][Kills] = PlayerInfo[playerid][Kills]+500;
            PlayerInfo[playerid][ScoreRace] = PlayerInfo[playerid][ScoreRace]-700;
            SendClientMessage(playerid,COLOR_CYAN,"Has Canjeado 500 ScoreFR");
            }
            else { SendClientMessage(playerid,COLOR_PURPLE,"No Tienes Suficiente ScoreRace"); }
            }
            if(listitem == 1)
            {
            if(PlayerInfo[playerid][ScoreRace] >= 300)
            {
            GetPlayerName(playerid,NickS,sizeof(NickS));
            format(CompraC,sizeof(CompraC),"- ADRe - %s a Restaurado Su Vida Por 300 ScoreRace",NickS);
            SendClientMessageToAll(COLOR_PINK,CompraC);
            SetPlayerHealth(playerid,100);
            PlayerInfo[playerid][ScoreRace] = PlayerInfo[playerid][ScoreRace]-300;
            SendClientMessage(playerid,COLOR_CYAN,"Has Restaurado Tu Vida.");
            }
            else { SendClientMessage(playerid,COLOR_PURPLE,"No Tienes Suficiente ScoreRace"); }
            }
            if(listitem == 2)
            {
            if(PlayerInfo[playerid][ScoreRace] >= 300)
            {
            GetPlayerName(playerid,NickS,sizeof(NickS));
            format(CompraC,sizeof(CompraC),"- ADRe - %s a Restaurado Su Chaleco Por 300 ScoreRace",NickS);
            SendClientMessageToAll(COLOR_PINK,CompraC);
            SetPlayerArmour(playerid,100);
            PlayerInfo[playerid][ScoreRace] = PlayerInfo[playerid][ScoreRace]-300;
            SendClientMessage(playerid,COLOR_CYAN,"Has Restaurado Tu Chaleco.");
            }
            else { SendClientMessage(playerid,COLOR_PURPLE,"No Tienes Suficiente ScoreRace"); }
            }
            if(listitem == 3)
            {
            if(PlayerInfo[playerid][ScoreRace] >= 5000)
            {
            GetPlayerName(playerid,NickS,sizeof(NickS));
            format(CompraC,sizeof(CompraC),"- ADRe - %s a Canjeado Una Minigun [1,000 AMMO] Por 5,000 ScoreRace",NickS);
            SendClientMessageToAll(COLOR_PINK,CompraC);
            GivePlayerWeapon(playerid,38,1000);
            PlayerInfo[playerid][ScoreRace] = PlayerInfo[playerid][ScoreRace]-5000;
            SendClientMessage(playerid,COLOR_CYAN,"Has Canjeado Una Minigun.");
            }
            else { SendClientMessage(playerid,COLOR_PURPLE,"No Tienes Suficiente ScoreRace"); }
            }
            if(listitem == 4)
            {
            if(PlayerInfo[playerid][ScoreRace] >= 1000)
            {
            GetPlayerName(playerid,NickS,sizeof(NickS));
            format(CompraC,sizeof(CompraC),"- ADRe - %s a Canjeado Una Rocket [10 AMMO] Por 1,000 ScoreRace",NickS);
            SendClientMessageToAll(COLOR_PINK,CompraC);
            GivePlayerWeapon(playerid,35,10);
            PlayerInfo[playerid][ScoreRace] = PlayerInfo[playerid][ScoreRace]-1000;
            SendClientMessage(playerid,COLOR_CYAN,"Has Canjeado Una Minigun.");
            }
            else { SendClientMessage(playerid,COLOR_PURPLE,"No Tienes Suficiente ScoreRace"); }
            }

}
return 1;
}
queria saber si el codigo me podria presentar un problema futuro o si estorva a algo mas, por que realmente nunca habia puesto condiciones en ondialogresponse y pues improvise u.u

lo ise en sistema ladmin.
Reply
#2

En las condiciones de los listitem, el primero solamente lleva "if" los demбs llevan "else if".

Cuando vas a hacer la comprobaciуn de X variables y son mбs de 2, te recomiendo usar switch que tiene un rбpido procesamiento. De todos modos, si aъn no queres usar optimizaciуn, te dejo un ejemplo.

pawn Код:
//Quiero comprobar que si el usuario tiene edad en 20, o 21, o 22, o 23, o 24, o 25.
//..entonces hago lo siguiente.

if(PlayerInfo[playerid][pEdad] == 20)
{
//Si tiene 20 se cumple X funciуn
}
else if(PlayerInfo[playerid][pEdad] == 21)
{
//Si tiene 21 se cumple X funciуn
}
else if(PlayerInfo[playerid][pEdad] == 22)
{
//Si tiene 22 se cumple X funciуn
}
else if(PlayerInfo[playerid][pEdad] == 23)
{
//Si tiene 23 se cumple X funciуn
}
else if(PlayerInfo[playerid][pEdad] == 24)
{
//Si tiene 24 se cumple X funciуn
}
else if(PlayerInfo[playerid][pEdad] == 25)
{
//Si tiene 25 se cumple X funciуn
}
else
{
//Si el usuario no tiene ninguna edad especificada en las condiciones se cumple X funciуn
return 1;
}
Y con switch serнa de la siguiente forma.

pawn Код:
switch(PlayerInfo[playerid][pEdad]) // Si tiene una variable en pEdad
{
case 20:
{
//Y si el valor de la variable es 20 se cumple X funciуn
}
case 21:
{
//Si es 21, cumple X funciуn
}
case 22:
{
//Si es 22, cumple X funciуn
}
case 23:
{
//Si es 23, cumple X funciуn
}
case 24:
{
//Si es 24, cumple X funciуn
}
case 25:
{
//Si es 25, cumple X funciуn
}
default:
{
//Si la variable no es ninguna de las puestas anteriormente, se cumple otra funciуn
}
return 1;
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)