Author Topic: Zitro Stats & Ranks 3.1-build_12 (Steam / HWID)  (Read 11301 times)

0 Members and 1 Guest are viewing this topic.

Offline soldat-game

  • Camper
  • ***
  • Posts: 407
Zitro Stats & Ranks 3.1-build_12 (Steam / HWID)
« on: February 09, 2022, 12:08:50 pm »
Script name: Zitro Stats & Ranks
Script description: Successor of ZitroFUN-Heavy. Stats, ranks, mapstats, topmaps, anti fake. Work with all gamemodes. Using steam / HWID to save profile.
Version: 3_1-Steam-build_11
Author: dominikk26
Compile test: Passed
Core version: Steam 2.8.2+
Script language: English
Point system: Formula ELO 45/1+10k-v/1000
Player rate system: Formula (((Accuracy * KD * WinRatio * RoundWinRatio) / 4.14) * Points) / 2
Download: Attachment! Click here (3_1-Steam-build_11) to download the latest version.
READ THAT!
Survival mode has errors in counting points, if you don't have your own patch script use this: Attachment! Click here
(If you are using your system remember to load up earlier than zitrostats.)
Full description:
Statistics are assigned to the players Steam or HWID.
Script is contatybile with all default gamemodes and not only!

Script Featuring:
  • Anty inflation / deflation points system
  • Balance points for inactivity
  • Performance
  • Stats
  • Otherstats
  • Ranks
  • Survival score fix
  • Smart and ultra-efficient
  • Full survival mode compatibility
  • Auto remove old profiles
  • Hud without lags


CommandsParameters   Description
!reginfoNone   List all commands for players and admins if player is admin.
!zitroNone   It displays some information about the author of the script, the script and the number of profiles on the server.
!topNone   Shows the top 15 best players.
!top<num>: The rank position number   It displays the top 15 players with the middle position indicated in the paramatra.
!top<Player ID>: Ingame player ID
<Part name>: Ingame player part name
<name>: Ingame full player name
   It displays the top 15 players with the middle position indicated in the paramatra.
!topmeNone   It displays the top 15 players when the middle of the player list is in the position of the player typing a command.
!topid<Player ID>: Ingame player ID   It displays the top 15 players with the middle position indicated in the paramatra.
!rankNone   It will display your position in the ranking and the number of points.
!rank<Player ID>: Ingame player ID
<Part name>: Ingame player part name
<name>: Ingame full player name
   It will display the position of the selected player in the ranking and the number of points.
!ranknum<num>: Ranking position   It will display who is in the selected position.
!statsNone   Display your basic statistics.
!stats<Player ID>: Ingame player ID
<Part name>: Ingame player part name
<name>: Ingame full player name
   Displays basic statistics indicated player.
!otherstatsNone   Display your other statistics.
!otherstats<Player ID>: Ingame player ID
<Part name>: Ingame player part name
<name>: Ingame full player name
   Displays other statistics indicated player.
!topmapsNone   Shows the top 15 most played maps.
!topmaps<num>: The rank position number   It displays the top 15 maps with the middle position indicated in the paramatra.
!topmaps<Part name>: Map part name
<name>: Full map name
   It displays the top 15 maps with the middle position indicated in the paramatra.
!mapstatsNone   Display current map statistics.
!mapstats<Part name>: Map part name
<name>: Full map name
   Displays statistics indicated map.
/hudNone   Toggles hud display.
/statusNone   It displays some interesting information about you and how many days of point protection are left.
/status<Player ID>: Ingame player ID
<Part name>: Ingame player part name
<name>: Ingame full player name
   It displays some interesting information about indicated player and how many days of point protection are left.

Admins commandsParameters   Description
/statusaNone or
<player id>: Ingame player ID
<part name>: Ingame player part name
<name>: Ingame full player name
   It works as a normal status but will also count all possible multi accounts according to different criteria.
/privacy<name|steam|hwid|ip>: A required parameter that defines what data to display
<id_up|id_down|count_up|count_down|time_up|time_down|latest_up|latest_down|first_up|first_down>: Not required, default is count_up
<player_id, part_name, full_name>: Not required if you want to view your list
   Lists all the hwid steamid and ip nicks that the player has successfully logged in with. You can get a description of the sort by entering the command without parameters.
/page<page number>Privacy list page number   Shows the indicated page from the privacy list.
/nextNone   Shows the next page from the privacy list.
/lastNone   Shows the previous page from the privacy list.
/resetallplayersstatsNone   Restarts all players statistics. Requires approval /yes.
/resetallmapsstatsNone   Restarts all maps statistics. Requires approval /yes.
/backupcreate<name>: Backup file name   Creates a backup file in the bakup folder with the given name. Requires approval /yes.
/restorebackup<name>: Backup file name   Restores a backup from the selected file. Requires approval /yes.
/removeolderthan<RRRR-MM-DD> | <DD-MM-RRRR>    Deletes all accounts older than the specified date. Separate the numbers can using ./\- or space. Requires approval /yes, in the query it shows how many accounts are to be deleted.
/yesNone   Confirms the performed operation.
/noNone   Rejects the performed operation.
/search<part name>: Players part name   If you are looking for a player name, this command will be helpful.
/checkp<name|steam|hwid|ip|all>: Not required, default all. What type of data to use for the search.
<first|last>: Not required, default is all. What player data to use for the search, from last login or first login If you do not provide a value, the data will search all available data.
<true|false>: Not required, default is false. Limiting the number of searches.
<player id, part name, full name>: Required, player id player part name or full name. This parameter must always be at the end of the command
   Looks for multi-accounts of the indicated player using the specified criteria. Parameters that are not required do not have to be given and their order does not have to be followed.
/checkd<name|steam|hwid|ip>: Required, indicates what data you will enter
<first|last|all>: Not required, default is all.
<true|false>: Not required, default is false. Used when the search type is set to name or ip, when true the search will use compare, so you can search in the ip range. When "name" or "ip" it is always read first, ie on the left.
<true|false>: Not required, default is false. Limiting the number of searches.
<data>: Required, depending on the first parameter, the relevant data associated with it. This parameter must always be at the end of the command.
   Searches for multi-accounts using the entered data. Parameters that are not required do not have to be given and their order does not have to be followed. If the data type is "name" or "ip", the compare parameter is always read as the leftmost parameter.
« Last Edit: December 03, 2023, 06:53:35 am by soldat-game »

Offline FliesLikeABrick

  • Administrator
  • Flamebow Warrior
  • *****
  • Posts: 6144
    • Ultimate 13 Soldat
Re: Zitro Stats & Ranks 3.0 (Steam / HWID)
« Reply #1 on: March 01, 2022, 09:18:53 pm »
Awesome, thank you for your contribution!

Offline Ratman

  • Major(1)
  • Posts: 34
Re: Zitro Stats & Ranks 3.1 (Steam / HWID)
« Reply #2 on: November 22, 2022, 11:39:47 pm »
I'll give this a test run on an active server, I remember our biggest issue with the last release (ZF 2) was constant lag spikes when a large number of profiles were created.

Offline soldat-game

  • Camper
  • ***
  • Posts: 407
Re: Zitro Stats & Ranks 3.1 (Steam / HWID)
« Reply #3 on: November 25, 2022, 08:42:20 am »
3_1-Steam-build_9
 - Fix one time error when script start, causing the first registered profile to be duplicated.
 - Fix for linux dll.

Other from 3_1-Steam-build_8:
I recommend using my version that I've been using for several months on the server. I don't remember what changes, use https://text-compare.com/ to see changes. But add command
/searchid <last|all [not required, default all]> <partname|fullname>
/privacyid <name|steam|hwid|ip> <sort|not required> <index_ID>

By players changing the name to single letters or unrelated. They may have escaped the eye of administrators who want to check their profile.
This command allows you to list all profiles in which hwid or ip fragment was found, and it will display assigned ID, the ID assigned to the account is permanent can save it.
And then use privacyid to use it how regular privacy, except that now you are 100% watching the profile you want to follow.
« Last Edit: November 25, 2022, 08:44:17 am by soldat-game »

Offline soldat-game

  • Camper
  • ***
  • Posts: 407
Re: Zitro Stats & Ranks 3.1-build_10 (Steam / HWID)
« Reply #4 on: December 23, 2022, 08:00:20 am »
Update build 10:
- Fix bug when non steam players saw only yourself in !top

Offline soldat-game

  • Camper
  • ***
  • Posts: 407
Re: Zitro Stats & Ranks 3.1-build_11 (Steam / HWID)
« Reply #5 on: January 31, 2023, 05:50:01 pm »
Update build 11:
- Fixed bug when player changed steam account to another. Which is why it didn't display the "<--- You" indicator.
- Removed var which was used but did nothing.

Offline SneS

  • Soldier
  • **
  • Posts: 112
Re: Zitro Stats & Ranks 3.1-build_11 (Steam / HWID)
« Reply #6 on: February 17, 2023, 06:01:54 am »
Dude, really? Soldat is dead and nobody plays this game :| I have a lot of respect for your work but it's pointless.

Offline soldat-game

  • Camper
  • ***
  • Posts: 407
Re: Zitro Stats & Ranks 3.1-build_11 (Steam / HWID)
« Reply #7 on: February 18, 2023, 10:51:48 am »
The funny thing is that you say that when the script is already used on several servers :)

Offline You Got Served!

  • Major(1)
  • Posts: 43
Re: Zitro Stats & Ranks 3.1-build_11 (Steam / HWID)
« Reply #8 on: March 05, 2023, 09:17:22 am »
Dominikkk, I am always inspired to see your tireless passion & dedication to the development of this great game. If only we saw that same level of commitment from the actual dev team.

Your work has helped many & enriched the community 🍻

Offline soldat-game

  • Camper
  • ***
  • Posts: 407
Re: Zitro Stats & Ranks 3.1-build_11 (Steam / HWID)
« Reply #9 on: December 03, 2023, 06:50:45 am »
To fix bug random script crashing when a player joins the game.
Code: (find function) [Select]
procedure Reg_Steam_ID(ID: byte);
Code: (replace to) [Select]
procedure Reg_Steam_ID(ID: byte);
var i, Steam_Index_ID, Temp_Length: int64;
begin
Steam_Index_ID := -1; Temp_Length := Length(Memory.Data)-1;
for i := 0 to Temp_Length do begin
if Memory.Data[i].Active_Steam = Players[ID].SteamIDString then if Steam_Index_ID = -1 then begin
Steam_Index_ID := i;
break;
end;
end;
if Steam_Index_ID <> -1 then begin
Player_Info[ID].Steam_Control.New_Account_Index_ID := Player_Info[ID].Last_Index;
Player_Info[ID].Steam_Control.Steam_Auth_Time_Left := 0; Player_Info[ID].Last_Index := Steam_Index_ID;
Check_New_Devices(Players[ID], false); Swap_Active_Data(Players[ID], Steam_Index_ID);
Players[ID].WriteConsole(' ',GOOD); Players[ID].WriteConsole(' ',GOOD); Players[ID].WriteConsole(' ',GOOD);
Players[ID].WriteConsole(Center('Welcome back '+Players[ID].Name+' (Steam ID: '+Players[ID].SteamIDString+')', Center_Message_Pos), GOOD);
//Remove new account if create for hwid
if Player_Info[ID].Steam_Control.Is_New_Account then begin
for i := Player_Info[ID].Steam_Control.New_Account_Index_ID+1 to Temp_Length do Memory.Data[i-1] := Memory.Data[i];
SetLength(Memory.Data, Temp_Length);
Rank_List.Delete(Player_Info[ID].Steam_Control.New_Account_Index_ID);
end;
exit;
end else
begin
if (Memory.Data[Player_Info[ID].Last_Index].Other_STEAMs[0].Data_String = nil) and (not Memory.Data[Player_Info[ID].Last_Index].Other_STEAMs[0].Is_Active) then begin
Player_Info[ID].Other_Data_Actual_ID[2] := 0;
Memory.Data[Player_Info[ID].Last_Index].Active_Steam := Players[ID].SteamIDString;

Memory.Data[Player_Info[ID].Last_Index].Other_STEAMs[0].Data_String := Players[ID].SteamIDString;
Memory.Data[Player_Info[ID].Last_Index].Other_STEAMs[0].Is_Active := true;
Memory.Data[Player_Info[ID].Last_Index].Other_STEAMs[0].First_Used := false;
Memory.Data[Player_Info[ID].Last_Index].Other_STEAMs[0].Last_Used := true;
Memory.Data[Player_Info[ID].Last_Index].Other_STEAMs[0].Login_Count := 0;
Memory.Data[Player_Info[ID].Last_Index].Other_STEAMs[0].Time_On_Spectator := 0;
Memory.Data[Player_Info[ID].Last_Index].Other_STEAMs[0].Time_Played := 0;
Memory.Data[Player_Info[ID].Last_Index].Other_STEAMs[0].First_Used_Date := now();
Memory.Data[Player_Info[ID].Last_Index].Other_STEAMs[0].Last_Used_Date := now();

Player_Info[ID].Steam_Control.Steam_Auth_Time_Left := 0;

if Player_Info[ID].Steam_Control.Is_New_Account then begin
Player_Info[ID].Steam_Control.Is_New_Account := false;
Players[ID].WriteConsole(' ',GOODInfo); Players[ID].WriteConsole(' ',GOODInfo);
Players[ID].WriteConsole(Center('Your stats will be stored for your steam ID! (Steam ID: '+Players[ID].SteamIDString+')', Center_Message_Pos), GOOD)
end else
begin
Players[ID].WriteConsole(' ',GOODInfo); Players[ID].WriteConsole(' ',GOODInfo);
Players[ID].WriteConsole(Center('We detect your new steam ID we saved it, that you can login automatically in the future.', Center_Message_Pos), GOODInfo);
Players[ID].WriteConsole(Center('Welcome back '+Players[ID].Name+' (Steam ID: '+Players[ID].SteamIDString+')', Center_Message_Pos), GOOD);
end;
end;
end;
end;

What be fixed:



If you don't want to modify the code and you have a vanilla version that you haven't modified, you can use the attachment.