CabConModding
Facebook
Twitter
youtube
Discord
Contact us
RSS
Menu
CabConModding
Home
New
Top
Premium
Rules
FAQ - Frequently Asked Questions
Games
Fornite
Call of Duty: Black Ops 3
Clash of Clans
Grand Theft Auto 5
Apex Legends
Assassin’s Creed Origins
Forums
Premium
Latest posts
What's new
Latest posts
New profile posts
Latest activity
Members
Current visitors
New profile posts
Log in
Register
What's new
Premium
Latest posts
Menu
Log in
Register
Navigation
Install the app
Install
More options
Dark Theme
Contact us
Close Menu
Forums
Gaming
Call of Duty Classics
Call of Duty: Black Ops 2
Call of Duty: Black Ops 2 Mods and Scripts
Call of Duty: Black Ops 2 Scripts
Call of Duty: Black Ops 2 Scripts Questions
How to add an overflow fix to a GSC Call of Duty: Black Ops 2 mod menu?
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="Iwau" data-source="post: 41539" data-attributes="member: 81309"><p>Srry I was late</p><p>[SPOILER="FIX"]</p><p>initOverFlowFix()</p><p>{</p><p> // tables</p><p> self.stringTable = [];</p><p> self.stringTableEntryCount = 0;</p><p> self.textTable = [];</p><p> self.textTableEntryCount = 0;</p><p> </p><p> if(isDefined(level.anchorText) == false)</p><p> {</p><p> level.anchorText = createServerFontString("default",1.5);</p><p> level.anchorText setText("anchor");</p><p> level.anchorText.alpha = 0;</p><p> </p><p> level.stringCount = 0;</p><p> level thread monitorOverflow();</p><p> }</p><p>}</p><p></p><p>// strings cache serverside -- all string entries are shared by every player</p><p>monitorOverflow()</p><p>{</p><p> level endon("disconnect");</p><p></p><p> for(;<img src="/styles/default/xenforo/smilies.emoji/people/wink.emoji.svg" class="smilie" loading="lazy" alt=":wink:" title="Wink :wink:" data-shortname=":wink:" /></p><p> {</p><p> if(level.stringCount >= 60)</p><p> {</p><p> level.anchorText clearAllTextAfterHudElem();</p><p> level.stringCount = 0;</p><p> </p><p> foreach(player in level.players)</p><p> {</p><p> player purgeTextTable();</p><p> player purgeStringTable();</p><p> player recreateText();</p><p> }</p><p> }</p><p> </p><p> wait 0.05;</p><p> }</p><p>}</p><p></p><p>setSafeText(player, text)</p><p>{</p><p> stringId = player getStringId(text);</p><p> </p><p> // if the string doesn't exist add it and get its id</p><p> if(stringId == -1)</p><p> {</p><p> player addStringTableEntry(text);</p><p> stringId = player getStringId(text);</p><p> }</p><p> </p><p> // update the entry for this text element</p><p> player editTextTableEntry(self.textTableIndex, stringId);</p><p></p><p> self setText(text);</p><p>}</p><p></p><p>recreateText()</p><p>{</p><p> foreach(entry in self.textTable)</p><p> entry.element setSafeText(self, lookUpStringById(entry.stringId));</p><p>}</p><p></p><p>addStringTableEntry(string)</p><p>{</p><p> // create new entry</p><p> entry = spawnStruct();</p><p> entry.id = self.stringTableEntryCount;</p><p> entry.string = string;</p><p> </p><p> self.stringTable[self.stringTable.size] = entry; // add new entry</p><p> self.stringTableEntryCount++;</p><p> level.stringCount++;</p><p>}</p><p></p><p>lookUpStringById(id)</p><p>{</p><p> string = "";</p><p></p><p> foreach(entry in self.stringTable)</p><p> {</p><p> if(entry.id == id)</p><p> {</p><p> string = entry.string;</p><p> break;</p><p> }</p><p> }</p><p></p><p> return string;</p><p>}</p><p></p><p>getStringId(string)</p><p>{</p><p> id = -1;</p><p> </p><p> foreach(entry in self.stringTable)</p><p> {</p><p> if(entry.string == string)</p><p> {</p><p> id = entry.id;</p><p> break;</p><p> }</p><p> }</p><p></p><p> return id;</p><p>}</p><p></p><p>getStringTableEntry(id)</p><p>{</p><p> stringTableEntry = -1;</p><p> </p><p> foreach(entry in self.stringTable)</p><p> {</p><p> if(entry.id == id)</p><p> {</p><p> stringTableEntry = entry;</p><p> break;</p><p> }</p><p> }</p><p></p><p> return stringTableEntry;</p><p>}</p><p></p><p>purgeStringTable()</p><p>{</p><p> stringTable = [];</p><p></p><p> // store all used strings</p><p> foreach(entry in self.textTable)</p><p> stringTable[stringTable.size] = getStringTableEntry(entry.stringId);</p><p></p><p> self.stringTable = stringTable; // empty array</p><p>}</p><p></p><p>purgeTextTable()</p><p>{</p><p> textTable = [];</p><p> </p><p> foreach(entry in self.textTable)</p><p> {</p><p> if(entry.id != -1)</p><p> textTable[textTable.size] = entry;</p><p> }</p><p></p><p> self.textTable = textTable;</p><p>}</p><p></p><p>addTextTableEntry(element, stringId)</p><p>{</p><p> entry = spawnStruct();</p><p> entry.id = self.textTableEntryCount;</p><p> entry.element = element;</p><p> entry.stringId = stringId;</p><p> </p><p> element.textTableIndex = entry.id;</p><p></p><p> self.textTable[self.textTable.size] = entry;</p><p> self.textTableEntryCount++;</p><p>}</p><p></p><p>editTextTableEntry(id, stringId)</p><p>{</p><p> foreach(entry in self.textTable)</p><p> {</p><p> if(entry.id == id)</p><p> {</p><p> entry.stringId = stringId;</p><p> break;</p><p> }</p><p> }</p><p>}</p><p></p><p>deleteTextTableEntry(id)</p><p>{</p><p> foreach(entry in self.textTable)</p><p> {</p><p> if(entry.id == id)</p><p> {</p><p> entry.id = -1;</p><p> entry.stringId = -1;</p><p> }</p><p> }</p><p>}</p><p></p><p>clear(player)</p><p>{</p><p> if(self.type == "text")</p><p> player deleteTextTableEntry(self.textTableIndex);</p><p> </p><p> self destroy();</p><p>}</p><p></p><p>[/SPOILER]</p></blockquote><p></p>
[QUOTE="Iwau, post: 41539, member: 81309"] Srry I was late [SPOILER="FIX"] initOverFlowFix() { // tables self.stringTable = []; self.stringTableEntryCount = 0; self.textTable = []; self.textTableEntryCount = 0; if(isDefined(level.anchorText) == false) { level.anchorText = createServerFontString("default",1.5); level.anchorText setText("anchor"); level.anchorText.alpha = 0; level.stringCount = 0; level thread monitorOverflow(); } } // strings cache serverside -- all string entries are shared by every player monitorOverflow() { level endon("disconnect"); for(;;) { if(level.stringCount >= 60) { level.anchorText clearAllTextAfterHudElem(); level.stringCount = 0; foreach(player in level.players) { player purgeTextTable(); player purgeStringTable(); player recreateText(); } } wait 0.05; } } setSafeText(player, text) { stringId = player getStringId(text); // if the string doesn't exist add it and get its id if(stringId == -1) { player addStringTableEntry(text); stringId = player getStringId(text); } // update the entry for this text element player editTextTableEntry(self.textTableIndex, stringId); self setText(text); } recreateText() { foreach(entry in self.textTable) entry.element setSafeText(self, lookUpStringById(entry.stringId)); } addStringTableEntry(string) { // create new entry entry = spawnStruct(); entry.id = self.stringTableEntryCount; entry.string = string; self.stringTable[self.stringTable.size] = entry; // add new entry self.stringTableEntryCount++; level.stringCount++; } lookUpStringById(id) { string = ""; foreach(entry in self.stringTable) { if(entry.id == id) { string = entry.string; break; } } return string; } getStringId(string) { id = -1; foreach(entry in self.stringTable) { if(entry.string == string) { id = entry.id; break; } } return id; } getStringTableEntry(id) { stringTableEntry = -1; foreach(entry in self.stringTable) { if(entry.id == id) { stringTableEntry = entry; break; } } return stringTableEntry; } purgeStringTable() { stringTable = []; // store all used strings foreach(entry in self.textTable) stringTable[stringTable.size] = getStringTableEntry(entry.stringId); self.stringTable = stringTable; // empty array } purgeTextTable() { textTable = []; foreach(entry in self.textTable) { if(entry.id != -1) textTable[textTable.size] = entry; } self.textTable = textTable; } addTextTableEntry(element, stringId) { entry = spawnStruct(); entry.id = self.textTableEntryCount; entry.element = element; entry.stringId = stringId; element.textTableIndex = entry.id; self.textTable[self.textTable.size] = entry; self.textTableEntryCount++; } editTextTableEntry(id, stringId) { foreach(entry in self.textTable) { if(entry.id == id) { entry.stringId = stringId; break; } } } deleteTextTableEntry(id) { foreach(entry in self.textTable) { if(entry.id == id) { entry.id = -1; entry.stringId = -1; } } } clear(player) { if(self.type == "text") player deleteTextTableEntry(self.textTableIndex); self destroy(); } [/SPOILER] [/QUOTE]
Verification
Post reply
Forums
Gaming
Call of Duty Classics
Call of Duty: Black Ops 2
Call of Duty: Black Ops 2 Mods and Scripts
Call of Duty: Black Ops 2 Scripts
Call of Duty: Black Ops 2 Scripts Questions
How to add an overflow fix to a GSC Call of Duty: Black Ops 2 mod menu?
CabConModding is now on facebook! Check the latest Updates, the Site Status and much more now!
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.
Accept
Learn more…
Top