05.08.2015, 01:23
Hi , I have a problem in this CMD , player can abuse that , for example /houselocker put sguns -111111
I need when player use amount under 0 cmd don't work
I need when player use amount under 0 cmd don't work
Код:
COMMAND:houselocker(playerid, params[]) {// houselocker [take / put ] [sguns/sdrugs] [amount] new tmp[ 64 ], tmp2[ 64 ], tmp3; if(PlayerTemp[playerid][tmphouse]!=-1) { new filename[20]; format(filename,sizeof(filename),"Casa%d.txt",House[PlayerTemp[playerid][tmphouse]][HouseID]); new cursguns = dini_Int(filename,"sguns"); new cursdrugs = dini_Int(filename,"sdrugs"); if(sscanf(params, "ssd",tmp,tmp2,tmp3)) { SendClientMSG(playerid, COLOR_LIGHTGREY, "LOCKER: There is currently %d Guns and %d Drugs in the locker.", dini_Int(filename,"sguns"), dini_Int(filename,"sdrugs")); return SCP(playerid, "[ take / put ] [ sguns / sdrugs ] [ amount ]"); } if(!strcmp(tmp, "take")) { if(!strlen(tmp2)) return SCP(playerid,"take [ sguns / sdrugs ] [ amount ]"); if(!strcmp(tmp2,"sguns")) { if(tmp3>cursguns) { SendClientError(playerid, "Invalid amount"); return 1; } if(!cursguns) format(filename,sizeof(filename),"Casa%d.txt",House[PlayerTemp[playerid][tmphouse]][HouseID]); dini_IntSet(filename, "sguns", cursguns-tmp3); PlayerInfo[playerid][sguns] += tmp3; SendClientMSG(playerid, COLOR_LIGHTGREY, "LOCKER: You have taken %d guns from your house locker.", tmp3); } else if(!strcmp(tmp2,"sdrugs")) { if(!cursdrugs) if(tmp3>cursdrugs) { SendClientError(playerid, "Invalid amount"); return 1; } dini_IntSet(filename,"sdrugs", cursdrugs-tmp3); // format(filename,sizeof(filename),"Casa%d.txt",House[PlayerTemp[playerid][tmphouse]][HouseID]); PlayerInfo[playerid][sdrugs] += tmp3; SendClientMSG(playerid, COLOR_LIGHTGREY, "LOCKER: You have taken %d drugs from your house locker.", tmp3); } } else if(!strcmp(tmp, "put")) { if(!strlen(tmp2)) return SCP(playerid,"put [ sguns / sdrugs ] [ amount ]"); if(!strcmp(tmp2,"sguns")) { if(PlayerInfo[playerid][sguns]<tmp3) if(PlayerInfo[playerid][sguns]<0) { SendClientError(playerid, "Invalid amount"); return 1; } dini_IntSet(filename, "sguns" , cursguns+tmp3); PlayerInfo[playerid][sguns] -= tmp3; SendClientMSG(playerid, COLOR_LIGHTGREY, "LOCKER: You have put %d guns from your house locker.", tmp3); } else if(!strcmp(tmp2,"sdrugs")) { if(PlayerInfo[playerid][sdrugs]<tmp3) { SendClientError(playerid, "Invalid amount"); return 1; } dini_IntSet(filename,"sdrugs", cursdrugs+tmp3); PlayerInfo[playerid][sdrugs] -= tmp3; SendClientMSG(playerid, COLOR_LIGHTGREY, "LOCKER: You have put %d drugs from your house locker.", tmp3); } } } return 1; }