Browse Source

- Fixed loginlog definition in main.sql, thanks to Tempesta
- Likely fixed the mob-skill random picking behaviour causing infinite loops sometimes.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6658 54d463be-8e91-2dee-dedb-b68131a5f0ec

skotlex 19 years ago
parent
commit
078cab13fd
3 changed files with 8 additions and 5 deletions
  1. 3 0
      Changelog-Trunk.txt
  2. 2 2
      sql-files/main.sql
  3. 3 3
      src/map/mob.c

+ 3 - 0
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.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 
 2006/05/19
 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
 	* 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 from that, rather than always checking from first to last. Fixes
 	  skills with high priority blocking skills lower down in the list from
 	  skills with high priority blocking skills lower down in the list from

+ 2 - 2
sql-files/main.sql

@@ -410,8 +410,8 @@ CREATE TABLE `loginlog` (
   `ip` char(15) NOT NULL default '',
   `ip` char(15) NOT NULL default '',
   `user` varchar(32) NOT NULL default '',
   `user` varchar(32) NOT NULL default '',
   `rcode` tinyint(4) NOT NULL default '0',
   `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;
 ) TYPE=MyISAM;
 
 
 --
 --

+ 3 - 3
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 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 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;
 	struct mob_data *fmd = NULL;
-	int i,j;
+	int i,n;
 
 
 	nullpo_retr (0, md);
 	nullpo_retr (0, md);
 	nullpo_retr (0, ms = md->db->skill);
 	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.
 		return 0; //Skill act delay only affects non-event skills.
 
 
 	//Pick a random starting position and loop from that.
 	//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;		
 		int c2, flag = 0;		
 
 
 		if (i == md->db->maxskill)
 		if (i == md->db->maxskill)