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

Zplague Entrar

Seu portal de Zombie Plague no Brasil


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

more_horiz
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!!

description[Duvida] Poblema no /hats EmptyRe: [Duvida] Poblema no /hats

more_horiz
posta sma ae

description[Duvida] Poblema no /hats EmptyRe: [Duvida] Poblema no /hats

more_horiz

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)
      }
   }
}

description[Duvida] Poblema no /hats EmptyRe: [Duvida] Poblema no /hats

more_horiz
essa tu baixa na addonszm?

description[Duvida] Poblema no /hats EmptyRe: [Duvida] Poblema no /hats

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

description[Duvida] Poblema no /hats EmptyRe: [Duvida] Poblema no /hats

more_horiz
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)
      }
   }
}

description[Duvida] Poblema no /hats EmptyRe: [Duvida] Poblema no /hats

more_horiz
Vlw dexter funfou Pode fechar:Zplague12:

description[Duvida] Poblema no /hats EmptyRe: [Duvida] Poblema no /hats

more_horiz
Fechado!!!

description[Duvida] Poblema no /hats EmptyRe: [Duvida] Poblema no /hats

more_horiz
privacy_tip Permissões neste sub-fórum
Não podes responder a tópicos
power_settings_newInicie sessão para responder