[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
!