hlmod.hu
https://hlmod.hu/

amx_login ranggal
https://hlmod.hu/viewtopic.php?f=9&t=3424
Oldal: 1 / 2

Szerző:  HunGamer [2012.02.13. 20:20 ]
Hozzászólás témája:  amx_login ranggal

Sziasztok!
Kicsit átalakítottam az amx_login plugint úgy, hogy lehessen chatrangot is adni minden loginra.
a login.ini-be így kell beírni:
"Felhasználó" "Jelszó" "Jogok" "Chatrang" pl => "alma" "szilva" "abcd" "Tulaj"
Na szóval az lenne a kérdésem, hogy átnéznétek-e, hogy van-e benne hiba.
[spoiler]
Kód:
#include <amxmodx>
#include <amxmisc>
#include <colorchat>

#define ADMIN_LEVEL ADMIN_KICK

new tobbadmin[33][33]
new bool:g_admin[33]
new sayText

public plugin_init()
{
   register_plugin("Admin Login2","1.0","James Romeril")
   register_clcmd("amx_login","login",-1,"amx_login <username> <password> - Elmenti, ha egy játékos belép az adminba.")
   register_clcmd("amx_logout","logout",-1,"amx_logout - Elmenti, ha egy játékos kilép az adminból.")
   register_clcmd("say","hook_say")
   register_clcmd("say_team","hook_say2")
   sayText = get_user_msgid ("SayText")
   register_message (sayText, "avoid_duplicated")
}
public login(id)
{
   new usercfg[64]
   new arguser[32], argpass[32], username[32], password[32]
   new line = 0
   new flags
   new strflags[32]
   new crang[32]
   new linetext[255], linetextlength
   
   read_argv(1,arguser,31)
   read_argv(2,argpass,31)
   
   if((arguser[0] > 0)&&(argpass[0] > 0))
   {   
      get_customdir(usercfg, 63)
      format(usercfg, 63, "%s/amx_login/login.ini", usercfg)

      if (file_exists(usercfg))
      {
         while ((line = read_file(usercfg, line, linetext, 256, linetextlength)))
         {
            if(linetext[0] == ';')
            {
               continue
            }      
            parse(linetext, username, 31, password, 31, strflags, 31, crang, 31)
            flags = read_flags(strflags)

            if((equal(username, arguser))&&(equal(password, argpass)))
            {
               copy(tobbadmin[id], sizeof(crang) + 1, crang)
               set_user_flags(id, flags)
               new text[128]
               format(text, 128, "[INFO] Sikeresen bejelentkeztel, jogaid: %s.", strflags)   
               client_print(id, print_console, text)
               return PLUGIN_HANDLED
            }
         }
         client_print(id, print_console, "[INFO] Rossz felhasznalo es/vagy jelszo.")
      }
   }
   return PLUGIN_HANDLED
}
public logout(id)
{
   remove_user_flags(id, -1)
   client_print(id, print_console, "[INFO] Kijelentkeztel az adminbol")
   return PLUGIN_HANDLED
}
public hook_say(id) {
   if(is_user_bot(id)) {
      return PLUGIN_CONTINUE
   }
   
   new nick[32]
   get_user_name(id,nick,31)
   
   static chat[192]
   read_args(chat, sizeof(chat) - 1)
   remove_quotes(chat)
   
   if(chat[0] == '@' || chat[0] == '/' || chat[0] == '!' || equal(chat, ""))
         return PLUGIN_CONTINUE
   if(!g_admin[id])
   {
      switch(get_user_team(id))
      {
         case 1:
            ColorChat(0,RED,"%s^x01 : %s",nick,chat)
   
         case 2:
            ColorChat(0,BLUE,"%s^x01 : %s",nick,chat)

         default:
            ColorChat(0,GREY,"%s^x01 : %s",nick,chat)
      }
   }
   if(g_admin[id])
   {
      ColorChat(0,GREEN,"[%s]^x03 %s^x04 : %s",tobbadmin[id],nick,chat)
   }
   return PLUGIN_CONTINUE
}
public hook_say2(id) {
   if(is_user_bot(id)) {
      return PLUGIN_CONTINUE
   }
   
   new nick[32]
   get_user_name(id,nick,31)
   
   static chat[192]
   read_args(chat, sizeof(chat) - 1)
   remove_quotes(chat)
   
   if(chat[0] == '@' || chat[0] == '/' || chat[0] == '!' || equal(chat, ""))
         return PLUGIN_CONTINUE
   new players[32],num
   get_players(players,num,"c")
   
   for(new x=0; x<num; x++)
   {
      if(get_user_team(id) == get_user_team(players[x]))
      {
         switch(get_user_team(id))
         {
            case 1:
            {
               if(!g_admin[id])
               {
                  ColorChat(players[x],NORMAL,"(Terrorist)^x03 %s^x01 : %s",nick,chat)
               }
               if(g_admin[id])
               {
                  ColorChat(players[x],NORMAL,"(Terrorist)^x04[%s]^x03 %s^x04 : %s",tobbadmin[id],nick,chat)
               }
            }
            case 2:
            {
               if(!g_admin[id])
               {
                  ColorChat(players[x],NORMAL,"(CT)^x03 %s^x01 : %s",nick,chat)
               }
               if(g_admin[id])
               {
                  ColorChat(players[x],NORMAL,"(CT)^x04[%s]^x03 %s^x04 : %s",tobbadmin[id],nick,chat)
               }
            }
            default:
            {
               if(!g_admin[id])
               {
                  ColorChat(players[x],NORMAL,"(Spectator)^x03 %s^x01 : %s",nick,chat)
               }
               if(g_admin[id])
               {
                  ColorChat(players[x],NORMAL,"(Spectator)^x04[%s]^x03 %s^x04 : %s",tobbadmin[id],nick,chat)
               }
            }
         }
      }
   }
   return PLUGIN_CONTINUE
}
public client_putinserver(id)
{
   set_task(5.0, "ellenorzes", id, _, _, "b")
}
public client_disconnect(id)
{
   remove_task(id)
   g_admin[id] = false
}
public ellenorzes(id)
{
   if(get_user_flags(id) & ADMIN_LEVEL)
   {
      g_admin[id] = true
   }
   else
   {
      g_admin[id] = false
   }
}
public avoid_duplicated (msgId, msgDest, receiver)
{
   return PLUGIN_HANDLED
}
[/spoiler]

Szerző:  kiki [2012.02.13. 20:28 ]
Hozzászólás témája:  Re: amx_login ranggal

Hibás

Szerző:  HunGamer [2012.02.13. 20:39 ]
Hozzászólás témája:  Re: amx_login ranggal

kiki írta:
Hibás

Mi a hiba?

Szerző:  kiki [2012.02.14. 13:43 ]
Hozzászólás témája:  Re: amx_login ranggal

Ja, sorry megvan, crangot raktad oda, azt hittem ittis 4van mint az alapba! Nos de nem!

Hát nemtudom hogy jólesz-e, teszteld le! Nekem se konvertálóm se gépem nincs most hozzá! Ránézésre jó, de csak első ránézésre!

Szerző:  HunGamer [2012.02.15. 11:09 ]
Hozzászólás témája:  Re: amx_login ranggal

kiki írta:
Ja, sorry megvan, crangot raktad oda, azt hittem ittis 4van mint az alapba! Nos de nem!

Hát nemtudom hogy jólesz-e, teszteld le! Nekem se konvertálóm se gépem nincs most hozzá! Ránézésre jó, de csak első ránézésre!

Működik :)
Még kicsit finomítom, hogy a hallottaknál a *DEAD* szöveget is kiírja.
Szerinted felrakjam az oldalra vagy ez nem annyira nagy cucc hogy érdemes legyen?

Szerző:  kiki [2012.02.15. 11:21 ]
Hozzászólás témája:  Re: amx_login ranggal

Ha nem él azt így tudod: !is_user_alive(index)

Hát tőlem felrakhatod, csak ird bele hogy akinek fentvan az amx_lohin az szedje ki

Szerző:  HunGamer [2012.02.15. 11:40 ]
Hozzászólás témája:  Re: amx_login ranggal

kiki írta:
Ha nem él azt így tudod: !is_user_alive(index)

Hát tőlem felrakhatod, csak ird bele hogy akinek fentvan az amx_lohin az szedje ki

kicsit rövidebb legyen:
Kód:
new elo = is_user_alive(id)
if(!elo)

2. az admin_chat_color-t is ki kell majd szedni,mert duplán írja ki.
3. láttam hogy az include témába te írtál a colorchatről. Nem tudod hogy az mitől van néha, hogy ha pl: CT-ben vagyok, és írok valamit akkor fehéren jelzi a nevemet. Szóval mintha összekeverné a csapatokat. Az adminnál szokott előfordulni, mert a sima playernél egyértelműen elkülöníti(RED, BLUE, GREY). De az adminnál így van:
Kód:
 ColorChat(0,GREEN,"[%s]^x03 %s^x04 : %s",tobbadmin[id],nick,chat)
és itt az x03 nem működik mindig.
Tudsz-e erre valami megoldást?

Szerző:  kiki [2012.02.15. 11:47 ]
Hozzászólás témája:  Re: amx_login ranggal

Igen tudok, delutan megmutatom telorol nemtudok:)

Szerző:  HunGamer [2012.02.15. 11:52 ]
Hozzászólás témája:  Re: amx_login ranggal

kiki írta:
Igen tudok, delutan megmutatom telorol nemtudok:)

rendben, köszi :)

Szerző:  kiki [2012.02.15. 14:06 ]
Hozzászólás témája:  Re: amx_login ranggal

Nos

new MessageSay;

init:
MessageSay = get_user_msgid ( "SayText" )


valahova:

Kód:
stock colored_print ( const index, const input [ ], any:... )
{
   new sz_Message  [ 191 ]
   
   vformat ( sz_Message, charsmax ( sz_Message ), input, 3 )
   
   replace_all ( sz_Message, charsmax ( sz_Message ), "!g", "^4" )
   replace_all ( sz_Message, charsmax ( sz_Message ), "!t", "^3" )
   replace_all ( sz_Message, charsmax ( sz_Message ), "!y", "^1" )
   
   new i_Players [ 32 ]
   new i_Count
   
   i_Count = 1
   
   if ( index )
   {
      i_Players [ 0 ] = index
   }
   
   else
   {
      get_players ( i_Players, i_Count, "ch" )
   }
   
   new i_Number
   
   for ( i_Number = 0; i_Number < i_Count; i_Number ++ )
   {
      if ( is_user_connected ( i_Players [ i_Number ] ) )
      {
         message_begin ( MSG_ONE_UNRELIABLE, MessageSay, _, i_Players [ i_Number ] )
         write_byte ( i_Players [ i_Number ] )
         write_string ( sz_Message )
         message_end ( )
      }
   }
}


Használat:

colored_print(id, "!gEz zold lesz,!tEz csapat szin!/yEz meg sarga")

Szóval:
!g = Zöld
!t = Csapat
!y = Concolor

Oldal: 1 / 2 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/