hlmod.hu

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



Jelenlévő felhasználók

Jelenleg 246 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 245 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Bing [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  [ 8 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Admin lejárati dátummal
HozzászólásElküldve: 2015.04.10. 18:34 
Offline
Nagyúr
Avatar

Csatlakozott: 2014.08.24. 18:28
Hozzászólások: 584
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 120 alkalommal
Admin, lejárati dátummal


Leírás
Ez a plugin arra szolgál, hogy lejárati dátumot adhassunk egy-egy adminhoz.Hasznos kis jószág :)
Emellett használható az eredeti users.ini, akinek abban adunk admin jogokat, azt viszont nem ellenőrzi ez a plugin, így sosem jár le az adminja.
Az admin megadása ugyan az a metódus maradt, mint a users.ini-ben, csak hozzá lett adva egy lejárati dátum funkció.Nincs parancs a fájl újratöltéséhez, vagy admin hozzáadásához, ezeket manuálisan kell végezni (az elsőhöz értelemszerűen mapváltás, vagy szerver újraindítás szükséges).

Cvarok
Az eredeti admin rendszer alapértelmezett cvarjait használja:
amx_mode
amx_default_access
amx_password_field

FONTOS!
A lejárati dátumot szigorúan ebben a formátumban kell megadni: NN.HH.ÉÉÉÉ
Ellenkező esetben problémák léphetnek fel!

Telepítés
1. Lefordítod az sma fájlt és letöltöd a szükséges fájlokat. (users_custom.ini, YYYY-MM-DD.log)
2. A users_custom.ini fájlt berakod a configs mappába.
3. A YYYY-MM-DD.log fájlt berakod a logs/admin_custom mappába.
4. A plugin nevét beleírod a plugins.ini fájlba.

SQL támogatás nincs!
A plugint teszteltem, működik. :)
Használjátok egészséggel! ;)
UI.:A pluginban nem találtam semmi fordítandót, mivel nem ír ki szerver üzenetet, csak a log fájlba ír. Ha ezzel nem értetek egyet szóljatok, és megteszem a valót. :)


A hozzászólást 3 alkalommal szerkesztették, utoljára LyleChriss 2015.04.10. 19:13-kor.

Ők köszönték meg LyleChriss nek ezt a hozzászólást (összesen 4): Applee (2015.04.11. 13:55) • onemax (2015.04.20. 20:37) • kenan93 (2015.05.22. 17:55) • MEGASTROM (2015.07.23. 21:28)
  Népszerűség: 9.09%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Admin lejárati dátummal
HozzászólásElküldve: 2015.04.10. 18:36 
Offline
A Scripter

Csatlakozott: 2013.11.19. 19:08
Hozzászólások: 827
Megköszönt másnak: 8 alkalommal
Megköszönték neki: 315 alkalommal
Hmmm. Kicsit hasonlít az én leírási szokásomhoz :D


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Admin lejárati dátummal
HozzászólásElküldve: 2015.04.10. 18:39 
Offline
Nagyúr
Avatar

Csatlakozott: 2014.08.24. 18:28
Hozzászólások: 584
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 120 alkalommal
Tetszett a leírásod (konkrétan a DMC-t nézegettem ma), ezért a telepítés részt "kicsit" azzal tettem hasonlóvá. :D Amúgy meg örülj, hogy rólad vettem példát! *^*
Egyébként felülre képet akartam, de lusta voltam csinálni, és nem találtam... :tease:

Ők köszönték meg LyleChriss nek ezt a hozzászólást: onemax (2015.04.20. 20:37)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Admin lejárati dátummal
HozzászólásElküldve: 2015.05.28. 13:45 
Offline
Beavatott
Avatar

Csatlakozott: 2015.03.17. 18:34
Hozzászólások: 88
Megköszönt másnak: 9 alkalommal
Megköszönték neki: 2 alkalommal
csak én vagyok a hülye? mert nem találom az a formátumot amit írtál amibe a dátumot kell írni pls segitenél :D?

_________________
>Ha segítettem ne felejtsd megköszönni :)<


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Admin lejárati dátummal
HozzászólásElküldve: 2015.05.28. 15:32 
Offline
Nagyúr

Csatlakozott: 2015.02.01. 11:40
Hozzászólások: 670
Megköszönt másnak: 16 alkalommal
Megköszönték neki: 99 alkalommal
jozsikaaa2000 írta:
csak én vagyok a hülye? mert nem találom az a formátumot amit írtál amibe a dátumot kell írni pls segitenél :D?

A lejárati dátumot szigorúan ebben a formátumban kell megadni: NN.HH.ÉÉÉÉ

Telepítés
1. Lefordítod az sma fájlt és letöltöd a szükséges fájlokat. (users_custom.ini, YYYY-MM-DD.log)
2. A users_custom.ini fájlt berakod a configs mappába.
3. A YYYY-MM-DD.log fájlt berakod a logs/admin_custom mappába.
4. A plugin nevét beleírod a plugins.ini fájlba.

_________________
http://steamcommunity.com/id/floxay/

Ők köszönték meg FloxaY nek ezt a hozzászólást: *GrafitY* (2016.04.21. 11:41)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Admin lejárati dátummal
HozzászólásElküldve: 2016.04.20. 19:13 
Offline
GFX-Designer
Avatar

Csatlakozott: 2015.03.12. 15:06
Hozzászólások: 624
Megköszönt másnak: 199 alkalommal
Megköszönték neki: 78 alkalommal
Valaki bele tudná írni, vagy a feltöltő [profil]LyleChriss[/profil] tudna segíteni, hogy ha egy admin beírja, hogy /lejarat akkor kiírja neki chat üzenetben a lejáratáig maradt időt, valahogy így:
[Prefix] Az admin jogod lejáratáig 10 nap maradt. (csak példa!!!)
(vagy valami ehhez hasonló), és ezt a parancsot csak admin tudja használni!

Köszönöm előre annak, aki segít! Megy a Kép Mint mindig :)

_________________
„Nem azért felejtünk el játszani, mert megöregszünk, hanem attól öregszünk meg, hogy elfelejtünk játszani.”

-MAXHACKED Website-
-HERViD Website-
► Spoiler mutatása


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Admin lejárati dátummal
HozzászólásElküldve: 2016.04.24. 21:58 
Offline
GFX-Designer
Avatar

Csatlakozott: 2015.03.12. 15:06
Hozzászólások: 624
Megköszönt másnak: 199 alkalommal
Megköszönték neki: 78 alkalommal
Megoldva!

Köszönöm [profil]LyleChriss[/profil] <33, holnap tesztelem is!! *-*

Az .ini neve módosúlt erre: custom_users.ini

  1. /*Az eredeti plugint írta: Exolent. Módosította/újraírta: LyleChriss
  2. The original plugin was made by Exolent. Modifyed/rewrited by: LyleChriss*/
  3.  
  4. #include <amxmodx>
  5. #include <amxmisc>
  6. #include <unixtime>
  7.  
  8. #define TASK_ID_REMOVE 14325
  9.  
  10. new gCaseSensitive
  11. #define IsCaseSensitive(%1)   (gCaseSensitive &   (1 << (%1 & 31)))
  12. #define SetCaseSensitive(%1)   gCaseSensitive |=  (1 << (%1 & 31))
  13. #define ClearCaseSensitive(%1) gCaseSensitive &= ~(1 << (%1 & 31))
  14.  
  15. //Admin Adatok [Admin Datas]
  16. enum _:AdminData
  17. {
  18.     Auth[44],
  19.     Pass[32],
  20.     Access,
  21.     Flags,
  22.     Expire
  23. }
  24.  
  25. new Array:Admins
  26. new Trie:AdminIndex
  27. new AdminsNum
  28.  
  29. new amx_mode
  30. new amx_password_field
  31. new amx_default_access
  32.  
  33. new KickCommand[32]
  34.  
  35. new AdminFile[64]
  36.  
  37. public plugin_init() {
  38.     register_plugin("Admin Custom", "1.0.3", "LyleChriss")
  39.    
  40.     amx_mode = register_cvar("amx_mode", "1")
  41.     amx_password_field = register_cvar("amx_password_field", "_pw")
  42.     amx_default_access = register_cvar("amx_default_access", "")
  43.    
  44.     formatex(KickCommand, charsmax(KickCommand), "amxauthcustom%c%c%c%c", random_num('A', 'Z'), random_num('A', 'Z'), random_num('A', 'Z'), random_num('A', 'Z'))
  45.     register_clcmd(KickCommand, "CmdKick")
  46.     register_clcmd("say /lejarat", "CmdLeajarat")
  47.    
  48.     get_localinfo("amxx_configsdir", AdminFile, charsmax(AdminFile))
  49.     format(AdminFile, charsmax(AdminFile), "%s/custom_users.ini", AdminFile)
  50.    
  51.     Admins = ArrayCreate(AdminData)
  52.     AdminIndex = TrieCreate()
  53.    
  54.     LoadAdmins()
  55.    
  56.     new hour, minute, second
  57.     time(hour, minute, second)
  58.    
  59.     new timeleft = 86400 - (hour*3600) - (minute*60) - second + 5
  60.    
  61.     set_task(float(timeleft), "TaskRefreshAdmins")
  62. }
  63.  
  64. public client_connect(id)
  65. {
  66.     ClearCaseSensitive(id)
  67. }
  68.  
  69. public client_authorized(id)
  70. {
  71.     if(get_pcvar_num(amx_mode))
  72.         checkAdmin(id)
  73. }
  74.  
  75. public client_infochanged(id)
  76. {
  77.     if(is_user_connected(id) && get_pcvar_num(amx_mode))
  78.     {
  79.         new oldName[32], newName[32]
  80.         get_user_name(id, oldName, charsmax(oldName))
  81.         get_user_info(id, "name", newName, charsmax(newName))
  82.  
  83.         if(strcmp(oldName, newName, !IsCaseSensitive(id)) == 0)
  84.             checkAdmin(id, newName)
  85.     }
  86. }
  87.  
  88. public CmdLejarat(id)
  89. {
  90.     new steamID[35], ip[32], name[32], index, admin[AdminData]
  91.     new Year, Month, Day, Hour, Minute, Second
  92.     get_user_authid(id, steamID, charsmax(steamID))
  93.     get_user_ip(id, ip, charsmax(ip), 1)
  94.     get_user_name(id, name, charsmax(name))
  95.    
  96.     if(TrieKeyExists(AdminIndex, steamID))
  97.     {
  98.         TrieGetCell(AdminIndex, steamID, index)
  99.         ArrayGetArray(Admins, index, admin)
  100.         if(admin[Expire] <= 0)
  101.         {
  102.             client_print(id, print_chat, "Az adminod lejárt!")
  103.         }
  104.         else
  105.         {  
  106.             UnixToTime(admin[Expire], Year, Month, Day, Hour, Minute, Second)
  107.            
  108.             client_print(id, print_chat, "Az adminod lejár: %d.%d.%d-án/én.", Year,Month,Day)
  109.         }
  110.     }
  111.     else if(TrieKeyExists(AdminIndex, ip))
  112.     {
  113.         TrieGetCell(AdminIndex, ip, index)
  114.         ArrayGetArray(Admins, index, admin)
  115.         if(admin[Expire] <= 0)
  116.         {
  117.             client_print(id, print_chat, "Az adminod lejárt!")
  118.         }
  119.         else
  120.         {  
  121.             UnixToTime(admin[Expire], Year, Month, Day, Hour, Minute, Second)
  122.            
  123.             client_print(id, print_chat, "Az adminod lejár: %d.%d.%d-án/én.", Year,Month,Day)
  124.         }
  125.     }
  126.     else if(TrieKeyExists(AdminIndex, name))
  127.     {
  128.         TrieGetCell(AdminIndex, name, index)
  129.         ArrayGetArray(Admins, index, admin)
  130.         if(admin[Expire] <= 0)
  131.         {
  132.             client_print(id, print_chat, "Az adminod lejárt!")
  133.         }
  134.         else
  135.         {  
  136.             UnixToTime(admin[Expire], Year, Month, Day, Hour, Minute, Second)
  137.            
  138.             client_print(id, print_chat, "Az adminod lejár: %d.%d.%d-án/én.", Year,Month,Day)
  139.         }
  140.     }
  141. }
  142.  
  143. public CmdKick(id) {
  144.     server_cmd("kick #%d", get_user_userid(id));
  145.  
  146.     return PLUGIN_HANDLED;
  147. }
  148.  
  149. public TaskRefreshAdmins()
  150. {
  151.     LoadAdmins()
  152.    
  153.     new players[32], pnum
  154.     get_players(players, pnum)
  155.    
  156.     for(new i; i<pnum;i++)
  157.         checkAdmin(players[i])
  158.        
  159.     set_task(86400.0, "TaskRefreshAdmins")
  160. }
  161.  
  162. public TaskRemoveAuth(auth[])
  163. {
  164.     new index
  165.     if(!TrieGetCell(AdminIndex, auth, index))
  166.         return;
  167.    
  168.     ArrayDeleteItem(Admins, index)
  169.     TrieDeleteKey(AdminIndex, auth)
  170.     AdminsNum--
  171.    
  172.     new admin[AdminData]
  173.     while(index < AdminsNum)
  174.     {
  175.         ArrayGetArray(Admins, index, admin)
  176.         TrieSetCell(AdminIndex, admin[Auth], index)
  177.     }
  178.    
  179.     new players[32], pnum
  180.     get_players(players, pnum)
  181.    
  182.     for(new i; i<pnum;i++)
  183.         checkAdmin(players[i])
  184. }
  185.  
  186. checkAdmin(id, name[32]="")
  187. {
  188.     remove_user_flags(id)
  189.    
  190.     if(!name[0])
  191.         get_user_name(id, name, charsmax(name))
  192.    
  193.     new steamID[35], ip[32]
  194.     get_user_authid(id, steamID, charsmax(steamID))
  195.     get_user_ip(id, ip, charsmax(ip), 1)
  196.    
  197.     new admin[AdminData]
  198.     new temp
  199.     new bool:found
  200.    
  201.     for(new i = admins_num() -1; i >= 0; i--)
  202.     {
  203.         admins_lookup(i, AdminProp_Auth, admin[Auth], charsmax(admin[Auth]))
  204.         admins_lookup(i, AdminProp_Password, admin[Pass], charsmax(admin[Pass]))
  205.         admin[Access] = admins_lookup(i, AdminProp_Access)
  206.         admin[Flags] = admins_lookup(i, AdminProp_Flags)
  207.        
  208.         if((found = adminMatch(id, name, steamID, ip, admin)))
  209.             break;
  210.     }
  211.    
  212.     if(!found)
  213.     {
  214.         for(new i; i<AdminsNum; i++)
  215.         {
  216.             ArrayGetArray(Admins, i, admin)
  217.            
  218.             if((found = adminMatch(id, name, steamID, ip, admin)))
  219.                 break;
  220.         }
  221.     }
  222.    
  223.     if(found)
  224.     {
  225.         if(~admin[Flags] & FLAG_NOPASS)
  226.         {
  227.             new field[32], password[32]
  228.             get_pcvar_string(amx_password_field, field, charsmax(field))
  229.             get_user_info(id, field, password, charsmax(password))
  230.            
  231.             if(!equal(admin[Pass], password))
  232.             {
  233.                 if(admin[Flags] & FLAG_KICK)
  234.                     client_cmd(id, "%s", KickCommand)
  235.                    
  236.                 return;
  237.             }
  238.         }
  239.        
  240.         set_user_flags(id, admin[Access])
  241.     }
  242.     else if(get_pcvar_num(amx_mode) == 2)
  243.         client_cmd(id, "%s", KickCommand)
  244.     else
  245.     {
  246.         new flags[27]
  247.         get_pcvar_string(amx_default_access, flags, charsmax(flags))
  248.         temp = read_flags(flags)
  249.  
  250.         if(!temp)
  251.             temp = ADMIN_USER
  252.            
  253.         set_user_flags(id, temp)
  254.     }
  255. }  
  256.  
  257. LoadAdmins()
  258. {
  259.     if(AdminsNum)
  260.     {
  261.         ArrayClear(Admins)
  262.         TrieClear(AdminIndex)
  263.         AdminsNum = 0
  264.     }
  265.    
  266.     new data[256]
  267.     new admin[AdminData], accessStr[27], flagStr[27], expStr[32], Day, Month, Year, expTime, currentTime = get_systime()
  268.    
  269.     new pFile = fopen(AdminFile, "rt")
  270.    
  271.     if(pFile)
  272.     {
  273.         while(!feof(pFile))
  274.         {
  275.             fgets(pFile, data, charsmax(data))
  276.            
  277.             trim(data)
  278.            
  279.             if(!data[0] || data[0] == ';' || data[0] == '/' && data[1] == '/') continue;
  280.            
  281.             parse(data, admin[Auth], charsmax(admin[Auth]),  admin[Pass], charsmax(admin[Pass]), accessStr, charsmax(accessStr), flagStr, charsmax(flagStr), expStr, charsmax(expStr))
  282.            
  283.             admin[Access] = read_flags(accessStr)
  284.             admin[Flags] = read_flags(flagStr)
  285.            
  286.             if(expStr[0])
  287.             {
  288.                 new day[8], month[8]
  289.                 strtok(expStr, day, charsmax(day), expStr, charsmax(expStr), '.')
  290.                 strtok(expStr, month, charsmax(month), expStr, charsmax(expStr), '.')
  291.                
  292.                 Day = str_to_num(day)
  293.                 Month = str_to_num(month)
  294.                 Year = str_to_num(expStr)
  295.                
  296.                 expTime = TimeToUnix(Year, Month, Day, 0, 0, 0)
  297.                
  298.                 expTime -= currentTime
  299.                
  300.                 if(expTime <= 0)
  301.                 {
  302.                     format(data, charsmax(data), ";%s ; Lejárt", data)
  303.                    
  304.                     write_file(AdminFile, data, AdminsNum)
  305.                 }
  306.                 admin[Expire] = expTime
  307.                
  308.                 set_task(float(expTime), "TaskRemoveAuth", TASK_ID_REMOVE, admin[Auth], sizeof(admin[Auth]))
  309.             }
  310.             ArrayPushString(Admins, admin)
  311.             TrieSetCell(AdminIndex, admin[Auth], AdminsNum)
  312.             AdminsNum++
  313.         }
  314.         fclose(pFile)
  315.     }
  316. }
  317.  
  318. bool:adminMatch(id, const name[], const steamID[], const ip[], const admin[AdminData])
  319. {
  320.     new temp
  321.     new bool:found
  322.    
  323.     if(admin[Flags] & FLAG_AUTHID)
  324.     {
  325.         if(equal(steamID, admin[Auth]))
  326.             found = true
  327.     }
  328.     else if(admin[Flags] & FLAG_IP)
  329.     {
  330.         temp = strlen(admin[Auth])
  331.        
  332.         if(admin[Auth][temp-1] != '.')
  333.             temp = 0
  334.        
  335.         if(equal(ip, admin[Auth], temp))
  336.             found=true
  337.     }
  338.     else if(admin[Flags] & FLAG_TAG)
  339.     {
  340.         temp = admin[Flags] & FLAG_CASE_SENSITIVE
  341.        
  342.         if(strfind(name, admin[Auth], !temp) >= 0)
  343.         {
  344.             if(temp)
  345.                 SetCaseSensitive(id)
  346.  
  347.             found = true
  348.         }
  349.     }
  350.     else
  351.     {
  352.         temp = admin[Flags] & FLAG_CASE_SENSITIVE
  353.        
  354.         if(strcmp(name, admin[Auth], !temp) == 0)
  355.         {
  356.             if(temp)
  357.                 SetCaseSensitive(id)
  358.  
  359.             found = true
  360.         }
  361.     }
  362.  
  363.     return found
  364. }
  365.  
  366. public plugin_end()
  367. {
  368.     ArrayDestroy(Admins)
  369.     TrieDestroy(AdminIndex)
  370. }

_________________
„Nem azért felejtünk el játszani, mert megöregszünk, hanem attól öregszünk meg, hogy elfelejtünk játszani.”

-MAXHACKED Website-
-HERViD Website-
► Spoiler mutatása


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Admin lejárati dátummal
HozzászólásElküldve: 2016.04.25. 09:40 
Offline
Nagyúr
Avatar

Csatlakozott: 2014.08.24. 18:28
Hozzászólások: 584
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 120 alkalommal
Elfelejtettem elküldeni, ez az inc kell hozzá: https://forums.alliedmods.net/showthread.php?t=91915
Félreértés pedig ne essék, pár apróbb változtatáson kívül ugyan az a plugin, csupán azért írtam újra (begépeltem mindent), mert nem értettem. :lol:


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  [ 8 hozzászólás ] 


Ki van itt

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


Nem nyithatsz 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