Преглед изворни кода

* Set 'droprate0item''s default to 'yes'
* Look at item type other than item ID as well to check whether it is a card

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

celest пре 20 година
родитељ
комит
da46967b27
3 измењених фајлова са 14 додато и 8 уклоњено
  1. 4 0
      Changelog.txt
  2. 1 1
      conf-tmpl/battle_athena.conf
  3. 9 7
      src/map/script.c

+ 4 - 0
Changelog.txt

@@ -1,5 +1,9 @@
 Date	Added
 01/05
+        * Set 'droprate0item''s default to 'yes' so that items with 0 rate will never
+          drop [celest]
+        * Look at item type other than item ID as well to check whether it is a card
+          in card-related script commands - better support for custom items [celest]
         * Reset all skill variables if the skill fails so certain skills can't be
           abused (such as Warp, thanks to Alex14 for pointing it out) [celest]
         * Added /mapflag/noreturn.txt for disabling butterfly wings (not fly wings)

+ 1 - 1
conf-tmpl/battle_athena.conf

@@ -176,7 +176,7 @@ item_rate_1000_min: 1000
 item_rate_1000_max: 10000
 
 // Can the monster's drop rate become 0? (Note 1)
-drop_rate0item: no
+drop_rate0item: yes
 
 // Rate at which exp. is given. (Note 2)
 base_exp_rate: 100

+ 9 - 7
src/map/script.c

@@ -5215,9 +5215,9 @@ int buildin_getequipcardcnt(struct script_state *st)
 		return 0;
 	}
 	do{
-		if( (sd->status.inventory[i].card[c-1] > 4000) &&
-			(sd->status.inventory[i].card[c-1] < 5000)){
-
+		if( (sd->status.inventory[i].card[c-1] > 4000 &&
+			sd->status.inventory[i].card[c-1] < 5000) ||
+			itemdb_type(sd->status.inventory[i].card[c-1]) == 6){	// [Celest]
 			push_val(st->stack,C_INT,(c));
 			return 0;
 		}
@@ -5244,8 +5244,9 @@ int buildin_successremovecards(struct script_state *st)
 		return 0;
 	}
 	do{
-		if( (sd->status.inventory[i].card[c-1] > 4000) &&
-			(sd->status.inventory[i].card[c-1] < 5000)){ 
+		if( (sd->status.inventory[i].card[c-1] > 4000 &&
+			sd->status.inventory[i].card[c-1] < 5000) ||
+			itemdb_type(sd->status.inventory[i].card[c-1]) == 6){	// [Celest]
 
 			cardflag = 1;
 			item_tmp.id=0,item_tmp.nameid=sd->status.inventory[i].card[c-1];
@@ -5297,8 +5298,9 @@ int buildin_failedremovecards(struct script_state *st)
 		return 0;
 	}
 	do{
-		if(( sd->status.inventory[i].card[c-1] > 4000) &&
-			 (sd->status.inventory[i].card[c-1] < 5000)){
+		if( (sd->status.inventory[i].card[c-1] > 4000 &&
+			sd->status.inventory[i].card[c-1] < 5000) ||
+			itemdb_type(sd->status.inventory[i].card[c-1]) == 6){	// [Celest]
 			 
 			cardflag = 1;