[Ajuda] Virtual World e ChatBubble
#1

@Removed.
Reply
#2

No caso de chatbubble ele ira ficar trocando entre "indefinido" e "AFK" caso o player tiver afk,ou seja crie uma variбvel para quando um for ativado bloquear os outros.

@Edit

apenas coloque as verificaзхes para eles nгo ficarem trocando,pois o resto esta ok.
Reply
#3

Nгo quero que fique alternando, isso e tipo uma verificaзгo caso ele seja Admin ficarб a parada de admin caso seja player ficarб Indefinido..
Reply
#4

Up, alguйm ajuda aqui tou precisando..

Dessa forma estб estando o ChatBubble apenas para o ID zero.

PHP код:
public ChatBubble()
{
    for(new 
i=0MAX_PLAYERSi++)
    {
        if(
PlayerInfo[i][pAdmin] >= 1)
        {
           
SetPlayerChatBubble(i"Administrador(a)"Vermelho100.010000);
           return 
true;
        }
        else if(
PlayerInfo[i][pScore] >= 0)
        {
            
SetPlayerChatBubble(i"Indefinido"0x32CD32FF100.010000);
            return 
true;
        }
        if(
AFK[i] == true)
        {
            
SetPlayerChatBubble(i"• Jogador(a) AFK •"0x1E90FFAA100.010000);
            return 
true;
        }
    }
    return 
true;

Reply
#5

1 - Simples, crie uma variбvel para salvar qual virtual world um player escolheu, logo, faзa um loop para verificar se ao outro player utilizar este comando, verificar se este virtual world jб esta em uso...
pawn Код:
new MyVirtualWorld[MAX_PLAYERS];


command(mundo, playerid, params[])
{
  new World;
  if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, Vermelho, "[ x ] Vocк nгo estб em um veнculo");
  if(!IsPlayerInRace(playerid)) return SendClientMessage(playerid, Vermelho,"[ x ] Voce sу pode alterar seu mundo em uma corrida!");
  if(sscanf(params,"d", World)) return SendClientMessage(playerid, Vermelho,"[ x ] Uso correto: /Mundo [ID World]");
  if(World < 0 ||World > 1000) return SendClientMessage(playerid, Vermelho, "[ x ] O ID do mundo estб invбlido {FFFFFF}ID's de 0 a 1000.");

  //Aqui sua funcionalidade й bem simples, ele apenas condiciona se a resposta da funзгo foi verdadeira, se sim, retorna nesta mensagem.
  if(WorldEmUso(World)) return SendClientMessage(playerid, Vernelho,"[ x ] Este VirtualWorld jб esta em uso! Escolha outro");

  SendClientMessage(playerid, Amarelo,"[ > ] Vocк decidiu participar da corrida em outro mundo");
  format(string, sizeof(string), "[ > ] Mundo: {FFFFFF}%d", World);
  SendClientMessage(playerid, Amarelo, string);
  SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), World);
  SetPlayerVirtualWorld(playerid, World);
  MyVirtualWorld[playerid] = World;
  return 1;
}

stock WorldEmUso(worldid)//Funзгo nada mais faz do que rodar um loop a todos os player e verificar se o worldid informador й o mesmo do player em questгo, se for, retornara a verdadeiro, caso contrбrio, falso.
{
    for(new i; i < MAX_PLAYERS; i++)
    {
        if(MyVirtualWorld[i] == worldid) return 1;
    }
    return 0;
}

2 - No ChatBubble porque nгo usas SetTimerEx? Й visнvel que estejas usando um timer, podes acrescentar o parвmetro playerid que facilitaria e evitaria "lag". Dei uma arrumada, veja se fica melhor assim, creio que funciona tranquilo

pawn Код:
//Timer em OnPlayerSpawn
SetTimerEx("ChatBubble", 1000, true, "i", playerid);

public ChatBubble(playerid)
{
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
        SetPlayerChatBubble(playerid, "Administrador(a)", Vermelho, 100.0, 10000);
   
        if(AFK[playerid]) SetPlayerChatBubble(playerid, "• Administrador(a) AFK •", 0x1E90FFAA, 100.0, 10000);
    }
    else if(PlayerInfo[playerid][pScore] >= 0)
    {
        SetPlayerChatBubble(playerid, "Indefinido", 0x32CD32FF, 100.0, 10000);

        if(AFK[playerid]) SetPlayerChatBubble(playerid, "• Jogador(a) AFK •", 0x1E90FFAA, 100.0, 10000);
    }
}

Abraзos.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)