From 76e80c8fc7e3273d670426fc6a2dca9238ab2895 Mon Sep 17 00:00:00 2001 From: Jackz Date: Wed, 16 Aug 2023 15:57:10 -0500 Subject: [PATCH 1/3] Cleanup --- scripting/l4d2_crescendo_control.sp | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/scripting/l4d2_crescendo_control.sp b/scripting/l4d2_crescendo_control.sp index c2221f6..1b7553b 100644 --- a/scripting/l4d2_crescendo_control.sp +++ b/scripting/l4d2_crescendo_control.sp @@ -64,6 +64,16 @@ public void OnPluginStart() Action Command_DebugGroups(int client, int args) { PrintDebug("Running manual compute of groups"); + if(client == 0) { + PrintDebug("Ran from server console, using first player on server"); + for(int i = 1; i <= MaxClients; i++) { + if(IsClientConnected(i) && IsClientInGame(i)) { + client = i; + PrintDebug("User: %N", i); + break; + } + } + } float activatorFlow = L4D2Direct_GetFlowDistance(client); Group groups[MAX_GROUPS]; GroupResult result; @@ -184,7 +194,7 @@ bool ComputeGroups(Group groups[MAX_GROUPS], GroupResult result, float activateF if(!inGroup[i] && IsClientConnected(i) && IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) == 2) { float prevFlow = L4D2Direct_GetFlowDistance(i); GetClientAbsOrigin(i, prevPos); - ArrayList members = new ArrayList(); + groups[groupIndex].members.Clear(); for(int j = 1; j <= MaxClients; j++) { if(j != i && IsClientConnected(j) && IsClientInGame(j) && IsPlayerAlive(j) && GetClientTeam(j) == 2) { @@ -194,28 +204,27 @@ bool ComputeGroups(Group groups[MAX_GROUPS], GroupResult result, float activateF float dist = FloatAbs(GetVectorDistance(prevPos, pos)); float flowDiff = FloatAbs(prevFlow - flow); if(dist <= hGroupTeamDist.FloatValue) { - if(members.Length == 0) { - members.Push(GetClientUserId(i)); - PrintDebug("add leader to group %d: %N", groupIndex + 1, i); + // Add user as leader to group: + if(groups[groupIndex].members.Length == 0) { + groups[groupIndex].members.Push(GetClientUserId(i)); + inGroup[i] = true; + // PrintDebug("add leader to group %d: %N", groupIndex + 1, i); } - PrintDebug("add member to group %d: %N (dist = %.4f) (fldiff = %.1f)", groupIndex + 1, j, dist, flowDiff); + // PrintDebug("add member to group %d: %N (dist = %.4f) (fldiff = %.1f)", groupIndex + 1, j, dist, flowDiff); inGroup[j] = true; - members.Push(GetClientUserId(j)); + groups[groupIndex].members.Push(GetClientUserId(j)); } else { // PrintDebug("not adding member to group %d: %N (dist = %.4f) (fldiff = %.1f) (l:%N)", groupIndex + 1, j, dist, flowDiff, i); } } } - if(members.Length > 1) { + if(groups[groupIndex].members.Length > 1) { groups[groupIndex].pos = prevPos; - groups[groupIndex].members = members; groupIndex++; PrintDebug("created group #%d with %d members", groupIndex, members.Length); if(groupIndex == MAX_GROUPS) { PrintDebug("maximum amount of groups reached (%d)", MAX_GROUPS); } - } else { - delete members; } } } From 4eea4871f0953e7d526c59098feff7677c05a71e Mon Sep 17 00:00:00 2001 From: Jackz Date: Wed, 16 Aug 2023 16:05:20 -0500 Subject: [PATCH 2/3] Use centralized group instance, show ungrouped --- scripting/l4d2_crescendo_control.sp | 51 +++++++++++++++++------------ 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/scripting/l4d2_crescendo_control.sp b/scripting/l4d2_crescendo_control.sp index 1b7553b..d1c3a7c 100644 --- a/scripting/l4d2_crescendo_control.sp +++ b/scripting/l4d2_crescendo_control.sp @@ -30,6 +30,8 @@ static bool panicStarted; static float lastButtonPressTime; static float flowRate[MAXPLAYERS+1]; +static Group g_groups[MAX_GROUPS]; + public Plugin myinfo = { name = "L4D2 Crescendo Control", @@ -59,7 +61,9 @@ public void OnPluginStart() AddNormalSoundHook(SoundHook); RegAdminCmd("sm_dgroup", Command_DebugGroups, ADMFLAG_GENERIC); - //dhook setup + for(int i = 0; i < MAX_GROUPS; i++) { + g_groups[i].members = new ArrayList(); + } } Action Command_DebugGroups(int client, int args) { @@ -75,9 +79,8 @@ Action Command_DebugGroups(int client, int args) { } } float activatorFlow = L4D2Direct_GetFlowDistance(client); - Group groups[MAX_GROUPS]; GroupResult result; - ComputeGroups(groups, result, activatorFlow); + ComputeGroups(result, activatorFlow); return Plugin_Handled; } @@ -126,9 +129,8 @@ public float GetFlowAtPosition(const float pos[3]) { public Action Event_ButtonPress(const char[] output, int entity, int client, float delay) { if(hEnabled.IntValue > 0 && client > 0 && client <= MaxClients) { float activatorFlow = L4D2Direct_GetFlowDistance(client); - Group groups[MAX_GROUPS]; GroupResult result; - ComputeGroups(groups, result, activatorFlow); + ComputeGroups(result, activatorFlow); PrintToConsoleAll("[CC] Button Press by %N", client); AdminId admin = GetUserAdmin(client); @@ -175,7 +177,7 @@ public Action SoundHook(int clients[MAXPLAYERS], int& numClients, char sample[PL public void Frame_ResetButton(int entity) { AcceptEntityInput(entity, "Unlock"); } -bool ComputeGroups(Group groups[MAX_GROUPS], GroupResult result, float activateFlow) { +bool ComputeGroups(GroupResult result, float activateFlow) { float prevPos[3], pos[3]; // int prevMember = -1; // ArrayList groupMembers = new ArrayList(); @@ -194,7 +196,7 @@ bool ComputeGroups(Group groups[MAX_GROUPS], GroupResult result, float activateF if(!inGroup[i] && IsClientConnected(i) && IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) == 2) { float prevFlow = L4D2Direct_GetFlowDistance(i); GetClientAbsOrigin(i, prevPos); - groups[groupIndex].members.Clear(); + g_groups[groupIndex].members.Clear(); for(int j = 1; j <= MaxClients; j++) { if(j != i && IsClientConnected(j) && IsClientInGame(j) && IsPlayerAlive(j) && GetClientTeam(j) == 2) { @@ -205,21 +207,21 @@ bool ComputeGroups(Group groups[MAX_GROUPS], GroupResult result, float activateF float flowDiff = FloatAbs(prevFlow - flow); if(dist <= hGroupTeamDist.FloatValue) { // Add user as leader to group: - if(groups[groupIndex].members.Length == 0) { - groups[groupIndex].members.Push(GetClientUserId(i)); + if(g_groups[groupIndex].members.Length == 0) { + g_groups[groupIndex].members.Push(GetClientUserId(i)); inGroup[i] = true; // PrintDebug("add leader to group %d: %N", groupIndex + 1, i); } // PrintDebug("add member to group %d: %N (dist = %.4f) (fldiff = %.1f)", groupIndex + 1, j, dist, flowDiff); inGroup[j] = true; - groups[groupIndex].members.Push(GetClientUserId(j)); + g_groups[groupIndex].members.Push(GetClientUserId(j)); } else { // PrintDebug("not adding member to group %d: %N (dist = %.4f) (fldiff = %.1f) (l:%N)", groupIndex + 1, j, dist, flowDiff, i); } } } - if(groups[groupIndex].members.Length > 1) { - groups[groupIndex].pos = prevPos; + if(g_groups[groupIndex].members.Length > 1) { + g_groups[groupIndex].pos = prevPos; groupIndex++; PrintDebug("created group #%d with %d members", groupIndex, members.Length); if(groupIndex == MAX_GROUPS) { @@ -283,19 +285,27 @@ bool ComputeGroups(Group groups[MAX_GROUPS], GroupResult result, float activateF PrintDebug("===GROUP SUMMARY==="); for(int i = 0; i < MAX_GROUPS; i++) { - if(groups[i].members != null) { + if(g_groups[i].members.Length > 0) { PrintDebug("---Group %d---", i + 1); - PrintDebug("Origin: %.1f %.1f %.1f", groups[i].pos[0], groups[i].pos[1], groups[i].pos[2]); - float groupFlow = GetFlowAtPosition(groups[i].pos); + PrintDebug("Origin: %.1f %.1f %.1f", g_groups[i].pos[0], g_groups[i].pos[1], g_groups[i].pos[2]); + float groupFlow = GetFlowAtPosition(g_groups[i].pos); PrintDebug("Flow Diff: %.2f (g:%.1f) (a:%.1f) (gdt:%.f)", FloatAbs(activateFlow - groupFlow), activateFlow, groupFlow, hGroupTeamDist.FloatValue); - PrintDebug("Leader: %N (uid#%d)", GetClientOfUserId(groups[i].members.Get(0)), groups[i].members.Get(0)); - for(int j = 1; j < groups[i].members.Length; j++) { - int userid = groups[i].members.Get(j); + PrintDebug("Leader: %N (uid#%d)", GetClientOfUserId(g_groups[i].members.Get(0)), g_groups[i].members.Get(0)); + for(int j = 1; j < g_groups[i].members.Length; j++) { + int userid = g_groups[i].members.Get(j); PrintDebug("Member: %N (uid#%d)", GetClientOfUserId(userid), userid); } - delete groups[i].members; } } + if(result.ungroupedCount > 0) { + PrintDebug("==UNGROUPED SUMMARY==") + for(int i = 1; i <= MaxClients; i++) { + if(!inGroup[i] && IsClientConnected(i) && IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) == 2) { + PrintDebug("User: %N (uid#%d)", i, GetClientUserId(i)); + } + } + PrintDebug("==END UNGROUPED SUMMARY==") + } PrintDebug("===END GROUP SUMMARY==="); // delete groupMembers; @@ -306,10 +316,9 @@ bool ComputeGroups(Group groups[MAX_GROUPS], GroupResult result, float activateF public Action L4D2_CGasCan_EventKilled(int gascan, int &inflictor, int &attacker) { if(hEnabled.IntValue > 0 && attacker > 0 && attacker <= MaxClients) { float activatorFlow = L4D2Direct_GetFlowDistance(attacker); - Group groups[MAX_GROUPS]; GroupResult result; PrintToConsoleAll("[CC] Gascan Shot by %N", attacker); - ComputeGroups(groups, result, activatorFlow); + ComputeGroups(result, activatorFlow); AdminId admin = GetUserAdmin(attacker); if(admin != INVALID_ADMIN_ID && admin.HasFlag(Admin_Custom1)) { From b1460d7b83939be8b8d45767010cc644167b8858 Mon Sep 17 00:00:00 2001 From: Jackz Date: Wed, 16 Aug 2023 16:06:03 -0500 Subject: [PATCH 3/3] Fix errors --- plugins/l4d2_crescendo_control.smx | Bin 10794 -> 10910 bytes scripting/l4d2_crescendo_control.sp | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/l4d2_crescendo_control.smx b/plugins/l4d2_crescendo_control.smx index 058b1c7e5351dfd7839566541c5c740e511b4c73..0ffa5f81b9584161b8ecfa1a82f5876989684161 100644 GIT binary patch literal 10910 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 T$tmYK%k(xC!;rT-@a}&A+vmn- delta 10620 zcmXw62Q*yY*PT%#IziM4q6di@Jw>lkf?y0ml+hx3dn6G;^ctdf!f1o&iA0SIqxaFf z8NKt(|F_on*4k_D{ocFhoO|xOYu%UivdjojRefPd00s*Rf<%GZc>(P9P8)p5b^n z*MWGBz~c`7;deYI;n9KD_wiha$1+~4yT>e-KEVq?Q9r4hF`()&jUWKQcd&`gM!uctTyZ-dci= zK!}L%-e-ub?Ta|)r3V{0iGu=W@pNWX3pgq6W06F?IY3wAWqx8Sgs>b78K6%9O^g-6VCy=_h8!jF_ayFPv{0oe06+_y5#P31So{~$cOkyg-A1W zG~exLrt4^??PzB2$d58>DFRvE4`Cw5xKLpziE+ooxNo4jA<$ekXl@TQR|=Y&1kD+N zu&+T_O%PTUgw+Kh6z@FT1-Gb!L>W7PX|@hlGE5MPo(ys#CVhVCo1G&LKC^8H?C8m|3Lyoyaj;W)W=D$jqJH$8P2kC^q?BEt1a7!-8 zQZU5lama}=2&)XjdV;VPAnY>`)&qn!17VFps5HZjak>sTIpz<6FOWgtD@WkV4Q>en zw`hZ~?jYVI6R{Ylqd>afvSpWa^Ky>DARmyG55kQ3VCc+() z{I6;FK;rmhlD-Iyskp6F4FJ?$@yE`qZfxXrVqB6Vy`|~WDA`SMY5sLkiH+_P_5ri6 zMJy|K)vcSyRCf{Q_gckVaNtQdDZRI_n=VE<>l^K$e^dcFDeinZ-L$FLKoNU>lZyS50yIxN|fyRnpHWf7Wud z(5KFK<0m6lkz9E-s>F>tAjm0$*f@aAthKoAaD(Nfv3dC#3%s=~KZ!|^N_p8HuAdKi z(A|@A?X6Qjmyh_Ks2tMMK+{3Y{iBP9cUA{fnNY~3}$j0{-ti(wF%xkUR!i1OVZw! zZfQ&L*;-?0?Z(!$R`J#%+_|zZcyAEBarr|WmwH?2!8;j_xQ0I_CdlK)cLtLUE8n`4 zJf|OYJ7pD26HNudzZM6%r0twG@1#Xj#kpifQ+<51@B#DmqHJKx?lsd@@U_j<*t!(It|3bfw+mymajVC2qoaL>=Jric=zCAlw1+eYAh8lEEtrW&*tq55vN2{*76N zr=sR88$*EQS@oI-2jOv3R)ZeAlnteL8qs>2QZUGen6Rwb;+pH@CaLJnfT=a6Gt%B9n8O7#ISU<|b!5 z1H*~|?<|)OP<8&Ij#n^luZ^uvp;$f9{H=Mj`MDfRm{B5r#o1PxMYh0(V}x)!mnx$` z6PYm!#n~>ymSD4TpG~Nn^FR1T6m}u_NT}svU~h-|bm#9MpYm?-0rJr+v*+V)xEqG) zge*)~CQ((0%I^iUjX)lc0kg?p>P8gHeEOy5#bGrS+zz2NW4KmZe%^A=U!!kUkKH;n zv#tKz&KDY0T&X3`P|!cxRD`=!NeC>lP-E`=AUfwD5wIvSuOW3 zb-Mhd(C~b}W;>e}HM@mgvoS_jinJW47m9q(3IkfdpM^Xx2a2a3wg=7E`pf=*6Spt2 zMn~5cR#>jH`symOTpKPurfQo!g37xET-vS(Scbn%KwD>DX{4U`W|bthTKeScp{`E8 zG2ymV8d^ECcic`C#`jQ}lXL9@_6QANe&n#BEfPAiHf%%*^;zp3Wk8--LD{|55@Dhn zetLjfU6ae(qkBE|f9Y>lD`718!!8`7;;gW@LOI#BF4J0K94;rXimny=lWY>lrj~q_ zyf$on-jp^Nmm(EQ?ZQPJubU>*IHos(t)$>ZW;UZ}vuVWmlz9N+e5GE15kr67hTX9A z8Mv1kIyTjYVqeOx*MSF0ZRbg)&Rd$x+yG_0&tcuIu$s3!W5n}Qf%P8KhRA0*S~cnN<#4ciY=##(V14JDQ=cjDX%na z5Y|_(A=RhS4V&hBp8n>4eCp->&EZa{jEk4}g+3k^QZ?iU8#J z4ssC;^&v6&r)W&pWPx|GvduOo$Hav`*t{r%M^9uWSebfX`D<@UAuG93R^3N zo1+`0aM`Pa;y?I-=geUjDRIFf8`hVt*qP*X0%pLu+u>RF|w@o&3)4#!m z=cUh#gqIq+OfF${*WJuZ1zjeTuv)1e+`#Gq-Th?oPI_4pZK;`>frV-vAU#wnN%Nzo z4Wpty9H%WE0iv7H3E4$WCK^kw#%S9^L5G(YrCnhyGDqoeqA3NAR(wedM~wnc47~*ba}|OrD+HV5Q{j@#fxPv-YrOi}vv0 z3_P)T%PzeLE2}ep)+ejb8k_QxPu8{En<|>_>c@9OK=&QfiUH$#V^g$bI^eSx>3tU zX0C|Bjj_g0qeAn98~X}zBL7iRa#FxOXd5YdB_L_ogStMC0U9{em*i~1h?@SBC+V7M z2Q00QY?KT)OMJR5!zXRV66N115nZ3#t@iGsXn00(Q=$POJFru$`|hH0*n(NRxcY&G z{}JcOsn}r~eA9qKHq80e`9xI804KBC-hsb!ZxtVK4;73$LFEC+3f1bKk>ct$ZLYlCL*Ab zppm2z+(_Ig9;@`xF)-)2HS(^rE<`J2D?}~?$CU*31icQi z?0C~b)j?xLZ3VeU_?Y6cgZY_-RMvo2L_3yo2EBsYgM9fl|9sIRQ>LF9{c1N_pb>fn z;*Q;d+AP3hA8Acc^rx2{cOD_Qlt1`PSZ_{~o;#nnYOt%~ z^{+lBzuP}rl98{-NoMm@aFL3vc^y^Cmhi+YA;)fUV}T6yp+H(0 zJ?-VexZlAQ-;)dee)Tj?G(>Y~#WD^WYmKo#Q;N$_mqVC_Y5JL61Y`}JC)vfPPN(#n z#)T~nmh~p)2R$^I$mTbV$!bV~h~~_W{PJZXOxGzIjWb%B4&VQZKPmuEL{a|XXEIqU zlE@-%`m-ZN1^yTWY~JPcutPRY`m*jdmx+g9zpitHUv@;&1=jZNLfsY!}jtT-IVne8d&joMJwA7=%ge}t&rf4I=q)yq2p>BtBf4vE4q<`}898%P6hYeULI&cm%t zKp#TnF)kgiIv6@;!%stXh#ua$OTb3(jmUy%hCo6pU*3ww{jNKUJF`3MU=5KJZ5$CB zn2orF%9q~VnG85NkitC15Ml0P?qDP^6qpAXHVk{m9gI8%_(ivCzxMR+UO}dSca3rg z)Q&Y;_r5rCKW;HuG2Zx9+5TkD$a3?iM~Xv+51ul7*yV|wME=~Y3{o1Oup5Rd7`&?R zHU|d|M3Ao9820OsCm9yfW@%XV@sp0)x8G*{`Z1o$fpx{YdEl$lGN-w2QOlbQe(Jvn zv7HsEcplL%7$9JG;!_hJ`=?3yg{&Th;%S|d(UYP``MUn3?2seuVM|Dc%ArAet~>$D zlK=aV;ET);#?XpuKSeInEQVm4PkYQ^sF+ym=z66bUDQwQ)JzWvuwCz-5o>JCQpkqF zorB-6@-wp_25;g5^>W&LM@`;Pr$g!`6+17jNR16iC4q3M;hFFc<+H)F3&cp$T|JYG zlOs`^SQ!NkhMM&ahqsGyZ<&uzr|7VM!)|U)=5F{6A`h9ixi)-6(AoX6#AbEv1j$#w zl?kd#fahRVGv7HHIaBzz{UrgnV6Kx@-`?O za^R94Is?Qlp!SbU1n<*4;u~KTFMNAfz^SvSFhU8;{l9(BpQ$;lAfQK7T5Z9Zm!97L zhIfOx+g;G4@BS=XzV~m<$7!yR;CpBWKdBl?c=VfX+xz9myJCsdo*x={$YM>t+;h@a zQRQ2Zi=@SQkjBS4CA)p`Png~FKv*d%b8rjDy$3YFW%Rw#$%XOAo%?-qGEM|6231vg z1{K2NPqleOxf!8Y1guQiB3bV4*Q%PtcmpX)M|0AOUUk}{0gd>yA5%jFe`U|_kU?8m#HUFgf8QdCn47V>Muzm*(w`=DSRb8#u{XF_bZfC>biGUY zcO>wI$%Ds?igl~$=z?c4#-;RO+NSZI2S@c^qUcKK7-CUbe#5w`IcdPaZ4i}^{P~IK zK2JCA+cGwlli7?2`L)UI;ZbFg;;CvO@`?wHE>j)sA1)$eQ`q=YCEp0%P@i8Yacmg+ zahH*lJS_;aSIPQ(3YM!bkNafId_PZJfU*Hd7ye1e7J}7Mr8XlS;n3--kMv&7N%kIb zZ@vw#=6S#uADOhTFWGJ@oH@Yv0@X+?Bx|M{XZ~|aUhW^VEp9-4cM~ucWB%!qcvosh zwf6x!Yo?^>iF`z`r>rRY=@Q|UTkP={1?G*r{r87$Y&M(V+ZsIM@25f&49cex<<+Ku zS(ee@@b!4frx#!5(o|kBZiU+xGGqr<$dOw%isZpwo%J1fGmz4Hy4@g$) z`);**_o?dWntJ#OZ&xB!0!?R5f>3`skfd9gHz$wqhiPLEKg5 zG3DN}K@SzOJeaZJb1oXZj%B$UP7k`(@BDa_La5_XP9uwtrmCb-#WOSoP}Y@p;k#3f2p*)-PdC-puYzR zTYN7?HIZMq7fYYvp)KA!r0r@kmzkclwg?DeMeEWpMN}Gk=Yw6v{Mz9ey{KI3G&Y;8 zhi9!#nVgDxt6H2fqV0t8Nc2ON&C{zj{4Y=3rnnayUmHOnQ}t?bNI<9(sRcFhDHm?i zxbrj!BiGZ=m^FVBT$43#?vV{Nqf*zV4}*V4w8%}0$7at;6DVn6V#Nt!QbFxhr(zhP5G*(tzz@AAG5(N)#1qs6 zn#S*X2`f6>xrO5Jb_2*Be8Ykh?l>6Bz1B`QX6^dNL_)gM$=#ei{UdW&)O80kiJXqG zvD^7QN+QfR8{~pDaQVC>mi@U?zcB8-CR46+m#_R$f?3P%$5a-90vDUtVwvpy%tMvC z)W7}nPz(wKGhBeId31_Mlfc{gG`df6;b`Z74%hBZ6Pa&Fcr$%ycQ#*zd!4`F%=Ahs zV>R=rQ-1d^LN%X6#=8Ge-j=_AK)xQc9<$6$o%z)?@#gsvYhI=*p8;!AKpsR)QMr`b zQ!PC6*OmjW%#qS>ca;#_V#j9K^9rPCcr>z9r zUaP(J<=dJVW9t@&`$<&HL-tvpj|||B@e4@9X0Ckov4I!lcbmj4AMKms%9=E9^`SM| zV!50P!`#0C}{$3Cq$GJixevkhfhMiOem``4@T(}=ctv?ZgxwXpCC_h zlsk27r2Vezv`O-b#;96bgr7+Y-_#S9rV3Wd#G!mkBuI;yl$uk+PY&8^G$IA4)>CYb2K#cuJ5b%k0KedHqR;g0Ih zlZ;1AsMbp?{JZ&xiI;GRiUdV=QSra(8vFhvaKhU=rlnCx?{#Q`k{iP@wobjX;ZDD@ zgoJ{W2HG2F_nH>7E=2)#&Z5hQ=K3$c8)APiNyyRB`EEDG>4^lmG>8GR_%VtC^1J>fErfJjca1*63MP2W zzQf#WM>}x1B%Tpe*~ir!Ro>`(${;|!!l2%^XCKq$*_|1|w3AmmEL-*GfRE0T0xopuEm$#s>taax4@mE`ulWgBB;dOJep{3iB8ZCjY7^d}x>rGPUG@ykx)q`sZ43^7EK0%K2b3KFQ@XxnR!FalR{kZft5xuLUM@~6$$`GM z(Z_TLyj<~NvNeLLc@YYI>+j_z`aV}%z!6*M$Nq;{=ZV41$G^M=w8!(JE4RPikA9=d zonTn3Wvc5%=%v7+cR*pZ8YHdL{N<&m1b5{fPB*(@GP{+WmX*6wg_lI74?oYT_g21- z2c|0i`Z}q<_mN6aO>s^8EryIUPU)`F)V-~_BBG>8?7MWQPEmlkOZ^FP@aKn)INR_Y z$$Act9=&&zGCg-#(m3h!G+%hBCipMD7`CT*D9tO^)^OgXS{D%^Yx}7)*W>{DCrl^T zy%C&B>BU=#YiHgRXK`mJpMT>j{_7}+Bm$tMTxbe}WiIzfr!AO5A6bNdBfhj>UOQo~ z7FPcg^O2FRkjD6?4>@UnD4FIdO~}LQ-t7+kFk+WZc|-{%->Avm9hG0;&3Dty4-n7G zu)Zw5<#on|`}N5cA<4;g#OgKs)8)nX0CMucscPUdWT-+J{e*p8x^RIqclTUgs|YYp zq!lOqOOw0-ci1!zLSW&ys6VE&Xpf+k6UYtQ2i#$;lObanL7cZ*CYUxerpFyVt}U~k zujZzhLL04Pnjn#3P0@i3U)^r6kZ$7i2-9*EM@))U-*@~@OSdkg@=E7CFYf)jw5p@h z=P=ePSOJd=%26Lh6#|_#AD&US%mE4Okz7Kz({?qIyoyuji(JHIrt;LI`dpGqqPRqw zIO5i$xJ1hih(G`0C&-sBQxYAztD9o~rRoneGQXpV9ok@*2w8 zxrbO(tnTRO*Qx5WCg&o;&F=f>iycb-6sP;6pIy(&_D5erEuLlNCP~>#dD;$eH&XMW zkFIRz*XKaSR|2p+g{Cz%%9!I4ktTcHyf)R(>OPJzdqnDbbp2oc_xbC|d5wB3Y`sBK z7>AgLDxUWlBR3V{?zSgdBx*h*Zz6GuZth7Za1u3tnAqbf?ym;FPs~Zwg4*rfmrq{G zK(m5_!nit$bz%s{GuX(24Riskc^ePqG-(;Zf(rv%-=5|5xJrR%mj%80i)-33cYvW~ zhdpv$wJ+_?9wX}QV$b52+|t<;3<3b?LzVcOk!AJ$Enc<65g?Mk^ybb>v}oiD+cQ#L zwN${?M(RC!Ya5eg30xF8wA^ zm3*Z~et*;NzrL}VU;4z5+qVTQG`B4@2bWdupZf%k$Bvs=D$T#}yGp>G*S2l>unHld zL546}t3VDSYl_ouYCrj-QFe#<-0HN>cgH@VYN4q7>v?+SI+nTd_%#+d_QiG8P{8oq zjhY-QGO{wQ`(*DXYz0WNz2-V#<)5qDMXZy5@YpnvIhys@MD+_Geph&G@%xA6_xiHn83is#cP06;*~%JgOXT!|^a*g>8&E-IeCi`E&hm8K#rx zpMqA}DmvX!D&QWlVCvo5x2PAkl}n0tu?=Xdi{BaXkKZs+4hCS!^wDj+FzG<3uBLBz z+egj-RhV<45yiC%U(*&(I{k=Z%_C1(-OhaEj*=Trlr1Q6j)Ul$@WUD!l7I!ZJ%Lq$ zZsa}ydu!$-H}6pp=F2E~TVS2ZyG=(gB;+P-n-kYw3|*#~&j_Ae)mx7;#oRn`qy1!R zf*^!3f^SNJpY0q6_J_ngI3LIB@jX%XmC$xIJ`2!|+IbVnso(}R4k$wCg|zD()1IPw zMV_UMJ4jQVic(y^OoR;5Q)3_r(1J{P*;1<0_P8%0Hwn6}AYN#rA*x+>^b7bJ{sD+y za$6Sw;Q$^$Hr&q7GiKYE;6|E-5CdU$HgOwb0&FDo9A_Sq-pBf-tYy5kzBSrxDw3A!?aG73dTDCzV`R-<5mG@zzP$^`u&5TcasQ63hLfG?}fne zL)(1>(Fk~+sFKvR;7kWb1eON5kz~R5H7*NS!$a2MgNTDWmWL152w_B28G&@NS0S$e z1}PyCL|(ka@P%SQO2jj4Z-90dLQ6vVTP zJ{4|+2=Oyv6bD9x zRtk~;{^Hk{HQz{pJs}U4Jw&e~sQu}V!wT%#_N(4Trc=mJBUuqb1~6=!x$NHOS=Kstn1c|8v+~{V6eCcuRTnY?9tA{ZW!~Eax+zl!_CzR3uvOOL@ z>I^hE{8YXUa3j6g8JC+7&D^AEzkgbT5n|si=F$_}^-Z{Xd9875;-Y6Aq#BG7*fZCw zo!@-b8C-6HBl}rARt14u_6KkOHamt@^Iw$b@?Y@zuWDUy*d|>KmGWQY7wL8lWNxRv z#^cz#2Ik+Ic!i$SJ=T(zn}mefY{w=5?+qUvYlYivr>+~(>}!n^!SGG_L2q-T%;ysa zi@fE!^;+o;;dM?g-@CxHso6j99qzDk{qOuk>nggTaZfz0dM(GXm) z87au#;S#e20> zMQQxt@p#=$YfGgd7)tRo)_PDEqnpbCss0dg#j=i3E=-qi*;Wot<=c3(%z7Ft^K)6#s zrnPGY+bGZ%FOQHWej6qOl;Y(n2dubu6AvV{Z_6P(17tQrC=vtvRD}65ORN(Xve6Nq zY@uf%e=FfmwsMuFnEj`mbGs{Nc~lP2JX(R>VyY1Z&Zu2Dd82OfyJ*#K36ljLXpa_` zT+w2!?>!piM@dS>THibXlNEa%%U{{?6~-^+^Xct?yxo_O_+TeMvp3QBRGR6G=$Um$ z*>-rWrCe^rLq;mzZJmxbf5p;13-U!OPL`{S^yIjJC)+fyf2ajif7 z#i)w|oWINYxKg%&OZkZ61%Gk)58ofU`zW7rC$H<$o&rl@vGq(UjBnoKod$L#B zW2?LopGGj2MLd0xlFmPBTF0UYt)Urn^q3Wu6=3>8`X zuy?axxYzcCEZ-OSp=<-)rtUXr3QO*N(V(Y!fzMOO!D*~s`YOUMlwx#GP++oxY}pQ? zFDalOt-fD?**>PLP@7Nc*=?jrCObD^zi48m{yf09XtMd3(fBv5%+AMPk~D%ZKF0n^ zXGSM3(dyox_48JngxbDs=ImoHA~q#bw-mWrYfMh0S>9@T`)mbo_fIZTebY6{yO?j| r6&M<-d5S76kbrTsL?vb=^{{4H_Q`CRcs-Mdf^tc2+<+fTIZFQ@;Gy_Q diff --git a/scripting/l4d2_crescendo_control.sp b/scripting/l4d2_crescendo_control.sp index d1c3a7c..71c7e8b 100644 --- a/scripting/l4d2_crescendo_control.sp +++ b/scripting/l4d2_crescendo_control.sp @@ -223,7 +223,7 @@ bool ComputeGroups(GroupResult result, float activateFlow) { if(g_groups[groupIndex].members.Length > 1) { g_groups[groupIndex].pos = prevPos; groupIndex++; - PrintDebug("created group #%d with %d members", groupIndex, members.Length); + PrintDebug("created group #%d with %d members", groupIndex, g_groups[groupIndex].members.Length); if(groupIndex == MAX_GROUPS) { PrintDebug("maximum amount of groups reached (%d)", MAX_GROUPS); } @@ -298,13 +298,13 @@ bool ComputeGroups(GroupResult result, float activateFlow) { } } if(result.ungroupedCount > 0) { - PrintDebug("==UNGROUPED SUMMARY==") + PrintDebug("==UNGROUPED SUMMARY=="); for(int i = 1; i <= MaxClients; i++) { if(!inGroup[i] && IsClientConnected(i) && IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) == 2) { PrintDebug("User: %N (uid#%d)", i, GetClientUserId(i)); } } - PrintDebug("==END UNGROUPED SUMMARY==") + PrintDebug("==END UNGROUPED SUMMARY=="); } PrintDebug("===END GROUP SUMMARY==="); // delete groupMembers;