summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormomacabu <momacabu@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-12-22 19:41:32 +0000
committermomacabu <momacabu@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-12-22 19:41:32 +0000
commit13c0bf2c8cd873ca5ed29c763a3daafa96c0a8ce (patch)
treeda80ec5e061d804a851c2ed7de54162bc3fe21c3
parentca6687180056b8f89d7f16827dc22eeacce5f211 (diff)
downloadhercules-13c0bf2c8cd873ca5ed29c763a3daafa96c0a8ce.tar.gz
hercules-13c0bf2c8cd873ca5ed29c763a3daafa96c0a8ce.tar.bz2
hercules-13c0bf2c8cd873ca5ed29c763a3daafa96c0a8ce.tar.xz
hercules-13c0bf2c8cd873ca5ed29c763a3daafa96c0a8ce.zip
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17034 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--conf/battle/client.conf2
-rw-r--r--src/char/int_guild.c4
-rw-r--r--src/map/atcommand.c2
-rw-r--r--src/map/npc.c2
-rw-r--r--src/map/skill.c4
-rw-r--r--src/map/unit.c2
6 files changed, 9 insertions, 7 deletions
diff --git a/conf/battle/client.conf b/conf/battle/client.conf
index 9107c8b2d..0522e9425 100644
--- a/conf/battle/client.conf
+++ b/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)
diff --git a/src/char/int_guild.c b/src/char/int_guild.c
index 661d57c1f..0966d2344 100644
--- a/src/char/int_guild.c
+++ b/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);
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 2a57c0ccb..c8a9a62c5 100644
--- a/src/map/atcommand.c
+++ b/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));
diff --git a/src/map/npc.c b/src/map/npc.c
index c3af52607..c11770a1e 100644
--- a/src/map/npc.c
+++ b/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 )
diff --git a/src/map/skill.c b/src/map/skill.c
index 2079ffd85..2ea3ceaa2 100644
--- a/src/map/skill.c
+++ b/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)));
diff --git a/src/map/unit.c b/src/map/unit.c
index 91b9f9edd..07b728f47 100644
--- a/src/map/unit.c
+++ b/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.