diff options
author | brianluau <brianluau@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2009-05-04 08:22:53 +0000 |
---|---|---|
committer | brianluau <brianluau@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2009-05-04 08:22:53 +0000 |
commit | 1c5e4a6caf2e70592c80202e7222e895a67b5f10 (patch) | |
tree | 1de75be79bf2539b1bb55e460dc8d4b3504624d1 | |
parent | 5a0c79ee6c863ffeed86c325d4ecd7708cc12b58 (diff) | |
download | hercules-1c5e4a6caf2e70592c80202e7222e895a67b5f10.tar.gz hercules-1c5e4a6caf2e70592c80202e7222e895a67b5f10.tar.bz2 hercules-1c5e4a6caf2e70592c80202e7222e895a67b5f10.tar.xz hercules-1c5e4a6caf2e70592c80202e7222e895a67b5f10.zip |
* Added the md5() script command. (follow up to r13719)
- Changed kafra storage password to be stored as md5 hash in #kafra_code$.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13728 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r-- | Changelog-Trunk.txt | 2 | ||||
-rw-r--r-- | doc/script_commands.txt | 11 | ||||
-rw-r--r-- | npc/Changelog.txt | 1 | ||||
-rw-r--r-- | npc/custom/eAAC_Scripts/quest_warper.txt | 5 | ||||
-rw-r--r-- | npc/kafras/functions_kafras.txt | 15 | ||||
-rw-r--r-- | sql-files/upgrade_svn13728.sql | 1 | ||||
-rw-r--r-- | src/map/Makefile.in | 4 | ||||
-rw-r--r-- | src/map/script.c | 16 | ||||
-rw-r--r-- | vcproj-9/map-server_sql.vcproj | 8 | ||||
-rw-r--r-- | vcproj-9/map-server_txt.vcproj | 8 |
10 files changed, 60 insertions, 11 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 67e3b5350..cf99d95bf 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,8 @@ Date Added AS OF SVN REV. 5091, 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. +2009/05/04 + * Added the md5() script command. [brianluau] 2009/05/03 * Updated item_db.sql and mob_db.sql from recent changes to both. Thanks to Peter once again! [Jguy] * Do not log damage if it's done by mob itself (bugreport:2933) [Inkfish] diff --git a/doc/script_commands.txt b/doc/script_commands.txt index 1599058c8..24fc0b7f2 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -5917,6 +5917,17 @@ set @i, distance(100,200,101,202); --------------------------------------- +*md5("<string>") + +Returns the md5 checksum of a number or string. + +Example: + mes md5(12345); + mes md5("12345"); // Will both display 827ccb0eea8a706c4c34a16891f84e7b + mes md5("qwerty"); // Will display d8578edf8458ce06fbc5bb76a58c5ca4 + +--------------------------------------- + *query_sql "your MySQL query", <array variable> {,<array variable>, ...}; *query_logsql "your MySQL query", <array variable> {,<array variable>, ...}; diff --git a/npc/Changelog.txt b/npc/Changelog.txt index 0bd383e2e..b79a4ee6b 100644 --- a/npc/Changelog.txt +++ b/npc/Changelog.txt @@ -1,6 +1,7 @@ Date Added ====== 2009/05/04 + - The md5 checksum of the kafra code is now stored in #kafra_code$ [brianluau] - Added a missing zeny check in the Jawaii Bartender. (bugreport:2897) [brianluau] - Added a missing 'close' in the Mage quest Bookshelf. (bugreport:2873) 2009/05/03 diff --git a/npc/custom/eAAC_Scripts/quest_warper.txt b/npc/custom/eAAC_Scripts/quest_warper.txt index 7ff06cd2e..650ee3a6e 100644 --- a/npc/custom/eAAC_Scripts/quest_warper.txt +++ b/npc/custom/eAAC_Scripts/quest_warper.txt @@ -71,6 +71,7 @@ // - Special warpname menu option name bug fixed //-2.1 Updated names to fall within retrictions. [L0ne_W0lf] //-2.2 #kafra_code is now stored as is. [brianluau] +//-2.2b The md5() of their kafra code is now stored in #kafra_code$ [brianluau] //================================================================= //========================Function=&=Script======================== @@ -597,11 +598,11 @@ L_Storage: end; F_CheckKafCode: - if(#kafra_code==0) return; + if(#kafra_code$=="") return; mes "Enter your storage password:"; set @code_,0; input @code_; - if(@code_ != #kafra_code) { + if(md5(@code_) != #kafra_code$) { dispbottom "Wrong storage password."; close; } diff --git a/npc/kafras/functions_kafras.txt b/npc/kafras/functions_kafras.txt index 4b65bbc9a..56382a31f 100644 --- a/npc/kafras/functions_kafras.txt +++ b/npc/kafras/functions_kafras.txt @@ -58,6 +58,7 @@ //= 6.1 Added menu for Turbo Track Kafra Staff. [L0ne_W0lf] //= 6.2 Updated/Fixed warp cords. [Kisuka] //= 6.3 #kafra_code is now stored as is. [brianluau] +//= 6.3b The md5() of their kafra code is now stored in #kafra_code$ [brianluau] //============================================================ @@ -557,11 +558,11 @@ function script F_KafEnd { // Check Storage Password Function ==================== function script F_CheckKafCode { - if(#kafra_code==0) return; + if(#kafra_code$=="") return; mes "Enter your storage password:"; set @code_,0; input @code_; - if(@code_ != #kafra_code) { + if(md5(@code_) != #kafra_code$) { dispbottom "Wrong storage password."; close2; cutin "",255; @@ -576,7 +577,7 @@ function script F_CheckKafCode { // getarg(0) = NPC Name, getarg(1) = Company Name function script F_SetKafCode { mes getarg(0); - if(#kafra_code) { + if(#kafra_code$) { mes "Your storage is protected with a password. What would you do now?"; next; menu "Change old password -> 5000z",-, @@ -593,7 +594,7 @@ function script F_SetKafCode { mes getarg(0); mes "At first, please enter your ^0000FFold password^000000."; set @code,callfunc("F_EntKafCode"); - if(@code==0 || @code != #kafra_code) { + if(@code==0 || md5(@code) != #kafra_code$) { mes "Wrong password. You can't set a new password."; emotion e_hmm; goto M_END; @@ -615,7 +616,7 @@ M_SET: set Zeny,Zeny-5000; //set RESRVPTS, RESRVPTS + (5000/50); //hardcoded password doesn't add pts - set #kafra_code,@code; + set #kafra_code$,md5(@code); mes "You've protected your storage with a secret password."; mes "Thank you for using "+getarg(1)+"."; emotion e_thx; @@ -635,8 +636,8 @@ M_CLEAR: if(Zeny < 1000) goto L_ZENY; set Zeny,Zeny-1000; //set RESRVPTS, RESRVPTS + (1000/50); //hardcoded password doesn't add pts - if(@code == #kafra_code) { - set #kafra_code,0; + if(md5(@code) == #kafra_code$) { + set #kafra_code$,""; mes "You've successfully cleared your storage password."; mes "Thank you for using "+getarg(1)+"."; emotion e_thx; diff --git a/sql-files/upgrade_svn13728.sql b/sql-files/upgrade_svn13728.sql new file mode 100644 index 000000000..6dc8301a5 --- /dev/null +++ b/sql-files/upgrade_svn13728.sql @@ -0,0 +1 @@ +UPDATE `global_reg_value` SET `str`='#kafra_code$',`value`=MD5(`value`) WHERE `str` = '#kafra_code';
diff --git a/src/map/Makefile.in b/src/map/Makefile.in index 931b86c6a..10cf1ed39 100644 --- a/src/map/Makefile.in +++ b/src/map/Makefile.in @@ -3,12 +3,12 @@ COMMON_OBJ = ../common/obj_all/core.o ../common/obj_all/socket.o ../common/obj_a ../common/obj_all/db.o ../common/obj_all/plugins.o ../common/obj_all/lock.o \ ../common/obj_all/nullpo.o ../common/obj_all/malloc.o ../common/obj_all/showmsg.o \ ../common/obj_all/utils.o ../common/obj_all/strlib.o ../common/obj_all/grfio.o \ - ../common/obj_all/mapindex.o ../common/obj_all/ers.o + ../common/obj_all/mapindex.o ../common/obj_all/ers.o ../common/obj_all/md5calc.o COMMON_H = ../common/core.h ../common/socket.h ../common/timer.h \ ../common/db.h ../common/plugins.h ../common/lock.h \ ../common/nullpo.h ../common/malloc.h ../common/showmsg.h \ ../common/utils.h ../common/strlib.h ../common/grfio.h \ - ../common/mapindex.h ../common/ers.h + ../common/mapindex.h ../common/ers.h ../common/md5calc.h COMMON_SQL_OBJ = ../common/obj_sql/sql.o COMMON_SQL_H = ../common/sql.h diff --git a/src/map/script.c b/src/map/script.c index 0bd5bbb35..a29b08423 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -9,6 +9,7 @@ #include "../common/cbasetypes.h" #include "../common/malloc.h" +#include "../common/md5calc.h" #include "../common/lock.h" #include "../common/nullpo.h" #include "../common/showmsg.h" @@ -11900,6 +11901,7 @@ BUILDIN_FUNC(pow) script_pushint(st,(int)i); return 0; } + BUILDIN_FUNC(distance) { int x0, y0, x1, y1; @@ -11914,6 +11916,19 @@ BUILDIN_FUNC(distance) } // <--- [zBuffer] List of mathematics commands + +BUILDIN_FUNC(md5) +{ + const char *tmpstr; + char *md5str; + + tmpstr = script_getstr(st,2); + md5str = (char *)aMallocA((32+1)*sizeof(char)); + MD5_String(tmpstr, md5str); + script_pushstr(st, md5str); + return 0; +} + // [zBuffer] List of dynamic var commands ---> BUILDIN_FUNC(setd) @@ -13900,6 +13915,7 @@ struct script_function buildin_func[] = { BUILDIN_DEF(pow,"ii"), BUILDIN_DEF(distance,"iiii"), // <--- [zBuffer] List of mathematics commands + BUILDIN_DEF(md5,"s"), // [zBuffer] List of dynamic var commands ---> BUILDIN_DEF(getd,"*"), BUILDIN_DEF(setd,"*"), diff --git a/vcproj-9/map-server_sql.vcproj b/vcproj-9/map-server_sql.vcproj index 22da33b69..973e4bfad 100644 --- a/vcproj-9/map-server_sql.vcproj +++ b/vcproj-9/map-server_sql.vcproj @@ -255,6 +255,14 @@ > </File> <File + RelativePath="..\src\common\md5calc.c" + > + </File> + <File + RelativePath="..\src\common\md5calc.h" + > + </File> + <File RelativePath="..\src\common\mapindex.c" > </File> diff --git a/vcproj-9/map-server_txt.vcproj b/vcproj-9/map-server_txt.vcproj index b0b8abe7f..5085acaf7 100644 --- a/vcproj-9/map-server_txt.vcproj +++ b/vcproj-9/map-server_txt.vcproj @@ -502,6 +502,14 @@ > </File> <File + RelativePath="..\src\common\md5calc.c" + > + </File> + <File + RelativePath="..\src\common\md5calc.h" + > + </File> + <File RelativePath="..\src\common\mapindex.c" > </File> |