瀏覽代碼

* Added 'cancel' button parsing in buildin_select menu system. Now scripts will continue to load if 'cancel' is pressed and 255 will be returned.

modified   Changelog-Trunk.txt
modified   notice.txt
modified   src/map/script.c


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9258 54d463be-8e91-2dee-dedb-b68131a5f0ec
Lance 18 年之前
父節點
當前提交
97919b1a6f
共有 3 個文件被更改,包括 19 次插入13 次删除
  1. 4 0
      Changelog-Trunk.txt
  2. 2 2
      notice.txt
  3. 13 11
      src/map/script.c

+ 4 - 0
Changelog-Trunk.txt

@@ -3,6 +3,10 @@ Date	Added
 AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
+2006/11/19
+	* Added 'cancel' button parsing in buildin_select menu system. Now scripts will continue
+	  to load if 'cancel' is pressed and 255 will be returned. [Lance]
+
 2006/11/17
 	* Corrected use of the party invitation reply packet, thanks to FlavioJS.
 	  [Skotlex]

+ 2 - 2
notice.txt

@@ -1,8 +1,8 @@
 //Notice\\
 
 This branch, "Trunk", might not be stable due to bugs and whatsoever. 
-It is highly recommended, if you have any dobts on using this svn version,
-it is best if you use an eAthena Official Version or use RC5.
+It is highly recommended, if you have any doubts on using this svn version,
+it is best if you use an eAthena Official Version or use the Stable branch.
 
 on another note, if you found a bug, it is best if you report it on the eAthena 
 forums as http://eathena.ws/ . If you have made yourself a fix for 

+ 13 - 11
src/map/script.c

@@ -10298,21 +10298,23 @@ int buildin_select(struct script_state *st)
 		}
 		clif_scriptmenu(script_rid2sd(st),st->oid,buf);
 		aFree(buf);
-	} else if(sd->npc_menu==0xff){	// cansel
-		sd->state.menu_or_input=0;
-		st->state=END;
-	} else {
-		//Skip empty menu entries which weren't displayed on the client (Skotlex)
-		for(i=st->start+2;i< (st->start+2+sd->npc_menu) && sd->npc_menu < (st->end-st->start-2);i++) {
-			conv_str(st,& (st->stack->stack_data[i])); // we should convert variables to strings before access it [jA1983] [EoE]
-			if((int)strlen(st->stack->stack_data[i].u.str) < 1)
-				sd->npc_menu++; //Empty selection which wasn't displayed on the client.
+	} /*else if(sd->npc_menu==0xff){	// Cancel will be parsed since this is select() [Lance]
+	  sd->state.menu_or_input=0;
+	  st->state=END;
+	  }*/ else {
+		if(sd->npc_menu != 0xff){
+			//Skip empty menu entries which weren't displayed on the client (Skotlex)
+			for(i=st->start+2;i< (st->start+2+sd->npc_menu) && sd->npc_menu < (st->end-st->start-2);i++) {
+				conv_str(st,& (st->stack->stack_data[i])); // we should convert variables to strings before access it [jA1983] [EoE]
+				if((int)strlen(st->stack->stack_data[i].u.str) < 1)
+					sd->npc_menu++; //Empty selection which wasn't displayed on the client.
+			}
 		}
 		pc_setreg(sd,add_str((unsigned char *) "@menu"),sd->npc_menu);
 		sd->state.menu_or_input=0;
 		push_val(st->stack,C_INT,sd->npc_menu);
-	}
-	return 0;
+	  }
+	  return 0;
 }
 
 /*==========================================