Author Topic: ZitroFUN 2.0 Beta Release  (Read 283 times)

0 Members and 1 Guest are viewing this topic.

Offline soldat-game

  • Soldier
  • **
  • Posts: 240
  • GG: 10210041
ZitroFUN 2.0 Beta Release
« on: June 02, 2017, 02:44:26 pm »
Script Name: ZitroFUN 2.0
Script Description: Registration + Stats + Rank + Balance + Other Features.
Version: 1.9.4 Beta
Author: dominikkk26
Compile Test: Passed
Core Version: 2.8.1+
Script Language: English
Point System: Formula ELO 75/1+10k-v/1000
Player Rate System: Click to see code Formula ((((Accuracy% * (Kills-Teamkills/Death) * (Win/Lose) * Precision) / TT)*Points)/Rank Count)
Download: Attachment! Click here to download the latest version.
Code script: Click to view
Full Description:
Now work on ctf mode All features already added.
Commands:

« Last Edit: June 15, 2017, 12:18:43 pm by soldat-game »

Offline soldat-game

  • Soldier
  • **
  • Posts: 240
  • GG: 10210041
Re: ZitroFUN 2.0 Beta Release
« Reply #1 on: June 15, 2017, 12:23:46 pm »
ZitroFUN 2.0 v1.9.4:
https://forums.soldat.pl/index.php?action=dlattach;topic=44929.0;attach=33060
BIG UPDATE!
- Improved all efficiency!
- All features of the heavy version already work, except for map and server statistics.
- Now work !top !top <num> !top <name>
- New search system now search (From the player's name with the smallest number of characters)
- New commands
I do not want to write all this..
The balance system also has a balance function like the CUBE BALANCE SCRIPT. And !hardbal hardbalance Arrange the team in such a way that the total sum of points of players from both droshoes is as close as possible. Config script open new 1.pas and edit start everything is described.
Only dont work converter old account to new, this will be done only I do not want.
Plese use this version on your servers!
and.. Write me if you want to add map weapons and server statystic. Because plans to add only converter old account to new system account. Plese test and report bugs.
The script will automatically restart during the error.
« Last Edit: June 15, 2017, 12:28:46 pm by soldat-game »

Offline nuclearrambo

  • Major
  • *
  • Posts: 75
Re: ZitroFUN 2.0 Beta Release
« Reply #2 on: June 17, 2017, 06:45:48 am »
Anyway we could know the account file format? I am trying to build a simple web interface for the players to view stats.

Offline soldat-game

  • Soldier
  • **
  • Posts: 240
  • GG: 10210041
Re: ZitroFUN 2.0 Beta Release
« Reply #3 on: June 17, 2017, 08:56:40 am »
Open accounts.db and find player profile line Search %name%+Player NAME if find this line = player profile start line. Example profile data:
Code: [Select]
%name%testowy gosc
testtesttesttesttesttesttest
CFF1F4FEC95%ip%127.0.0.1
789
06 czerwiec 2017 at: 16:56:22%lp%15 czerwiec 2017 at: 18:57:40
0%first%1%autologin%hwid%mail%dominikk262@wp.pl
497%k%243%d%18%s%0%t%0%dt%12%p%22%a%122%r%19%z%17%w%81
54%fg%43%fr%8%fs%31%fd%0%ac%8%bc%0%ir%0%ib%0%hr%0%ft%2
7%w%3%l%10%r%2%aw%0%al%5%bw%3%bl%0%cw%0%cl%0%dw%0
9924%s%3547%sh%0
How read accounts.db:
Code: [Select]
If u find player name line save num line and next can read.
Num is 0. Num is numer of line.
'name' : Num After %name%
'password' : Num+1 Read line only type MD5.
'hwid' : Num+2 Before %ip%
'ip' : Num+2 After %ip%
'points' : Num+3 Read line only type numer.
'registerdate' : Num+4 Before %lp%
'lastplay' : Num+4 After %lp%
'switchdisplay' : Num+5 Before %first% 1 - off 0 - on
'firstuse' : Num+5 After %first% but before %autologin% 1 - use 0 - dont use
'autologin' : Num+5 After %autologin% but before %mail% - can be: hwid, ip, name, off
'mail' : Num+5 After %mail%
'kills' : Num+6 Before %k%
'deaths' : Num+6 After %k% but before %d%
'selfkills' : Num+6 After %d% but before %s%
'teamkills' : Num+6 After %s% but before %t%
'deathsbyteam' : Num+6 After %t% but before %dt%
'postromuskill' : Num+6 After %dt% but before %p%
'assist' : Num+6 After %p% but before %a%
'revengekills' : Num+6 After %a% but before %r%
'avenger' : Num+6 After %r% but before %z%
'savior' : Num+6 After %z% but before %w%
'flagerkills' : Num+6 After %w%
'flaggrab' : Num+7 Before %fg%
'flagreturn' : Num+7 After %fg% but before %fr%
'flagscore' : Num+7 After %fr% but before %fs%
'flagdrop' : Num+7 After %fs% but before %fd%
'alphacaps' : Num+7 After %fd% but before %ac%
'bravocaps' : Num+7 After %ac% but before %bc%
'inf_red' : Num+7 After %bc% but before %ir%
'inf_blue' : Num+7 After %ir% but before %ib%
'htf_red' : Num+7 After %ib% but before %hr%
'htf_blue' : Num+7 After %hr% but before %ft%
'flagthrown' : Num+7 After %ft%
'wins' : Num+8 Before %w%
'lose' : Num+8 After %w% but before %l%
'draws' : Num+8 After %l% but before %r%
'alphawins' : Num+8 After %r% but before %aw%
'alphalose' : Num+8 After %aw% but before %al%
'bravowins' : Num+8 After %al% but before %bw%
'bravolose' : Num+8 After %bw% but before %bl%
'charliewin' : Num+8 After %bl% but before %cw%
'charlielose' : Num+8 After %cw% but before %cl%
'deltawin' : Num+8 After %cl% but before %dw%
'deltalose' : Num+8 After %dw%
'shoots' : Num+9 Before %s%
'shoothits' : Num+9 After %s% but before %sh%
'shootfriendly' : Num+9 After: %sh%
Or if u know how work getpiece(), see function readplayer; (wybawiel=savior, remis = draws):
Code: [Select]
function ReadPlayer(Num:int64;What:string):string;
begin
Result:='null';
What:=lowercase(what);
case What of
'name' : Result:=GetPiece(Memory[Num],'%name%',1);
'password' : Result:=Memory[Num+1];
'hwid' : Result:=GetPiece(Memory[Num+2],'%ip%',0);
'ip' : Result:=GetPiece(Memory[Num+2],'%ip%',1);
'points' : Result:=Memory[Num+3];
'registerdate' : Result:=GetPiece(Memory[Num+4],'%lp%',0);
'lastplay' : Result:=GetPiece(Memory[Num+4],'%lp%',1);
'bigtext' : Result:=GetPiece(Memory[Num+5],'%first%',0);
'firstuse' : Result:=GetPiece(GetPiece(Memory[Num+5],'%first%',1),'%autologin%',0);
'autologin' : Result:=GetPiece(GetPiece(Memory[Num+5],'%autologin%',1),'%mail%',0);
'mail' : Result:=GetPiece(Memory[Num+5],'%mail%',1);
'kills' : Result:=GetPiece(Memory[Num+6],'%k%',0);
'deaths' : Result:=GetPiece(GetPiece(Memory[Num+6],'%k%',1),'%d%',0);
'selfkills' : Result:=GetPiece(GetPiece(Memory[Num+6],'%d%',1),'%s%',0);
'teamkills' : Result:=GetPiece(GetPiece(Memory[Num+6],'%s%',1),'%t%',0);
'deathsbyteam' : Result:=GetPiece(GetPiece(Memory[Num+6],'%t%',1),'%dt%',0);
'postromuskill' : Result:=GetPiece(GetPiece(Memory[Num+6],'%dt%',1),'%p%',0);
'assist' : Result:=GetPiece(GetPiece(Memory[Num+6],'%p%',1),'%a%',0);
'revengekills' : Result:=GetPiece(GetPiece(Memory[Num+6],'%a%',1),'%r%',0);
'avenger' : Result:=GetPiece(GetPiece(Memory[Num+6],'%r%',1),'%z%',0);
'wybawiel' : Result:=GetPiece(GetPiece(Memory[Num+6],'%z%',1),'%w%',0);
'flagerkills' : Result:=GetPiece(Memory[Num+6],'%w%',1);
'flaggrab' : Result:=GetPiece(Memory[Num+7],'%fg%',0);
'flagreturn' : Result:=GetPiece(GetPiece(Memory[Num+7],'%fg%',1),'%fr%',0);
'flagscore' : Result:=GetPiece(GetPiece(Memory[Num+7],'%fr%',1),'%fs%',0);
'flagdrop' : Result:=GetPiece(GetPiece(Memory[Num+7],'%fs%',1),'%fd%',0);
'alphacaps' : Result:=GetPiece(GetPiece(Memory[Num+7],'%fd%',1),'%ac%',0);
'bravocaps' : Result:=GetPiece(GetPiece(Memory[Num+7],'%ac%',1),'%bc%',0);
'inf_red' : Result:=GetPiece(GetPiece(Memory[Num+7],'%bc%',1),'%ir%',0);
'inf_blue' : Result:=GetPiece(GetPiece(Memory[Num+7],'%ir%',1),'%ib%',0);
'htf_red' : Result:=GetPiece(GetPiece(Memory[Num+7],'%ib%',1),'%hr%',0);
'htf_blue' : Result:=GetPiece(GetPiece(Memory[Num+7],'%hr%',1),'%ft%',0);
'flagthrown' : Result:=GetPiece(Memory[Num+7],'%ft%',1);
'wins' : Result:=GetPiece(Memory[Num+8],'%w%',0);
'lose' : Result:=GetPiece(GetPiece(Memory[Num+8],'%w%',1),'%l%',0);
'remis' : Result:=GetPiece(GetPiece(Memory[Num+8],'%l%',1),'%r%',0);
'alphawins' : Result:=GetPiece(GetPiece(Memory[Num+8],'%r%',1),'%aw%',0);
'alphalose' : Result:=GetPiece(GetPiece(Memory[Num+8],'%aw%',1),'%al%',0);
'bravowins' : Result:=GetPiece(GetPiece(Memory[Num+8],'%al%',1),'%bw%',0);
'bravolose' : Result:=GetPiece(GetPiece(Memory[Num+8],'%bw%',1),'%bl%',0);
'charliewin' : Result:=GetPiece(GetPiece(Memory[Num+8],'%bl%',1),'%cw%',0);
'charlielose' : Result:=GetPiece(GetPiece(Memory[Num+8],'%cw%',1),'%cl%',0);
'deltawin' : Result:=GetPiece(GetPiece(Memory[Num+8],'%cl%',1),'%dw%',0);
'deltalose' : Result:=GetPiece(Memory[Num+8],'%dw%',1);
'shoots' : Result:=GetPiece(Memory[Num+9],'%s%',0);
'shoothits' : Result:=GetPiece(GetPiece(Memory[Num+9],'%s%',1),'%sh%',0);
'shootfriendly' : Result:=GetPiece(Memory[Num+9],'%sh%',1);
end;
end;

If u know how work getpiece, you will be able to see which part of the data belongs to some kind of statistics. All in all, a cool idea could even be to make that a registered account with the added e-mail is registering an account on a forum.

Offline nuclearrambo

  • Major
  • *
  • Posts: 75
Re: ZitroFUN 2.0 Beta Release
« Reply #4 on: June 17, 2017, 12:46:13 pm »
Thanks, I will try to wrap my head around it and get something working soon.

Offline soldat-game

  • Soldier
  • **
  • Posts: 240
  • GG: 10210041
Re: ZitroFUN 2.0 Beta Release
« Reply #5 on: June 22, 2017, 02:17:09 pm »
The next update will bring:
- Granade throw detect and taken into account for the calculation of accuracy.
- Add missing commands in !reginfo
- Create autobackup if admin generate new player password or if admin delete player account. (This will allow you to safely use these commands using the nick search)
- Add autobackup if admin restart all players stats.
- Add !serverstats
- Add mising !teampoints command
- Add !weapstats and !weapstats <name*>