summaryrefslogtreecommitdiff
path: root/src/map/script.c
AgeCommit message (Collapse)AuthorFilesLines
2007-02-25- infinite loop pwned me x.xFlavioJS1-0/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9919 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-25- Fixed a compiler warning in char_sql\login.cFlavioJS1-46/+61
- Minor source documentation/cleanup. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9917 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-25Corrected some typos and small detailsultramage1-23/+24
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9912 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-24- Minor cleanup/documentation on the script engine.FlavioJS1-29/+65
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9909 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-23- Minor cleanupsskotlex1-5/+2
- Adjusted menu-based skills so you can't reuse the same skill until you've dealt with the menu. - Adjust autospells so that removing an autospell works when the script of the card that removes the autospell is triggered before the script that adds the spell. - The "requested name of gm-hidden char" warning will not be displayed when the object in question is an NPC (since you can use Intravision to do this). - Corrected the header format for invisible npcs. - Venom Knife no longer takes into accounts cards or EDP. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9905 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-16- Updated the Dancer job quest to attach a player to the main timer script.skotlex1-38/+105
- Updated script commands startnpctimer, stopnpctimer, initnpctimer so you can attach a player to them, this is done because the attach/detach functions can't be used to attach to a different script than the one currently running. - Some script code cleaning - Updated the script_command reference with the new flag values of [start/stop/init]npctimer. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9872 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-16- Modified the "guardian" spawn script command, it no longer receives a ↵skotlex1-13/+11
"amount" argument (since that only leads to trouble), if the class is negative, it'll pick a random class the same way the monster spawn script command does, and if you pass a spawn position with coordinates equal or less to 0, a random spot in the map will be taken. However you can't use "this" as a map name anymore since these script commands do not need an attached player. - Guardian spawning will now fail if you attempt to spawn a guardian that already exists on the same position. - Collapsed clif_party_main_info and clif_party_join_info into a single function: clif_party_member_info - Collapsed config settings "sg_miracle_skill_min_duration" and "sg_miracle_skill_max_duration" into "sg_miracle_skill_duration", which defaults to an hour. - Miracle of the Sun, Moon and Stars can now retrigger to lenghten it's effect, and it is cancelled on warp/map-change. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9871 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-15Cleaned up set_reg and the surrounding codeultramage1-72/+58
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9869 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-15- The default packet version is now 8. Clients from November2006 and before ↵skotlex1-19/+0
can no longer get past the char-server unless you change it back to 7. - Fixed Storm Gust counter freezing on fourth hit instead of third. - Fixed @homstats not taking into consideration that the stat growth decimals get discarded on level up (so the real minimum/maximum displayed was off). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9868 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-13- Applied Rayce's dangling pointer fix when returning a temporary npc string ↵skotlex1-0/+6
variable (those starting with .@) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9864 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-13- A bit more work on Ticket #41.FlavioJS1-61/+93
- Added 'r' (variable reference) to the script argument definitions. - Added a simple define for suspitious actions. (empty at the moment) - Added clif_clearcart and moved sending cart packets to pc_setoption. - clif_parse_ChangeCart checking the player level. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9857 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-10- Ups @ last commit. This time the changes in the buildin_func array are ↵FlavioJS1-2/+2
automatic, so there should be no more errors due to erroneous manual checking. ( got to remember to do automatic changes more often >.> ) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9844 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-10* Cosmetic changes to the buildin section of script.c (use defines for ↵FlavioJS1-962/+1002
function names/definitions). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9843 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-07- Removed deprecated console code.FlavioJS1-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9815 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-07Cleaned up the script engine's get_val() functionultramage1-83/+69
- 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9812 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-06Undid revision r9792 (npcshopattach)ultramage1-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9796 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-05Applied Dj-Yhn's fix to 'npcshopattach'ultramage1-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9792 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-05- Continuing the checking of script buildin functions and stop the script ↵FlavioJS1-55/+48
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9790 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-05Changed the 'getpartyleader' script command so that it returns a map name ↵ultramage1-3/+3
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9787 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-03- Fixed the flag parameter not working on npcshopattachskotlex1-2/+2
- 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9782 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-02- The define MESSAGE_SIZE was wrong! It is only used for input boxes. ↵skotlex1-1/+0
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9778 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-01- Cleaned up the npcshop(add/del) item script commands, fixed a possible ↵skotlex1-60/+95
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9769 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-27Removed useless read-from-GRF featuresDracoRPG1-18/+0
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9725 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-24- Improved a bit the menu entries counting code (using a while with strchr ↵skotlex1-21/+23
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9706 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-22- Removed sd->max_menu, sd->npc_menu is now reused to store what is the max ↵skotlex1-3/+3
number of valid entries and prevent clients from picking invalid options. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9690 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-21- Fixed while statements not "reserving" the curly before parsing the test ↵FlavioJS1-1/+4
expression. Ref: http://www.eathena.ws/board/index.php?showtopic=134596 git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9680 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-19- Fixed the label dup code, it now works correctly with const.txt switch labels.skotlex1-37/+18
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9676 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-19- Reverted the dup-label check code since it has a bug that needs to be ↵skotlex1-3/+32
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9675 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-19- Merged Rayce's cleanups of the script engine that account for duplicate ↵skotlex1-68/+83
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9673 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-11- Fixed the script engine not parsing strings in multibyte charsets ↵FlavioJS1-3/+3
correctly (should have been done in r9532). Ref: http://www.eathena.ws/board/index.php?showtopic=132004 git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9642 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-10- Fixed the define script_lastdata, introduced by me at r9637 (had the wrong ↵FlavioJS1-1/+1
sign) really hate these types of bugs, no more committing late for me >.> git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9639 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-09- Changes to script buildin functions:FlavioJS1-297/+330
* 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9636 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-08Unimportant cleanupsultramage1-0/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9633 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-07- Fixed the sleep timers not being removed when the an npc was being ↵FlavioJS1-12/+29
unloaded and when reloading scripts. Ref: http://www.eathena.ws/board/index.php?showtopic=131464 git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9629 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-07Undid the memset->malloc_set replacementultramage1-15/+15
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9626 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-07- re-added the duplicit nj/gs name messages in msg_athenaultramage1-4/+4
- 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9625 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-31- Updated getitem and guardian entries in script_commands.txt.FlavioJS1-62/+120
- 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9599 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-28- Part 3 of TheUltraMage's socket cleanup.FlavioJS1-35/+90
- 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9588 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-27- Applied Rayce's suggestion to improve the script hash size usage. eA now ↵skotlex1-18/+45
uses a hash of 1024. - The str hash report can be printed by turning on the etc_log git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9577 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-26- Cleaned up some more the code so it works for -DTURBOskotlex1-22/+19
- 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9573 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-25- a couple of warnings fixedFlavioJS1-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9572 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-25- Fixed buildin_getscrate, thanks Trancid.FlavioJS1-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9571 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-25- Applied the rest of Rayce's suggestions and fixes ↵FlavioJS1-192/+214
(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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9569 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-23- Fallback for parenthesis argument lists in the script engine. "func (exp) ↵FlavioJS1-2/+11
, ..." is valid again. Why didn't I think of this earlier? /hmm git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9565 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-23- Moved "#include <limits.h>" to cbasetypes.h to ensure it's included before ↵FlavioJS1-2/+1
checking if UINT_MAX has been defined. - Minor changes in pc_readdb related to max_level being unsigned. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9561 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-22- Simplified the global function "getJobName"skotlex1-17/+4
- 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9559 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-22- Change strncpy to memcpy when parsing switches in the script engine since ↵FlavioJS1-38/+39
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9557 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-21- Applied Rayce's suggestions and fixes to the script engine ↵skotlex1-6/+17
(http://www.eathena.ws/board/index.php?showtopic=129185) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9554 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-21- Changed a certain snprintf to strncpy, you really really really REALLY ↵skotlex1-1/+1
shouldn't use snprintf with a format argument that may contain unpredictable string sequences! git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9550 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-21- readded the >=0x81 equivalent until I figure out where the script engine ↵FlavioJS1-2/+6
is 'being naughty' O.o git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9547 54d463be-8e91-2dee-dedb-b68131a5f0ec