- Pet catching now uses the menuskill variables to prevent item usage from disrupting the catch process.
- Added Safetywall to the list not blocked by Dispell. - Added some include limits.h required by window compiles. - Corrected Wedding rings being trade-able. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5772 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
59fe860e09
commit
876cc3f814
@ -5,6 +5,12 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EV
|
|||||||
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
|
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
|
||||||
|
|
||||||
|
|
||||||
|
2006/03/27
|
||||||
|
* Pet catching now uses the menuskill variables to prevent item usage from
|
||||||
|
disrupting the catch process. [Skotlex]
|
||||||
|
* Added Safetywall to the list not blocked by Dispell. [Skotlex]
|
||||||
|
* Added some include limits.h required by window compiles. [Skotlex]
|
||||||
|
* Corrected Wedding rings being trade-able. [Skotlex]
|
||||||
2006/03/26
|
2006/03/26
|
||||||
* GCC on Cygwin still complaining, resorted to including limits.h in malloc.h [Lance]
|
* GCC on Cygwin still complaining, resorted to including limits.h in malloc.h [Lance]
|
||||||
* Refixed the fix with a constant list for Win32 users - limits.h (imported from MSVC) [Lance]
|
* Refixed the fix with a constant list for Win32 users - limits.h (imported from MSVC) [Lance]
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
//Trading mask values:
|
//Trading mask values:
|
||||||
//1:Item can't be drop
|
//1:Item can't be drop
|
||||||
//2:Item can't be traded (nor vended)
|
//2:Item can't be traded (nor vended)
|
||||||
//4:Item can only be traded with wedded partner
|
//4:Wedded partner can override restriction 2.
|
||||||
//8:Item can't be sold to npcs
|
//8:Item can't be sold to npcs
|
||||||
//16:Item can't be placed in the cart
|
//16:Item can't be placed in the cart
|
||||||
//32:Item can't be placed in the storage
|
//32:Item can't be placed in the storage
|
||||||
@ -12,8 +12,8 @@
|
|||||||
//Example:
|
//Example:
|
||||||
//1161,67,50 //Balmung: No drop, No trade, No Guild Store (1+2+64 =67),
|
//1161,67,50 //Balmung: No drop, No trade, No Guild Store (1+2+64 =67),
|
||||||
//only GMs of GM-level 50 and up can override the setting.
|
//only GMs of GM-level 50 and up can override the setting.
|
||||||
2634,109,100
|
2634,111,100
|
||||||
2635,109,100
|
2635,111,100
|
||||||
2644,99,100
|
2644,99,100
|
||||||
//Novice Red Potion
|
//Novice Red Potion
|
||||||
569,8,100
|
569,8,100
|
||||||
@ -25,4 +25,4 @@
|
|||||||
//7475,123,100
|
//7475,123,100
|
||||||
//7476,123,100
|
//7476,123,100
|
||||||
//Leather Pouch (part of Cooking Quest)
|
//Leather Pouch (part of Cooking Quest)
|
||||||
7432,123,100
|
7432,123,100
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
#include "../common/socket.h"
|
#include "../common/socket.h"
|
||||||
#include "../common/timer.h"
|
#include "../common/timer.h"
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
#include "../common/socket.h"
|
#include "../common/socket.h"
|
||||||
#include "../common/timer.h"
|
#include "../common/timer.h"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
#include <limits.h>
|
||||||
#ifdef __WIN32
|
#ifdef __WIN32
|
||||||
#define __USE_W32_SOCKETS
|
#define __USE_W32_SOCKETS
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
@ -6863,7 +6864,11 @@ int clif_catch_process(struct map_session_data *sd)
|
|||||||
WFIFOHEAD(fd,packet_len_table[0x19e]);
|
WFIFOHEAD(fd,packet_len_table[0x19e]);
|
||||||
WFIFOW(fd,0)=0x19e;
|
WFIFOW(fd,0)=0x19e;
|
||||||
WFIFOSET(fd,packet_len_table[0x19e]);
|
WFIFOSET(fd,packet_len_table[0x19e]);
|
||||||
|
sd->menuskill_id = SA_TAMINGMONSTER;
|
||||||
|
if (sd->ud.skillid == SA_TAMINGMONSTER)
|
||||||
|
sd->menuskill_lv = 0; //Free catch
|
||||||
|
else
|
||||||
|
sd->menuskill_lv = sd->itemid; //Consume catch
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6915,7 +6920,7 @@ int clif_sendegg(struct map_session_data *sd)
|
|||||||
WFIFOSET(fd,WFIFOW(fd,2));
|
WFIFOSET(fd,WFIFOW(fd,2));
|
||||||
|
|
||||||
sd->menuskill_id = SA_TAMINGMONSTER;
|
sd->menuskill_id = SA_TAMINGMONSTER;
|
||||||
sd->menuskill_lv = n;
|
sd->menuskill_lv = -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10955,7 +10960,7 @@ void clif_parse_CatchPet(int fd, struct map_session_data *sd) {
|
|||||||
|
|
||||||
void clif_parse_SelectEgg(int fd, struct map_session_data *sd) {
|
void clif_parse_SelectEgg(int fd, struct map_session_data *sd) {
|
||||||
RFIFOHEAD(fd);
|
RFIFOHEAD(fd);
|
||||||
if (sd->menuskill_id != SA_TAMINGMONSTER)
|
if (sd->menuskill_id != SA_TAMINGMONSTER || sd->menuskill_lv != -1)
|
||||||
return;
|
return;
|
||||||
pet_select_egg(sd,RFIFOW(fd,2)-2);
|
pet_select_egg(sd,RFIFOW(fd,2)-2);
|
||||||
sd->menuskill_lv = sd->menuskill_id = 0;
|
sd->menuskill_lv = sd->menuskill_id = 0;
|
||||||
|
@ -1474,7 +1474,8 @@ int pc_bonus(struct map_session_data *sd,int type,int val)
|
|||||||
case SP_INFINITE_ENDURE:
|
case SP_INFINITE_ENDURE:
|
||||||
if(sd->state.lr_flag != 2) {
|
if(sd->state.lr_flag != 2) {
|
||||||
sd->special_state.infinite_endure = 1;
|
sd->special_state.infinite_endure = 1;
|
||||||
sc_start(&sd->bl, SC_ENDURE,100,1,0);
|
if (sd->sc.data[SC_ENDURE].timer == -1)
|
||||||
|
sc_start(&sd->bl, SC_ENDURE,100,1,0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SP_INTRAVISION: // Maya Purple Card effect allowing to see Hiding/Cloaking people [DracoRPG]
|
case SP_INTRAVISION: // Maya Purple Card effect allowing to see Hiding/Cloaking people [DracoRPG]
|
||||||
|
@ -591,20 +591,26 @@ int pet_catch_process2(struct map_session_data *sd,int target_id)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sd->itemid > 0)
|
if (sd->menuskill_id != SA_TAMINGMONSTER)
|
||||||
|
{ //Exploit?
|
||||||
|
clif_pet_rulet(sd,0);
|
||||||
|
sd->catch_target_class = -1;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sd->menuskill_lv > 0)
|
||||||
{ //Consume the pet lure [Skotlex]
|
{ //Consume the pet lure [Skotlex]
|
||||||
if ((i = sd->itemindex) == -1 ||
|
i=pc_search_inventory(sd,sd->menuskill_lv);
|
||||||
sd->status.inventory[i].nameid != sd->itemid ||
|
if (i < 0)
|
||||||
!sd->inventory_data[i]->flag.delay_consume ||
|
{ //they tried an exploit?
|
||||||
sd->status.inventory[i].amount < 1
|
|
||||||
)
|
|
||||||
{ //Something went wrong, items moved or they tried an exploit.
|
|
||||||
clif_pet_rulet(sd,0);
|
clif_pet_rulet(sd,0);
|
||||||
sd->catch_target_class = -1;
|
sd->catch_target_class = -1;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
//Delete the item
|
//Delete the item
|
||||||
sd->itemid = sd->itemindex = -1;
|
if (sd->itemid == sd->menuskill_lv)
|
||||||
|
sd->itemid = sd->itemindex = -1;
|
||||||
|
sd->menuskill_id = sd->menuskill_lv = 0;
|
||||||
pc_delitem(sd,i,1,0);
|
pc_delitem(sd,i,1,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4616,6 +4616,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
|
|||||||
|| i==SC_CP_WEAPON || i==SC_CP_SHIELD || i==SC_CP_ARMOR || i==SC_CP_HELM
|
|| i==SC_CP_WEAPON || i==SC_CP_SHIELD || i==SC_CP_ARMOR || i==SC_CP_HELM
|
||||||
|| i==SC_COMBO || i==SC_DANCING || i==SC_GUILDAURA || i==SC_EDP
|
|| i==SC_COMBO || i==SC_DANCING || i==SC_GUILDAURA || i==SC_EDP
|
||||||
|| i==SC_AUTOBERSERK || i==SC_CARTBOOST || i==SC_MELTDOWN || i==SC_MOONLIT
|
|| i==SC_AUTOBERSERK || i==SC_CARTBOOST || i==SC_MELTDOWN || i==SC_MOONLIT
|
||||||
|
|| i==SC_SAFETYWALL
|
||||||
)
|
)
|
||||||
continue;
|
continue;
|
||||||
if(i==SC_BERSERK) tsc->data[i].val4=1; //Mark a dispelled berserk to avoid setting hp to 100.
|
if(i==SC_BERSERK) tsc->data[i].val4=1; //Mark a dispelled berserk to avoid setting hp to 100.
|
||||||
|
@ -5191,7 +5191,7 @@ int status_change_timer(int tid, unsigned int tick, int id, int data)
|
|||||||
|
|
||||||
if(sc->data[type].timer != tid) {
|
if(sc->data[type].timer != tid) {
|
||||||
if(battle_config.error_log)
|
if(battle_config.error_log)
|
||||||
ShowError("status_change_timer: Mismatch for type %d: %d != %d\n",type,tid,sc->data[type].timer);
|
ShowError("status_change_timer: Mismatch for type %d: %d != %d (bl id %d)\n",type,tid,sc->data[type].timer, bl->id);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user