Commit Graph

298 Commits

Author SHA1 Message Date
FlavioJS
e7607efb6c * Removed online_check config options. (always active now)
* Clarified char_maintenance config option.
* Changed packet 0x2712. (added request_id)
* Changed packet 0x2713. (added sex, request_id, version, clienttype; removed email, expiration time, gmlevel)
* Delayed user count check and mmo_char_send006b to when the account data arrives.
* Created auxiliary function MD5_Salt.

(split from a future commit that was getting to big for my taste)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13652 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-04-01 22:39:19 +00:00
ultramage
c2cc0763d9 Increased variable size for status/skill points to remove the 65k cap (bugreport:1579).
Added sql upgrade script to adjust the appropriate char table columns.
This is an enhancement to r5762.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13541 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-02-20 19:47:17 +00:00
FlavioJS
d474fff85a * Fixed 'Char creation denied' message not being sent properly.
- Number 2 didn't exist in old clients so it used the default message, now it exists so the wrong message is displayed.
- Changed 2 to 0xFF to get the default message.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13356 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-11-06 20:23:33 +00:00
skotlex
0167134620 - Added the required changes to support the 2008-09-10+ clients
- Cleaned around the char set offline function to properly avoid setting offline a character that had relogged faster than the map server's packet arrival to the char-server (I presume this was the bugfix that Kevin attempted a long time ago, but the current code for that causes a dangling pointer problem).


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13293 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-10-15 12:31:16 +00:00
ultramage
7bd0715d13 Quick fix to txt charserver initialization order - chardb needs to be ready for parties to load correctly.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13275 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-10-11 03:41:10 +00:00
FlavioJS
2f1d2b2199 * Fix for "yet another online check bypass technique". (bugreport:2292)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13256 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-10-03 16:30:41 +00:00
ultramage
e3d39453fd * Fixed a storage saving issue with txt charserver (bugreport:2084)
- caused by incorrect idb_ensure -> idb_get change (see r12950)
- removed redundant account_id variable from storage data
- cleaned up the very messy txt storage handling code

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13093 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-19 16:00:30 +00:00
ultramage
4c2a6255cd Merged a critical fix to charserver online tracking code (see r13087).
Corrected wrong variable use in txt charserver online tracking code (mistake in r4726).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13089 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-18 04:30:57 +00:00
ultramage
fb0a123f7a Some small code cleaning
- removed unused create_storage() function
- removed unused char_db mapserver config setting
- adjusted formatting of mapserver config loading code

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13063 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-10 08:08:59 +00:00
ultramage
5f8af7d869 Fixed an auth bug in txt charserver (caused by r12579, followup to r12609)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13042 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-04 03:31:22 +00:00
ultramage
5033b0f675 Reverted r12230. cUSTOM_CFLAGS is redundant since you can achieve the same result by setting CFLAGS.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13022 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-31 06:08:07 +00:00
ultramage
9fd3dfd23b Fixed TXT storage code handling storage incorrectly (bugreport:1928)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13016 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-30 04:37:21 +00:00
ultramage
106b44c1e7 Merged the /loginmerge branch (topic:192754)
* the login server storage, ipban and logging systems have been abstracted and now provide a common interface; the rest has been merged into a single login server core (no more login/login_sql duplicity)
 * storage systems are now added via compiler options (WITH_SQL / WITH_TXT)
 * multiple storage engines can be compiled in at the same time, and the config option account.engine defines which one will be used.
 * due to MySQL autoincrement limitations, accounts with id '0' will not be supported; account IDs from this point on should start from '1'.
 * login_log() functions now again record IP addresses in dotted format, not as 4-byte integers (undo from r6868).
 * removed config options that defined column names in the login table
 * removed `memo` and `error message` columns from login db/savefile
 * moved `loginlog` table to the logs database
 * added sql files upgrade_svn12975.sql and upgrade_svn12975_log.sql
 * due to changes to the login table layout, I added an !optional! sql file (upgrade_svn12975_view.sql) that will provide a certain degree of backwards compatibility with existing software; read the instructions inside carefully!
 * moved third-party includes/libs to a separate directory
 * updated project files / makefiles

Changed the way GM levels are handled
 * removed conf/gm_account.txt
 * added the gm level column to the txt savefile (after 'email' column)
 * gm level information is now transferred along with account data
 
For open problems see bugreport:1889.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13000 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-26 20:45:57 +00:00
ultramage
398d3821df Removed the party_share_conflict() check.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12959 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-15 10:49:42 +00:00
ultramage
1d9c99dc72 Corrected wrong data loading order in txt storage code causing crashes at startup (followup to r12950).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12957 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-15 01:50:06 +00:00
ultramage
4546c7fc0a Modified storage data loading
* storage is now loaded/saved along with character status
 * as a consequence, a lot of storage handling code was removed
 * there is no more locking done within storage data
 * mapservers no longer cache the data (solves muiltimapserver exploit)
 * loading storage on char select may decrease charserver performance

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12950 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-13 16:14:32 +00:00
ultramage
d8ce1f4aa5 storage code cleanup (no behavioral changes yet)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12948 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-13 11:21:33 +00:00
ultramage
bfd5397913 Renamed 'storage_' to 'items' in the storage_data structure.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12933 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-10 08:42:41 +00:00
ultramage
a35279667d Renamed 'struct storage' to 'struct storage_data' (to make 'storage' available as a variable name).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12932 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-10 08:27:03 +00:00
ultramage
d9e5150a44 Added changes missing from the previous update (followup to r12710).
Corrected party invite failure not informing the inviting player.
Cleaned up some foreach() code int_party.c.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12711 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-05-16 07:28:46 +00:00
FlavioJS
c880052f0f * Changed the data field of timers from int to intptr.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12633 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-21 21:34:31 +00:00
toms
ccb23efe49 Made some cleanup in changesex
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12626 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-21 16:19:25 +00:00
ultramage
70e34f81cd Fixed an issue in r12575 where 'not setting char offline when going from mapserver to charserver' also caused a permanent account lockout if the player pressed 'cancel' in the char select screen.
Merged some recent changes from SQL to TXT, as someone didn't bother to do it.
Ifdefed the quest data request code as SQL-only (this was causing server disconnects whenver someone logged in).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12606 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-16 07:48:53 +00:00
FlavioJS
dcf71ce50b * Followup to r12579 (all other players appeared as female on sql branch).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12583 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-14 01:11:21 +00:00
FlavioJS
49aac80ed6 * Quick&dirty reversal of the inter-server behaviour introduced in r3255/r3256:
- the behaviour enabled a desynch between the char-server and the map-server
- now the map-server asks the char-server to authenticate the auth info (the char-server doesn't send the auth info immediatelly)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12579 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-13 18:31:49 +00:00
ultramage
67d29ff3b7 ... but not with a buggy tool (missing svn:props)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12574 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-12 09:19:31 +00:00
Kevin
2c1144e804 TXT code has been re uploaded. Please note this does not change the fact that TXT support has been dropped. There is no guarantee the code base will be managed and it will in the near future be REMOVED. If there is in ANY way TXT support in the future, it will be abstracted through a sql interface so only the sql code has to be maintained.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12572 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-12 08:43:29 +00:00
Kevin
ace648245b I live in a giant bucket.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12570 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-12 07:59:42 +00:00
ultramage
00a5bccbd3 The max_account_id packetver detection mechanism will never cause any connection problems ever again. (bugreport:388)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12563 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-11 09:31:32 +00:00
ultramage
fd5f918452 Modified the charservers to use a DBMap instead of a cyclic array for auth data.
Merged the auth fix from r12473 to TXT as well.
Removed the no-op from r12547.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12551 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-10 19:07:00 +00:00
ultramage
77826dfdf8 Renamed 'connect_until_time' to 'expiration_time'.
Renamed 'ban_until_time' to 'unban_time'.
this also applies to login table columns (see upgrade_svn12464.sql).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12464 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-03 12:46:55 +00:00
ultramage
76eb9581b9 Some more txt/sql login server synchronization:
- removed the option to specify multiple IPs/subnets for 'ladminallowip'
- removed the @gm command and all associated management code
- removed the 'save unknown packets' code
- removed the lengthy TXT ipban code (which was essentially a copy of what's already handled by the socket layer/packet_athena.conf)
- implemented 'start_limited_time' in SQL (expiration for new accounts)
- applied some missing TXT changes from the last update

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12446 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-28 18:53:51 +00:00
ultramage
b1b356fb11 Partial rewrite of the login server's auth system.
* replaced the cyclic, size-limited auth_fifo data structure with the more appropriate DBMap-based alternative (stops some erratic behavior)
 * added code to simulate the pseudo-status "online on login server"
 * auth data will now expire after 30 seconds instead of persisting
 * better-than-aegis handling of login cancellation (the server will wipe all previous auth data instead of making you wait for it to expire)
 * proper status message - no more generic "rejected from server", now you'll get "the server still recognizes your last connection"
 * fixed a typo in r10110 which caused disconnect timer removal to fail
 * split off some parsing code to login_auth_ok() and login_auth_failed()
 * extended the auth confirmation packet so that the login_id1/2 values are sent along with the associated account id (stops charserver from making wrong choices if two incoming sessions have the same account id)
 * fixed a bug in the disconnect part of the main charserver parsing loop, where a non-authed client would erase the online db entry for a client that's already online, thus bypassing any dual-login checks
 * added code to stop the waiting_disconnect timer when the associated online entry is removed right away, instead of doing checks later
 * removed code that would periodically wipe the online status of clients that are in the auth process (producing yet more erratic behavior)
 * commented out some TXT-only reconnect prevention code (bugreport:1281)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12441 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-27 12:06:12 +00:00
ultramage
c6402e89c2 merged the charserver acc modification code cleanup to TXT (r11324)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12440 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-27 11:34:16 +00:00
ultramage
94943b2b6a Adjusted eAthena code to compile cleanly in C++ mode.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12436 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-26 10:37:45 +00:00
ultramage
9c07918456 Added proper checks to adoption processing (followup to r12428).
Cleaned up some code / fixed some typos.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12432 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-25 09:56:18 +00:00
ultramage
a08c56007a Corrected a problem where a party invite acknowledgement would not be sent (bugreport:1091).
There is still the unresolved issue where newly added party members will not display their party correctly.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12328 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-08 23:03:06 +00:00
Lupus
e4f66f0ab9 Added $(CUSTOM_CFLAGS) into all Makefile.in to provide any custom defs directly to all sub make files
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12230 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-22 17:00:59 +00:00
skotlex
1e0a82fab3 - Fixed new guilds displaying online-connect member count at 0 rather than 1, and the guild master not knowing it is one (eg: it cannot edit the guild notice of a newly created guild until relogging).
- Fixed acc_reg2 parsing screwing up the char_id and subtracting 2 from it rather than passing it as it is.
- Extended the auth_node/auth_db system in chrif.c to handle log in/out and mapserver-change procedures. This way players are not in the main dbs when they are not "active", which blocks potential invalid accesses to them.
- Replaced states auth, waiting_disconnect and finalsave with active.  
- Cleaned some the party/guild login and creation procedures, removed the party_sent/guild_sent states.
- Removed a redundant guild_check_member call which is beyond not-needed and into the realm of wasting resources.
- clif_parse will no longer process packets from !sd->state.active players, this also makes checking for finalsave uneccessary (since players re already removed from the maps and dbs by this point, so you can't access them in any other way)
- Separated the roles of unit_free and map_quit, the former will handle cleaning structures from the player so it can be free'd safely, while the latter performs additional routines which are unique to characters logging out normally (map-server changes will invoke unit_free and bypass map_quit).
- Removed pc_isplaying, quit_db, map_knowsaccount, MAPIT_PCISPLAYING among other functions/defines which are no longer needed due to the new login scheme.
- Cleand up a bit some code in the clif_send(_sub) functions.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12223 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-21 00:13:56 +00:00
skotlex
dc789293be - Updated Eye of Hellion to use the new format of the input command.
- corrected login_fd/char_fd being uninitialized in the char servers.
- Changed a bit around how status_base_atk works to avoid overflows.
- Added a check to prevent using consume-delay items when you cannot use skills, since that opens an exploit if the item also has non-skill-casting components to its script.



git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12214 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-17 22:36:02 +00:00
ultramage
fafb4b8476 Another round of login server cleaning
* fixed passwordencrypt on SQL not behaving correctly (since r10753)
 * corrected some column lengths in the login db (username, password,...)
 * fixed some places which used wfifo without first reallocating it
 * removed interserver packet 0x7532 (Request to end connection), as there was no code that actually sent this packet
 * moved RFIFOSKIP actions to execute as soon as possible

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12043 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-10 15:35:23 +00:00
ultramage
b3696e2e03 Added missing session auth checks to charserver.
Packets from non-authed clients will now be discarded.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12034 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-08 14:30:28 +00:00
ultramage
65834585a8 Modified showmsg code to not attach a timestamp to MSG_NONE-type messages, generated by ShowMessage(). It now works exactly like printf().
Removed/replaced all printf calls in the code.
Added a new flag to setting 'console_silent', for filtering debug messages.
Silenced the "Broken pipe found" and "Server running in debug mode" messages.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12020 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-06 14:19:26 +00:00
FlavioJS
7bc9d86651 * Fixed a crash in txt char-servers that the memory manager was hiding. online_char_db being used after being destroyed (since r4026)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11999 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-31 19:46:59 +00:00
ultramage
11f67e9099 Fixed a glitch where the TXT charserver would not unlock castle.txt after creating it, thus preventing it from being saved correctly.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11941 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-18 14:46:19 +00:00
ultramage
acad1ac4dd minor code tweaking
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11936 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-18 09:13:01 +00:00
ultramage
5790585d16 * Added flag.server to indicate interserver sockets
- replaces the previous way (setting 'client_addr' to 0)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11930 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-17 13:23:34 +00:00
ultramage
1e6922174e Guardian hp handling code removal (see bugreport:342)
- removed guardian hp from the castle data structure, database, savefiles and various script functions (use upgrade_svn11914.sql)
- removed guardian hp calculation and manipulation from the castle manager npc, now the hp values are updated by the server itself (glitch: when castle defense changes, all guardians are healed to full)
- tweaked script function 'guardianinfo' to provide some data needed by the manager npc (currently available are hp, maxhp and visibility); also, it doesn't need a player attached to execute anymore
The whole thing is experimental, use at your own risk (seems to work though...)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11915 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-14 23:38:11 +00:00
ultramage
2af4a7f61b Some more tweaks to the guild code
- unrolling of foreach()/_sub() pairs using db iterators
- usage of ARR_FIND instead of for()/break;
- old function header adjustment

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11896 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-12 14:18:46 +00:00
ultramage
8be1c4d48c * Some preparations for the guild script update
- cleaned up npc event execution code
- cleaned up guild data loading/saving code; to be improved later
- removed dummy 'account name' expulsion list management code
- removed columns 'rsv1' and 'rsv2' from guild member data
- removed columns 'rsv1' 'rsv2' 'rsv3' and 'acc' from guild expulsion data
- added upgrade_svn11895.sql for SQL

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11895 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-12 09:55:13 +00:00