hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.16. 13:25



Jelenlévő felhasználók

Jelenleg 328 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 327 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]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  [1 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Szint rendszer átírás.
HozzászólásElküldve:2016.02.09. 23:17 
Offline
Félisten
Avatar

Csatlakozott:2015.03.12. 18:30
Hozzászólások:975
Megköszönt másnak: 67 alkalommal
Megköszönték neki: 136 alkalommal
Sziasztok!
Ezt az időmérős szint rendszert kéne úgy át írni, hogy prefixbe legyenek a rangok.
Illetve az admin zölden írjon. (vagy ne bugoljon lite chat-tal)
Jel menni fog előre köszi.

  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fvault>
  4. #include <colorchat>
  5.  
  6. #define PLUGIN "plugin"
  7. #define VERSION "1.0"
  8. #define AUTHOR "author"
  9.  
  10. #define MAXPLAYERS 32
  11. #define MAX_BUFFER_LENGTH 2047
  12.  
  13. new szVault[] = "Time";
  14.  
  15. new iTotalLevels = 6;
  16.  
  17. new szLevels[][64] = {
  18.     "Kezdő, 0 óra játékidő.",
  19.     "Haladó, 5 óra játékidő.",
  20.     "Kocka, 1 nap (24 óra) játékidő.",
  21.     "Hős, 1 hét (168 óra) játékidő.",
  22.     "Legenda, 2 hét (336 óra) játékidő.",
  23.     "Isten, 4 hét (672 óra) játékidő."
  24. };
  25.  
  26. new szTimes[][64] = {
  27.     "0",
  28.     "5",
  29.     "24",
  30.     "168",
  31.     "336",
  32.     "672"
  33. };
  34.  
  35. new Trie:SaveTime;
  36. new Trie:Rank;
  37. new Trie:Name;
  38.  
  39. new TotalRanks;
  40.  
  41. new iCurrentTime[MAXPLAYERS+1];
  42.  
  43. new sBuffer[MAX_BUFFER_LENGTH + 1]  
  44.  
  45. public plugin_init() {
  46.     register_plugin(PLUGIN, VERSION, AUTHOR);
  47.    
  48.     register_clcmd("say /ido2", "CmdTimeTop");
  49.     register_clcmd("say /ido", "CmdTime");
  50.     register_clcmd("say /rangok", "CmdLevels");
  51. }
  52.  
  53. public plugin_cfg()
  54. {
  55.     SaveTime = TrieCreate();
  56.     Rank = TrieCreate()
  57.     Name = TrieCreate()
  58.     LoadData();
  59. }
  60.  
  61. public plugin_end()
  62. {
  63.     TrieDestroy(SaveTime);
  64.     TrieDestroy(Rank);
  65. }
  66.  
  67. LoadData()
  68. {
  69.     new iTotal = fvault_size(szVault);
  70.  
  71.     new szSteamId[32], szName[32], szTime[32], szData[64], szKey[32];
  72.     for( new i = 0; i < iTotal; i++ )
  73.     {
  74.         fvault_get_keyname(szVault, i, szSteamId, sizeof(szSteamId) - 1);
  75.         fvault_get_data(szVault, szSteamId, szData, sizeof(szData) - 1);
  76.        
  77.         parse(szData, szName, sizeof(szName) - 1, szTime, sizeof(szTime) - 1)
  78.        
  79.         TrieSetCell(SaveTime, szSteamId, str_to_num(szTime))
  80.        
  81.         num_to_str(TotalRanks, szKey, sizeof(szKey) - 1)
  82.        
  83.         TrieSetString(Name, szKey, szName)
  84.         TrieSetCell(Rank, szKey, str_to_num(szTime))
  85.         TotalRanks++
  86.     }
  87. }
  88.  
  89. SaveData(id)
  90. {
  91.     new szSteamId[32], szName[32], szTime[32], szData[64];
  92.     get_user_authid(id, szSteamId, 31)
  93.     get_user_name(id, szName, 31)
  94.    
  95.     TrieSetCell(SaveTime, szSteamId, iCurrentTime[id])
  96.    
  97.     num_to_str(iCurrentTime[id], szTime, sizeof(szTime) - 1)
  98.     formatex(szData, sizeof(szData) - 1, "^"%s^" %s", szName, szTime)
  99.    
  100.     fvault_set_data(szVault, szSteamId, szData)
  101. }
  102.  
  103. public client_authorized(id)
  104. {
  105.     new szSteamId[32];
  106.     get_user_authid(id, szSteamId, sizeof(szSteamId) - 1)
  107.    
  108.     TrieGetCell(SaveTime, szSteamId, iCurrentTime[id]);
  109. }
  110.  
  111. public client_disconnect(id)
  112. {
  113.     new iAddTime = get_user_time(id);
  114.    
  115.     iCurrentTime[id] += iAddTime;
  116.    
  117.     SaveData(id)
  118. }
  119.  
  120. public CmdTimeTop(id)
  121. {
  122.     new iRanks[10], iRanking[10], szKey[5], iTemp, z
  123.    
  124.     for(new x; x < 10; x++)
  125.     {
  126.         for(new i=0; i <= TotalRanks; i++)
  127.         {
  128.             num_to_str(i, szKey, sizeof(szKey) - 1)
  129.             TrieGetCell(Rank, szKey, iTemp)
  130.            
  131.             if(x == 0)
  132.             {
  133.                 if(iRanks[x] < iTemp)
  134.                 {
  135.                     iRanks[x] = iTemp
  136.                     iRanking[x] = i
  137.                    
  138.                     if(z<x)
  139.                         z=x
  140.                 }
  141.             }
  142.             else
  143.             {
  144.                 if(iRanks[x] < iTemp && iRanks[x-1] > iTemp)
  145.                 {
  146.                     iRanks[x] = iTemp
  147.                     iRanking[x] = i
  148.                    
  149.                     if(z<x)
  150.                         z=x
  151.                 }
  152.             }
  153.         }
  154.     }
  155.        
  156.     new szName[32]
  157.     new iLen
  158.    
  159.     iLen = format(sBuffer, MAX_BUFFER_LENGTH, "<body bgcolor=#000000><font color=#FFB000><pre>")
  160.     iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "#%s             %s              %s^n", "Rank", "Nev", "Jatekido")
  161.    
  162.     for(new y; y <= z; y++)
  163.     {
  164.         num_to_str(iRanking[y], szKey, sizeof(szKey) - 1)
  165.         TrieGetCell(Rank, szKey, iTemp)
  166.         TrieGetString(Name, szKey, szName, sizeof(szName) - 1)
  167.    
  168.         iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "#%i              %s                              %i ^n", y + 1, szName, iTemp)
  169.     }
  170.    
  171.     show_motd(id, sBuffer, "Top 10 Jatekido")
  172. }
  173.  
  174.  
  175.  
  176. public CmdTime(id)
  177. {
  178.     new iSecTempTime, iLevel, iRank, iTime, szKey[5];
  179.    
  180.     iSecTempTime = (iCurrentTime[id] + get_user_time(id))
  181.    
  182.     for(new i; i < iTotalLevels; i++)
  183.     {
  184.         if((iSecTempTime/3600) >= str_to_num(szTimes[i]))
  185.         {
  186.             iLevel++
  187.         }
  188.     }
  189.    
  190.     iRank=1
  191.    
  192.     for(new i; i < TotalRanks + 1; i++)
  193.     {
  194.         num_to_str(i, szKey, sizeof(szKey) - 1)
  195.         TrieGetCell(Rank, szKey, iTime)
  196.        
  197.         if(iCurrentTime[id] < iTime)
  198.         {
  199.             iRank++
  200.         }
  201.     }
  202.    
  203.     ColorChat(id,RED,"^x04[WorldDustII]^x03 A te játékidőd ^x04%i ^x03 óra, Rank :^x04 %i/%i ^x03[%i Másodperc].", iSecTempTime/3600, iRank, TotalRanks, iSecTempTime);
  204.     ColorChat(id,RED,"^x04[WorldDustII] ^x03%s", szLevels[iLevel])
  205. }
  206.  
  207. public CmdLevels(id)
  208. {
  209.     ColorChat(id,RED,"^x04[WorldDustII] ^x03 Kérlek nézd meg a ^x04játék konzolt. ^x03Nyomd meg a nullát.");
  210.    
  211.     for(new i; i < iTotalLevels; i++)
  212.     {
  213.         console_print(id, "%s", szLevels[i])
  214.     }
  215. }

_________________
Fórumi aktivitásom véget ért: 2017.09.07.
Innentől esetleg steamen vagyok elérhető.


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


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 14 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