17.04.2012, 16:39
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;
}