Command Is Not Working
#1

I've been trying to fix this for like 2 Hours now Can Someone Help me?

Код:
if(strcmp(cmd,"/materials",true)==0)
  {
    if(IsPlayerConnected(playerid))
	  {
		  if (PlayerInfo[playerid][pJob] != 1)
			{
			  SendClientMessage(playerid,COLOR_LIGHTYELLOW2,"[ERROR:] Your not an arms dealer!");
			  return 1;
			}
			new x_nr[256];
			x_nr = strtok(cmdtext, idx);
			if(!strlen(x_nr)) {
				SendClientMessage(playerid, COLOR_LIGHTYELLOW2, "[USAGE:] /materials [usage]");
				SendClientMessage(playerid, COLOR_LIGHTYELLOW2, "[USAGES:] buy, dropoff.");
				return 1;
			}
			new moneys;
			moneys = strval(tmp);
			if(moneys < 1 || moneys > 10) { SendClientMessage(playerid, COLOR_LIGHTYELLOW2, "[ERROR:] Maximum number of packages is 10."); return 1; }
			new price = moneys * 100;
			if(!strcmp(tmp, "buy",true,4))
			{
			  if(PlayerToPoint(3.0,playerid,GunJob[BuyPackagesX],GunJob[BuyPackagesY],GunJob[BuyPackagesZ]))
			  {
			    if(MatsHolding[playerid] >= 10)
			    {
			      SendClientMessage(playerid, COLOR_LIGHTYELLOW2, "[ERROR:] You can't hold any more packages.");
				    return 1;
			    }
			    tmp = strtok(cmdtext, idx);
 					if(!strlen(tmp))
 					{
      			if(GetPlayerCash(playerid) > price)
					{
					  format(string, sizeof(string), "[INFO:] You got %d materials packages - Cost: $%d.", moneys, price);
					  SendClientMessage(playerid, COLOR_WHITE, string);
					  GivePlayerCash(playerid, - price);
					  MatsHolding[playerid] = moneys;
					}
					return 1;
  				}
			//		new moneys;
					moneys = strval(tmp);
					if(moneys < 1 || moneys > 10) { SendClientMessage(playerid, COLOR_LIGHTYELLOW2, "[ERROR:] Maximum number of packages is 10."); return 1; }
				//	new price = moneys * 100;
   				if(GetPlayerCash(playerid) > price)
					{
					  format(string, sizeof(string), "[INFO:] You got %d materials packages - Cost: $%d.", moneys, price);
					  SendClientMessage(playerid, COLOR_WHITE, string);
					  GivePlayerCash(playerid, - price);
					  MatsHolding[playerid] = moneys;
					}
					else
					{
					  format(string, sizeof(string), "[ERROR:] You don't have $%d.", price);
					  SendClientMessage(playerid, COLOR_LIGHTYELLOW2, string);
					}
			  }
		  	else
			  {
			    SendClientMessage(playerid, COLOR_LIGHTYELLOW2, "[ERROR:] You are not at the materials package place!");
			    return 1;
			  }
  }
			if(!strcmp(tmp, "drop",true,4))
			{
			  if(PlayerToPoint(3.0,playerid,GunJob[DeliverX],GunJob[DeliverY],GunJob[DeliverZ]))
			  {
			    if(MatsHolding[playerid] > 0)
			    {
			      new payout = (50)*(MatsHolding[playerid]);
			      format(string, sizeof(string), "{INFO:] Materials packages delivered, you got %d materials.", payout);
					  SendClientMessage(playerid, COLOR_WHITE, string);
			      PlayerInfo[playerid][pMaterials] += payout;
			      MatsHolding[playerid] = 0;
			    }
			    else
			    {
			      SendClientMessage(playerid, COLOR_LIGHTYELLOW2, "[ERROR:] You don't even have any packages!");
				    return 1;
			    }
			  }
			  else
			  {
  					if(MatsHolding[playerid] > 0)
			    {
			      new payout = (50)*(MatsHolding[playerid]);
			      format(string, sizeof(string), "{INFO:] Materials packages delivered, you got %d materials.", payout);
					  SendClientMessage(playerid, COLOR_WHITE, string);
			      PlayerInfo[playerid][pMaterials] += payout;
			      MatsHolding[playerid] = 0;
			    }
		    	return 1;
			  }
			}
			else
			{
			  SendClientMessage(playerid, COLOR_LIGHTYELLOW2, "[ERROR:] Invalid Usage.");
			  return 1;
			}
		}
		return 1;
	}
Reply
#2

before i look at the code, is there any errors or not?
Reply
#3

nope


offtopic: Sorry for long reply, I posted this at like 2:00am in the morning. I ended up falling asleep :P
Reply
#4

Maybe you should try to use dcmd+sscanf, because like the wiki says, https://sampwiki.blast.hk/wiki/Fast_Commands"]"...however it[strtok] is very slow in comparison to other methods, one of these methods, dcmd, is explained here along with a method of extracting parameters safely and quickly from the entered command. "[/url]

I find dcmd+sscanf myself much easier and simpler.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)