501 Commits

Author SHA1 Message Date
FlavioJS
1041f38037 * Cosmetic changes to the buildin section of script.c (use defines for function names/definitions).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9843 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-10 13:56:49 +00:00
FlavioJS
c46f3cf135 - Removed deprecated console code.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9815 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-07 06:25:00 +00:00
ultramage
6bf7170064 Cleaned up the script engine's get_val() function
- changed the long if-spaghetti into a compact switch statement
- changed its behavior so that it exits if !sd and it requires one
- upon exiting, it will now ensure that meaningful values get returned (the old code would return random memory / crash)
- removed many !sd checks since they are done at the beginning now

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9812 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-07 01:49:28 +00:00
ultramage
c5450173b1 Undid revision r9792 (npcshopattach)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9796 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-06 00:32:40 +00:00
ultramage
ed7e98e9d3 Applied Dj-Yhn's fix to 'npcshopattach'
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9792 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-05 20:34:22 +00:00
FlavioJS
f652311f37 - Continuing the checking of script buildin functions and stop the script execution when an attached player is required but not found.
This task will be referenced as Ticket #41 from now on.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9790 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-05 17:42:55 +00:00
ultramage
12a784cf17 Changed the 'getpartyleader' script command so that it returns a map name instead of the useless mapindex number.
Also fixed it so that it doesn't throw a 'args of aFree is not valid pointer' error (although I'm not at all sure that the fix is correct).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9787 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-05 14:11:43 +00:00
skotlex
a23da55db8 - Fixed the flag parameter not working on npcshopattach
- Modified unit_walktoxy so it accepts flag &4. When used, this flag will delay the walk request if the character is unable to move because of the can't walk delay. This is used for player and homunculus walk requests.
- Removed the delay walking code from clif.c as it's now handled by unit.c
- Added a possible crash protection in clif_skillfail when the player is without a connection.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9782 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-03 07:48:38 +00:00
skotlex
2a5ec09a11 - The define MESSAGE_SIZE was wrong! It is only used for input boxes. Therefore now it is only used for Vending, Talkie box and Graffiti
- Added new define CHAT_SIZE which holds the max length that a client can send from the chat buffer. This value is NAME_LENGTH + 3 (the ' : ') + 70 (the actual text).
- Added define msg_len_check which crops incoming client text if it's longer than CHAT_SIZE. Added cropping to all incoming messages except normal chatting which is already accounted for.
- Removed variable  talkie_mes, this is now handled by sd->message
- Cleaned up parser functions for /b /lb, gm kick, /shift, /recall
- Added crash protection to the logging functions when they receive a too long string.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9778 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-02 19:59:39 +00:00
skotlex
4130bdd3b8 - Cleaned up the npcshop(add/del) item script commands, fixed a possible dangling pointer crash caused by their improper use of realloc. They no longer automatically attach the script to the shop, and they will return true/false based on whether the shop was found or not.
- Added script command npcshopattach to enable attaching/detaching your script from any npc shop.
- Updated doc/script_commands.txt with entries for npcshopitem, npcshopadditem, npcshopdelitem and npcshopattach 


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9769 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-01 22:23:14 +00:00
DracoRPG
bf98b03fb0 Removed useless read-from-GRF features
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9725 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-27 05:04:10 +00:00
skotlex
f904054ce8 - Improved a bit the menu entries counting code (using a while with strchr should yield better performance that a for done on the string's strlen, right? However, it bugs me that strchr's man-page says it won't work on multi-byte characters. But does a strchr(str,':') works any worse than (str[i]== ':')?
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9706 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-24 15:11:42 +00:00
skotlex
81a9313a9d - Removed sd->max_menu, sd->npc_menu is now reused to store what is the max number of valid entries and prevent clients from picking invalid options.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9690 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-22 15:10:15 +00:00
FlavioJS
5117e39fac - Fixed while statements not "reserving" the curly before parsing the test expression.
Ref: http://www.eathena.ws/board/index.php?showtopic=134596

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9680 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-21 03:17:04 +00:00
skotlex
3838afbf52 - Fixed the label dup code, it now works correctly with const.txt switch labels.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9676 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-19 18:22:31 +00:00
skotlex
9d049827d7 - Reverted the dup-label check code since it has a bug that needs to be fixed first (it fails to recognize const.txt values)
- Reverted clif_skill_damage receiving the blewcount value since the whole code update that was involved didn't help any anyway.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9675 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-19 18:00:11 +00:00
skotlex
3b1e03537d - Merged Rayce's cleanups of the script engine that account for duplicate labels, non-numeric labels and makes the engine case-insensitive towards keywords like if/case/switch/etc/
- Added the icons for the Food boosts (need packet version 8 to get them).


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9673 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-19 15:27:53 +00:00
FlavioJS
8d7a0bd454 - Fixed the script engine not parsing strings in multibyte charsets correctly (should have been done in r9532).
Ref: http://www.eathena.ws/board/index.php?showtopic=132004

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9642 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-11 08:34:34 +00:00
FlavioJS
aa371b3af3 - Fixed the define script_lastdata, introduced by me at r9637 (had the wrong sign)
really hate these types of bugs, no more committing late for me >.>

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9639 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-10 14:57:54 +00:00
FlavioJS
4b78fc3c9f - Changes to script buildin functions:
* functions checking if a player is attached as soon as possible.
  * functions that required a player attached and would crash if none was 
    there terminate the script now. (others keep the current behaviour to 
    maintain full backward compatibility)
  * removed the unused flag argument in guildskill.
  * bonus,bonus2,bonus3,bonus4 use the same function now (remains the same 
    script-wise)
  * added an optional parameter to setcart,setfalcon,setriding so it's 
    possible to remove the cart/falcon/mount or select a specific cart
  * other cleanups

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9636 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-09 17:31:13 +00:00
ultramage
b0aa97039b Unimportant cleanups
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9633 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-08 16:50:54 +00:00
FlavioJS
da5d22b67f - Fixed the sleep timers not being removed when the an npc was being unloaded and when reloading scripts.
Ref: http://www.eathena.ws/board/index.php?showtopic=131464

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9629 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-07 17:59:25 +00:00
ultramage
fbe23f27a2 Undid the memset->malloc_set replacement
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9626 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-07 16:49:03 +00:00
ultramage
9f164c312b - re-added the duplicit nj/gs name messages in msg_athena
- renamed atcommand_sub to is_atcommand_sub (charcommand too)
- reformatted conf-tmpl's comments a bit
- and a fix to the stable changelog to make my last commit more descriptive

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9625 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-07 07:48:04 +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
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
74e263086a - Applied Rayce's suggestion to improve the script hash size usage. eA now uses a hash of 1024.
- The str hash report can be printed by turning on the etc_log


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9577 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-27 14:40:04 +00:00
skotlex
58bb9be68a - Cleaned up some more the code so it works for -DTURBO
- Cleaned the pvpoff @ and script commands.
- mob_get_random_id now has two additional flags to specify that the monster to acquire should not be a boss type (4) or that it should give exp (8).
- TK_MISSION will now pick any mob from the DB as long as it is not a boss type and it gives base exp.
- Fixed the double-stone issue when hitting a petrified character.
- Minor cleanups


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9573 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-26 15:07:18 +00:00
FlavioJS
dd92bd13fd - a couple of warnings fixed
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9572 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-25 08:21:49 +00:00
FlavioJS
8751fbd631 - Fixed buildin_getscrate, thanks Trancid.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9571 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-25 07:28:15 +00:00
FlavioJS
266f66cfff - Applied the rest of Rayce's suggestions and fixes (http://www.eathena.ws/board/index.php?showtopic=129185)
- warn_cmd_no_comma, warn_func_no_comma, warn_cmd_mismatch_paramnum are now warn_func_mismatch_paramnum and it only prevents showing the error, as it was probably intended in the first place. (correct me if i'm wrong)
- Merged the parsing of function calls in the script engine, removing the parse_cmd hackery, and made "heal (.@val+rand(0xff))&0xff,0;" valid again.
- Fixed a bug in eye_of_hellion.txt and a bug in hunter.txt

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9569 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-25 06:15:46 +00:00
FlavioJS
11cb7227b2 - Fallback for parenthesis argument lists in the script engine. "func (exp) , ..." is valid again.
Why didn't I think of this earlier? /hmm

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9565 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-23 07:09:24 +00:00
FlavioJS
52245f90b9 - Moved "#include <limits.h>" to cbasetypes.h to ensure it's included before checking if UINT_MAX has been defined.
- Minor changes in pc_readdb related to max_level being unsigned.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9561 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-23 03:24:32 +00:00
skotlex
fa1c4b2e47 - Simplified the global function "getJobName"
- Simplified function agitcheck so it isn't crash prone. Now it takes no arguments, and will return whether WoE is on or not.
- Updated bundled scripts as required for this change.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9559 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-22 15:38:30 +00:00
FlavioJS
e75a8eca56 - Change strncpy to memcpy when parsing switches in the script engine since it's guaranteed to be a word of that size (skip_word).
- Made scriptlabel_db duplicate the key. When str_buf is reallocated, the keys in scriptlabel_db could become invalid, causing a crash in npc_convertlabel_db.
( removed the readded >=0x81 equivalent )
- Now npc_convertlabel_db clears scriptlabel_db after using it.
- parse_script has an extra parameter options. At the moment it only indicates if scriptlabel_db should be used or not.
- Fixed "UINT_MAX undeclared" on systems that don't declare it in limits.h

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9557 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-22 05:27:03 +00:00
skotlex
6e0309bb2c - Applied Rayce's suggestions and fixes to the script engine (http://www.eathena.ws/board/index.php?showtopic=129185)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9554 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-21 18:12:29 +00:00
skotlex
39a8fa2eb6 - Changed a certain snprintf to strncpy, you really really really REALLY shouldn't use snprintf with a format argument that may contain unpredictable string sequences!
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9550 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-21 15:44:39 +00:00
FlavioJS
45036c5c06 - readded the >=0x81 equivalent until I figure out where the script engine is 'being naughty' O.o
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9547 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-21 03:14:41 +00:00
FlavioJS
15258dfdb0 - Moved md5calc to common
- Answered Skotlex's question and fixed "warning: comparison is always false due to limited range of data type" by restricting script words to ASCII characters only.
- Applied "svn:eol-style native" to makefiles and project files

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9544 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-21 01:16:30 +00:00
skotlex
6bbec4a65d - Added an answer to a FlavioJS's comment, and added a question myself (npc.c/script.c respectively)
- Fixed add_str in script.h not being updated to const char as well. But why do we really need such a script-engine low-level function exposed to the rest of files? :/
- Moved the strip unequip code to before deleting the timer, this fixes trying to "re-strip" someone causing the skill to fail and on top of that terminate their current strip effect.
- Added an ugly work around to the issue of skills with additional effect causing opt1 status when they have just terminated them (in short, you shouldn't be able to hit someone with, say, sleep, and then have the same skill cause them stun, since both are opt1 values).
- Reading of TK Mission variables will now happen if you are a TK-class character regardless of whether you know TK_MISSION or not. Should fix being able to reset skills to reset your Mission data.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9537 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-20 15:54:11 +00:00
FlavioJS
72bebf27fc - Now root script functions calls can have parenthesis (will take any parenthesis after the function as the start of the argument list).
This means "func (exp),exp;" isn't valid anymore and has to be changed to "func exp,exp;" or "func((exp),exp);" or something like that.
- Updated swordman.txt and knight.txt accordingly.

Only changed this because it was very annoying when I was creating the sample localized npc.
Don't expect more changes unless something similar happens again. Bottom line: we're in soft feature freeze and moving to eApp...

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9536 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-20 11:50:44 +00:00
FlavioJS
78b52bbb4b - Replaced our fix for "mes ();" crashing by jA's version. see trunk[8867] and stable[8927]
- Merged the fix for & having the same precedence as << and >> from jA.
- Merged the C_OP3 operator from jA: test ? if_true : if_false

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9533 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-20 09:09:21 +00:00
FlavioJS
40b389bc42 - Changed the script source from unsigned char* to const char*.
- Updated plugins Makefile.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9532 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-20 07:17:18 +00:00
skotlex
e445c551c2 - Fixed SC_STRIPWEAPON failing on two-handed weapons.
- Minor changes.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9529 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-20 00:44:52 +00:00
skotlex
b19f78a17c - Fixed the setting hom_setting not being read at all.
- Minor cleanups


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9525 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-19 20:33:35 +00:00
skotlex
b8a2a5f905 - Added function skill_strip to handle stripping code. The RG strip skills and GS_DISARM use it now.
- Modified the strip-related status changes so they handle removing the equipped item instead of leaving it up to the skill-code. They return 0 when nothing could be stripped.
- Cleaned some the MD_DETECTOR code.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9499 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-14 18:15:24 +00:00
skotlex
84f8ec45d5 - Modified the skill damage packet and the knockback packets to mimic aegis sent packets for such skills.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9471 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-12 14:53:53 +00:00
toms
912fc7a427 Fixed npc commands atcommand & charcommand not working with a custom command_symbol
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9431 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-07 12:55:00 +00:00
FlavioJS
6fda364348 - Moved START_ACCOUNT_NUM and END_ACCOUNT_NUM from login.h to mmo.h and changed clif_guess_PacketVer to use that.
- Made the script engine big-endian compatible. (i know it's pointless because of the move to eApp, but just couldn't resist :S)
- Commented out the remnants of ladmin packet parsing in map-server.
- Added a warning when a player has an invalid packet version (shouldn't happen)

PS- also added info on clif_guild_basicinfo packet fields, if anyone is interested

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9408 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-05 07:24:29 +00:00
skotlex
1424d93e12 - Repairing items via scripts no longer displays "item has been repaired"
- Status Recovery again makes mobs unlock their current target.
- Moved requesting party/guilds from the char-server from pc_authok to pc_reg_received, since map_nick2sd and map_getallsd won't work until the characters are authentified. Also removed the guild master setting from clif_parse_LoadEndAck to pc_reg_received since guild master setting will work there.
- Fixed homun hunger timer being started on login even when hom is vaporized/dead.
- Fixed mvp exp attacker bonus applying incorrectly.
- Removed duplicate msg_athena.conf entries 619 and 620 for Ninja/Gunslinger.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9401 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-04 15:37:09 +00:00