From 576b80efa1c556796c13f195467e0dd1cea5631b Mon Sep 17 00:00:00 2001 From: daegaladh Date: Sat, 21 Jul 2012 04:08:44 +0000 Subject: Fixed an old bug in waitingroom where NPCs weren't appearing into their chatrooms. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16461 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/pre-re/battleground/flavius/flavius01.txt | 4 ++-- npc/pre-re/battleground/flavius/flavius02.txt | 4 ++-- npc/pre-re/battleground/kvm/kvm01.txt | 4 ++-- npc/pre-re/battleground/kvm/kvm02.txt | 4 ++-- npc/pre-re/battleground/kvm/kvm03.txt | 4 ++-- npc/pre-re/battleground/tierra/tierra01.txt | 4 ++-- npc/pre-re/battleground/tierra/tierra02.txt | 4 ++-- npc/pre-re/other/poring_war.txt | 6 ++--- npc/re/battleground/flavius/flavius01.txt | 4 ++-- npc/re/battleground/flavius/flavius02.txt | 4 ++-- npc/re/battleground/kvm/kvm01.txt | 4 ++-- npc/re/battleground/kvm/kvm02.txt | 4 ++-- npc/re/battleground/kvm/kvm03.txt | 4 ++-- npc/re/battleground/tierra/tierra01.txt | 4 ++-- npc/re/battleground/tierra/tierra02.txt | 4 ++-- npc/re/other/poring_war.txt | 6 ++--- src/map/chat.c | 2 +- src/map/clif.c | 34 ++++++++++++++++++++------- 18 files changed, 61 insertions(+), 43 deletions(-) diff --git a/npc/pre-re/battleground/flavius/flavius01.txt b/npc/pre-re/battleground/flavius/flavius01.txt index 0827719b3..fedea3680 100644 --- a/npc/pre-re/battleground/flavius/flavius01.txt +++ b/npc/pre-re/battleground/flavius/flavius01.txt @@ -23,7 +23,7 @@ bat_room,86,227,4 script Lieutenant Ator 418,{ end; OnInit: - waitingroom "Battle Station",10,"start#bat_b01::OnReadyCheck",1,0,80; + waitingroom "Battle Station",11,"start#bat_b01::OnReadyCheck",1,0,80; end; OnEnterBG: set $@FlaviusBG1_id1, waitingroom2bg("bat_b01",10,290,"start#bat_b01::OnGuillaumeQuit",""); @@ -33,7 +33,7 @@ OnEnterBG: bat_room,85,204,0 script Lieutenant Thelokus 414,{ end; OnInit: - waitingroom "Battle Station",10,"start#bat_b01::OnReadyCheck",1,0,80; + waitingroom "Battle Station",11,"start#bat_b01::OnReadyCheck",1,0,80; end; OnEnterBG: set $@FlaviusBG1_id2, waitingroom2bg("bat_b01",390,10,"start#bat_b01::OnCroixQuit",""); diff --git a/npc/pre-re/battleground/flavius/flavius02.txt b/npc/pre-re/battleground/flavius/flavius02.txt index 2dfb22b6f..bc9645029 100644 --- a/npc/pre-re/battleground/flavius/flavius02.txt +++ b/npc/pre-re/battleground/flavius/flavius02.txt @@ -24,7 +24,7 @@ bat_room,142,227,4 script Lieutenant Huvas 418,{ end; OnInit: - waitingroom "Battle Station",10,"start#bat_b02::OnReadyCheck",1,0,80; + waitingroom "Battle Station",11,"start#bat_b02::OnReadyCheck",1,0,80; end; OnEnterBG: set $@FlaviusBG2_id1, waitingroom2bg("bat_b02",10,290,"start#bat_b02::OnGuillaumeQuit",""); @@ -34,7 +34,7 @@ OnEnterBG: bat_room,142,204,0 script Lieutenant Yukon 414,{ end; OnInit: - waitingroom "Battle Station",10,"start#bat_b02::OnReadyCheck",1,0,80; + waitingroom "Battle Station",11,"start#bat_b02::OnReadyCheck",1,0,80; end; OnEnterBG: set $@FlaviusBG2_id2, waitingroom2bg("bat_b02",390,10,"start#bat_b02::OnCroixQuit",""); diff --git a/npc/pre-re/battleground/kvm/kvm01.txt b/npc/pre-re/battleground/kvm/kvm01.txt index 684df0e71..b69649944 100644 --- a/npc/pre-re/battleground/kvm/kvm01.txt +++ b/npc/pre-re/battleground/kvm/kvm01.txt @@ -25,7 +25,7 @@ bat_room,169,226,5 script KVM Waiting Room#a::KvM01R_Guillaume 418,{ end; OnInit: - waitingroom "Battle Station 5 Players",5,"KvM01_BG::OnGuillaumeJoin",1; + waitingroom "Battle Station 5 Players",6,"KvM01_BG::OnGuillaumeJoin",1; end; OnEnterBG: @@ -39,7 +39,7 @@ bat_room,169,205,3 script KVM Waiting Room#b::KvM01R_Croix 414,{ end; OnInit: - waitingroom "Battle Station 5 Players",5,"KvM01_BG::OnCroixJoin",1; + waitingroom "Battle Station 5 Players",6,"KvM01_BG::OnCroixJoin",1; end; OnEnterBG: diff --git a/npc/pre-re/battleground/kvm/kvm02.txt b/npc/pre-re/battleground/kvm/kvm02.txt index 5f6c118d3..d99741834 100644 --- a/npc/pre-re/battleground/kvm/kvm02.txt +++ b/npc/pre-re/battleground/kvm/kvm02.txt @@ -27,7 +27,7 @@ bat_room,197,226,5 script KVM Waiting Room#a2::KvM02R_Guillaume 418,{ end; OnInit: - waitingroom "Battle Station 5 Players",5,"KvM02_BG::OnGuillaumeJoin",1; + waitingroom "Battle Station 5 Players",6,"KvM02_BG::OnGuillaumeJoin",1; end; OnEnterBG: @@ -41,7 +41,7 @@ bat_room,197,205,3 script KVM Waiting Room#b2::KvM02R_Croix 414,{ end; OnInit: - waitingroom "Battle Station 5 Players",5,"KvM02_BG::OnCroixJoin",1; + waitingroom "Battle Station 5 Players",6,"KvM02_BG::OnCroixJoin",1; end; OnEnterBG: diff --git a/npc/pre-re/battleground/kvm/kvm03.txt b/npc/pre-re/battleground/kvm/kvm03.txt index 4b685be55..8cc26dc93 100644 --- a/npc/pre-re/battleground/kvm/kvm03.txt +++ b/npc/pre-re/battleground/kvm/kvm03.txt @@ -26,7 +26,7 @@ bat_room,225,226,5 script KVM Waiting Room#a3::KvM03R_Guillaume 418,{ end; OnInit: - waitingroom "Battle Station 5 Players",5,"KvM03_BG::OnGuillaumeJoin",1; + waitingroom "Battle Station 5 Players",6,"KvM03_BG::OnGuillaumeJoin",1; end; OnEnterBG: @@ -40,7 +40,7 @@ bat_room,225,205,3 script KVM Waiting Room#b3::KvM03R_Croix 414,{ end; OnInit: - waitingroom "Battle Station 5 Players",5,"KvM03_BG::OnCroixJoin",1; + waitingroom "Battle Station 5 Players",6,"KvM03_BG::OnCroixJoin",1; end; OnEnterBG: diff --git a/npc/pre-re/battleground/tierra/tierra01.txt b/npc/pre-re/battleground/tierra/tierra01.txt index 1723c8a8a..b6b3e4354 100644 --- a/npc/pre-re/battleground/tierra/tierra01.txt +++ b/npc/pre-re/battleground/tierra/tierra01.txt @@ -24,7 +24,7 @@ bat_room,57,227,5 script Lieutenant Kalos 418,{ end; OnInit: - waitingroom "Battle Station",10,"start#bat_a01::OnReadyCheck",1,0,80; + waitingroom "Battle Station",11,"start#bat_a01::OnReadyCheck",1,0,80; end; OnEnterBG: @@ -36,7 +36,7 @@ bat_room,58,204,1 script Lieutenant Eyor 414,{ end; OnInit: - waitingroom "Battle Station",10,"start#bat_a01::OnReadyCheck",1,0,80; + waitingroom "Battle Station",11,"start#bat_a01::OnReadyCheck",1,0,80; end; OnEnterBG: diff --git a/npc/pre-re/battleground/tierra/tierra02.txt b/npc/pre-re/battleground/tierra/tierra02.txt index aaa3b1722..867946181 100644 --- a/npc/pre-re/battleground/tierra/tierra02.txt +++ b/npc/pre-re/battleground/tierra/tierra02.txt @@ -23,7 +23,7 @@ bat_room,114,227,5 script Lieutenant Rundel 418,{ end; OnInit: - waitingroom "Battle Station",10,"start#bat_a02::OnReadyCheck",1,0,80; + waitingroom "Battle Station",11,"start#bat_a02::OnReadyCheck",1,0,80; end; OnEnterBG: @@ -35,7 +35,7 @@ bat_room,114,204,1 script Lieutenant Guerrit 414,{ end; OnInit: - waitingroom "Battle Station",10,"start#bat_a02::OnReadyCheck",1,0,80; + waitingroom "Battle Station",11,"start#bat_a02::OnReadyCheck",1,0,80; end; OnEnterBG: diff --git a/npc/pre-re/other/poring_war.txt b/npc/pre-re/other/poring_war.txt index 3df83e5a1..16cc55790 100644 --- a/npc/pre-re/other/poring_war.txt +++ b/npc/pre-re/other/poring_war.txt @@ -358,7 +358,7 @@ poring_w01,91,97,3 script Poring#wop_door_all 1002,{ end; OnInit: - waitingroom "[Recruiting 10 Battle Participants]",10,"Poring#wop_door_all::OnStartArena",10,500,9; + waitingroom "[Recruiting 10 Battle Participants]",11,"Poring#wop_door_all::OnStartArena",10,500,9; enablewaitingroomevent; end; @@ -381,7 +381,7 @@ poring_w01,91,68,5 script Poring#wop_door_a 1002,{ end; OnInit: - waitingroom "[Angeling Team Recruiter]",5,"Poring#wop_door_a::OnStartArena",5,0,9; + waitingroom "[Angeling Team Recruiter]",6,"Poring#wop_door_a::OnStartArena",5,0,9; enablewaitingroomevent; end; @@ -473,7 +473,7 @@ poring_w01,112,68,3 script Poring#wop_door_d 1002,{ end; OnInit: - waitingroom "[Deviling Team Recruiter]",5,"Poring#wop_door_d::OnStartArena",5,0,9; + waitingroom "[Deviling Team Recruiter]",6,"Poring#wop_door_d::OnStartArena",5,0,9; enablewaitingroomevent; end; diff --git a/npc/re/battleground/flavius/flavius01.txt b/npc/re/battleground/flavius/flavius01.txt index 0827719b3..fedea3680 100644 --- a/npc/re/battleground/flavius/flavius01.txt +++ b/npc/re/battleground/flavius/flavius01.txt @@ -23,7 +23,7 @@ bat_room,86,227,4 script Lieutenant Ator 418,{ end; OnInit: - waitingroom "Battle Station",10,"start#bat_b01::OnReadyCheck",1,0,80; + waitingroom "Battle Station",11,"start#bat_b01::OnReadyCheck",1,0,80; end; OnEnterBG: set $@FlaviusBG1_id1, waitingroom2bg("bat_b01",10,290,"start#bat_b01::OnGuillaumeQuit",""); @@ -33,7 +33,7 @@ OnEnterBG: bat_room,85,204,0 script Lieutenant Thelokus 414,{ end; OnInit: - waitingroom "Battle Station",10,"start#bat_b01::OnReadyCheck",1,0,80; + waitingroom "Battle Station",11,"start#bat_b01::OnReadyCheck",1,0,80; end; OnEnterBG: set $@FlaviusBG1_id2, waitingroom2bg("bat_b01",390,10,"start#bat_b01::OnCroixQuit",""); diff --git a/npc/re/battleground/flavius/flavius02.txt b/npc/re/battleground/flavius/flavius02.txt index 2dfb22b6f..bc9645029 100644 --- a/npc/re/battleground/flavius/flavius02.txt +++ b/npc/re/battleground/flavius/flavius02.txt @@ -24,7 +24,7 @@ bat_room,142,227,4 script Lieutenant Huvas 418,{ end; OnInit: - waitingroom "Battle Station",10,"start#bat_b02::OnReadyCheck",1,0,80; + waitingroom "Battle Station",11,"start#bat_b02::OnReadyCheck",1,0,80; end; OnEnterBG: set $@FlaviusBG2_id1, waitingroom2bg("bat_b02",10,290,"start#bat_b02::OnGuillaumeQuit",""); @@ -34,7 +34,7 @@ OnEnterBG: bat_room,142,204,0 script Lieutenant Yukon 414,{ end; OnInit: - waitingroom "Battle Station",10,"start#bat_b02::OnReadyCheck",1,0,80; + waitingroom "Battle Station",11,"start#bat_b02::OnReadyCheck",1,0,80; end; OnEnterBG: set $@FlaviusBG2_id2, waitingroom2bg("bat_b02",390,10,"start#bat_b02::OnCroixQuit",""); diff --git a/npc/re/battleground/kvm/kvm01.txt b/npc/re/battleground/kvm/kvm01.txt index 684df0e71..b69649944 100644 --- a/npc/re/battleground/kvm/kvm01.txt +++ b/npc/re/battleground/kvm/kvm01.txt @@ -25,7 +25,7 @@ bat_room,169,226,5 script KVM Waiting Room#a::KvM01R_Guillaume 418,{ end; OnInit: - waitingroom "Battle Station 5 Players",5,"KvM01_BG::OnGuillaumeJoin",1; + waitingroom "Battle Station 5 Players",6,"KvM01_BG::OnGuillaumeJoin",1; end; OnEnterBG: @@ -39,7 +39,7 @@ bat_room,169,205,3 script KVM Waiting Room#b::KvM01R_Croix 414,{ end; OnInit: - waitingroom "Battle Station 5 Players",5,"KvM01_BG::OnCroixJoin",1; + waitingroom "Battle Station 5 Players",6,"KvM01_BG::OnCroixJoin",1; end; OnEnterBG: diff --git a/npc/re/battleground/kvm/kvm02.txt b/npc/re/battleground/kvm/kvm02.txt index 5f6c118d3..d99741834 100644 --- a/npc/re/battleground/kvm/kvm02.txt +++ b/npc/re/battleground/kvm/kvm02.txt @@ -27,7 +27,7 @@ bat_room,197,226,5 script KVM Waiting Room#a2::KvM02R_Guillaume 418,{ end; OnInit: - waitingroom "Battle Station 5 Players",5,"KvM02_BG::OnGuillaumeJoin",1; + waitingroom "Battle Station 5 Players",6,"KvM02_BG::OnGuillaumeJoin",1; end; OnEnterBG: @@ -41,7 +41,7 @@ bat_room,197,205,3 script KVM Waiting Room#b2::KvM02R_Croix 414,{ end; OnInit: - waitingroom "Battle Station 5 Players",5,"KvM02_BG::OnCroixJoin",1; + waitingroom "Battle Station 5 Players",6,"KvM02_BG::OnCroixJoin",1; end; OnEnterBG: diff --git a/npc/re/battleground/kvm/kvm03.txt b/npc/re/battleground/kvm/kvm03.txt index 4b685be55..8cc26dc93 100644 --- a/npc/re/battleground/kvm/kvm03.txt +++ b/npc/re/battleground/kvm/kvm03.txt @@ -26,7 +26,7 @@ bat_room,225,226,5 script KVM Waiting Room#a3::KvM03R_Guillaume 418,{ end; OnInit: - waitingroom "Battle Station 5 Players",5,"KvM03_BG::OnGuillaumeJoin",1; + waitingroom "Battle Station 5 Players",6,"KvM03_BG::OnGuillaumeJoin",1; end; OnEnterBG: @@ -40,7 +40,7 @@ bat_room,225,205,3 script KVM Waiting Room#b3::KvM03R_Croix 414,{ end; OnInit: - waitingroom "Battle Station 5 Players",5,"KvM03_BG::OnCroixJoin",1; + waitingroom "Battle Station 5 Players",6,"KvM03_BG::OnCroixJoin",1; end; OnEnterBG: diff --git a/npc/re/battleground/tierra/tierra01.txt b/npc/re/battleground/tierra/tierra01.txt index 1723c8a8a..b6b3e4354 100644 --- a/npc/re/battleground/tierra/tierra01.txt +++ b/npc/re/battleground/tierra/tierra01.txt @@ -24,7 +24,7 @@ bat_room,57,227,5 script Lieutenant Kalos 418,{ end; OnInit: - waitingroom "Battle Station",10,"start#bat_a01::OnReadyCheck",1,0,80; + waitingroom "Battle Station",11,"start#bat_a01::OnReadyCheck",1,0,80; end; OnEnterBG: @@ -36,7 +36,7 @@ bat_room,58,204,1 script Lieutenant Eyor 414,{ end; OnInit: - waitingroom "Battle Station",10,"start#bat_a01::OnReadyCheck",1,0,80; + waitingroom "Battle Station",11,"start#bat_a01::OnReadyCheck",1,0,80; end; OnEnterBG: diff --git a/npc/re/battleground/tierra/tierra02.txt b/npc/re/battleground/tierra/tierra02.txt index aaa3b1722..867946181 100644 --- a/npc/re/battleground/tierra/tierra02.txt +++ b/npc/re/battleground/tierra/tierra02.txt @@ -23,7 +23,7 @@ bat_room,114,227,5 script Lieutenant Rundel 418,{ end; OnInit: - waitingroom "Battle Station",10,"start#bat_a02::OnReadyCheck",1,0,80; + waitingroom "Battle Station",11,"start#bat_a02::OnReadyCheck",1,0,80; end; OnEnterBG: @@ -35,7 +35,7 @@ bat_room,114,204,1 script Lieutenant Guerrit 414,{ end; OnInit: - waitingroom "Battle Station",10,"start#bat_a02::OnReadyCheck",1,0,80; + waitingroom "Battle Station",11,"start#bat_a02::OnReadyCheck",1,0,80; end; OnEnterBG: diff --git a/npc/re/other/poring_war.txt b/npc/re/other/poring_war.txt index 3df83e5a1..16cc55790 100644 --- a/npc/re/other/poring_war.txt +++ b/npc/re/other/poring_war.txt @@ -358,7 +358,7 @@ poring_w01,91,97,3 script Poring#wop_door_all 1002,{ end; OnInit: - waitingroom "[Recruiting 10 Battle Participants]",10,"Poring#wop_door_all::OnStartArena",10,500,9; + waitingroom "[Recruiting 10 Battle Participants]",11,"Poring#wop_door_all::OnStartArena",10,500,9; enablewaitingroomevent; end; @@ -381,7 +381,7 @@ poring_w01,91,68,5 script Poring#wop_door_a 1002,{ end; OnInit: - waitingroom "[Angeling Team Recruiter]",5,"Poring#wop_door_a::OnStartArena",5,0,9; + waitingroom "[Angeling Team Recruiter]",6,"Poring#wop_door_a::OnStartArena",5,0,9; enablewaitingroomevent; end; @@ -473,7 +473,7 @@ poring_w01,112,68,3 script Poring#wop_door_d 1002,{ end; OnInit: - waitingroom "[Deviling Team Recruiter]",5,"Poring#wop_door_d::OnStartArena",5,0,9; + waitingroom "[Deviling Team Recruiter]",6,"Poring#wop_door_d::OnStartArena",5,0,9; enablewaitingroomevent; end; diff --git a/src/map/chat.c b/src/map/chat.c index 9a59950d4..5a0f1123e 100644 --- a/src/map/chat.c +++ b/src/map/chat.c @@ -119,7 +119,7 @@ int chat_joinchat(struct map_session_data* sd, int chatid, const char* pass) nullpo_ret(sd); cd = (struct chat_data*)map_id2bl(chatid); - if( cd == NULL || cd->bl.type != BL_CHAT || cd->bl.m != sd->bl.m || sd->state.vending || sd->state.buyingstore || sd->chatID || cd->users >= cd->limit ) + if( cd == NULL || cd->bl.type != BL_CHAT || cd->bl.m != sd->bl.m || sd->state.vending || sd->state.buyingstore || sd->chatID || ((cd->owner->type == BL_NPC) ? cd->users+1 : cd->users) >= cd->limit ) { clif_joinchatfail(sd,0); return 0; diff --git a/src/map/clif.c b/src/map/clif.c index 7b3e9e650..dcb74304c 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -321,9 +321,16 @@ static int clif_send_sub(struct block_list *bl, va_list ap) break; case AREA_WOSC: { - struct map_session_data *ssd = (struct map_session_data *)src_bl; - if (ssd && (src_bl->type == BL_PC) && sd->chatID && (sd->chatID == ssd->chatID)) + if(src_bl->type == BL_PC){ + struct map_session_data *ssd = (struct map_session_data *)src_bl; + if (ssd && sd->chatID && (sd->chatID == ssd->chatID)) return 0; + } + else if(src_bl->type == BL_NPC) { + struct npc_data *nd = (struct npc_data *)src_bl; + if (nd && sd->chatID && (sd->chatID == nd->chat_id)) + return 0; + } } break; } @@ -3512,7 +3519,7 @@ void clif_dispchat(struct chat_data* cd, int fd) WBUFL(buf, 4) = cd->owner->id; WBUFL(buf, 8) = cd->bl.id; WBUFW(buf,12) = cd->limit; - WBUFW(buf,14) = cd->users; + WBUFW(buf,14) = (cd->owner->type == BL_NPC) ? cd->users+1 : cd->users; WBUFB(buf,16) = type; memcpy((char*)WBUFP(buf,17), cd->title, strlen(cd->title)); // not zero-terminated @@ -3550,7 +3557,7 @@ void clif_changechatstatus(struct chat_data* cd) WBUFL(buf, 4) = cd->owner->id; WBUFL(buf, 8) = cd->bl.id; WBUFW(buf,12) = cd->limit; - WBUFW(buf,14) = cd->users; + WBUFW(buf,14) = (cd->owner->type == BL_NPC) ? cd->users+1 : cd->users; WBUFB(buf,16) = type; memcpy((char*)WBUFP(buf,17), cd->title, strlen(cd->title)); // not zero-terminated @@ -3612,7 +3619,7 @@ void clif_joinchatfail(struct map_session_data *sd,int flag) void clif_joinchatok(struct map_session_data *sd,struct chat_data* cd) { int fd; - int i; + int i,t; nullpo_retv(sd); nullpo_retv(cd); @@ -3620,13 +3627,24 @@ void clif_joinchatok(struct map_session_data *sd,struct chat_data* cd) fd = sd->fd; if (!session_isActive(fd)) return; - WFIFOHEAD(fd, 8 + (28*cd->users)); + t = (int)(cd->owner->type == BL_NPC); + WFIFOHEAD(fd, 8 + (28*(cd->users+t))); WFIFOW(fd, 0) = 0xdb; - WFIFOW(fd, 2) = 8 + (28*cd->users); + WFIFOW(fd, 2) = 8 + (28*(cd->users+t)); WFIFOL(fd, 4) = cd->bl.id; + + if(cd->owner->type == BL_NPC){ + WFIFOL(fd, 30) = 1; + WFIFOL(fd, 8) = 0; + memcpy(WFIFOP(fd, 12), ((struct npc_data *)cd->owner)->name, NAME_LENGTH); + for (i = 0; i < cd->users; i++) { + WFIFOL(fd, 8+(i+1)*28) = 1; + memcpy(WFIFOP(fd, 8+(i+t)*28+4), cd->usersd[i]->status.name, NAME_LENGTH); + } + } else for (i = 0; i < cd->users; i++) { WFIFOL(fd, 8+i*28) = (i != 0 || cd->owner->type == BL_NPC); - memcpy(WFIFOP(fd, 8+i*28+4), cd->usersd[i]->status.name, NAME_LENGTH); + memcpy(WFIFOP(fd, 8+(i+t)*28+4), cd->usersd[i]->status.name, NAME_LENGTH); } WFIFOSET(fd, WFIFOW(fd, 2)); } -- cgit v1.2.3-70-g09d2