Quem configura pra min Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Zplague

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Seu portal de Zombie Plague no Brasil

Zumbis Online

Últimos assuntos

» [ANÚNCIO] Alguem vivo ai?
por Eclipse 17/9/2024, 6:39 pm

» The Fen1xS CLan | Zombie Plague | [XP/LEVELS] #2024
por hevy 5/7/2024, 8:28 pm

»
por Eclipse 29/2/2024, 12:30 am

» [Plugin] /vm Com Status
por Isr7 4/6/2023, 3:24 pm

» Alguém pra manter um servidor comigo?
por Isr7 3/6/2023, 4:52 pm

» Alguém querendo criar um servidor de zp? eu pago a host quem quiser deixar o discord ai Isr7#6920
por Isr7 3/6/2023, 3:18 pm

» PEDIDO: Multijump pros VIP
por Madness 15/3/2023, 3:44 pm

» [ZP] Modo padre para 5.0
por XperitosEspetinho123 15/7/2022, 3:31 pm

» [KZ] Servidores de cs 1.6
por [Dk]Serial-Killer 7/5/2022, 4:12 am

» [PLUGIN BY SKVD & WILLIAN] SHOP DE FANTASIAS
por dushowW 23/7/2020, 5:44 pm

Os membros mais ativos da semana

Nenhum usuário

Frases filosóficas Zplague:

....

Google Adsense

Estatísticas

Os nossos membros postaram um total de 38140 mensagens em 6680 assuntos

Temos 2796 usuários registrados

O último membro registrado é zmplugins - Henrique


2 participantes

    Quem configura pra min

    Taledo12
    Taledo12
    Humano


    Masculino Número de Mensagens : 63
    Ammo Packs : 4060
    Honra : -12
    Data de inscrição : 19/09/2013

    Quem configura pra min Empty Quem configura pra min

    Mensagem por Taledo12 18/10/2013, 10:04 pm

    Quem pode configurar o Team Join pra entrar direito para CT

    Obs: quando eu instalo ele, e entro no server ele fica de spec falta configurar

    Aqui o Plugin:

    Código:
    #include <amxmodx>

    enum
    {
       TEAM_NONE = 0,
       TEAM_T,
       TEAM_CT,
       TEAM_SPEC,
       
       MAX_TEAMS
    };
    new const g_cTeamChars[MAX_TEAMS] =
    {
       'U',
       'T',
       'C',
       'S'
    };
    new const g_sTeamNums[MAX_TEAMS][] =
    {
       "0",
       "1",
       "2",
       "3"
    };
    new const g_sClassNums[MAX_TEAMS][] =
    {
       "1",
       "2",
       "3",
       "4"
    };

    // Old Style Menus
    stock const FIRST_JOIN_MSG[] =      "#Team_Select";
    stock const FIRST_JOIN_MSG_SPEC[] =   "#Team_Select_Spect";
    stock const INGAME_JOIN_MSG[] =      "#IG_Team_Select";
    stock const INGAME_JOIN_MSG_SPEC[] =   "#IG_Team_Select_Spect";
    const iMaxLen = sizeof(INGAME_JOIN_MSG_SPEC);

    // New VGUI Menus
    stock const VGUI_JOIN_TEAM_NUM =      2;

    new g_iTeam[33];
    new g_iPlayers[MAX_TEAMS];

    new tjm_join_team;
    new tjm_switch_team;
    new tjm_class[MAX_TEAMS];
    new tjm_block_change;

    public plugin_init()
    {
       register_plugin("Team Join Management", "0.3", "Exolent");
       register_event("TeamInfo", "event_TeamInfo", "a");
       register_message(get_user_msgid("ShowMenu"), "message_ShowMenu");
       register_message(get_user_msgid("VGUIMenu"), "message_VGUIMenu");
       tjm_join_team = register_cvar("tjm_join_team", "1");
       tjm_switch_team = register_cvar("tjm_switch_team", "1");
       tjm_class[TEAM_T] = register_cvar("tjm_class_t", "2");
       tjm_class[TEAM_CT] = register_cvar("tjm_class_ct", "4");
       tjm_block_change = register_cvar("tjm_block_change", "1");
    }

    public plugin_cfg()
    {
       set_cvar_num("mp_limitteams", 32);
       set_cvar_num("sv_restart", 1);
    }

    public client_disconnect(id)
    {
       remove_task(id);
    }

    public event_TeamInfo()
    {
       new id = read_data(1);
       new sTeam[32], iTeam;
       read_data(2, sTeam, sizeof(sTeam) - 1);
       for(new i = 0; i < MAX_TEAMS; i++)
       {
          if(g_cTeamChars[i] == sTeam[0])
          {
             iTeam = i;
             break;
          }
       }
       
       if(g_iTeam[id] != iTeam)
       {
          g_iPlayers[g_iTeam[id]]--;
          g_iTeam[id] = iTeam;
          g_iPlayers[iTeam]++;
       }
    }

    public message_ShowMenu(iMsgid, iDest, id)
    {
       static sMenuCode[iMaxLen];
       get_msg_arg_string(4, sMenuCode, sizeof(sMenuCode) - 1);
       if(equal(sMenuCode, FIRST_JOIN_MSG) || equal(sMenuCode, FIRST_JOIN_MSG_SPEC))
       {
          if(should_autojoin(id))
          {
             set_autojoin_task(id, iMsgid);
             return PLUGIN_HANDLED;
          }
       }
       else if(equal(sMenuCode, INGAME_JOIN_MSG) || equal(sMenuCode, INGAME_JOIN_MSG_SPEC))
       {
          if(should_autoswitch(id))
          {
             set_autoswitch_task(id, iMsgid);
             return PLUGIN_HANDLED;
          }
          else if(get_pcvar_num(tjm_block_change))
          {
             return PLUGIN_HANDLED;
          }
       }
       return PLUGIN_CONTINUE;
    }

    public message_VGUIMenu(iMsgid, iDest, id)
    {
       if(get_msg_arg_int(1) != VGUI_JOIN_TEAM_NUM)
       {
          return PLUGIN_CONTINUE;
       }
       
       if(should_autojoin(id))
       {
          set_autojoin_task(id, iMsgid);
          return PLUGIN_HANDLED;
       }
       else if(should_autoswitch(id))
       {
          set_autoswitch_task(id, iMsgid);
          return PLUGIN_HANDLED;
       }
       else if((TEAM_NONE < g_iTeam[id] < TEAM_SPEC) && get_pcvar_num(tjm_block_change))
       {
          return PLUGIN_HANDLED;
       }
       return PLUGIN_CONTINUE;
    }

    public task_Autojoin(iParam[], id)
    {
       new iTeam = get_new_team(get_pcvar_num(tjm_join_team));
       if(iTeam != -1)
       {
          handle_join(id, iParam[0], iTeam);
       }
    }

    public task_Autoswitch(iParam[], id)
    {
       new iTeam = get_switch_team(id);
       if(iTeam != -1)
       {
          handle_join(id, iParam[0], iTeam);
       }
    }

    stock handle_join(id, iMsgid, iTeam)
    {
       new iMsgBlock = get_msg_block(iMsgid);
       set_msg_block(iMsgid, BLOCK_SET);
       
       engclient_cmd(id, "jointeam", g_sTeamNums[iTeam]);
       
       new iClass = get_team_class(iTeam);
       if(1 <= iClass <= 4)
       {
          engclient_cmd(id, "joinclass", g_sClassNums[iClass - 1]);
       }
       set_msg_block(iMsgid, iMsgBlock);
    }

    stock get_new_team(iCvar)
    {
       switch(iCvar)
       {
          case 1:
          {
             return TEAM_T;
          }
          case 2:
          {
             return TEAM_CT;
          }
          case 3:
          {
             return TEAM_SPEC;
          }
          case 4:
          {
             new iTCount = g_iPlayers[TEAM_T];
             new iCTCount = g_iPlayers[TEAM_CT];
             if(iTCount < iCTCount)
             {
                return TEAM_T;
             }
             else if(iTCount > iCTCount)
             {
                return TEAM_CT;
             }
             else
             {
                return random_num(TEAM_T, TEAM_CT);
             }
          }
       }
       return -1;
    }

    stock get_switch_team(id)
    {
       new iTeam;
       
       new iTCount = g_iPlayers[TEAM_T];
       new iCTCount = g_iPlayers[TEAM_CT];
       switch(g_iTeam[id])
       {
          case TEAM_T: iTCount--;
          case TEAM_CT: iCTCount--;
       }
       if(iTCount < iCTCount)
       {
          iTeam = TEAM_T;
       }
       else if(iTCount > iCTCount)
       {
          iTeam = TEAM_CT;
       }
       else
       {
          iTeam = random_num(TEAM_T, TEAM_CT);
       }
       
       if(iTeam != g_iTeam[id])
       {
          return iTeam;
       }
       
       return -1;
    }

    stock get_team_class(iTeam)
    {
       new iClass;
       if(TEAM_NONE < iTeam < TEAM_SPEC)
       {
          iClass = get_pcvar_num(tjm_class[iTeam]);
          if(iClass < 1 || iClass > 4)
          {
             iClass = random_num(1, 4);
          }
       }
       return iClass;
    }

    stock set_autojoin_task(id, iMsgid)
    {
       new iParam[2];
       iParam[0] = iMsgid;
       set_task(0.1, "task_Autojoin", id, iParam, sizeof(iParam));
    }

    stock set_autoswitch_task(id, iMsgid)
    {
       new iParam[2];
       iParam[0] = iMsgid;
       set_task(0.1, "task_Autoswitch", id, iParam, sizeof(iParam));
    }

    stock bool:should_autojoin(id)
    {
       return ((5 > get_pcvar_num(tjm_join_team) > 0) && is_user_connected(id) && !(TEAM_NONE < g_iTeam[id] < TEAM_SPEC) && !task_exists(id));
    }

    stock bool:should_autoswitch(id)
    {
       return (get_pcvar_num(tjm_switch_team) && is_user_connected(id) && (TEAM_NONE < g_iTeam[id] < TEAM_SPEC) && !task_exists(id));
    }
    Sergio #
    Sergio #
    Moderador
    Moderador


    Masculino Número de Mensagens : 682
    Ammo Packs : 4371
    Honra : 44
    Data de inscrição : 16/02/2013

    Quem configura pra min Empty Re: Quem configura pra min

    Mensagem por Sergio # 19/10/2013, 2:56 pm

    Tópico fora das regras de postagem.

    @Closed, Lixeira!

      Data/hora atual: 23/11/2024, 9:02 am