diff options
-rw-r--r-- | Changelog-Trunk.txt | 3 | ||||
-rw-r--r-- | sql-files/main.sql | 4 | ||||
-rw-r--r-- | src/map/mob.c | 6 |
3 files changed, 8 insertions, 5 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 0eeaa917e..b6adeb321 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,9 @@ 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/19
+ * Fixed loginlog definition in main.sql, thanks to Tempesta [Skotlex]
+ * Likely fixed the mob-skill random picking behaviour causing infinite
+ loops sometimes. [Skotlex]
* Modified mobskill_use behaviour to pick a random starting point and check
skills from that, rather than always checking from first to last. Fixes
skills with high priority blocking skills lower down in the list from
diff --git a/sql-files/main.sql b/sql-files/main.sql index eb77388fa..28548ba19 100644 --- a/sql-files/main.sql +++ b/sql-files/main.sql @@ -410,8 +410,8 @@ CREATE TABLE `loginlog` ( `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 ''
- INDEX (`ip`),
+ `log` varchar(255) NOT NULL default '',
+ INDEX (`ip`)
) TYPE=MyISAM;
--
diff --git a/src/map/mob.c b/src/map/mob.c index bdbab5cf8..e9c60b179 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -2570,7 +2570,7 @@ int mobskill_use(struct mob_data *md, unsigned int tick, int event) struct mob_skill *ms;
struct block_list *fbl = NULL; //Friend bl, which can either be a BL_PC or BL_MOB depending on the situation. [Skotlex]
struct mob_data *fmd = NULL;
- int i,j;
+ int i,n;
nullpo_retr (0, md);
nullpo_retr (0, ms = md->db->skill);
@@ -2582,8 +2582,8 @@ int mobskill_use(struct mob_data *md, unsigned int tick, int event) return 0; //Skill act delay only affects non-event skills.
//Pick a random starting position and loop from that.
- j = rand()%md->db->maxskill;
- for (i = j+1; i != j; i++) {
+ i = rand()%md->db->maxskill;
+ for (n = 0; n < md->db->maxskill; i++, n++) {
int c2, flag = 0;
if (i == md->db->maxskill)
|