• Working bug (openaura) - hang and kill even OTA with just hands! Fix included.
    10 replies, posted
I can't keep it anymore.. Some days ago, playing on another shitty Russian HL2RP server i found that saying too much Russian text causes client to freeze for 1-2 seconds. [B]A bug.[/B] 1) bind <key> "say &#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;&#1099;" 2) press <key> again and again, then kill frozen players with hands (don't stop pressing <key>). Works on 98% of players - idk why. [B]Story[/B] I got downloaded openaura & hl2rp from (spoiler) and looked through code, then made a temporary client-side fix that causes every text size be calculated with same width&height, so, now everything (chat, text, etc) looks weird, but the client doesn't hangs. Then i found that saying that also freezes everyone who can hear you. I decided to give the fix to some peoples (asking them to never give that fix to anyone), and release it when any of them will give that fix to someone else (sadly, it happened in 2 days). [B]Peoples who got fix from me[/B] D}|{ET (epiccraft.ru admin) - leaked a fix to staywith.org (as LIskar said) Collision (doesn't host any openaura servers - used for clientside fun) LIskar (don't know server ip, but he definitely have one) [B]The fix, damnit![/B] How to apply clientside (while connected to a server): Just run this lua code. How to apply serverside: download pirated openaura (or become a kurozael) and replace respective functions in gamemodes\openaura\gamemode\openaura\sh_core.lua [code] -- A function to get the size of text. function openAura:GetTextSize(font, text) local lol1,lol2=self:GetCachedTextSize(font,text); return lol1,lol2; -- @fixed end; [/code] [code] -- A function to get a cached text size. function openAura:GetCachedTextSize(font, text) if (!self.CachedTextSizes) then self.CachedTextSizes = {}; end; if ( !self.CachedTextSizes[font] ) then self.CachedTextSizes[font] = {}; end; if ( !self.CachedTextSizes[font][text] ) then -- print('openAura:GetCachedTextSize('..font..', '..text..')'); --self.CachedTextSizes[font][text] = { 200,20 }; surface.SetFont(font); self.CachedTextSizes[font][text] = { surface.GetTextSize(text) }; end; -- @fixed --print( unpack( self.CachedTextSizes[font][text] ) ); return self.CachedTextSizes[font][text][1],self.CachedTextSizes[font][text][2]; end; [/code] p.s. kurozael, i don't know who are you and don't have anything against. But i definitely hate idea of selling gamemodes, for 150€, or 50€, or even 0.1€. And i also hate peoples who steal someone else's code. Sorry for that. [b]Credits[/b] bug: me fix: me openaura: © 2011 CloudSixteen.com do not share, re-distribute or modify without permission of its author (kurozael....... wait.. OH SHI~~
shit man you and your CRAPPY PIRATED VERSIONS. everyone knows only LEGIT versions won't have these bugs, shit, all it takes is fucking $75 dollars and you STOP MAGICALLY HAVING BUGS
[QUOTE=chuck14;35305966]shit man you and your CRAPPY PIRATED VERSIONS. everyone knows only LEGIT versions won't have these bugs, shit, all it takes is fucking $75 dollars and you STOP MAGICALLY HAVING BUGS[/QUOTE] So, that means, you can crash only pirated OA servers? Sorry, i didn't found legit ones to test this.
[QUOTE=Sanya_Zol;35309870]So, that means, you can crash only pirated OA servers? Sorry, i didn't found legit ones to test this.[/QUOTE] its a joke forget i said anything
-removed
Not the best solution, there is a way without the removal of the functional of GetTextSize() and other functions.
[QUOTE=|spec45as|;35580233]Not the best solution, there is a way without the removal of the functional of GetTextSize() and other functions.[/QUOTE] The old solution was: 1) check the EACH symbol size 2) if (size==0) then size=size of "U" The new solution is: Check whole text size, because GetTextSize() is not so buggy anymore. AFAIK, only cracked servers affected with that.
[QUOTE=Sanya_Zol;35594018]The old solution was: 1) check the EACH symbol size 2) if (size==0) then size=size of "U" The new solution is: Check whole text size, because GetTextSize() is not so buggy anymore. [/QUOTE] i understand I will say in Russian, bcs seems I talks only with you &#1071; &#1087;&#1086;&#1085;&#1080;&#1084;&#1072;&#1102;, &#1087;&#1088;&#1086;&#1089;&#1090;&#1086; &#1093;&#1086;&#1095;&#1091; &#1089;&#1082;&#1072;&#1079;&#1072;&#1090;&#1100;, &#1095;&#1090;&#1086; &#1101;&#1090;&#1086; &#1085;&#1077; &#1077;&#1076;&#1080;&#1085;&#1089;&#1090;&#1074;&#1077;&#1085;&#1085;&#1099;&#1081; &#1084;&#1077;&#1090;&#1086;&#1076;. &#1071; &#1090;&#1072;&#1082;&#1078;&#1077; &#1080;&#1089;&#1087;&#1088;&#1072;&#1074;&#1080;&#1083; &#1101;&#1090;&#1091; &#1087;&#1088;&#1086;&#1073;&#1083;&#1077;&#1084;&#1091;, &#1085;&#1086; &#1089;&#1086;&#1074;&#1077;&#1088;&#1096;&#1077;&#1085;&#1085;&#1086; &#1080;&#1085;&#1099;&#1084; &#1084;&#1077;&#1090;&#1086;&#1076;&#1086;&#1084; &#1073;&#1077;&#1079; &#1091;&#1088;&#1077;&#1079;&#1072;&#1085;&#1080;&#1103; &#1076;&#1077;&#1092;&#1086;&#1083;&#1090;&#1085;&#1086;&#1075;&#1086; &#1092;&#1091;&#1085;&#1082;&#1094;&#1080;&#1086;&#1085;&#1072;&#1083;&#1072;. [IMG]http://cloud.steampowered.com/ugc/595840075064147006/91D4679FC5C580DC2AB56BC2065A7346E14CE680/[/IMG] :] [QUOTE]AFAIK, only cracked servers affected with that.[/QUOTE] &#1053;&#1086; &#1087;&#1088;&#1080; &#1095;&#1077;&#1084; &#1090;&#1091;&#1090; &#1101;&#1090;&#1086; &#1074;&#1086;&#1086;&#1073;&#1097;&#1077;?
maybe it's a unicode thing and that's sending a pretty huge string from server to client/vice versa
[QUOTE=|spec45as|;35619763]i understand I will say in Russian, bcs seems I talks only with you &#1071; &#1087;&#1086;&#1085;&#1080;&#1084;&#1072;&#1102;, &#1087;&#1088;&#1086;&#1089;&#1090;&#1086; &#1093;&#1086;&#1095;&#1091; &#1089;&#1082;&#1072;&#1079;&#1072;&#1090;&#1100;, &#1095;&#1090;&#1086; &#1101;&#1090;&#1086; &#1085;&#1077; &#1077;&#1076;&#1080;&#1085;&#1089;&#1090;&#1074;&#1077;&#1085;&#1085;&#1099;&#1081; &#1084;&#1077;&#1090;&#1086;&#1076;. &#1071; &#1090;&#1072;&#1082;&#1078;&#1077; &#1080;&#1089;&#1087;&#1088;&#1072;&#1074;&#1080;&#1083; &#1101;&#1090;&#1091; &#1087;&#1088;&#1086;&#1073;&#1083;&#1077;&#1084;&#1091;, &#1085;&#1086; &#1089;&#1086;&#1074;&#1077;&#1088;&#1096;&#1077;&#1085;&#1085;&#1086; &#1080;&#1085;&#1099;&#1084; &#1084;&#1077;&#1090;&#1086;&#1076;&#1086;&#1084; &#1073;&#1077;&#1079; &#1091;&#1088;&#1077;&#1079;&#1072;&#1085;&#1080;&#1103; &#1076;&#1077;&#1092;&#1086;&#1083;&#1090;&#1085;&#1086;&#1075;&#1086; &#1092;&#1091;&#1085;&#1082;&#1094;&#1080;&#1086;&#1085;&#1072;&#1083;&#1072;. [IMG]http://cloud.steampowered.com/ugc/595840075064147006/91D4679FC5C580DC2AB56BC2065A7346E14CE680/[/IMG] :] &#1053;&#1086; &#1087;&#1088;&#1080; &#1095;&#1077;&#1084; &#1090;&#1091;&#1090; &#1101;&#1090;&#1086; &#1074;&#1086;&#1086;&#1073;&#1097;&#1077;?[/QUOTE] Where, [B]where[/B] i removed functional of GetTextSize()? It works exactly the same, but ten times faster. [QUOTE=Ylsid;35619985]maybe it's a unicode thing and that's sending a pretty huge string from server to client/vice versa[/QUOTE] Nope, it's just buggy unpack() [editline]18th April 2012[/editline] and, please, use [[B][/B]img_thumb] instead of [[B][/B]img] for screenshots
My friend reporting that there is still tons of OA servers where this bug works (he is having fun with that bug atm, lol). However, you will need SE bypass to run this fix clientside (or you should be VERY lucky to become one of 2% who won't affected with that)
Sorry, you need to Log In to post a reply to this thread.