Explorar o código

Fixed crash from guild skill point allocation, there seems to be a problem with guilds loading still.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@16 54d463be-8e91-2dee-dedb-b68131a5f0ec
valaris %!s(int64=20) %!d(string=hai) anos
pai
achega
94bcb3e6de
Modificáronse 6 ficheiros con 25 adicións e 9 borrados
  1. 2 2
      src/char/int_guild.c
  2. 19 2
      src/char_sql/int_guild.c
  3. 1 1
      src/common/mmo.h
  4. 2 2
      src/map/intif.c
  5. 1 1
      src/map/script.c
  6. 0 1
      src/map/skill.h

+ 2 - 2
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);

+ 19 - 2
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;i<MAX_GUILDSKILL;i++)
 		g->skill[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;i<MAX_GUILDSKILL;i++)
 		g->skill[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)

+ 1 - 1
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
 

+ 2 - 2
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;
 }
 // ƒMƒ‹ƒh“¯–¿/“G‘Ηv‹�

+ 1 - 1
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                     
  *------------------------------------------
  */

+ 0 - 1
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,