Official Soldat Forums

Server Talk => Scripting Releases => Topic started by: CurryWurst on December 25, 2008, 05:13:01 pm

Title: LogInSystem v1.5
Post by: CurryWurst on December 25, 2008, 05:13:01 pm
Script Name: LogInSystem
Script Description: Database-driven account manager. Stores individual stats for every registered-player.
Original Author(s): CurryWurst (http://forums.soldat.pl/index.php?action=profile;u=10539)
Core Version:  2.6.5
Compile Test: Passed
License: Creative Commons (http://creativecommons.org/licenses/by-nc-sa/3.0/)



::Features::


::In-game commands::
/create> create a new account
/login> to log in to an existing account
/logout> to log out of your existing account
/delete> delete an existing account
/change <password>> change your account password
/stats [accountname]> to view your/others profile & stats
/rankings [number]> list all players in highest ranking order
/help> to see all commands listed above


::Installation::
1. Download the ZIP archive from here (http://reauq.com/misc/soldat/scripts/LogInSystem+v1.5.1.zip)
2. Extract the content of the ZIP to your dedicated server root
3. Move the folder LogInSystem to your ./scripts/ directory
(4.) Set your directory permissions of loginsystem_data to 755 if you run the script on linux
5. Have a look at the config file and modify it according to your wishes
6. Start your server ...
7. Enjoy! :D


::Usage of Backup System::
It's particularly important that you know how to deal with the
backup function properly, in order to avoid possible data loss.
Hence, have a brief look at the following table:

PeriodExampleResult
neverBackupFreq=No backup will ever be created
dailyBackFreq=dailyNew backup will be created once a day
weeklyBackupFreq=weekly Friday  Every Friday all user accounts will be saved
monthlyBackupFreq=monthly 01On the first day of every month a new backup will be created

Note: If you intend to create a new backup weekly keep in mind
that weekdays have to be written in the language of the OS
which the server runs on.


::Subadminlogin::
Sub-admin rights will be automatically granted to appropriate accounts when the
player logs in.

You can add a new sub-admin while you're logged in as sub-admin by
typing: /subadmin <accountname>


::Customizing Your own Stats::
1. Overview:
First of all make yourself familiar with the following
pascal type:

type TStatistic = record
       Alias: string;
       IsVisible: boolean;
       Checksum: string;
       SValue: string;
       IgnoreBots: boolean;
       ShowSession: boolean;
     end;

It may look like this, for example:

[MyStat]
1
\d+
0
1
true

2. Summary:
AliasStatistic name
IsVisibleIs stat visible for user?
ChecksumDepending on whether your stat typifies an integer or string value create an appropriate checksum
SValueDefault value, used by account creation process
IgnoreBotsRegulates the influence of bots on gameplay stats
ShowSessionIs stat session displayed?

The checksum is based on regular expressions (abbr.: regex),
a guide can be found here (http://en.wikipedia.org/wiki/Regex).

Note: If you have understood my instructions so far go on reading.
If not, leave me a message with your question(s) below.

3. Implementation:
  a) Think about a suitable statistic name (alias)
  b) Open /loginsystem_data/localization/language.txt and append your statistic name at the end of each language passage
  c) Open /loginsystem_data/stats/costum.txt and create an entirely new section for your stat according to step 1.

4. Getting Started:
Your statistic is now ready to be used in the script,
here we go ...
   
Choose an event at which the statistic will be updated, for instance:
Code: [Select]
OnPlayerKill(Killer, Victim: byte; Weapon: string);
begin
end;
When you have picked an event, update the stat by utilizing one of the following
functions:
_UpdateColumn()> updates a stat representing an integer value by increasing its old value by a new value
_SetColumn()> updates a stat representing a string value by replacing its old value with a new one

Code: [Select]
function _UpdateColumn(Row, Column, Increase: integer): string;
var
  pos: integer;
  data: string;
begin
  if (_RowExists(Row)) then
  begin
    pos:= _getColumnInfo(Row, Column);
    if (pos > 0) then
    begin
      data:= GetPiece(Database[Row], #9, Column);
      if (RegExpMatch('^-?\d+$', data)) then
      begin
        result:= IntToStr(StrToInt(data) + Increase);
        Delete(Database[Row], pos, length(data));
        Insert(result, Database[Row], pos);
      end;
    end;
  end else
  begin
    OnErrorOccur('_UpdateColumn(): row does not exist', true);
  end;
end;

function _SetColumn(Row, Column: integer; Value: string): boolean;
var
  pos: integer;
  data: string;
begin
  if (_RowExists(Row)) then
  begin
    pos:= _getColumnInfo(Row, Column);
    if (pos > 0) then
    begin
      data:= GetPiece(Database[Row], #9, Column);
      Delete(Database[Row], pos, length(data));
      Insert(Value, Database[Row], pos);
      result:= true;
    end;
  end else
  begin
    OnErrorOccur('_SetColumn(): row does not exist', true);
  end;
end;

I don't think it's plain to see how both functions work.
Therefore, in case you're dealing with them, I listed a few points
about the arguments...

Row: Defines the account which will be updated. For both functions the account number (Account[ID]) needs to be passed on.
Column: Statistic element which will be changed. For both functions it's necessary to pass on the statistic number.

Increase: Value the statistic will be increased by.
Value: String the statistic value will be replaced with.

Here's an overview of the statistic numbers:
Code: [Select]
_______________________________
|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
 \\\\\.:: Statistics ::.\\\\\\\\\\
 /////////////////////////////////
|// - 0  - Nickname           ///
|// - 1  - Password          ///
|// - 2  - Language         ///
|// - 3  - Server Rights   ///
|// - 4  - Last Used IP   ///
|// - 5  - Last Login    ///
|// - 6  - Visits       ///
|// - 7  - Time Played ///
|== - 8  - Kills       (O)
|\\ - 9  - Deaths      \\\
|\\ - 10 - Selfkills    \\\
|\\ - 11 - Flag Captures \\\
|\\ - 12 - Flag Returns   \\\
|\\ - 13 - Scores          \\\
|\\ - 14 - Damage Dealt     \\\
|\\ - 15 - Double Kills      \\\
|\\ - 16 - Rank               \\\
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
 //////.:: Statistics ::./////////
|////////////////////////////////

5. Final stage:
To sum it up, you can realize a statistic implementation by
putting all things together:

Code: [Select]
OnPlayerKill(Killer, Victim: byte; Weapon: string);
begin
  _UpdateKey(Account[Killer], 17, 1);
  Inc(Session[Killer][11], 1);
end;

Note: By the way don't forget to update the session data
of the stat by increasing its integer value.

Perhaps it looks difficult to create your own stat, when you view this
guide your first time, but practice makes perfect ;)

On that note, have fun creating your own stats!



::Future intentions::


::Credits to::
- KeYDoN for inspiring me to start programming soldat scripts and for his helpful support
- Indi for giving me a lot of inspiration for new ideas
- EnEsCe for his amazing script core & scripting manual
- xmRipper for translating LogInSystem into Turkish, as well as for his server support
- DorkeyDear for creating the script 'Number of Visits' - the foundation for LogInSystem
- " & danmer - for their function MD5()
- Avarax for his function FillWith()
- Gizdfor his code Double, Triple, Multi... Kills
- homerofgods for his fancy statistic ideas :p
- all translators , which helped me to internationalize this script :)



By the way ....
Happy Soldat 1.6.0rc1! [retard]


(http://reauq.com/misc/soldat/sf/buynow.gif) (http://reauq.com/misc/soldat/scripts/LogInSystem+v1.5.1.zip)

EnEsCe server customers please download this script (http://reauq.com/misc/soldat/scripts/LogInSystem_EnEsCe+v1.51.zip).
Title: Re: LogInSystem
Post by: Mr on December 25, 2008, 05:45:15 pm
Nice release! Keep it up, awaiting the top-list feature :)

SQLite support for the Soldatserver would be something awesome... EnEsCe? :D
Title: Re: LogInSystem
Post by: homerofgods on December 25, 2008, 06:02:33 pm
You didn't have to include me to credits  :P  good work, really nice.
If soldat will have an official stats for soldat, this should really help that too.
merry Xmas!
will deffenetly try it out
Title: Re: LogInSystem
Post by: DorkeyDear on December 25, 2008, 07:25:38 pm
Hurrrraaa! Good job! Just by the looks of the topic I can just tell that its shiny :P
Title: Re: LogInSystem
Post by: Leo on December 26, 2008, 04:24:29 am
Nice work but..this and all other scripts miss a basic element. "Ranks": "me" comparing to "everyone else", 2000 players ranked I am number 28 of 2000 (just an example) ;)
Title: Re: LogInSystem
Post by: y0uRd34th on December 26, 2008, 05:07:16 am
Good work :) I add this my Server :D Oo Love it^^
Title: Re: LogInSystem
Post by: CurryWurst on December 26, 2008, 05:33:42 am
First of all, I'm really happy about the fact that you like my script :)
It's a great incentive for me to keep this script up.

@Mr:
The top-list feature is already coded, but still to buggy to publish

@homerofgods:
Just because of your creative ideas, btw one of your idea is implemented :D

@Leo:
Huh, have a look at line 1088 in the code - WriteConsole(i, 'Your Ranking: ' + IntToStr(Rank) + '. out of ' + IntToStr(Accounts), $23DBDB);  :P

@y0uRd34th :
Thank you. Perhaps I could create list with all supported servers.
Leave me your server name, ip and port  [pigtail]
Title: Re: LogInSystem
Post by: Tycho on December 29, 2008, 09:15:13 pm
Hey, i really like the idea of this script.

Is it possible to use it with multiple soldat servers?
I tried to run the login-system folder at one place and distribute it via symlink to the testservers...

Are there any problems when person 1 is registering on server 1 and person 2 does the registration at the same time on server 2?

I would like the login system to check new players against the database, so if the user isn't registered after 30 seconds he is kicked.

Tycho
Title: Re: LogInSystem
Post by: CurryWurst on December 30, 2008, 05:45:33 pm
Is it possible to use it with multiple soldat servers?

Hmm I don't think this would work. But I thought about your question and I have the following idea:

I'm going to create a statistic calling LoggedIn, which specifies whether a user is logged in or not. This statistic will be updated and saved in the database when a user logs out or logs in. Hence, you can make use of symlink to synchronize the database between multiple servers and check whether a user is already registered, as well as whether he is logged in or not. This update procedure will avoid certain database conflicts you mentioned above and allows you to share one database with multiple server ;)
Title: Re: LogInSystem
Post by: Tycho on December 31, 2008, 06:39:22 am
sounds good.

we have 8 publics right now, and i dont want the gamer to register on every server seperatly :D
Title: Re: LogInSystem
Post by: CurryWurst on December 31, 2008, 08:56:50 am
I would like the login system to check new players against the database, so if the user isn't registered after 30 seconds he is kicked.

Open your config.ini and set the value of the key PrivatFunction to true ;)

we have 8 publics right now, and i dont want the gamer to register on every server seperatly :D

I'll will append this feature when I'm back from England, probably next week monday.
Title: Re: LogInSystem
Post by: Tycho on December 31, 2008, 09:38:42 am
I would like the login system to check new players against the database, so if the user isn't registered after 30 seconds he is kicked.

Open your config.ini and set the value of the key PrivatFunction to true ;)
Ah nice! havent seen that jet :)

we have 8 publics right now, and i dont want the gamer to register on every server seperatly :D
I'll will append this feature when I'm back from England, probably next week monday.
ok, i am looking forward for that :)
Title: Re: LogInSystem
Post by: CiGaReD on February 02, 2009, 02:35:54 am
Forgive a few problems have happened to me forgive if my Englishman is not so good but a translator uses already q I am a good Chilean
What happens is q on having put the command/create says that first I must select a language of the following way/language I <number> and put/language 1 which serious Englishman and nothing happens(passes) not which podria to be the problem
Good of before hands thank you for any help

sorry for my inglish XD  :P
Title: Re: LogInSystem
Post by: CurryWurst on February 02, 2009, 12:58:45 pm
Hope you entered the command in the soldat commandline. If not, try again by opening the commandline with shift + 7 ;)
In case you entered some non-language cmds such as /kill, /stats, /info etc. right after entering /create the menu will start from the beginning.
Title: Re: LogInSystem
Post by: CiGaReD on February 02, 2009, 04:13:37 pm
Hope you entered the command in the soldat commandline. If not, try again by opening the commandline with shift + 7 ;)
In case you entered some non-language cmds such as /kill, /stats, /info etc. right after entering /create the menu will start from the beginning.

I try it to do and in the console of the server this goes out for me when I raise the servant

notice LogInSystem: _CostumStats<>: File "costum.txt2 does not exist


And on having put this goes out for me in console
Title: Re: LogInSystem
Post by: CurryWurst on February 02, 2009, 04:24:32 pm
Thanks for posting your console message, that really helped me to identify your problem ...

It's plain to see that you forgot to insert the 'login-system' folder.
Download this folder here (http://dualcorepower.du.funpic.de/login-system.zip) and extract it to the root of your soldatserver.
Start your server again and enjoy what will happen ;D

If you having still issues drop me some lines ;)


Markus
Title: Re: LogInSystem
Post by: CiGaReD on February 02, 2009, 04:37:41 pm
mmm see http://s1.subirimagenes.com/otros/1926570script.jpg

Nothing happens(passes) and this way this one
Title: Re: LogInSystem
Post by: CiGaReD on February 02, 2009, 04:40:41 pm
Forgive decisive(resolved) problem anklebone extracting badly the folder thank you for the help it(he,she) will try to reach adding the Spanish
Title: Re: LogInSystem
Post by: zop on February 02, 2009, 07:21:48 pm
Cool ! Thanks for release.
Title: Re: LogInSystem
Post by: Mittsu on March 20, 2009, 03:13:27 am
im really hoping to have this script on my server, but it just won't work...

server informs me that:
"|> Notice LogInSystem: _CostumStats(): file "costum.txt" does not exist"

while everything seems to be fine:
(http://img6.imageshack.us/img6/9247/costum.jpg) (http://img6.imageshack.us/my.php?image=costum.jpg)


whats wrong? :/
Title: Re: LogInSystem
Post by: Hacktank on March 20, 2009, 04:10:32 am
Did u accually name the file 'costum.txt'? Just name it 'costum'.
Title: Re: LogInSystem
Post by: scarface09 on March 20, 2009, 04:22:31 am
Very nice although won't soldat have rankings & accounts in the nxt release?
Title: Re: LogInSystem
Post by: Mittsu on March 20, 2009, 04:43:57 am
Did u accually name the file 'costum.txt'? Just name it 'costum'.

i didnt name/create anything, it was already there
Title: Re: LogInSystem
Post by: CurryWurst on March 20, 2009, 10:00:34 am
Could you be so kind as to upload your latest logfile.

Just to ensure that the current LogInSystem ZIP archive does not contain some critical
bugs I downloaded the archive and verified its integrity. I can't encounter any problems.

By the way, actually LogInSystem creates a blank "costum.txt" file itself if there is none.
Therefore I expected it to start properly. Maybe you forgot about assigning the folder
"login-system" read and write access.
Title: Re: LogInSystem
Post by: Mittsu on March 20, 2009, 02:17:19 pm
i have 755 on it, and i've been told its completely enough

can i contact you via msn/icq/irc/xfire somehow? Im really interested wth is going on and i want to solve it.
Title: Re: LogInSystem v1.2b - Updated 2009-04-13
Post by: CurryWurst on April 13, 2009, 11:26:29 am
LogInSystem v1.2b is out!

Changelog:
Code: [Select]
--------------------------------------------------------------------
- [Version 1.2b] - 2009-04-13 => Update #1
--------------------------------------------------------------------

- All Flag Captures & Scores are counted irrespective of where the flag was grabbed
- Added 'Database saved' message when the database was saved successfully
- Fixed certain localization issues
- Removed Quickest Score statistic because of different map sizes
- New login/logout messages
- Calculation of time has been reduced to days:hours:minutes and will be now calculated by using GetPlayerStat(ID, 'Time').
  Current time played will be added to the total time when a player logs out
- AppOnIdle is now reduced to the most important demands owing to frequent bug occurrence
- Last Login now uses the formula 'c'. Checksum has been modified according to this formula
- Subadminlogin + command added. You can alter all available commands in the ini file
- Increased SaveDelay to 600 seconds
- Fixed some cases where the database was corrupted when a player left the game while ranks being updated
- XSplit has been improved very considerable
- Renamed some database related functions such as _SGetInfo, ...
- QuickSort algorithm has been replaced by SelectionSort
- Interface got some new coloring
- Slightly improved CreateBox() function
- Removed reg-players and reg-players search function
- Fixed a case where it was not possible to choose any language except for English if the
  localization file contained more than 9 languages
- Added CreateToplist() function and /rankings command
- improved database functions has been added

--------------------------------------------------------------------
- [Version 1.0] - 2009-12-25 => Initial release
--------------------------------------------------------------------

It comes with 3 languages: English, Dutch & German.

Please note that the new database format is not compatible to the old one.
I may release an appropriated updater later.

Please report all bugs!

By the way ....
Happy Eastern! [retard]

(http://reauq.com/misc/soldat/sf/buynow.gif) (http://reauq.com/misc/soldat/scripts/LogInSystem+v1.5.1.zip)

EnEsCe server customers please download this script (http://reauq.com/misc/soldat/scripts/LogInSystem_EnEsCe+v1.51.zip).
Title: Re: LogInSystem v1.2b - Updated 2009-04-13
Post by: DorkeyDear on April 13, 2009, 11:59:24 am
Sweet! Good job!
Title: Re: LogInSystem v1.2b - Updated 2009-04-13
Post by: CurryWurst on April 13, 2009, 12:38:44 pm
Note to all EnEsCe Server Customers\Linux User:

It seems that FileExists still does not work on Linux
server properly. I can't reproduce that on my debian etch
server, but it has been bugged for a long time. Thought it
has been fixed :(

I'll submit a special version of the script as soon as possible.

Markus
Title: Re: LogInSystem v1.2b - Updated 2009-04-13
Post by: hock3y on April 13, 2009, 03:16:37 pm
Note to all EnEsCe Server Customers\Linux User:

It seems that FileExists still does not work on Linux
server properly. I can't reproduce that on my debian etch
server, but it has been bugged for a long time. Thought it
has been fixed :(

I'll submit a special version of the script as soon as possible.

Markus

That sounds great, let us know when you have the new version ready.
Title: Re: LogInSystem v1.2b - Updated 2009-04-13
Post by: Mittsu on April 14, 2009, 08:50:18 am
Note to all EnEsCe Server Customers\Linux User:

It seems that FileExists still does not work on Linux
server properly. I can't reproduce that on my debian etch
server, but it has been bugged for a long time. Thought it
has been fixed :(

I'll submit a special version of the script as soon as possible.

Markus

looking forward for it :)
Title: Re: LogInSystem v1.2b - Updated 2009-04-13
Post by: CurryWurst on April 14, 2009, 12:46:00 pm
Okay, I applied a new patch to the script. It's meant to work on every operating system now.
Just download the file listed above.

If still something goes wrong, report it please.
Title: Re: LogInSystem v1.2b - Updated 2009-04-13
Post by: Mittsu on April 15, 2009, 04:27:22 pm
Quote
(23:25:29) 
  • Compilation Complete.

(23:25:29)  |> Notice LogInSystem: VerifyDatabaseIntegrity(): checksum error in account 1, Statistic "Last Login"
(23:25:29)  |> Notice LogInSystem: VerifyDatabaseIntegrity(): checksum error in account 2, Statistic "Last Login"
(23:25:29)  |> Notice LogInSystem: VerifyDatabaseIntegrity(): checksum error in account 3, Statistic "Last Login"
(23:25:29)  |> Notice LogInSystem: VerifyDatabaseIntegrity(): checksum error in account 4, Statistic "Last Login"
(23:25:30)  |> Notice LogInSystem: VerifyDatabaseIntegrity(): checksum error in account 5, Statistic "Last Login"
(23:25:30)  |> Notice LogInSystem: _BackupSystem(): file "last_backup" does not exist or is corrupted
(23:25:30) 
  • LogInSystem v1.2b started!
this keeps appearing when i recompile, but the script still works fine i guess
Title: Re: LogInSystem v1.2b - Updated 2009-04-13
Post by: CurryWurst on April 15, 2009, 06:10:40 pm
Side Note: Please do not recompile this script while you're in game and logged in, this might cause critical bugs.

Do you use an old database from a previous version of LogInSystem?

It seems that the script could fix the database format, but using an old database file is very dangerous.
I can't guarantee the script running properly.
Title: Re: LogInSystem v1.2b - Updated 2009-04-13
Post by: Mittsu on April 16, 2009, 09:57:28 am
no, its new database, but yeah, i think i recompiled when there were players logged in. My bad  :P




just got this:

Quote
16:22:25) 
  • [Error] LogInSystem -> (AppOnIdle): Type Mismatch

(16:22:25) 
  • [Error] LogInSystem -> (OnLeaveGame): Access violation at address 0809D96B, accessing address 0000010D

(16:22:38)  |> Notice LogInSystem: _UpdateColumn(): row does not exist
(16:22:38)  |> Notice LogInSystem: _UpdateColumn(): row does not exist
(16:22:38)  |> Notice LogInSystem: _UpdateColumn(): row does not exist
(16:22:38)  |> Notice LogInSystem: _UpdateColumn(): row does not exist
(16:22:38)  |> Notice LogInSystem: _UpdateColumn(): row does not exist
(16:22:38)  |> Notice LogInSystem: _UpdateColumn(): row does not exist
(16:22:46) 
  • [Error] LogInSystem -> (OnPlayerDamage): Out Of Range

(16:22:46) 
  • [Error] LogInSystem -> (OnPlayerDamage): Out Of Range

(16:22:46) 
  • [Error] LogInSystem -> (OnPlayerDamage): Out Of Range

(16:22:46) 
  • [Error] LogInSystem -> (OnPlayerDamage): Out Of Range

(16:22:46) 
  • [Error] LogInSystem -> (OnPlayerDamage): Out Of Range

(16:22:46) 
  • [Error] LogInSystem -> (OnPlayerKill): Out Of Range

(16:22:48) 
  • [Error] LogInSystem -> (OnPlayerDamage): Out Of Range

(16:22:48) 
  • [Error] LogInSystem -> (OnPlayerDamage): Out Of Range

(16:22:48) 
  • [Error] LogInSystem -> (OnPlayerDamage): Out Of Range

(16:22:48) 
  • [Error] LogInSystem -> (OnPlayerDamage): Out Of Range

(16:22:48) 
  • [Error] LogInSystem -> (OnPlayerDamage): Out Of Range

(16:22:48)
  • Too many script errors! Recompiling "LogInSystem"

(16:22:48) 
  • Compiling LogInSystem -> LogInSystem.pas...

(16:22:48)  >>> SHELL_EXEC has been disabled by your Server Administrator
(16:22:49) 
  • Compilation Complete.

(16:22:49)  |> Notice LogInSystem: _Database(): a critical error occurred
(16:22:51) Shutting down server...
(16:22:52) Shutting down fileserver...
(16:22:52) Shutting down admin server...
(16:22:53) Connection to the server lost
Title: Re: LogInSystem v1.2b - Updated 2009-04-13
Post by: CurryWurst on April 16, 2009, 01:01:35 pm
That doesn't surprise me, please set up a new database without any accounts  :P
Problem should be solved then.
Title: Re: LogInSystem v1.2b - Updated 2009-04-26
Post by: CurryWurst on April 26, 2009, 05:59:06 am
Quick Patch released.

Changelog:
Code: [Select]
--------------------------------------------------------------------
- [Version 1.2b] - 2009-04-26 => Update #2
--------------------------------------------------------------------

- Fixed a case where an empty database was backuped
- Added the possibility to view other players stats
  Command: "/stats [accountname]"
- Fixed some German localization glitches

--------------------------------------------------------------------
- [Version 1.2b] - 2009-04-13 => Update #1
--------------------------------------------------------------------

- All Flag Captures & Scores are counted irrespective of where the flag was grabbed
- Added 'Database saved' message when the database was saved successfully
- Fixed certain localization issues
- Removed Quickest Score statistic because of different map sizes
- New login/logout messages
- Calculation of time has been reduced to days:hours:minutes and will be now calculated by using GetPlayerStat(ID, 'Time').
  Current time played will be added to the total time when a player logs out
- AppOnIdle is now reduced to the most important demands owing to frequent bug occurrence
- Last Login now uses the formula 'c'. Checksum has been modified according to this formula
- Subadminlogin + command added. You can alter all available commands in the ini file
- Increased SaveDelay to 600 seconds
- Fixed some cases where the database was corrupted when a player left the game while ranks being updated
- XSplit has been improved very considerable
- Renamed some database related functions such as _SGetInfo, ...
- QuickSort algorithm has been replaced by SelectionSort
- Interface got some new coloring
- Slightly improved CreateBox() function
- Removed reg-players and reg-players search function
- Fixed a case where it was not possible to choose any language except for English if the
  localization file contained more than 9 languages
- Added CreateToplist() function and /rankings command
- Improved database functions has been added

--------------------------------------------------------------------
- [Version 1.0] - 2009-12-25 => Initial release
--------------------------------------------------------------------

You can apply the patch by replacing your ...
 - LogInSystem.pas
 - languages.txt
with the files in the attachment.

If you're new to LogInSystem download the complete script.
It already contains the latest patch.

Some teaser pics...
Title: Re: LogInSystem v1.22 - Updated 2009-04-28
Post by: CurryWurst on April 28, 2009, 03:24:51 pm
Third update released :D

Changelog:
Code: [Select]
--------------------------------------------------------------------
- [Version 1.22] - 2009-04-28 => Update #3
--------------------------------------------------------------------

- Finnish translation appended
- Selfkills are not anymore counted by the end of a round if the gamemode is set to survival
- Removed unecessary variables from previous versions
- Added a new Ratio statistic (kills per death; accuracy: X.xx)
  Ratio is implemented as dummy stat, you won't be able to sort your ranks by it
  Added GetRatio() function
- Fixed a strange costum stats bug not allowing to add new stats

--------------------------------------------------------------------
- [Version 1.21b] - 2009-04-26 => Update #2
--------------------------------------------------------------------

- Fixed a case where an empty database was backuped
- Added the possibility to view other players stats
  Command: "/stats [accountname]"
- Fixed some German localization glitches

--------------------------------------------------------------------
- [Version 1.2b] - 2009-04-13 => Update #1
--------------------------------------------------------------------

- All Flag Captures & Scores are counted irrespective of where the flag was grabbed
- Added 'Database saved' message when the database was saved successfully
- Fixed certain localization issues
- Removed Quickest Score statistic because of different map sizes
- New login/logout messages
- Calculation of time has been reduced to days:hours:minutes and will be now calculated by using GetPlayerStat(ID, 'Time').
  Current time played will be added to the total time when a player logs out
- AppOnIdle is now reduced to the most important demands owing to frequent bug occurrence
- Last Login now uses the formula 'c'. Checksum has been modified according to this formula
- Subadminlogin + command added. You can alter all available commands in the ini file
- Increased SaveDelay to 600 seconds
- Fixed some cases where the database was corrupted when a player left the game while ranks being updated
- XSplit has been improved very considerable
- Renamed some database related functions such as _SGetInfo, ...
- QuickSort algorithm has been replaced by SelectionSort
- Interface got some new coloring
- Slightly improved CreateBox() function
- Removed reg-players and reg-players search function
- Fixed a case where it was not possible to choose any language except for English if the
  localization file contained more than 9 languages
- Added CreateToplist() function and /rankings command
- Improved database functions has been added

--------------------------------------------------------------------
- [Version 1.0] - 2009-12-25 => Initial release
--------------------------------------------------------------------

You can apply the patch by replacing your ...
 - LogInSystem.pas
 - languages.txt
 - costum.txt
with the files in the attachment.

Don't worry if you're next server start-up may look like this:
Code: [Select]
[28-04-09 22:04:30]    System Log Started
[28-04-09 22:04:30] Settings(): configuration loaded successful
[28-04-09 22:04:30] _CostumStats(): 11 costum stat(s) loaded
[28-04-09 22:04:30] _LogInSystemUI(): user interface initialized
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checking database for errors ...
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 1, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 2, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 3, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 4, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 5, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 6, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 7, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 8, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 9, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 10, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 11, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 12, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 13, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 14, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 15, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 16, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 17, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 18, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 19, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 20, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 21, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 22, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 23, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 24, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 25, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 26, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 27, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 28, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 29, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 30, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 31, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 32, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 33, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 34, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 35, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 36, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 37, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 38, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): checksum error in account 39, Statistic "Ratio"
[28-04-09 22:04:30] VerifyDatabaseIntegrity(): problem solved
[28-04-09 22:04:30] _SaveDatabase(): database saved
[28-04-09 22:04:30] _Database(): 39 player account(s) loaded successful
[28-04-09 22:04:30] _BackupSystem(): backup required?
[28-04-09 22:04:31] _SaveDatabase(): database saved
[28-04-09 22:04:31] _BackupSystem(): Backup successful
The database format will be fitted to the new Ratio statistic.

If you're new to LogInSystem download the complete script.
It already contains the latest patch.

Thanks to Mittsu for his constructive ideas such as
the new Ratio stat.

Besides thanks to shantec for translating LogInSystem into Finnish.
Title: Re: LogInSystem v1.22 - Updated 2009-04-28
Post by: Mittsu on April 28, 2009, 06:22:14 pm
Quote
- Selfkills are not anymore counted by the end of a round if the gamemode is set to survival

<3
Title: Re: LogInSystem v1.4 - Updated 2009-05-12
Post by: CurryWurst on May 12, 2009, 10:10:00 am
LogInSystem v1.4 released!

Changelog:
Code: [Select]
--------------------------------------------------------------------
- [Version 1.4] - 2009-05-12 => Update #4
--------------------------------------------------------------------

- Added the function LoggedInPlayers which returns the count of all logged in players
- Ranks will be now updated at the very beginning of each map due to performance lacks
  Removed the Frequency ini setting
- PrivatFunction has been replaced by NickProtection
  You can enable it by setting NickProtection in the ini file to a number greater than zero
- ApponIdle has been greatly improved, the script should run more stable now
- Norwegian and French translation have been appended
- Subadmin command can now only be executed by in-game or TCP admins
  ARSSE support is now also available
- Top 10 list added, will be shown when a new map starts
  Disable it in the ini file if you like
- Power function has been added to calculate power terms
- SelectionSort has been replaced by a new and hopefully more stable QuickSort algorithm
  There should not be some great server lacks anymore if the ranks being updated if you have a large database
- Some minor changes I can't remember

--------------------------------------------------------------------
- [Version 1.22] - 2009-04-28 => Update #3
--------------------------------------------------------------------

- Finnish translation appended
- Selfkills are not anymore counted by the end of a round if the gamemode is set to survival
- Removed unecessary variables from previous versions
- Added a new Ratio statistic (kills per death; accuracy: X.xx)
  Ratio is implemented as dummy stat, you won't be able to sort your ranks by it
  Added GetRatio() function
- Fixed a strange costum stats bug not allowing to add new stats

--------------------------------------------------------------------
- [Version 1.21b] - 2009-04-26 => Update #2
--------------------------------------------------------------------

- Fixed a case where an empty database was backuped
- Added the possibility to view other players stats
  Command: "/stats [accountname]"
- Fixed some German localization glitches

--------------------------------------------------------------------
- [Version 1.2b] - 2009-04-13 => Update #1
--------------------------------------------------------------------

- All Flag Captures & Scores are counted irrespective of where the flag was grabbed
- Added 'Database saved' message when the database was saved successfully
- Fixed certain localization issues
- Removed Quickest Score statistic because of different map sizes
- New login/logout messages
- Calculation of time has been reduced to days:hours:minutes and will be now calculated by using GetPlayerStat(ID, 'Time').
  Current time played will be added to the total time when a player logs out
- AppOnIdle is now reduced to the most important demands owing to frequent bug occurrence
- Last Login now uses the formula 'c'. Checksum has been modified according to this formula
- Subadminlogin + command added. You can alter all available commands in the ini file
- Increased SaveDelay to 600 seconds
- Fixed some cases where the database was corrupted when a player left the game while ranks being updated
- XSplit has been improved very considerable
- Renamed some database related functions such as _SGetInfo, ...
- QuickSort algorithm has been replaced by SelectionSort
- Interface got some new coloring
- Slightly improved CreateBox() function
- Removed reg-players and reg-players search function
- Fixed a case where it was not possible to choose any language except for English if the
  localization file contained more than 9 languages
- Added CreateToplist() function and /rankings command
- Improved database functions has been added

--------------------------------------------------------------------
- [Version 1.0] - 2009-12-25 => Initial release
--------------------------------------------------------------------

It comes with 2 additional languages (Norwegian & French) and many improvements.
Thanks to all people who helped me to create this update.

As always you can apply the patch by replacing your ...
 - LogInSystem.pas
 - languages.txt
 - config.ini
with the files in the attachment.

If you're new to LogInSystem download the complete script.
It already contains the latest patch.

Do you have any improvements, suggestions or new ideas for LogInSystem? - Check out the LogInSystem Suggestion Thread (http://forums.soldat.pl/index.php?topic=34074)!

(http://reauq.com/misc/soldat/sf/buynow.gif) (http://reauq.com/misc/soldat/scripts/LogInSystem+v1.5.1.zip)

EnEsCe server customers please download this script (http://reauq.com/misc/soldat/scripts/LogInSystem_EnEsCe+v1.51.zip).
Title: Re: LogInSystem v1.4 - Updated 2009-05-12
Post by: ~Niko~ on May 17, 2009, 09:37:27 am
here you have spanish translation, sorry it took that long but i had better things to do
Title: Re: LogInSystem v1.4 - Updated 2009-05-12
Post by: CurryWurst on May 17, 2009, 10:35:46 am
Thanks :) Will be added to the script soon.

You posted it the wrong topic but I don't mind.
Title: Re: LogInSystem v1.4 - Updated 2009-05-12
Post by: Irlandec on May 19, 2009, 07:01:42 am
Nice release , but i have same error as Mittsu had. All seems to be fine with files
Title: Re: LogInSystem v1.4 - Updated 2009-05-12
Post by: CurryWurst on May 19, 2009, 10:37:14 am
Nice release , but i have same error as Mittsu had. All seems to be fine with files

Got irc? - Join #soldat.devs and pm me :P
Title: Re: LogInSystem v1.4 - Updated 2009-05-12
Post by: Irlandec on May 20, 2009, 11:54:36 am
How to solve the error with costum file missing: loginsystem_data folder position must be in the root of your soldatserver , not in scripts folder
Title: Re: LogInSystem v1.4 - Updated 2009-05-12
Post by: CurryWurst on May 28, 2009, 03:36:46 pm
Here's a little fix to the config.ini to prevent the database from being modified by the VerifyDatabaseIntergrity function when the last login date from a user was saved on an english operating system as FormatDate('c').

Replace your config.ini with the file attached to this post. But remember to save your settings before updating!
Title: Re: LogInSystem v1.4 - Updated 2009-05-12
Post by: Mujuice on May 28, 2009, 06:41:10 pm
hey, nice script! i had no errors or crashs for over 5 hours (my server easily crashs) so thats very nice :D
but, id like to see a !stats function that shows kills, deaths and ratio, and ofc when the player isnt logged in he should see something like "please login or create an acc"
would be awesome if you could add that :)
Title: Re: LogInSystem v1.4 - Updated 2009-05-12
Post by: y0uRd34th on May 30, 2009, 11:32:52 am
That's all done already, try /stats. and the other things shows all 2 or 3 minutes i think
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: CurryWurst on June 12, 2009, 07:14:16 pm
Enjoy the most stable account system ever created for Soldat!* - Uses XSplit only on start up!

The secret of its awesome stableness can be attributed to SwapSQLRowID(), a new powerful function which swaps two RowIDs in real-time...
Most of you might be confused now, but nevertheless enjoy the unique loginsystem experience by pressing the button "Download Now" below.

Before I forget it....
Code: [Select]
--------------------------------------------------------------------
- [Version 1.5] - 2009-06-13 => Update #5
--------------------------------------------------------------------

- SaveDatabase has been renamed to DumpDatabase and works faster now
- Spanish translation appended
- LogInSystem Booster added

--------------------------------------------------------------------
- [Version 1.4] - 2009-05-12 => Update #4
--------------------------------------------------------------------

- There's a super secret project in progress about global stats/ranks and much more
  Check out this page later
- Added the function LoggedInPlayers which returns the count of all logged in players
- Ranks will be now updated at the very beginning of each map due to performance lacks
  Removed the Frequency ini setting
- PrivatFunction has been replaced by NickProtection
  You can enable it by setting NickProtection in the ini file to a number greater than zero
- ApponIdle has been greatly improved, the script should run more stable now
- Norwegian and French translation have been appended
- Subadmin command can now only be executed by in-game or TCP admins
  ARSSE support is now also available
- Top 10 list added, will be shown when a new map starts
  Disable it in the ini file if you like
- Power function has been added to calculate power terms
- SelectionSort has been replaced by a new and hopefully more stable QuickSort algorithm
  There should not be some great server lacks anymore if the ranks being updated if you have a large database
- Some minor changes I can't remember

--------------------------------------------------------------------
- [Version 1.22] - 2009-04-28 => Update #3
--------------------------------------------------------------------

- Finnish translation appended
- Selfkills are not anymore counted by the end of a round if the gamemode is set to survival
- Removed unecessary variables from previous versions
- Added a new Ratio statistic (kills per death; accuracy: X.xx)
  Ratio is implemented as dummy stat, you won't be able to sort your ranks by it
  Added GetRatio() function
- Fixed a strange costum stats bug not allowing to add new stats

--------------------------------------------------------------------
- [Version 1.21b] - 2009-04-26 => Update #2
--------------------------------------------------------------------

- Fixed a case where an empty database was backuped
- Added the possibility to view other players stats
  Command: "/stats [accountname]"
- Fixed some German localization glitches

--------------------------------------------------------------------
- [Version 1.2b] - 2009-04-13 => Update #1
--------------------------------------------------------------------

- All Flag Captures & Scores are counted irrespective of where the flag was grabbed
- Added 'Database saved' message when the database was saved successfully
- Fixed certain localization issues
- Removed Quickest Score statistic because of different map sizes
- New login/logout messages
- Calculation of time has been reduced to days:hours:minutes and will be now calculated by using GetPlayerStat(ID, 'Time').
  Current time played will be added to the total time when a player logs out
- AppOnIdle is now reduced to the most important demands owing to frequent bug occurrence
- Last Login now uses the formula 'c'. Checksum has been modified according to this formula
- Subadminlogin + command added. You can alter all available commands in the ini file
- Increased SaveDelay to 600 seconds
- Fixed some cases where the database was corrupted when a player left the game while ranks being updated
- XSplit has been improved very considerable
- Renamed some database related functions such as _SGetInfo, ...
- QuickSort algorithm has been replaced by SelectionSort
- Interface got some new coloring
- Slightly improved CreateBox() function
- Removed reg-players and reg-players search function
- Fixed a case where it was not possible to choose any language except for English if the
  localization file contained more than 9 languages
- Added CreateToplist() function and /rankings command
- Improved database functions has been added

--------------------------------------------------------------------
- [Version 1.0] - 2009-12-25 => Initial release
--------------------------------------------------------------------

EDIT: I forgot to attach the new localization file for all returning customers [retard]. It's now there.
(http://reauq.com/misc/soldat/sf/buynow.gif) (http://reauq.com/misc/soldat/scripts/LogInSystem+v1.5.1.zip)

EnEsCe server customers please download this script (http://reauq.com/misc/soldat/scripts/LogInSystem_EnEsCe+v1.51.zip).


*No responsibility is taken for the correctness of the details above :P
Title: Re: LogInSystem v1.4 - Updated 2009-05-12
Post by: EnEsCe on June 12, 2009, 07:53:06 pm
Heh, 'Buy Now'?
Title: Re: LogInSystem v1.4 - Updated 2009-05-12
Post by: y0uRd34th on June 13, 2009, 02:30:56 am
looks like a very good joke he made :D
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: xmRipper on June 13, 2009, 06:40:10 am
"Buy Now"
Hahah that was really good :D
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: Irlandec on June 25, 2009, 11:44:19 am
Best loginsytem i have ever seen :o... Very good job ;)
Title: Re: LogInSystem v1.51 - Updated 2009-07-06
Post by: CurryWurst on July 06, 2009, 03:26:37 pm
Code: [Select]
--------------------------------------------------------------------
- [Version 1.51] - 2009-07-6 => Update #6
--------------------------------------------------------------------

- Fixed a very evil bug which might have corrupted the accounts database
  if an account has just been deleted
  This bug creeped in owing to the last update being made

I'm sorry if this bug messed up your database :-\


(http://soldatcentral.com/images/download.gif) (http://soldatcentral.com/dl.php?id=71&act=1)
(Size 18.81 KB)
- http://soldatcentral.com/index.php?page=script&f=71 -


** Script hosted by Soldat Central (http://soldatcentral.com/index.php?page=script&f=71)! Please visit the author's script page (http://soldatcentral.com/index.php?page=script&f=71) and Rate this script **
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: mich1103 on January 26, 2010, 09:20:10 pm
how i install it
how i put login_system to 755
the thing i have download is BLANK/loginsystem.pas/(on it)//unaivaible
what can i do ??? :-\  :-\  :-\
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: dominikkk26 on January 29, 2010, 10:12:43 am
I have such a problem the script is not working and it's nothing! ;(

(http://i50.tinypic.com/derb7l.jpg)
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: CurryWurst on February 03, 2010, 08:38:42 am
This script is no longer available.
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: dominikkk26 on February 03, 2010, 10:25:46 am
What?

Please provide! :-\
Title: Re: LogInSystem v1.51 - Available again!
Post by: CurryWurst on April 18, 2010, 11:02:14 am
The script is available again updated with several enhancements and awesome encryption algorithms :D

Script Name: LogInSystem v1.51
Script Description Database-driven account manager. Stores individual stats for every player.
Author: Dual (http://soldatcentral.com/index.php?page=profile&u=57)
Compile Test: (http://soldatcentral.com/images/pass.gif) Passed
Core Version: 2.6.5
Hosted by: Soldat Central - http://soldatcentral.com/ (http://soldatcentral.com/)


(http://soldatcentral.com/images/download.gif) (http://soldatcentral.com/index.php?page=viewfile&f=71&file=LogInSystem.pas)
(Size 54.13 KB)
- http://soldatcentral.com/index.php?page=script&f=71 -


** Script hosted by Soldat Central (http://soldatcentral.com/index.php?page=script&f=71)! Please visit the author's script page (http://soldatcentral.com/index.php?page=script&f=71) and Rate this script **
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: pallk on April 25, 2010, 01:06:27 pm
That's a great script you've written there, it works like a charm and I already plan to use it on my server.

I'm just wondering how you were able to encrypt the script like that?! Is there any tool available to do so?
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: dnmr on April 25, 2010, 01:34:10 pm
i think EnEsCe can encrypt scripts like that
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: Kentoss on May 09, 2010, 11:08:26 pm
Any possibility on a merge feature for accounts?
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: CurryWurst on May 10, 2010, 07:05:22 am
I'm afraid, but i stopped the development of this script, but I'm sure there are many other scripters who could help you with adding additional features.

I'll upload a decrypted version of the script soon, so you and others can have a look at the source and alter it according to your wishes.
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: RafiPZ on July 25, 2010, 09:33:44 pm
Hey I know development was stopped on this, but does anybody know if the script still works?
I tried to upload the two folders and the server won't start.
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: Falcon` on July 26, 2010, 05:17:25 pm
File on soldatcentral seems to be incomplete or bugged
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: Beowulf Agate on July 27, 2010, 05:22:27 am
Hey I know development was stopped on this, but does anybody know if the script still works?
I tried to upload the two folders and the server won't start.

script is working fine on my server

(Don't forget to put: "LogInSystem" in 'scripts' folder ; "loginsystem_data" in soldatserver's root directory with proper chmods)


File on soldatcentral seems to be incomplete or bugged

script code is encrypted

[...] and awesome encryption algorithms :D
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: PKS|Shooter on July 27, 2010, 07:38:20 am
Quote
- EnEsCe for his amazing script core & scripting manual

lol
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: CurryWurst on July 28, 2010, 03:03:40 pm
Hey I know development was stopped on this, but does anybody know if the script still works?
I tried to upload the two folders and the server won't start.

I noticed that EnEsCe's server handle directory paths differently, therefore I attached a modified script version for all EnEsCe clients below.
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: Falcon` on July 31, 2010, 05:58:52 pm
Not encrypted \o/
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: Swompie on August 01, 2010, 05:08:28 am
Quote
I'll upload a decrypted version of the script soon, so you and others can have a look at the source and alter it according to your wishes.
That's what he said. (Even tho it took some time)
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: spodletela on August 03, 2010, 08:37:36 am
Cute script, exactly what i was searching for but... can the automatic login by IP be disabled somehow? This is highly annoying as i have few players that are logging in from behind a NAT and they can abuse automatic login (as they are using the same ip - their gateway)

Anyway, is there any chance we finally get unencrypted version ( buzzwords: base64, blowfish, maybe also zlib )

From: August 04, 2010, 04:46:15 am
Ok, got it, ignore the previous post ;D This encryption is not that *awesome*. Actually i bet i decoded that file faster then the author coded its encryption... what a waste of time. And Markus, no i wont give it away, i respect your wish to have it encrypted.
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: CurryWurst on August 05, 2010, 04:12:10 pm
Cute script, exactly what i was searching for but... can the automatic login by IP be disabled somehow? This is highly annoying as i have few players that are logging in from behind a NAT and they can abuse automatic login (as they are using the same ip - their gateway)

There's no such option in the config file, but you can disable it by modifying the source code (OnJoinGame procedure) as follows ...

Code: (pascal) [Select]
procedure OnJoinGame(ID, Team: byte);
begin
  UILanguage[ID]:= 0;
  Timer[ID]:= -1;
  Account[ID]:= GetAccountNumber(IDToName(ID));
  if (Account[ID] >= 0) then
  begin
    if (IDToIP(ID) = GetPiece(Database[Account[ID]], #9, 4)) then
    begin
      // OnPlayerLogIn(ID);
    end else
    begin
      DrawText(ID, 'Instant access to your account?' + BR + '"/login <password>"', 900, $F6F90A, 0.12, 20, 375);
      if (NickProtection > 0) then
      begin
        Timer[ID]:= NickProtection;
      end;
    end;
  end else
  begin
    DrawText(ID, 'Save your stats today?' + BR + '"/create" to set up a new account', 1200, $F6F90A, 0.12, 20, 375);
  end;
end;

Anyway, is there any chance we finally get unencrypted version ( buzzwords: base64, blowfish, maybe also zlib )

From: August 04, 2010, 04:46:15 am
Ok, got it, ignore the previous post ;D This encryption is not that *awesome*. Actually i bet i decoded that file faster then the author coded its encryption... what a waste of time. And Markus, no i wont give it away, i respect your wish to have it encrypted.

Quote
I'll upload a decrypted version of the script soon, so you and others can have a look at the source and alter it according to your wishes.
That's what he said. (Even tho it took some time)
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: spodletela on August 07, 2010, 01:06:15 pm
Quote from: CurryWurst
There's no such option in the config file, but you can disable it by modifying the source code (OnJoinGame procedure) as follows ...

Thank you but from programming perspective i dont need help... Btw, doing it in a way you proposed disables NickProtection and nice notify about /login :D
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: Beowulf Agate on September 26, 2010, 08:57:18 am
LogInSystem script with 500+ (also 400+) accounts hangs server for 1-2 sec, just before Top10 list appearance on new map. Its not occurs with 200+ accounts. Anyone else have the same problem? How can I fix this?
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: freestyler on September 26, 2010, 09:06:27 am
Quote
Note: If you intend to create a new backup weekly keep in mind
that weekdays have to be written in the language of the OS
which the server runs on.
You can ignore these compatibility issues if you use this code:
Code: [Select]
function complexdayofweek(year, month, day: integer): integer;
  var a, y, m: integer;
  begin
    a := (14 - month) div 12;
    y := year + 4800 - a;
    m := month + 12 * a - 3;
    result := 1 + (day + (153 * m + 2) div 5 + y * 365 + y div 4 - y div 100 + y div 400 - 32045) mod 7;
  end;
It returns 1 for Monday, 2 for Tuesday, ..., 7 for Sunday, no matter what language OS uses.

Also, you might want to back up your code as it seems SoldatCentral is going down (http://soldatcentral.com/). Or EnEsCe trolls us.
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: CurryWurst on September 26, 2010, 01:58:44 pm
LogInSystem script with 500+ (also 400+) accounts hangs server for 1-2 sec, just before Top10 list appearance on new map. Its not occurs with 200+ accounts. Anyone else have the same problem? How can I fix this?

This is primarily due to the sort algorithm used to order the accounts. A binary tree as iDante suggested could fix this issue. I'm afraid, but I'm not going to maintain the script any longer, because a couple of forum members, including me, are working on global account system. If you want to get more information about our project join our quakenet channel #soldat.sgas. Though, I would really appreciate any updates to the script. I hope someone is going to sacrifice his or her time to help you.

Quote
Note: If you intend to create a new backup weekly keep in mind
that weekdays have to be written in the language of the OS
which the server runs on.
You can ignore these compatibility issues if you use this code:
Code: [Select]
function complexdayofweek(year, month, day: integer): integer;
  var a, y, m: integer;
  begin
    a := (14 - month) div 12;
    y := year + 4800 - a;
    m := month + 12 * a - 3;
    result := 1 + (day + (153 * m + 2) div 5 + y * 365 + y div 4 - y div 100 + y div 400 - 32045) mod 7;
  end;
It returns 1 for Monday, 2 for Tuesday, ..., 7 for Sunday, no matter what language OS uses.

Also, you might want to back up your code as it seems SoldatCentral is going down (http://soldatcentral.com/). Or EnEsCe trolls us.

Thank you for this very interesting piece of code. It's really worth an update to the script. I would be glad if you can fix it :)

Too bad EnEsCe is going to close his services. This topic should receive more attention, otherwise many scripts will probably get lost. Is there a thread on SF already?
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: Furai on October 01, 2010, 02:45:03 pm
How about moving sorting algorithm into onmapchange event? It will fix the problem. Noone has to have life stats... :)
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: Swompie on October 01, 2010, 03:48:56 pm
Make the sorting part Thread Func'd.
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: CurryWurst on October 15, 2010, 01:49:47 am
How about moving sorting algorithm into onmapchange event? It will fix the problem. Noone has to have life stats... :)

It already processes the ranks in the onmapchange event :P

Make the sorting part Thread Func'd.

This will probably result in access violation, unless the database gets locked during sorting.
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: omerstart on March 18, 2011, 04:26:39 pm
Code: [Select]
  _FOLDER_VIPLIST = './loginsystem_data/viplist/';Why does not anything else related to viplist...
and sorry bad engilish :D
Title: Re: LogInSystem v1.5 - Now with performance booster!
Post by: CurryWurst on April 15, 2011, 07:24:39 am
Code: [Select]
  _FOLDER_VIPLIST = './loginsystem_data/viplist/';Why does not anything else related to viplist...
and sorry bad engilish :D

I actually wanted to implement a system to reserve slots, but I didn't find time to complete it.
Title: Re: LogInSystem v1.5
Post by: CurryWurst on June 21, 2011, 01:46:25 pm
I just noticed EnEsCe keeps an archive of all soldatcentral scripts here (http://enesce.com/static/sc_scripts/). According to this new URL I have refreshed the download link in the first post (http://forums.soldat.pl/index.php?topic=31807.msg377133#msg377133).
Title: Re: LogInSystem v1.5
Post by: Major xD on August 11, 2011, 08:19:58 pm
Not working in soldat server 2.7 (1.6rc1)...


I know that's an RC version, but I'm just warning =]
Title: Re: LogInSystem v1.5
Post by: CurryWurst on August 12, 2011, 12:31:25 am
Thank you for your bug report. The issue has been resolved.

You may find the fixed scripts here...

LogInSystem v1.5.1 (http://reauq.com/misc/soldat/scripts/LogInSystem+v1.5.1.zip)
LogInSystem v1.5.1 [appropriate for EnEsCe servers] (http://reauq.com/misc/soldat/scripts/LogInSystem_EnEsCe+v1.51.zip)

The first post (http://forums.soldat.pl/index.php?topic=31807.msg377133#msg377133) has been updated according to the URL changes of the script archives.
Title: Re: LogInSystem v1.5
Post by: Major xD on August 12, 2011, 08:35:52 am
Thanks.
But:

(10:11:10)
(10:11:11) 
(10:11:12) 
(10:11:13) 
(10:11:13) 
(10:11:14) 

The problem is the script core or the script?
Title: Re: LogInSystem v1.5
Post by: Furai on August 12, 2011, 09:32:21 am
Thanks.
But:

(10:11:10)
  • [Error] LogInSystem -> (OnAdminConnect): Unknown procedure

(10:11:11) 
  • [Error] LogInSystem -> (OnAdminMessage): Unknown procedure

(10:11:12) 
  • [Error] LogInSystem -> (OnAdminMessage): Unknown procedure

(10:11:13) 
  • [Error] LogInSystem -> (OnAdminMessage): Unknown procedure

(10:11:13) 
  • [Error] LogInSystem -> (OnAdminMessage): Unknown procedure

(10:11:14) 
  • [Error] LogInSystem -> (OnAdminMessage): Unknown procedure


The problem is the script core or the script?
With what server version you use that script?
Title: Re: LogInSystem v1.5
Post by: Major xD on August 12, 2011, 09:59:52 am
Soldat 1.6rc...
soldatserver 2.7
Title: Re: LogInSystem v1.5
Post by: CurryWurst on August 18, 2011, 05:43:42 am
Thanks.
But:

(10:11:10)
  • [Error] LogInSystem -> (OnAdminConnect): Unknown procedure

(10:11:11) 
  • [Error] LogInSystem -> (OnAdminMessage): Unknown procedure

(10:11:12) 
  • [Error] LogInSystem -> (OnAdminMessage): Unknown procedure

(10:11:13) 
  • [Error] LogInSystem -> (OnAdminMessage): Unknown procedure

(10:11:13) 
  • [Error] LogInSystem -> (OnAdminMessage): Unknown procedure

(10:11:14) 
  • [Error] LogInSystem -> (OnAdminMessage): Unknown procedure


The problem is the script core or the script?

This problem can probably be attributed to the new script core using the Indy 10 library. Shoozza already recognized it as bug report (http://titanpad.com/soldatbugs160rc1), so it will hopefully be fixed soon.
Title: Re: LogInSystem v1.5
Post by: Illuminatus on August 19, 2011, 12:03:19 am
Shoozza already recognized it as bug report (http://titanpad.com/soldatbugs160rc1), so it will hopefully be fixed soon.
Huh? One more place I need to check to follow dev-activity. :p
So Twitter is for the public, Corkboard's some internal overview and this is Shoozza's todo-list or what?
Title: Re: LogInSystem v1.5
Post by: CurryWurst on August 19, 2011, 11:54:44 am
Hehe yea, his private bug list also known as to-do list :P
Title: Re: LogInSystem v1.5
Post by: Major xD on August 24, 2011, 08:03:13 pm
Soldat Sever rc2

11-08-24 22:01:54 
11-08-24 22:01:54 
Title: Re: LogInSystem v1.5
Post by: CurryWurst on August 25, 2011, 06:04:28 am
Soldat Sever rc2

11-08-24 22:01:54 
  • Compiling LogInSystem -> LogInSystem.pas...

11-08-24 22:01:54 
  • LogInSystem -> [Error] (81:55): Duplicate identifier 'LastSave'
The script compiles fine on my remote machine. Make sure you have downloaded the latest script from here (http://sgas.u13.net/static/scripts/LogInSystem+v1.5.1.zip).
Title: Re: LogInSystem v1.5
Post by: Major xD on August 25, 2011, 08:10:32 pm
(22:08:44) 
(22:08:45) 
(22:08:45) Nightghost has joined bravo team.
(22:08:45) 
(22:08:45) 
(22:08:45) 
(22:08:45) 
(22:08:45) 
(22:08:45) 
(22:08:46) 
(22:08:46) 
(22:08:46) 
(22:08:46)

Soldat 1.5

3x today...
Title: Re: LogInSystem v1.5
Post by: CurryWurst on August 26, 2011, 08:28:19 am
I'm pretty sure this account system is not totally bug-free, even though I have done much testing to make sure vital functions perform properly. Unfortunately, many Soldat scripts suffer from script core instability, so does this script.
Title: Re: LogInSystem v1.5
Post by: Major xD on August 26, 2011, 02:54:58 pm
(16:50:36) Major(1) joining game (187.111.180.36:23073)
(16:50:37) Major(1) has joined bravo team.
(16:50:37) 
(16:50:37) 
(16:50:37) MSAC Server: Major(1) (187.111.180.36:23073) - GUID H9QYZ4X:HC3JJJX:NLWL5V5
(16:50:37) 
(16:50:38) 
(16:50:39) 
(16:50:40) 
(16:50:40) 
(16:50:40) 
(16:50:41) 
(16:50:41) 
(16:50:42) 
(16:50:42)
Title: Re: LogInSystem v1.5
Post by: CurryWurst on August 28, 2011, 03:53:07 pm
Thank you for your interest, but as I stated before, I can't do anything about these errors. You may beg the developers (http://forums.soldat.pl/index.php?topic=39242.0) to improve script core stability, though.
Title: Re: LogInSystem v1.5
Post by: xmRipper on September 13, 2011, 04:14:26 pm
Could you make it that won't require password for registering and use HWID instead ?
Title: Re: LogInSystem v1.5
Post by: CurryWurst on September 13, 2011, 04:35:09 pm
I wonder what we have been doing wrong with SGAS (http://forums.soldat.pl/index.php?topic=40017.0) that this script is still in great demand?

I really like this script and I have spent weeks developing and bug tracking it, however I feel it is no longer worth to modify or even extend this script since there is something much better you may use. I know it has not been finished yet and progress is slow at the moment, but I still believe in all the team members that we can turn our idea into reality.
Title: Re: LogInSystem v1.5
Post by: xmRipper on September 13, 2011, 04:44:39 pm
If I'm not wrong, SGAS currently does not support player statistics, and I don't want to use Zitro-Stats since its not HWID based. I am also too lazy and busy nowadays to modify ZitroStats or make a new statistics system, so my only choice is your LogInSystem :)

Edit: Looks like I'm going to modify your script.
Title: Re: LogInSystem v1.5
Post by: CurryWurst on September 15, 2011, 06:09:43 am
Yea, unfortunately it still has no database access, but I expect some progress soon. If you need my help with altering the LogInSystem script query me in IRC :)
Title: Re: LogInSystem v1.5
Post by: CurryWurst on December 07, 2011, 06:19:11 am
Due to an increasing request to maintain this account system script, I'm willing to make a final update. So now it is your chance to propose ideas which might make into the last release. I won't make any major changes, so only provide ideas which don't exceed my time constraints. Hence I will limit myself to feasible and sensible suggestions.
Title: Re: LogInSystem v1.5
Post by: Beowulf Agate on December 07, 2011, 10:19:33 am
Changing player's account name (ingame nickname) with command would be nice, ofc if it's possible to add.
Title: Re: LogInSystem v1.5
Post by: CurryWurst on December 08, 2011, 02:57:14 pm
Changing player's account name (ingame nickname) with command would be nice, ofc if it's possible to add.

Probably in conjunction with xmRipper's idea...

Could you make it that won't require password for registering and use HWID instead ?

- Ability to sort rankings by ratio (kills/death)

This suggestion has been taken from a private correspondence between me and a Soldat server administrator.
Title: Re: LogInSystem v1.5
Post by: Irlandec on December 09, 2011, 05:36:22 pm
Adding player clan support: admin can add tag and access to the leader of clan,so he could add/delete players from database,clan top and ratings.

Possible in-game ranks,(Private,Sergeant and etc.),can be custom.
Title: Re: LogInSystem v1.5
Post by: CurryWurst on December 12, 2011, 03:02:24 pm
Adding player clan support: admin can add tag and access to the leader of clan,so he could add/delete players from database,clan top and ratings.

Possible in-game ranks,(Private,Sergeant and etc.),can be custom.

Thank you for your ideas. I will take them into consideration when working on the update.

Regarding the request for login by Soldat HWIDs Mr has pointed out several times that any usage of them may involve security risks, hence I won't provide any HWID login support. Nevertheless, he also told me that upcoming Soldat releases might make use of the HWIDs provided by MSAC which seem to be reliable when taking security concerns into account.

Here are some new ideas gathered from private conversations...

Title: Re: LogInSystem v1.5
Post by: CurryWurst on December 23, 2011, 11:46:54 am
Some new ideas have arrived in my inbox, so I will list them here...

Title: Re: LogInSystem v1.5
Post by: Beowulf Agate on December 23, 2011, 12:09:33 pm
Code: [Select]
  _FOLDER_VIPLIST = './loginsystem_data/viplist/';Why does not anything else related to viplist...
and sorry bad engilish :D

I actually wanted to implement a system to reserve slots, but I didn't find time to complete it.

maybe this


LogInSystem script with 500+ (also 400+) accounts hangs server for 1-2 sec, just before Top10 list appearance on new map. Its not occurs with 200+ accounts. Anyone else have the same problem? How can I fix this?

This is primarily due to the sort algorithm used to order the accounts. A binary tree as iDante suggested could fix this issue. I'm afraid, but I'm not going to maintain the script any longer, because a couple of forum members, including me, are working on global account system. If you want to get more information about our project join our quakenet channel #soldat.sgas. Though, I would really appreciate any updates to the script. I hope someone is going to sacrifice his or her time to help you.

and maybe you can do something about this too since you are doing a final update?
Title: Re: LogInSystem v1.5
Post by: CurryWurst on December 26, 2011, 03:46:38 pm

LogInSystem script with 500+ (also 400+) accounts hangs server for 1-2 sec, just before Top10 list appearance on new map. Its not occurs with 200+ accounts. Anyone else have the same problem? How can I fix this?

This is primarily due to the sort algorithm used to order the accounts. A binary tree as iDante suggested could fix this issue. I'm afraid, but I'm not going to maintain the script any longer, because a couple of forum members, including me, are working on global account system. If you want to get more information about our project join our quakenet channel #soldat.sgas. Though, I would really appreciate any updates to the script. I hope someone is going to sacrifice his or her time to help you.

and maybe you can do something about this too since you are doing a final update?

Yeah, this is definitely on my to-do-list.
Title: Re: LogInSystem v1.5
Post by: MrHamsTR on December 30, 2012, 08:58:48 pm
I have problem;
I moved loginsystem /scripts then moved loginsystem_data /scripts/loginsystem
I try other ways, moved /scripts (loginsystem and loginsystemdata in scripts)
I try; in loginsystem_data, I moved all files loginsystem
I try moved only loginsystem to /scripts than I have a problem;
-costumline file: costum.txt doesn't exist
shutting bla bla....

what is this?
Title: Re: LogInSystem v1.5
Post by: Bonecrusher on December 31, 2012, 05:54:27 am
The LoginSystem folder has to be in Scripts folder and the loginsystem_data in the main soldatserver folder:
(http://i.imgur.com/AwYN3.png) works for me
Title: Re: LogInSystem v1.5
Post by: MrHamsTR on December 31, 2012, 06:32:07 am
Ohh thanks brother :)
It's working now, thank you so much :)