Fixed some packets for 2022 clients (#7276)
Migrates a few packets from FIFO to structs. Migrates friendlist to struct and fixed invalid version check. Added a new guild related packet that does nothing for the time being. Synced to latest Hercules' packet definitions. Fixed name of ZC_SOULENERGY. Thanks to @Dia and @Pokye.
This commit is contained in:
parent
5ea44e7c0e
commit
fa4666d7af
@ -7026,7 +7026,7 @@ ACMD_FUNC(sound)
|
||||
if(strstr(sound_file, ".wav") == NULL)
|
||||
strcat(sound_file, ".wav");
|
||||
|
||||
clif_soundeffectall(&sd->bl, sound_file, 0, AREA);
|
||||
clif_soundeffect( sd->bl, sound_file, 0, AREA );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -507,7 +507,7 @@ bool bg_team_join(int bg_id, struct map_session_data *sd, bool is_queue)
|
||||
|
||||
for (const auto &pl_sd : bgteam->members) {
|
||||
if (pl_sd.sd != sd)
|
||||
clif_hpmeter_single(sd->fd, pl_sd.sd->bl.id, pl_sd.sd->battle_status.hp, pl_sd.sd->battle_status.max_hp);
|
||||
clif_hpmeter_single( *sd, pl_sd.sd->bl.id, pl_sd.sd->battle_status.hp, pl_sd.sd->battle_status.max_hp );
|
||||
}
|
||||
|
||||
clif_bg_hp(sd);
|
||||
|
@ -249,7 +249,7 @@ int8 buyingstore_create( struct map_session_data* sd, int zenylimit, unsigned ch
|
||||
StringBuf_Destroy(&buf);
|
||||
|
||||
clif_buyingstore_myitemlist(sd);
|
||||
clif_buyingstore_entry(sd);
|
||||
clif_buyingstore_entry( *sd );
|
||||
idb_put(buyingstore_db, sd->status.char_id, sd);
|
||||
|
||||
return 0;
|
||||
@ -276,7 +276,7 @@ void buyingstore_close(struct map_session_data* sd) {
|
||||
idb_remove(buyingstore_db, sd->status.char_id);
|
||||
|
||||
// notify other players
|
||||
clif_buyingstore_disappear_entry(sd);
|
||||
clif_buyingstore_disappear_entry( *sd );
|
||||
}
|
||||
}
|
||||
|
||||
|
1035
src/map/clif.cpp
1035
src/map/clif.cpp
File diff suppressed because it is too large
Load Diff
@ -638,8 +638,8 @@ void clif_selllist(struct map_session_data *sd); //self
|
||||
void clif_npc_market_open(struct map_session_data *sd, struct npc_data *nd);
|
||||
void clif_parse_NPCMarketClosed(int fd, struct map_session_data *sd);
|
||||
void clif_parse_NPCMarketPurchase(int fd, struct map_session_data *sd);
|
||||
void clif_scriptmes(struct map_session_data *sd, int npcid, const char *mes); //self
|
||||
void clif_scriptnext(struct map_session_data *sd,int npcid); //self
|
||||
void clif_scriptmes( struct map_session_data& sd, uint32 npcid, const char *mes );
|
||||
void clif_scriptnext( struct map_session_data& sd, uint32 npcid );
|
||||
void clif_scriptclose(struct map_session_data *sd, int npcid); //self
|
||||
void clif_scriptclear(struct map_session_data *sd, int npcid); //self
|
||||
void clif_scriptmenu(struct map_session_data* sd, int npcid, const char* mes); //self
|
||||
@ -690,9 +690,8 @@ void clif_talkiebox(struct block_list* bl, const char* talkie);
|
||||
void clif_wedding_effect(struct block_list *bl);
|
||||
void clif_divorced(struct map_session_data* sd, const char* name);
|
||||
void clif_callpartner(struct map_session_data *sd);
|
||||
void clif_playBGM(struct map_session_data* sd, const char* name);
|
||||
void clif_soundeffect(struct map_session_data* sd, struct block_list* bl, const char* name, int type);
|
||||
void clif_soundeffectall(struct block_list* bl, const char* name, int type, enum send_target coverage);
|
||||
void clif_playBGM( struct map_session_data& sd, const char* name );
|
||||
void clif_soundeffect( struct block_list& bl, const char* name, int type, enum send_target target );
|
||||
void clif_parse_ActionRequest_sub(struct map_session_data *sd, int action_type, int target_id, t_tick tick);
|
||||
void clif_parse_LoadEndAck(int fd,struct map_session_data *sd);
|
||||
void clif_hotkeys_send(struct map_session_data *sd, int tab);
|
||||
@ -804,7 +803,7 @@ void clif_changed_dir(struct block_list *bl, enum send_target target);
|
||||
|
||||
// vending
|
||||
void clif_openvendingreq(struct map_session_data* sd, int num);
|
||||
void clif_showvendingboard(struct block_list* bl, const char* message, int fd);
|
||||
void clif_showvendingboard( struct map_session_data& sd, enum send_target target = AREA_WOS, struct block_list* tbl = nullptr );
|
||||
void clif_closevendingboard(struct block_list* bl, int fd);
|
||||
void clif_vendinglist( struct map_session_data* sd, struct map_session_data* vsd );
|
||||
void clif_buyvending(struct map_session_data* sd, int index, int amount, int fail);
|
||||
@ -814,28 +813,28 @@ void clif_vendingreport(struct map_session_data* sd, int index, int amount, uint
|
||||
void clif_movetoattack(struct map_session_data *sd,struct block_list *bl);
|
||||
|
||||
// party
|
||||
void clif_party_created(struct map_session_data *sd,int result);
|
||||
void clif_party_member_info(struct party_data *p, struct map_session_data *sd);
|
||||
void clif_party_info(struct party_data* p, struct map_session_data *sd);
|
||||
void clif_party_invite(struct map_session_data *sd,struct map_session_data *tsd);
|
||||
void clif_party_invite_reply(struct map_session_data* sd, const char* nick, enum e_party_invite_reply reply);
|
||||
void clif_party_created( struct map_session_data& sd, int result );
|
||||
void clif_party_member_info( struct party_data& party, struct map_session_data& sd );
|
||||
void clif_party_info( struct party_data& party, struct map_session_data *sd = nullptr );
|
||||
void clif_party_invite( struct map_session_data& sd, struct map_session_data& tsd );
|
||||
void clif_party_invite_reply( struct map_session_data& sd, const char* nick, enum e_party_invite_reply reply );
|
||||
void clif_party_option(struct party_data *p,struct map_session_data *sd,int flag);
|
||||
void clif_party_withdraw(struct map_session_data *sd, uint32 account_id, const char* name, enum e_party_member_withdraw result, enum send_target target);
|
||||
void clif_party_message(struct party_data* p, uint32 account_id, const char* mes, int len);
|
||||
void clif_party_xy(struct map_session_data *sd);
|
||||
void clif_party_xy_single(int fd, struct map_session_data *sd);
|
||||
void clif_party_hp(struct map_session_data *sd);
|
||||
void clif_hpmeter_single(int fd, int id, unsigned int hp, unsigned int maxhp);
|
||||
void clif_party_job_and_level(struct map_session_data *sd);
|
||||
void clif_party_dead( struct map_session_data *sd );
|
||||
void clif_party_withdraw( struct map_session_data& sd, uint32 account_id, const char* name, enum e_party_member_withdraw result, enum send_target target );
|
||||
void clif_party_message( struct party_data& party, uint32 account_id, const char* mes, int len );
|
||||
void clif_party_xy( struct map_session_data& sd );
|
||||
void clif_party_xy_single( struct map_session_data& sd, struct map_session_data& tsd );
|
||||
void clif_party_hp( struct map_session_data& sd );
|
||||
void clif_hpmeter_single( struct map_session_data& sd, uint32 id, uint32 hp, uint32 maxhp );
|
||||
void clif_party_job_and_level( struct map_session_data& sd );
|
||||
void clif_party_dead( struct map_session_data& sd );
|
||||
|
||||
// guild
|
||||
void clif_guild_created(struct map_session_data *sd,int flag);
|
||||
void clif_guild_belonginfo(struct map_session_data *sd);
|
||||
void clif_guild_belonginfo( struct map_session_data& sd );
|
||||
void clif_guild_masterormember(struct map_session_data *sd);
|
||||
void clif_guild_basicinfo(struct map_session_data *sd);
|
||||
void clif_guild_basicinfo( struct map_session_data& sd );
|
||||
void clif_guild_allianceinfo(struct map_session_data *sd);
|
||||
void clif_guild_memberlist(struct map_session_data *sd);
|
||||
void clif_guild_memberlist( struct map_session_data& sd );
|
||||
void clif_guild_skillinfo(struct map_session_data* sd);
|
||||
void clif_guild_send_onlineinfo(struct map_session_data *sd); //[LuzZza]
|
||||
void clif_guild_memberlogin_notice(struct guild *g,int idx,int flag);
|
||||
@ -914,7 +913,7 @@ void clif_pet_autofeed_status(struct map_session_data* sd, bool force);
|
||||
|
||||
//friends list
|
||||
int clif_friendslist_toggle_sub(struct map_session_data *sd,va_list ap);
|
||||
void clif_friendslist_send(struct map_session_data *sd);
|
||||
void clif_friendslist_send( struct map_session_data& sd );
|
||||
void clif_friendslist_reqack(struct map_session_data *sd, struct map_session_data *f_sd, int type);
|
||||
|
||||
void clif_weather(int16 m); // [Valaris]
|
||||
@ -1052,10 +1051,8 @@ void clif_showdigit(struct map_session_data* sd, unsigned char type, int value);
|
||||
void clif_buyingstore_open(struct map_session_data* sd);
|
||||
void clif_buyingstore_open_failed(struct map_session_data* sd, unsigned short result, unsigned int weight);
|
||||
void clif_buyingstore_myitemlist(struct map_session_data* sd);
|
||||
void clif_buyingstore_entry(struct map_session_data* sd);
|
||||
void clif_buyingstore_entry_single(struct map_session_data* sd, struct map_session_data* pl_sd);
|
||||
void clif_buyingstore_disappear_entry(struct map_session_data* sd);
|
||||
void clif_buyingstore_disappear_entry_single(struct map_session_data* sd, struct map_session_data* pl_sd);
|
||||
void clif_buyingstore_entry( struct map_session_data& sd, struct block_list* tbl = nullptr );
|
||||
void clif_buyingstore_disappear_entry( struct map_session_data& sd, struct block_list* tbl = nullptr );
|
||||
void clif_buyingstore_itemlist(struct map_session_data* sd, struct map_session_data* pl_sd);
|
||||
void clif_buyingstore_trade_failed_buyer(struct map_session_data* sd, short result);
|
||||
void clif_buyingstore_update_item(struct map_session_data* sd, t_itemid nameid, unsigned short amount, uint32 char_id, int zeny);
|
||||
|
@ -88,8 +88,6 @@
|
||||
packet(0x00b1,8);
|
||||
parseable_packet(0x00b2,3,clif_parse_Restart,2);
|
||||
packet(0x00b3,3);
|
||||
packet(0x00b4,-1);
|
||||
packet(0x00b5,6);
|
||||
packet(0x00b6,6);
|
||||
packet(0x00b7,-1);
|
||||
parseable_packet(0x00b8,7,clif_parse_NpcSelectMenu,2,6);
|
||||
@ -156,20 +154,15 @@
|
||||
parseable_packet(0x00f7,2,clif_parse_CloseKafra,0);
|
||||
packet(0x00f8,2);
|
||||
parseable_packet(0x00f9,26,clif_parse_CreateParty,2);
|
||||
packet(0x00fa,3);
|
||||
packet(0x00fb,-1);
|
||||
parseable_packet(0x00fc,6,clif_parse_PartyInvite,2);
|
||||
packet(0x00fd,27);
|
||||
packet(0x00fe,30);
|
||||
parseable_packet(0x00ff,10,clif_parse_ReplyPartyInvite,2,6);
|
||||
parseable_packet(0x0100,2,clif_parse_LeaveParty,0);
|
||||
packet(0x0101,6);
|
||||
parseable_packet(0x0102,6,clif_parse_PartyChangeOption,2);
|
||||
parseable_packet(0x0103,30,clif_parse_RemovePartyMember,2,6);
|
||||
packet(0x0104,79);
|
||||
packet(0x0105,31);
|
||||
packet(0x0106,10);
|
||||
packet(0x0107,10);
|
||||
parseable_packet(0x0108,-1,clif_parse_PartyMessage,2,4);
|
||||
packet(0x0109,-1);
|
||||
packet( HEADER_ZC_MVP_GETTING_ITEM, sizeof( struct PACKET_ZC_MVP_GETTING_ITEM ) );
|
||||
@ -199,7 +192,7 @@
|
||||
packet( cartlistequipType, -1 );
|
||||
packet( cartlistnormalType, -1 );
|
||||
packet(0x0125,8);
|
||||
parseable_packet(0x0126,8,clif_parse_PutItemToCart,2,4);
|
||||
parseable_packet( HEADER_CZ_MOVE_ITEM_FROM_BODY_TO_CART, sizeof( PACKET_CZ_MOVE_ITEM_FROM_BODY_TO_CART ), clif_parse_PutItemToCart, 0 );
|
||||
parseable_packet(0x0127,8,clif_parse_GetItemFromCart,2,4);
|
||||
parseable_packet(0x0128,8,clif_parse_MoveFromKafraToCart,2,4);
|
||||
parseable_packet(0x0129,8,clif_parse_MoveToKafraFromCart,2,4);
|
||||
@ -210,9 +203,8 @@
|
||||
parseable_packet(0x012e,2,clif_parse_CloseVending,0);
|
||||
parseable_packet(0x012f,-1,clif_parse_OpenVending,2,4,0,84);
|
||||
parseable_packet(0x0130,6,clif_parse_VendingListReq,2);
|
||||
packet(0x0131,86);
|
||||
packet(0x0132,6);
|
||||
parseable_packet(0x0134,-1,clif_parse_PurchaseReq,2,4,8);
|
||||
parseable_packet( HEADER_CZ_PC_PURCHASE_ITEMLIST_FROMMC, -1, clif_parse_PurchaseReq, 0 );
|
||||
packet(0x0135,7);
|
||||
packet(0x0137,6);
|
||||
packet(0x0138,3);
|
||||
@ -367,7 +359,6 @@
|
||||
packet(0x01d0,8);
|
||||
packet(0x01d1,14);
|
||||
packet(0x01d2,10);
|
||||
packet(0x01d3,35);
|
||||
packet(0x01d4,6);
|
||||
parseable_packet(0x01d5,-1,clif_parse_NpcStringInput,2,4,8);
|
||||
packet(0x01d6,4);
|
||||
@ -389,7 +380,6 @@
|
||||
packet(0x01e6,26);
|
||||
parseable_packet(0x01e7,2,clif_parse_NoviceDoriDori,0);
|
||||
parseable_packet(0x01e8,28,clif_parse_CreateParty2,2,26,27);
|
||||
packet(0x01e9,81);
|
||||
packet(0x01ea,6);
|
||||
packet(0x01eb,10);
|
||||
packet(0x01ec,26);
|
||||
@ -1084,10 +1074,8 @@
|
||||
packet(0x02c2,-1);
|
||||
parseable_packet(0x02c4,26,clif_parse_PartyInvite2,2);
|
||||
packet(0x02c5,30);
|
||||
packet(0x02c6,30);
|
||||
parseable_packet(0x02c7,7,clif_parse_ReplyPartyInvite2,2,6);
|
||||
parseable_packet(0x02c8,3,clif_parse_PartyTick,2);
|
||||
packet(0x02c9,3);
|
||||
packet(0x02ca,3);
|
||||
packet(0x02cb,20);
|
||||
packet(0x02cc,4);
|
||||
@ -1595,15 +1583,9 @@
|
||||
#if PACKETVER >= 20091201
|
||||
packet(0x07fc,10);
|
||||
ack_packet(ZC_BROADCASTING_SPECIAL_ITEM_OBTAIN,0x07fd,-1,0);
|
||||
packet(0x07fe,26);
|
||||
//packet(0x07ff,-1);
|
||||
#endif
|
||||
|
||||
// 2009-12-15aRagexeRE
|
||||
#if PACKETVER >= 20091215
|
||||
//packet(0x0801,-1);
|
||||
#endif
|
||||
|
||||
// 2009-12-22aRagexeRE
|
||||
#if PACKETVER >= 2009122
|
||||
parseable_packet(0x0802,18,clif_parse_PartyBookingRegisterReq,2,4,6); // Booking System
|
||||
@ -1632,14 +1614,13 @@
|
||||
|
||||
// 2010-01-05aRagexeRE
|
||||
#if PACKETVER >= 20100105
|
||||
parseable_packet(0x0801,-1,clif_parse_PurchaseReq2,2,4,8,12);
|
||||
parseable_packet( HEADER_CZ_PC_PURCHASE_ITEMLIST_FROMMC2, -1, clif_parse_PurchaseReq2, 0 );
|
||||
#endif
|
||||
|
||||
// 2010-01-26aRagexeRE
|
||||
#if PACKETVER >= 20100126
|
||||
//packet(0x080C,2);
|
||||
//packet(0x080D,3);
|
||||
packet(0x080E,14);
|
||||
#endif
|
||||
|
||||
// 2010-02-09aRagexeRE
|
||||
@ -1653,7 +1634,6 @@
|
||||
parseable_packet(0x0811,-1,clif_parse_ReqOpenBuyingStore,2,4,8,9,89);
|
||||
//packet(0x0812,86);
|
||||
//packet(0x0813,6);
|
||||
//packet(0x0814,6);
|
||||
//packet(0x0815,-1);
|
||||
//packet(0x0817,-1);
|
||||
//packet(0x0818,6);
|
||||
@ -1663,9 +1643,7 @@
|
||||
// 2010-03-09aRagexeRE
|
||||
#if PACKETVER >= 20100309
|
||||
packet(0x0813,-1);
|
||||
//packet(0x0814,2);
|
||||
//packet(0x0815,6);
|
||||
packet(0x0816,6);
|
||||
packet(0x0818,-1);
|
||||
//packet(0x0819,10);
|
||||
//packet(0x081A,4);
|
||||
@ -1702,7 +1680,6 @@
|
||||
// 2010-04-20aRagexeRE
|
||||
#if PACKETVER >= 20100420
|
||||
packet(0x0812,8);
|
||||
packet(0x0814,86);
|
||||
parseable_packet(0x0815,2,clif_parse_ReqCloseBuyingStore,0);
|
||||
parseable_packet(0x0817,6,clif_parse_ReqClickBuyingStore,2);
|
||||
parseable_packet(0x0819,-1,clif_parse_ReqTradeBuyingStore,2,4,8,12);
|
||||
@ -2331,10 +2308,7 @@
|
||||
|
||||
// 2017-05-02dRagexeRE
|
||||
#if PACKETVER >= 20170502
|
||||
packet(0x0A43,85);
|
||||
packet(0x0A44,-1);
|
||||
packet(0x0AB2,7);
|
||||
packet(0x0ABD,10);
|
||||
packet(0x0A98,10);
|
||||
parseable_packet(0x0A99,4,clif_parse_equipswitch_remove,2,4);
|
||||
parseable_packet(0x0ACE,4,clif_parse_equipswitch_request_single,0);
|
||||
@ -2465,6 +2439,10 @@
|
||||
parseable_packet( HEADER_CZ_CLOSE_UI_ENCHANT, sizeof( struct PACKET_CZ_CLOSE_UI_ENCHANT ), clif_parse_enchantwindow_close, 0 );
|
||||
#endif
|
||||
|
||||
#if PACKETVER_MAIN_NUM >= 20220216
|
||||
parseable_packet( HEADER_CZ_APPROXIMATE_ACTOR, sizeof( struct PACKET_CZ_APPROXIMATE_ACTOR ), clif_parse_dull, 0 );
|
||||
#endif
|
||||
|
||||
#if PACKETVER_MAIN_NUM >= 20220216 || PACKETVER_ZERO_NUM >= 20220316
|
||||
parseable_packet( HEADER_CZ_USE_PACKAGEITEM, sizeof( struct PACKET_CZ_USE_PACKAGEITEM ), clif_parse_itempackage_select, 0 );
|
||||
#endif
|
||||
|
@ -284,7 +284,7 @@ int elemental_data_received(s_elemental *ele, bool flag) {
|
||||
clif_spawn(&ed->bl);
|
||||
clif_elemental_info(sd);
|
||||
clif_elemental_updatestatus(sd,SP_HP);
|
||||
clif_hpmeter_single(sd->fd,ed->bl.id,ed->battle_status.hp,ed->battle_status.max_hp);
|
||||
clif_hpmeter_single( *sd, ed->bl.id, ed->battle_status.hp, ed->battle_status.max_hp );
|
||||
clif_elemental_updatestatus(sd,SP_SP);
|
||||
}
|
||||
|
||||
|
@ -692,19 +692,19 @@ int guild_recv_info(struct guild *sg) {
|
||||
|
||||
if (before.guild_lv != g->guild_lv || bm != m ||
|
||||
before.max_member != g->max_member) {
|
||||
clif_guild_basicinfo(sd); //Submit basic information
|
||||
clif_guild_basicinfo( *sd ); //Submit basic information
|
||||
clif_guild_emblem(sd, g); //Submit emblem
|
||||
}
|
||||
|
||||
if (bm != m) { //Send members information
|
||||
clif_guild_memberlist(g->member[i].sd);
|
||||
clif_guild_memberlist( *sd );
|
||||
}
|
||||
|
||||
if (before.skill_point != g->skill_point)
|
||||
clif_guild_skillinfo(sd); //Submit information skills
|
||||
|
||||
if (guild_new) { // Send information and affiliation if unsent
|
||||
clif_guild_belonginfo(sd);
|
||||
clif_guild_belonginfo( *sd );
|
||||
clif_guild_notice(sd);
|
||||
sd->guild_emblem_id = g->emblem_id;
|
||||
}
|
||||
@ -894,7 +894,7 @@ int guild_member_added(int guild_id,uint32 account_id,uint32 char_id,int flag) {
|
||||
sd->guild_emblem_id = g->emblem_id;
|
||||
sd->guild = g;
|
||||
//Packets which were sent in the previous 'guild_sent' implementation.
|
||||
clif_guild_belonginfo(sd);
|
||||
clif_guild_belonginfo( *sd );
|
||||
clif_guild_notice(sd);
|
||||
|
||||
//TODO: send new emblem info to others
|
||||
@ -1011,7 +1011,7 @@ int guild_member_withdraw(int guild_id, uint32 account_id, uint32 char_id, int f
|
||||
|
||||
// remove member from guild
|
||||
memset(&g->member[i],0,sizeof(struct guild_member));
|
||||
clif_guild_memberlist(online_member_sd);
|
||||
clif_guild_memberlist( *online_member_sd );
|
||||
|
||||
// update char, if online
|
||||
if(sd != NULL && sd->status.guild_id == guild_id) {
|
||||
@ -1118,7 +1118,7 @@ int guild_send_memberinfoshort(struct map_session_data *sd,int online) { // clea
|
||||
}
|
||||
|
||||
if(sd->state.connect_new) { //Note that this works because it is invoked in parse_LoadEndAck before connect_new is cleared.
|
||||
clif_guild_belonginfo(sd);
|
||||
clif_guild_belonginfo( *sd );
|
||||
sd->guild_emblem_id = g->emblem_id;
|
||||
}
|
||||
return 0;
|
||||
@ -1359,7 +1359,7 @@ int guild_emblem_changed(int len,int guild_id,int emblem_id,const char *data) {
|
||||
for(i=0;i<g->max_member;i++){
|
||||
if((sd=g->member[i].sd)!=NULL){
|
||||
sd->guild_emblem_id=emblem_id;
|
||||
clif_guild_belonginfo(sd);
|
||||
clif_guild_belonginfo( *sd );
|
||||
clif_guild_emblem(sd,g);
|
||||
clif_guild_emblem_area(&sd->bl);
|
||||
}
|
||||
@ -2009,10 +2009,10 @@ int guild_gm_changed(int guild_id, uint32 account_id, uint32 char_id, time_t tim
|
||||
|
||||
// announce the change to all guild members
|
||||
for( i = 0; i < g->max_member; i++ ) {
|
||||
if( g->member[i].sd && g->member[i].sd->fd ) {
|
||||
clif_guild_basicinfo(g->member[i].sd);
|
||||
clif_guild_memberlist(g->member[i].sd);
|
||||
clif_guild_belonginfo(g->member[i].sd); // Update clientside guildmaster flag
|
||||
if( g->member[i].sd ){
|
||||
clif_guild_basicinfo( *g->member[i].sd );
|
||||
clif_guild_memberlist( *g->member[i].sd );
|
||||
clif_guild_belonginfo( *g->member[i].sd ); // Update clientside guildmaster flag
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2113,18 +2113,18 @@ void run_tomb(struct map_session_data* sd, struct npc_data* nd)
|
||||
strftime(time, sizeof(time), "%H:%M", localtime(&nd->u.tomb.kill_time));
|
||||
|
||||
// TODO: Find exact color?
|
||||
snprintf(buffer, sizeof(buffer), msg_txt(sd,657), nd->u.tomb.md->db->name.c_str());
|
||||
clif_scriptmes(sd, nd->bl.id, buffer);
|
||||
snprintf( buffer, sizeof( buffer ), msg_txt( sd, 657 ), nd->u.tomb.md->db->name.c_str() ); // [ ^EE0000%s^000000 ]
|
||||
clif_scriptmes( *sd, nd->bl.id, buffer );
|
||||
|
||||
clif_scriptmes(sd, nd->bl.id, msg_txt(sd,658));
|
||||
clif_scriptmes( *sd, nd->bl.id, msg_txt( sd, 658 ) ); // Has met its demise
|
||||
|
||||
snprintf(buffer, sizeof(buffer), msg_txt(sd,659), time);
|
||||
clif_scriptmes(sd, nd->bl.id, buffer);
|
||||
snprintf( buffer, sizeof( buffer ), msg_txt( sd, 659 ), time ); // Time of death : ^EE0000%s^000000
|
||||
clif_scriptmes( *sd, nd->bl.id, buffer );
|
||||
|
||||
clif_scriptmes(sd, nd->bl.id, msg_txt(sd,660));
|
||||
clif_scriptmes( *sd, nd->bl.id, msg_txt( sd, 660 ) ); // Defeated by
|
||||
|
||||
snprintf(buffer, sizeof(buffer), msg_txt(sd,661), nd->u.tomb.killer_name[0] ? nd->u.tomb.killer_name : "Unknown");
|
||||
clif_scriptmes(sd, nd->bl.id, buffer);
|
||||
snprintf( buffer, sizeof( buffer ), msg_txt( sd, 661 ), nd->u.tomb.killer_name[0] ? nd->u.tomb.killer_name : "Unknown" ); // [^EE0000%s^000000]
|
||||
clif_scriptmes( *sd, nd->bl.id, buffer );
|
||||
|
||||
clif_scriptclose(sd, nd->bl.id);
|
||||
}
|
||||
|
@ -207,16 +207,10 @@ struct PACKET_ZC_BROADCAST2{
|
||||
char message[];
|
||||
} __attribute__((packed));
|
||||
|
||||
struct PACKET_ZC_SPIRITS{
|
||||
int16 packetType;
|
||||
uint32 GID;
|
||||
uint16 amount;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct PACKET_ZC_UNCONFIRMED_SPIRITS3{
|
||||
int16 packetType;
|
||||
uint32 GID;
|
||||
uint16 amount;
|
||||
struct PACKET_ZC_SOULENERGY{
|
||||
int16 PacketType;
|
||||
uint32 AID;
|
||||
uint16 num;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct PACKET_ZC_ENTRY_QUEUE_INIT {
|
||||
@ -336,6 +330,20 @@ struct PACKET_CZ_USE_PACKAGEITEM{
|
||||
uint32 BoxIndex;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct PACKET_ZC_FRIENDS_LIST_sub{
|
||||
uint32 AID;
|
||||
uint32 CID;
|
||||
#if !( PACKETVER_MAIN_NUM >= 20180307 || PACKETVER_RE_NUM >= 20180221 || PACKETVER_ZERO_NUM >= 20180328 ) || PACKETVER >= 20200902
|
||||
char name[NAME_LENGTH];
|
||||
#endif
|
||||
} __attribute__((packed));
|
||||
|
||||
struct PACKET_ZC_FRIENDS_LIST{
|
||||
int16 packetType;
|
||||
int16 PacketLength;
|
||||
struct PACKET_ZC_FRIENDS_LIST_sub friends[];
|
||||
} __attribute__((packed));
|
||||
|
||||
// NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
|
||||
#if !defined( sun ) && ( !defined( __NETBSD__ ) || __NetBSD_Version__ >= 600000000 )
|
||||
#pragma pack( pop )
|
||||
@ -346,12 +354,10 @@ DEFINE_PACKET_HEADER(ZC_BROADCAST, 0x9a)
|
||||
DEFINE_PACKET_HEADER(ZC_ITEM_ENTRY, 0x9d)
|
||||
DEFINE_PACKET_HEADER(ZC_PC_PURCHASE_RESULT, 0xca)
|
||||
DEFINE_PACKET_HEADER(ZC_MVP_GETTING_ITEM, 0x10a)
|
||||
DEFINE_PACKET_HEADER(ZC_ACK_TOUSESKILL, 0x110)
|
||||
DEFINE_PACKET_HEADER(CZ_REQMAKINGITEM, 0x18e)
|
||||
DEFINE_PACKET_HEADER(ZC_ACK_REQMAKINGITEM, 0x18f)
|
||||
DEFINE_PACKET_HEADER(CZ_REQ_MAKINGARROW, 0x1ae)
|
||||
DEFINE_PACKET_HEADER(ZC_BROADCAST2, 0x1c3)
|
||||
DEFINE_PACKET_HEADER(ZC_SPIRITS, 0x1d0)
|
||||
#if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200724
|
||||
DEFINE_PACKET_HEADER(CZ_REQ_ITEMREPAIR, 0xb66)
|
||||
#else
|
||||
@ -362,6 +368,7 @@ DEFINE_PACKET_HEADER(ZC_SPIRITS, 0x1d0)
|
||||
#else
|
||||
DEFINE_PACKET_HEADER(ZC_CHANGE_GUILD, 0x1b4)
|
||||
#endif
|
||||
DEFINE_PACKET_HEADER(ZC_FRIENDS_LIST, 0x201)
|
||||
DEFINE_PACKET_HEADER(ZC_NOTIFY_WEAPONITEMLIST, 0x221)
|
||||
DEFINE_PACKET_HEADER(ZC_ACK_WEAPONREFINE, 0x223)
|
||||
DEFINE_PACKET_HEADER(CZ_REQ_MAKINGITEM, 0x25b)
|
||||
@ -382,12 +389,13 @@ DEFINE_PACKET_HEADER(CZ_REQ_APPLY_BARGAIN_SALE_ITEM2, 0xa3d)
|
||||
DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CHANGE, 0xa46)
|
||||
DEFINE_PACKET_HEADER(ZC_STYLE_CHANGE_RES, 0xa47)
|
||||
DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CLOSE, 0xa48)
|
||||
DEFINE_PACKET_HEADER(ZC_GROUP_ISALIVE, 0xab2)
|
||||
DEFINE_PACKET_HEADER(CZ_REQ_STYLE_CHANGE2, 0xafc)
|
||||
DEFINE_PACKET_HEADER(ZC_REMOVE_EFFECT, 0x0b0d)
|
||||
DEFINE_PACKET_HEADER(CZ_UNCONFIRMED_TSTATUS_UP, 0x0b24)
|
||||
DEFINE_PACKET_HEADER(CZ_GUILD_EMBLEM_CHANGE2, 0x0b46)
|
||||
DEFINE_PACKET_HEADER(ZC_TARGET_SPIRITS, 0xb68)
|
||||
DEFINE_PACKET_HEADER(ZC_UNCONFIRMED_SPIRITS3, 0xb73)
|
||||
DEFINE_PACKET_HEADER(ZC_SOULENERGY, 0xb73)
|
||||
DEFINE_PACKET_HEADER(CZ_UNCONFIRMED_RODEX_RETURN, 0xb98)
|
||||
DEFINE_PACKET_HEADER(ZC_SUMMON_HP_INIT, 0xb6b)
|
||||
DEFINE_PACKET_HEADER(ZC_SUMMON_HP_UPDATE, 0xb6c)
|
||||
|
@ -212,6 +212,14 @@ enum packet_headers {
|
||||
#else
|
||||
cartlistequipType = 0x122,
|
||||
#endif
|
||||
#if PACKETVER < 20100105
|
||||
vendinglistType = 0x133,
|
||||
#elif !(PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200723)
|
||||
vendinglistType = 0x800,
|
||||
#else
|
||||
vendinglistType = 0xb3d,
|
||||
#endif
|
||||
openvendingType = 0x136,
|
||||
#if PACKETVER >= 20120925
|
||||
equipitemType = 0x998,
|
||||
#else
|
||||
@ -573,7 +581,7 @@ struct PACKET_ZC_ITEM_PICKUP_ACK {
|
||||
#endif
|
||||
#if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200723
|
||||
uint8 refiningLevel;
|
||||
uint8 enchantgrade;
|
||||
uint8 grade;
|
||||
#endif // PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200723
|
||||
} __attribute__((packed));
|
||||
|
||||
@ -1011,8 +1019,8 @@ struct packet_script_clear {
|
||||
uint32 NpcID;
|
||||
} __attribute__((packed));
|
||||
|
||||
/* made possible thanks to Yommy!! */
|
||||
struct packet_package_item_announce {
|
||||
#if PACKETVER_MAIN_NUM >= 20220518 || PACKETVER_ZERO_NUM >= 20220518
|
||||
struct PACKET_ZC_BROADCASTING_SPECIAL_ITEM_OBTAIN_item {
|
||||
int16 PacketType;
|
||||
int16 PacketLength;
|
||||
uint8 type;
|
||||
@ -1023,13 +1031,42 @@ struct packet_package_item_announce {
|
||||
#endif
|
||||
int8 len;
|
||||
char Name[NAME_LENGTH];
|
||||
int8 unknown; // probably unused
|
||||
int8 boxItemID_len;
|
||||
#if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
|
||||
uint32 BoxItemID;
|
||||
#else
|
||||
uint16 BoxItemID;
|
||||
#endif
|
||||
int8 refineLevel_len;
|
||||
#if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
|
||||
uint32 refineLevel;
|
||||
#else
|
||||
uint16 refineLevel;
|
||||
#endif
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_BROADCASTING_SPECIAL_ITEM_OBTAIN_item, 0x0bba)
|
||||
#elif PACKETVER >= 20091201
|
||||
/* made possible thanks to Yommy!! */
|
||||
struct PACKET_ZC_BROADCASTING_SPECIAL_ITEM_OBTAIN_item {
|
||||
int16 PacketType;
|
||||
int16 PacketLength;
|
||||
uint8 type;
|
||||
#if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
|
||||
uint32 ItemID;
|
||||
#else
|
||||
uint16 ItemID;
|
||||
#endif
|
||||
int8 len;
|
||||
char Name[NAME_LENGTH];
|
||||
int8 boxItemID_len;
|
||||
#if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114
|
||||
uint32 BoxItemID;
|
||||
#else
|
||||
uint16 BoxItemID;
|
||||
#endif
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_BROADCASTING_SPECIAL_ITEM_OBTAIN_item, 0x07fd)
|
||||
#endif
|
||||
|
||||
/* made possible thanks to Yommy!! */
|
||||
struct packet_item_drop_announce {
|
||||
@ -1724,7 +1761,7 @@ struct PACKET_ZC_ACK_ADD_ITEM_RODEX {
|
||||
uint8 favorite;
|
||||
uint32 location;
|
||||
int8 refiningLevel;
|
||||
uint8 enchantgrade;
|
||||
int8 grade;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_ACK_ADD_ITEM_RODEX, 0x0b3f);
|
||||
#elif PACKETVER >= 20141119
|
||||
@ -1904,7 +1941,7 @@ struct PACKET_ZC_ACK_READ_RODEX_SUB {
|
||||
uint16 bindOnEquip;
|
||||
struct ItemOptions option_data[MAX_ITEM_OPTIONS];
|
||||
int8 refiningLevel;
|
||||
int8 enchantgrade;
|
||||
int8 grade;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct PACKET_ZC_ACK_READ_RODEX {
|
||||
@ -2428,6 +2465,7 @@ struct PACKET_ZC_ACK_TOUSESKILL {
|
||||
uint8 flag;
|
||||
uint8 cause;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_ACK_TOUSESKILL, 0x0110)
|
||||
|
||||
#if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200723
|
||||
struct PACKET_ZC_ADD_ITEM_TO_CART {
|
||||
@ -2445,7 +2483,7 @@ struct PACKET_ZC_ADD_ITEM_TO_CART {
|
||||
struct EQUIPSLOTINFO slot;
|
||||
struct ItemOptions option_data[MAX_ITEM_OPTIONS];
|
||||
uint8 refine;
|
||||
uint8 enchantgrade;
|
||||
uint8 grade;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_ADD_ITEM_TO_CART, 0x0b45);
|
||||
#elif PACKETVER_MAIN_NUM >= 20140813 || PACKETVER_RE_NUM >= 20140402 || defined(PACKETVER_ZERO)
|
||||
@ -2603,7 +2641,7 @@ struct PACKET_ZC_ADD_EXCHANGE_ITEM {
|
||||
#endif // PACKETVER_MAIN_NUM >= 20161102 || PACKETVER_RE_NUM >= 20161026 || defined(PACKETVER_ZERO)
|
||||
#if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200723
|
||||
uint8 refine;
|
||||
uint8 enchantgrade;
|
||||
uint8 grade;
|
||||
#endif // PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200723
|
||||
} __attribute__((packed));
|
||||
|
||||
@ -2654,7 +2692,7 @@ struct PACKET_ZC_ITEM_PICKUP_PARTY {
|
||||
uint16 location;
|
||||
uint8 itemType;
|
||||
uint8 refine;
|
||||
uint8 enchantgrade;
|
||||
uint8 grade;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_ITEM_PICKUP_PARTY, 0x0b67);
|
||||
#elif PACKETVER >= 20070731
|
||||
@ -2876,7 +2914,7 @@ struct REPAIRITEM_INFO2 {
|
||||
#endif
|
||||
struct EQUIPSLOTINFO slot; // unused?
|
||||
uint8 refine; // unused?
|
||||
uint8 enchantgrade; // unused?
|
||||
uint8 grade; // unused?
|
||||
} __attribute__((packed));
|
||||
#elif PACKETVER >= 20191106
|
||||
struct REPAIRITEM_INFO2 {
|
||||
@ -2974,7 +3012,7 @@ struct PACKET_ZC_PC_PURCHASE_MYITEMLIST_sub {
|
||||
struct EQUIPSLOTINFO slot;
|
||||
struct ItemOptions option_data[MAX_ITEM_OPTIONS];
|
||||
uint8 refine;
|
||||
uint8 enchantgrade;
|
||||
uint8 grade;
|
||||
} __attribute__((packed));
|
||||
struct PACKET_ZC_PC_PURCHASE_MYITEMLIST {
|
||||
int16 packetType;
|
||||
@ -3120,7 +3158,7 @@ struct PACKET_ZC_PC_PURCHASE_ITEMLIST_FROMMC_sub {
|
||||
uint32 location;
|
||||
uint16 viewSprite;
|
||||
uint8 refine;
|
||||
uint8 enchantgrade;
|
||||
uint8 grade;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct PACKET_ZC_PC_PURCHASE_ITEMLIST_FROMMC {
|
||||
@ -3158,7 +3196,7 @@ struct PACKET_ZC_PC_PURCHASE_ITEMLIST_FROMMC_sub {
|
||||
#endif
|
||||
#if PACKETVER_MAIN_NUM >= 20200916 || PACKETVER_RE_NUM >= 20200723
|
||||
uint8 refine;
|
||||
uint8 enchantgrade;
|
||||
uint8 grade;
|
||||
#endif
|
||||
} __attribute__((packed));
|
||||
|
||||
@ -3406,7 +3444,7 @@ struct PACKET_ZC_SEARCH_STORE_INFO_ACK_sub {
|
||||
struct EQUIPSLOTINFO slot;
|
||||
struct ItemOptions option_data[MAX_ITEM_OPTIONS];
|
||||
uint8 refine;
|
||||
uint8 enchantgrade;
|
||||
uint8 grade;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct PACKET_ZC_SEARCH_STORE_INFO_ACK {
|
||||
@ -3568,11 +3606,14 @@ struct PACKET_ZC_GUILD_POSITION {
|
||||
char position[];
|
||||
} __attribute__((packed));
|
||||
|
||||
struct PACKET_ZC_INVENTORY_MOVE_FAILED {
|
||||
#if PACKETVER_MAIN_NUM >= 20161214 || PACKETVER_RE_NUM >= 20161130 || defined(PACKETVER_ZERO)
|
||||
struct PACKET_ZC_MOVE_ITEM_FAILED {
|
||||
int16 packetType;
|
||||
int16 index;
|
||||
int16 unknown;
|
||||
int16 itemIndex;
|
||||
int16 itemCount;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_MOVE_ITEM_FAILED, 0x0aa7);
|
||||
#endif // PACKETVER_MAIN_NUM >= 20161214 || PACKETVER_RE_NUM >= 20161130 || defined(PACKETVER_ZERO)
|
||||
|
||||
#if PACKETVER_MAIN_NUM >= 20161019 || PACKETVER_RE_NUM >= 20160921 || defined(PACKETVER_ZERO)
|
||||
#define PACKET_ZC_ACK_BAN_GUILD PACKET_ZC_ACK_BAN_GUILD3
|
||||
@ -3677,7 +3718,7 @@ struct PACKET_ZC_CHANGE_ITEM_OPTION {
|
||||
struct EQUIPSLOTINFO slot;
|
||||
struct ItemOptions option_data[MAX_ITEM_OPTIONS];
|
||||
uint8 refiningLevel;
|
||||
uint8 enchantgrade;
|
||||
uint8 grade;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_CHANGE_ITEM_OPTION, 0x0b43);
|
||||
#elif PACKETVER_MAIN_NUM >= 20181017 || PACKETVER_RE_NUM >= 20181017 || PACKETVER_ZERO_NUM >= 20181024
|
||||
@ -5345,7 +5386,7 @@ DEFINE_PACKET_HEADER(CZ_GRADE_ENCHANT_CLOSE_UI, 0x0b5c);
|
||||
struct PACKET_ZC_GRADE_ENCHANT_ACK {
|
||||
int16 PacketType;
|
||||
int16 index;
|
||||
int16 enchantgrade;
|
||||
int16 grade;
|
||||
int result;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_GRADE_ENCHANT_ACK, 0x0b5d);
|
||||
@ -5356,7 +5397,7 @@ struct PACKET_ZC_GRADE_ENCHANT_BROADCAST_RESULT {
|
||||
int16 packetType;
|
||||
char name[NAME_LENGTH];
|
||||
uint32 itemId;
|
||||
int16 enchantgrade;
|
||||
int16 grade;
|
||||
int8 status;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_GRADE_ENCHANT_BROADCAST_RESULT, 0x0b5e);
|
||||
@ -5425,16 +5466,15 @@ DEFINE_PACKET_HEADER(ZC_UPDATE_GDID, 0x016c)
|
||||
#endif // PACKETVER_MAIN_NUM >= 20220216
|
||||
|
||||
#if PACKETVER_MAIN_NUM >= 20220216
|
||||
struct PACKET_CZ_SEE_GUILD_MEMBERS {
|
||||
struct PACKET_CZ_APPROXIMATE_ACTOR {
|
||||
int16 PacketType;
|
||||
uint32 masterGID;
|
||||
uint16 unused1;
|
||||
uint8 unused2;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(CZ_SEE_GUILD_MEMBERS, 0x0bb0)
|
||||
DEFINE_PACKET_HEADER(CZ_APPROXIMATE_ACTOR, 0x0bb0)
|
||||
#endif // PACKETVER_MAIN_NUM >= 20220216
|
||||
|
||||
|
||||
struct PACKET_CZ_CONTACTNPC {
|
||||
int16 PacketType;
|
||||
uint32 AID;
|
||||
@ -5486,6 +5526,166 @@ struct PACKET_ZC_CHANGESTATE_PET {
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_CHANGESTATE_PET, 0x01a4)
|
||||
|
||||
struct PACKET_ZC_SPIRITS {
|
||||
int16 PacketType;
|
||||
uint32 AID;
|
||||
int16 num;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_SPIRITS, 0x01d0)
|
||||
|
||||
struct PACKET_ZC_SAY_DIALOG {
|
||||
int16 PacketType;
|
||||
int16 PacketLength;
|
||||
uint32 NpcID;
|
||||
char message[];
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_SAY_DIALOG, 0x00b4)
|
||||
|
||||
#if PACKETVER_MAIN_NUM >= 20220504
|
||||
struct PACKET_ZC_SAY_DIALOG2 {
|
||||
int16 PacketType;
|
||||
int16 PacketLength;
|
||||
uint32 NpcID;
|
||||
uint8 type;
|
||||
char message[];
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_SAY_DIALOG2, 0x0972)
|
||||
#else // PACKETVER_MAIN_NUM >= 20220504
|
||||
struct PACKET_ZC_SAY_DIALOG2 {
|
||||
int16 PacketType;
|
||||
int16 PacketLength;
|
||||
uint32 NpcID;
|
||||
char message[];
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_SAY_DIALOG2, 0x00b4)
|
||||
#endif // PACKETVER_MAIN_NUM >= 20220504
|
||||
|
||||
struct PACKET_ZC_WAIT_DIALOG {
|
||||
int16 PacketType;
|
||||
uint32 NpcID;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_WAIT_DIALOG, 0x00b5)
|
||||
|
||||
#if PACKETVER_MAIN_NUM >= 20220504
|
||||
struct PACKET_ZC_WAIT_DIALOG2 {
|
||||
int16 PacketType;
|
||||
uint32 NpcID;
|
||||
uint8 type;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_WAIT_DIALOG2, 0x0973)
|
||||
#else // PACKETVER_MAIN_NUM >= 20220504
|
||||
struct PACKET_ZC_WAIT_DIALOG2 {
|
||||
int16 PacketType;
|
||||
uint32 NpcID;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_WAIT_DIALOG2, 0x00b5)
|
||||
#endif // PACKETVER_MAIN_NUM >= 20220504
|
||||
|
||||
#if PACKETVER_MAIN_NUM >= 20220504
|
||||
struct PACKET_ZC_DIALOG_WINDOW_SIZE {
|
||||
int16 PacketType;
|
||||
int height;
|
||||
int width;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_DIALOG_WINDOW_SIZE, 0x0ba2)
|
||||
#endif // PACKETVER_MAIN_NUM >= 20220504
|
||||
|
||||
#if PACKETVER_MAIN_NUM >= 20220504
|
||||
struct PACKET_ZC_DIALOG_WINDOW_POS {
|
||||
int16 PacketType;
|
||||
int x;
|
||||
int y;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_DIALOG_WINDOW_POS, 0x0ba3)
|
||||
#endif // PACKETVER_MAIN_NUM >= 20220504
|
||||
|
||||
#if PACKETVER_MAIN_NUM >= 20220504
|
||||
struct PACKET_ZC_DIALOG_WINDOW_POS2 {
|
||||
int16 PacketType;
|
||||
int x;
|
||||
int y;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_DIALOG_WINDOW_POS2, 0x0bb5)
|
||||
#endif // PACKETVER_MAIN_NUM >= 20220504
|
||||
|
||||
#if PACKETVER_MAIN_NUM >= 20220504
|
||||
struct PACKET_ZC_PLAY_NPC_BGM {
|
||||
int16 PacketType;
|
||||
int16 PacketLength;
|
||||
uint8 playType;
|
||||
char bgm[];
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_PLAY_NPC_BGM, 0x0b8c)
|
||||
#elif PACKETVER >= 20091201
|
||||
struct PACKET_ZC_PLAY_NPC_BGM {
|
||||
int16 PacketType;
|
||||
char bgm[NAME_LENGTH];
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_PLAY_NPC_BGM, 0x07fe)
|
||||
#endif // PACKETVER >= 20091201
|
||||
|
||||
struct PACKET_CZ_MOVE_ITEM_FROM_BODY_TO_CART {
|
||||
int16 PacketType;
|
||||
int16 index;
|
||||
int count;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(CZ_MOVE_ITEM_FROM_BODY_TO_CART, 0x0126)
|
||||
|
||||
struct PACKET_ZC_SOUND {
|
||||
int16 PacketType;
|
||||
char name[NAME_LENGTH];
|
||||
uint8 act;
|
||||
uint32 term;
|
||||
uint32 AID;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_SOUND, 0x01d3)
|
||||
|
||||
#if PACKETVER >= 20100420
|
||||
struct PACKET_ZC_BUYING_STORE_ENTRY {
|
||||
int16 packetType;
|
||||
uint32 makerAID;
|
||||
char storeName[MESSAGE_SIZE];
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_BUYING_STORE_ENTRY, 0x0814);
|
||||
#endif
|
||||
|
||||
struct PACKET_ZC_STORE_ENTRY {
|
||||
int16 packetType;
|
||||
uint32 makerAID;
|
||||
char storeName[MESSAGE_SIZE];
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_STORE_ENTRY, 0x0131);
|
||||
|
||||
struct CZ_PURCHASE_ITEM_FROMMC {
|
||||
int16 count;
|
||||
int16 index;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct PACKET_CZ_PC_PURCHASE_ITEMLIST_FROMMC {
|
||||
int16 packetType;
|
||||
int16 packetLength;
|
||||
uint32 AID;
|
||||
struct CZ_PURCHASE_ITEM_FROMMC list[];
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(CZ_PC_PURCHASE_ITEMLIST_FROMMC, 0x0134);
|
||||
|
||||
struct PACKET_CZ_PC_PURCHASE_ITEMLIST_FROMMC2 {
|
||||
int16 packetType;
|
||||
int16 packetLength;
|
||||
uint32 AID;
|
||||
uint32 UniqueID;
|
||||
struct CZ_PURCHASE_ITEM_FROMMC list[];
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(CZ_PC_PURCHASE_ITEMLIST_FROMMC2, 0x0801);
|
||||
|
||||
#if PACKETVER >= 20100309
|
||||
struct PACKET_ZC_DISAPPEAR_BUYING_STORE_ENTRY {
|
||||
int16 packetType;
|
||||
uint32 makerAID;
|
||||
} __attribute__((packed));
|
||||
DEFINE_PACKET_HEADER(ZC_DISAPPEAR_BUYING_STORE_ENTRY, 0x0816);
|
||||
#endif
|
||||
|
||||
#if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
|
||||
#pragma pack(pop)
|
||||
#endif // not NetBSD < 6 / Solaris
|
||||
|
@ -153,7 +153,7 @@ int party_create(struct map_session_data *sd,char *name,int item,int item2)
|
||||
return 0;
|
||||
|
||||
if( sd->status.party_id > 0 || sd->party_joining || sd->party_creating ) { // already associated with a party
|
||||
clif_party_created(sd,2);
|
||||
clif_party_created( *sd, 2 );
|
||||
return -2;
|
||||
}
|
||||
|
||||
@ -179,7 +179,7 @@ void party_created(uint32 account_id,uint32 char_id,int fail,int party_id,char *
|
||||
|
||||
if( !fail ) {
|
||||
sd->status.party_id = party_id;
|
||||
clif_party_created(sd,0); // Success message
|
||||
clif_party_created( *sd, 0 ); // Success message
|
||||
|
||||
achievement_update_objective(sd, AG_PARTY, 1, 1);
|
||||
|
||||
@ -189,7 +189,7 @@ void party_created(uint32 account_id,uint32 char_id,int fail,int party_id,char *
|
||||
party_create_byscript = 0;
|
||||
}
|
||||
} else
|
||||
clif_party_created(sd,1); // "party name already exists"
|
||||
clif_party_created( *sd, 1 ); // "party name already exists"
|
||||
}
|
||||
|
||||
int party_request_info(int party_id, uint32 char_id)
|
||||
@ -355,12 +355,13 @@ int party_recv_info(struct party* sp, uint32 char_id)
|
||||
continue;// not online
|
||||
|
||||
clif_name_area(&sd->bl); //Update other people's display. [Skotlex]
|
||||
clif_party_member_info(p,sd);
|
||||
clif_party_member_info( *p, *sd );
|
||||
// Only send this on party creation, otherwise it will be sent by party_send_movemap [Lemongrass]
|
||||
if( sd->party_creating ){
|
||||
clif_party_option(p,sd,0x100);
|
||||
}
|
||||
clif_party_info(p,NULL);
|
||||
|
||||
clif_party_info( *p );
|
||||
|
||||
if (p->instance_id > 0)
|
||||
instance_reqinfo(sd, p->instance_id);
|
||||
@ -368,7 +369,7 @@ int party_recv_info(struct party* sp, uint32 char_id)
|
||||
|
||||
// If a player was renamed, make sure to resend the party information
|
||||
if( rename ){
|
||||
clif_party_info(p,NULL);
|
||||
clif_party_info( *p );
|
||||
}
|
||||
|
||||
if( char_id != 0 ) { // requester
|
||||
@ -402,7 +403,7 @@ int party_invite(struct map_session_data *sd,struct map_session_data *tsd)
|
||||
if (tsd && battle_config.block_account_in_same_party) {
|
||||
ARR_FIND(0, MAX_PARTY, i, p->party.member[i].account_id == tsd->status.account_id);
|
||||
if (i < MAX_PARTY) {
|
||||
clif_party_invite_reply(sd, tsd->status.name, PARTY_REPLY_DUAL);
|
||||
clif_party_invite_reply( *sd, tsd->status.name, PARTY_REPLY_DUAL );
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@ -411,7 +412,7 @@ int party_invite(struct map_session_data *sd,struct map_session_data *tsd)
|
||||
ARR_FIND(0, MAX_PARTY, i, p->party.member[i].account_id == 0);
|
||||
|
||||
if( i == MAX_PARTY ) {
|
||||
clif_party_invite_reply(sd, (tsd?tsd->status.name:""), PARTY_REPLY_FULL);
|
||||
clif_party_invite_reply( *sd, ( tsd ? tsd->status.name : "" ), PARTY_REPLY_FULL );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -422,32 +423,32 @@ int party_invite(struct map_session_data *sd,struct map_session_data *tsd)
|
||||
}
|
||||
|
||||
if( tsd == NULL) {
|
||||
clif_party_invite_reply(sd, "", PARTY_REPLY_OFFLINE);
|
||||
clif_party_invite_reply( *sd, "", PARTY_REPLY_OFFLINE );
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(!battle_config.invite_request_check) {
|
||||
if (tsd->guild_invite>0 || tsd->trade_partner || tsd->adopt_invite) {
|
||||
clif_party_invite_reply(sd,tsd->status.name,PARTY_REPLY_JOIN_OTHER_PARTY);
|
||||
clif_party_invite_reply( *sd, tsd->status.name, PARTY_REPLY_JOIN_OTHER_PARTY );
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (!tsd->fd) { //You can't invite someone who has already disconnected.
|
||||
clif_party_invite_reply(sd,tsd->status.name,PARTY_REPLY_REJECTED);
|
||||
clif_party_invite_reply( *sd, tsd->status.name, PARTY_REPLY_REJECTED );
|
||||
return 0;
|
||||
}
|
||||
|
||||
if( tsd->status.party_id > 0 || tsd->party_invite > 0 )
|
||||
{// already associated with a party
|
||||
clif_party_invite_reply(sd,tsd->status.name,PARTY_REPLY_JOIN_OTHER_PARTY);
|
||||
clif_party_invite_reply( *sd, tsd->status.name, PARTY_REPLY_JOIN_OTHER_PARTY );
|
||||
return 0;
|
||||
}
|
||||
|
||||
tsd->party_invite=sd->status.party_id;
|
||||
tsd->party_invite_account=sd->status.account_id;
|
||||
|
||||
clif_party_invite(sd,tsd);
|
||||
clif_party_invite( *sd, *tsd );
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -482,7 +483,7 @@ int party_reply_invite(struct map_session_data *sd,int party_id,int flag)
|
||||
sd->party_invite_account = 0;
|
||||
|
||||
if( tsd != NULL )
|
||||
clif_party_invite_reply(tsd,sd->status.name,PARTY_REPLY_REJECTED);
|
||||
clif_party_invite_reply( *tsd, sd->status.name, PARTY_REPLY_REJECTED );
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -538,28 +539,28 @@ int party_member_added(int party_id,uint32 account_id,uint32 char_id, int flag)
|
||||
|
||||
if( flag ) { // failed
|
||||
if( sd2 != NULL )
|
||||
clif_party_invite_reply(sd2,sd->status.name,PARTY_REPLY_FULL);
|
||||
clif_party_invite_reply( *sd2, sd->status.name, PARTY_REPLY_FULL );
|
||||
return 0;
|
||||
}
|
||||
|
||||
sd->status.party_id = party_id;
|
||||
|
||||
clif_party_member_info(p,sd);
|
||||
clif_party_member_info( *p, *sd );
|
||||
clif_party_option(p,sd,0x100);
|
||||
clif_party_info(p,sd);
|
||||
clif_party_info( *p, sd );
|
||||
|
||||
if( sd2 != NULL )
|
||||
clif_party_invite_reply(sd2,sd->status.name,PARTY_REPLY_ACCEPTED);
|
||||
clif_party_invite_reply( *sd2, sd->status.name, PARTY_REPLY_ACCEPTED );
|
||||
|
||||
for( i = 0; i < ARRAYLENGTH(p->data); ++i ) { // hp of the other party members
|
||||
sd2 = p->data[i].sd;
|
||||
|
||||
if( sd2 && sd2->status.account_id != account_id && sd2->status.char_id != char_id )
|
||||
clif_hpmeter_single(sd->fd, sd2->bl.id, sd2->battle_status.hp, sd2->battle_status.max_hp);
|
||||
clif_hpmeter_single( *sd, sd2->bl.id, sd2->battle_status.hp, sd2->battle_status.max_hp );
|
||||
}
|
||||
|
||||
clif_party_hp(sd);
|
||||
clif_party_xy(sd);
|
||||
clif_party_hp( *sd );
|
||||
clif_party_xy( *sd );
|
||||
clif_name_area(&sd->bl); //Update char name's display [Skotlex]
|
||||
|
||||
if (p->instance_id > 0)
|
||||
@ -647,8 +648,13 @@ int party_member_withdraw(int party_id, uint32 account_id, uint32 char_id, char
|
||||
struct party_data* p = party_search(party_id);
|
||||
|
||||
if( p ) {
|
||||
struct map_session_data* party_sd = party_getavailablesd( p );
|
||||
|
||||
if( party_sd != nullptr ){
|
||||
clif_party_withdraw( *party_sd, account_id, name, type, PARTY );
|
||||
}
|
||||
|
||||
int i;
|
||||
clif_party_withdraw(party_getavailablesd(p), account_id, name, type, PARTY);
|
||||
ARR_FIND( 0, MAX_PARTY, i, p->party.member[i].account_id == account_id && p->party.member[i].char_id == char_id );
|
||||
if( i < MAX_PARTY ) {
|
||||
memset(&p->party.member[i], 0, sizeof(p->party.member[0]));
|
||||
@ -704,8 +710,8 @@ int party_broken(int party_id)
|
||||
instance_destroy( p->instance_id );
|
||||
|
||||
for( i = 0; i < MAX_PARTY; i++ ) {
|
||||
if( p->data[i].sd != NULL ) {
|
||||
clif_party_withdraw(p->data[i].sd,p->party.member[i].account_id,p->party.member[i].name,PARTY_MEMBER_WITHDRAW_EXPEL,SELF);
|
||||
if( p->data[i].sd != nullptr ) {
|
||||
clif_party_withdraw( *p->data[i].sd, p->party.member[i].account_id, p->party.member[i].name, PARTY_MEMBER_WITHDRAW_EXPEL, SELF );
|
||||
p->data[i].sd->status.party_id=0;
|
||||
}
|
||||
}
|
||||
@ -838,7 +844,7 @@ int party_changeleader(struct map_session_data *sd, struct map_session_data *tsd
|
||||
|
||||
// Update info.
|
||||
intif_party_leaderchange(p->party.party_id,p->party.member[tmi].account_id,p->party.member[tmi].char_id);
|
||||
clif_party_info(p,NULL);
|
||||
clif_party_info( *p );
|
||||
|
||||
return 1;
|
||||
}
|
||||
@ -871,7 +877,7 @@ int party_recv_movemap(int party_id,uint32 account_id,uint32 char_id, unsigned s
|
||||
//Check if they still exist on this map server
|
||||
p->data[i].sd = party_sd_check(party_id, account_id, char_id);
|
||||
|
||||
clif_party_info(p,NULL);
|
||||
clif_party_info( *p );
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -891,8 +897,8 @@ void party_send_movemap(struct map_session_data *sd)
|
||||
if(sd->state.connect_new) {
|
||||
//Note that this works because this function is invoked before connect_new is cleared.
|
||||
clif_party_option(p,sd,0x100);
|
||||
clif_party_info(p,sd);
|
||||
clif_party_member_info(p,sd);
|
||||
clif_party_info( *p, sd );
|
||||
clif_party_member_info( *p, *sd );
|
||||
}
|
||||
|
||||
if (sd->fd) { // synchronize minimap positions with the rest of the party
|
||||
@ -902,8 +908,8 @@ void party_send_movemap(struct map_session_data *sd)
|
||||
p->data[i].sd != sd &&
|
||||
p->data[i].sd->bl.m == sd->bl.m)
|
||||
{
|
||||
clif_party_xy_single(sd->fd, p->data[i].sd);
|
||||
clif_party_xy_single(p->data[i].sd->fd, sd);
|
||||
clif_party_xy_single( *sd, *p->data[i].sd );
|
||||
clif_party_xy_single( *p->data[i].sd, *sd );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -954,7 +960,7 @@ int party_recv_message(int party_id,uint32 account_id,const char *mes,int len)
|
||||
struct party_data *p;
|
||||
if( (p=party_search(party_id))==NULL)
|
||||
return 0;
|
||||
clif_party_message(p,account_id,mes,len);
|
||||
clif_party_message( *p, account_id, mes, len );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1033,13 +1039,13 @@ TIMER_FUNC(party_send_xy_timer){
|
||||
continue;
|
||||
|
||||
if( p->data[i].x != sd->bl.x || p->data[i].y != sd->bl.y ) { // perform position update
|
||||
clif_party_xy(sd);
|
||||
clif_party_xy( *sd );
|
||||
p->data[i].x = sd->bl.x;
|
||||
p->data[i].y = sd->bl.y;
|
||||
}
|
||||
|
||||
if (battle_config.party_hp_mode && p->data[i].hp != sd->battle_status.hp) { // perform hp update
|
||||
clif_party_hp(sd);
|
||||
clif_party_hp( *sd );
|
||||
p->data[i].hp = sd->battle_status.hp;
|
||||
}
|
||||
}
|
||||
|
@ -1863,7 +1863,7 @@ bool pc_authok(struct map_session_data *sd, uint32 login_id2, time_t expiration_
|
||||
sd->status.name, sd->status.account_id, sd->status.char_id,
|
||||
CONVIP(ip), sd->group_id);
|
||||
// Send friends list
|
||||
clif_friendslist_send(sd);
|
||||
clif_friendslist_send( *sd );
|
||||
|
||||
if( !changing_mapservers ) {
|
||||
|
||||
@ -9292,7 +9292,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src)
|
||||
|
||||
pc_setdead(sd);
|
||||
|
||||
clif_party_dead( sd );
|
||||
clif_party_dead( *sd );
|
||||
|
||||
pc_setparam(sd, SP_PCDIECOUNTER, sd->die_counter+1);
|
||||
pc_setparam(sd, SP_KILLERRID, src?src->id:0);
|
||||
@ -10483,7 +10483,7 @@ bool pc_jobchange(struct map_session_data *sd,int job, char upper)
|
||||
|
||||
if( i < MAX_PARTY ){
|
||||
p->party.member[i].class_ = sd->status.class_;
|
||||
clif_party_job_and_level(sd);
|
||||
clif_party_job_and_level( *sd );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -12517,7 +12517,7 @@ bool pc_setstand(struct map_session_data *sd, bool force){
|
||||
sd->ssregen.tick.hp = sd->ssregen.tick.sp = 0;
|
||||
if( pc_isdead( sd ) ){
|
||||
sd->state.dead_sit = sd->vd.dead_sit = 0;
|
||||
clif_party_dead( sd );
|
||||
clif_party_dead( *sd );
|
||||
}else{
|
||||
sd->state.dead_sit = sd->vd.dead_sit = 0;
|
||||
}
|
||||
|
@ -4906,13 +4906,13 @@ void script_reload(void) {
|
||||
/// mes "<message>";
|
||||
BUILDIN_FUNC(mes)
|
||||
{
|
||||
TBL_PC* sd;
|
||||
struct map_session_data* sd;
|
||||
if( !script_rid2sd(sd) )
|
||||
return SCRIPT_CMD_SUCCESS;
|
||||
|
||||
if( !script_hasdata(st, 3) )
|
||||
{// only a single line detected in the script
|
||||
clif_scriptmes(sd, st->oid, script_getstr(st, 2));
|
||||
clif_scriptmes( *sd, st->oid, script_getstr( st, 2 ) );
|
||||
}
|
||||
else
|
||||
{// parse multiple lines as they exist
|
||||
@ -4921,7 +4921,7 @@ BUILDIN_FUNC(mes)
|
||||
for( i = 2; script_hasdata(st, i); i++ )
|
||||
{
|
||||
// send the message to the client
|
||||
clif_scriptmes(sd, st->oid, script_getstr(st, i));
|
||||
clif_scriptmes( *sd, st->oid, script_getstr( st, i ) );
|
||||
}
|
||||
}
|
||||
|
||||
@ -4935,7 +4935,7 @@ BUILDIN_FUNC(mes)
|
||||
/// next;
|
||||
BUILDIN_FUNC(next)
|
||||
{
|
||||
TBL_PC* sd;
|
||||
struct map_session_data* sd;
|
||||
|
||||
if (!st->mes_active) {
|
||||
ShowWarning("buildin_next: There is no mes active.\n");
|
||||
@ -4948,7 +4948,7 @@ BUILDIN_FUNC(next)
|
||||
sd->npc_idle_type = NPCT_WAIT;
|
||||
#endif
|
||||
st->state = STOP;
|
||||
clif_scriptnext(sd, st->oid);
|
||||
clif_scriptnext( *sd, st->oid );
|
||||
return SCRIPT_CMD_SUCCESS;
|
||||
}
|
||||
|
||||
@ -14951,7 +14951,7 @@ BUILDIN_FUNC(playBGM)
|
||||
struct map_session_data* sd;
|
||||
|
||||
if( script_rid2sd(sd) ) {
|
||||
clif_playBGM(sd, script_getstr(st,2));
|
||||
clif_playBGM( *sd, script_getstr( st, 2 ) );
|
||||
}
|
||||
return SCRIPT_CMD_SUCCESS;
|
||||
}
|
||||
@ -14959,14 +14959,14 @@ BUILDIN_FUNC(playBGM)
|
||||
static int playBGM_sub(struct block_list* bl,va_list ap)
|
||||
{
|
||||
const char* name = va_arg(ap,const char*);
|
||||
clif_playBGM(BL_CAST(BL_PC, bl), name);
|
||||
clif_playBGM( *BL_CAST( BL_PC, bl ), name );
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int playBGM_foreachpc_sub(struct map_session_data* sd, va_list args)
|
||||
{
|
||||
const char* name = va_arg(args, const char*);
|
||||
clif_playBGM(sd, name);
|
||||
clif_playBGM( *sd, name );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -15003,13 +15003,13 @@ BUILDIN_FUNC(playBGMall)
|
||||
*------------------------------------------*/
|
||||
BUILDIN_FUNC(soundeffect)
|
||||
{
|
||||
TBL_PC* sd;
|
||||
struct map_session_data* sd;
|
||||
|
||||
if(script_rid2sd(sd)){
|
||||
const char* name = script_getstr(st,2);
|
||||
int type = script_getnum(st,3);
|
||||
|
||||
clif_soundeffect(sd,&sd->bl,name,type);
|
||||
clif_soundeffect( sd->bl, name, type, SELF );
|
||||
}
|
||||
return SCRIPT_CMD_SUCCESS;
|
||||
}
|
||||
@ -15019,7 +15019,7 @@ int soundeffect_sub(struct block_list* bl,va_list ap)
|
||||
char* name = va_arg(ap,char*);
|
||||
int type = va_arg(ap,int);
|
||||
|
||||
clif_soundeffect((TBL_PC *)bl, bl, name, type);
|
||||
clif_soundeffect( *bl, name, type, SELF );
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -15050,7 +15050,7 @@ BUILDIN_FUNC(soundeffectall)
|
||||
|
||||
if(!script_hasdata(st,4))
|
||||
{ // area around
|
||||
clif_soundeffectall(bl, name, type, AREA);
|
||||
clif_soundeffect( *bl, name, type, AREA );
|
||||
}
|
||||
else
|
||||
if(!script_hasdata(st,5))
|
||||
|
@ -388,7 +388,7 @@ int8 vending_openvending(struct map_session_data* sd, const char* message, const
|
||||
StringBuf_Destroy(&buf);
|
||||
|
||||
clif_openvending(sd,sd->bl.id,sd->vending);
|
||||
clif_showvendingboard(&sd->bl,message,0);
|
||||
clif_showvendingboard( *sd );
|
||||
|
||||
idb_put(vending_db, sd->status.char_id, sd);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user