Serintem:
Mod/FS elejére:
new chatszin[MAX_PLAYERS];
OnPlayerConnect alatt:
chatszin[playerid] = 0xFFFFFFFF //Alapból fehér legyen pl.
A parancsra behozod neki a dialogot:
CMD:chatcolor(playerid, params[])
{
ShowPlayerDialog(playerid, 100, DIALOG_STYLE_LIST, \"Chatszín választás\",\"Szin1\\r\\nSzin2\\r\\nSzin3\\r\\nSzin4\",\"Választ\",\"Kilépés\");
return 1;
}
OnDialogResponse alá:
if(dialogid == 100)
{
switch(listitem)
{
case 0: {chatszin[playerid] = 0xFFFFFFFF;} //Elsõ színkód
case 1: {chatszin[playerid] = 0xFFFFFFFF;} //Második színkód
case 2: {chatszin[playerid] = 0xFFFFFFFF;} //Harmadik színkód
case 3: {chatszin[playerid] = 0xFFFFFFFF;} //Negyedik színkód
}
}
return 1;
OnPlayerText alá:
new str[128], nev[MAX_PLAYER_NAME];
GetPlayerName(playerid, nev, MAX_PLAYER_NAME);
format(str, 128, \"%s: %s\", nev, text);
SendClientMessageToAll(playerid, chatszin[playerid], str);
return 0;
Tessék:
#include <a_samp>
#define DIALOG_CHATSZIN 1000
#define ALAPCHATSZIN 0xFFFFFFFF
new chatszin[MAX_PLAYERS], nev[MAX_PLAYER_NAME];
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/chatcolor\", cmdtext, true, 10) == 0)
{
ShowPlayerDialog(playerid, DIALOG_CHATSZIN, DIALOG_STYLE_LIST, \"Chatszín választás\",\"1. Szín\\r\\n2. Szín\\r\\n 3. Szín\\r\\n4. Szín\",\"Választ\",\"Kilépés\");
return 1;
}
return 0;
}
public OnPlayerConnect(playerid)
{
chatszin[playerid] = ALAPCHATSZIN;
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_CHATSZIN)
{
switch(listitem)
{
case 0: {chatszin[playerid] = 0xFFFFFFFF;} //Elsõ színkód
case 1: {chatszin[playerid] = 0xFFFFFFFF;} //Második színkód
case 2: {chatszin[playerid] = 0xFFFFFFFF;} //Harmadik színkód
case 3: {chatszin[playerid] = 0xFFFFFFFF;} //Negyedik színkód
}
}
return 1;
}
public OnPlayerText(playerid, text[])
{
new str[160];
GetPlayerName(playerid, nev, MAX_PLAYER_NAME);
format(str, 160, \"%s: %s\", nev, text);
SendClientMessageToAll(chatszin[playerid], str);
return 0;
}