-
Sziasztok, egy kis segítséget szeretnék kérni.
Azt szeretném elérni, hogy az adminok és a játékosok más színnel írjanak a chatbe. Itt vannak hozzá a dolgok amik elvileg kellenek hozzá csak én nem birom őket összeilleszteni, hogy működjenek is :wall: :D
// This callback gets called whenever a player uses the chat-box
public OnPlayerText(playerid, text[])
{
// Block the player\'s text if he has been muted
if (APlayerData[playerid][Muted] == true)
{
// Let the player know he\'s still muted
SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Némítva vagy\");
// Don\'t allow his text to be sent to the chatbox
return 0;
}
new szamok=0,pontok=0, kettospont=0;
for(new ch=0; ch<strlen(text); ch++) if(text[ch]>=\'0\' && text[ch]<=\'9\')szamok++; else if(text[ch]==\'.\')pontok++; else if(text[ch]==\':\')kettospont++;
if(szamok>=9 && pontok>=3 && kettospont==1) Kick(playerid);
new string[256];
new nev[40];
GetPlayerName(playerid,nev,sizeof(nev));
format(string,sizeof(string),\"%s {00FF00}[{FFD700}%d{00FF00}]:{FFFFFF} %s \", nev, playerid, text);
SendClientMessageToAll(GetPlayerColor(playerid), string);
SetPlayerChatBubble(playerid,text, 0xFFFFFF, 300.0 , 10000);
return 0;
}
Admin szint lekérdezése:
if (APlayerData[playerid][PlayerLevel] >= 1)
Dupla hozzászólás automatikusan összefûzve. ( [time]2015. Március 22. 18:19:32[/time] )
Ja, igen és jelezném, hogy ez a megoldás nekem nem jó http://sampforum.hu/index.php?topic=44380 annyi errort ír ki rá, hogy inkább hagyom :D
-
GetPlayerColor(playerid) helyett:
APlayerData[playerid][PlayerLevel] >= 1?(0xFF0000FF):(0xFFFFFFFF)
0xFF0000FF = adminszín
0xFFFFFFFF = playerszín
-
public OnPlayerText(playerid, text[])
{
// Block the player\'s text if he has been muted
if (APlayerData[playerid][Muted] == true)
{
// Let the player know he\'s still muted
SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Némítva vagy\");
// Don\'t allow his text to be sent to the chatbox
return 0;
}
new szamok=0,pontok=0, kettospont=0;
for(new ch=0; ch<strlen(text); ch++) if(text[ch]>=\'0\' && text[ch]<=\'9\')szamok++; else if(text[ch]==\'.\')pontok++; else if(text[ch]==\':\')kettospont++;
if(szamok>=9 && pontok>=3 && kettospont==1) Kick(playerid);
new uzi[256];
if (APlayerData[playerid][PlayerLevel] >= 1)
{
format( uzi , 256 , \"{00FF00}%s[{FFD700}%d{00FF00}]:{FFFFFF}%s\" , AdminLevelName[APlayerData[playerid][PlayerLevel]],playerid , text ); //h admin akkor szinesen ír
SendPlayerMessageToAll( playerid , uzi );
return 0;
}
else
{
format( uzi , 256 , \"{00FF00}[%i] {FFFFFF}%s\" , playerid , text ); // sima játékos
SendPlayerMessageToAll( playerid , uzi);
new to_others[MAX_CHATBUBBLE_LENGTH+1];
format(to_others,MAX_CHATBUBBLE_LENGTH,\"%s\",text);
SetPlayerChatBubble(playerid,to_others,COLOR_RED,35.0,10000);
}
return 0;
}
vagy esetleg így?
Módosított változat lemaradt a végéről másoláskor!
}
return 0;
}
-
GetPlayerColor(playerid) helyett:
APlayerData[playerid][PlayerLevel] >= 1?(0xFF0000FF):(0xFFFFFFFF)
0xFF0000FF = adminszín
0xFFFFFFFF = playerszín
Félreértetted, nem a nevét akarom színezni hanem azt AMIT ír
Dupla hozzászólás automatikusan összefûzve. ( [time]2015. Március 22. 19:19:40[/time] )
public OnPlayerText(playerid, text[])
{
// Block the player\'s text if he has been muted
if (APlayerData[playerid][Muted] == true)
{
// Let the player know he\'s still muted
SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Némítva vagy\");
// Don\'t allow his text to be sent to the chatbox
return 0;
}
new szamok=0,pontok=0, kettospont=0;
for(new ch=0; ch<strlen(text); ch++) if(text[ch]>=\'0\' && text[ch]<=\'9\')szamok++; else if(text[ch]==\'.\')pontok++; else if(text[ch]==\':\')kettospont++;
if(szamok>=9 && pontok>=3 && kettospont==1) Kick(playerid);
new uzi[256];
if (APlayerData[playerid][PlayerLevel] >= 1)
{
format( uzi , 256 , \"{00FF00}%s[{FFD700}%d{00FF00}]:{FFFFFF}%s\" , AdminLevelName[APlayerData[playerid][PlayerLevel]],playerid , text ); //h admin akkor szinesen ír
SendPlayerMessageToAll( playerid , uzi );
return 0;
}
else
{
format( uzi , 256 , \"{00FF00}[%i] {FFFFFF}%s\" , playerid , text ); // sima játékos
SendPlayerMessageToAll( playerid , uzi);
new to_others[MAX_CHATBUBBLE_LENGTH+1];
format(to_others,MAX_CHATBUBBLE_LENGTH,\"%s\",text);
SetPlayerChatBubble(playerid,to_others,COLOR_RED,35.0,10000);
return 0;
vagy esetleg így?
[/quote]Hátööö ez full error
Dupla hozzászólás automatikusan összefûzve. ( 2015. március 22. - 19:21:49 )
Én valahogy így képzelem el
new string[256];
new nev[40];
if (APlayerData[playerid][PlayerLevel] >= 1)
GetPlayerName(playerid,nev,sizeof(nev));
format(string,sizeof(string),\"%s {00FF00}[{FFD700}%d{00FF00}]:{FF0000} %s \", nev, playerid, text);
SendClientMessageToAll(GetPlayerColor(playerid), string);
SetPlayerChatBubble(playerid,text, 0xFFFFFF, 300.0 , 10000);
return 0;
}
else
{
if (APlayerData[playerid][PlayerLevel] == 0)
GetPlayerName(playerid,nev,sizeof(nev));
format(string,sizeof(string),\"%s {00FF00}[{FFD700}%d{00FF00}]:{FFFFFF} %s \", nev, playerid, text);
SendClientMessageToAll(GetPlayerColor(playerid), string);
SetPlayerChatBubble(playerid,text, 0xFFFFFF, 300.0 , 10000);
return 0;
Erre invaild function or declaration
-
public OnPlayerText(playerid, text[])
{
// Block the player\'s text if he has been muted
if (APlayerData[playerid][Muted] == true)
{
// Let the player know he\'s still muted
SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Némítva vagy\");
// Don\'t allow his text to be sent to the chatbox
return 0;
}
new szamok=0,pontok=0, kettospont=0;
for(new ch=0; ch<strlen(text); ch++) if(text[ch]>=\'0\' && text[ch]<=\'9\')szamok++; else if(text[ch]==\'.\')pontok++; else if(text[ch]==\':\')kettospont++;
if(szamok>=9 && pontok>=3 && kettospont==1) Kick(playerid);
new uzi[256];
if (APlayerData[playerid][PlayerLevel] >= 1)
{
format( uzi , 256 , \"{00FF00}%s[{FFD700}%d{00FF00}]:{FFFFFF}%s\" , AdminLevelName[APlayerData[playerid][PlayerLevel]],playerid , text ); //h admin akkor szinesen ír
SendPlayerMessageToAll( playerid , uzi );
return 0;
}
else
{
format( uzi , 256 , \"{00FF00}[%i] {FFFFFF}%s\" , playerid , text ); // sima játékos
SendPlayerMessageToAll( playerid , uzi);
new to_others[MAX_CHATBUBBLE_LENGTH+1];
format(to_others,MAX_CHATBUBBLE_LENGTH,\"%s\",text);
SetPlayerChatBubble(playerid,to_others,COLOR_RED,35.0,10000);
}
return 0;
}
Ez már 100% hogy jó az előzőnél lemaradt másoláskor a return és a } jelek
-
format(string,sizeof(string),\"%s {00FF00}[{FFD700}%d{00FF00}]:{FFFFFF} %s \", nev, playerid, text);
helyett
format(string,sizeof(string),\"%s {00FF00}[{FFD700}%d{00FF00}]:{%s} %s \", nev, playerid, text, APlayerData[playerid][PlayerLevel] >= 1?(FF0000):(FFFFFF));
FF0000 az az admin
FFFFFF az meg a sima játékos..
-
GetPlayerColor(playerid) helyett:
APlayerData[playerid][PlayerLevel] >= 1?(0xFF0000FF):(0xFFFFFFFF)
0xFF0000FF = adminszín
0xFFFFFFFF = playerszín
Ez remek, tetszik is egyszerű meg műkdöik is félig :D már csak annyi hiba van, hogyha a játékosnak nincs szintje nem írja ki a nevét :o
Ennyit módosítottam rajta:
#define COLOR_RED \"FF0000\"
#define COLOR_WHITE \"FFFFFF\"
format(string,sizeof(string),\"%s {00FF00}[{1E90FF}%d{00FF00}]:{%s} %s\", nev, playerid, APlayerData[playerid][PlayerLevel] >= 1?(COLOR_RED):(COLOR_WHITE), text);
-
Jó hogy nem írja ki a nevet mivel le se kérdezted.
format fölé:
GetPlayerName(playerid, nev, sizeof(nev));
-
Jó hogy nem írja ki a nevet mivel le se kérdezted.
format fölé:
GetPlayerName(playerid, nev, sizeof(nev));
Levan kérdezve felette volt
Dupla hozzászólás automatikusan összefûzve. ( 2015. március 26. - 20:14:31 )
Kössz mindent, megoldódott! :D :)