فهرست منبع

Community Contribution Time!
* Fixed bugreport:6303: official servers now always reshuffle the dice emoticon. To disable change the configuration to 'no'. Thanks to Vianna for providing the information!
* Fixed bugreport:7026: creating a guild and exiting in a short amount of time wouldn't save the guild properly. Thank you clydelion!
* Fixed bugreport:7030: removed warning introduced by r16987. Thanks Mr. Brian and Sir BuildBot for pointing!
* Fixed bugreport:7031: if a player crashed during warp it would cause OnTouch_ to not trigger anymore. Thanks to flaviojs (eA-r15185) for the fix and Napster for pointing out!
* Fixed bugreport:7032: Clementia and Canto Candidus give an additional of +1 str/agi/dex each 10 job levels (from caster). Thanks solvent!

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17034 54d463be-8e91-2dee-dedb-b68131a5f0ec

momacabu 12 سال پیش
والد
کامیت
509e03fa58
6فایلهای تغییر یافته به همراه9 افزوده شده و 7 حذف شده
  1. 1 1
      conf/battle/client.conf
  2. 2 2
      src/char/int_guild.c
  3. 1 1
      src/map/atcommand.c
  4. 2 0
      src/map/npc.c
  5. 2 2
      src/map/skill.c
  6. 1 1
      src/map/unit.c

+ 1 - 1
conf/battle/client.conf

@@ -118,7 +118,7 @@ display_status_timers: yes
 
 // Randomizes the dice emoticon server-side, to prevent clients from forging
 // packets for the desired number. (Note 1)
-client_reshuffle_dice: no
+client_reshuffle_dice: yes
 
 // Sorts the character and guild storage before it is sent to the client.
 // Official servers do not sort storage. (Note 1)

+ 2 - 2
src/char/int_guild.c

@@ -245,7 +245,7 @@ int inter_guild_tosql(struct guild *g,int flag)
 					m->hair, m->hair_color, m->gender,
 					m->class_, m->lv, m->exp, m->exp_payper, m->online, m->position, esc_name) )
 					Sql_ShowDebug(sql_handle);
-				if (m->modified & GS_MEMBER_NEW)
+				if (m->modified&GS_MEMBER_NEW || new_guild == 1)
 				{
 					if( SQL_ERROR == Sql_Query(sql_handle, "UPDATE `%s` SET `guild_id` = '%d' WHERE `char_id` = '%d'",
 						char_db, g->guild_id, m->char_id) )
@@ -1185,7 +1185,7 @@ int mapif_parse_CreateGuild(int fd,int account_id,char *name,struct guild_member
 	g->guild_id= -1; //Request to create guild.
 
 	// Create the guild
-	if (!inter_guild_tosql(g,GS_BASIC|GS_POSITION|GS_SKILL)) {
+	if (!inter_guild_tosql(g,GS_BASIC|GS_POSITION|GS_SKILL|GS_MEMBER)) {
 		//Failed to Create guild....
 		ShowError("Failed to create Guild %s (Guild Master: %s)\n", g->name, g->master);
 		mapif_guild_created(fd,account_id,NULL);

+ 1 - 1
src/map/atcommand.c

@@ -7570,7 +7570,7 @@ ACMD_FUNC(mapflag) {
 		clif_displaymessage(sd->fd,atcmd_output);\
 		return 0;\
 	}
-    char flag_name[100];
+    unsigned char flag_name[100];
 	int flag=0,i;
 	nullpo_retr(-1, sd);
 	memset(flag_name, '\0', sizeof(flag_name));

+ 2 - 0
src/map/npc.c

@@ -830,6 +830,8 @@ int npc_touch_areanpc_sub(struct block_list *bl, va_list ap)
 	pc_id = va_arg(ap,int);
 	name = va_arg(ap,char*);
 
+	if( sd->state.warping )
+		return 0;
 	if( pc_ishiding(sd) )
 		return 0;
 	if( pc_id == sd->bl.id )

+ 2 - 2
src/map/skill.c

@@ -7632,8 +7632,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 	case AB_CLEMENTIA:
 	case AB_CANTO:
 		{
-			int bless_lv = pc_checkskill(sd,AL_BLESSING);
-			int agi_lv = pc_checkskill(sd,AL_INCAGI);
+			int bless_lv = pc_checkskill(sd,AL_BLESSING) + (sd->status.job_level / 10);
+			int agi_lv = pc_checkskill(sd,AL_INCAGI) + (sd->status.job_level / 10);
 			if( sd == NULL || sd->status.party_id == 0 || flag&1 )
 				clif_skill_nodamage(bl, bl, skillid, skilllv, sc_start(bl,type,100,
 					(skillid == AB_CLEMENTIA)? bless_lv : (skillid == AB_CANTO)? agi_lv : skilllv, skill_get_time(skillid,skilllv)));

+ 1 - 1
src/map/unit.c

@@ -2077,7 +2077,7 @@ int unit_remove_map_(struct block_list *bl, clr_type clrtype, const char* file,
 				guild_reply_reqalliance(sd,sd->guild_alliance_account,0);
 			if(sd->menuskill_id)
 				sd->menuskill_id = sd->menuskill_val = 0;
-			if( sd->touching_id && !sd->state.warping ) // Only if the player isn't warping and there is a touching_id.
+			if( sd->touching_id )
 				npc_touchnext_areanpc(sd,true);
 
 			// Check if warping and not changing the map.