hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.27. 04:29



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: nincs regisztrált felhasználó 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
Plugin Neve:
Admin lejárati dátummal
Plugint készitette:
Exolent
Játék:
Counter-Strike
Kategória:
Admin parancsok
Eredeti link:
Jóváhagyó:


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. :)


SMA
AMXX
Tömörített fájl
*A fordítás a aghl.ru oldalon történik.


    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 12 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