E uma pequena duvida que tenho pra tirar! -
vitinhosamp - 29.07.2018
Queria saber pq meus setplayerchatbuble setam no player com cargo e meu setplayercolor nao, nгo sei o pq, mas me ofereceram para usar foreach e a y_timers mas como sou novato quero comeзar pelo os primeiros passos do pawno ainda!
PHP код:
public OnPlayerUpdate(playerid)
{
if(pInfo[playerid][Ajudante] == true)
{
SetPlayerChatBubble(playerid, "Ajudante(a)", 0xFF00FFAA, 100.0, 10000), SetPlayerColor(playerid, 0xFF00FFAA);
}
if(pInfo[playerid][Moderador] == true)
{
SetPlayerChatBubble(playerid, "Moderador(a)", 0x008000AA, 100.0, 10000), SetPlayerColor(playerid, 0x008000AA);
}
if(pInfo[playerid][Corregedor] == true)
{
SetPlayerChatBubble(playerid, "Corregedor(a)", 0x00FFFFAA, 100.0, 10000), SetPlayerColor(playerid, 0x00FFFFAA);
}
if(pInfo[playerid][Administrador] == true)
{
SetPlayerChatBubble(playerid, "Administrador(a)", 0xFF0000AA, 100.0, 10000), SetPlayerColor(playerid, 0xFF0000AA);
}
if(pInfo[playerid][Master] == true)
{
SetPlayerChatBubble(playerid, "Administrador(a)", 0x800000AA, 100.0, 10000), SetPlayerColor(playerid, 0x800000AA);
}
if(GetPlayerScore(playerid) < 5)
{
SetPlayerChatBubble(playerid, "Novato(a)", 0xFF8000AA, 100.0, 10000), SetPlayerColor(playerid, 0xFF8000AA);
}
if(GetPlayerScore(playerid) >= 5)
{
SetPlayerColor(playerid, 0xFFFFFFAA);
}
if(IsPlayerAdmin(playerid))
{
SetPlayerColor(playerid, 0x800000AA);
}
return 1;
}
Re: E uma pequena duvida que tenho pra tirar! -
bruxo00 - 29.07.2018
Vocк tem noзгo da quantidade de vezes que essa callback й chamada por segundo? Nгo use OnPlayerUpdate.
O seu cуdigo pode ser optimizado. Em vez de criar uma variбvel para cada cargo, crie apenas uma variбvel inteira, em que por exemplo 0: sem cargo, 1: moderador, 2: administrador, etc.
E, o seu cуdigo compila sequer?
Код:
SetPlayerChatBubble(playerid, "Ajudante(a)", 0xFF00FFAA, 100.0, 10000), SetPlayerColor(playerid, 0xFF00FFAA);
O que й isto?
Код:
SetPlayerChatBubble(playerid, "Ajudante(a)", 0xFF00FFAA, 100.0, 10000);
SetPlayerColor(playerid, 0xFF00FFAA);
Re: E uma pequena duvida que tenho pra tirar! -
vitinhosamp - 29.07.2018
Me ensina a optimizar ele de algum jeito, teve uns cara no forum que me recomendo usar a foreach junto com a y_timers, me ensina a usar essa foreach pq n sei usar, como vc disse se eu fazer daquele jeito um em baixo do outro nгo seta a cor, me ajuda!
Re: E uma pequena duvida que tenho pra tirar! -
LeViNS - 29.07.2018
exemplo de como usar foreach:
PHP код:
#include a_samp
#include foreach
#define TEMPO 5000 // milisegundos
public OnGameModeInit() {
SetTimer("chamar", TEMPO, true);
return 1;
}
new Cargo[MAX_PLAYERS];
forward chamar();
public chamar()
{
foreach(Player, i)
{
if(IsPlayerAdmin(i))
{
SetPlayerColor(i, 0xFF0000AA); // rcon
SetPlayerChatBubble(i, "Rcon", GetPlayerColor(i), 20.0, 10000);
}
else switch(Cargo[i])
{
case 1: { // ajudante
SetPlayerColor(i, 0xFF00FFAA);
SetPlayerChatBubble(i, "Ajudante(a)", GetPlayerColor(i), 20.0, 10000);
}
case 2: { // moderador
SetPlayerColor(i, 0x008000AA);
SetPlayerChatBubble(i, "Moderador(a)", GetPlayerColor(i), 20.0, 10000);
}
case 3: { // corregedor
SetPlayerColor(i, 0x00FFFFAA);
SetPlayerChatBubble(i, "Corregedor(a)", GetPlayerColor(i), 20.0, 10000);
}
case 4: { // admin
SetPlayerColor(i, 0xFF0000AA);
SetPlayerChatBubble(i, "Administrador(a)", GetPlayerColor(i), 20.0, 10000);
}
}
}
return 1;
}
Re: E uma pequena duvida que tenho pra tirar! -
vitinhosamp - 29.07.2018
da pra aplicar esse procedimento em pInfo[playerid][moderador]... tals assim?
Re: E uma pequena duvida que tenho pra tirar! -
LeViNS - 29.07.2018
Sim,
PHP код:
#include a_samp
#include foreach
#define TEMPO 5000 // milisegundos
public OnGameModeInit() {
SetTimer("chamar", TEMPO, true);
return 1;
}
enum PlayerInfo {
bool:Ajudante, bool:Moderador, bool:Corregedor, bool:Administrador, bool:Master
};
new pInfo[MAX_PLAYERS][PlayerInfo];
forward chamar();
public chamar()
{
foreach(Player, i)
{
if(IsPlayerAdmin(i))
{
SetPlayerColor(i, 0xFF0000AA); // rcon
SetPlayerChatBubble(i, "Rcon", GetPlayerColor(i), 20.0, 10000);
}
else if(pInfo[i][Ajudante] == true)
{
SetPlayerColor(i, 0xFF00FFAA);
SetPlayerChatBubble(i, "Ajudante(a)", GetPlayerColor(i), 20.0, 10000);
}
else if(pInfo[i][Moderador] == true)
{
SetPlayerColor(i, 0x008000AA);
SetPlayerChatBubble(i, "Moderador(a)", GetPlayerColor(i), 20.0, 10000);
}
else if(pInfo[i][Corregedor] == true)
{
SetPlayerColor(i, 0x00FFFFAA);
SetPlayerChatBubble(i, "Corregedor(a)", GetPlayerColor(i), 20.0, 10000);
}
else if(pInfo[i][Administrador] == true)
{
SetPlayerColor(i, 0xFF0000AA);
SetPlayerChatBubble(i, "Administrador(a)", GetPlayerColor(i), 20.0, 10000);
}
else if(pInfo[i][Master] == true)
{
SetPlayerColor(i, 0x800000AA);
SetPlayerChatBubble(i, "Administrador(a)", GetPlayerColor(i), 20.0, 10000);
}
else if(GetPlayerScore(i) < 5)
{
SetPlayerColor(i, 0xFF8000AA);
SetPlayerChatBubble(i, "Novato(a)", GetPlayerColor(i), 20.0, 10000);
}
else if(GetPlayerScore(i) >= 5) SetPlayerColor(i, 0xFFFFFFAA);
}
return 1;
}