16.02.2016, 02:30
Esta exagerada tu funcion.
Esto nomas te permitira usar una vez los dos "*", si mandas, por ejemplo "hola *hola* hola *hola*". Solo la primera "*hola*" cambiara de color. Y el otro sera omitido. Si quieres tu puedes aсadir eso.
pawn Код:
// ** INCLUDES
#include <a_samp>
// ** DEFINES
// *** FUNCTIONS
#define strcpy(%0,%1,%2) strcat((%0[0] = '\0', %0), %1, %2)
// ** MAIN
main()
{
print("Loaded \"color_opening_and_closing_tags.amx\".");
}
// ** CALLBACKS
public OnGameModeInit()
{
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
SetPlayerColor(playerid, 0xFF0000FF);
return 1;
}
public OnPlayerText(playerid, text[])
{
new opening_tag_pos = strfind(text, "*", true);
if(opening_tag_pos != -1)
{
new new_text[128], closing_tag_pos = strfind(text, "*", true, (opening_tag_pos + 1));
strcpy(new_text, text, 128);
if(closing_tag_pos != -1)
{
new string[256];
strdel(new_text, opening_tag_pos, (opening_tag_pos + 1));
strdel(new_text, (closing_tag_pos - 1), closing_tag_pos);
strins(new_text, "{FFFFFF}", (closing_tag_pos - 1), 128);
strins(new_text, "{FFF000}", opening_tag_pos, 128);
format(string, sizeof(string), "%s: {FFFFFF}%s", ReturnPlayerName(playerid), new_text);
SendClientMessageToAll(GetPlayerColor(playerid), string);
return 0;
}
}
return 1;
}
// ** FUNCTIONS
stock ReturnPlayerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
return name;
}
Esto nomas te permitira usar una vez los dos "*", si mandas, por ejemplo "hola *hola* hola *hola*". Solo la primera "*hola*" cambiara de color. Y el otro sera omitido. Si quieres tu puedes aсadir eso.