-
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::
- Database-driven account manager: Players are able to create an account in order to save and track their personal stats.
- Over 15 unique stats: Kills, Deaths, Selfkills, Visits, Time Played, Damage Dealt, Double Kills and much more ...
- Customizable stats: Modify default stats according to your own ideas, or just create your favorite stats yourself - be creative, it's easy!
- Implemented ranking system: What rank could you achieve? - Sorts the entire accounts by a certain statistic you defined.
- Multilingual user interface: Don't speak English? - No worries, choose your preferred language and LogInSystem will adapt to it!
- Database repair: Auto restores and cleans corrupted user accounts.
- Backup function: Lost your account? - Check your old account data to help you restore it.
- MD5 password encryption: Secures important user data like passwords from theft.
- Subadminlogin: Recruit sub-admins to help you managing your server.
::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:
Period | Example | Result |
never | BackupFreq= | No backup will ever be created |
daily | BackFreq=daily | New backup will be created once a day |
weekly | BackupFreq=weekly Friday | Every Friday all user accounts will be saved |
monthly | BackupFreq=monthly 01 | On 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:
Alias | Statistic name |
IsVisible | Is stat visible for user? |
Checksum | Depending on whether your stat typifies an integer or string value create an appropriate checksum |
SValue | Default value, used by account creation process |
IgnoreBots | Regulates the influence of bots on gameplay stats |
ShowSession | Is 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:
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 |
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:
_______________________________
|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\.:: 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:
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::
- a widely varying offer of achievements
- more stats encouraging people to play together as team
- support for more languages - visit the official language topic (http://forums.soldat.pl/index.php?topic=32235.msg382261#msg382261)
- function to show stats on the web
- support for optional formula all accounts can be ordered by
::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).
-
Nice release! Keep it up, awaiting the top-list feature :)
SQLite support for the Soldatserver would be something awesome... EnEsCe? :D
-
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
-
Hurrrraaa! Good job! Just by the looks of the topic I can just tell that its shiny :P
-
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) ;)
-
Good work :) I add this my Server :D Oo Love it^^
-
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]
-
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
-
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 ;)
-
sounds good.
we have 8 publics right now, and i dont want the gamer to register on every server seperatly :D
-
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.
-
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 :)
-
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
-
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.
-
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 - [Error] default---> <ActivateServer>: I/O error 103
And on having put this goes out for me in console
- [Error] default --> <OnPlayerCommand>: TRegExpr<comp>: Invalid [] Range <pos 4>
-
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
-
mmm see http://s1.subirimagenes.com/otros/1926570script.jpg
Nothing happens(passes) and this way this one
-
Forgive decisive(resolved) problem anklebone extracting badly the folder thank you for the help it(he,she) will try to reach adding the Spanish
-
Cool ! Thanks for release.
-
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? :/
-
Did u accually name the file 'costum.txt'? Just name it 'costum'.
-
Very nice although won't soldat have rankings & accounts in the nxt release?
-
Did u accually name the file 'costum.txt'? Just name it 'costum'.
i didnt name/create anything, it was already there
-
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.
-
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.
-
LogInSystem v1.2b is out!
Changelog:
--------------------------------------------------------------------
- [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).
-
Sweet! Good job!
-
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
-
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.
-
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 :)
-
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.
-
(23:25:29)
(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
-
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.
-
no, its new database, but yeah, i think i recompiled when there were players logged in. My bad :P
just got this:
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)
(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
-
That doesn't surprise me, please set up a new database without any accounts :P
Problem should be solved then.
-
Quick Patch released.
Changelog:
--------------------------------------------------------------------
- [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...
-
Third update released :D
Changelog:
--------------------------------------------------------------------
- [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:
[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.
-
- Selfkills are not anymore counted by the end of a round if the gamemode is set to survival
<3
-
LogInSystem v1.4 released!
Changelog:
--------------------------------------------------------------------
- [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).
-
here you have spanish translation, sorry it took that long but i had better things to do
-
Thanks :) Will be added to the script soon.
You posted it the wrong topic but I don't mind.
-
Nice release , but i have same error as Mittsu had. All seems to be fine with files
-
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
-
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
-
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!
-
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 :)
-
That's all done already, try /stats. and the other things shows all 2 or 3 minutes i think
-
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....
--------------------------------------------------------------------
- [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
-
Heh, 'Buy Now'?
-
looks like a very good joke he made :D
-
"Buy Now"
Hahah that was really good :D
-
Best loginsytem i have ever seen :o... Very good job ;)
-
--------------------------------------------------------------------
- [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 **
-
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 ??? :-\ :-\ :-\
-
I have such a problem the script is not working and it's nothing! ;(
(http://i50.tinypic.com/derb7l.jpg)
-
This script is no longer available.
-
What?
Please provide! :-\
-
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 **
-
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?
-
i think EnEsCe can encrypt scripts like that
-
Any possibility on a merge feature for accounts?
-
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.
-
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.
-
File on soldatcentral seems to be incomplete or bugged
-
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
-
- EnEsCe for his amazing script core & scripting manual
lol
-
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.
-
Not encrypted \o/
-
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)
-
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.
-
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 ...
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.
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)
-
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
-
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?
-
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:
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.
-
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.
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:
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?
-
How about moving sorting algorithm into onmapchange event? It will fix the problem. Noone has to have life stats... :)
-
Make the sorting part Thread Func'd.
-
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.
-
_FOLDER_VIPLIST = './loginsystem_data/viplist/';
Why does not anything else related to viplist...
and sorry bad engilish :D
-
_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.
-
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).
-
Not working in soldat server 2.7 (1.6rc1)...
- LogInSystem -> [Error] <81:55>: Duplicate identifier 'LastSave'
I know that's an RC version, but I'm just warning =]
-
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.
-
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?
-
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?
-
Soldat 1.6rc...
soldatserver 2.7
-
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.
-
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?
-
Hehe yea, his private bug list also known as to-do list :P
-
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'
-
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).
-
(22:08:44)
- [Error] LogInSystem -> (OnPlayerDamage): Could not call proc
(22:08:45) - [Error] LogInSystem -> (OnJoinGame): Access violation at address 00453BD7 in module 'soldatserver.exe'. Read of address 00000106
(22:08:45) Nightghost has joined bravo team.
(22:08:45) - [Error] LogInSystem -> (OnJoinTeam): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000106
(22:08:45) - [Error] LogInSystem -> (OnPlayerDamage): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000118
(22:08:45) - [Error] LogInSystem -> (OnPlayerDamage): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000128
(22:08:45) - [Error] LogInSystem -> (OnPlayerDamage): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000138
(22:08:45) - [Error] LogInSystem -> (AppOnIdle): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000148
(22:08:45) - [Error] LogInSystem -> (OnPlayerDamage): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000158
(22:08:46) - [Error] LogInSystem -> (OnPlayerDamage): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000168
(22:08:46) - [Error] LogInSystem -> (OnPlayerKill): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000178
(22:08:46) - [Error] LogInSystem -> (AppOnIdle): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000188
(22:08:46) - Too many script errors! Shutting down server -> "LogInSystem"
Soldat 1.5
3x today...
-
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.
-
(16:50:36) Major(1) joining game (187.111.180.36:23073)
(16:50:37) Major(1) has joined bravo team.
(16:50:37) - [Error] LogInSystem -> (OnJoinTeam): Out of Global Vars range
(16:50:37) - [Error] LogInSystem -> (AppOnIdle): Access violation at address 00453BD7 in module 'soldatserver.exe'. Read of address 00000106
(16:50:37) MSAC Server: Major(1) (187.111.180.36:23073) - GUID H9QYZ4X:HC3JJJX:NLWL5V5
(16:50:37) - [Error] LogInSystem -> (AppOnIdle): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000106
(16:50:38) - [Error] LogInSystem -> (AppOnIdle): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000118
(16:50:39) - [Error] LogInSystem -> (AppOnIdle): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000128
(16:50:40) - [Error] LogInSystem -> (AppOnIdle): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000138
(16:50:40) - [Error] LogInSystem -> (OnPlayerDamage): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000148
(16:50:40) - [Error] LogInSystem -> (OnPlayerDamage): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000158
(16:50:41) - [Error] LogInSystem -> (OnPlayerDamage): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000168
(16:50:41) - [Error] LogInSystem -> (OnPlayerKill): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000178
(16:50:42) - [Error] LogInSystem -> (OnPlayerDamage): Access violation at address 00453C54 in module 'soldatserver.exe'. Write of address 00000188
(16:50:42) - Too many script errors! Shutting down server -> "LogInSystem"
-
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.
-
Could you make it that won't require password for registering and use HWID instead ?
-
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.
-
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.
-
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 :)
-
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.
-
Changing player's account name (ingame nickname) with command would be nice, ofc if it's possible to add.
-
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.
-
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.
-
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...
- Ability for anyone and/or administrator to mark a player to not to be in consideration inside the rankings. That is, a player will still retain his stats but not be listed in the rankings (good for blacklisting, punishments or simply other purposes in contests).
- Possibility for a player to add his contact (perhaps email or Xfire or alternative?) to his account so anyone can reach out to them or ultimately the server administrator.
- Besides Played from last IP, perhaps add HWIDs somewhere.
- Allow players to have one or two additional nicknames for their accounts.
-
Some new ideas have arrived in my inbox, so I will list them here...
- Add the ability to a player to recover/change his/her password without any admin intervention.
- Add the ability to an admin to remove subadmin permissions
- Add the ability to a player to reset his stats (a flag controlling this for security reasons should be OK)
-
_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?
-
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.
-
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?
-
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
-
Ohh thanks brother :)
It's working now, thank you so much :)