* 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://svn.code.sf.net/p/rathena/svn/trunk@12300 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
ultramage 2008-03-05 16:23:02 +00:00
parent ccb13e72c0
commit 0088adcbbf
8 changed files with 38 additions and 15 deletions

View File

@ -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. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2008/03/05 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. * Implemented Firepillar's 'target cannot move for 0.2 sec x hit' property.
* Corrected Earthquake so it behaves as explained in the development topics. * Corrected Earthquake so it behaves as explained in the development topics.
* Added a missing line to actually unequip unallowed compounded cards when * Added a missing line to actually unequip unallowed compounded cards when

View File

@ -108,7 +108,7 @@ login_db_level: level
login_db: login login_db: login
loginlog_db: loginlog loginlog_db: loginlog
// Character Database Tables // Char Database Tables
char_db: char char_db: char
hotkey_db: hotkey hotkey_db: hotkey
scdata_db: sc_data scdata_db: sc_data
@ -131,6 +131,8 @@ guild_storage_db: guild_storage
party_db: party party_db: party
pet_db: pet pet_db: pet
friend_db: friends friend_db: friends
mail_db: mail
auction_db: auction
// Map Database Tables // Map Database Tables
item_db_db: item_db item_db_db: item_db
@ -138,9 +140,6 @@ item_db2_db: item_db2
mob_db_db: mob_db mob_db_db: mob_db
mob_db2_db: mob_db2 mob_db2_db: mob_db2
// Mail Database Table
mail_db: mail
//Use SQL item_db and mob_db for the map server //Use SQL item_db and mob_db for the map server
use_sql_db: no use_sql_db: no

View File

@ -22,6 +22,9 @@ plugin: upnp
// Crash reporting for Windows // Crash reporting for Windows
//plugin: exchndl //plugin: exchndl
// Alternative, improved crash reporting for Windows
//plugin: dbghelpplug
// Process id logging // Process id logging
//plugin: pid //plugin: pid

View File

@ -8540,14 +8540,14 @@ static AtCommandInfo* get_atcommandinfo_byname(const char* name)
int i; int i;
if( *name == atcommand_symbol ) name++; // for backwards compatibility if( *name == atcommand_symbol ) name++; // for backwards compatibility
ARR_FIND( 0, ARRAYLENGTH(atcommand_info), i, strcmpi(atcommand_info[i].command, name) == 0 ); 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) static AtCommandInfo* get_atcommandinfo_byfunc(const AtCommandFunc func)
{ {
int i; int i;
ARR_FIND( 0, ARRAYLENGTH(atcommand_info), i, atcommand_info[i].func == func ); 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;
} }

View File

@ -6009,7 +6009,7 @@ int clif_mvp_item(struct map_session_data *sd,int nameid)
/*========================================== /*==========================================
* MVPŒoŒ±l<EFBFBD>о * MVPŒoŒ±l<EFBFBD>о
*------------------------------------------*/ *------------------------------------------*/
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; int fd;
@ -6018,7 +6018,7 @@ int clif_mvp_exp(struct map_session_data *sd,unsigned long exp)
fd=sd->fd; fd=sd->fd;
WFIFOHEAD(fd,packet_len(0x10b)); WFIFOHEAD(fd,packet_len(0x10b));
WFIFOW(fd,0)=0x10b; WFIFOW(fd,0)=0x10b;
WFIFOL(fd,2)=exp; WFIFOL(fd,2)=cap_value(exp,0,INT_MAX);
WFIFOSET(fd,packet_len(0x10b)); WFIFOSET(fd,packet_len(0x10b));
return 0; return 0;
} }

View File

@ -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_effect(struct map_session_data *sd);
int clif_mvp_item(struct map_session_data *sd,int nameid); 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); void clif_changed_dir(struct block_list *bl, int area);
// vending // vending

View File

@ -1631,10 +1631,7 @@ static const char* npc_parse_shop(char* w1, char* w2, char* w3, char* w4, const
char *p; char *p;
int x, y, dir, m, i; int x, y, dir, m, i;
struct npc_data *nd; struct npc_data *nd;
enum npc_subtype type;
enum npc_subtype type = SHOP;
if( !strcasecmp(w2,"cashshop") )
type = CASHSHOP;
if( strcmp(w1,"-") == 0 ) if( strcmp(w1,"-") == 0 )
{// 'floating' shop? {// 'floating' shop?
@ -1642,7 +1639,7 @@ static const char* npc_parse_shop(char* w1, char* w2, char* w3, char* w4, const
m = -1; m = -1;
} }
else else
{ {// w1=<map name>,<x>,<y>,<facing>
char mapname[32]; char mapname[32];
if( sscanf(w1, "%31[^,],%d,%d,%d", mapname, &x, &y, &dir) != 4 if( sscanf(w1, "%31[^,],%d,%d,%d", mapname, &x, &y, &dir) != 4
|| strchr(w4, ',') == NULL ) || 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); m = map_mapname2mapid(mapname);
} }
if( !strcasecmp(w2,"cashshop") )
type = CASHSHOP;
else
type = SHOP;
p = strchr(w4,','); p = strchr(w4,',');
for( i = 0; i < ARRAYLENGTH(items) && p; ++i ) 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 ) 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 else
{ {

View File

@ -6060,6 +6060,11 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
sc->opt3 |= 0x10000; sc->opt3 |= 0x10000;
opt_flag = 0; opt_flag = 0;
break; break;
// TODO: unknown option (looks like the aura of biolab mobs)
// case ???:
// sc->opt3 |= 0x20000;
// opt_flag = 0;
// break;
//OPTION //OPTION
case SC_HIDING: case SC_HIDING:
sc->option |= OPTION_HIDE; 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; sc->opt3 &= ~0x2000;
opt_flag = 0; opt_flag = 0;
break; break;
case SC_BUNSINJYUTSU:
sc->opt3 &= ~0x4000;
opt_flag = 0;
break;
case SC_SPIRIT: case SC_SPIRIT:
sc->opt3 &= ~0x8000; sc->opt3 &= ~0x8000;
opt_flag = 0; opt_flag = 0;
@ -6645,6 +6654,11 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid)
sc->opt3 &= ~0x10000; sc->opt3 &= ~0x10000;
opt_flag = 0; opt_flag = 0;
break; break;
// TODO:
// case ???:
// sc->opt3 &= ~0x20000;
// opt_flag = 0;
// break;
default: default:
opt_flag = 0; opt_flag = 0;
} }