[Problema]ZCMD If no detectado - 
GroX0r -  17.04.2012
Buenas, estoy trabajando en un GM zcmd, en el cual llevo acabo el comando de /dar... /dar materiales o /dar drogas...
El problema es que si uso.. /dar IDJugador Materiales Cantidad me va de lujo pero a la hora de usar drogas en vez de materiales, me salta error de que no existe el comando... Seguro y tengo un error feo D: xD' Pero tengo aсos que no scripteo 

 aquн esta el cуdigo..
pawn Код:
CMD:dar(playerid, params[]) {
    new
        giveSz[12],
        amount,
        targetID;
    if(sscanf(params, "us[12]d", targetID, giveSz, amount)) {
        SendClientMessage(playerid, COLOR_GRIS, SYNTAX_MESSAGE"/Dar [Jugador/ID] [Artнculo] [Cantidad/Arma]");
        return SendClientMessage(playerid, COLOR_GRIS, "Artнculos: Materiales, Drogas");
    }
    else {
        if(targetID == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GRIS, "El ID de jugador especificado no estб conectado o no se ha autenticado.");
        if(!IsPlayerInRangeOfPlayer(playerid, targetID, 5.0)) return SendClientMessage(playerid, COLOR_GRIS, "Estas demasiado lejos.");
        
        
     if(strcmp(giveSz, "materiales", true) == 0) {
            new
                playerName[2][MAX_PLAYER_NAME];
            GetPlayerName(playerid, playerName[0], MAX_PLAYER_NAME);
            GetPlayerName(targetID, playerName[1], MAX_PLAYER_NAME);
            if(playerVariables[playerid][pMaterials] >= amount) {
                if(amount < 1)
                    return 1;
                playerVariables[playerid][pMaterials] -= amount;
                playerVariables[targetID][pMaterials] += amount;
                format(szMessage, sizeof(szMessage), "Le has dado %d materiales a %s.", amount, playerName[1]);
                SendClientMessage(playerid, COLOR_BLANCO, szMessage);
                format(szMessage, sizeof(szMessage), "%s le ha dado %d materiales.", playerName[0], amount);
                SendClientMessage(targetID, COLOR_BLANCO, szMessage);
                format(szMessage, sizeof(szMessage), "* %s le ha dado %d materiales a %s.", playerName[0], amount, playerName[1]);
                nearByMessage(playerid, COLOR_PURPURA, szMessage);
            }
            else {
                format(szMessage, sizeof(szMessage), "Usted no tiene los materiales suficientes para completar este comercio. Usted necesita %d mas materiales.", playerVariables[playerid][pMaterials]-amount);
                SendClientMessage(playerid, COLOR_BLANCO, szMessage);
            }
        }
        else if(strcmp(giveSz, "drogas", true) == 0) {
            if(playerVariables[playerid][pDrogas] >= amount) {
                if(amount < 1)
                    return 1;
                playerVariables[playerid][pDrogas] -= amount;
                playerVariables[targetID][pDrogas] += amount;
                format(szMessage, sizeof(szMessage), "Le has dado %d gramos de droga a %s.", amount, playerName[1]);
                SendClientMessage(playerid, COLOR_BLANCO, szMessage);
                format(szMessage, sizeof(szMessage), "%s le ha dado %d gramos de droga.", playerName[0], amount);
                SendClientMessage(targetID, COLOR_BLANCO, szMessage);
                format(szMessage, sizeof(szMessage), "* %s le ha dado %d gramos de droga a %s.", playerName[0], amount, playerName[1]);
                nearByMessage(playerid, COLOR_PURPURA, szMessage);
            }
            else {
                format(szMessage, sizeof(szMessage), "Usted no tiene los drogas suficientes para completar este comercio. Usted necesita %d gramos de droga mas.", playerVariables[playerid][pDrogas]-amount);
                SendClientMessage(playerid, COLOR_BLANCO, szMessage);
            }
        }
      }
    return 1;
}
 
Si porfavor me brindan un pequeсa ayuda..
Saludos & Gracias 

!
Respuesta: [Problema]ZCMD If no detectado - 
[DOG]irinel1996 -  17.04.2012
Prueba a ver ahora:
pawn Код:
CMD:dar(playerid, params[]) {
    new
        giveSz[12],
        amount,
        targetID;
    if(sscanf(params, "us[12]d", targetID, giveSz, amount)) {
        SendClientMessage(playerid, COLOR_GRIS, SYNTAX_MESSAGE"/Dar [Jugador/ID] [Artнculo] [Cantidad/Arma]");
        SendClientMessage(playerid, COLOR_GRIS, "Artнculos: Materiales, Drogas");
        return 1;
        } else {
        if(targetID == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GRIS, "El ID de jugador especificado no estб conectado o no se ha autenticado.");
        if(!IsPlayerInRangeOfPlayer(playerid, targetID, 5.0)) return SendClientMessage(playerid, COLOR_GRIS, "Estas demasiado lejos."); }
    if(strcmp(giveSz, "materiales", true) == 0)
    {
            new playerName[2][MAX_PLAYER_NAME];
            GetPlayerName(playerid, playerName[0], MAX_PLAYER_NAME);
            GetPlayerName(targetID, playerName[1], MAX_PLAYER_NAME);
            if(playerVariables[playerid][pMaterials] >= amount)
            {
                if(amount < 1) return 1;
                playerVariables[playerid][pMaterials] -= amount;
                playerVariables[targetID][pMaterials] += amount;
                format(szMessage, sizeof(szMessage), "Le has dado %d materiales a %s.", amount, playerName[1]);
                SendClientMessage(playerid, COLOR_BLANCO, szMessage);
                format(szMessage, sizeof(szMessage), "%s le ha dado %d materiales.", playerName[0], amount);
                SendClientMessage(targetID, COLOR_BLANCO, szMessage);
                format(szMessage, sizeof(szMessage), "* %s le ha dado %d materiales a %s.", playerName[0], amount, playerName[1]);
                nearByMessage(playerid, COLOR_PURPURA, szMessage);
            } else {
                format(szMessage, sizeof(szMessage), "Usted no tiene los materiales suficientes para completar este comercio. Usted necesita %d mas materiales.", playerVariables[playerid][pMaterials]-amount);
                SendClientMessage(playerid, COLOR_BLANCO, szMessage); } } }
   else if(strcmp(giveSz, "drogas", true) == 0) {
            if(playerVariables[playerid][pDrogas] >= amount) {
                if(amount < 1) return 1;
                playerVariables[playerid][pDrogas] -= amount;
                playerVariables[targetID][pDrogas] += amount;
                format(szMessage, sizeof(szMessage), "Le has dado %d gramos de droga a %s.", amount, playerName[1]);
                SendClientMessage(playerid, COLOR_BLANCO, szMessage);
                format(szMessage, sizeof(szMessage), "%s le ha dado %d gramos de droga.", playerName[0], amount);
                SendClientMessage(targetID, COLOR_BLANCO, szMessage);
                format(szMessage, sizeof(szMessage), "* %s le ha dado %d gramos de droga a %s.", playerName[0], amount, playerName[1]);
                nearByMessage(playerid, COLOR_PURPURA, szMessage);
            } else {
                format(szMessage, sizeof(szMessage), "Usted no tiene los drogas suficientes para completar este comercio. Usted necesita %d gramos de droga mas.", playerVariables[playerid][pDrogas]-amount);
                SendClientMessage(playerid, COLOR_BLANCO, szMessage); } } }
    return 1;
}
 Saludos... 
 
Re: [Problema]ZCMD If no detectado - 
Daniel-92 -  17.04.2012
Tal vez ahi
pawn Код:
CMD:dar(playerid, params[]) {
    new
        giveSz[12],
        amount,
        targetID;
    if(sscanf(params, "us[12]d", targetID, giveSz, amount)) {
        SendClientMessage(playerid, COLOR_GRIS, SYNTAX_MESSAGE"/Dar [Jugador/ID] [Artнculo] [Cantidad/Arma]");
        return SendClientMessage(playerid, COLOR_GRIS, "Artнculos: Materiales, Drogas");
    }
    else {
        if(targetID == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GRIS, "El ID de jugador especificado no estб conectado o no se ha autenticado.");
        if(!IsPlayerInRangeOfPlayer(playerid, targetID, 5.0)) return SendClientMessage(playerid, COLOR_GRIS, "Estas demasiado lejos.");
        new playerName[2][MAX_PLAYER_NAME]; //definimos esto afuera porque no se si sera un error de pawn, pero ocurre un problema al usar arrays de dos dimenciones
        if(strcmp(giveSz, "materiales", true) == 0) {
            GetPlayerName(playerid, playerName[0], MAX_PLAYER_NAME);
            GetPlayerName(targetID, playerName[1], MAX_PLAYER_NAME);
            if(playerVariables[playerid][pMaterials] >= amount) {
                if(amount < 1)
                    return 1;
                playerVariables[playerid][pMaterials] -= amount;
                playerVariables[targetID][pMaterials] += amount;
                format(szMessage, sizeof(szMessage), "Le has dado %d materiales a %s.", amount, playerName[1]);
                SendClientMessage(playerid, COLOR_BLANCO, szMessage);
                format(szMessage, sizeof(szMessage), "%s le ha dado %d materiales.", playerName[0], amount);
                SendClientMessage(targetID, COLOR_BLANCO, szMessage);
                format(szMessage, sizeof(szMessage), "* %s le ha dado %d materiales a %s.", playerName[0], amount, playerName[1]);
                nearByMessage(playerid, COLOR_PURPURA, szMessage);
            }
            else {
                format(szMessage, sizeof(szMessage), "Usted no tiene los materiales suficientes para completar este comercio. Usted necesita %d mas materiales.", playerVariables[playerid][pMaterials]-amount);
                SendClientMessage(playerid, COLOR_BLANCO, szMessage);
            }
        }
        else if(strcmp(giveSz, "drogas", true) == 0) {
        
            if(playerVariables[playerid][pDrogas] >= amount) {
                if(amount < 1)
                    return 1;
                GetPlayerName(playerid, playerName[0], MAX_PLAYER_NAME); //Obtenemos los nombres de los jugadores (no lo habias puesto)
                GetPlayerName(targetID, playerName[1], MAX_PLAYER_NAME);
                
                playerVariables[playerid][pDrogas] -= amount;
                playerVariables[targetID][pDrogas] += amount;
                format(szMessage, sizeof(szMessage), "Le has dado %d gramos de droga a %s.", amount, playerName[1]);
                SendClientMessage(playerid, COLOR_BLANCO, szMessage);
                format(szMessage, sizeof(szMessage), "%s le ha dado %d gramos de droga.", playerName[0], amount);
                SendClientMessage(targetID, COLOR_BLANCO, szMessage);
                format(szMessage, sizeof(szMessage), "* %s le ha dado %d gramos de droga a %s.", playerName[0], amount, playerName[1]);
                nearByMessage(playerid, COLOR_PURPURA, szMessage);
            }
            else {
                format(szMessage, sizeof(szMessage), "Usted no tiene los drogas suficientes para completar este comercio. Usted necesita %d gramos de droga mas.", playerVariables[playerid][pDrogas]-amount);
                SendClientMessage(playerid, COLOR_BLANCO, szMessage);
            }
        }
    }
    return 1;
}
 
Respuesta: [Problema]ZCMD If no detectado - 
[DOG]irinel1996 -  17.04.2012
Jaja, buena vista Daniel-92.
No me di cuenta de que faltaba obtener los nombres de los jugadores en esa parte. 
 
Respuesta: [Problema]ZCMD If no detectado - 
GroX0r -  18.04.2012
Oh gracias, al parecer el error erб 
pawn Код:
new playerName[2][MAX_PLAYER_NAME];
 ya que tambien habнa probado obtener nombres de los jugadores pero los borre porque no dio error *troll* jaja xDD!
Bueno gracias, por corregirme el error 
 
Saludos y se agradece 

!