/rob Command Problem
#1

Alright so, I downloaded this filterscript that has this command "/rob" and it sounded perfect. Now the issue is, whenever I Add "rob" to server.cfg and start the server up, "/rob" is the only command that works. Like if you were to type /help, absolutely nothing shows up. It blocks every single command I have besides /rcon commands.
I was wondering why it could possibly be doing that.
Also, I was trying all last night to fix this "warning 217 - loose indentation" problem, and I still can't fix it. So help on that would be appreciated as well.

Anyways heres the code-

Код:
#include <a_samp>

#define filterscript
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
//*****EDIT BELOW THIS LINE:*****
//------------------------------------------------------------------------------------------------------------------------------------------------------------
#define DISTANCE_BETWEEN_PLAYERS 5 //The minimum distance between players to be able to rob                     |
#define COLOR_ROB 0x00FFFFFF //The color of the text send to the players when made a successfull rob             |
#define COLOR_FAIL 0x00FFFFFF //Color of the text displayed to the players when a rob has failed                        |
#define COLOR_ERROR 0xFF0000FF //Color of the text when there is an error                                                                 |
#define ROB_TIME 7000 //Time between rob commands to prevent spam (in milliseconds)                                      |
//*****NO NEED TO EDIT BELOW THIS LINE:*****                                                                                                                       |
//------------------------------------------------------------------------------------------------------------------------------------------------------------

new robtime[MAX_PLAYERS];
new ID;


stock Float:GetDistanceBetweenPlayers(p1,p2){
	new Float:x1,Float:y1,Float:z1,Float:x3,Float:y3,Float:z3;
	if (!IsPlayerConnected(p1) || !IsPlayerConnected(p2)){
		return -1.00;
	}
	GetPlayerPos(p1,x1,y1,z1);
	GetPlayerPos(p2,x3,y3,z3);
	return floatsqroot(floatpower(floatabs(floatsub(x3,x1)),2)+floatpower(floatabs(floatsub(y3,y1)),2)+floatpower(floatabs(floatsub(z3,z1)),2));
}

forward robtimer(id);

dcmd_rob(playerid, params[])
	{
		new pname[MAX_PLAYER_NAME];
		GetPlayerName(playerid, pname, sizeof(pname));
		if(!strlen(params))
		{
			SendClientMessage(playerid, COLOR_ERROR, "Correct usage: /rob [ID]");
		}
		else
		{
			ID = strval(params);
			if(robtime[playerid] == 0)
			{
				if(ID != playerid)
				{
					if(IsPlayerConnected(ID))
					{
						new oname[MAX_PLAYER_NAME];
						GetPlayerName(ID, oname, sizeof(oname));
						if(GetDistanceBetweenPlayers(playerid, ID) <= DISTANCE_BETWEEN_PLAYERS)
						{
							if(!GetPlayerVehicleID(ID) || GetPlayerVehicleID(ID) == GetPlayerVehicleID(ID))
							{
								if(GetPlayerMoney(ID) > 0)
								{
									new rob = random(11);
									if(rob == 1 || rob == 2 || rob == 10 || rob == 11)
									{
										new string[256];
										format(string, sizeof(string), "%s (%i) noticed you trying to rob him. Attempt failed!",oname, ID);
										SendClientMessage(playerid, COLOR_ROB, string);
										format(string, sizeof(string), "~w~%s Noticed you trying to rob him.~n~Attempt failed!.",oname, ID);
										GameTextForPlayer(playerid, string, 5000, 4);
										GetPlayerName(playerid,pname,sizeof(pname));
										format(string, sizeof(string), "You noticed %s (%i) trying to rob you. His attempt has failed!", pname, playerid);
										SendClientMessage(ID, COLOR_ROB, string);
										format(string, sizeof(string), "~w~You noticed %s trying to rob you.~n~His attempt has failed!", pname, playerid);
										GameTextForPlayer(ID, string, 5000, 4);
									}
									else if(rob == 3)
									{
										new pcash = GetPlayerMoney(ID);
										new robcash = random(pcash);
    									GivePlayerMoney(ID, -robcash);
										GivePlayerMoney(playerid, robcash);
										GetPlayerName(playerid, pname, sizeof(pname));
										new string[256];
										format(string, sizeof(string), "You have robbed $%i from %s (%i).", robcash, oname, ID);
										SendClientMessage(playerid, COLOR_ROB, string);
										format(string, sizeof(string), "~w~Robbed $%i from %s.", robcash, oname);
										GameTextForPlayer(playerid, string, 5000, 4);
										format(string, sizeof(string), "%s (%i) has robbed $%i from you.", pname, playerid, robcash);
										SendClientMessage(ID, COLOR_ROB, string);
										format(string, sizeof(string), "~w~%s has robbed $%i from you.", pname, robcash);
										GameTextForPlayer(ID, string, 5000, 4);
									}
									else if(rob == 4 || rob == 5 || rob == 8)
									{
										new pcash = GetPlayerMoney(ID);
										new robcash = random(pcash);
										new robcash2 = robcash-random(robcash);
    									GivePlayerMoney(ID, -robcash2);
										GivePlayerMoney(playerid, robcash2);
										new string[256];
										GetPlayerName(playerid, pname, sizeof(pname));
										format(string, sizeof(string), "You have robbed $%i from %s (%i).", robcash2, oname, ID);
										SendClientMessage(playerid, COLOR_ROB, string);
										format(string, sizeof(string), "~w~Robbed $%i from %s.", robcash2, oname);
										GameTextForPlayer(playerid, string, 5000, 4);
										format(string, sizeof(string), "%s (%i) has robbed $%i from you.", pname, playerid, robcash2);
										SendClientMessage(ID, COLOR_ROB, string);
										format(string, sizeof(string), "~w~%s has robbed $%i from you.", pname, robcash2);
										GameTextForPlayer(ID, string, 5000, 4);
									}
									else if(rob == 6 || rob == 7)
									{
										new pcash = GetPlayerMoney(ID);
										new robcash = random(pcash);
										new robcash2 = robcash-random(robcash);
										new robcash3 = robcash2-random(robcash2);
    									GivePlayerMoney(ID, -robcash3);
										GivePlayerMoney(playerid, robcash3);
										new string[256];
										GetPlayerName(playerid, pname, sizeof(pname));
										format(string, sizeof(string), "You have robbed $%i from %s (%i).", robcash3, oname, ID);
										SendClientMessage(playerid, COLOR_ROB, string);
										format(string, sizeof(string), "%s (%i) has robbed $%i from you.", pname, playerid, robcash3);
										SendClientMessage(ID, COLOR_ROB, string);
										format(string, sizeof(string), "~w~Robbed $%i from %s.", robcash3, oname);
										GameTextForPlayer(playerid, string, 5000, 4);
										format(string, sizeof(string), "~w~%s has robbed $%i from you.", pname, robcash3);
										GameTextForPlayer(ID, string, 5000, 4);
									}
									else
									{
										SetPlayerHealth(playerid, -69);
										new string[256];
										GetPlayerName(playerid, pname, sizeof(pname));
										format(string, sizeof(string), "Your hand has stuck to %s (%i)'s pocket. ", oname, ID);
										SendClientMessage(playerid, COLOR_FAIL, string);
										SendClientMessage(playerid, COLOR_FAIL, "He noticed it and shot you.");
										format(string, sizeof(string), "%s (%i)'s hand has stuck to your pocket while trying to rob you.", pname, playerid);
										SendClientMessage(ID, COLOR_FAIL, string);
										SendClientMessage(ID, COLOR_FAIL, "You noticed it and ahot him.");
										format(string, sizeof(string), "*** %s (%i) has bled to death.", pname, playerid);
										SendClientMessageToAll(0x880000FF, string);
										format(string, sizeof(string), "~w~%s has shot you.", oname, ID);
										GameTextForPlayer(playerid, string, 5000, 4);
										format(string, sizeof(string), "~w~You shot %s.", oname, ID);
										GameTextForPlayer(ID, string, 5000, 4);
									}
									robtime[playerid] = 1;
									SetTimerEx("robtimer", ROB_TIME, false, "i", playerid);
								}
								else
								{
									new string[256];
									format(string, sizeof(string), "%s (%i) has no money to rob!", oname, ID);
									SendClientMessage(playerid, COLOR_ERROR, string);
								}
							}
							else
							{
								new string[256];
								format(string, sizeof(string), "%s (%i) has to be in the same vehicle as you to be able to rob!", oname, ID);
								SendClientMessage(playerid, COLOR_ERROR, string);
							}
						}
						else
						{
							new string[256];
							format(string, sizeof(string), "%s (%i) is not close enough to rob.", oname, ID);
							SendClientMessage(playerid, COLOR_ERROR, string);
						}
					}
					else
					{
						SendClientMessage(playerid, COLOR_ERROR, "That player is not connected!");
					}
				}
				else
				{
					SendClientMessage(playerid, COLOR_ERROR, "You cannot rob yourself!");
				}
			}
			else
            {
				SendClientMessage(playerid, COLOR_ERROR, "Please wait before robbing someone again.");
			    }
			
            return 1;
       }

       return 0;       <---------- This is the exact line where the "loose indentation" warning appears.
}

public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(rob,3,cmdtext);
return 1;
}
public robtimer(id)
{
	robtime[id] = 0;
}
Reply
#2

If you are using ZCMD on your gamemode then you should use zcmd on this FS also.
Reply
#3

I am not using ZCMD in the gamemode, as a matter a fact I don't even know what to call what I'm using.(I'm a noob)
its the one with "strcmp" and such
Reply
#4

then use strcmp in the fs also or convert ur gm into dcmd..
Reply
#5

How could this possibly even be the problem? I have different command proccesors in every fs than my gamemode, and they all worked absolutely fine until this one. Something is blocking the commands in every other fs, and my gamemode whenever i use this fs.


I would also like to add that even if I wanted to, I couldn't do that because I don't know how.
Reply
#6

Just as I suspected, it wasn't because of the fact that it was dcmd, it was because I had return 1; under onplayercommandtext in the filterscript, thus blocking everything else if I'm not mistaken.
But yeah I made it return 0 and it worked, but I do still have the issue of "Warning 217 - loose indentation"
So If somebody could help me with that it would much appreciated.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)