Fixed Attacking Mobs by using a file from FREYA (thanks MagicalTux and Yor)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@141 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
codemaster 2004-11-13 02:16:51 +00:00
parent 27db844217
commit 39fd1c7e8b
4 changed files with 2421 additions and 1905 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,11 @@
// $Id: clif.h,v 1.4 2004/09/25 05:32:18 MouseJstr Exp $ // $Id: clif.h 1952 2004-10-23 14:05:01Z Yor $
#ifndef _CLIF_H_ #ifndef _CLIF_H_
#define _CLIF_H_ #define _CLIF_H_
#include <sys/types.h> #ifdef __WIN32
#ifdef _WIN32
#include <winsock.h>
typedef unsigned int in_addr_t; typedef unsigned int in_addr_t;
#else #else
#include <sys/types.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <arpa/inet.h> #include <arpa/inet.h>
@ -15,14 +13,6 @@ typedef unsigned int in_addr_t;
#include "map.h" #include "map.h"
#define MAX_PACKET_DB 0x220
struct packet_db {
short len;
void (*func)();
short pos[20];
};
void clif_setip(char*); void clif_setip(char*);
void clif_setport(int); void clif_setport(int);
@ -98,9 +88,9 @@ int clif_changechatstatus(struct chat_data*); // chat
void clif_emotion(struct block_list *bl,int type); void clif_emotion(struct block_list *bl,int type);
void clif_talkiebox(struct block_list *bl,char* talkie); void clif_talkiebox(struct block_list *bl,char* talkie);
void clif_wedding_effect(struct block_list *bl); void clif_wedding_effect(struct block_list *bl);
void clif_sitting(struct map_session_data *sd); //void clif_sitting(int fd, struct map_session_data *sd);
//void clif_callpartner(struct map_session_data *sd); //void clif_callpartner(struct map_session_data *sd);
//void clif_sitting(struct map_session_data *sd); void clif_sitting(struct map_session_data *sd);
void clif_soundeffect(struct map_session_data *sd,struct block_list *bl,char *name,int type); void clif_soundeffect(struct map_session_data *sd,struct block_list *bl,char *name,int type);
// trade // trade

View File

@ -623,20 +623,26 @@ int intif_parse_WisMessage(int fd) { // rewritten by [Yor]
// printf("intif_parse_wismessage: %d %s %s %s\n",id,RFIFOP(fd,6),RFIFOP(fd,30),RFIFOP(fd,54) ); // printf("intif_parse_wismessage: %d %s %s %s\n",id,RFIFOP(fd,6),RFIFOP(fd,30),RFIFOP(fd,54) );
sd=map_nick2sd(RFIFOP(fd,32)); // 送信先を探す sd=map_nick2sd(RFIFOP(fd,32)); // 送信先を探す
if(sd!=NULL){ if(sd!=NULL && strcmp(sd->status.name, RFIFOP(fd,32)) == 0){
/*
for(i=0;i<MAX_WIS_REFUSAL;i++){ //拒否リストに名前があるかどうか判定してあれば拒否 for(i=0;i<MAX_WIS_REFUSAL;i++){ //拒否リストに名前があるかどうか判定してあれば拒否
if(strcmp(sd->wis_refusal[i],RFIFOP(fd,8))==0){ if(strcmp(sd->wis_refusal[i],RFIFOP(fd,8))==0){
j++; j++;
break; break;
} }
} }
if(sd->wis_all) */
intif_wis_replay(id,3); // Žó<C5BD>M”Û if(sd->ignoreAll == 1)
intif_wis_replay(RFIFOL(fd,4), 2); // Žó<C5BD>M”Û
/*
else if(j>0) else if(j>0)
intif_wis_replay(id,2); // 受信拒否 intif_wis_replay(id,2); // 受信拒否
else{ else{
*/
if(i == MAX_IGNORE_LIST) {
clif_wis_message(sd->fd,RFIFOP(fd,8),RFIFOP(fd,56),RFIFOW(fd,2)-56); clif_wis_message(sd->fd,RFIFOP(fd,8),RFIFOP(fd,56),RFIFOW(fd,2)-56);
intif_wis_replay(id,0); // <E28098>M<EFBFBD>¬Œ÷ intif_wis_replay(RFIFOL(fd,4),0); // <E28098>M<EFBFBD>¬Œ÷
} }
}else }else
intif_wis_replay(id,1); // そんな人いません intif_wis_replay(id,1); // そんな人いません

View File

@ -31,7 +31,7 @@
#define MAX_LEVEL 255 #define MAX_LEVEL 255
#define MAX_WALKPATH 48 #define MAX_WALKPATH 48
#define MAX_DROP_PER_MAP 48 #define MAX_DROP_PER_MAP 48
#define MAX_WIS_REFUSAL 14 #define MAX_IGNORE_LIST 80
#define DEFAULT_AUTOSAVE_INTERVAL 60*1000 #define DEFAULT_AUTOSAVE_INTERVAL 60*1000
@ -179,8 +179,10 @@ struct map_session_data {
char npc_str[256]; char npc_str[256];
unsigned int chatID; unsigned int chatID;
char wis_refusal[MAX_WIS_REFUSAL][24]; //Refuse Whispers struct{
int wis_all; //Ignore all Whispers char name[24];
} ignore[MAX_IGNORE_LIST];
int ignoreAll;
int attacktimer; int attacktimer;
int attacktarget; int attacktarget;