diff options
-rw-r--r-- | Changelog-Trunk.txt | 5 | ||||
-rw-r--r-- | sql-files/main.sql | 3 | ||||
-rw-r--r-- | sql-files/upgrade_svn6533.sql | 2 | ||||
-rw-r--r-- | src/map/pc.c | 7 | ||||
-rw-r--r-- | src/map/skill.c | 2 |
5 files changed, 14 insertions, 5 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index aaceac826..d231d1e5f 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.
2006/05/09
+ * Fix on pc_skill which fixes overlapping when one gets more than one bonus
+ for the same skill. [Skotlex]
+ * Updated main.sql's loginlog table structure. [Skotlex]
+ * Added svn_update6533.sql to update the loginlog structure as suggested by
+ theultramage. [Skotlex]
* Cleaned up somewhat the implementation of BladeStop. [Skotlex]
* Fixed the head_bottom (pet-armor) position in packet 0x22c (walk packet)
when crafted for non-players. [Skotlex]
diff --git a/sql-files/main.sql b/sql-files/main.sql index f60f36594..718f811e9 100644 --- a/sql-files/main.sql +++ b/sql-files/main.sql @@ -407,10 +407,11 @@ CREATE TABLE `sc_data` ( DROP TABLE IF EXISTS `loginlog`;
CREATE TABLE `loginlog` (
`time` datetime NOT NULL default '0000-00-00 00:00:00',
- `ip` varchar(64) NOT NULL default '',
+ `ip` char(15) NOT NULL default '',
`user` varchar(32) NOT NULL default '',
`rcode` tinyint(4) NOT NULL default '0',
`log` varchar(255) NOT NULL default ''
+ KEY (`ip`),
) TYPE=MyISAM;
--
diff --git a/sql-files/upgrade_svn6533.sql b/sql-files/upgrade_svn6533.sql new file mode 100644 index 000000000..5dffe0293 --- /dev/null +++ b/sql-files/upgrade_svn6533.sql @@ -0,0 +1,2 @@ +ALTER TABLE `loginlog` CHANGE `ip` `ip` CHAR( 15 ) NOT NULL
+ALTER TABLE `loginlog` ADD INDEX ( `ip` ( 15 ) )
diff --git a/src/map/pc.c b/src/map/pc.c index 4657d3bcf..c3da30b6a 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -2158,9 +2158,10 @@ int pc_skill(struct map_session_data *sd,int id,int level,int flag) clif_skillinfoblock(sd);
}
else if(sd->status.skill[id].lv < level){ // ?えられるがlvが小さいなら
- if(sd->status.skill[id].id==id)
- sd->status.skill[id].flag=sd->status.skill[id].lv+2; // lvを記憶
- else {
+ if(sd->status.skill[id].id==id) {
+ if (!sd->status.skill[id].flag) //Non-granted skill, store it's level.
+ sd->status.skill[id].flag=sd->status.skill[id].lv+2;
+ } else {
sd->status.skill[id].id=id;
sd->status.skill[id].flag=1; // cardスキルとする
}
diff --git a/src/map/skill.c b/src/map/skill.c index ec421d1c5..409cbcb4c 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -4087,7 +4087,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in dstsd->char_id == sd->status.partner_id ||
dstsd->char_id == sd->status.child
)) {
- status_change_start(src,SC_STUN,10000,skilllv,0,0,0,3000,8);
+ status_change_start(src,SC_STUN,10000,skilllv,0,0,0,500,8);
clif_skill_fail(sd,skillid,0,0);
break;
}
|