From 9a8fab9f29c7284c23b54e67bdb85a05de9b36eb Mon Sep 17 00:00:00 2001 From: Inkfish Date: Tue, 16 Jun 2009 12:35:03 +0000 Subject: Fixed an exploit that makes guild skill get higher level than the max defined in guild_skill_tree. (bugreport:3241) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13894 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/char_sql/int_guild.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/char_sql/int_guild.c') diff --git a/src/char_sql/int_guild.c b/src/char_sql/int_guild.c index 00f4759d4..725a5059f 100644 --- a/src/char_sql/int_guild.c +++ b/src/char_sql/int_guild.c @@ -1691,7 +1691,7 @@ int mapif_parse_GuildPosition(int fd,int guild_id,int idx,struct guild_position } // Guild Skill UP -int mapif_parse_GuildSkillUp(int fd,int guild_id,int skill_num,int account_id) +int mapif_parse_GuildSkillUp(int fd,int guild_id,int skill_num,int account_id,int max) { struct guild * g; int idx = skill_num - GD_SKILLBASE; @@ -1700,7 +1700,7 @@ int mapif_parse_GuildSkillUp(int fd,int guild_id,int skill_num,int account_id) if(g == NULL || idx < 0 || idx >= MAX_GUILDSKILL) return 0; - if(g->skill_point>0 && g->skill[idx].id>0 && g->skill[idx].lv<10 ) + if(g->skill_point>0 && g->skill[idx].id>0 && g->skill[idx].lvskill[idx].lv++; g->skill_point--; @@ -1949,7 +1949,7 @@ int inter_guild_parse_frommap(int fd) case 0x3039: mapif_parse_GuildBasicInfoChange(fd,RFIFOL(fd,4),RFIFOW(fd,8),(const char*)RFIFOP(fd,10),RFIFOW(fd,2)-10); break; case 0x303A: mapif_parse_GuildMemberInfoChange(fd,RFIFOL(fd,4),RFIFOL(fd,8),RFIFOL(fd,12),RFIFOW(fd,16),(const char*)RFIFOP(fd,18),RFIFOW(fd,2)-18); break; case 0x303B: mapif_parse_GuildPosition(fd,RFIFOL(fd,4),RFIFOL(fd,8),(struct guild_position *)RFIFOP(fd,12)); break; - case 0x303C: mapif_parse_GuildSkillUp(fd,RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10)); break; + case 0x303C: mapif_parse_GuildSkillUp(fd,RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOL(fd,14)); break; case 0x303D: mapif_parse_GuildAlliance(fd,RFIFOL(fd,2),RFIFOL(fd,6),RFIFOL(fd,10),RFIFOL(fd,14),RFIFOB(fd,18)); break; case 0x303E: mapif_parse_GuildNotice(fd,RFIFOL(fd,2),(const char*)RFIFOP(fd,6),(const char*)RFIFOP(fd,66)); break; case 0x303F: mapif_parse_GuildEmblem(fd,RFIFOW(fd,2)-12,RFIFOL(fd,4),RFIFOL(fd,8),(const char*)RFIFOP(fd,12)); break; -- cgit v1.2.3-70-g09d2