Sfoglia il codice sorgente

- 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 anni fa
parent
commit
078cab13fd
3 ha cambiato i file con 8 aggiunte e 5 eliminazioni
  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.
 
 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

+ 2 - 2
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;
 
 --

+ 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 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)