From ac593dc91efaf23a881e8a8b86f3a72c6621cb36 Mon Sep 17 00:00:00 2001 From: valaris Date: Fri, 5 Nov 2004 20:59:29 +0000 Subject: Fixed crash from guild skill point allocation, there seems to be a problem with guilds loading still. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/athena@16 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/char/int_guild.c | 4 ++-- src/char_sql/int_guild.c | 21 +++++++++++++++++++-- src/common/mmo.h | 2 +- src/map/intif.c | 4 ++-- src/map/script.c | 2 +- src/map/skill.h | 1 - 6 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/char/int_guild.c b/src/char/int_guild.c index a0ba5becb..025a6e6c7 100644 --- a/src/char/int_guild.c +++ b/src/char/int_guild.c @@ -629,7 +629,7 @@ int guild_calcinfo(struct guild *g) { struct guild before = *g; // スキルIDの設定 - for(i = 0; i < 20; i++) + for(i = 0; i < MAX_GUILDSKILL; i++) g->skill[i].id = i + 10000; // ギルドレベル @@ -979,7 +979,7 @@ int mapif_parse_CreateGuild(int fd, int account_id, char *name, struct guild_mem // ここでギルド情報計算が必要と思われる g->max_member = 16; g->average_lv = master->lv; - for(i = 0; i < 20; i++) + for(i = 0; i < MAX_GUILDSKILL; i++) g->skill[i].id = i + 10000; numdb_insert(guild_db, g->guild_id, g); diff --git a/src/char_sql/int_guild.c b/src/char_sql/int_guild.c index 3bbba5fd3..cebdf1036 100644 --- a/src/char_sql/int_guild.c +++ b/src/char_sql/int_guild.c @@ -690,7 +690,7 @@ int guild_calcinfo(struct guild *g) struct guild before=*g; // スキルIDの設定 - for(i=0;i<20;i++) + for(i=0;iskill[i].id=i+10000; // ギルドレベル @@ -1046,7 +1046,7 @@ int mapif_parse_CreateGuild(int fd,int account_id,char *name,struct guild_member g->max_member=16; g->average_lv=master->lv; g->castle_id=-1; - for(i=0;i<20;i++) + for(i=0;iskill[i].id=i+10000; // Save to sql @@ -1088,6 +1088,7 @@ int mapif_parse_GuildAddMember(int fd,int guild_id,struct guild_member *m) { struct guild *g=guild_pt; int i; + inter_guild_fromsql(guild_id,g); if(g==NULL||g->guild_id<=0){ @@ -1114,6 +1115,7 @@ int mapif_parse_GuildAddMember(int fd,int guild_id,struct guild_member *m) int mapif_parse_GuildLeave(int fd,int guild_id,int account_id,int char_id,int flag,const char *mes) { struct guild *g=guild_pt; + inter_guild_fromsql(guild_id,g); if(g!=NULL&&g->guild_id>0){ @@ -1174,6 +1176,10 @@ int mapif_parse_GuildChangeMemberInfoShort(int fd,int guild_id, // Could speed up by manipulating only guild_member struct guild * g=guild_pt; int i,alv,c; + + + + if(g==NULL||g->guild_id<=0) return 0; @@ -1213,6 +1219,9 @@ int mapif_parse_BreakGuild(int fd,int guild_id) if(g==NULL) return 0; inter_guild_fromsql(guild_id,g); + + + // Delete guild from sql //printf("- Delete guild %d from guild\n",guild_id); @@ -1279,6 +1288,10 @@ int mapif_parse_GuildBasicInfoChange(int fd,int guild_id, struct guild * g=guild_pt; // int dd=*((int *)data); short dw=*((short *)data); + + + + if(g==NULL||g->guild_id<=0) return 0; @@ -1310,6 +1323,7 @@ int mapif_parse_GuildMemberInfoChange(int fd,int guild_id,int account_id,int cha // Could make some improvement in speed, because only change guild_member int i; struct guild * g=guild_pt; + inter_guild_fromsql(guild_id,g); //printf("GuildMemberInfoChange %s \n",(type==GMI_EXP)?"GMI_EXP":"OTHER"); @@ -1350,6 +1364,7 @@ int mapif_parse_GuildPosition(int fd,int guild_id,int idx,struct guild_position { // Could make some improvement in speed, because only change guild_position struct guild * g=guild_pt; + inter_guild_fromsql(guild_id,g); if(g==NULL || idx<0 || idx>=MAX_GUILDPOSITION){ @@ -1432,6 +1447,7 @@ int mapif_parse_GuildAlliance(int fd,int guild_id1,int guild_id2, int mapif_parse_GuildNotice(int fd,int guild_id,const char *mes1,const char *mes2) { struct guild *g=guild_pt; + inter_guild_fromsql(guild_id,g); if(g==NULL||g->guild_id<=0) @@ -1445,6 +1461,7 @@ int mapif_parse_GuildNotice(int fd,int guild_id,const char *mes1,const char *mes int mapif_parse_GuildEmblem(int fd,int len,int guild_id,int dummy,const char *data) { struct guild * g=guild_pt; + inter_guild_fromsql(guild_id,g); if(g==NULL||g->guild_id<=0) diff --git a/src/common/mmo.h b/src/common/mmo.h index 9b349ff44..9ed965e3b 100644 --- a/src/common/mmo.h +++ b/src/common/mmo.h @@ -41,7 +41,7 @@ #define MAX_GUILDPOSITION 20 // increased max guild positions to accomodate for all members [Valaris] (removed) [PoW] #define MAX_GUILDEXPLUSION 32 #define MAX_GUILDALLIANCE 16 -#define MAX_GUILDSKILL 20 // increased max guild skills because of new skills [Sara-chan] +#define MAX_GUILDSKILL 15 // increased max guild skills because of new skills [Sara-chan] #define MAX_GUILDCASTLE 24 // increased to include novice castles [Valaris] #define MAX_GUILDLEVEL 50 diff --git a/src/map/intif.c b/src/map/intif.c index a2bdbe7ee..5b5ddc8d7 100644 --- a/src/map/intif.c +++ b/src/map/intif.c @@ -473,8 +473,8 @@ int intif_guild_skillup(int guild_id,int skill_num,int account_id,int flag) WFIFOL(inter_fd, 2)=guild_id; WFIFOL(inter_fd, 6)=skill_num; WFIFOL(inter_fd,10)=account_id; - WFIFOL(inter_fd,14)=flag; - WFIFOSET(inter_fd,18); + //WFIFOL(inter_fd,14)=flag; + WFIFOSET(inter_fd,14); return 0; } // ギルド同盟/敵対要求 diff --git a/src/map/script.c b/src/map/script.c index 534e50cd1..1636c7f45 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -3182,7 +3182,7 @@ int buildin_getskilllv(struct script_state *st) * skill_id = 10000 : GD_APPROVAL * 10001 : GD_KAFRACONTACT * 10002 : GD_GUARDIANRESEARCH - * 10003 : GD_CHARISMA + * 10003 : GD_GUARDUP * 10004 : GD_EXTENSION *------------------------------------------ */ diff --git a/src/map/skill.h b/src/map/skill.h index 468e5d3af..dd035b8af 100644 --- a/src/map/skill.h +++ b/src/map/skill.h @@ -835,7 +835,6 @@ enum { GD_APPROVAL=10000, GD_KAFRACONTACT=10001, GD_GUARDIANRESEARCH=10002, - GD_CHARISMA=10003, GD_GUARDUP=10003, GD_EXTENSION=10004, GD_GLORYGUILD=10005, -- cgit v1.2.3-70-g09d2