Approved Level Rank/Top Systems

Plug-ins compatibility with Zombie Escape 1.x only!


User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#21

Post by Raheem » 4 years ago

Trashed because it's not working and not safe to use it.

I don't release a MySQL version, it's easy because it will be a php+html+mysql and many scripts exist online for this purpose.
He who fails to plan is planning to fail

Muhammet20
Veteran Member
Veteran Member
Posts: 408
Joined: 5 years ago
Contact:

#22

Post by Muhammet20 » 4 years ago

ik its not working but i asking if he mean like this

imSpartan
Member
Member
Malaysia
Posts: 22
Joined: 4 years ago
Contact:

#23

Post by imSpartan » 4 years ago

Raheem wrote: 4 years ago Trashed because it's not working and not safe to use it.

I don't release a MySQL version, it's easy because it will be a php+html+mysql and many scripts exist online for this purpose.
noted sir, can you please show me some of the examples?

Muhammet20
Veteran Member
Veteran Member
Posts: 408
Joined: 5 years ago
Contact:

#24

Post by Muhammet20 » 4 years ago

imSpartan wrote: 4 years ago
Raheem wrote: 4 years ago Trashed because it's not working and not safe to use it.

I don't release a MySQL version, it's easy because it will be a php+html+mysql and many scripts exist online for this purpose.
noted sir, can you please show me some of the examples?
are you mean like this? :
https://forums.alliedmods.net/showthread.php?t=198774

imSpartan
Member
Member
Malaysia
Posts: 22
Joined: 4 years ago
Contact:

#25

Post by imSpartan » 4 years ago

Muhammet20 wrote: 4 years ago
imSpartan wrote: 4 years ago
Raheem wrote: 4 years ago Trashed because it's not working and not safe to use it.

I don't release a MySQL version, it's easy because it will be a php+html+mysql and many scripts exist online for this purpose.
noted sir, can you please show me some of the examples?
are you mean like this? :
https://forums.alliedmods.net/showthread.php?t=198774
No, I want to put it on the website.

Muhammet20
Veteran Member
Veteran Member
Posts: 408
Joined: 5 years ago
Contact:

#26

Post by Muhammet20 » 4 years ago

imSpartan wrote: 4 years ago
Muhammet20 wrote: 4 years ago
imSpartan wrote: 4 years ago
noted sir, can you please show me some of the examples?
are you mean like this? :
https://forums.alliedmods.net/showthread.php?t=198774
No, I want to put it on the website.
you mean like this but with Level system? :
s.png

imSpartan
Member
Member
Malaysia
Posts: 22
Joined: 4 years ago
Contact:

#27

Post by imSpartan » 4 years ago

Muhammet20 wrote: 4 years ago
imSpartan wrote: 4 years ago
Muhammet20 wrote: 4 years ago

are you mean like this? :
https://forums.alliedmods.net/showthread.php?t=198774
No, I want to put it on the website.
you mean like this but with Level system? :
s.png
Yes

Muhammet20
Veteran Member
Veteran Member
Posts: 408
Joined: 5 years ago
Contact:

#28

Post by Muhammet20 » 4 years ago

imSpartan wrote: 4 years ago
Muhammet20 wrote: 4 years ago
imSpartan wrote: 4 years ago
No, I want to put it on the website.
you mean like this but with Level system? :
s.png
Yes
i think that is hard but i will try to help

imSpartan
Member
Member
Malaysia
Posts: 22
Joined: 4 years ago
Contact:

#29

Post by imSpartan » 4 years ago

Muhammet20 wrote: 4 years ago
imSpartan wrote: 4 years ago
Muhammet20 wrote: 4 years ago

you mean like this but with Level system? :
s.png
Yes
i think that is hard but i will try to help
ok thank you

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#30

Post by Raheem » 4 years ago

imSpartan wrote: 4 years ago noted sir, can you please show me some of the examples?
Will ask jack if he got time to do php page.
He who fails to plan is planning to fail

imSpartan
Member
Member
Malaysia
Posts: 22
Joined: 4 years ago
Contact:

#31

Post by imSpartan » 4 years ago

Thank you, sir.

czirimbolo
Veteran Member
Veteran Member
Poland
Posts: 598
Joined: 7 years ago
Contact:

#32

Post by czirimbolo » 4 years ago

I noticed when I type /myrank (or/rank) I am always 1 of xxxx. Of course I am not TOP1. Every player have this problem. /lvlrank is working good. Cvars are ON. Where is the problem? I dont have any errors. Maybe new level system causing this? I use updated version! ---> viewtopic.php?f=15&t=72&start=120

my code:
  1. #include <zombie_escape>
  2. #include <nvault_util>
  3. #include <ze_levels>
  4.  
  5. // Constants
  6. new const g_szLevelsVault[] = "Levels"
  7. new const g_szRanksVault[]  = "Ranks"
  8.  
  9. // Variables
  10. new g_iLevelsVault, g_iRanksVault
  11.  
  12. // Cvars
  13. new g_pCvarEnableTop, g_pCvarLevelsToShow, g_pCvarEnableRank
  14.  
  15. public plugin_init()
  16. {
  17.     register_plugin("[ZE] Level Top/Rank", "1.1", "Raheem")
  18.    
  19.     // Commands
  20.     register_clcmd("say /top15", "Cmd_Top")
  21.     register_clcmd("say_team /top15", "Cmd_Top")
  22.     register_clcmd("say /rank", "Cmd_Rank")
  23.     register_clcmd("say_team /rank", "Cmd_Rank")
  24.    
  25.     // Cvars
  26.     g_pCvarEnableTop = register_cvar("ze_enable_top_system", "1")
  27.     g_pCvarLevelsToShow = register_cvar("ze_levels_top_number", "10")
  28.     g_pCvarEnableRank = register_cvar("ze_enable_rank_system", "1")
  29. }
  30.  
  31. public Cmd_Top(id)
  32. {
  33.     if (get_pcvar_num(g_pCvarEnableTop) == 0)
  34.         return
  35.    
  36.     // Open the two vaults using UTIL functions
  37.     new iLevelsVault = nvault_util_open(g_szLevelsVault)
  38.     new iRanksVault = nvault_util_open(g_szRanksVault)
  39.    
  40.     // Open Vaults
  41.     g_iLevelsVault = nvault_open(g_szLevelsVault)
  42.     g_iRanksVault = nvault_open(g_szRanksVault)
  43.    
  44.     // Max elements in Levels.vault and Rank.vault (They are same)
  45.     new iTotal = nvault_util_count(iLevelsVault)
  46.    
  47.     new szKeyLevelSteam[32],    // To hold SteamID from Levels.vault
  48.     szDataLevel[64],            // To hold Levels, XP, MaxXP from Levels.vault
  49.     szKeyRankSteam[32],         // To hold SteamID from Ranks.vault
  50.     szDataRank[64]              // To hold Names from Ranks.vault
  51.    
  52.     new Array:g_szMaxXP         // Dynamic Array to hold all MaxXP (szData) from Levels.vault
  53.    
  54.     // Useless Variables
  55.     new szVal[64], iTimeStamp
  56.    
  57.     // Create Our Arrays with proper lengths [As we don't know iTotal Length so we use Dynamic]
  58.     g_szMaxXP = ArrayCreate(70)
  59.    
  60.     // Tries
  61.     new Trie:g_Level_MaxXP,
  62.     Trie:g_XP_MaxXP,
  63.     Trie:g_SteamID_MaxXP,
  64.     Trie:g_Name_SteamID
  65.    
  66.     g_Level_MaxXP = TrieCreate()
  67.     g_XP_MaxXP = TrieCreate()
  68.     g_SteamID_MaxXP = TrieCreate()
  69.     g_Name_SteamID = TrieCreate()
  70.    
  71.     // Some integer counters to be used down
  72.     new i, iPos1 = 0, iPos2 = 0
  73.    
  74.     // Format motd Header
  75.     new szMotd[1501], iLen
  76.    
  77.     iLen = formatex(szMotd, charsmax(szMotd), "<body bgcolor=#000000><font color=#CBA50B><h3><pre>")
  78.     iLen += formatex(szMotd[iLen], charsmax(szMotd) - iLen, "%-3s %-32s %-11s %s^n", "#", "Name", "# Level", "# XP")
  79.    
  80.     // Loop through all elements in our Levels.vault and Rank.vault
  81.     for(i = 0; i < iTotal; i++)
  82.     {
  83.         // Get SteamID from Levels.vault and save to szKey
  84.         iPos1 = nvault_util_read(iLevelsVault, iPos1, szKeyLevelSteam, charsmax(szKeyLevelSteam), szVal, charsmax(szVal), iTimeStamp)
  85.        
  86.         // Get Levels, XP for every SteamID from Levels.vault and save to szData
  87.         nvault_lookup(g_iLevelsVault, szKeyLevelSteam, szDataLevel, charsmax(szDataLevel), iTimeStamp)
  88.        
  89.         // Get SteamID from Ranks.vault and save to szKeyRank
  90.         iPos2 = nvault_util_read(iRanksVault, iPos2, szKeyRankSteam, charsmax(szKeyRankSteam), szVal, charsmax(szVal), iTimeStamp)
  91.        
  92.         // Get Name from Ranks.vault and save to szDataRank
  93.         nvault_lookup(g_iRanksVault, szKeyRankSteam, szDataRank, charsmax(szDataRank), iTimeStamp)
  94.        
  95.         // Spliting szData to Level and XP and Save them
  96.         new szLevel[32], szXP[32], szMaxXP[70]
  97.         parse(szDataLevel, szLevel, charsmax(szLevel), szXP, charsmax(szXP), szMaxXP, charsmax(szMaxXP))
  98.        
  99.         // Add XP+MAXXP+SteamID to be unique for every player
  100.         formatex(szMaxXP, charsmax(szMaxXP), "%i %s", str_to_num(szMaxXP) + str_to_num(szXP), szKeyRankSteam)
  101.        
  102.         // Save MAX-XP As Key, Level as Key Value
  103.         TrieSetCell(g_Level_MaxXP, szMaxXP, str_to_num(szLevel))
  104.        
  105.         // Save MAX-XP As Key, XP as Key Value
  106.         TrieSetCell(g_XP_MaxXP, szMaxXP, str_to_num(szXP))
  107.        
  108.         // Save MAX-XP As Key, SteamID as Value
  109.         TrieSetString(g_SteamID_MaxXP, szMaxXP, szKeyLevelSteam)
  110.        
  111.         // Save SteamID As Key, Name as Value
  112.         TrieSetString(g_Name_SteamID, szKeyRankSteam, szDataRank)
  113.        
  114.         // Save our MaxXP to Dynamic Array
  115.         ArrayPushString(g_szMaxXP, szMaxXP)
  116.     }
  117.    
  118.     // Rank Max-XP + SteamID
  119.     ArraySortEx(g_szMaxXP, "TopSorting")
  120.    
  121.     // Get Top Players Data
  122.     for (i = 0; i < get_pcvar_num(g_pCvarLevelsToShow); i++)
  123.     {
  124.         // MaxXP+SteamID As Key
  125.         new szMaxXP[70]
  126.        
  127.         ArrayGetString(g_szMaxXP, i, szMaxXP, charsmax(szMaxXP))
  128.        
  129.         // Get Level
  130.         new Level; TrieGetCell(g_Level_MaxXP, szMaxXP, Level)
  131.        
  132.         // Get XP
  133.         new XP; TrieGetCell(g_XP_MaxXP, szMaxXP, XP)
  134.        
  135.         // Get SteamID
  136.         new szSteamID[36]; TrieGetString(g_SteamID_MaxXP, szMaxXP, szSteamID, charsmax(szSteamID))
  137.        
  138.         // Get Name
  139.         new szName[32]; TrieGetString(g_Name_SteamID, szSteamID, szName, charsmax(szName))
  140.  
  141.         for (new j = 0; j < charsmax(szName); j++)
  142.         {
  143.             if (is_char_mb(szName[j]) > 0 || szName[j] == '<' || szName[j] == '>')
  144.             {
  145.                 szName[j] = ' '
  146.             }
  147.         }
  148.        
  149.         // Format Player
  150.         iLen += formatex(szMotd[iLen], charsmax(szMotd) - iLen, "%-3d %-32s %-11d %d^n", i + 1, szName, Level, XP)
  151.     }
  152.    
  153.     // Format end of motd
  154.     iLen += formatex(szMotd[iLen], charsmax(szMotd) - iLen, "</body></font></h3></pre>")
  155.    
  156.     // Finally Show motd to the player
  157.     show_motd(id, szMotd, "Levels Rank")
  158.    
  159.     // Free our memory
  160.     ArrayDestroy(g_szMaxXP)
  161.     TrieDestroy(g_Level_MaxXP)
  162.     TrieDestroy(g_XP_MaxXP)
  163.     TrieDestroy(g_SteamID_MaxXP)
  164.     TrieDestroy(g_Name_SteamID)
  165.    
  166.     // Closing UTIL Vaults
  167.     nvault_util_close(iLevelsVault)
  168.     nvault_util_close(iRanksVault)
  169.    
  170.     // Close Vaults
  171.     nvault_close(g_iLevelsVault)
  172.     nvault_close(g_iRanksVault)
  173. }
  174.  
  175. public Cmd_Rank(id)
  176. {
  177.     if (get_pcvar_num(g_pCvarEnableRank) == 0)
  178.         return
  179.    
  180.     // Open Levels vault via UTIL function
  181.     new iLevelsVault = nvault_util_open(g_szLevelsVault)
  182.    
  183.     // Open Vault
  184.     g_iLevelsVault = nvault_open(g_szLevelsVault)
  185.    
  186.     // Max elements in Levels.vault and Rank.vault (They are same)
  187.     new iTotal = nvault_util_count(iLevelsVault)
  188.    
  189.     new szKey[32]// To hold SteamID from Levels.vault
  190.     szData[64]      // To hold Levels, XP from Levels.vault
  191.    
  192.     new Array:iMaxXP    // Dynamic Array to hold all MaxXP (szData) from Levels.vault
  193.    
  194.     // Useless Variables
  195.     new szVal[64], iTimeStamp
  196.    
  197.     // Create Our Arrays with proper lengths [As we don't iTotal Length so we use Dynamic]
  198.     iMaxXP = ArrayCreate(1)
  199.    
  200.     // Some integer counters to be used down
  201.     new i, iPos = 0
  202.    
  203.     // Loop through all elements in our Levels.vault and Rank.vault
  204.     for(i = 0; i < iTotal; i++)
  205.     {
  206.         // Get SteamID from Levels.vault and save to szKey
  207.         iPos = nvault_util_read(iLevelsVault, iPos, szKey, charsmax(szKey), szVal, charsmax(szVal), iTimeStamp)
  208.        
  209.         // Get Levels, XP for every SteamID from Levels.vault and save to szData
  210.         nvault_lookup(g_iLevelsVault, szKey, szData, charsmax(szData), iTimeStamp)
  211.  
  212.         // Spliting szData to Level and XP and Save them
  213.         new szLevel[32], szXP[32], szMaxXP[32]
  214.         parse(szData, szLevel, 31, szXP, 31, szMaxXP, 31)
  215.  
  216.         // Save our MaxXP to Dynamic Array
  217.         ArrayPushCell(iMaxXP, str_to_num(szMaxXP) + str_to_num(szXP))
  218.     }
  219.    
  220.     // Rank Max-XP
  221.     ArraySortEx(iMaxXP, "RankSorting")
  222.    
  223.     // Get Player rank
  224.     new iIndex = 0;
  225.    
  226.     for (i = 0; i < ArraySize(iMaxXP); i++)
  227.     {
  228.         if (ArrayGetCell(iMaxXP, i) == (ze_get_user_max_xp(id) + ze_get_user_xp(id)))
  229.         {
  230.             iIndex = i
  231.             break;
  232.         }
  233.     }
  234.    
  235.     ze_colored_print(id, "!tYour rank is !g%i !tof !g%i!y.", iIndex + 1, iTotal - 1)
  236.    
  237.     // Free our memory
  238.     ArrayDestroy(iMaxXP)
  239.    
  240.     // Closing UTIL Vault
  241.     nvault_util_close(iLevelsVault)
  242.    
  243.     // Close Vaults
  244.     nvault_close(g_iLevelsVault)
  245. }
  246.  
  247. public TopSorting(Array:g_szMaxXP, szItem1[], szItem2[])
  248. {
  249.     // 2D arrays to hold max-xp and steam id for both item1 and item2
  250.     new szMaxXP[2][32], szSteamID[2][36]
  251.    
  252.     // Split item1 to Max-XP and SteamID, same for item 2
  253.     parse(szItem1, szMaxXP[0], 31, szSteamID[0], 36)
  254.     parse(szItem2, szMaxXP[1], 31, szSteamID[1], 36)
  255.    
  256.     // Start ranking
  257.     if (str_to_num(szMaxXP[0]) > str_to_num(szMaxXP[1]))
  258.     {
  259.         return -1
  260.     }
  261.     else if (str_to_num(szMaxXP[0]) < str_to_num(szMaxXP[1]))
  262.     {
  263.         return 1
  264.     }
  265.    
  266.     return 0
  267. }
  268.  
  269. public RankSorting(Array:iMaxXP, iItem1, iItem2)
  270. {
  271.     if (iItem1 > iItem2)
  272.     {
  273.         return -1
  274.     }
  275.     else if (iItem1 < iItem2)
  276.     {
  277.         return 1
  278.     }
  279.    
  280.     return 0
  281. }
Image

czirimbolo
Veteran Member
Veteran Member
Poland
Posts: 598
Joined: 7 years ago
Contact:

#33

Post by czirimbolo » 4 years ago

can someone help here??
Image

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#34

Post by Raheem » 4 years ago

I stopped supporting nVault, and I advise anyone to use MySQL instead. nVault causes a lot of issues compared to MySQL.
He who fails to plan is planning to fail

czirimbolo
Veteran Member
Veteran Member
Poland
Posts: 598
Joined: 7 years ago
Contact:

#35

Post by czirimbolo » 4 years ago

Raheem wrote: 4 years ago I stopped supporting nVault, and I advise anyone to use MySQL instead. nVault causes a lot of issues compared to MySQL.
It was working, but I changed level system and it stoppedg. Using mysql for player's ranking is useless for me. Can you fix this? Or update to mysql if you want? I just want to see my rank when I type /myrank
Image

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#36

Post by Raheem » 4 years ago

But I'm sure when I was using nVault it's working correctly. Try reset levels and make sure you did not edit anything.
He who fails to plan is planning to fail

czirimbolo
Veteran Member
Veteran Member
Poland
Posts: 598
Joined: 7 years ago
Contact:

#37

Post by czirimbolo » 4 years ago

Raheem wrote: 4 years ago But I'm sure when I was using nVault it's working correctly. Try reset levels and make sure you did not edit anything.
Did you see what I posted? Please read it. It was working fine but I udpated my level_system and now I cant check my rank. Its always showing top1 for every player.
Image

czirimbolo
Veteran Member
Veteran Member
Poland
Posts: 598
Joined: 7 years ago
Contact:

#38

Post by czirimbolo » 4 years ago

Raheem wrote: 4 years ago But I'm sure when I was using nVault it's working correctly. Try reset levels and make sure you did not edit anything.
Can you fix it? How long does it take? Its your plugin and its not working as it should be or just trash this thread as unsolved
Image

karan
Mod Tester
Mod Tester
India
Posts: 122
Joined: 6 years ago
Location: India
Contact:

#39

Post by karan » 3 years ago

support for mysql?
Image

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#40

Post by Raheem » 3 years ago

karan wrote: 3 years ago support for mysql?
It can be something like: viewtopic.php?f=7&t=3562
[mention]Mohamed Alaa[/mention] is experienced in web parts, so he can do it.
He who fails to plan is planning to fail

Post Reply

Create an account or sign in to join the discussion

You need to be a member in order to post a reply

Create an account

Not a member? register to join our community
Members can start their own topics & subscribe to topics
It’s free and only takes a minute

Register

Sign in

Who is online

Users browsing this forum: No registered users and 0 guests