From 0a21b3250da89a79769f40ad8244de7898e549fe Mon Sep 17 00:00:00 2001 From: ultramage Date: Wed, 5 Mar 2008 16:23:02 +0000 Subject: * Added code to clear the Illusionary Shadow effect (followup to r12293) * Added some trim() calls into mapflag code (followup to r12238) * Fixed mvp exp reward packet not working right for big values * Added dbghelpplug plugin entry to the plugins configuration file * Added conf setting for auction table name (see r12287) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12300 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 5 +++++ conf/inter_athena.conf | 7 +++---- conf/plugin_athena.conf | 3 +++ src/map/atcommand.c | 4 ++-- src/map/clif.c | 4 ++-- src/map/clif.h | 2 +- src/map/npc.c | 14 ++++++++------ src/map/status.c | 14 ++++++++++++++ 8 files changed, 38 insertions(+), 15 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 32b0e84fa..6c9801f50 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,11 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2008/03/05 + * Added code to clear the Illusionary Shadow effect (followup to r12293) + * Added some trim() calls into mapflag code (followup to r12238) + * Fixed mvp exp reward packet not working right for big values + * Added dbghelpplug plugin entry to the plugins configuration file + * Added conf setting for auction table name (see r12287) [ultramage] * Implemented Firepillar's 'target cannot move for 0.2 sec x hit' property. * Corrected Earthquake so it behaves as explained in the development topics. * Added a missing line to actually unequip unallowed compounded cards when diff --git a/conf/inter_athena.conf b/conf/inter_athena.conf index e489370ee..c5dcd351d 100644 --- a/conf/inter_athena.conf +++ b/conf/inter_athena.conf @@ -108,7 +108,7 @@ login_db_level: level login_db: login loginlog_db: loginlog -// Character Database Tables +// Char Database Tables char_db: char hotkey_db: hotkey scdata_db: sc_data @@ -131,6 +131,8 @@ guild_storage_db: guild_storage party_db: party pet_db: pet friend_db: friends +mail_db: mail +auction_db: auction // Map Database Tables item_db_db: item_db @@ -138,9 +140,6 @@ item_db2_db: item_db2 mob_db_db: mob_db mob_db2_db: mob_db2 -// Mail Database Table -mail_db: mail - //Use SQL item_db and mob_db for the map server use_sql_db: no diff --git a/conf/plugin_athena.conf b/conf/plugin_athena.conf index b7c30dfab..f8dfd0ad5 100644 --- a/conf/plugin_athena.conf +++ b/conf/plugin_athena.conf @@ -22,6 +22,9 @@ plugin: upnp // Crash reporting for Windows //plugin: exchndl +// Alternative, improved crash reporting for Windows +//plugin: dbghelpplug + // Process id logging //plugin: pid diff --git a/src/map/atcommand.c b/src/map/atcommand.c index dbb9c1aed..702a7550d 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -8540,14 +8540,14 @@ static AtCommandInfo* get_atcommandinfo_byname(const char* name) int i; if( *name == atcommand_symbol ) name++; // for backwards compatibility ARR_FIND( 0, ARRAYLENGTH(atcommand_info), i, strcmpi(atcommand_info[i].command, name) == 0 ); - return ( i != ARRAYLENGTH(atcommand_info) ) ? &atcommand_info[i] : NULL; + return ( i < ARRAYLENGTH(atcommand_info) ) ? &atcommand_info[i] : NULL; } static AtCommandInfo* get_atcommandinfo_byfunc(const AtCommandFunc func) { int i; ARR_FIND( 0, ARRAYLENGTH(atcommand_info), i, atcommand_info[i].func == func ); - return ( i != ARRAYLENGTH(atcommand_info) ) ? &atcommand_info[i] : NULL; + return ( i < ARRAYLENGTH(atcommand_info) ) ? &atcommand_info[i] : NULL; } diff --git a/src/map/clif.c b/src/map/clif.c index e3cb75054..c815fd7b3 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -6009,7 +6009,7 @@ int clif_mvp_item(struct map_session_data *sd,int nameid) /*========================================== * MVPŒoŒ±’lŠ“¾ *------------------------------------------*/ -int clif_mvp_exp(struct map_session_data *sd,unsigned long exp) +int clif_mvp_exp(struct map_session_data *sd, unsigned int exp) { int fd; @@ -6018,7 +6018,7 @@ int clif_mvp_exp(struct map_session_data *sd,unsigned long exp) fd=sd->fd; WFIFOHEAD(fd,packet_len(0x10b)); WFIFOW(fd,0)=0x10b; - WFIFOL(fd,2)=exp; + WFIFOL(fd,2)=cap_value(exp,0,INT_MAX); WFIFOSET(fd,packet_len(0x10b)); return 0; } diff --git a/src/map/clif.h b/src/map/clif.h index 51dc0c417..d8714554d 100644 --- a/src/map/clif.h +++ b/src/map/clif.h @@ -262,7 +262,7 @@ int clif_item_skill(struct map_session_data *sd,int skillid,int skilllv); int clif_mvp_effect(struct map_session_data *sd); int clif_mvp_item(struct map_session_data *sd,int nameid); -int clif_mvp_exp(struct map_session_data *sd,unsigned long exp); +int clif_mvp_exp(struct map_session_data *sd, unsigned int exp); void clif_changed_dir(struct block_list *bl, int area); // vending diff --git a/src/map/npc.c b/src/map/npc.c index a62f5679a..fa4f510d6 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -1631,10 +1631,7 @@ static const char* npc_parse_shop(char* w1, char* w2, char* w3, char* w4, const char *p; int x, y, dir, m, i; struct npc_data *nd; - - enum npc_subtype type = SHOP; - if( !strcasecmp(w2,"cashshop") ) - type = CASHSHOP; + enum npc_subtype type; if( strcmp(w1,"-") == 0 ) {// 'floating' shop? @@ -1642,7 +1639,7 @@ static const char* npc_parse_shop(char* w1, char* w2, char* w3, char* w4, const m = -1; } else - { + {// w1=,,, char mapname[32]; if( sscanf(w1, "%31[^,],%d,%d,%d", mapname, &x, &y, &dir) != 4 || strchr(w4, ',') == NULL ) @@ -1654,6 +1651,11 @@ static const char* npc_parse_shop(char* w1, char* w2, char* w3, char* w4, const m = map_mapname2mapid(mapname); } + if( !strcasecmp(w2,"cashshop") ) + type = CASHSHOP; + else + type = SHOP; + p = strchr(w4,','); for( i = 0; i < ARRAYLENGTH(items) && p; ++i ) { @@ -2720,7 +2722,7 @@ void npc_parsesrcfile(const char* filepath) } else if( strcmpi(w2,"mapflag") == 0 && count >= 3 ) { - p = npc_parse_mapflag(w1, w2, w3, w4, p, buffer, filepath); + p = npc_parse_mapflag(w1, w2, trim(w3), trim(w4), p, buffer, filepath); } else { diff --git a/src/map/status.c b/src/map/status.c index 11198f28f..453c0b40e 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -6060,6 +6060,11 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val sc->opt3 |= 0x10000; opt_flag = 0; break; +// TODO: unknown option (looks like the aura of biolab mobs) +// case ???: +// sc->opt3 |= 0x20000; +// opt_flag = 0; +// break; //OPTION case SC_HIDING: sc->option |= OPTION_HIDE; @@ -6637,6 +6642,10 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) sc->opt3 &= ~0x2000; opt_flag = 0; break; + case SC_BUNSINJYUTSU: + sc->opt3 &= ~0x4000; + opt_flag = 0; + break; case SC_SPIRIT: sc->opt3 &= ~0x8000; opt_flag = 0; @@ -6645,6 +6654,11 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid) sc->opt3 &= ~0x10000; opt_flag = 0; break; +// TODO: +// case ???: +// sc->opt3 &= ~0x20000; +// opt_flag = 0; +// break; default: opt_flag = 0; } -- cgit v1.2.3-70-g09d2