Advertisement
comniemeer

Untitled

Nov 24th, 2016
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. global TEXT_DRAW_POOL_OFFSET                := 0x10
  3. global SAMP_MAX_PLAYERTEXTDRAWS             := 256
  4. global SAMP_MAX_TEXTDRAWS                   := 2048
  5. global iRefreshTD := 0
  6. global iUpdateTickTD := 1000
  7. global oTextDraws := []
  8.  
  9. updateTextDraws() {
  10.     if (!checkHandles())
  11.         return 0
  12.    
  13.     if (iRefreshTD + iUpdateTickTD > A_TickCount)
  14.         return 1
  15.    
  16.     oTextDraws := []
  17.     iRefreshTD := A_TickCount
  18.     dwAddress := readDWORD(hGTA, dwSAMP + SAMP_INFO_OFFSET)
  19.    
  20.     if (ErrorLevel || !dwAddress) {
  21.         ErrorLevel := ERROR_READ_MEMORY
  22.         return 0
  23.     }
  24.    
  25.     dwAddress := readDWORD(hGTA, dwAddress + SAMP_PPOOLS_OFFSET)
  26.    
  27.     if (ErrorLevel || !dwAddress) {
  28.         ErrorLevel := ERROR_READ_MEMORY
  29.         return 0
  30.     }
  31.    
  32.     dwTextDraw := readDWORD(hGTA, dwAddress + TEXT_DRAW_POOL_OFFSET)
  33.    
  34.     if (ErrorLevel || !dwTextDraw) {
  35.         ErrorLevel := ERROR_READ_MEMORY
  36.         return 0
  37.     }
  38.    
  39.     Loop, % SAMP_MAX_TEXTDRAWS ; Normal TextDraws
  40.     {
  41.         i := A_Index - 1
  42.         dwIsActive := readDWORD(hGTA, dwTextDraw + i * 4)
  43.        
  44.         if (ErrorLevel) {
  45.             ErrorLevel := ERROR_READ_MEMORY
  46.             return 0
  47.         }
  48.        
  49.         if (!dwIsActive)
  50.             continue
  51.        
  52.         dwAddr := readDWORD(hGTA, dwTextDraw + i * 4 + (4 * (SAMP_MAX_PLAYERTEXTDRAWS + SAMP_MAX_TEXTDRAWS)))
  53.        
  54.         if (ErrorLevel) {
  55.             ErrorLevel := ERROR_READ_MEMORY
  56.             return 0
  57.         }
  58.        
  59.         if (!dwAddr)
  60.             continue
  61.        
  62.         sText := readString(hGTA, dwAddr, 800)
  63.        
  64.         if (ErrorLevel) {
  65.                 ErrorLevel := ERROR_READ_MEMORY
  66.                 return 0
  67.         }
  68.        
  69.         oTextDraws[i] := sText
  70.     }
  71.    
  72.     ErrorLevel := ERROR_OK
  73.     return 1
  74. }
  75.  
  76. printTextDraws() {
  77.     if (!updateTextDraws())
  78.         return
  79.    
  80.     oReplace := ["~s~", "~r~", "~w~", "~h~", "~g~", "~y~", "~n~", "~b~", "  ", "   "]
  81.    
  82.     For i, o in oTextDraws
  83.     {
  84.         Loop % oReplace.MaxIndex() {
  85.             o := StrReplace(o, oReplace[A_Index], " ")
  86.         }
  87.        
  88.         AddChatMessage(o)
  89.     }
  90.     return
  91. }
  92.  
  93. getTextDrawBySubstring(substring) {
  94.     if (!updateTextDraws())
  95.         return
  96.    
  97.     oReplace := ["~s~", "~r~", "~w~", "~h~", "~g~", "~y~", "~n~", "~b~", "  ", "   "]
  98.    
  99.     For i, o in oTextDraws
  100.     {
  101.         if (!InStr(o, substring))
  102.             continue
  103.        
  104.         Loop % oReplace.MaxIndex()
  105.             o := StrReplace(o, oReplace[A_Index], " ")
  106.        
  107.         return o
  108.     }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement