61 Commits

Author SHA1 Message Date
FlavioJS
129bff5fb6 - Fixed FIFO defines in TURBO mode.
Ref: http://www.eathena.ws/board/index.php?showtopic=129766
  The rest of the TURBO related errors are about the HEAD defines having to be at the start of a block because they contain a variable declaration. (i won't fix these)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9611 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-03 12:01:43 +00:00
ultramage
215762fe8c - Fixed pc_calc_skilltree ignoring prerequisites / joblvl requirements.
- Re-applied change r9593 that got accidentally reverted by r9595.
- Added the official behavior of monsters regaining full hp when they morph.
- Added support for text/comments at the end of monster spawn lines (<tab> required)
- Silenced the debug message in socket.c that's been freaking people out.
- Modified the useless error message in atcommand_effect.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9608 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-03 03:05:43 +00:00
FlavioJS
0cf60d9ca1 - Updated getitem and guardian entries in script_commands.txt.
- Fixed getitem trying to get <character ID> from the wrong argument.
- Now getitem can be run on scripts without a player attached if <character ID> is specified.
- Now the two last arguments of guardian are optional and independant of each other ("<event label>" and <guardian index>). This way the previous implementation and script_commands definition are still valid code.
- Now buildin function names and argument definitions are checked for validity before adding the function to the script engine.
  Argument definitions follow the pattern:
    (v|s|i|l)*\?*\*?
    v - value (string or int)
    s - string
    i - int
    l - label
    ? - one optional parameter
    * - unknown number of optional parameters

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9599 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-31 09:22:25 +00:00
skotlex
678096381e - Skill use is now cancelled when you use it while cloaking, and the uncloaking process warps you.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9591 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-29 14:21:09 +00:00
FlavioJS
6a7bdd6ffe - Reapplied Skotlex's socket.c changes from r9587 and r9582. :S (sorry)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9589 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-28 19:42:59 +00:00
FlavioJS
f863581174 - Part 3 of TheUltraMage's socket cleanup.
- Fixed the packet structure in mmo_char_send006b for PACKETVER 8.
- Removed search_str from add_str (add_str already searches for the string).
- Native script words like do,while,for,... are case insensitive now.
- Changed SCRIPT_HASH_SIZE to 1021 (prime hash sizes give better distributions).
- Added alternative hash implementations to the script engine (to try out later).

removed int_homun.c from header section of the VS8 map project files

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9588 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-28 19:11:40 +00:00
skotlex
807acd0aac - Added a func_parse invocation when an invalid socket is found, so that the underlying code (char/map/login) can handle it and free any related resources.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9587 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-28 18:02:14 +00:00
skotlex
8bcc26d8dd - Some cleaning in do_sendrecv, added error messages when handling an incorrect socket.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9582 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-28 14:03:39 +00:00
FlavioJS
60e3d1b499 - Applied part 1 of TheUltraMage's socket cleanup.
"Basically what I did was perform simple one-liner substitutions for ugly repetitive blocks of code. The most apparent are the send/recv code and the other basic socket calls."
- flush_fifo is non-blocking now. I guess best effort is good enough...
- Copied header files from vcproj-7.1 files to vcproj-8 files.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9570 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-25 06:59:25 +00:00
toms
8bd7d2873e Modified flush_fifo so the code do what is written in the comment
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9489 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-13 16:09:13 +00:00
skotlex
0c362fa90f - Modified flush_fifo so you can decide whether to block the current thread or not until the data is sent. The server-tick reply no longer blocks the current thread.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9486 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-13 13:45:52 +00:00
FlavioJS
b524f75cd0 - Reversed revision #9415 (messages with server_tick field being sent as soon as possible) since it didn't fix the client synchronization issue.
- clif_parse_TickSend is sent immediately so the client gets accurate "pings"

Note: in Changelog, for my changes, if they're grouped together and in the same day I'm only gonna "sign" the bottom line.
All unsigned lines are assumed to be from the same person of the previous line (below). (easier searches =P)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9443 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-09 15:57:22 +00:00
FlavioJS
0931ce5d81 - Messages with server_tick field are sent as soon as possible now.
This might fix client synchronization issues.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9415 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-06 10:57:31 +00:00
skotlex
efce12bf28 - Fixed sc data load failing when using charsave_method: 1
- Fixed the interserver link reserve size being 8 times instead of 1/8th the default size. Changed it to be 1/4th as well.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9411 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-05 17:09:02 +00:00
FlavioJS
636089bb3a - Probably fixed the Segmentation Faults we've been having.
Description: A player quits and it's session is freed and set to NULL, 
       but the char server already sent a packet with player information 
       (registers, storage, ...). If a message is sent in consequence of 
       updating that info, a segmentation fault happens because 
       session[sd->fd] is already NULL.
  Fix: make shure the session of the target player is valid before 
       processing the rest of the char server's message.
- Some minor cleanups.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9366 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-29 20:07:22 +00:00
FlavioJS
1e8a3bcd3f - Changed write to send as suggested by TheUltraMage in:
http://www.eathena.ws/board/index.php?showtopic=105417
  Hopefully that will take care of the SIGPIPE problem in Debian and cygwin.
- Server name in core.c skipping '\\' characters.
- Memory allocation functions using file,line,func from the invoking functions.
- Other minor changes in malloc

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9344 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-28 13:31:22 +00:00
skotlex
cfee0ccf63 - Added all the missing FIFOHEADs in the login/sql servers (required for TURBO support)
- Fixed the fact that the TURBO code breaks when you attempt to handle more than one connection at a time within the same function. However this broke map-server compilation, therefore, don't use TURBO yet! It needs more fixing (and I need more time to fix it)
- While at it, cleaned a few packet implementations in the char/login servers which were not only ugly, but had some really stupid flaws within (stuff like escaping a string, and then using the non-escaped variable to insert to SQL? T_T) And will someone explain me why the TXT servers are coded much more cleanly, and without such horribly broken code as I find in the SQL ones? T_T;


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9307 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-24 12:41:38 +00:00
skotlex
73379857e2 - Made WFIFOHEAD() check for available buffer size remaining on the connection, and when there's not enough space, it will increase it.
- Added define TURBO to the Makefile. It enables MouseJstr's socket access optimization which should speed up the code when accessing the write/read buffers repeatedly within a function.
- Fixed the functions where the RFIFOHEAD/WFIFOHEAD functions were used incorrectly (prevents TURBO enabled compilations from finishing)


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9297 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-23 15:33:51 +00:00
skotlex
eee1baf718 - Ganbantein's delay is now 2 secs.
- Removed the time2 value of NJ_NEN since it has no use.
- Removed the return code entry when logging GM reload-GM requests (login-sql),it'll just be stored as zero.
- Added a fix on socket.c to not pick INADDR_ANY when choosing our own IP.
- Applied the correction on maprespawnguildid so that it parses ALL players and not just those on a map.
- TK_JUMPKICK now dispels normal aspd/speed potions (not berserk pitched ones) and Preserve will be unable to block this.
- Soul Linkers are now inmune to SA_DISPEL
- You can now place everything (except magic skills) on top of LPs.
- Corrected Ganbantein to not touch song/dance/ensembles.
- Status_calc_pc will refuse to execute if the player is still tagged as a "new connection" and the invocation is not meant to be the first one.
- Swapped the order of checks in status_isimmune so that Wand of Hermod skill blocking takes precedence over GTB's
- Client packets will all be ignored while a player is not on a map until the LoadEndAck packet is received.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9152 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-06 15:58:30 +00:00
skotlex
816e3fe096 - Probably fixed a signed/unsigned mismatch warning on the new socket code.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8848 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-22 19:22:21 +00:00
skotlex
c616fec871 - Improved a bit RFIFOFLUSH as suggested by Harbin.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8838 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-21 19:10:31 +00:00
toms
19131abb68 Fixed some gcc4 warnings
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8807 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-19 13:25:39 +00:00
skotlex
df7e54c3df - Fixed Spider Web fire damage bonus.
- Made Global chat always reply back to you even on @/# commands, this prevents the client from muting yourself due to "hack". However, this same fix isn't easily applicable to @ commands invoked from whispers or party/guild messages, those are still pending.
- Some fixes in socket.c


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8801 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-19 02:58:40 +00:00
skotlex
da13939d47 - Merged Meruru's update to socket.c, which includes a rewritten parse function, which should hopefully be more efficient than the previous code.
- The new code includes support for two config settings (packet_athena.txt): frame_size, which can be used to alter the logic packet-size allowed by the code, and mode_neg, which when set to yes, sets TCP_NODELAY on all connections (defaults to yes).


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8799 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-18 22:28:07 +00:00
skotlex
4f24872a12 - Fixed compilation for native windows builds.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8734 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-13 16:23:24 +00:00
skotlex
a64ba50b61 - Readded the setting TCP_NODELAY on socket.c to see if it fixes the walk-lag issue.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8731 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-13 13:33:08 +00:00
skotlex
27c9a6fe5a - Modified set_nonblocking and setsocketoptions in socket.c, using eApp's code as reference. Hopefully should improve performance somewhat.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8710 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-11 21:32:26 +00:00
skotlex
609bfd1e48 - Updated skill_require_db's entry for Abracadabra, it requires yellow 2 gemstones (there's no such hardcoded yellow gemstone requirement anymore)
- Corrected db/const.txt entry bMagicSubRace -> bMagicAddSize
- Fixed Aex Aeterna ending on Soul Breaker's first half.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8651 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-06 14:22:16 +00:00
Lance
26500644dd * Optional macro MEMSET_TURBO for faster low-level memory initializations.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8499 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-27 06:38:17 +00:00
skotlex
4d27716bf1 - Tested and fixed resolve_hostbyname.
- Applied said function around most of the code where needed. Removed includes for the OS/network system pretty much from every file (our socket.c file should handle this)
- Added clif_getip_long, which returns the ip as a long. Prevents having to include the files to define the int_addr structure in all files that include clif.h
- Made the GM mute request bypass the manner_system setting.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7285 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-22 01:12:52 +00:00
skotlex
847d853332 - Added function parse_hostbyname() which takes a hostname and a char[4]. The hostname is resolved to an ip, whose individual components are stored in char[], the return value of the function is the inet_addr result of the lookup (or returns 0 when failed). Meant to be used in the rest of the code without the need to do socket/network related includes.
- Applied use of parse_hostbyname() in chrif.c to fix compilation errors.
- status_percent_change will now account for when the target's max hp/sp is above INT_MAX.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7281 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-21 18:30:39 +00:00
Lance
a28e9d802c [Optimized]
- Removed unused checks for unsigned data type and possible logic error for char type (gcc treats char as unsigned).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6814 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-29 09:53:45 +00:00
Valaris
2178a86317 AS OF SVN REV. 5901, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.  EVERYTHING ELSE
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5094 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-01-29 16:10:48 +00:00
Valaris
fd99753f8e Clearing trunk.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5091 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-01-29 16:00:45 +00:00
celest
8114bec659 * Added SERVER_TYPE to core for future plugins support
* Added support for the UPNP plugin to release port mappings and re-close firewall ports on shutdown
* Updated showmsg

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1409 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-04-05 14:32:04 +00:00
amber
624f5b09c1 pull out upnp as default
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1402 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-04-04 17:52:53 +00:00
celest
308b7915ff * Added dll.h
* Update base code for the UPNP plugin loading

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1398 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-04-04 14:48:14 +00:00
celest
4773e16492 git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1397 54d463be-8e91-2dee-dedb-b68131a5f0ec 2005-04-04 14:24:07 +00:00
celest
88cfcb9432 * Added base code for loading Ser's UPNP plugin
* Added 'idle_no_share' to battle_athena.conf
* Added item_findingore.txt

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1343 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-03-30 17:10:03 +00:00
amber
dfd7258882 Fixe compile time problems with our mixed C++/C conformance
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1328 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-03-29 06:18:21 +00:00
celest
91fb421a67 * Fixed alot of memory leaks
* Added stray memory cleaning routine to db.c

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1275 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-03-23 15:26:52 +00:00
celest
d30a426160 * Added 4 new card effects from 3/15's patch
* Added 'enable_ip_rules' to packet_athena.conf
* Updated socket debug messages to be more readable

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1257 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-03-20 12:07:52 +00:00
celest
61c4e01a71 * Updated jA's dummy socket to mod1137
* Added jA's ddos protection system
* Moved stall_time's reading to packet_athena.conf

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1237 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-03-16 12:21:26 +00:00
celest
311621f308 * Added jA's dummy socket to prevent fd crashes
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1183 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-02-26 08:38:22 +00:00
celest
e9a7ccf3f2 * Readded Chemical Protection
* Removed some old eA code that was causing Frost Nova to do an extra hit
* Corrected Vulcan Arrow's hits in skill_db
* Readded zlib and zconf .h files to under /lib
* Fixed some compile errors in Windows
* Changed remove_control_characters back to supporting korean chars
* Moved some other code around

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1125 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-02-17 16:28:36 +00:00
(no author)
302cc85025 Servers can bind to single IP addresses now, and added buffer.(c/h)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1033 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-02-05 02:07:30 +00:00
(no author)
778e804dd6 update
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@968 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-01-23 20:38:44 +00:00
amber
f68c8a4805 update
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@924 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-01-06 15:02:42 +00:00
amber
0452a9c55f cxx updates
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@861 54d463be-8e91-2dee-dedb-b68131a5f0ec
2004-12-29 19:18:18 +00:00
amber
f922478b19 updates
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@793 54d463be-8e91-2dee-dedb-b68131a5f0ec
2004-12-26 19:44:00 +00:00