[Duvida] Poblema no /hats 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

    [Duvida] Poblema no /hats

    Feelipe::
    Feelipe::
    Humano


    Nick : FeLiPe-OgRaNdE
    Masculino Número de Mensagens : 203
    Ammo Packs : 4406
    Honra : -4
    Data de inscrição : 28/01/2013

    [Duvida] Poblema no /hats Empty [Duvida] Poblema no /hats

    Mensagem por Feelipe:: 13/10/2013, 2:30 am

    Estou com poblema no meu /hats ja fiz de tudo e nada toda vez que escrevo no say /hats aparece isso 
    IMAGEM:[Duvida] Poblema no /hats 1391783_247655242052665_1750507067_n

    alguem saber como resolver estarei agradeçido!!
    Dexter
    Dexter
    Humano


    Nick : Dexter
    Masculino Número de Mensagens : 913
    '-'
    Ammo Packs : 3678
    Honra : -3
    Data de inscrição : 28/04/2013

    [Duvida] Poblema no /hats Empty Re: [Duvida] Poblema no /hats

    Mensagem por Dexter 13/10/2013, 2:36 am

    posta sma ae
    Feelipe::
    Feelipe::
    Humano


    Nick : FeLiPe-OgRaNdE
    Masculino Número de Mensagens : 203
    Ammo Packs : 4406
    Honra : -4
    Data de inscrição : 28/01/2013

    [Duvida] Poblema no /hats Empty Re: [Duvida] Poblema no /hats

    Mensagem por Feelipe:: 13/10/2013, 2:38 am

    Código:
    #include <amxmodx>
    #include <amxmisc>
    #include <fakemeta>

    #define PLUG_NAME       "HATS"
    #define PLUG_AUTH       "SgtBane"
    #define PLUG_VERS       "1.8"
    #define PLUG_TAG       "HATS"
    #define PLUG_ADMIN      ADMIN_RCON      //Access flags required to give/remove hats
    #define PLUG_ADMINB    ADMIN_CHAT      //Access flags required to set personal hat if admin only is enabled

    #define OFFSET_GLOWSET   100

    #define HAT_ALL         0
    #define HAT_ADMIN      1
    #define HAT_TERROR      2
    #define HAT_COUNTER      3

    #define menusize       220
    #define maxTry         15            //Number of tries to get someone a non-admin random hat before giving up.
    #define modelpath      "models/hat"

    stock fm_set_entity_visibility(index, visible = 1) set_pev(index, pev_effects, visible == 1 ? pev(index, pev_effects) & ~EF_NODRAW : pev(index, pev_effects) | EF_NODRAW)

    new g_HatEnt[33]
    new CurrentHat[33]
    new CurrentMenu[33]

    new HatFile[64]
    new MenuPages, TotalHats

    #define MAX_HATS 64
    new HATMDL[MAX_HATS][26]
    new HATNAME[MAX_HATS][26]
    new HATREST[MAX_HATS]

    new P_AdminOnly
    new P_AdminHats
    new P_RandomJoin
    new P_BotRandom
    new P_ForceHat
    new P_Glow

    public plugin_init() {
       register_plugin(PLUG_NAME, PLUG_VERS, PLUG_AUTH)
       register_logevent("event_roundstart",    2,   "1=Round_Start")
       register_event("TeamInfo",             "event_team_info",    "a" )
       
       register_concmd("amx_givehat",       "Give_Hat",    PLUG_ADMIN,    "<nick> <mdl #>")
       register_concmd("amx_removehats",    "Remove_Hat",    PLUG_ADMIN,    " - Removes hats from everyone.")
       
       register_menucmd(register_menuid("\yHat Menu: [Page"),   (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9),"MenuCommand")
       register_clcmd("say /hats",         "ShowMenu", -1,    "Shows Knife menu")
       
       P_AdminOnly      = register_cvar("hat_adminonly",   "0")   //Only admins can use the menu
       P_AdminHats    = register_cvar("hat_adminhats",   "1")   //Allow hats for admins only (if 0, hats specifically for admins can be used by anyone)
       P_RandomJoin   = register_cvar("hat_random",      "1")   //Random hats for players as they join
       P_BotRandom      = register_cvar("hat_bots",         "1")   //Random hats for bots as they join
       P_ForceHat      = register_cvar("hat_force",      "0")   //Force a specific hat (if not 0)
       P_Glow         = register_cvar("hat_glow",         "0")   //0=None,1=GlowWithPlayer,2=TeamColor
    }

    public ShowMenu(id) {
       if ((get_pcvar_num(P_AdminOnly) == 1 && get_user_flags(id) & PLUG_ADMIN) || (get_pcvar_num(P_AdminOnly) == 0 && get_pcvar_num(P_ForceHat) == 0)) {
          CurrentMenu[id] = 1
          ShowHats(id)
       } else {
          client_print(id,print_chat,"[%s] Only admins may currently use this menu.",PLUG_TAG)
       }
       return PLUGIN_HANDLED
    }

    public ShowHats(id) {
       new keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9)
       
       new szMenuBody[menusize + 1], WpnID
       new nLen = format(szMenuBody, menusize, "\yHat Menu: [Page %i/%i]^n",CurrentMenu[id],MenuPages)
       
       new MnuClr[3]
       // Get Hat Names And Add Them To The List
       for (new hatid=0; hatid < 8; hatid++) {
          WpnID = ((CurrentMenu[id] * 8) + hatid - 8)
          if (WpnID < TotalHats) {
             menucolor(id, WpnID, MnuClr)
             nLen += format(szMenuBody[nLen], menusize-nLen, "^n\w%i.%s %s", hatid + 1, MnuClr, HATNAME[WpnID])
          }
       }
       
       // Next Page And Previous/Close
       if (CurrentMenu[id] == MenuPages) {
          nLen += format(szMenuBody[nLen], menusize-nLen, "^n^n\d9. Next Page")
       } else {
          nLen += format(szMenuBody[nLen], menusize-nLen, "^n^n\w9. Next Page")
       }
       
       if (CurrentMenu[id] > 1) {
          nLen += format(szMenuBody[nLen], menusize-nLen, "^n\w0. Previous Page")
       } else {
          nLen += format(szMenuBody[nLen], menusize-nLen, "^n\w0. Close")
       }
       show_menu(id, keys, szMenuBody, -1)
       return PLUGIN_HANDLED
    }

    public MenuCommand(id, key) {
       switch(key)
       {
          case 8:      //9 - [Next Page]
          {
             if (CurrentMenu[id] < MenuPages) CurrentMenu[id]++
             ShowHats(id)
             return PLUGIN_HANDLED
          }
          case 9:      //0 - [Close]
          {
             CurrentMenu[id]--
             if (CurrentMenu[id] > 0) ShowHats(id)
             return PLUGIN_HANDLED
          }
          default:
          {
             new HatID = ((CurrentMenu[id] * 8) + key - 8)
             if (HatID < TotalHats) {
                if ((get_pcvar_num(P_AdminHats) == 0 && HATREST[HatID] == HAT_ADMIN) || (get_pcvar_num(P_AdminHats) == 1 && HATREST[HatID] == HAT_ADMIN && get_user_flags(id) & PLUG_ADMINB) || HATREST[HatID] == HAT_ALL || (HATREST[HatID] == get_user_team(id) + 1)) {
                   Set_Hat(id,HatID,id)
                } else {
                   if (HATREST[HatID] == HAT_TERROR && get_user_team(id) == 2) {
                      client_print(id,print_chat,"[%s] This hat is currently set as a Terrorist Hat.",PLUG_TAG)
                   } else if (HATREST[HatID] == HAT_COUNTER && get_user_team(id) == 1) {
                      client_print(id,print_chat,"[%s] This hat is currently set as Counter Terrorist.",PLUG_TAG)
                   } else {
                      client_print(id,print_chat,"[%s] This hat is currently set as Admin Only.",PLUG_TAG)
                   }
                }
             }
          }
       }
       return PLUGIN_HANDLED
    }

    public plugin_precache() {
       new cfgDir[32]
       get_configsdir(cfgDir,31)
       formatex(HatFile,63,"%s/HatList.ini",cfgDir)
       command_load()
       new tmpfile [101]
       for (new i = 1; i < TotalHats; ++i) {
          format(tmpfile, 100, "%s/%s", modelpath, HATMDL[i])
          if (file_exists (tmpfile)) {
             precache_model(tmpfile)
             server_print("[%s] Precached %s", PLUG_TAG, HATMDL[i])
          } else {
             server_print("[%s] Failed to precache %s", PLUG_TAG, tmpfile)
          }
       }
    }

    public client_putinserver(id) {
       if (get_pcvar_num(P_ForceHat) == 1) {
          new forceID = get_pcvar_num(P_ForceHat)
          if (forceID <= TotalHats - 1) {
             forcehat(id, forceID)
          } else {
             set_pcvar_num(P_ForceHat, 0)
          }
       } else if (get_pcvar_num(P_RandomJoin) == 1 || (get_pcvar_num(P_BotRandom) == 1 && is_user_bot(id))) {
          if (get_pcvar_num(P_ForceHat) == 0) Random_Hat(id)
       }
       return PLUGIN_CONTINUE
    }

    public event_team_info() {
       if (get_pcvar_num(P_ForceHat) != 0) return
       new id = read_data(1)
       if (HATREST[CurrentHat[id]] == HAT_ALL) return
       if (HATREST[CurrentHat[id]] == HAT_ADMIN && get_user_flags(id) & PLUG_ADMINB) return
       
       new team[3]
       read_data(2, team, 2)
       switch(team[0]) {
          case 'C': {
             if (HATREST[CurrentHat[id]] != HAT_COUNTER) Random_Hat(id)
          }
          case 'T': {
             if (HATREST[CurrentHat[id]] != HAT_TERROR) Random_Hat(id)
          }
          case 'S': {
             Set_Hat(id, 0, 0)
          }
       }
       return
    }
    public event_roundstart() {
       new forceID = get_pcvar_num(P_ForceHat)
       for (new i = 0; i < get_maxplayers(); ++i) {
          if (is_user_connected(i) && g_HatEnt[i] > 0) {
             if (forceID != 0) {
                forcehat(i, forceID)
             }
             glowhat(i)
          }
       }
       return PLUGIN_CONTINUE
    }

    public Give_Hat(id, req_flag)
    {
       if( !(get_user_flags(id) & req_flag) )
          return PLUGIN_HANDLED
       
       new smodelnum[5], name[32]
       read_argv(1,name,31)
       read_argv(2,smodelnum,4)
       
       new player = cmd_target(id,name,2)
       if (!player) {
          client_print(id,print_chat,"[%s] Player With That Name Does Not Exist.",PLUG_TAG)
          return PLUGIN_HANDLED
       }
       
       new imodelnum = (str_to_num(smodelnum))
       if (imodelnum > MAX_HATS) return PLUGIN_HANDLED
       
       Set_Hat(player,imodelnum,id)

       return PLUGIN_CONTINUE
    }

    public Remove_Hat(id, req_flag)
    {
       if( !(get_user_flags(id) & req_flag) )
          return PLUGIN_HANDLED

       for (new i = 0; i < get_maxplayers(); ++i) {
          if (is_user_connected(i) && g_HatEnt[i] > 0) {
             Set_Hat(id, 0, 0)
          }
       }
       client_print(id,print_chat,"[%s] Removed hats from everyone.",PLUG_TAG)
       return PLUGIN_CONTINUE
    }

    public Random_Hat(id) {
       new bool:foundrnd = false, cntTry = 0, randID = random_num (1, TotalHats - 1)
       while (cntTry < maxTry && foundrnd == false) {
          randID = random_num (1, TotalHats - 1)
          cntTry += 1
          if (HATREST[randID] == HAT_ALL) foundrnd = true
          if (HATREST[randID] == HAT_ADMIN && get_user_flags(id) & PLUG_ADMINB) foundrnd = true
          if ((get_user_team(id) != 0) && HATREST[CurrentHat[id]] == get_user_team(id) + 1) foundrnd = true
       }
       if (foundrnd == true) {   //If a valid random hat is found, apply it.
          Set_Hat(id, randID , 0)
       } else {            //Otherwise, don't use any hat.
          Set_Hat(id, 0, 0)   
       }
       return PLUGIN_CONTINUE
    }

    public Set_Hat(player, imodelnum, targeter) {
       new name[32]
       new tmpfile[101]
       format(tmpfile, 100, "%s/%s", modelpath, HATMDL[imodelnum])
       get_user_name(player, name, 31)
       if (imodelnum == 0) {
          if(g_HatEnt[player] > 0) {
             fm_set_entity_visibility(g_HatEnt[player], 0)
          }
          if (targeter != 0) {
             client_print(targeter, print_chat, "[%s] Removed hat from %s",PLUG_TAG,name)
          }
       } else if (file_exists(tmpfile)) {
          if(g_HatEnt[player] < 1) {
             g_HatEnt[player] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
             if(g_HatEnt[player] > 0) {
                set_pev(g_HatEnt[player], pev_movetype, MOVETYPE_FOLLOW)
                set_pev(g_HatEnt[player], pev_aiment, player)
                set_pev(g_HatEnt[player], pev_rendermode,    kRenderNormal)
                engfunc(EngFunc_SetModel, g_HatEnt[player], tmpfile)
             }
          } else {
             engfunc(EngFunc_SetModel, g_HatEnt[player], tmpfile)
          }
          glowhat(player)
          CurrentHat[player] = imodelnum
          if (targeter != 0) {
             client_print(targeter, print_chat, "[%s] Set %s on %s",PLUG_TAG,HATNAME[imodelnum],name)
          }
       }
    }

    public command_load() {
       if(file_exists(HatFile)) {
          HATMDL[0] = ""
          HATNAME[0] = "None"
          TotalHats = 1
          new TempCrapA[2]
          new sfLineData[128]
          new file = fopen(HatFile,"rt")
          while(file && !feof(file)) {
             fgets(file,sfLineData,127)
             
             // Skip Comment ; // and Empty Lines
             if (sfLineData[0] == ';' || strlen(sfLineData) < 1 || (sfLineData[0] == '/' && sfLineData[1] == '/')) continue
             
             // BREAK IT UP!
             parse(sfLineData, HATMDL[TotalHats], 25, HATNAME[TotalHats], 25, TempCrapA, 1)
             
             if (TempCrapA[0] == 'A' || TempCrapA[0] == '1') {
                HATREST[TotalHats] = HAT_ADMIN
             } else if (TempCrapA[0] == 'T' || TempCrapA[0] == '2') {
                HATREST[TotalHats] = HAT_TERROR
             } else if (TempCrapA[0] == 'C' || TempCrapA[0] == '3') {
                HATREST[TotalHats] = HAT_COUNTER
             } else {
                HATREST[TotalHats] = HAT_ALL
             }
             TotalHats += 1
             if(TotalHats >= MAX_HATS) {
                server_print("[%s] Reached hat limit",PLUG_TAG)
                break
             }
          }
          if(file) fclose(file)
       }
       MenuPages = floatround((TotalHats / 8.0), floatround_ceil)
       server_print("[%s] Loaded %i hats, and Generated %i pages",PLUG_TAG,TotalHats,MenuPages)
    }


    menucolor(id, ItemID, MnuClr[3]) {
       //If its the hat they currently have on
       if (ItemID == CurrentHat[id]) {
          MnuClr = "\d"
          return
       }
       if (HATREST[ItemID] != HAT_ALL) {
          //If its an AdminHat&They are NOT an admin
          if (HATREST[ItemID] == HAT_ADMIN && get_pcvar_num(P_AdminHats) == 1) {
             if (get_user_flags(id) & PLUG_ADMINB) {
                MnuClr = "\y"
             } else {
                MnuClr = "\r"
             }
          //If this is a hat set for there team or not
          } else if (HATREST[ItemID] != get_user_team(id) + 1) {
             MnuClr = "\r"
          } else {
             MnuClr = "\y"
          }
       } else {
          MnuClr = "\w"
       }
       return
    }

    glowhat(id) {
       if (!pev_valid(g_HatEnt[id])) return
       if (get_pcvar_num(P_Glow) != 0) {   //If Glowing Hats Are Enabled
          set_pev(g_HatEnt[id], pev_renderfx,   kRenderFxGlowShell)
          if (get_pcvar_num(P_Glow) == 2) {   //If Not Team Specific, Use Player Glow On Hat
             new Float:curcolors[3], Float:curamt
             pev(id, pev_rendercolor, curcolors)
             pev(id, pev_renderamt, curamt)
             set_pev(g_HatEnt[id], pev_rendercolor, curcolors)
             set_pev(g_HatEnt[id], pev_renderamt, curamt)
          } else {                        //If Team Specific, Red=T, Blue=CT
             if (get_user_team(id) == 1) {
                set_pev(g_HatEnt[id], pev_rendercolor, {200.0, 0.0, 0.0})
             } else if (get_user_team(id) == 2) {
                set_pev(g_HatEnt[id], pev_rendercolor, {0.0, 0.0, 200.0})
             }
             set_pev(g_HatEnt[id], pev_renderamt,   50.0)
          }
       } else {
          set_pev(g_HatEnt[id], pev_renderfx,   kRenderFxNone)
          set_pev(g_HatEnt[id], pev_renderamt,   0.0)
       }
       fm_set_entity_visibility(g_HatEnt[id], 1)
       return
    }

    forcehat(id, forceID) {
       if (forceID == 0) forceID = get_pcvar_num(P_ForceHat)
       if (forceID != 0) {
          if (forceID <= TotalHats - 1) {
             if (forceID != CurrentHat[id]) Set_Hat(id, forceID, 0)
          } else {
             set_pcvar_num(P_ForceHat, 0)
          }
       }
    }
    Dexter
    Dexter
    Humano


    Nick : Dexter
    Masculino Número de Mensagens : 913
    '-'
    Ammo Packs : 3678
    Honra : -3
    Data de inscrição : 28/04/2013

    [Duvida] Poblema no /hats Empty Re: [Duvida] Poblema no /hats

    Mensagem por Dexter 13/10/2013, 2:39 am

    essa tu baixa na addonszm?
    Feelipe::
    Feelipe::
    Humano


    Nick : FeLiPe-OgRaNdE
    Masculino Número de Mensagens : 203
    Ammo Packs : 4406
    Honra : -4
    Data de inscrição : 28/01/2013

    [Duvida] Poblema no /hats Empty Re: [Duvida] Poblema no /hats

    Mensagem por Feelipe:: 13/10/2013, 2:41 am

    Dexter escreveu:essa tu baixa na addonszm?
    sim pq?
    Dexter
    Dexter
    Humano


    Nick : Dexter
    Masculino Número de Mensagens : 913
    '-'
    Ammo Packs : 3678
    Honra : -3
    Data de inscrição : 28/04/2013

    [Duvida] Poblema no /hats Empty Re: [Duvida] Poblema no /hats

    Mensagem por Dexter 13/10/2013, 2:43 am

    tenta ae:
    Código:
    #include <amxmodx>
    #include <amxmisc>
    #include <fakemeta>

    #define PLUG_NAME       "HATS"
    #define PLUG_AUTH       "SgtBane"
    #define PLUG_VERS       "1.8"
    #define PLUG_TAG       "HATS"
    #define PLUG_ADMIN      ADMIN_RCON      //Access flags required to give/remove hats
    #define PLUG_ADMINB    ADMIN_CHAT      //Access flags required to set personal hat if admin only is enabled

    #define OFFSET_GLOWSET   100

    #define HAT_ALL         0
    #define HAT_ADMIN      1
    #define HAT_TERROR      2
    #define HAT_COUNTER      3

    #define menusize       220
    #define maxTry         15            //Number of tries to get someone a non-admin random hat before giving up.
    #define modelpath      "models/hat"

    stock fm_set_entity_visibility(index, visible = 1) set_pev(index, pev_effects, visible == 1 ? pev(index, pev_effects) & ~EF_NODRAW : pev(index, pev_effects) | EF_NODRAW)

    new g_HatEnt[33]
    new CurrentHat[33]
    new CurrentMenu[33]

    new HatFile[64]
    new MenuPages, TotalHats

    #define MAX_HATS 64
    new HATMDL[MAX_HATS][26]
    new HATNAME[MAX_HATS][26]
    new HATREST[MAX_HATS]

    new P_AdminOnly
    new P_AdminHats
    new P_RandomJoin
    new P_BotRandom
    new P_ForceHat
    new P_Glow

    public plugin_init() {
       register_plugin(PLUG_NAME, PLUG_VERS, PLUG_AUTH)
       register_logevent("event_roundstart",    2,   "1=Round_Start")
       register_event("TeamInfo",             "event_team_info",    "a" )
       
       register_concmd("amx_givehat",       "Give_Hat",    PLUG_ADMIN,    "<nick> <mdl #>")
       register_concmd("amx_removehats",    "Remove_Hat",    PLUG_ADMIN,    " - Removes hats from everyone.")
       
       register_menucmd(register_menuid("\yHat Menu: [Page"),   (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9),"MenuCommand")
       register_clcmd("say /hats",         "ShowMenu", -1,    "Shows Knife menu")
       
       P_AdminOnly      = register_cvar("hat_adminonly",   "0")   //Only admins can use the menu
       P_AdminHats    = register_cvar("hat_adminhats",   "1")   //Allow hats for admins only (if 0, hats specifically for admins can be used by anyone)
       P_RandomJoin   = register_cvar("hat_random",      "1")   //Random hats for players as they join
       P_BotRandom      = register_cvar("hat_bots",         "1")   //Random hats for bots as they join
       P_ForceHat      = register_cvar("hat_force",      "0")   //Force a specific hat (if not 0)
       P_Glow         = register_cvar("hat_glow",         "0")   //0=None,1=GlowWithPlayer,2=TeamColor
    }

    public ShowMenu(id) {
       if ((get_pcvar_num(P_AdminOnly) == 1 && get_user_flags(id) & PLUG_ADMIN) || (get_pcvar_num(P_AdminOnly) == 0 && get_pcvar_num(P_ForceHat) == 0)) {
          CurrentMenu[id] = 1
          ShowHats(id)
       } else {
          client_print(id,print_chat,"[%s] Only admins may currently use this menu.",PLUG_TAG)
       }
       return PLUGIN_HANDLED
    }

    public ShowHats(id) {
       new keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9)
       
       new szMenuBody[menusize + 1], WpnID
       new nLen = format(szMenuBody, menusize, "\yHat Menu: [Page %i/%i]^n",CurrentMenu[id],MenuPages)
       
       new MnuClr[3]
       // Get Hat Names And Add Them To The List
       for (new hatid=0; hatid < 8; hatid++) {
          WpnID = ((CurrentMenu[id] * 8) + hatid - 8)
          if (WpnID < TotalHats) {
             menucolor(id, WpnID, MnuClr)
             nLen += format(szMenuBody[nLen], menusize-nLen, "^n\w%i.%s %s", hatid + 1, MnuClr, HATNAME[WpnID])
          }
       }
       
       // Next Page And Previous/Close
       if (CurrentMenu[id] == MenuPages) {
          nLen += format(szMenuBody[nLen], menusize-nLen, "^n^n\d9. Next Page")
       } else {
          nLen += format(szMenuBody[nLen], menusize-nLen, "^n^n\w9. Next Page")
       }
       
       if (CurrentMenu[id] > 1) {
          nLen += format(szMenuBody[nLen], menusize-nLen, "^n\w0. Previous Page")
       } else {
          nLen += format(szMenuBody[nLen], menusize-nLen, "^n\w0. Close")
       }
       show_menu(id, keys, szMenuBody, -1)
       return PLUGIN_HANDLED
    }

    public MenuCommand(id, key) {
       switch(key)
       {
          case 8:      //9 - [Next Page]
          {
             if (CurrentMenu[id] < MenuPages) CurrentMenu[id]++
             ShowHats(id)
             return PLUGIN_HANDLED
          }
          case 9:      //0 - [Close]
          {
             CurrentMenu[id]--
             if (CurrentMenu[id] > 0) ShowHats(id)
             return PLUGIN_HANDLED
          }
          default:
          {
             new HatID = ((CurrentMenu[id] * 8) + key - 8)
             if (HatID < TotalHats) {
                if ((get_pcvar_num(P_AdminHats) == 0 && HATREST[HatID] == HAT_ADMIN) || (get_pcvar_num(P_AdminHats) == 1 && HATREST[HatID] == HAT_ADMIN && get_user_flags(id) & PLUG_ADMINB) || HATREST[HatID] == HAT_ALL || (HATREST[HatID] == get_user_team(id) + 1)) {
                   Set_Hat(id,HatID,id)
                } else {
                   if (HATREST[HatID] == HAT_TERROR && get_user_team(id) == 2) {
                      client_print(id,print_chat,"[%s] Este chapeu esta definido como um terrorista Hat.",PLUG_TAG)
                   } else if (HATREST[HatID] == HAT_COUNTER && get_user_team(id) == 1) {
                      client_print(id,print_chat,"[%s] Este chapeu esta definido como um Counter Terrorist.",PLUG_TAG)
                   } else {
                      client_print(id,print_chat,"[%s] Este chapeu esta definido como um admin somente.",PLUG_TAG)
                   }
                }
             }
          }
       }
       return PLUGIN_HANDLED
    }

    public plugin_precache() {
       new cfgDir[32]
       get_configsdir(cfgDir,31)
       formatex(HatFile,63,"%s/HatList.ini",cfgDir)
       command_load()
       new tmpfile [101]
       for (new i = 1; i < TotalHats; ++i) {
          format(tmpfile, 100, "%s/%s", modelpath, HATMDL[i])
          if (file_exists (tmpfile)) {
             precache_model(tmpfile)
             server_print("[%s] Precached %s", PLUG_TAG, HATMDL[i])
          } else {
             server_print("[%s] Falha Ao precache %s", PLUG_TAG, tmpfile)
          }
       }
    }

    public client_putinserver(id) {
       if (get_pcvar_num(P_ForceHat) == 1) {
          new forceID = get_pcvar_num(P_ForceHat)
          if (forceID <= TotalHats - 1) {
             forcehat(id, forceID)
          } else {
             set_pcvar_num(P_ForceHat, 0)
          }
       } else if (get_pcvar_num(P_RandomJoin) == 1 || (get_pcvar_num(P_BotRandom) == 1 && is_user_bot(id))) {
          if (get_pcvar_num(P_ForceHat) == 0) Random_Hat(id)
       }
       return PLUGIN_CONTINUE
    }

    public event_team_info() {
       if (get_pcvar_num(P_ForceHat) != 0) return
       new id = read_data(1)
       if (HATREST[CurrentHat[id]] == HAT_ALL) return
       if (HATREST[CurrentHat[id]] == HAT_ADMIN && get_user_flags(id) & PLUG_ADMINB) return
       
       new team[3]
       read_data(2, team, 2)
       switch(team[0]) {
          case 'C': {
             if (HATREST[CurrentHat[id]] != HAT_COUNTER) Random_Hat(id)
          }
          case 'T': {
             if (HATREST[CurrentHat[id]] != HAT_TERROR) Random_Hat(id)
          }
          case 'S': {
             Set_Hat(id, 0, 0)
          }
       }
       return
    }
    public event_roundstart() {
       new forceID = get_pcvar_num(P_ForceHat)
       for (new i = 0; i < get_maxplayers(); ++i) {
          if (is_user_connected(i) && g_HatEnt[i] > 0) {
             if (forceID != 0) {
                forcehat(i, forceID)
             }
             glowhat(i)
          }
       }
       return PLUGIN_CONTINUE
    }

    public Give_Hat(id, req_flag)
    {
       if( !(get_user_flags(id) & req_flag) )
          return PLUGIN_HANDLED
       
       new smodelnum[5], name[32]
       read_argv(1,name,31)
       read_argv(2,smodelnum,4)
       
       new player = cmd_target(id,name,2)
       if (!player) {
          client_print(id,print_chat,"[%s] Jogador com esse nome nao existe.",PLUG_TAG)
          return PLUGIN_HANDLED
       }
       
       new imodelnum = (str_to_num(smodelnum))
       if (imodelnum > MAX_HATS) return PLUGIN_HANDLED
       
       Set_Hat(player,imodelnum,id)

       return PLUGIN_CONTINUE
    }

    public Remove_Hat(id, req_flag)
    {
       if( !(get_user_flags(id) & req_flag) )
          return PLUGIN_HANDLED

       for (new i = 0; i < get_maxplayers(); ++i) {
          if (is_user_connected(i) && g_HatEnt[i] > 0) {
             Set_Hat(id, 0, 0)
          }
       }
       client_print(id,print_chat,"[%s] Removed hats from everyone.",PLUG_TAG)
       return PLUGIN_CONTINUE
    }

    public Random_Hat(id) {
       new bool:foundrnd = false, cntTry = 0, randID = random_num (1, TotalHats - 1)
       while (cntTry < maxTry && foundrnd == false) {
          randID = random_num (1, TotalHats - 1)
          cntTry += 1
          if (HATREST[randID] == HAT_ALL) foundrnd = true
          if (HATREST[randID] == HAT_ADMIN && get_user_flags(id) & PLUG_ADMINB) foundrnd = true
          if ((get_user_team(id) != 0) && HATREST[CurrentHat[id]] == get_user_team(id) + 1) foundrnd = true
       }
       if (foundrnd == true) {   //If a valid random hat is found, apply it.
          Set_Hat(id, randID , 0)
       } else {            //Otherwise, don't use any hat.
          Set_Hat(id, 0, 0)   
       }
       return PLUGIN_CONTINUE
    }

    public Set_Hat(player, imodelnum, targeter) {
       new name[32]
       new tmpfile[101]
       format(tmpfile, 100, "%s/%s", modelpath, HATMDL[imodelnum])
       get_user_name(player, name, 31)
       if (imodelnum == 0) {
          if(g_HatEnt[player] > 0) {
             fm_set_entity_visibility(g_HatEnt[player], 0)
          }
          if (targeter != 0) {
             client_print(targeter, print_chat, "[%s] Chapeu removido %s",PLUG_TAG,name)
          }
       } else if (file_exists(tmpfile)) {
          if(g_HatEnt[player] < 1) {
             g_HatEnt[player] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))
             if(g_HatEnt[player] > 0) {
                set_pev(g_HatEnt[player], pev_movetype, MOVETYPE_FOLLOW)
                set_pev(g_HatEnt[player], pev_aiment, player)
                set_pev(g_HatEnt[player], pev_rendermode,    kRenderNormal)
                engfunc(EngFunc_SetModel, g_HatEnt[player], tmpfile)
             }
          } else {
             engfunc(EngFunc_SetModel, g_HatEnt[player], tmpfile)
          }
          glowhat(player)
          CurrentHat[player] = imodelnum
          if (targeter != 0) {
             client_print(targeter, print_chat, "[%s] Conjunto %s em %s",PLUG_TAG,HATNAME[imodelnum],name)
          }
       }
    }

    public command_load() {
       if(file_exists(HatFile)) {
          HATMDL[0] = ""
          HATNAME[0] = "None"
          TotalHats = 1
          new TempCrapA[2]
          new sfLineData[128]
          new file = fopen(HatFile,"rt")
          while(file && !feof(file)) {
             fgets(file,sfLineData,127)
             
             // Skip Comment ; // and Empty Lines
             if (sfLineData[0] == ';' || strlen(sfLineData) < 1 || (sfLineData[0] == '/' && sfLineData[1] == '/')) continue
             
             // BREAK IT UP!
             parse(sfLineData, HATMDL[TotalHats], 25, HATNAME[TotalHats], 25, TempCrapA, 1)
             
             if (TempCrapA[0] == 'A' || TempCrapA[0] == '1') {
                HATREST[TotalHats] = HAT_ADMIN
             } else if (TempCrapA[0] == 'T' || TempCrapA[0] == '2') {
                HATREST[TotalHats] = HAT_TERROR
             } else if (TempCrapA[0] == 'C' || TempCrapA[0] == '3') {
                HATREST[TotalHats] = HAT_COUNTER
             } else {
                HATREST[TotalHats] = HAT_ALL
             }
             TotalHats += 1
             if(TotalHats >= MAX_HATS) {
                server_print("[%s] Reached hat limit",PLUG_TAG)
                break
             }
          }
          if(file) fclose(file)
       }
       MenuPages = floatround((TotalHats / 8.0), floatround_ceil)
       server_print("[%s] Loaded %i hats, and Generated %i pages",PLUG_TAG,TotalHats,MenuPages)
    }


    menucolor(id, ItemID, MnuClr[3]) {
       //If its the hat they currently have on
       if (ItemID == CurrentHat[id]) {
          MnuClr = "\d"
          return
       }
       if (HATREST[ItemID] != HAT_ALL) {
          //If its an AdminHat&They are NOT an admin
          if (HATREST[ItemID] == HAT_ADMIN && get_pcvar_num(P_AdminHats) == 1) {
             if (get_user_flags(id) & PLUG_ADMINB) {
                MnuClr = "\y"
             } else {
                MnuClr = "\r"
             }
          //If this is a hat set for there team or not
          } else if (HATREST[ItemID] != get_user_team(id) + 1) {
             MnuClr = "\r"
          } else {
             MnuClr = "\y"
          }
       } else {
          MnuClr = "\w"
       }
       return
    }

    glowhat(id) {
       if (!pev_valid(g_HatEnt[id])) return
       if (get_pcvar_num(P_Glow) != 0) {   //If Glowing Hats Are Enabled
          set_pev(g_HatEnt[id], pev_renderfx,   kRenderFxGlowShell)
          if (get_pcvar_num(P_Glow) == 2) {   //If Not Team Specific, Use Player Glow On Hat
             new Float:curcolors[3], Float:curamt
             pev(id, pev_rendercolor, curcolors)
             pev(id, pev_renderamt, curamt)
             set_pev(g_HatEnt[id], pev_rendercolor, curcolors)
             set_pev(g_HatEnt[id], pev_renderamt, curamt)
          } else {                        //If Team Specific, Red=T, Blue=CT
             if (get_user_team(id) == 1) {
                set_pev(g_HatEnt[id], pev_rendercolor, {200.0, 0.0, 0.0})
             } else if (get_user_team(id) == 2) {
                set_pev(g_HatEnt[id], pev_rendercolor, {0.0, 0.0, 200.0})
             }
             set_pev(g_HatEnt[id], pev_renderamt,   50.0)
          }
       } else {
          set_pev(g_HatEnt[id], pev_renderfx,   kRenderFxNone)
          set_pev(g_HatEnt[id], pev_renderamt,   0.0)
       }
       fm_set_entity_visibility(g_HatEnt[id], 1)
       return
    }

    forcehat(id, forceID) {
       if (forceID == 0) forceID = get_pcvar_num(P_ForceHat)
       if (forceID != 0) {
          if (forceID <= TotalHats - 1) {
             if (forceID != CurrentHat[id]) Set_Hat(id, forceID, 0)
          } else {
             set_pcvar_num(P_ForceHat, 0)
          }
       }
    }
    Feelipe::
    Feelipe::
    Humano


    Nick : FeLiPe-OgRaNdE
    Masculino Número de Mensagens : 203
    Ammo Packs : 4406
    Honra : -4
    Data de inscrição : 28/01/2013

    [Duvida] Poblema no /hats Empty Re: [Duvida] Poblema no /hats

    Mensagem por Feelipe:: 13/10/2013, 2:50 am

    Vlw dexter funfou Pode fechar:Zplague12:
    Dexter
    Dexter
    Humano


    Nick : Dexter
    Masculino Número de Mensagens : 913
    '-'
    Ammo Packs : 3678
    Honra : -3
    Data de inscrição : 28/04/2013

    [Duvida] Poblema no /hats Empty Re: [Duvida] Poblema no /hats

    Mensagem por Dexter 13/10/2013, 2:52 am

    Fechado!!!

    Conteúdo patrocinado


    [Duvida] Poblema no /hats Empty Re: [Duvida] Poblema no /hats

    Mensagem por Conteúdo patrocinado


      Data/hora atual: 23/11/2024, 1:00 pm