diff options
author | Dastgir Pojee <dastgirpojee@rocketmail.com> | 2013-10-17 21:39:11 +0530 |
---|---|---|
committer | Dastgir Pojee <dastgirpojee@rocketmail.com> | 2013-10-17 21:39:11 +0530 |
commit | b2c9f9de564065019684fcf22ed020b943fc5bbe (patch) | |
tree | d27ede8e334382211743c1e34a73a9db67778d38 /src/map/clif.c | |
parent | 97979fe1e577aebe77e978c248a08b33b2c0c1a2 (diff) | |
parent | 9128feccf3bddda94a7f8a170305565416815b40 (diff) | |
download | hercules-b2c9f9de564065019684fcf22ed020b943fc5bbe.tar.gz hercules-b2c9f9de564065019684fcf22ed020b943fc5bbe.tar.bz2 hercules-b2c9f9de564065019684fcf22ed020b943fc5bbe.tar.xz hercules-b2c9f9de564065019684fcf22ed020b943fc5bbe.zip |
Merge remote-tracking branch 'upstream/master' into SkidConst
Diffstat (limited to 'src/map/clif.c')
-rw-r--r-- | src/map/clif.c | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index 823a44956..060509807 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -9600,6 +9600,11 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) { if (sd->sc.opt2) //Client loses these on warp. clif->changeoption(&sd->bl); + if( battle_config.mon_trans_disable_in_gvg && map_flag_gvg2(sd->bl.m) ){ + status_change_end(&sd->bl, SC_MONSTER_TRANSFORM, INVALID_TIMER); + clif->message(sd->fd, msg_txt(1488)); // Transforming into monster is not allowed in Guild Wars. + } + clif->weather_check(sd); // For automatic triggering of NPCs after map loading (so you don't need to walk 1 step first) @@ -9617,7 +9622,6 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) { clif->clearunit_area(&sd->bl, CLR_DEAD); else { skill->usave_trigger(sd); - clif->changed_dir(&sd->bl, SELF); } // Trigger skill effects if you appear standing on them @@ -17451,7 +17455,8 @@ void clif_parse_CashShopBuy(int fd, struct map_session_data *sd) { if( result != CSBR_SUCCESS ) pc->getcash(sd, clif->cs.data[tab][j]->price * get_count,0); - } + } else /* create_egg succeeded so mark as success */ + result = CSBR_SUCCESS; } } } else { @@ -17536,6 +17541,28 @@ void clif_partytickack(struct map_session_data* sd, bool flag) { WFIFOSET(sd->fd, packet_len(0x2c9)); } +void clif_ShowScript(struct block_list* bl, const char* message) { + char buf[256]; + int len; + nullpo_retv(bl); + + if(!message) + return; + + len = strlen(message)+1; + + if( len > sizeof(buf)-8 ) { + ShowWarning("clif_ShowScript: Truncating too long message '%s' (len=%d).\n", message, len); + len = sizeof(buf)-8; + } + + WBUFW(buf,0)=0x8b3; + WBUFW(buf,2)=len+8; + WBUFL(buf,4)=bl->id; + safestrncpy((char *) WBUFP(buf,8),message,len); + clif->send((unsigned char *) buf,WBUFW(buf,2),bl,ALL_CLIENT); +} + void clif_status_change_end(struct block_list *bl, int tid, enum send_target target, int type) { struct packet_status_change_end p; @@ -18390,6 +18417,7 @@ void clif_defaults(void) { clif->wisexin = clif_wisexin; clif->wisall = clif_wisall; clif->PMIgnoreList = clif_PMIgnoreList; + clif->ShowScript = clif_ShowScript; /* trade handling */ clif->traderequest = clif_traderequest; clif->tradestart = clif_tradestart; |