#1

hey guys i have a /nre command a helper can respond to a player help request but if you have id 0 everything works but if you have id 1+ is giving you a message like "Unknown Command" but that player get's the message typed by helper

Код HTML:
CMD:nre(playerid, params[])
{
	new message[164], nstring[164];
	if(gLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_ERROR, "Tu nu esti logat si nu poti sa folosesti aceasta comanda!");
	if(PlayerInfo[playerid][pGamingPerk] == 0) return SendClientMessage(playerid, COLOR_ERROR, "Nu ai acces la aceasta comanda!");
	if(HelperAnswer[playerid] == -1) return SendClientMessage(playerid, COLOR_ERROR, "Nu ai primit o intrebare.");
	if(sscanf(params,"s[164]", message)) return SendClientMessage(playerid, COLOR_SYN,"Sintaxa:{FFFFFF} /nre <raspuns>");
	{
        if(PlayerInfo[playerid][pHelper] >= 1)
        {
		    PlayerInfo[playerid][pStaffPoints]++;
			Update(playerid, pStaffPointsx);
			Questions--;
			UpdateStaffTextdraw();

			format(gString, sizeof(gString), "(N - A) Helper %s: @%s, %s", GetName(playerid),GetName(HelperAnswer[playerid]), message);
			new string2[128];
			if(strlen(gString) > 120)
			{
				strmid(string2, gString, 110, 256);
				strdel(gString, 110, 256);

				format(gString,128,"%s ...",gString);
				format(string2,128,"... %s",string2);
			}

			foreach(new x : Player)
		    {
				if(NewbieEnabled[x] == 1)
				{
                    format(nstring, sizeof(nstring), "(N - Q) Newbie %s: %s", GetName(HelperAnswer[playerid]),PlayerInfo[HelperAnswer[playerid]][pNewbie]);
					SendClientMessage(x,COLOR_YELLOW, nstring);

					if(strlen(gString) > 120)
					{
						SendClientMessageToAll(COLOR_NOB, gString);
						SendClientMessageToAll(COLOR_YELLOW, string2);
					}
					else
					{
						SendClientMessage(x,COLOR_NOB, gString);
					}
				}

                if(HelperAnswer[x] == playerid)
				{
				    format(PlayerInfo[x][pNewbie],164," ");
				    HelperAnswer[x] = -1;
				    HelperAnswer[playerid] = -1;
				}

				if(strlen(PlayerInfo[x][pNewbie]) > 1 && HelperAnswer[x] == -1)
			    {
                    format(gString, sizeof(gString), "(Question) %s - lvl %d: %s", GetName(x), PlayerInfo[x][pLevel], PlayerInfo[x][pNewbie]);
					SendClientMessage(playerid, COLOR_NEWBIE, gString);
					HelperAnswer[x] = playerid;
					HelperAnswer[playerid] = x;
					format(gString, sizeof(gString), "Intrebarea ta a fost atribuita helperului %s, te rugam sa astepti raspunsul acestuia.", GetName(HelperAnswer[playerid]));
    				SendClientMessage(x,COLOR_NOB,gString);
					SendClientMessage(x,COLOR_NOB,"Chat-ul (/n)ewbie a fost activat automat. Dupa ce primesti un raspuns il poti dezactiva (/nonewbie)");
					break;
			    }
			}
	    }
	    else SendClientMessage(playerid, COLOR_GREY, "Nu ai gradul necesar ca sa folosesti aceasta comanda!");
	}
	return 1;
}
what is wrong with this cmd?
Reply
#2

You might have an array index that is out of bounds. Check your console and run crashdetect to see if it runs into any errors. Seeing as you seem to think it is tied to the player ID, I would check all arrays where you use 'playerid' to see if the array is large enough. Arrays of this type should always be at least a size of 'MAX_PLAYERS'.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)