hlmod.hu

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



Jelenlévő felhasználók

Jelenleg 219 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 218 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ő


Lezárt fórum  A témát lezárták, nem szerkesztheted a hozzászólásaid, és nem küldhetsz új hozzászólást.  [ 4 hozzászólás ] 
Szerző Üzenet
HozzászólásElküldve: 2016.01.05. 15:23 
Offline
Beavatott
Avatar

Csatlakozott: 2016.01.05. 14:47
Hozzászólások: 68
Megköszönt másnak: 3 alkalommal
Megköszönték neki: 7 alkalommal
Ebben a tutoriálban megmutatom hogyan tudsz saját Admin Rendszered elkésziteni!

  1. #include <amxmodx>
  2.  
  3. // Új sor, és hozzá adjuk a mértékeket.
  4. new Array:g_steamid
  5. new Array:g_password
  6. new Array:g_flags
  7. new Array:g_mode
  8.  
  9. // Array of player flags
  10. new Array:g_playerflags
  11.  
  12. // Létrehozzuk a cvarokat a setinfohoz & a késedelmi flagokat.
  13. new cvar_setinfo
  14. new cvar_defaultflag
  15.  
  16. // Itt vannak a flagek és a loggin típusok
  17. enum
  18. {
  19.     KZ_JOIN_PASS = (1<<0),
  20.     KZ_JOIN_TAGS = (1<<1),
  21.     KZ_JOIN_STEAM = (1<<2),
  22.     KZ_JOIN_IP = (1<<3),
  23.     KZ_JOIN_NOPASS = (1<<4)
  24. }
  25.  
  26. public plugin_precache()
  27. {
  28.     register_plugin("Admins Loggin", "1.0", "ReymonARG")
  29.    
  30.     // Most létrehozzunk 2 cvart .
  31.     cvar_setinfo = register_cvar("fakeadmin_setinfo", "_pw")
  32.     cvar_defaultflag = register_cvar("fakeadmin_defaultflag", "z")
  33.    
  34.     register_concmd("fakeadmin_reload", "fakereload", ADMIN_RCON)
  35.    
  36.     // Létre kell hozzuk a mértékeket a tömböknek
  37.     g_steamid = ArrayCreate(32, 1)
  38.     g_password = ArrayCreate(32, 1)
  39.     g_flags = ArrayCreate(1, 1)
  40.     g_mode = ArrayCreate(1, 1)
  41.     g_playerflags = ArrayCreate(1, 1)
  42.    
  43.     for( new i = 0; i <= 32; i++)
  44.         ArrayPushCell(g_playerflags, 0)
  45.    
  46.     // Most megadjuk az rendszernek az elérést
  47.     fake_get_admins("addons/amxmodx/configs/newusers.ini")
  48. }
  49.  
  50. public fakereload(id, level)
  51. {
  52.     if( get_user_flags(id) & level )
  53.     {
  54.         fake_get_admins("addons/amxmodx/configs/newusers.ini")
  55.        
  56.         for( new i = 1; i <= 32; i++)
  57.         {
  58.             if( !is_user_connected(i) ) continue
  59.             fakeadmin_authplayer(i)
  60.         }
  61.     }
  62.    
  63.     return PLUGIN_HANDLED
  64. }
  65.  
  66. public fake_get_admins(const filename[])
  67. {
  68.     //Elsõnek létrehozzunk pár mentést ami menti az adatokat.
  69.     static data[192], steamid[32], password[32], flags[32], mode[10]
  70.    
  71.     // Az adminok átrakásához. Ki kell töröljünk minden információt és ujra létrehozni.
  72.     ArrayClear(g_steamid)
  73.     ArrayClear(g_password)
  74.     ArrayClear(g_flags)
  75.     ArrayClear(g_mode)
  76.    
  77.     // Most arra van szükség, hogy nyissa meg a fájlt, és olvasni, sorban soronként.
  78.     new f = fopen(filename, "rt" )
  79.     while( !feof(f) )
  80.     {
  81.         fgets( f, data, 191)
  82.         // Továbbra is egy formátummal kell irjuk hogyha szeretnénk az adatokat.
  83.         if( data[0] == '/' && data[1] == '/' || data[0] == ';' || data[0] == ' ' || data[0] == '^n') continue
  84.        
  85.         // Mert ha nem egyforma akkor átugrik a következõ sorra (azaz nem fog müködni)
  86.         if( parse( data, steamid, 31, password, 31, flags, 31, mode, 9) != 4 ) continue
  87.        
  88.         // Push the information into Arrays items.
  89.         ArrayPushString(g_steamid, steamid)
  90.         ArrayPushString(g_password, password)
  91.         ArrayPushCell(g_flags, read_flags(flags))
  92.         ArrayPushCell(g_mode, read_flags(flags))
  93.     }
  94.     // Nagyon fontos hogy lezárjuk a fájlt.
  95.     fclose(f)
  96.    
  97.     // Kiírjuk a számtételeket ahány tömbe SteamID szerepel.
  98.      server_print("%i Admin from %s", ArraySize(g_steamid), filename)
  99.    
  100.     return 1
  101. }
  102.  
  103. public client_connect(id)
  104. {
  105.     static defaultflags[32]
  106.     get_pcvar_string(cvar_defaultflag, defaultflags, 31)
  107.    
  108.     // Elsõnek beállitjuk a játékos adatokat és a flagokat. És utánna meg tudjuk adni hogy milyen admin legyen.
  109.     ArraySetCell(g_playerflags, id, read_flags(defaultflags) )
  110. }
  111.  
  112. public client_authorized(id)
  113. {
  114.     fakeadmin_authplayer(id)
  115. }
  116.  
  117. // Játékos név csere?
  118. public client_infochanged(id)
  119. {
  120.     static oldname[32], newname[32]
  121.     get_user_name(id, oldname, 31)
  122.     get_user_info(id, "name", newname, 31)
  123.    
  124.     if( !equal(oldname, newname) )
  125.         fakeadmin_authplayer(id, newname)
  126. }
  127.  
  128. // Feljogositjuk a játékost.
  129. stock fakeadmin_authplayer(id, const newname[] = "")
  130. {
  131.     static name[32], authid[32], ip[32]
  132.    
  133.     // Ha be van állítva a név másoljuk ki az új tömböt ha nem kap új nevet.
  134.     if( equal(newname, "") )
  135.         get_user_name(id, name, 31)
  136.     else
  137.         copy(name, 31, newname)
  138.    
  139.     static plr_steamid[32], plr_password[32], plr_flags, plr_mode
  140.     static setinfo[32], setinfo_tag[32] // If needed password
  141.     get_pcvar_string(cvar_setinfo, setinfo_tag, 31)
  142.    
  143.     // Most elérjük a játékos Steam Idjét és ipjét.
  144.     get_user_authid(id, authid, 31)
  145.     get_user_ip(id, ip, 31, 1) // Nagyon fontos ez IP port nélkül!
  146.     get_user_info(id, setinfo_tag, setinfo, 31)
  147.    
  148.     for( new i = 0; i < sizeof(g_steamid); i++)
  149.     {    
  150.         // First of all, we need to get the information.
  151.         ArrayGetString(g_steamid, i, plr_steamid, 31)
  152.         ArrayGetString(g_password, i, plr_password, 31)
  153.         plr_flags = ArrayGetCell(g_flags, i)
  154.         plr_mode = ArrayGetCell(g_mode, i)
  155.        
  156.         // Most kiválaszuk a bejelentkezési módott.
  157.         if( plr_mode & KZ_JOIN_STEAM )
  158.         {
  159.             // Ha egyezik a SteamID akkor a lista folytatodik.
  160.             if( equal(plr_steamid, authid) )
  161.             {
  162.                 // Most ellenörizük hogy jelszoval jelentkezik be vagy nem.
  163.                 if( plr_mode & KZ_JOIN_NOPASS )
  164.                 {
  165.                     return ArraySetCell(g_playerflags, id, plr_flags)
  166.                 }
  167.                 else
  168.                 {
  169.                     // Ha jelszóval jelentkezik be állitsuk be a flaget
  170.                     if( equal(plr_password, setinfo) )
  171.                     {
  172.                         return ArraySetCell(g_playerflags, id, plr_flags)
  173.                     }
  174.                     else
  175.                     {
  176.                         //Ha a kiválasztott játékos rossz jelszot add meg kickeli a szerverrõl. Kick indokkal....
  177.                         if( plr_mode & KZ_JOIN_PASS )
  178.                         {
  179.                             return server_cmd("kick #%d  Nincs jogosultságod ezen a szerveren!", get_user_userid(id))
  180.                         }
  181.                     }
  182.                 }
  183.             }
  184.         }
  185.         else if( plr_mode & KZ_JOIN_IP )
  186.         {            
  187.             if( equal(plr_steamid, ip) )
  188.             {
  189.                 if( plr_mode & KZ_JOIN_NOPASS )
  190.                 {
  191.                     return ArraySetCell(g_playerflags, id, plr_flags)
  192.                 }
  193.                 else
  194.                 {
  195.                     if( equal(plr_password, setinfo) )
  196.                     {
  197.                         return ArraySetCell(g_playerflags, id, plr_flags)
  198.                     }
  199.                     else
  200.                     {
  201.                         if( plr_mode & KZ_JOIN_PASS )
  202.                         {
  203.                             return server_cmd("kick #%d  Nincs jogosultságod ezen a szerveren!", get_user_userid(id))
  204.                         }
  205.                     }
  206.                 }
  207.             }
  208.         }
  209.         else
  210.         {
  211.             static is_tag_flag = -1
  212.             if( plr_mode & KZ_JOIN_TAGS )
  213.             {
  214.                 is_tag_flag = containi(name, plr_steamid)
  215.             }
  216.            
  217.             if( is_tag_flag != -1 ||  equal(plr_steamid, name) )
  218.             {
  219.                 if( plr_mode & KZ_JOIN_NOPASS )
  220.                 {
  221.                     return ArraySetCell(g_playerflags, id, plr_flags)
  222.                 }
  223.                 else
  224.                 {
  225.                     if( equal(plr_password, setinfo) )
  226.                     {
  227.                         return ArraySetCell(g_playerflags, id, plr_flags)
  228.                     }
  229.                     else
  230.                     {
  231.                         if( plr_mode & KZ_JOIN_PASS )
  232.                         {
  233.                             return server_cmd("kick #%d  Nincs jogosultságod ezen a szerveren!", get_user_userid(id))
  234.                         }
  235.                     }
  236.                 }
  237.             }            
  238.         }    
  239.     }
  240.    
  241.     return 1
  242. }


  1. enum
  2. {
  3.     KZ_USER_NONE = 0,
  4.     KZ_USER_KICK = (1<<0),
  5.     KZ_USER_BAN = (1<<1),
  6.     KZ_USER_REWARDS = (1<<2),
  7.     KZ_USER_GIVEREWARDS = (1<<3),
  8.     KZ_USER_SETSTART = (1<<4),
  9.     KZ_USER_COLORCHAT = (1<<5),
  10.     KZ_USER_RCON = (1<<6),
  11.     KZ_USER_RESERVATION = (1<<7),
  12.     KZ_USER_IMMUNITY = (1<<8),
  13.     KZ_USER_SETC4 = (1<<9),
  14.     KZ_USER_MODEL = (1<<10),
  15.     KZ_USER_SCOREBOARD = (1<<11),
  16.     KZ_USER_LEVEL_A = (1<<12),
  17.     KZ_USER_LEVEL_B = (1<<13),
  18.     KZ_USER_LEVEL_C = (1<<14),
  19.     KZ_USER_LEVEL_D = (1<<15),
  20.     KZ_USER_LEVEL_E = (1<<16),
  21.     KZ_USER_ADMIN = (1<<17),
  22.     KZ_USER_PLAYER = (1<<25)
  23. }


Add mint egy fakeadmin_addadmin.
SQLx verzió
Egy példa hogy használd a flageket.

Köszönöm hogy elolvastad. Kiváncsi vagyok a véleményetekre!
Remélem tetszett!


Hozzászólás jelentése
Vissza a tetejére
   
 
HozzászólásElküldve: 2016.01.05. 17:01 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2014.09.08. 22:21
Hozzászólások: 3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
Semmi értelme. Leutánoztál egy barmot, aki 6 éve csinálta ezt.
https://forums.alliedmods.net/showthread.php?t=87635

Maga az egész tutoriál értelmetlen, kiírod, hogy mi mire való egy szimpla pluginban. Inkább plugin feltöltés címen kellene lennie.

_________________
GitHub - mforce


Hozzászólás jelentése
Vissza a tetejére
   
 
HozzászólásElküldve: 2016.01.05. 17:11 
Offline
Beavatott
Avatar

Csatlakozott: 2016.01.05. 14:47
Hozzászólások: 68
Megköszönt másnak: 3 alkalommal
Megköszönték neki: 7 alkalommal
mforce írta:
Semmi értelme. Leutánoztál egy barmot, aki 6 éve csinálta ezt.
https://forums.alliedmods.net/showthread.php?t=87635

Maga az egész tutoriál értelmetlen, kiírod, hogy mi mire való egy szimpla pluginban. Inkább plugin feltöltés címen kellene lennie.

egfy kicsit fura hogy a tied es hasonlit ehezz ;)


Hozzászólás jelentése
Vissza a tetejére
   
 
HozzászólásElküldve: 2016.01.05. 17:47 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2014.09.08. 22:21
Hozzászólások: 3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
Nem is ismertem ezt és nem fura.
Konkrétan semmi nem hasonlít, de hozzá nem értő szemmel biztos egy array szó már az.

_________________
GitHub - mforce


Hozzászólás jelentése
Vissza a tetejére
   
 
Hozzászólások megjelenítése:  Rendezés  
Lezárt fórum  A témát lezárták, nem szerkesztheted a hozzászólásaid, és nem küldhetsz új hozzászólást.  [ 4 hozzászólás ] 


Ki van itt

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


Nem nyithatsz témákat ebben a fórumban.
Nem 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