V-Graphics.asm
上传用户:santakups8
上传日期:2021-03-23
资源大小:544k
文件大小:5k
源码类别:

模拟服务器

开发平台:

Asm

  1. ;EasyCodeName=Module1,1
  2. ;-----------------------------------------------------------------------------------
  3. ;    VeMU
  4. ;    Its a package that allows the user to set his own server of the game
  5. ;    "MuOnline", this is not an emulator since i am not "emulating"
  6. ;    what the actual games does, i am "creating" a method for set a Server
  7. ;    of this Game.
  8. ;
  9. ;    Copyright (C) 2010  Felipe Ya馿z
  10. ;
  11. ;    This program is free software: you can redistribute it and/or modify
  12. ;    it under the terms of the GNU General Public License as published by
  13. ;    the Free Software Foundation, either version 3 of the License, or
  14. ;    (at your option) any later version.
  15. ;
  16. ;    This program is distributed in the hope that it will be useful,
  17. ;    but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. ;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19. ;    GNU General Public License for more details.
  20. ;
  21. ;    You should have received a copy of the GNU General Public License
  22. ;    along with this program.  If not, see http://www.gnu.org/licenses/.
  23. ;-----------------------------------------------------------------------------------
  24. ;-----------------------------------------------------------------------------------
  25. ;                        -----------------
  26. ;                             Coded     /
  27. ;                              By      /
  28. ;                           -={FeN$x)=-
  29. ;                         /  Felipe Y.  
  30. ;                        /               
  31. ;                        -----------------
  32. ; Programming Lang: ASM
  33. ; Country: Chile
  34. ;              My respect for all those who lost their lifes
  35. ;              In the earthquake of my country...
  36. ;              Let god take their spirits home...
  37. ;-----------------------------------------------------------------------------------
  38. V_Print_TimerRecv Proto :Dword, :Dword, :Dword, :Dword
  39. VPRINTs Struct
  40.  vString DB MAXPRINTCHAR Dup(?)
  41.  vStringLength DWord ?
  42.  vRGB DWord ?
  43. VPRINTs EndS
  44. .Const
  45. ;LEFTSQUARECORD equ 4A0h
  46. TOPSQUARECORD equ 80h
  47. RIGHTSQUARECORD equ 1
  48. BOTTOMSQUARECORD equ 0
  49. .Data?
  50. .Data
  51. TestString DB "TotalPlayers:[%d] TotalMobs:[%d] MaxUsers:[%d] ShopsLoaded:[%d] ", 0
  52. ProjectName DB "VeMU ", 0
  53. VersionString DB 50 Dup(0)
  54. ValkBarInfo DB 100 Dup(0)
  55. .Code
  56. ;///////////////////////////////////////////////////////////////////////////////////////////////
  57. ;This procedure display the rectangle in top with the text
  58. ;IT ISNT ENDED YET, ITS BETA MODE !
  59. ;///////////////////////////////////////////////////////////////////////////////////////////////
  60. V_DisplayRect Proc
  61. Local pPaint:PAINTSTRUCT
  62. Local hdc:HDC
  63. Local rect:RECT
  64. Local BarLength:Dword
  65. local VersionLength:Dword
  66. local YPos:Dword
  67. local Font1:Dword
  68. local Font2:Dword
  69. invoke GetDC, GShWnd
  70. mov hdc, eax
  71. invoke GetSystemMetrics, SM_CXSCREEN
  72. mov YPos, eax
  73. shr eax, 1
  74. mov rect.left, eax
  75. mov rect.top, TOPSQUARECORD
  76. mov rect.right, RIGHTSQUARECORD
  77. mov rect.bottom, BOTTOMSQUARECORD
  78. invoke MemCopy, addr ProjectName, addr VersionString, SizeOf ProjectName
  79. invoke lstrcat, addr VersionString, addr ServerVersion
  80. invoke StrLen, addr VersionString
  81. mov VersionLength, eax
  82. invoke wsprintf, addr ValkBarInfo, addr TestString, 0, MonsterSetBaseCounter, MAXSERVERUSER, TotalShopsLoaded
  83. invoke StrLen, addr ValkBarInfo
  84. mov BarLength, eax
  85. invoke SetBkMode, hdc, TRANSPARENT
  86. RGB 99, 184, 255
  87. invoke CreateSolidBrush, eax
  88. invoke FillRect, hdc, addr rect, eax
  89. invoke CreateFont, 60, 30, 0, 0, 100, 0, 1, 0, OEM_CHARSET, 
  90.                                        OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
  91.                                        DEFAULT_QUALITY, DEFAULT_PITCH or FF_MODERN, 
  92.                                        $CTA0 ("Impact")
  93. mov Font1, eax
  94. invoke CreateFont, 20, 0, 0, 0, 900, 0, 0, 0, OEM_CHARSET, 
  95.                                        OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
  96.                                        DEFAULT_QUALITY, DEFAULT_PITCH or FF_MODERN, 
  97.                                        $CTA0 ("Arial")
  98. mov Font2, eax
  99. invoke SelectObject, hdc, Font1
  100. RGB 154, 255, 154
  101. invoke SetTextColor, hdc, eax
  102. mov eax, YPos
  103. shr eax, 3 ;/2
  104. invoke TextOut, hdc, eax, 20, addr VersionString, VersionLength
  105. invoke DeleteObject, Font1
  106. invoke SelectObject, hdc, Font2
  107. RGB 0, 0, 0
  108. invoke SetTextColor, hdc, eax
  109. invoke TextOut, hdc, 0, 0, addr ValkBarInfo, BarLength
  110. invoke DeleteObject, Font2
  111. invoke ReleaseDC, GShWnd, Addr pPaint
  112. Ret
  113. V_DisplayRect EndP
  114. V_Print_Run Proc
  115. Local LinesCounter:DWord
  116. Local pPaint:PAINTSTRUCT
  117. Local hdc:HDC
  118. Local rect:RECT
  119. Mov LinesCounter, 0
  120. invoke BeginPaint, GShWnd, addr pPaint
  121. invoke GetDC, GShWnd
  122. Mov hdc, Eax
  123. Assume Eax:Ptr VPRINTs
  124. .Repeat
  125.  pObj LinesCounter, SizeOf VPRINTs, pObjectPaint
  126.  Mov Edx, [Eax].vRGB ;RGB value collor
  127.  .If (Edx != 0)
  128.     Push Eax
  129.     Invoke SetTextColor, hdc, Edx ;set collor
  130.     Pop Eax
  131.  .EndIf
  132.  Mov Edx, LinesCounter
  133.  IMul Edx, Edx, 11H
  134.  Add Edx, 90H
  135.  .if ([eax].vString != NULL) ;If we dont found a 00 at start it means we have no problem when printing
  136.    Invoke TextOut, hdc, 0, Edx, Addr [Eax].vString, [Eax].vStringLength ;print it
  137.  .else
  138.  .endif
  139.  Add LinesCounter, 1
  140. .Until (LinesCounter == MAXPRINTLINES)
  141. invoke ReleaseDC, GShWnd, addr pPaint
  142. invoke EndPaint, GShWnd, Addr pPaint
  143. Mov VPrintNewLine, 0 ;lets wait till we print a new message
  144. Ret
  145. V_Print_Run EndP