From cc8831e34e37f2fa6607ab946ace67919c058027 Mon Sep 17 00:00:00 2001 From: KixtNorkazz Date: Sun, 15 Mar 2026 01:11:57 +0100 Subject: [PATCH 1/2] Fix \r error in .txt files that in repo shipped with Windows line endings and .gitattributes typo ('test' instead of 'text'). There is also a bug in dependencies/gs2lib/src/CSettings.cpp. CSettings::getSettings() was explicitly converting line endings to CRLF before saving, causing localip to be read as '10.x.x.x\r' which fails validation silently. Servers appear on the serverlist but clients cannot connect. I fixed the file by commenting out 'options.replaceAllI(n, rn);' --- .gitattributes | 8 +- bin/readme.txt | 376 ++++++++-------- bin/servers/default/accounts/YOURACCOUNT.txt | 144 +++--- .../default/accounts/defaultaccount.txt | 96 ++-- bin/servers/default/config/adminconfig.txt | 26 +- .../default/config/allowedversions.txt | 86 ++-- bin/servers/default/config/foldersconfig.txt | 68 +-- bin/servers/default/config/rchelp.txt | 40 +- bin/servers/default/config/rcmessage.txt | 2 +- bin/servers/default/config/rules.example.txt | 64 +-- bin/servers/default/config/servermessage.html | 56 +-- bin/servers/default/config/serveroptions.txt | 412 +++++++++--------- .../default/documents/docu_wordfilter.txt | 182 ++++---- bin/servers/default/documents/rules.txt | 34 +- bin/servers/default/execscripts/readme.txt | 60 +-- bin/servers/default/guilds/guildExample.txt | 6 +- .../default/weapons/weapon-gr_movement.txt | 26 +- bin/servers/default/world/readme.txt | 70 +-- dependencies/miniupnp | 2 +- gs2emu.ico | Bin 100436 -> 100435 bytes 20 files changed, 882 insertions(+), 876 deletions(-) diff --git a/.gitattributes b/.gitattributes index f2d9aac3e..b390900ce 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,8 @@ -* test eol=lf +* text=auto eol=lf +*.ico binary +*.png binary +*.gif binary +*.wav binary +*.mp3 binary +*.mid binary bin/servers/* binary diff --git a/bin/readme.txt b/bin/readme.txt index 4f4150ea3..822d9b4ce 100644 --- a/bin/readme.txt +++ b/bin/readme.txt @@ -1,189 +1,189 @@ -Graal Reborn GServer -Created by: Joey, Nalin, dufresnep, Codr, Marlon. -Based off the original work by 39ster. -For their additional work on the old gserver, special thanks go to: - Agret, Beholder, Joey, Marlon, Nalin, and Pac. - ----------------------------- -| Quick Start Instructions | ----------------------------- - -How-to setup a server: - -1) Under the accounts folder, rename the text file 'YOURACCOUNT.txt' to your account name. For example: 'KuJi.txt' -2) Modify defaultaccount.txt to your liking. This is the default settings new players will start with. It can also be modified via RC. -3) Open config/serveroptions.txt and edit it to your liking. Be sure to modify the settings under "Private server options". Help for what these options do are available on the forums and in the file itself. -4) Find the line that starts with "staff=" in config/serveroptions.txt. Replace YOURACCOUNT with your account name. Anybody who needs RC access must be added to this line with their account names separated by commas. Additionally, RC users must have their IP range changed to at least *.*.*.* in their account to connect. -5) Port forward if needed. (Many threads on this topic exist in the forums. If you are having trouble, seek them out. Try the tutorials forum.) Basically, if you are behind a router and your computer isn't set to be the "DMZ", you will need to port forward. -6) Run gserver2.exe -- enjoy. -7) Report any bugs on http://www.graal.in/ - - ---------------- -| servers.txt | ---------------- - -The gserver can run multiple servers at once without needing to spawn separate processes. This is accomplished by the servers.txt file. This file will tell the gserver how many servers to run and where they are located, as well as some optional ip and port overrides. - -The file looks like this: - servercount = 1 - server_1 = default - server_1_ip = myserver.com - server_1_port = 12345 - server_1_localip = 127.0.0.1 - server_1_interface = 192.168.2.1 - -servercount specifies the number of servers. In the default file, that is 1 server. -server_# specifies the directory the server is under. -server_#_ip specifies an optional ip address override. -server_#_port specifies an optional port override. -server_#_localip specifies an optional localip override. -server_#_interface specifies an optional interface override. - -All of the optional overrides will take precedence over the options defined in serveroptions.txt. - - -------------------------------------- -| Special Graal Reborn NPC commands | -------------------------------------- - -The Graal Reborn gserver has a couple special NPC commands built in. - -join somefile; - Much like official Graal's server-side join command, this command searches for somefile.txt and appends the contents to the end of the NPC script. - -singleplayer - This command is like the sparringzone command. When placed by itself with no semi-colon inside an NPC, it signifies that the level is "singleplayer." (SEE: Singleplayer Levels). - - ------------------------ -| Singleplayer Levels | ------------------------ - -The Graal Reborn gserver has the ability to toggle a level as "singleplayer." In this mode, the user cannot see any other player in the level. Any changes they make to the level are not replicated to other users. They are, in essence, in a level by themselves. - -To activate singleplayer mode, add an NPC to the level and add the single command "singleplayer" to the level, much like how the "sparringzone" command works. - - ----------------- -| Group Maps | ----------------- - -Like singleplayer levels, group maps allow only players in a group to see each other in a level. Player groups can be managed via the gr.setgroup and gr.setlevelgroup triggeractions (SEE: Graal Reborn special triggeractions). - -Individual levels cannot be set as group levels; instead, an entire map must be specified as a group map. The "groupmaps" server option specifies a comma-delimited list of maps that can contain groups. - - -------------------------------------- -| Graal Reborn special client flags | -------------------------------------- - -There are a few special client flags built into the gserver. These are: -gr.x -gr.y -gr.z - -These flags are used by the -gr_movement weapon included in the server weapons folder to simulate the smooth movement as found in the Graal clients 2.3 and up. - -If you don't want the gserver to recognize these flags, set the flaghack_movement setting to false in serveroptions.txt. - -Also, if flaghack_ip is enabled in the serveroptions.txt file, you can gain access to the following: -gr.ip - - ---------------------------------------- -| Graal Reborn special triggeractions | ---------------------------------------- - -The Graal Reborn gserver has a couple unique triggeractions built into it. They can be enabled/disabled by altering the setting that controls their group in serveroptions.txt. They are as follows: - -Controlled by the setting triggerhack_weapons: - triggeraction 0,0,gr.addweapon,weapon1,weapon2,weapon3; - Adds weapon1, weapon2, and weapon3 to the player's account. - - triggeraction 0,0,gr.deleteweapon,weapon1,weapon2,weapon3; - Removes weapon1, weapon2, and weapon3 from the player's account. - -Controlled by the setting triggerhack_guilds: - triggeraction 0,0,gr.addguildmember,guild,account,nickname; - Adds a player to the specified guild. Nickname is optional. - - triggeraction 0,0,gr.removeguildmember,guild,account; - Removes a player from the specified guild. - - triggeraction 0,0,gr.removeguild,guild; - Removes the guild from the server. - - triggeraction 0,0,gr.setguild,guild,account; - Sets the player's guild tag to the specified guild. - -Controlled by the setting triggerhack_groups: - triggeraction 0,0,gr.setgroup,group; - Adds the player to the specified group. - - triggeraction 0,0,gr.setlevelgroup,group; - Adds all the players in the level to the specified group. - - triggeraction 0,0,gr.setplayergroup,account,group; - Adds the specified player to the specified group. - -Controlled by the setting triggerhack_files: - triggeraction 0,0,gr.appendfile,filename,text; - Opens the file specified, located in the server's logs directory, and appends a line of text. - - triggeraction 0,0,gr.writefile,filename,text; - Opens the file specified, located in the server's logs directory, erases all of its contents, and writes a line of text. - - triggeraction 0,0,gr.readfile,filename,line_pos; - Opens the file specified, located in the server's logs directory, reads the given line number, and returns the contents to the player. - File contents are returned on the following flags: - gr.fileerror: String list. First index is a random number, subsequent indexes are error values. Error 1 = line_pos was outside of range. In this case, the next value is the line number returned. - gr.filedata: The file data. - -Controlled by the setting triggerhack_rc: - triggeraction 0,0,gr.rcchat,Some chat text; - Sends some chat text to any logged in RC's. - -Controlled by the setting triggerhack_execscript: - triggeraction 0,0,gr.es_clear; - Clears the execscript parameter list. - - triggeraction 0,0,gr.es_set,param1,param2,...; - Sets the execscript parameter list. - - triggeraction 0,0,gr.es_append,phrase; - Appends phrase directly to the end of the set parameter list. - - triggeraction 0,0,gr.es,account,script_name; - Sends the execscript to the specified account, or everybody if ALLPLAYERS was specified. - View the execscript/readme.txt file for more information. - -Controlled by the setting triggerhack_props: - triggeraction 0,0,gr.attr1,data; - Sets data on the specified attribute. gr.attr1 - gr.attr30 work. - - triggeraction 0,0,gr.fullhearts,amount; - Sets the player's fullhearts to the specified amount. - -Controlled by the setting triggerhack_levels: - triggeraction 0,0,gr.updatelevel; - Updates the current level. - - triggeraction 0,0,gr.updatelevel,levelname; - Updates the specified level. - -Not controlled by any option: - triggeraction 0,0,gr.npc.move,id,dx,dy,duration,options; - Creates a serverside move command for the specified NPC. - - triggeraction 0,0,gr.npc.setpos,id,x,y; - Sets an NPC's position. - - -------------------- -| Weapon bytecode | -------------------- -Place weapon bytecode in the weapon_bytecode/ folder. Inside each weapon file in weapons/, add the following: -BYTECODE name_of_file - +Graal Reborn GServer +Created by: Joey, Nalin, dufresnep, Codr, Marlon. +Based off the original work by 39ster. +For their additional work on the old gserver, special thanks go to: + Agret, Beholder, Joey, Marlon, Nalin, and Pac. + +---------------------------- +| Quick Start Instructions | +---------------------------- + +How-to setup a server: + +1) Under the accounts folder, rename the text file 'YOURACCOUNT.txt' to your account name. For example: 'KuJi.txt' +2) Modify defaultaccount.txt to your liking. This is the default settings new players will start with. It can also be modified via RC. +3) Open config/serveroptions.txt and edit it to your liking. Be sure to modify the settings under "Private server options". Help for what these options do are available on the forums and in the file itself. +4) Find the line that starts with "staff=" in config/serveroptions.txt. Replace YOURACCOUNT with your account name. Anybody who needs RC access must be added to this line with their account names separated by commas. Additionally, RC users must have their IP range changed to at least *.*.*.* in their account to connect. +5) Port forward if needed. (Many threads on this topic exist in the forums. If you are having trouble, seek them out. Try the tutorials forum.) Basically, if you are behind a router and your computer isn't set to be the "DMZ", you will need to port forward. +6) Run gserver2.exe -- enjoy. +7) Report any bugs on http://www.graal.in/ + + +--------------- +| servers.txt | +--------------- + +The gserver can run multiple servers at once without needing to spawn separate processes. This is accomplished by the servers.txt file. This file will tell the gserver how many servers to run and where they are located, as well as some optional ip and port overrides. + +The file looks like this: + servercount = 1 + server_1 = default + server_1_ip = myserver.com + server_1_port = 12345 + server_1_localip = 127.0.0.1 + server_1_interface = 192.168.2.1 + +servercount specifies the number of servers. In the default file, that is 1 server. +server_# specifies the directory the server is under. +server_#_ip specifies an optional ip address override. +server_#_port specifies an optional port override. +server_#_localip specifies an optional localip override. +server_#_interface specifies an optional interface override. + +All of the optional overrides will take precedence over the options defined in serveroptions.txt. + + +------------------------------------- +| Special Graal Reborn NPC commands | +------------------------------------- + +The Graal Reborn gserver has a couple special NPC commands built in. + +join somefile; + Much like official Graal's server-side join command, this command searches for somefile.txt and appends the contents to the end of the NPC script. + +singleplayer + This command is like the sparringzone command. When placed by itself with no semi-colon inside an NPC, it signifies that the level is "singleplayer." (SEE: Singleplayer Levels). + + +----------------------- +| Singleplayer Levels | +----------------------- + +The Graal Reborn gserver has the ability to toggle a level as "singleplayer." In this mode, the user cannot see any other player in the level. Any changes they make to the level are not replicated to other users. They are, in essence, in a level by themselves. + +To activate singleplayer mode, add an NPC to the level and add the single command "singleplayer" to the level, much like how the "sparringzone" command works. + + +---------------- +| Group Maps | +---------------- + +Like singleplayer levels, group maps allow only players in a group to see each other in a level. Player groups can be managed via the gr.setgroup and gr.setlevelgroup triggeractions (SEE: Graal Reborn special triggeractions). + +Individual levels cannot be set as group levels; instead, an entire map must be specified as a group map. The "groupmaps" server option specifies a comma-delimited list of maps that can contain groups. + + +------------------------------------- +| Graal Reborn special client flags | +------------------------------------- + +There are a few special client flags built into the gserver. These are: +gr.x +gr.y +gr.z + +These flags are used by the -gr_movement weapon included in the server weapons folder to simulate the smooth movement as found in the Graal clients 2.3 and up. + +If you don't want the gserver to recognize these flags, set the flaghack_movement setting to false in serveroptions.txt. + +Also, if flaghack_ip is enabled in the serveroptions.txt file, you can gain access to the following: +gr.ip + + +--------------------------------------- +| Graal Reborn special triggeractions | +--------------------------------------- + +The Graal Reborn gserver has a couple unique triggeractions built into it. They can be enabled/disabled by altering the setting that controls their group in serveroptions.txt. They are as follows: + +Controlled by the setting triggerhack_weapons: + triggeraction 0,0,gr.addweapon,weapon1,weapon2,weapon3; + Adds weapon1, weapon2, and weapon3 to the player's account. + + triggeraction 0,0,gr.deleteweapon,weapon1,weapon2,weapon3; + Removes weapon1, weapon2, and weapon3 from the player's account. + +Controlled by the setting triggerhack_guilds: + triggeraction 0,0,gr.addguildmember,guild,account,nickname; + Adds a player to the specified guild. Nickname is optional. + + triggeraction 0,0,gr.removeguildmember,guild,account; + Removes a player from the specified guild. + + triggeraction 0,0,gr.removeguild,guild; + Removes the guild from the server. + + triggeraction 0,0,gr.setguild,guild,account; + Sets the player's guild tag to the specified guild. + +Controlled by the setting triggerhack_groups: + triggeraction 0,0,gr.setgroup,group; + Adds the player to the specified group. + + triggeraction 0,0,gr.setlevelgroup,group; + Adds all the players in the level to the specified group. + + triggeraction 0,0,gr.setplayergroup,account,group; + Adds the specified player to the specified group. + +Controlled by the setting triggerhack_files: + triggeraction 0,0,gr.appendfile,filename,text; + Opens the file specified, located in the server's logs directory, and appends a line of text. + + triggeraction 0,0,gr.writefile,filename,text; + Opens the file specified, located in the server's logs directory, erases all of its contents, and writes a line of text. + + triggeraction 0,0,gr.readfile,filename,line_pos; + Opens the file specified, located in the server's logs directory, reads the given line number, and returns the contents to the player. + File contents are returned on the following flags: + gr.fileerror: String list. First index is a random number, subsequent indexes are error values. Error 1 = line_pos was outside of range. In this case, the next value is the line number returned. + gr.filedata: The file data. + +Controlled by the setting triggerhack_rc: + triggeraction 0,0,gr.rcchat,Some chat text; + Sends some chat text to any logged in RC's. + +Controlled by the setting triggerhack_execscript: + triggeraction 0,0,gr.es_clear; + Clears the execscript parameter list. + + triggeraction 0,0,gr.es_set,param1,param2,...; + Sets the execscript parameter list. + + triggeraction 0,0,gr.es_append,phrase; + Appends phrase directly to the end of the set parameter list. + + triggeraction 0,0,gr.es,account,script_name; + Sends the execscript to the specified account, or everybody if ALLPLAYERS was specified. + View the execscript/readme.txt file for more information. + +Controlled by the setting triggerhack_props: + triggeraction 0,0,gr.attr1,data; + Sets data on the specified attribute. gr.attr1 - gr.attr30 work. + + triggeraction 0,0,gr.fullhearts,amount; + Sets the player's fullhearts to the specified amount. + +Controlled by the setting triggerhack_levels: + triggeraction 0,0,gr.updatelevel; + Updates the current level. + + triggeraction 0,0,gr.updatelevel,levelname; + Updates the specified level. + +Not controlled by any option: + triggeraction 0,0,gr.npc.move,id,dx,dy,duration,options; + Creates a serverside move command for the specified NPC. + + triggeraction 0,0,gr.npc.setpos,id,x,y; + Sets an NPC's position. + + +------------------- +| Weapon bytecode | +------------------- +Place weapon bytecode in the weapon_bytecode/ folder. Inside each weapon file in weapons/, add the following: +BYTECODE name_of_file + The gserver will load weapon_bytecode/name_of_file and use the bytecode contained there-in. \ No newline at end of file diff --git a/bin/servers/default/accounts/YOURACCOUNT.txt b/bin/servers/default/accounts/YOURACCOUNT.txt index e03f7785d..ca22d71de 100644 --- a/bin/servers/default/accounts/YOURACCOUNT.txt +++ b/bin/servers/default/accounts/YOURACCOUNT.txt @@ -1,72 +1,72 @@ -GRACC001 -NAME YOURACCOUNT -NICK unknown -COMMUNITYNAME YOURACCOUNT -LEVEL onlinestartlocal.nw -X 30.00 -Y 30.50 -Z 0.00 -MAXHP 3.00 -HP 3.00 -RUPEES 0 -ANI idle -ARROWS 10 -BOMBS 5 -GLOVEP 1 -SHIELDP 1 -SWORDP 1 -BOWP 1 -BOW -HEAD head0.png -BODY body.png -SWORD sword1.png -SHIELD shield1.png -COLORS 2,0,10,4,18 -SPRITE 2 -STATUS 21 -MP 0 -AP 50 -APCOUNTER 30 -ONSECS 0 -IP -2115681208 -LANGUAGE English -KILLS 0 -DEATHS 0 -RATING 1500.00 -DEVIATION 350.00 -LASTSPARTIME 0 -WEAPON bomb -WEAPON bow -WEAPON -gr_movement - -BANNED 0 -BANREASON -BANLENGTH -COMMENTS -EMAIL -LOCALRIGHTS 1040383 -IPRANGE *.*.*.* -FOLDERRIGHT rw accounts/* -FOLDERRIGHT rw config/* -FOLDERRIGHT rw documents/* -FOLDERRIGHT rw guilds/* -FOLDERRIGHT rw logs/* -FOLDERRIGHT rw npcprops/* -FOLDERRIGHT rw translations/* -FOLDERRIGHT r weapons/* -FOLDERRIGHT rw world/* -FOLDERRIGHT rw world/levels/* -FOLDERRIGHT rw world/bodies/* -FOLDERRIGHT rw world/ganis/* -FOLDERRIGHT rw world/global/* -FOLDERRIGHT rw world/global/heads/* -FOLDERRIGHT rw world/global/bodies/* -FOLDERRIGHT rw world/global/swords/* -FOLDERRIGHT rw world/global/shields/* -FOLDERRIGHT rw world/hats/* -FOLDERRIGHT rw world/heads/* -FOLDERRIGHT rw world/images/* -FOLDERRIGHT rw world/shields/* -FOLDERRIGHT rw world/swords/* -FOLDERRIGHT rw world/sounds/* -LASTFOLDER accounts/ +GRACC001 +NAME YOURACCOUNT +NICK unknown +COMMUNITYNAME YOURACCOUNT +LEVEL onlinestartlocal.nw +X 30.00 +Y 30.50 +Z 0.00 +MAXHP 3.00 +HP 3.00 +RUPEES 0 +ANI idle +ARROWS 10 +BOMBS 5 +GLOVEP 1 +SHIELDP 1 +SWORDP 1 +BOWP 1 +BOW +HEAD head0.png +BODY body.png +SWORD sword1.png +SHIELD shield1.png +COLORS 2,0,10,4,18 +SPRITE 2 +STATUS 21 +MP 0 +AP 50 +APCOUNTER 30 +ONSECS 0 +IP -2115681208 +LANGUAGE English +KILLS 0 +DEATHS 0 +RATING 1500.00 +DEVIATION 350.00 +LASTSPARTIME 0 +WEAPON bomb +WEAPON bow +WEAPON -gr_movement + +BANNED 0 +BANREASON +BANLENGTH +COMMENTS +EMAIL +LOCALRIGHTS 1040383 +IPRANGE *.*.*.* +FOLDERRIGHT rw accounts/* +FOLDERRIGHT rw config/* +FOLDERRIGHT rw documents/* +FOLDERRIGHT rw guilds/* +FOLDERRIGHT rw logs/* +FOLDERRIGHT rw npcprops/* +FOLDERRIGHT rw translations/* +FOLDERRIGHT r weapons/* +FOLDERRIGHT rw world/* +FOLDERRIGHT rw world/levels/* +FOLDERRIGHT rw world/bodies/* +FOLDERRIGHT rw world/ganis/* +FOLDERRIGHT rw world/global/* +FOLDERRIGHT rw world/global/heads/* +FOLDERRIGHT rw world/global/bodies/* +FOLDERRIGHT rw world/global/swords/* +FOLDERRIGHT rw world/global/shields/* +FOLDERRIGHT rw world/hats/* +FOLDERRIGHT rw world/heads/* +FOLDERRIGHT rw world/images/* +FOLDERRIGHT rw world/shields/* +FOLDERRIGHT rw world/swords/* +FOLDERRIGHT rw world/sounds/* +LASTFOLDER accounts/ diff --git a/bin/servers/default/accounts/defaultaccount.txt b/bin/servers/default/accounts/defaultaccount.txt index c8859c106..a2039b920 100644 --- a/bin/servers/default/accounts/defaultaccount.txt +++ b/bin/servers/default/accounts/defaultaccount.txt @@ -1,48 +1,48 @@ -GRACC001 -NAME default -NICK default -COMMUNITYNAME default -LEVEL onlinestartlocal.nw -X 30.00 -Y 30.50 -Z 0.00 -MAXHP 3.00 -HP 3.00 -RUPEES 0 -ANI idle -ARROWS 10 -BOMBS 5 -GLOVEP 1 -SHIELDP 1 -SWORDP 1 -BOWP 1 -BOW -HEAD head0.png -BODY body.png -SWORD sword1.png -SHIELD shield1.png -COLORS 2,0,10,4,18 -SPRITE 2 -STATUS 20 -MP 0 -AP 50 -APCOUNTER 60 -ONSECS 0 -IP -2115681208 -LANGUAGE English -KILLS 0 -DEATHS 0 -RATING 1500.00 -DEVIATION 350.00 -WEAPON bomb -WEAPON bow -WEAPON -gr_movement - -BANNED 0 -BANREASON -BANLENGTH -COMMENTS -EMAIL -LOCALRIGHTS 0 -IPRANGE 0.0.0.0 -LASTFOLDER +GRACC001 +NAME default +NICK default +COMMUNITYNAME default +LEVEL onlinestartlocal.nw +X 30.00 +Y 30.50 +Z 0.00 +MAXHP 3.00 +HP 3.00 +RUPEES 0 +ANI idle +ARROWS 10 +BOMBS 5 +GLOVEP 1 +SHIELDP 1 +SWORDP 1 +BOWP 1 +BOW +HEAD head0.png +BODY body.png +SWORD sword1.png +SHIELD shield1.png +COLORS 2,0,10,4,18 +SPRITE 2 +STATUS 20 +MP 0 +AP 50 +APCOUNTER 60 +ONSECS 0 +IP -2115681208 +LANGUAGE English +KILLS 0 +DEATHS 0 +RATING 1500.00 +DEVIATION 350.00 +WEAPON bomb +WEAPON bow +WEAPON -gr_movement + +BANNED 0 +BANREASON +BANLENGTH +COMMENTS +EMAIL +LOCALRIGHTS 0 +IPRANGE 0.0.0.0 +LASTFOLDER diff --git a/bin/servers/default/config/adminconfig.txt b/bin/servers/default/config/adminconfig.txt index 28543e776..a0b371f71 100644 --- a/bin/servers/default/config/adminconfig.txt +++ b/bin/servers/default/config/adminconfig.txt @@ -1,14 +1,14 @@ -# ServerHQ password for the server. -hq_password = - -# Current level the server is set to. -# If you specify a level that is higher than the server's allowed level, -# it will pick the next highest. -# 3 = Gold -# 2 = Silver -# 1 = Bronze -# 0 = Hidden -hq_level = 1 - -# NPC-Server address (to send to RC's, should be same as gserver) +# ServerHQ password for the server. +hq_password = + +# Current level the server is set to. +# If you specify a level that is higher than the server's allowed level, +# it will pick the next highest. +# 3 = Gold +# 2 = Silver +# 1 = Bronze +# 0 = Hidden +hq_level = 1 + +# NPC-Server address (to send to RC's, should be same as gserver) ns_ip = 127.0.0.1 \ No newline at end of file diff --git a/bin/servers/default/config/allowedversions.txt b/bin/servers/default/config/allowedversions.txt index 8ec88e620..3c9ef008f 100644 --- a/bin/servers/default/config/allowedversions.txt +++ b/bin/servers/default/config/allowedversions.txt @@ -1,43 +1,43 @@ -// List of version strings. -// Uncomment versions you want to use. -// Use a colon to specify a range of versions. -// For example, to allow 2.171 through 2.31, use: GNW22122:GNW28015 - -//GNW13110 // 1.41r1 -//GNW31101 // 2.1.0.x -//GNW01012 // 2.1.2.x -//GNW23012 // 2.1.3.x -//GNW30042 // 2.1.4.x -//GNW19052 // 2.1.5.0 -//GNW20052 // 2.1.5.1 / 2.1.5.2 -//GNW12102 // 2.1.6.x - -//GNW22122 // 2.1.7.x - -//GNW21033 // 2.1.8.x -//GNW15053 // 2.1.9.x -//GNW28063 // 2.2.0.0 -//GNW01113 // 2.2.1.1 - -GNW03014 // 2.2.2.0 - -//GNW14015 // 2.3.0.0 -//GNW28015 // 2.3.1.0 - -//G3D16053 // 3.0.0.0 -//G3D27063 // 3.0.1.0 -//G3D03014 // 3.0.4.1 - -//G3D28095 // 4.0.2.11 -//G3D09125 // 4.0.3.4 -//G3D17026 // 4.0.4.2 -//G3D26076 // 4.1.1.0 -//G3D20126 // 4.2.0.8 - -//G3D22067 // 5.0.0.7 -//G3D14097 // 5.1.2.0 -//G3D3007A // 6.0.0.7 -//G3D3007A // 6.0.1.5 -//G3D2505C // 6.0.3.4 -//G3D0311C // 6.0.3.7 (Windows) -//G3D0511C // 6.0.3.7 (Linux) +// List of version strings. +// Uncomment versions you want to use. +// Use a colon to specify a range of versions. +// For example, to allow 2.171 through 2.31, use: GNW22122:GNW28015 + +//GNW13110 // 1.41r1 +//GNW31101 // 2.1.0.x +//GNW01012 // 2.1.2.x +//GNW23012 // 2.1.3.x +//GNW30042 // 2.1.4.x +//GNW19052 // 2.1.5.0 +//GNW20052 // 2.1.5.1 / 2.1.5.2 +//GNW12102 // 2.1.6.x + +//GNW22122 // 2.1.7.x + +//GNW21033 // 2.1.8.x +//GNW15053 // 2.1.9.x +//GNW28063 // 2.2.0.0 +//GNW01113 // 2.2.1.1 + +GNW03014 // 2.2.2.0 + +//GNW14015 // 2.3.0.0 +//GNW28015 // 2.3.1.0 + +//G3D16053 // 3.0.0.0 +//G3D27063 // 3.0.1.0 +//G3D03014 // 3.0.4.1 + +//G3D28095 // 4.0.2.11 +//G3D09125 // 4.0.3.4 +//G3D17026 // 4.0.4.2 +//G3D26076 // 4.1.1.0 +//G3D20126 // 4.2.0.8 + +//G3D22067 // 5.0.0.7 +//G3D14097 // 5.1.2.0 +//G3D3007A // 6.0.0.7 +//G3D3007A // 6.0.1.5 +//G3D2505C // 6.0.3.4 +//G3D0311C // 6.0.3.7 (Windows) +//G3D0511C // 6.0.3.7 (Linux) diff --git a/bin/servers/default/config/foldersconfig.txt b/bin/servers/default/config/foldersconfig.txt index 1ce119f96..7e1f9ff6d 100644 --- a/bin/servers/default/config/foldersconfig.txt +++ b/bin/servers/default/config/foldersconfig.txt @@ -1,34 +1,34 @@ -# Folder Configuration -head heads/* -body bodies/*.png -sword swords/* -shield shields/* -file ganis/*.gani -file hats/*.png -file images/*.png -file images/*.gif -file images/*.mng -file sounds/*.mid -file sounds/*.mp3 -file sounds/*.wav -file *.gani -file *.gif -file *.mng -file *.png -file *.mid -file *.mp3 -file *.wav -file *.txt -file *.gmap -level *.graal -level *.nw -level *.gmap -file levels/*.gmap -level levels/*.nw -level levels/*.graal -level levels/*.gmap -file global/* -head global/heads/* -body global/bodies/*.png -sword global/swords/* -shield global/shields/* +# Folder Configuration +head heads/* +body bodies/*.png +sword swords/* +shield shields/* +file ganis/*.gani +file hats/*.png +file images/*.png +file images/*.gif +file images/*.mng +file sounds/*.mid +file sounds/*.mp3 +file sounds/*.wav +file *.gani +file *.gif +file *.mng +file *.png +file *.mid +file *.mp3 +file *.wav +file *.txt +file *.gmap +level *.graal +level *.nw +level *.gmap +file levels/*.gmap +level levels/*.nw +level levels/*.graal +level levels/*.gmap +file global/* +head global/heads/* +body global/bodies/*.png +sword global/swords/* +shield global/shields/* diff --git a/bin/servers/default/config/rchelp.txt b/bin/servers/default/config/rchelp.txt index 4078ff2ca..d46caddea 100644 --- a/bin/servers/default/config/rchelp.txt +++ b/bin/servers/default/config/rchelp.txt @@ -1,21 +1,21 @@ -Available commands for GServer: -/help: This message. -/version: Displays gserver version -/credits: Displays gserver credits -/open accountname: Opens the player's attributes window. -/openacc accountname: Opens the player's account window. -/opencomments accountname: Opens the player's comments window. -/openban accountname: Opens the player's ban info. -/openrights accountname: Opens the player's rights window. -/reset accountname: Resets the account. -/refreshservermessage: Reloads servermessage.html. -/refreshfilesystem: Reloads the server's known file list. -/updatelevel level[,level]: Reloads levels from hard disk. -/updatelevelall: updates all loaded levels. -/restartserver: Restarts the server, kicking all joined players. -/reloadserver: Reloads the server configuration files. -/updateserverhq: Sends the ServerHQ information to the serverlist. -/reloadwordfilter: Reloads the word filter rules. -/reloadipbans: Reloads the ip bans. -/reloadweapons: Reloads the weapons from disk. +Available commands for GServer: +/help: This message. +/version: Displays gserver version +/credits: Displays gserver credits +/open accountname: Opens the player's attributes window. +/openacc accountname: Opens the player's account window. +/opencomments accountname: Opens the player's comments window. +/openban accountname: Opens the player's ban info. +/openrights accountname: Opens the player's rights window. +/reset accountname: Resets the account. +/refreshservermessage: Reloads servermessage.html. +/refreshfilesystem: Reloads the server's known file list. +/updatelevel level[,level]: Reloads levels from hard disk. +/updatelevelall: updates all loaded levels. +/restartserver: Restarts the server, kicking all joined players. +/reloadserver: Reloads the server configuration files. +/updateserverhq: Sends the ServerHQ information to the serverlist. +/reloadwordfilter: Reloads the word filter rules. +/reloadipbans: Reloads the ip bans. +/reloadweapons: Reloads the weapons from disk. /find file: Finds a file. Accepts wildcards. \ No newline at end of file diff --git a/bin/servers/default/config/rcmessage.txt b/bin/servers/default/config/rcmessage.txt index df53bc485..e620c8ea1 100644 --- a/bin/servers/default/config/rcmessage.txt +++ b/bin/servers/default/config/rcmessage.txt @@ -1,2 +1,2 @@ -Welcome to the Graal Reborn GServer Remote Control +Welcome to the Graal Reborn GServer Remote Control Say /help for a list of available commands \ No newline at end of file diff --git a/bin/servers/default/config/rules.example.txt b/bin/servers/default/config/rules.example.txt index 19d83f5e8..f2e8cbdbc 100644 --- a/bin/servers/default/config/rules.example.txt +++ b/bin/servers/default/config/rules.example.txt @@ -1,33 +1,33 @@ -WARNMESSAGE Please don't use rude words -SHOWWORDSTORC false - -RULE -CHECK pm chat nick toall -MATCH f?ck -WORDPOSITION start -ACTION replace tellrc -RULEEND - -RULE -CHECK pm chat nick toall -MATCH b?tch -PRECISION 80% -WORDPOSITION full -ACTION replace tellrc -RULEEND - -RULE -CHECK pm chat nick toall -MATCH whore -WORDPOSITION part -ACTION log warn -RULEEND - -RULE -CHECK pm chat nick toall -MATCH asshole -PRECISION 5 -WORDPOSITION start -ACTION log warn replace tellrc -WARNMESSAGE I prefer the term "arse". +WARNMESSAGE Please don't use rude words +SHOWWORDSTORC false + +RULE +CHECK pm chat nick toall +MATCH f?ck +WORDPOSITION start +ACTION replace tellrc +RULEEND + +RULE +CHECK pm chat nick toall +MATCH b?tch +PRECISION 80% +WORDPOSITION full +ACTION replace tellrc +RULEEND + +RULE +CHECK pm chat nick toall +MATCH whore +WORDPOSITION part +ACTION log warn +RULEEND + +RULE +CHECK pm chat nick toall +MATCH asshole +PRECISION 5 +WORDPOSITION start +ACTION log warn replace tellrc +WARNMESSAGE I prefer the term "arse". RULEEND \ No newline at end of file diff --git a/bin/servers/default/config/servermessage.html b/bin/servers/default/config/servermessage.html index a35e8688b..7aa6d5016 100644 --- a/bin/servers/default/config/servermessage.html +++ b/bin/servers/default/config/servermessage.html @@ -1,29 +1,29 @@ - - - -My Server - - - - -
-

Welcome to my server!

- - - -
-

01/01/01

-
    -
  • I installed my server!
  • -
-
- - -
- + + + +My Server + + + + +
+

Welcome to my server!

+ + + +
+

01/01/01

+
    +
  • I installed my server!
  • +
+
+ + +
+ \ No newline at end of file diff --git a/bin/servers/default/config/serveroptions.txt b/bin/servers/default/config/serveroptions.txt index 1e10adbe2..4b7d5659a 100644 --- a/bin/servers/default/config/serveroptions.txt +++ b/bin/servers/default/config/serveroptions.txt @@ -1,206 +1,206 @@ -# Sets the location where new players start on the server. -# By default, the server uses the values inside the defaultaccount. -# These values will override defaultaccount. -#startlevel = onlinestartlocal.nw -#startx = 30 -#starty = 30.5 - -# Specifies where players go when they say "unstick me". -unstickmelevel = onlinestartlocal.nw -unstickmex = 30 -unstickmey = 30.5 -unstickmetime = 30 - -# Players in these levels can''t warp out nor can they PM other players. -jaillevels = police2.graal,police4.graal - -# Enable/disable explosions. -noexplosions = false - -# Enable/disable the ability of the player to change their look. -setbodyallowed = true -setheadallowed = true -setshieldallowed = true -setswordallowed = true -setcolorsallowed = true - -# Defines the amount of Gralats a player drops with they die. -mindeathgralats = 1 -maxdeathgralats = 50 - -# If set to false, only players with the Change Staff Accounts right can alter gralats. -normaladminscanchangegralats = true - -# These guilds appear in the "Staff" section of the player list. -staffguilds = Server,Manager,Owner,Admin,FAQ,LAT,NAT,GAT,GP,GP Chief,Bugs Admin,NPC Admin,Gani Team,GFX Admin,Events Team,Events Admin,Guild Admin - -# Accounts which are recognized by the server as staff. To be allowed access to RC, your account must be here. -# (Manager) and the like are just placeholders to organize the list. They are not guilds. -staff = (Manager),YOURACCOUNT - -# Enables/disables item dropping from various sources. -# bushitems also affects certain tiles other than bushes. -# tiledroprate affects bushitems only. -# If making a 1.41 server, set bushitems, vasesdrop, and baddyitems to false as the 1.41 client generates items. -bushitems = true -vasesdrop = true -baddyitems = false -dropitemsdead = true -tiledroprate = 50 - -# If enabled, it will allow negative power swords which will heal players when used. -healswords = false - -# Timeout in seconds for respawning objects. -# respawntime affects tile changes. -respawntime = 15 -horselifetime = 30 -baddyrespawntime = 60 - -# Allows any player to use the warpto command. -warptoforall = false - -# Alters the possible status options in the player list. -playerlisticons = Online,Away,DND,Eating,Hiding,No PMs,RPing,Sparring,PKing - -# Selects what is displayed in the player''s profile. -# Name:=variable, where variable can also be a flag on the player''s account. -profilevars = Kills:=playerkills,Deaths:=playerdeaths,Maxpower:=playerfullhearts,Rating:=playerrating,Alignment:=playerap,Gralat:=playerrupees,Swordpower:=playerswordpower,Spin Attack:=canspin - -# Global guild settings. -# If globalguilds is true, global guilds are allowed. If false, allowedglobalguilds specifies which guilds are allowed. -globalguilds = true -allowedglobalguilds = - -# AP system settings. -# If apsystem is set to true, it activates some restrictions regarding hearts for low AP players. -# For the aptime# options, the values are the time in seconds it takes to recharge one point of AP for the given range. -# aptime4 is used for AP values between 80 and 100. aptime 3 for 60 through 80. And so on until 0 is between 0 and 20. -apsystem = true -aptime0 = 30 -aptime1 = 90 -aptime2 = 300 -aptime3 = 600 -aptime4 = 1200 - -# Defines limits to hearts, swords, and shields. -heartlimit = 3 -swordlimit = 3 -shieldlimit = 3 - -# Enables or disables the putnpc script command. -putnpcenabled = true - -# If true, disable the ability. -dontchangekills = false - -# Flag options. -# If dontaddserverflags is true, any server. flag changes sent by the client are rejected. -# If cropflags is true, any client and server flags will be cropped to 223 characters. -# The flag name and equal sign are INCLUSIVE! -# It is recommended to not turn this off unless you know the repercussions of doing so. -dontaddserverflags = false -cropflags = true - -# If true, idle players are removed after maxnomovement seconds. -disconnectifnotmoved = true -maxnomovement = 1200 - -# If true, moved push/pull blocks aren''t sent to other players. -clientsidepushpull = true - -# If false, it will prevent the player from obtaining items like bomb, bow, superbomb, etc. -defaultweapons = true - -# List of weapon names (comma separated) that will be given to the player each time they connect. -protectedweapons = - -# List of bigmap.txt type maps used by the server. It lets the server know the level layout -# so you can see players move and talk in adjacent levels. -maps = - -# List of gmaps to be used by the server. -gmaps = - -# List of group instanced maps used by the server. -# Use full filenames, even for gmaps. -groupmaps = - -# The head used by RCs on the server. -staffhead = head25.png - -# Sets the bigmap and minimap to use. -# Setting bigmap will break gmaps. -# bigmap = maptext,mapimage,defaultx,defaulty -# minimap = maptext,mapimage,defaultx,defaulty -# maptext is the bigmap.txt styled file with the levels. -# mapimage is the image to use -# defaultx and defaulty is the position where the heads of players not on the map will be drawn. -bigmap = -minimap = - -# -------------------------------------------------------------------------------------- -# --- Private server options. The changestaffacct right is required to alter these. --- -# -------------------------------------------------------------------------------------- -# The server details seen from the server list. -name = My Server -description = My Server -url = http://www.graal.in/ - -# The information of the computer hosting the gserver. This gets sent to people wanting to connect. -# If myip is set to AUTO, it uses the IP address exposed to the list server. -serverip = AUTO -serverport = 14802 -serverinterface = AUTO - -# The local IP address of the computer. Helps you connect to your server if your router can't route on -# its WAN-side IP address. Leave it as AUTO unless you know what you are doing. -# If you have a Linux server, you will want to change this, though. -localip = AUTO - -# Specifies the location of the list server. -# DON'T CHANGE IF YOU DON'T KNOW WHAT YOU ARE DOING. -listip = listserver.graal.in -listport = 14900 - -# Maximum number of players allowed on the server. -maxplayers = 128 - -# Enables/disables staff only. If true, only accounts in the staff option are allowed on. -onlystaff = false - -# Set to true to disable the folder configuration. -nofoldersconfig = false - -# Determines whether or not to use the old "if (created)" style. -# In the old style, "if (created)" is called for each player that enters the level for their first time. -oldcreated = true - -# Determines whether the server handles certain things like signs and links. -# Don't set to true. -serverside = false - -# Enables triggeraction hacks. -triggerhack_weapons = false # gr.addweapon, gr.deleteweapon -triggerhack_guilds = false # gr.addguildmember, gr.removeguildmember, gr.removeguild, gr.setguild -triggerhack_groups = true # gr.setgroup, gr.setlevelgroup -triggerhack_files = false # gr.appendfile, gr.writefile -triggerhack_rc = false # gr.rcchat -triggerhack_execscript = false # gr.es_clear, gr.es_set, gr.es_append, gr.es -triggerhack_props = false # gr.attr1-gr.attr30 -triggerhack_levels = false # gr.updatelevel - -# Enables flag hacks. -flaghack_movement = true # -gr_movement weapon. -flaghack_ip = false # gr.ip - -# If folders config is disabled, put additional search directories besides "world" here. -# Comma delimited array. -sharefolder = - -# Sets the language. Currently not implemented. -language = English - -# Scripting -gs2default = false -nickname = +# Sets the location where new players start on the server. +# By default, the server uses the values inside the defaultaccount. +# These values will override defaultaccount. +#startlevel = onlinestartlocal.nw +#startx = 30 +#starty = 30.5 + +# Specifies where players go when they say "unstick me". +unstickmelevel = onlinestartlocal.nw +unstickmex = 30 +unstickmey = 30.5 +unstickmetime = 30 + +# Players in these levels can''t warp out nor can they PM other players. +jaillevels = police2.graal,police4.graal + +# Enable/disable explosions. +noexplosions = false + +# Enable/disable the ability of the player to change their look. +setbodyallowed = true +setheadallowed = true +setshieldallowed = true +setswordallowed = true +setcolorsallowed = true + +# Defines the amount of Gralats a player drops with they die. +mindeathgralats = 1 +maxdeathgralats = 50 + +# If set to false, only players with the Change Staff Accounts right can alter gralats. +normaladminscanchangegralats = true + +# These guilds appear in the "Staff" section of the player list. +staffguilds = Server,Manager,Owner,Admin,FAQ,LAT,NAT,GAT,GP,GP Chief,Bugs Admin,NPC Admin,Gani Team,GFX Admin,Events Team,Events Admin,Guild Admin + +# Accounts which are recognized by the server as staff. To be allowed access to RC, your account must be here. +# (Manager) and the like are just placeholders to organize the list. They are not guilds. +staff = (Manager),YOURACCOUNT + +# Enables/disables item dropping from various sources. +# bushitems also affects certain tiles other than bushes. +# tiledroprate affects bushitems only. +# If making a 1.41 server, set bushitems, vasesdrop, and baddyitems to false as the 1.41 client generates items. +bushitems = true +vasesdrop = true +baddyitems = false +dropitemsdead = true +tiledroprate = 50 + +# If enabled, it will allow negative power swords which will heal players when used. +healswords = false + +# Timeout in seconds for respawning objects. +# respawntime affects tile changes. +respawntime = 15 +horselifetime = 30 +baddyrespawntime = 60 + +# Allows any player to use the warpto command. +warptoforall = false + +# Alters the possible status options in the player list. +playerlisticons = Online,Away,DND,Eating,Hiding,No PMs,RPing,Sparring,PKing + +# Selects what is displayed in the player''s profile. +# Name:=variable, where variable can also be a flag on the player''s account. +profilevars = Kills:=playerkills,Deaths:=playerdeaths,Maxpower:=playerfullhearts,Rating:=playerrating,Alignment:=playerap,Gralat:=playerrupees,Swordpower:=playerswordpower,Spin Attack:=canspin + +# Global guild settings. +# If globalguilds is true, global guilds are allowed. If false, allowedglobalguilds specifies which guilds are allowed. +globalguilds = true +allowedglobalguilds = + +# AP system settings. +# If apsystem is set to true, it activates some restrictions regarding hearts for low AP players. +# For the aptime# options, the values are the time in seconds it takes to recharge one point of AP for the given range. +# aptime4 is used for AP values between 80 and 100. aptime 3 for 60 through 80. And so on until 0 is between 0 and 20. +apsystem = true +aptime0 = 30 +aptime1 = 90 +aptime2 = 300 +aptime3 = 600 +aptime4 = 1200 + +# Defines limits to hearts, swords, and shields. +heartlimit = 3 +swordlimit = 3 +shieldlimit = 3 + +# Enables or disables the putnpc script command. +putnpcenabled = true + +# If true, disable the ability. +dontchangekills = false + +# Flag options. +# If dontaddserverflags is true, any server. flag changes sent by the client are rejected. +# If cropflags is true, any client and server flags will be cropped to 223 characters. +# The flag name and equal sign are INCLUSIVE! +# It is recommended to not turn this off unless you know the repercussions of doing so. +dontaddserverflags = false +cropflags = true + +# If true, idle players are removed after maxnomovement seconds. +disconnectifnotmoved = true +maxnomovement = 1200 + +# If true, moved push/pull blocks aren''t sent to other players. +clientsidepushpull = true + +# If false, it will prevent the player from obtaining items like bomb, bow, superbomb, etc. +defaultweapons = true + +# List of weapon names (comma separated) that will be given to the player each time they connect. +protectedweapons = + +# List of bigmap.txt type maps used by the server. It lets the server know the level layout +# so you can see players move and talk in adjacent levels. +maps = + +# List of gmaps to be used by the server. +gmaps = + +# List of group instanced maps used by the server. +# Use full filenames, even for gmaps. +groupmaps = + +# The head used by RCs on the server. +staffhead = head25.png + +# Sets the bigmap and minimap to use. +# Setting bigmap will break gmaps. +# bigmap = maptext,mapimage,defaultx,defaulty +# minimap = maptext,mapimage,defaultx,defaulty +# maptext is the bigmap.txt styled file with the levels. +# mapimage is the image to use +# defaultx and defaulty is the position where the heads of players not on the map will be drawn. +bigmap = +minimap = + +# -------------------------------------------------------------------------------------- +# --- Private server options. The changestaffacct right is required to alter these. --- +# -------------------------------------------------------------------------------------- +# The server details seen from the server list. +name = My Server +description = My Server +url = http://www.graal.in/ + +# The information of the computer hosting the gserver. This gets sent to people wanting to connect. +# If myip is set to AUTO, it uses the IP address exposed to the list server. +serverip = AUTO +serverport = 14802 +serverinterface = AUTO + +# The local IP address of the computer. Helps you connect to your server if your router can't route on +# its WAN-side IP address. Leave it as AUTO unless you know what you are doing. +# If you have a Linux server, you will want to change this, though. +localip = AUTO + +# Specifies the location of the list server. +# DON'T CHANGE IF YOU DON'T KNOW WHAT YOU ARE DOING. +listip = listserver.graal.in +listport = 14900 + +# Maximum number of players allowed on the server. +maxplayers = 128 + +# Enables/disables staff only. If true, only accounts in the staff option are allowed on. +onlystaff = false + +# Set to true to disable the folder configuration. +nofoldersconfig = false + +# Determines whether or not to use the old "if (created)" style. +# In the old style, "if (created)" is called for each player that enters the level for their first time. +oldcreated = true + +# Determines whether the server handles certain things like signs and links. +# Don't set to true. +serverside = false + +# Enables triggeraction hacks. +triggerhack_weapons = false # gr.addweapon, gr.deleteweapon +triggerhack_guilds = false # gr.addguildmember, gr.removeguildmember, gr.removeguild, gr.setguild +triggerhack_groups = true # gr.setgroup, gr.setlevelgroup +triggerhack_files = false # gr.appendfile, gr.writefile +triggerhack_rc = false # gr.rcchat +triggerhack_execscript = false # gr.es_clear, gr.es_set, gr.es_append, gr.es +triggerhack_props = false # gr.attr1-gr.attr30 +triggerhack_levels = false # gr.updatelevel + +# Enables flag hacks. +flaghack_movement = true # -gr_movement weapon. +flaghack_ip = false # gr.ip + +# If folders config is disabled, put additional search directories besides "world" here. +# Comma delimited array. +sharefolder = + +# Sets the language. Currently not implemented. +language = English + +# Scripting +gs2default = false +nickname = diff --git a/bin/servers/default/documents/docu_wordfilter.txt b/bin/servers/default/documents/docu_wordfilter.txt index 3a298c0fb..3505fa9e2 100644 --- a/bin/servers/default/documents/docu_wordfilter.txt +++ b/bin/servers/default/documents/docu_wordfilter.txt @@ -1,91 +1,91 @@ -Graal Word Filter Documentation - -1. Purpose of the word filter - -The word filter is part of the game server and can be used by administrators -to prevent the usage of rude words in messages and names. It will not work for -100% of all cases, but it will help to find people that use those words, and -if users trick the system they know that they do something that is against the -rules and will possibly be jailed or banned. - -The word filter allows different types of actions: it can log the usage of -words, tell administrators that someone used a filtered word, replace the word -with stars, block the message and warn the user. It's planned that you can directly send someone to jail or possibly ban someone if the word filter has detected -something, that will mainly be used for preventing trial players to flood the -servers with unwelcome messages. - -2. Configuration files - -By default the filter rules are listed in the file 'wordfilter/rules.txt'. -Modify that file to change the word filter rules, it will automatically reload -the rules when you update the file. The filter log is saved to 'wordfiler/log.txt'. - -3. Global options - -In the rules file you can add following lines to change parameters that apply -for all rules or are used when you don't specify the parameter in the rule -itself: - -WARNMESSAGE message - sets the warn message that is displayed when - the player uses a bad word and there is a rule - that matches a word in the text and has 'warn' as - action -SHOWWORDSTORC true/false - enables/disables the display of the words that matched, - this is by default turned off to not annoy the staff - if it's turned off then you will only see the name - of the player in the message that is sent to RCs - -4. Rules - -You can define several rules. -A rule always starts with a -RULE -line and ends with a -RULEEND -line. - -Between those two lines you can specify the options for the rule. Following -options can be set: - -MATCH word - defines the word to look for, format: - - '?' : all characters match - - upper case : character must match exactly - - lower case character : will be counted when it matches - and at the end checked if the number of characters that - match is higher or equal to the requested precision - You can define more than one match per rule. Spaces - and some other characters are overread to allow easier - matching. - examples: F??K, BitcH -CHECK chat pm toall nick - list of text types to check, separated by spaces - the actions vary a little bit from type to type - - people that send bad PMs are warned by admin message, - otherwise it changes the chat text of the player -WORDPOSITION full/start/part - says where the word must be appear in the text - to be recognized, 'full' means the rule only - matches full words, 'start' means the rule will - check the start of words if they match, 'part' - means it checks everything -PRECISION matchcharacters/precision% - you can either give a number of characters that - must match to fire the action, or give a - percentage, add '%' at the end of that then -ACTION log tellrc replace warn jail ban - list of actions to do when the word matches, separated by spaces - 'log' will log to wordfilter/log.txt, 'tellrc' will - send a warning on the RC-chat, 'replace' will replace - the found words with stars, 'warn' will set the chat text - of the player to the warn message or send an admin message - when the message was a PM, the PM will not be sent in - that case; 'jail' and 'ban' are planned for the future -WARNMESSAGE message - sets the warning message - - - - +Graal Word Filter Documentation + +1. Purpose of the word filter + +The word filter is part of the game server and can be used by administrators +to prevent the usage of rude words in messages and names. It will not work for +100% of all cases, but it will help to find people that use those words, and +if users trick the system they know that they do something that is against the +rules and will possibly be jailed or banned. + +The word filter allows different types of actions: it can log the usage of +words, tell administrators that someone used a filtered word, replace the word +with stars, block the message and warn the user. It's planned that you can directly send someone to jail or possibly ban someone if the word filter has detected +something, that will mainly be used for preventing trial players to flood the +servers with unwelcome messages. + +2. Configuration files + +By default the filter rules are listed in the file 'wordfilter/rules.txt'. +Modify that file to change the word filter rules, it will automatically reload +the rules when you update the file. The filter log is saved to 'wordfiler/log.txt'. + +3. Global options + +In the rules file you can add following lines to change parameters that apply +for all rules or are used when you don't specify the parameter in the rule +itself: + +WARNMESSAGE message + sets the warn message that is displayed when + the player uses a bad word and there is a rule + that matches a word in the text and has 'warn' as + action +SHOWWORDSTORC true/false + enables/disables the display of the words that matched, + this is by default turned off to not annoy the staff + if it's turned off then you will only see the name + of the player in the message that is sent to RCs + +4. Rules + +You can define several rules. +A rule always starts with a +RULE +line and ends with a +RULEEND +line. + +Between those two lines you can specify the options for the rule. Following +options can be set: + +MATCH word + defines the word to look for, format: + - '?' : all characters match + - upper case : character must match exactly + - lower case character : will be counted when it matches + and at the end checked if the number of characters that + match is higher or equal to the requested precision + You can define more than one match per rule. Spaces + and some other characters are overread to allow easier + matching. + examples: F??K, BitcH +CHECK chat pm toall nick + list of text types to check, separated by spaces + the actions vary a little bit from type to type - + people that send bad PMs are warned by admin message, + otherwise it changes the chat text of the player +WORDPOSITION full/start/part + says where the word must be appear in the text + to be recognized, 'full' means the rule only + matches full words, 'start' means the rule will + check the start of words if they match, 'part' + means it checks everything +PRECISION matchcharacters/precision% + you can either give a number of characters that + must match to fire the action, or give a + percentage, add '%' at the end of that then +ACTION log tellrc replace warn jail ban + list of actions to do when the word matches, separated by spaces + 'log' will log to wordfilter/log.txt, 'tellrc' will + send a warning on the RC-chat, 'replace' will replace + the found words with stars, 'warn' will set the chat text + of the player to the warn message or send an admin message + when the message was a PM, the PM will not be sent in + that case; 'jail' and 'ban' are planned for the future +WARNMESSAGE message + sets the warning message + + + + diff --git a/bin/servers/default/documents/rules.txt b/bin/servers/default/documents/rules.txt index fd546b8ff..9c2686090 100644 --- a/bin/servers/default/documents/rules.txt +++ b/bin/servers/default/documents/rules.txt @@ -1,17 +1,17 @@ -WARNMESSAGE Please don't use rude words - -RULE -CHECK pm chat nick toall -MATCH F?CK -WORDPOSITION start -ACTION log tellrc replace -RULEEND - -RULE -CHECK pm chat nick toall -MATCH BitcH -PRECISION 80% -WORDPOSITION full -ACTION log tellrc warn -WARNMESSAGE Keep calm please! -RULEEND +WARNMESSAGE Please don't use rude words + +RULE +CHECK pm chat nick toall +MATCH F?CK +WORDPOSITION start +ACTION log tellrc replace +RULEEND + +RULE +CHECK pm chat nick toall +MATCH BitcH +PRECISION 80% +WORDPOSITION full +ACTION log tellrc warn +WARNMESSAGE Keep calm please! +RULEEND diff --git a/bin/servers/default/execscripts/readme.txt b/bin/servers/default/execscripts/readme.txt index 5415ebafc..4593863fe 100644 --- a/bin/servers/default/execscripts/readme.txt +++ b/bin/servers/default/execscripts/readme.txt @@ -1,31 +1,31 @@ -Store your weapon scripts in here. They be in plain text files as the name of the script. - -As an example, forcesay.txt: ---------------- -if (playerenters || created || timeout) { - timeout = 0.05; - setplayerprop #c,*PARM0; - destroy; -} ---------------- - -In an execscript, the gserver will load the script and replace all the parameters with the given list. -First, the gr.es_clear triggeraction will clear the parameter list. -Then, the gr.es_set and gr.es_append triggeractions are used to assemble the parameter list. -Finally, the gr.es triggeraction initiates the script. - -As an example, we are going to use the forcesay.txt script to force a player to say, "Hi." ---------------- -if (playerchats && startswith(/sayhi,#c)) { - tokenize #c; - triggeraction 0,0,gr.es_clear,; - triggeraction 0,0,gr.es_set,Hi; - triggeraction 0,0,gr.es,#t(1),forcesay; -} ---------------- - -First, we cleared the parameter list. -Then, we set *PARM0 to Hi. -Next, we sent the script off to the targetted player, whose account is #t(1). - +Store your weapon scripts in here. They be in plain text files as the name of the script. + +As an example, forcesay.txt: +--------------- +if (playerenters || created || timeout) { + timeout = 0.05; + setplayerprop #c,*PARM0; + destroy; +} +--------------- + +In an execscript, the gserver will load the script and replace all the parameters with the given list. +First, the gr.es_clear triggeraction will clear the parameter list. +Then, the gr.es_set and gr.es_append triggeractions are used to assemble the parameter list. +Finally, the gr.es triggeraction initiates the script. + +As an example, we are going to use the forcesay.txt script to force a player to say, "Hi." +--------------- +if (playerchats && startswith(/sayhi,#c)) { + tokenize #c; + triggeraction 0,0,gr.es_clear,; + triggeraction 0,0,gr.es_set,Hi; + triggeraction 0,0,gr.es,#t(1),forcesay; +} +--------------- + +First, we cleared the parameter list. +Then, we set *PARM0 to Hi. +Next, we sent the script off to the targetted player, whose account is #t(1). + You can use *PARM0 through *PARM128 in your execscript. \ No newline at end of file diff --git a/bin/servers/default/guilds/guildExample.txt b/bin/servers/default/guilds/guildExample.txt index dd2e2d515..9d5e7c39b 100644 --- a/bin/servers/default/guilds/guildExample.txt +++ b/bin/servers/default/guilds/guildExample.txt @@ -1,3 +1,3 @@ -account:nickname -account -account:nickname +account:nickname +account +account:nickname diff --git a/bin/servers/default/weapons/weapon-gr_movement.txt b/bin/servers/default/weapons/weapon-gr_movement.txt index a9d3b65fb..23bc63546 100644 --- a/bin/servers/default/weapons/weapon-gr_movement.txt +++ b/bin/servers/default/weapons/weapon-gr_movement.txt @@ -1,13 +1,13 @@ -GRAWP001 -REALNAME -gr_movement -IMAGE wbomb1.png -SCRIPT -//#CLIENTSIDE -if (playerenters || timeout) { - if (!gr.off) { - if (!gr.x.off) setstring gr.x,#v(int((playerx+0.25)*2)/2); - if (!gr.y.off) setstring gr.y,#v(int((playery+0.25)*2)/2); - } - timeout=0.05; -} -SCRIPTEND +GRAWP001 +REALNAME -gr_movement +IMAGE wbomb1.png +SCRIPT +//#CLIENTSIDE +if (playerenters || timeout) { + if (!gr.off) { + if (!gr.x.off) setstring gr.x,#v(int((playerx+0.25)*2)/2); + if (!gr.y.off) setstring gr.y,#v(int((playery+0.25)*2)/2); + } + timeout=0.05; +} +SCRIPTEND diff --git a/bin/servers/default/world/readme.txt b/bin/servers/default/world/readme.txt index 82269815a..a7d4d7ff0 100644 --- a/bin/servers/default/world/readme.txt +++ b/bin/servers/default/world/readme.txt @@ -1,35 +1,35 @@ -All levels, images, sounds, scripts, etc go in this folder or any sub folder. -If you create a sub folder while the gserver is running, you must restart the gserver or type -/cachesubdirs in RC for the newly created sub directory to be included. - -**** NEW IN BUILD 56 (MUST READ) **** - -- Folder Configuration is now implemented. See the foldersconfig.txt - file for a list of default options. The folder configuration is - mainly used to restrict files to certain directories, like - restricting head images to world/heads/*. This will prevent players - from being able to do odd things like 'sethead pics1.png'. - PLEASE MAKE SURE YOUR FOLDERSCONFIG.TXT FILE IS CORRECT BEFORE YOU - SEEK HELP! IF YOUR FOLDERSCONFIG.TXT FILE IS INCORRECT, IT WILL - CAUSE MANY THINGS TO TO BREAK. - - -Here is default folder config in case you've lost it: -# Folder Configuration -body bodies/*.png -head heads/* -sword swords/* -shield shields/* -level *.graal -level *.nw -level *.gmap -file *.png -file *.mng -file *.gif -file *.gani -file *.wav -file *.txt -file *.gmap -file images/*.png -file images/*.gif -file images/*.mng +All levels, images, sounds, scripts, etc go in this folder or any sub folder. +If you create a sub folder while the gserver is running, you must restart the gserver or type +/cachesubdirs in RC for the newly created sub directory to be included. + +**** NEW IN BUILD 56 (MUST READ) **** + +- Folder Configuration is now implemented. See the foldersconfig.txt + file for a list of default options. The folder configuration is + mainly used to restrict files to certain directories, like + restricting head images to world/heads/*. This will prevent players + from being able to do odd things like 'sethead pics1.png'. + PLEASE MAKE SURE YOUR FOLDERSCONFIG.TXT FILE IS CORRECT BEFORE YOU + SEEK HELP! IF YOUR FOLDERSCONFIG.TXT FILE IS INCORRECT, IT WILL + CAUSE MANY THINGS TO TO BREAK. + + +Here is default folder config in case you've lost it: +# Folder Configuration +body bodies/*.png +head heads/* +sword swords/* +shield shields/* +level *.graal +level *.nw +level *.gmap +file *.png +file *.mng +file *.gif +file *.gani +file *.wav +file *.txt +file *.gmap +file images/*.png +file images/*.gif +file images/*.mng diff --git a/dependencies/miniupnp b/dependencies/miniupnp index 51f185fd1..f33ae4840 160000 --- a/dependencies/miniupnp +++ b/dependencies/miniupnp @@ -1 +1 @@ -Subproject commit 51f185fd13bca5f10b9b80ebd4ad4eac5e22fd11 +Subproject commit f33ae48402835b5b93029b1861a32630f9f17d1b diff --git a/gs2emu.ico b/gs2emu.ico index b62e7a0d51f60bb914edc8715a33f1557d10c716..670bc47de5ba415b2a855fcfe23c3e53c20fcb1a 100755 GIT binary patch delta 15 XcmcaIf$j1Hwh38{*;}(2U$z4PI`aoh delta 17 ZcmcaSf$ho!wh38`yp35~vlw5t0{}wv2Uh?9 From c9f95602879be3a34fbbec22e8b771f87e878e0e Mon Sep 17 00:00:00 2001 From: KixtNorkazz Date: Sun, 15 Mar 2026 01:34:02 +0100 Subject: [PATCH 2/2] Fix \r error in .txt files that in repo shipped with Windows line endings and .gitattributes typo ('test' instead of 'text'). There is also a bug in dependencies/gs2lib/src/CSettings.cpp. CSettings::getSettings() was explicitly converting line endings to CRLF before saving, causing localip to be read as '10.x.x.x\r' which fails validation silently. Servers appear on the serverlist but clients cannot connect. I fixed the file by commenting out 'options.replaceAllI(n, rn);' --- dependencies/miniupnp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies/miniupnp b/dependencies/miniupnp index f33ae4840..51f185fd1 160000 --- a/dependencies/miniupnp +++ b/dependencies/miniupnp @@ -1 +1 @@ -Subproject commit f33ae48402835b5b93029b1861a32630f9f17d1b +Subproject commit 51f185fd13bca5f10b9b80ebd4ad4eac5e22fd11