SA-MP Forums Archive
ann command causes crash - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: ann command causes crash (/showthread.php?tid=651749)



ann command causes crash - vegaltasendai - 26.03.2018

This command causes crash on my server as I fix it?

when using the command /ann ~r~text, it is normal

but when they write without the ~ provokes crash
/ann r~ text


Код:
CMD:ann(playerid, params[])
{
 if(Player[playerid][Level] < 5 && !IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"{0099FF}>> {EEEEEE}Error: {0099FF}You Need High level.");
        GameTextForAll(params,4000,3);
    new
       jugador[32],
        enviador[128]
    ;
    GetPlayerName(playerid, jugador, sizeof(jugador));
    format(enviador, 128, "Admi {FFFFFF}%s envio ann",jugador);
    SendClientMessageToAll(PINK_COLOR,enviador);
    return 1;
}



Re: ann command causes crash - UFF - 27.03.2018

Код:
CMD:ann(playerid, params[])
{
 if(Player[playerid][Level] < 5 && !IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"{0099FF}>> {EEEEEE}Error: {0099FF}You Need High level.");

         new tmp[200],jugador[32],enviador[128];

        if(sscanf(params, "s", tmp))
	{
	    Usage(playerid, "/ann <msg>");
	    return true;
	}

       GetPlayerName(playerid, jugador, sizeof(jugador));

       format(enviador, sizeof(enviador),  "Admi {FFFFFF}%s envio ann", jugador);
       SendClientMessageToAll(PINK_COLOR,enviador);

	format(enviador, sizeof(enviador), "~w~%s", tmp);
	GameTextForAll(enviador, 4000, 3);
       return 1;
}
Hope this works!
Use sscanf.


Re: ann command causes crash - vegaltasendai - 27.03.2018

thanks, but it does not work, it keeps crashing


Re: ann command causes crash - UFF - 27.03.2018

Код:
if(Player[playerid][Level] < 5) return SendClientMessage(playerid,-1,"{0099FF}>> {EEEEEE}Error: {0099FF}You Need High level.");
Try this.


Re: ann command causes crash - AlamoTR - 27.03.2018

Код:
CMD:ann(playerid, params[])
{
    if(Player[playerid][Level] < 5 && !IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"{0099FF}>> {EEEEEE}Error: {0099FF}You Need High level.");
	new textt[56];
	if(sscanf(params, "s[128]", textt)) return SendClientMessage(playerid, -1, "/ann text");
	if(!IsSafeGametext(textt)) return SendClientMessage(playerid, -1, "You're probably missing a '~' which can crash you and/or other clients!");
	GameTextForAll(textt, 4000, 3);
    new pNamex[32], msgg[128];
    GetPlayerName(playerid, pNamex, sizeof(pNamex));
    format(msgg, sizeof(msgg), "Admi {FFFFFF}%s envio ann", pNamex);
    SendClientMessageToAll(-1, msgg);
	return 1;
}
stock IsEven(integer)
{
	if(integer % 2 == 0)
		 return 1;
	return 0;
}

stock IsSafeGametext(text[])
{
	new cnt = 0;
	for(new i = 0; i < strlen(text); i ++)
	{
		if(text[i] == '~')
			cnt ++;
	}
	if(IsEven(cnt) == 0)
		return 0;
	return 1;
}



Re: ann command causes crash - vegaltasendai - 27.03.2018

Quote:
Originally Posted by AlamoTR
Посмотреть сообщение
Код:
CMD:ann(playerid, params[])
{
    if(Player[playerid][Level] < 5 && !IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,"{0099FF}>> {EEEEEE}Error: {0099FF}You Need High level.");
	new textt[56];
	if(sscanf(params, "s[128]", textt)) return SendClientMessage(playerid, -1, "/ann text");
	if(!IsSafeGametext(textt)) return SendClientMessage(playerid, -1, "You're probably missing a '~' which can crash you and/or other clients!");
	GameTextForAll(textt, 4000, 3);
    new pNamex[32], msgg[128];
    GetPlayerName(playerid, pNamex, sizeof(pNamex));
    format(msgg, sizeof(msgg), "Admi {FFFFFF}%s envio ann", pNamex);
    SendClientMessageToAll(-1, msgg);
	return 1;
}
stock IsEven(integer)
{
	if(integer % 2 == 0)
		 return 1;
	return 0;
}

stock IsSafeGametext(text[])
{
	new cnt = 0;
	for(new i = 0; i < strlen(text); i ++)
	{
		if(text[i] == '~')
			cnt ++;
	}
	if(IsEven(cnt) == 0)
		return 0;
	return 1;
}
This script if I work thanks to both

Thanks @UFF @AlamoTR

+Rep