hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.17. 11:01



Jelenlévő felhasználók

Jelenleg 345 felhasználó van jelen :: 2 regisztrált, 0 rejtett és 343 vendég

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot], Google [Bot]az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása Hozzászólás a témához  [2 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Admin Chat Color Zombira
HozzászólásElküldve:2012.01.08. 16:39 
Offline
Őskövület
Avatar

Csatlakozott:2011.09.17. 17:54
Hozzászólások:2350
Megköszönt másnak: 40 alkalommal
Megköszönték neki: 57 alkalommal
Picit átírtam a plugint,olyanra hogy az embereknek azt írja a neve előtt hogy [Ember] a zombinak pedig [Zombi].Sikerült is csak az a gond vele hogy nézőnek,zombinak és embernek is [Ember]-t ír.

A pirossal jelzett részen végeztem az átalakítást,aki jobban ért hozzá pls javítsa ki...

Kód:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define PLUGIN       "Admin Chat Colors"
#define VERSION    "2.0"
#define AUTHOR       "Arion"

#define ACCESS_LEVEL   ADMIN_CHAT
#define ADMIN_LISTEN   ADMIN_BAN

new message[192]
new sayText
new teamInfo
new maxPlayers

new g_MessageColor
new g_NameColor
new g_AdminListen

new strName[191]
new strText[191]
new alive[11]

public plugin_init()
{
   register_plugin (PLUGIN, VERSION, AUTHOR)
   
   g_MessageColor = register_cvar ("amx_color", "4") // Message colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red

   g_NameColor = register_cvar ("amx_namecolor", "2") // Name colors: [1] Default Yellow, [2] Green, [3] White, [4] Blue, [5] Red, [6] Team-color
   
   g_AdminListen = register_cvar ("amx_listen", "1") // Set whether admins see or not all messages (Alive, dead and team-only)
   
   
   sayText = get_user_msgid ("SayText")
   teamInfo = get_user_msgid ("TeamInfo")
   maxPlayers = get_maxplayers()
   
   
   register_message (sayText, "avoid_duplicated")
   
   register_clcmd ("amx_color", "set_color", ACCESS_LEVEL, "<color>")
   register_clcmd ("amx_namecolor", "set_name_color", ACCESS_LEVEL, "<color>")
   register_clcmd ("amx_listen", "set_listen", ACCESS_LEVEL, "<1 | 0>")
   
   register_clcmd ("say", "hook_say")
   register_clcmd ("say_team", "hook_teamsay")
}


public avoid_duplicated (msgId, msgDest, receiver)
{
   return PLUGIN_HANDLED
}


public hook_say(id)
{
   read_args (message, 191)
   remove_quotes (message)
   
   if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) // Ignores Admin Hud Messages, Admin Slash commands,
                                        // Gungame commands and empty messages
      return PLUGIN_CONTINUE

     
   new name[32]
   get_user_name (id, name, 31)
   
   new bool:admin = false
   
   if (get_user_flags(id) & ACCESS_LEVEL)
      admin = true
     
   
 new isAliveCT
   new isAliveT
   new isAlive
   
   if (cs_get_user_team(id) == CS_TEAM_CT)
   if (is_user_alive (id))
      {
         isAliveCT = 1
         alive = "^x01[Ember]"
      }
   else
   
   if (cs_get_user_team(id) == CS_TEAM_T)
   if (is_user_alive (id))
       {
          isAliveT = 1
          alive = "x01[Zombi]"
      }
   else
   {
         isAlive = 0
         alive = "^x01*Halott* "
      }
   
   static color[10]
   

   
   if (admin)
      {
         // Name
         switch (get_pcvar_num (g_NameColor))
  {
               case 1:
                  format (strName, 191, "%s^x03[ADMIN] ^x04%s", alive, name)

               case 2:
                  format (strName, 191, "%s^x03[ADMIN] ^x04%s", alive, name)
                 
               case 3:
                  {
                     color = "[Nezo]"
                     format (strName, 191, "%s^x03[ADMIN] ^x04%s", alive, name)
                  }
                 
               case 4:
                  {
                     color = "[Ember]"
                     format (strName, 191, "%s^x03[ADMIN] ^x04%s", alive, name)
                  }

               case 5:
                  {
                     color = "[Zombi]"
                     format (strName, 191, "%s^x03[ADMIN] ^x04%s", alive, name)
                  }
               
               case 6:
                  {
                     get_user_team (id, color, 9)
                       
                     format (strName, 191, "%s^x03[ADMIN] ^x04%s", alive, name)
                  }
            }
         
         // Message
         switch (get_pcvar_num (g_MessageColor))
            {
               case 1:   // Yellow
                  format (strText, 191, "%s", message)
                 
               case 2:   // Green
                  format (strText, 191, "^x04%s", message)
                 
               case 3:   // White
                  {
                     copy (color, 9, "[Nezo]")
                     format (strText, 191, "^x03%s", message)
                  }

               case 4:   // Blue
                  {
                     copy (color, 9, "[Ember]")
                     format (strText, 191, "^x03%s", message)
                  }
                 
               case 5:   // Red
                  {
                     copy (color, 9, "[Zombi]")
                     format (strText, 191, "^x03%s", message)
                  }
            }
      }
   
   else    // Player is not admin. Team-color name : Yellow message
      {
         get_user_team (id, color, 9)
         
         format (strName, 191, "%s^x03%s", alive, name)
         
         format (strText, 191, "%s", message)
      }

   format (message, 191, "%s^x01 :  %s", strName, strText)
         
   sendMessage (color, isAlive)   // Sends the colored message
   
   return PLUGIN_CONTINUE
}


public hook_teamsay(id)
{
   new playerTeam = get_user_team(id)
   new playerTeamName[19]
   
   switch (playerTeam) // Team names which appear on team-only messages
      {
         case 1:
            copy (playerTeamName, 11, "Terrorists")
           
         case 2:
            copy (playerTeamName, 18, "Counter-Terrorists")
           
         default:
            copy (playerTeamName, 9, "Spectator")
      }
     
   read_args (message, 191)
   remove_quotes (message)
   
   if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, "")) // Ignores Admin Hud Messages, Admin Slash commands,
                                        // Gungame commands and empty messages
      return PLUGIN_CONTINUE

     
   new name[32]
   get_user_name (id, name, 31)
   
   new bool:admin = false
   
   if (get_user_flags(id) & ACCESS_LEVEL)
      admin = true
     
   
   new isAlive
   
   if (is_user_alive (id))
      {
         isAlive = 1
         alive = "^x01"
      }
   else
      {
         isAlive = 0
         alive = "^x01*Halott* "
      }
   
   static color[10]
   

   
   if (admin)
      {
         // Name
         switch (get_pcvar_num (g_NameColor))
            {
               case 1:
                  format (strName, 191, "%s^x03[ADMIN] ^x04%s", alive, name)

               case 2:
                  format (strName, 191, "%s^x03[ADMIN] ^x04%s", alive, name)
                 
               case 3:
                  {
                     color = "[Nezo]"
                     format (strName, 191, "%s^x03[ADMIN] ^x04%s", alive, name)
                  }
                 
               case 4:
                  {
                     color = "[Ember]"
                     format (strName, 191, "%s^x03[ADMIN] ^x04%s", alive, name)
                  }

               case 5:
                  {
                     color = "[Zombi]"
                     format (strName, 191, "%s^x03[ADMIN] ^x04%s", alive, name)
                  }
               
               case 6:
                  {
                     get_user_team (id, color, 9)
                       
                     format (strName, 191, "%s^x03[ADMIN] ^x04%s", alive, name)
                  }
            }
        // Message
         switch (get_pcvar_num (g_MessageColor))
            {
               case 1:   // Yellow
                  format (strText, 191, "%s", message)
                 
               case 2:   // Green
                  format (strText, 191, "^x04%s", message)
                 
               case 3:   // White
                  {
                     copy (color, 9, "[Nezo]")
                     format (strText, 191, "^x03%s", message)
                  }

               case 4:   // Blue
                  {
                     copy (color, 9, "[Ember]")
                     format (strText, 191, "^x03%s", message)
                  }
                 
               case 5:   // Red
                  {
                     copy (color, 9, "[Zombi]")
                     format (strText, 191, "^x03%s", message)
                  }
            }
      }
   
   else    // Player is not admin. Team-color name : Yellow message
      {
         get_user_team (id, color, 9)
         
         format (strName, 191, "%s(%s) ^x03%s", alive, playerTeamName, name)
         
         format (strText, 191, "%s", message)
      }
   
   format (message, 191, "%s ^x01:  %s", strName, strText)
   
   sendTeamMessage (color, isAlive, playerTeam)   // Sends the colored message
   
   return PLUGIN_CONTINUE   
}


public set_color (id, level, cid)
{
   if (!cmd_access(id, level, cid, 2))
      return PLUGIN_HANDLED
     
   new arg[1], newColor
   read_argv (1, arg, 1)
   
   newColor = str_to_num (arg)
   
   if (newColor >= 1 && newColor <= 5)
      {
         set_cvar_num ("amx_color", newColor)
         set_pcvar_num (g_MessageColor, newColor)
   
         if (get_pcvar_num (g_NameColor) != 1 &&
                ((newColor == 3 &&  get_pcvar_num (g_NameColor) != 3)
              || (newColor == 4 &&  get_pcvar_num (g_NameColor) != 4)
              || (newColor == 5 &&  get_pcvar_num (g_NameColor) != 5)))
            {
               set_cvar_num ("amx_namecolor", 2)
               set_pcvar_num (g_NameColor, 2)
            }
      }
     
   return PLUGIN_HANDLED
}


public set_name_color (id, level, cid)
{
   if (!cmd_access(id, level, cid, 2))
      return PLUGIN_HANDLED
     
   new arg[1], newColor
   read_argv (1, arg, 1)
   
   newColor = str_to_num (arg)
   
   if (newColor >= 1 && newColor <= 6)
      {
         set_cvar_num ("amx_namecolor", newColor)
         set_pcvar_num (g_NameColor, newColor)
         
         if ((get_pcvar_num (g_MessageColor) != 1
             && ((newColor == 3 &&  get_pcvar_num (g_MessageColor) != 3)
              || (newColor == 4 &&  get_pcvar_num (g_MessageColor) != 4)
              || (newColor == 5 &&  get_pcvar_num (g_MessageColor) != 5)))
              || get_pcvar_num (g_NameColor) == 6)
            {
               set_cvar_num ("amx_color", 2)
               set_pcvar_num (g_MessageColor, 2)
            }
      }
   
   return PLUGIN_HANDLED
}


public set_listen (id, level, cid)
{
   if (!cmd_access(id, level, cid, 2))
      return PLUGIN_HANDLED
     
   new arg[1], newListen
   read_argv(1, arg, 1)
   
   newListen = str_to_num (arg)
   
   set_cvar_num ("amx_listen", newListen)
   set_pcvar_num (g_AdminListen, newListen)
   
   return PLUGIN_HANDLED
}


public sendMessage (color[], alive)
{
   new teamName[10]
   
   for (new player = 1; player < maxPlayers; player++)
      {
         if (!is_user_connected(player))
            continue

         if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
            {
               get_user_team (player, teamName, 9)   // Stores user's team name to change back after sending the message
               
               changeTeamInfo (player, color)      // Changes user's team according to color choosen
               
               writeMessage (player, message)      // Writes the message on player's chat
               
               changeTeamInfo (player, teamName)   // Changes user's team back to original
            }
      }
}


public sendTeamMessage (color[], alive, playerTeam)
{
   new teamName[10]
   
   for (new player = 1; player < maxPlayers; player++)
      {
         if (!is_user_connected(player))
            continue

         if (get_user_team(player) == playerTeam || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
            {
               if (alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN)
                  {
                     get_user_team (player, teamName, 9)   // Stores user's team name to change back after sending the message
                     
                     changeTeamInfo (player, color)      // Changes user's team according to color choosen
                     
                     writeMessage (player, message)      // Writes the message on player's chat
                     
                     changeTeamInfo (player, teamName)   // Changes user's team back to original
                  }
            }
      }
}


public changeTeamInfo (player, team[])
{
   message_begin (MSG_ONE, teamInfo, _, player)   // Tells to to modify teamInfo (Which is responsable for which time player is)
   write_byte (player)            // Write byte needed
   write_string (team)            // Changes player's team
   message_end()               // Also Needed
}


public writeMessage (player, message[])
{
   message_begin (MSG_ONE, sayText, {0, 0, 0}, player)   // Tells to modify sayText (Which is responsable for writing colored messages)
   write_byte (player)               // Write byte needed
   write_string (message)               // Effectively write the message, finally, afterall
   message_end ()                  // Needed as always
}


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Admin Chat Color Zombira
HozzászólásElküldve:2012.01.08. 16:39 
Offline
Őskövület
Avatar

Csatlakozott:2011.09.17. 17:54
Hozzászólások:2350
Megköszönt másnak: 40 alkalommal
Megköszönték neki: 57 alkalommal
Na [ c o d e ] [ / c o d e ] miatt nem ír színt :cry: :x
Ahol van ez onnan:
new isAliveCT
new isAliveT
new isAlive


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése: Rendezés 
Új téma nyitása Hozzászólás a témához  [2 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 26 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole