problema restar variable -
kn9w - 21.10.2015
bueno les comento quiero restar una variable al usar un comando..
al colocarlo asi me funciona..
Код:
Points[mypoint][Stock] -= amount;
pero al colocarlo
Код:
Points[mypoint][Stock] - amount;
me dice error: warning 215: expression has no effect
por que no funciona colocando menos solo
queiro que reste nada mas.
Respuesta: problema restar variable -
DesingMyCry - 21.10.2015
No estas guardando el resultado en alguna variable.
Respuesta: problema restar variable -
Goncho28 - 21.10.2015
Porque el '=' lo que hace es setear la variable.
Respuesta: problema restar variable -
kn9w - 21.10.2015
quiero que se le reste a Points[mypoint][Stock] lo que le pongo en amount
Код:
CMD:comprarhierba(playerid, params[])
{
new string[128], amount;
if(sscanf(params, "d", amount)) return SendClientMessageEx(playerid, COLOR_WHITE, "Utiliza: /comprarhierba (valor)");
new tel;
new price;
new level = Info[playerid][pDrugsSkill];
if(level >= 0 && level <= 50)
{ tel = 100; if(amount < 1 || amount > 10) { SendClientMessageEx(playerid, COLOR_GREY, "{A2DC35}[INFO]:{FFFFFF} No puedes sacar mas de 10 con este nivel de skill!"); return 1; } }
else if(level >= 51 && level <= 100)
{ tel = 100; if(amount < 1 || amount > 20) { SendClientMessageEx(playerid, COLOR_GREY, "{A2DC35}[INFO]:{FFFFFF} No puedes sacar mas de 20 con este nivel de skill!"); return 1; } }
else if(level >= 101 && level <= 200)
{ tel = 100; if(amount < 1 || amount > 30) { SendClientMessageEx(playerid, COLOR_GREY, "{A2DC35}[INFO]:{FFFFFF} No puedes sacar mas de 30 con este nivel de skill!"); return 1; } }
else if(level >= 201 && level <= 400)
{ tel = 100; if(amount < 1 || amount > 40) { SendClientMessageEx(playerid, COLOR_GREY, "{A2DC35}[INFO]:{FFFFFF} No puedes sacar mas de 40 con este nivel de skill!"); return 1; } }
else if(level >= 401)
{ tel = 100; if(amount < 1 || amount > 50) { SendClientMessageEx(playerid, COLOR_GREY, "{A2DC35}[INFO]:{FFFFFF} No puedes sacar mas de 50 con este nivel de skill!"); return 1; } }
new mypoint = -1;
for (new i=0; i<MAX_POINTS; i++)
{
if (IsPlayerInRangeOfPoint(playerid, 3.0, Points[i][Pointx], Points[i][Pointy], Points[i][Pointz]) && Points[i][Type] == 3)
{
mypoint = i;
}
}
if (mypoint == -1) return SendClientMessageEx(playerid, COLOR_WHITE, " No estбs en la casa de crack.");
if ( Info[playerid][pPot] >= 25) return SendClientMessageEx(playerid, COLOR_WHITE, " Tu ya tienes 25 gramos de hierba, no puedes cargar mбs.");
if (Info[playerid][pJob] == 5 || Info[playerid][pJob2] ==5) {
price = amount * tel;
if(Points[mypoint][Stock] < amount && Info[playerid][pVIP] < 1) return SendClientMessageEx(playerid, COLOR_WHITE, "* Esta casa de drogas no tiene mбs hierba.");
if(GetPlayerCash(playerid) > price) {
format(string, sizeof(string), "* Compraste %d gramos por $%d.", amount, price);
SendClientMessageEx(playerid, COLOR_LIGHTBLUE, string);
GivePlayerCash(playerid, -price);
Points[mypoint][Stock] - amount; // en esta linea quiero que le reste a Points[mypoint][Stock] lo que puse en amount... para que se actualize la hierbadisponible.
Info[playerid][pPot] += amount;
if(Info[playerid][pVIP] < 1) {
Points[mypoint][Stock] -= amount;
format(string, sizeof(string), " HIERBA DISPONIBLE: %d/1000.", Points[mypoint][Stock]);
UpdateDynamic3DTextLabelText(Points[mypoint][TextLabel], COLOR_YELLOW, string);
}
for(new i = 0; i < sizeof(fINFO); i++) {
if(strcmp(Points[mypoint][Owner], fINFO[i][FamilyName], true) == 0){
fINFO[i][FamilyBank] = fINFO[i][FamilyBank]+price/2;
}
}
}
else return SendClientMessageEx(playerid, COLOR_WHITE, "No puedes pagar estas drogas.");
}
else SendClientMessageEx(playerid, COLOR_WHITE, "No eres vendedor de drogas.");
return 1;
}
Re: problema restar variable -
Kevln - 22.10.2015
Lo que hace lo siguiente
pawn Код:
Points[mypoint][Stock] -= amount;
es restar el valor en "amount" al valor de "Points[mypoint][Stock]" y asignar ese valor al primer variable "Points[mypoint][Stock]".
Respecto a esto
pawn Код:
Points[mypoint][Stock] - amount;
la forma correcta de hacerlo, seria
pawn Код:
Points[mypoint][Stock] = Points[mypoint][Stock] - amount;
Ambos hacen lo mismo, pero utiliza el primero.