Advertisement
Guest User

Untitled

a guest
Dec 9th, 2012
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 55.55 KB | None | 0 0
  1. settings = {
  2. ["useanimation"] = nil,
  3. ["toggleable"] = nil,
  4. ["showserverinfo"] = nil,
  5. ["showgamemodeinfo"] = nil,
  6. ["showteams"] = nil,
  7. ["usecolors"] = nil,
  8. ["drawspeed"] = nil,
  9. ["scale"] = nil,
  10. ["columnfont"] = nil,
  11. ["contentfont"] = nil,
  12. ["teamfont"] = nil,
  13. ["serverinfofont"] = nil,
  14. ["bg_color"] = {},
  15. ["selection_color"] = {},
  16. ["highlight_color"] = {},
  17. ["header_color"] = {},
  18. ["team_color"] = {},
  19. ["border_color"] = {},
  20. ["serverinfo_color"] = {},
  21. ["content_color"] = {}
  22. }
  23. defaultSettings = {
  24. ["useanimation"] = true,
  25. ["toggleable"] = false,
  26. ["showserverinfo"] = false,
  27. ["showgamemodeinfo"] = false,
  28. ["showteams"] = true,
  29. ["usecolors"] = true,
  30. ["drawspeed"] = 1.5,
  31. ["scale"] = 1.0,
  32. ["columnfont"] = "default-bold",
  33. ["contentfont"] = "default-bold",
  34. ["teamfont"] = "clear",
  35. ["serverinfofont"] = "default",
  36. ["bg_color"] = {
  37. ["r"] = 0,
  38. ["g"] = 0,
  39. ["b"] = 0,
  40. ["a"] = 170
  41. },
  42. ["selection_color"] = {
  43. ["r"] = 82,
  44. ["g"] = 103,
  45. ["b"] = 188,
  46. ["a"] = 170
  47. },
  48. ["highlight_color"] = {
  49. ["r"] = 255,
  50. ["g"] = 255,
  51. ["b"] = 255,
  52. ["a"] = 50
  53. },
  54. ["header_color"] = {
  55. ["r"] = 100,
  56. ["g"] = 100,
  57. ["b"] = 100,
  58. ["a"] = 255
  59. },
  60. ["team_color"] = {
  61. ["r"] = 100,
  62. ["g"] = 100,
  63. ["b"] = 100,
  64. ["a"] = 100
  65. },
  66. ["border_color"] = {
  67. ["r"] = 100,
  68. ["g"] = 100,
  69. ["b"] = 100,
  70. ["a"] = 50
  71. },
  72. ["serverinfo_color"] = {
  73. ["r"] = 150,
  74. ["g"] = 150,
  75. ["b"] = 150,
  76. ["a"] = 255
  77. },
  78. ["content_color"] = {
  79. ["r"] = 255,
  80. ["g"] = 255,
  81. ["b"] = 255,
  82. ["a"] = 255
  83. }
  84. }
  85.  
  86. tempColors = {
  87. ["bg_color"] = {
  88. ["r"] = nil,
  89. ["g"] = nil,
  90. ["b"] = nil,
  91. ["a"] = nil
  92. },
  93. ["selection_color"] = {
  94. ["r"] = nil,
  95. ["g"] = nil,
  96. ["b"] = nil,
  97. ["a"] = nil
  98. },
  99. ["highlight_color"] = {
  100. ["r"] = nil,
  101. ["g"] = nil,
  102. ["b"] = nil,
  103. ["a"] = nil
  104. },
  105. ["header_color"] = {
  106. ["r"] = nil,
  107. ["g"] = nil,
  108. ["b"] = nil,
  109. ["a"] = nil
  110. },
  111. ["team_color"] = {
  112. ["r"] = nil,
  113. ["g"] = nil,
  114. ["b"] = nil,
  115. ["a"] = nil
  116. },
  117. ["border_color"] = {
  118. ["r"] = nil,
  119. ["g"] = nil,
  120. ["b"] = nil,
  121. ["a"] = nil
  122. },
  123. ["serverinfo_color"] = {
  124. ["r"] = nil,
  125. ["g"] = nil,
  126. ["b"] = nil,
  127. ["a"] = nil
  128. },
  129. ["content_color"] = {
  130. ["r"] = nil,
  131. ["g"] = nil,
  132. ["b"] = nil,
  133. ["a"] = nil
  134. }
  135. }
  136. MAX_DRAWSPEED = 4.0
  137. MIN_DRAWSPEED = 0.5
  138. MAX_SCALE = 2.5
  139. MIN_SCALE = 0.5
  140. fontIndexes = {
  141. ["column"] = 1,
  142. ["content"] = 1,
  143. ["team"] = 1,
  144. ["serverinfo"] = 1
  145. }
  146. fontNames = { "default", "default-bold", "clear", "arial", "sans","pricedown", "bankgothic", "diploma", "beckett" }
  147.  
  148. function readScoreboardSettings()
  149. local settingsFile = xmlLoadFile( "settings.xml" )
  150. if not settingsFile then
  151. settingsFile = xmlCreateFile( "settings.xml", "settings" )
  152. if not settingsFile then return false end
  153.  
  154. local useanimationTag = xmlCreateChild( settingsFile, "useanimation" )
  155. xmlNodeSetValue( useanimationTag, tostring( defaultSettings.useanimation ) )
  156. local toggleableTag = xmlCreateChild( settingsFile, "toggleable" )
  157. xmlNodeSetValue( toggleableTag, tostring( defaultSettings.toggleable ) )
  158. local showserverinfoTag = xmlCreateChild( settingsFile, "showserverinfo" )
  159. xmlNodeSetValue( showserverinfoTag, tostring( defaultSettings.showserverinfo ) )
  160. local showgamemodeinfoTag = xmlCreateChild( settingsFile, "showgamemodeinfo" )
  161. xmlNodeSetValue( showgamemodeinfoTag, tostring( defaultSettings.showgamemodeinfo ) )
  162. local showteamsTag = xmlCreateChild( settingsFile, "showteams" )
  163. xmlNodeSetValue( showteamsTag, tostring( defaultSettings.showteams ) )
  164. local usecolorsTag = xmlCreateChild( settingsFile, "usecolors" )
  165. xmlNodeSetValue( usecolorsTag, tostring( defaultSettings.usecolors ) )
  166. local drawspeedTag = xmlCreateChild( settingsFile, "drawspeed" )
  167. xmlNodeSetValue( drawspeedTag, tostring( defaultSettings.drawspeed ) )
  168. local scaleTag = xmlCreateChild( settingsFile, "scale" )
  169. xmlNodeSetValue( scaleTag, tostring( defaultSettings.scale ) )
  170. local columnfontTag = xmlCreateChild( settingsFile, "columnfont" )
  171. xmlNodeSetValue( columnfontTag, tostring( defaultSettings.columnfont ) )
  172. local contentfontTag = xmlCreateChild( settingsFile, "contentfont" )
  173. xmlNodeSetValue( contentfontTag, tostring( defaultSettings.contentfont ) )
  174. local teamfontTag = xmlCreateChild( settingsFile, "teamfont" )
  175. xmlNodeSetValue( teamfontTag, tostring( defaultSettings.teamfont ) )
  176. local serverinfofontTag = xmlCreateChild( settingsFile, "serverinfofont" )
  177. xmlNodeSetValue( serverinfofontTag, tostring( defaultSettings.serverinfofont ) )
  178. local bg_colorTag = xmlCreateChild( settingsFile, "bg_color" )
  179. xmlNodeSetAttribute( bg_colorTag, "r", tostring( defaultSettings.bg_color.r ) )
  180. xmlNodeSetAttribute( bg_colorTag, "g", tostring( defaultSettings.bg_color.g ) )
  181. xmlNodeSetAttribute( bg_colorTag, "b", tostring( defaultSettings.bg_color.b ) )
  182. xmlNodeSetAttribute( bg_colorTag, "a", tostring( defaultSettings.bg_color.a ) )
  183. local selection_colorTag = xmlCreateChild( settingsFile, "selection_color" )
  184. xmlNodeSetAttribute( selection_colorTag, "r", tostring( defaultSettings.selection_color.r ) )
  185. xmlNodeSetAttribute( selection_colorTag, "g", tostring( defaultSettings.selection_color.g ) )
  186. xmlNodeSetAttribute( selection_colorTag, "b", tostring( defaultSettings.selection_color.b ) )
  187. xmlNodeSetAttribute( selection_colorTag, "a", tostring( defaultSettings.selection_color.a ) )
  188. local highlight_colorTag = xmlCreateChild( settingsFile, "highlight_color" )
  189. xmlNodeSetAttribute( highlight_colorTag, "r", tostring( defaultSettings.highlight_color.r ) )
  190. xmlNodeSetAttribute( highlight_colorTag, "g", tostring( defaultSettings.highlight_color.g ) )
  191. xmlNodeSetAttribute( highlight_colorTag, "b", tostring( defaultSettings.highlight_color.b ) )
  192. xmlNodeSetAttribute( highlight_colorTag, "a", tostring( defaultSettings.highlight_color.a ) )
  193. local header_colorTag = xmlCreateChild( settingsFile, "header_color" )
  194. xmlNodeSetAttribute( header_colorTag, "r", tostring( defaultSettings.header_color.r ) )
  195. xmlNodeSetAttribute( header_colorTag, "g", tostring( defaultSettings.header_color.g ) )
  196. xmlNodeSetAttribute( header_colorTag, "b", tostring( defaultSettings.header_color.b ) )
  197. xmlNodeSetAttribute( header_colorTag, "a", tostring( defaultSettings.header_color.a ) )
  198. local team_colorTag = xmlCreateChild( settingsFile, "team_color" )
  199. xmlNodeSetAttribute( team_colorTag, "r", tostring( defaultSettings.team_color.r ) )
  200. xmlNodeSetAttribute( team_colorTag, "g", tostring( defaultSettings.team_color.g ) )
  201. xmlNodeSetAttribute( team_colorTag, "b", tostring( defaultSettings.team_color.b ) )
  202. xmlNodeSetAttribute( team_colorTag, "a", tostring( defaultSettings.team_color.a ) )
  203. local border_colorTag = xmlCreateChild( settingsFile, "border_color" )
  204. xmlNodeSetAttribute( border_colorTag, "r", tostring( defaultSettings.border_color.r ) )
  205. xmlNodeSetAttribute( border_colorTag, "g", tostring( defaultSettings.border_color.g ) )
  206. xmlNodeSetAttribute( border_colorTag, "b", tostring( defaultSettings.border_color.b ) )
  207. xmlNodeSetAttribute( border_colorTag, "a", tostring( defaultSettings.border_color.a ) )
  208. local serverinfo_colorTag = xmlCreateChild( settingsFile, "serverinfo_color" )
  209. xmlNodeSetAttribute( serverinfo_colorTag, "r", tostring( defaultSettings.serverinfo_color.r ) )
  210. xmlNodeSetAttribute( serverinfo_colorTag, "g", tostring( defaultSettings.serverinfo_color.g ) )
  211. xmlNodeSetAttribute( serverinfo_colorTag, "b", tostring( defaultSettings.serverinfo_color.b ) )
  212. xmlNodeSetAttribute( serverinfo_colorTag, "a", tostring( defaultSettings.serverinfo_color.a ) )
  213. local content_colorTag = xmlCreateChild( settingsFile, "content_color" )
  214. xmlNodeSetAttribute( content_colorTag, "r", tostring( defaultSettings.content_color.r ) )
  215. xmlNodeSetAttribute( content_colorTag, "g", tostring( defaultSettings.content_color.g ) )
  216. xmlNodeSetAttribute( content_colorTag, "b", tostring( defaultSettings.content_color.b ) )
  217. xmlNodeSetAttribute( content_colorTag, "a", tostring( defaultSettings.content_color.a ) )
  218. xmlSaveFile( settingsFile )
  219. end
  220.  
  221. local useanimationTag = xmlFindChild( settingsFile, "useanimation", 0 )
  222. if not useanimationTag then
  223. useanimationTag = xmlCreateChild( settingsFile, "useanimation" )
  224. xmlNodeSetValue( useanimationTag, tostring( defaultSettings.useanimation ) )
  225. xmlSaveFile( settingsFile )
  226. end
  227.  
  228. local toggleableTag = xmlFindChild( settingsFile, "toggleable", 0 )
  229. if not toggleableTag then
  230. toggleableTag = xmlCreateChild( settingsFile, "toggleable" )
  231. xmlNodeSetValue( toggleableTag, tostring( defaultSettings.toggleable ) )
  232. xmlSaveFile( settingsFile )
  233. end
  234.  
  235. local showserverinfoTag = xmlFindChild( settingsFile, "showserverinfo", 0 )
  236. if not showserverinfoTag then
  237. showserverinfoTag = xmlCreateChild( settingsFile, "showserverinfo" )
  238. xmlNodeSetValue( showserverinfoTag, tostring( defaultSettings.showserverinfo ) )
  239. xmlSaveFile( settingsFile )
  240. end
  241.  
  242. local showgamemodeinfoTag = xmlFindChild( settingsFile, "showgamemodeinfo", 0 )
  243. if not showgamemodeinfoTag then
  244. showgamemodeinfoTag = xmlCreateChild( settingsFile, "showgamemodeinfo" )
  245. xmlNodeSetValue( showgamemodeinfoTag, tostring( defaultSettings.showgamemodeinfo ) )
  246. xmlSaveFile( settingsFile )
  247. end
  248.  
  249. local showteamsTag = xmlFindChild( settingsFile, "showteams", 0 )
  250. if not showteamsTag then
  251. showteamsTag = xmlCreateChild( settingsFile, "showteams" )
  252. xmlNodeSetValue( showteamsTag, tostring( defaultSettings.showteams ) )
  253. xmlSaveFile( settingsFile )
  254. end
  255.  
  256. local usecolorsTag = xmlFindChild( settingsFile, "usecolors", 0 )
  257. if not usecolorsTag then
  258. usecolorsTag = xmlCreateChild( settingsFile, "usecolors" )
  259. xmlNodeSetValue( usecolorsTag, tostring( defaultSettings.usecolors ) )
  260. xmlSaveFile( settingsFile )
  261. end
  262.  
  263. local drawspeedTag = xmlFindChild( settingsFile, "drawspeed", 0 )
  264. if not drawspeedTag then
  265. drawspeedTag = xmlCreateChild( settingsFile, "drawspeed" )
  266. xmlNodeSetValue( drawspeedTag, tostring( defaultSettings.drawspeed ) )
  267. xmlSaveFile( settingsFile )
  268. end
  269.  
  270. local scaleTag = xmlFindChild( settingsFile, "scale", 0 )
  271. if not scaleTag then
  272. scaleTag = xmlCreateChild( settingsFile, "scale" )
  273. xmlNodeSetValue( scaleTag, tostring( defaultSettings.scale ) )
  274. xmlSaveFile( settingsFile )
  275. end
  276.  
  277. local columnfontTag = xmlFindChild( settingsFile, "columnfont", 0 )
  278. if not columnfontTag then
  279. columnfontTag = xmlCreateChild( settingsFile, "columnfont" )
  280. xmlNodeSetValue( columnfontTag, tostring( defaultSettings.columnfont ) )
  281. xmlSaveFile( settingsFile )
  282. end
  283.  
  284. local contentfontTag = xmlFindChild( settingsFile, "contentfont", 0 )
  285. if not contentfontTag then
  286. contentfontTag = xmlCreateChild( settingsFile, "contentfont" )
  287. xmlNodeSetValue( contentfontTag, tostring( defaultSettings.contentfont ) )
  288. xmlSaveFile( settingsFile )
  289. end
  290.  
  291. local teamfontTag = xmlFindChild( settingsFile, "teamfont", 0 )
  292. if not teamfontTag then
  293. teamfontTag = xmlCreateChild( settingsFile, "teamfont" )
  294. xmlNodeSetValue( teamfontTag, tostring( defaultSettings.teamfont ) )
  295. xmlSaveFile( settingsFile )
  296. end
  297.  
  298. local serverinfofontTag = xmlFindChild( settingsFile, "serverinfofont", 0 )
  299. if not serverinfofontTag then
  300. serverinfofontTag = xmlCreateChild( settingsFile, "serverinfofont" )
  301. xmlNodeSetValue( serverinfofontTag, tostring( defaultSettings.serverinfofont ) )
  302. xmlSaveFile( settingsFile )
  303. end
  304.  
  305. local bg_colorTag = xmlFindChild( settingsFile, "bg_color", 0 )
  306. if not bg_colorTag then
  307. bg_colorTag = xmlCreateChild( settingsFile, "bg_color" )
  308. xmlNodeSetAttribute( bg_colorTag, "r", tostring( defaultSettings.bg_color.r ) )
  309. xmlNodeSetAttribute( bg_colorTag, "g", tostring( defaultSettings.bg_color.g ) )
  310. xmlNodeSetAttribute( bg_colorTag, "b", tostring( defaultSettings.bg_color.b ) )
  311. xmlNodeSetAttribute( bg_colorTag, "a", tostring( defaultSettings.bg_color.a ) )
  312. xmlSaveFile( settingsFile )
  313. end
  314.  
  315. local selection_colorTag = xmlFindChild( settingsFile, "selection_color", 0 )
  316. if not selection_colorTag then
  317. selection_colorTag = xmlCreateChild( settingsFile, "selection_color" )
  318. xmlNodeSetAttribute( selection_colorTag, "r", tostring( defaultSettings.selection_color.r ) )
  319. xmlNodeSetAttribute( selection_colorTag, "g", tostring( defaultSettings.selection_color.g ) )
  320. xmlNodeSetAttribute( selection_colorTag, "b", tostring( defaultSettings.selection_color.b ) )
  321. xmlNodeSetAttribute( selection_colorTag, "a", tostring( defaultSettings.selection_color.a ) )
  322. xmlSaveFile( settingsFile )
  323. end
  324.  
  325. local highlight_colorTag = xmlFindChild( settingsFile, "highlight_color", 0 )
  326. if not highlight_colorTag then
  327. highlight_colorTag = xmlCreateChild( settingsFile, "highlight_color" )
  328. xmlNodeSetAttribute( highlight_colorTag, "r", tostring( defaultSettings.highlight_color.r ) )
  329. xmlNodeSetAttribute( highlight_colorTag, "g", tostring( defaultSettings.highlight_color.g ) )
  330. xmlNodeSetAttribute( highlight_colorTag, "b", tostring( defaultSettings.highlight_color.b ) )
  331. xmlNodeSetAttribute( highlight_colorTag, "a", tostring( defaultSettings.highlight_color.a ) )
  332. xmlSaveFile( settingsFile )
  333. end
  334.  
  335. local header_colorTag = xmlFindChild( settingsFile, "header_color", 0 )
  336. if not header_colorTag then
  337. header_colorTag = xmlCreateChild( settingsFile, "header_color" )
  338. xmlNodeSetAttribute( header_colorTag, "r", tostring( defaultSettings.header_color.r ) )
  339. xmlNodeSetAttribute( header_colorTag, "g", tostring( defaultSettings.header_color.g ) )
  340. xmlNodeSetAttribute( header_colorTag, "b", tostring( defaultSettings.header_color.b ) )
  341. xmlNodeSetAttribute( header_colorTag, "a", tostring( defaultSettings.header_color.a ) )
  342. xmlSaveFile( settingsFile )
  343. end
  344.  
  345. local team_colorTag = xmlFindChild( settingsFile, "team_color", 0 )
  346. if not team_colorTag then
  347. team_colorTag = xmlCreateChild( settingsFile, "team_color" )
  348. xmlNodeSetAttribute( team_colorTag, "r", tostring( defaultSettings.team_color.r ) )
  349. xmlNodeSetAttribute( team_colorTag, "g", tostring( defaultSettings.team_color.g ) )
  350. xmlNodeSetAttribute( team_colorTag, "b", tostring( defaultSettings.team_color.b ) )
  351. xmlNodeSetAttribute( team_colorTag, "a", tostring( defaultSettings.team_color.a ) )
  352. xmlSaveFile( settingsFile )
  353. end
  354.  
  355. local border_colorTag = xmlFindChild( settingsFile, "border_color", 0 )
  356. if not border_colorTag then
  357. border_colorTag = xmlCreateChild( settingsFile, "border_color" )
  358. xmlNodeSetAttribute( border_colorTag, "r", tostring( defaultSettings.border_color.r ) )
  359. xmlNodeSetAttribute( border_colorTag, "g", tostring( defaultSettings.border_color.g ) )
  360. xmlNodeSetAttribute( border_colorTag, "b", tostring( defaultSettings.border_color.b ) )
  361. xmlNodeSetAttribute( border_colorTag, "a", tostring( defaultSettings.border_color.a ) )
  362. xmlSaveFile( settingsFile )
  363. end
  364.  
  365. local serverinfo_colorTag = xmlFindChild( settingsFile, "serverinfo_color", 0 )
  366. if not serverinfo_colorTag then
  367. serverinfo_colorTag = xmlCreateChild( settingsFile, "serverinfo_color" )
  368. xmlNodeSetAttribute( serverinfo_colorTag, "r", tostring( defaultSettings.serverinfo_color.r ) )
  369. xmlNodeSetAttribute( serverinfo_colorTag, "g", tostring( defaultSettings.serverinfo_color.g ) )
  370. xmlNodeSetAttribute( serverinfo_colorTag, "b", tostring( defaultSettings.serverinfo_color.b ) )
  371. xmlNodeSetAttribute( serverinfo_colorTag, "a", tostring( defaultSettings.serverinfo_color.a ) )
  372. xmlSaveFile( settingsFile )
  373. end
  374.  
  375. local content_colorTag = xmlFindChild( settingsFile, "content_color", 0 )
  376. if not content_colorTag then
  377. content_colorTag = xmlCreateChild( settingsFile, "content_color" )
  378. xmlNodeSetAttribute( content_colorTag, "r", tostring( defaultSettings.content_color.r ) )
  379. xmlNodeSetAttribute( content_colorTag, "g", tostring( defaultSettings.content_color.g ) )
  380. xmlNodeSetAttribute( content_colorTag, "b", tostring( defaultSettings.content_color.b ) )
  381. xmlNodeSetAttribute( content_colorTag, "a", tostring( defaultSettings.content_color.a ) )
  382. xmlSaveFile( settingsFile )
  383. end
  384.  
  385. settings.useanimation = xmlNodeGetValue( useanimationTag )
  386. settings.useanimation = iif( settings.useanimation and tostring( settings.useanimation ) == "false", false, true )
  387.  
  388. settings.toggleable = xmlNodeGetValue( toggleableTag )
  389. settings.toggleable = iif( settings.toggleable and tostring( settings.toggleable ) == "true", true, false )
  390.  
  391. settings.showserverinfo = xmlNodeGetValue( showserverinfoTag )
  392. settings.showserverinfo = iif( settings.showserverinfo and tostring( settings.showserverinfo ) == "true", true, false )
  393.  
  394. settings.showgamemodeinfo = xmlNodeGetValue( showgamemodeinfoTag )
  395. settings.showgamemodeinfo = iif( settings.showgamemodeinfo and tostring( settings.showgamemodeinfo ) == "true", true, false )
  396.  
  397. settings.showteams = xmlNodeGetValue( showteamsTag )
  398. settings.showteams = iif( settings.showteams and tostring( settings.showteams ) == "false", false, true )
  399.  
  400. settings.usecolors = xmlNodeGetValue( usecolorsTag )
  401. settings.usecolors = iif( settings.usecolors and tostring( settings.usecolors ) == "false", false, true )
  402.  
  403. settings.drawspeed = tonumber( xmlNodeGetValue( drawspeedTag ) )
  404. settings.drawspeed = iif( type( settings.drawspeed ) == "number" and settings.drawspeed >= MIN_DRAWSPEED and settings.drawspeed <= MAX_DRAWSPEED, settings.drawspeed, defaultSettings.drawspeed )
  405.  
  406. settings.scale = tonumber( xmlNodeGetValue( scaleTag ) )
  407. settings.scale = iif( type( settings.scale ) == "number" and settings.scale >= MIN_SCALE and settings.scale <= MAX_SCALE, settings.scale, defaultSettings.scale )
  408.  
  409. settings.columnfont = xmlNodeGetValue( columnfontTag )
  410. settings.columnfont = iif( fontScale[settings.columnfont], settings.columnfont, defaultSettings.columnfont )
  411.  
  412. settings.contentfont = xmlNodeGetValue( contentfontTag )
  413. settings.contentfont = iif( fontScale[settings.contentfont], settings.contentfont, defaultSettings.contentfont )
  414.  
  415. settings.teamfont = xmlNodeGetValue( teamfontTag )
  416. settings.teamfont = iif( fontScale[settings.teamfont], settings.teamfont, defaultSettings.teamfont )
  417.  
  418. settings.serverinfofont = xmlNodeGetValue( serverinfofontTag )
  419. settings.serverinfofont = iif( fontScale[settings.serverinfofont], settings.serverinfofont, defaultSettings.serverinfofont )
  420.  
  421. settings.bg_color.r = validateRange( tonumber( xmlNodeGetAttribute( bg_colorTag, "r" ) ) ) or defaultSettings.bg_color.r
  422. settings.bg_color.g = validateRange( tonumber( xmlNodeGetAttribute( bg_colorTag, "g" ) ) ) or defaultSettings.bg_color.g
  423. settings.bg_color.b = validateRange( tonumber( xmlNodeGetAttribute( bg_colorTag, "b" ) ) ) or defaultSettings.bg_color.b
  424. settings.bg_color.a = validateRange( tonumber( xmlNodeGetAttribute( bg_colorTag, "a" ) ) ) or defaultSettings.bg_color.a
  425.  
  426. settings.selection_color.r = validateRange( tonumber( xmlNodeGetAttribute( selection_colorTag, "r" ) ) ) or defaultSettings.selection_color.r
  427. settings.selection_color.g = validateRange( tonumber( xmlNodeGetAttribute( selection_colorTag, "g" ) ) ) or defaultSettings.selection_color.g
  428. settings.selection_color.b = validateRange( tonumber( xmlNodeGetAttribute( selection_colorTag, "b" ) ) ) or defaultSettings.selection_color.b
  429. settings.selection_color.a = validateRange( tonumber( xmlNodeGetAttribute( selection_colorTag, "a" ) ) ) or defaultSettings.selection_color.a
  430.  
  431. settings.highlight_color.r = validateRange( tonumber( xmlNodeGetAttribute( highlight_colorTag, "r" ) ) ) or defaultSettings.highlight_color.r
  432. settings.highlight_color.g = validateRange( tonumber( xmlNodeGetAttribute( highlight_colorTag, "g" ) ) ) or defaultSettings.highlight_color.g
  433. settings.highlight_color.b = validateRange( tonumber( xmlNodeGetAttribute( highlight_colorTag, "b" ) ) ) or defaultSettings.highlight_color.b
  434. settings.highlight_color.a = validateRange( tonumber( xmlNodeGetAttribute( highlight_colorTag, "a" ) ) ) or defaultSettings.highlight_color.a
  435.  
  436. settings.header_color.r = validateRange( tonumber( xmlNodeGetAttribute( header_colorTag, "r" ) ) ) or defaultSettings.header_color.r
  437. settings.header_color.g = validateRange( tonumber( xmlNodeGetAttribute( header_colorTag, "g" ) ) ) or defaultSettings.header_color.g
  438. settings.header_color.b = validateRange( tonumber( xmlNodeGetAttribute( header_colorTag, "b" ) ) ) or defaultSettings.header_color.b
  439. settings.header_color.a = validateRange( tonumber( xmlNodeGetAttribute( header_colorTag, "a" ) ) ) or defaultSettings.header_color.a
  440.  
  441. settings.team_color.r = validateRange( tonumber( xmlNodeGetAttribute( team_colorTag, "r" ) ) ) or defaultSettings.team_color.r
  442. settings.team_color.g = validateRange( tonumber( xmlNodeGetAttribute( team_colorTag, "g" ) ) ) or defaultSettings.team_color.g
  443. settings.team_color.b = validateRange( tonumber( xmlNodeGetAttribute( team_colorTag, "b" ) ) ) or defaultSettings.team_color.b
  444. settings.team_color.a = validateRange( tonumber( xmlNodeGetAttribute( team_colorTag, "a" ) ) ) or defaultSettings.team_color.a
  445.  
  446. settings.border_color.r = validateRange( tonumber( xmlNodeGetAttribute( border_colorTag, "r" ) ) ) or defaultSettings.border_color.r
  447. settings.border_color.g = validateRange( tonumber( xmlNodeGetAttribute( border_colorTag, "g" ) ) ) or defaultSettings.border_color.g
  448. settings.border_color.b = validateRange( tonumber( xmlNodeGetAttribute( border_colorTag, "b" ) ) ) or defaultSettings.border_color.b
  449. settings.border_color.a = validateRange( tonumber( xmlNodeGetAttribute( border_colorTag, "a" ) ) ) or defaultSettings.border_color.a
  450.  
  451. settings.serverinfo_color.r = validateRange( tonumber( xmlNodeGetAttribute( serverinfo_colorTag, "r" ) ) ) or defaultSettings.serverinfo_color.r
  452. settings.serverinfo_color.g = validateRange( tonumber( xmlNodeGetAttribute( serverinfo_colorTag, "g" ) ) ) or defaultSettings.serverinfo_color.g
  453. settings.serverinfo_color.b = validateRange( tonumber( xmlNodeGetAttribute( serverinfo_colorTag, "b" ) ) ) or defaultSettings.serverinfo_color.b
  454. settings.serverinfo_color.a = validateRange( tonumber( xmlNodeGetAttribute( serverinfo_colorTag, "a" ) ) ) or defaultSettings.serverinfo_color.a
  455.  
  456. settings.content_color.r = validateRange( tonumber( xmlNodeGetAttribute( content_colorTag, "r" ) ) ) or defaultSettings.content_color.r
  457. settings.content_color.g = validateRange( tonumber( xmlNodeGetAttribute( content_colorTag, "g" ) ) ) or defaultSettings.content_color.g
  458. settings.content_color.b = validateRange( tonumber( xmlNodeGetAttribute( content_colorTag, "b" ) ) ) or defaultSettings.content_color.b
  459. settings.content_color.a = validateRange( tonumber( xmlNodeGetAttribute( content_colorTag, "a" ) ) ) or defaultSettings.content_color.a
  460.  
  461. xmlUnloadFile( settingsFile )
  462. useAnimation = settings.useanimation
  463. scoreboardIsToggleable = settings.toggleable
  464. showServerInfo = settings.showserverinfo
  465. showGamemodeInfo = settings.showgamemodeinfo
  466. showTeams = settings.showteams
  467. useColors = settings.usecolors
  468. drawSpeed = settings.drawspeed
  469. scoreboardScale = settings.scale
  470. columnFont = settings.columnfont
  471. contentFont = settings.contentfont
  472. teamHeaderFont = settings.teamfont
  473. serverInfoFont = settings.serverinfofont
  474. cScoreboardBackground = tocolor( settings.bg_color.r, settings.bg_color.g, settings.bg_color.b, settings.bg_color.a )
  475. cSelection = tocolor( settings.selection_color.r, settings.selection_color.g, settings.selection_color.b, settings.selection_color.a )
  476. cHighlight = tocolor( settings.highlight_color.r, settings.highlight_color.g, settings.highlight_color.b, settings.highlight_color.a )
  477. cHeader = tocolor( settings.header_color.r, settings.header_color.g, settings.header_color.b, settings.header_color.a )
  478. cTeam = tocolor( settings.team_color.r, settings.team_color.g, settings.team_color.b, settings.team_color.a )
  479. cBorder = tocolor( settings.border_color.r, settings.border_color.g, settings.border_color.b, settings.border_color.a )
  480. cServerInfo = tocolor( settings.serverinfo_color.r, settings.serverinfo_color.g, settings.serverinfo_color.b, settings.serverinfo_color.a )
  481. cContent = tocolor( settings.content_color.r, settings.content_color.g, settings.content_color.b, settings.content_color.a )
  482. end
  483.  
  484. function createScoreboardSettingsWindow( posX, posY )
  485. if not windowSettings then
  486. windowSettings = guiCreateWindow( posX, posY, 323, 350, "Scoreboard settings", false )
  487. guiSetText( windowSettings, "Scoreboard settings" )
  488. guiWindowSetSizable( windowSettings, false )
  489.  
  490. labelUseAnimation = guiCreateLabel( 10, 26, 64, 15, "Use animation:", false, windowSettings )
  491. guiSetFont( labelUseAnimation, "default-small" )
  492. checkAnimationYes = guiCreateCheckBox( 101, 26, 42, 14, "yes", false, false, windowSettings )
  493. checkAnimationNo = guiCreateCheckBox( 167, 26, 42, 14, "no", false, false, windowSettings )
  494.  
  495. labelMode = guiCreateLabel( 10, 43, 64, 15, "Mode:", false, windowSettings )
  496. guiSetFont( labelMode, "default-small" )
  497. checkModeHolding = guiCreateCheckBox( 101, 43, 64, 14, "holding", false, false, windowSettings )
  498. checkModeToggled = guiCreateCheckBox( 167, 43, 64, 14, "toggled", false, false, windowSettings )
  499.  
  500. labelShowInfoOf = guiCreateLabel( 10, 60, 64, 15, "Show info of:", false, windowSettings )
  501. guiSetFont( labelShowInfoOf, "default-small" )
  502. checkServerInfoServer = guiCreateCheckBox( 101, 60, 64, 14, "server", false, false, windowSettings )
  503. checkServerInfoGamemode = guiCreateCheckBox( 167, 60, 84, 14, "gamemode", false, false, windowSettings )
  504.  
  505. labelShowTeams = guiCreateLabel( 10, 77, 64, 15, "Show teams:", false, windowSettings )
  506. guiSetFont( labelShowTeams, "default-small" )
  507. checkShowTeamsYes = guiCreateCheckBox( 101, 77, 64, 14, "yes", false, false, windowSettings )
  508. checkShowTeamsNo = guiCreateCheckBox( 167, 77, 84, 14, "no", false, false, windowSettings )
  509.  
  510. labelUseColors = guiCreateLabel( 10, 94, 64, 15, "Use colors:", false, windowSettings )
  511. guiSetFont( labelUseColors, "default-small" )
  512. checkUseColorsYes = guiCreateCheckBox( 101, 94, 64, 14, "yes", false, false, windowSettings )
  513. checkUseColorsNo = guiCreateCheckBox( 167, 94, 84, 14, "no", false, false, windowSettings )
  514.  
  515. labelDrawSpeed = guiCreateLabel( 10, 111, 64, 15, "Draw speed:", false, windowSettings )
  516. guiSetFont( labelDrawSpeed, "default-small" )
  517. scrollDrawSpeed = guiCreateScrollBar( 101, 111, 172, 14, true, false, windowSettings )
  518.  
  519. labelScale = guiCreateLabel( 10, 128, 64, 15, "Scale:", false, windowSettings )
  520. guiSetFont( labelScale, "default-small" )
  521. scrollScale = guiCreateScrollBar( 101, 128, 172, 14, true, false, windowSettings )
  522.  
  523. labelFonts = guiCreateLabel( 10, 145, 64, 15, "Fonts:", false, windowSettings )
  524. guiSetFont( labelFonts, "default-small" )
  525. buttonColumnFont = guiCreateButton( 101, 145, 87, 14, " ", false, windowSettings )
  526. buttonContentFont = guiCreateButton( 187, 145, 87, 14, " ", false, windowSettings )
  527. buttonTeamFont = guiCreateButton( 101, 162, 87, 14, " ", false, windowSettings )
  528. buttonServerInfoFont = guiCreateButton( 187, 162, 87, 14, " ", false, windowSettings )
  529.  
  530. labelBackgroundColor = guiCreateLabel( 10, 179, 74, 12, "Background color:", false, windowSettings)
  531. guiSetFont( labelBackgroundColor, "default-small" )
  532. buttonChangeBackgroundColor = guiCreateButton( 187, 179, 87, 14, "Change", false, windowSettings )
  533. guiSetFont( buttonChangeBackgroundColor, "default-bold-small" )
  534.  
  535. labelSelectionColor = guiCreateLabel( 10, 196, 74, 12, "Local player color:", false, windowSettings )
  536. guiSetFont( labelSelectionColor, "default-small" )
  537. buttonChangeSelectionColor = guiCreateButton( 187, 196, 87, 14, "Change", false, windowSettings )
  538. guiSetFont( buttonChangeSelectionColor, "default-bold-small" )
  539.  
  540. labelHighlightColor = guiCreateLabel( 10, 213, 64, 12, "Selection color:", false, windowSettings )
  541. guiSetFont( labelHighlightColor, "default-small" )
  542. buttonChangeHighlightColor = guiCreateButton( 187, 213, 87, 14, "Change", false, windowSettings )
  543. guiSetFont( buttonChangeHighlightColor, "default-bold-small" )
  544.  
  545. labelColumnHeaderColor = guiCreateLabel( 10, 230, 87, 12, "Column header color:", false, windowSettings )
  546. guiSetFont( labelColumnHeaderColor, "default-small" )
  547. buttonChangeColumnHeaderColor = guiCreateButton( 187, 230, 87, 14, "Change", false, windowSettings )
  548. guiSetFont( buttonChangeColumnHeaderColor, "default-bold-small" )
  549.  
  550. labelTeamHeaderColor = guiCreateLabel( 10, 247, 85, 12, "Team header color:", false, windowSettings )
  551. guiSetFont( labelTeamHeaderColor, "default-small" )
  552. buttonChangeTeamHeaderColor = guiCreateButton( 187, 247, 87, 14, "Change", false, windowSettings )
  553. guiSetFont( buttonChangeTeamHeaderColor, "default-bold-small" )
  554.  
  555. labelBorderlineColor = guiCreateLabel( 10, 264, 86, 12, "Border line color:", false, windowSettings )
  556. guiSetFont( labelBorderlineColor, "default-small" )
  557. buttonChangeBorderlineColor = guiCreateButton( 187, 264, 87, 14, "Change", false, windowSettings )
  558. guiSetFont( buttonChangeBorderlineColor, "default-bold-small" )
  559.  
  560. labelServerInfoColor = guiCreateLabel( 10, 281, 86, 12, "Server info color:", false, windowSettings )
  561. guiSetFont( labelServerInfoColor, "default-small" )
  562. buttonChangeServerInfoColor = guiCreateButton( 187, 281, 87, 14, "Change", false, windowSettings )
  563. guiSetFont( buttonChangeServerInfoColor, "default-bold-small" )
  564.  
  565. labelContentColor = guiCreateLabel( 10, 298, 86, 12, "Content color:", false, windowSettings )
  566. guiSetFont( labelContentColor, "default-small" )
  567. buttonChangeContentColor = guiCreateButton( 187, 298, 87, 14, "Change", false, windowSettings )
  568. guiSetFont( buttonChangeContentColor, "default-bold-small" )
  569.  
  570. buttonSaveChanges = guiCreateButton( 10, 322, 80, 15, "Save changes", false, windowSettings )
  571. guiSetFont( buttonSaveChanges, "default-small" )
  572. buttonRestoreDefaults = guiCreateButton( 95, 322, 80, 15, "Restore defaults", false, windowSettings )
  573. guiSetFont( buttonRestoreDefaults, "default-small" )
  574. buttonCancel = guiCreateButton( 200, 322, 120, 15, "Cancel", false, windowSettings )
  575. guiSetFont( buttonCancel, "default-small" )
  576. end
  577.  
  578. if type( settings.useanimation ) == "boolean" and not settings.useanimation then
  579. guiCheckBoxSetSelected( checkAnimationNo, true )
  580. guiCheckBoxSetSelected( checkAnimationYes, false )
  581. else
  582. guiCheckBoxSetSelected( checkAnimationNo, false )
  583. guiCheckBoxSetSelected( checkAnimationYes, true )
  584. end
  585. if type( settings.toggleable ) == "boolean" and settings.toggleable then
  586. guiCheckBoxSetSelected( checkModeToggled, true )
  587. guiCheckBoxSetSelected( checkModeHolding, false )
  588. else
  589. guiCheckBoxSetSelected( checkModeToggled, false )
  590. guiCheckBoxSetSelected( checkModeHolding, true )
  591. end
  592. if type( settings.showteams ) == "boolean" and not settings.showteams then
  593. guiCheckBoxSetSelected( checkShowTeamsNo, true )
  594. guiCheckBoxSetSelected( checkShowTeamsYes, false )
  595. else
  596. guiCheckBoxSetSelected( checkShowTeamsNo, false )
  597. guiCheckBoxSetSelected( checkShowTeamsYes, true )
  598. end
  599. if type( settings.usecolors ) == "boolean" and not settings.usecolors then
  600. guiCheckBoxSetSelected( checkUseColorsNo, true )
  601. guiCheckBoxSetSelected( checkUseColorsYes, false )
  602. else
  603. guiCheckBoxSetSelected( checkUseColorsNo, false )
  604. guiCheckBoxSetSelected( checkUseColorsYes, true )
  605. end
  606. guiCheckBoxSetSelected( checkServerInfoServer, settings.showserverinfo or defaultSettings.showserverinfo )
  607. guiCheckBoxSetSelected( checkServerInfoGamemode, settings.showgamemodeinfo or defaultSettings.showgamemodeinfo )
  608.  
  609. guiScrollBarSetScrollPosition( scrollDrawSpeed, ((settings.drawspeed or defaultSettings.drawspeed)-MIN_DRAWSPEED)/(MAX_DRAWSPEED-MIN_DRAWSPEED)*100 )
  610. guiScrollBarSetScrollPosition( scrollScale, ((settings.scale or defaultSettings.scale)-MIN_SCALE)/(MAX_SCALE-MIN_SCALE)*100 )
  611.  
  612. for k, v in ipairs( fontNames ) do
  613. if settings.columnfont == v then fontIndexes.column = k end
  614. if settings.contentfont == v then fontIndexes.content = k end
  615. if settings.teamfont == v then fontIndexes.team = k end
  616. if settings.serverinfofont == v then fontIndexes.serverinfo = k end
  617. end
  618.  
  619. tempColors.bg_color.r = settings.bg_color.r or defaultSettings.bg_color.r
  620. tempColors.bg_color.g = settings.bg_color.g or defaultSettings.bg_color.g
  621. tempColors.bg_color.b = settings.bg_color.b or defaultSettings.bg_color.b
  622. tempColors.bg_color.a = settings.bg_color.a or defaultSettings.bg_color.a
  623. tempColors.selection_color.r = settings.selection_color.r or defaultSettings.selection_color.r
  624. tempColors.selection_color.g = settings.selection_color.g or defaultSettings.selection_color.g
  625. tempColors.selection_color.b = settings.selection_color.b or defaultSettings.selection_color.b
  626. tempColors.selection_color.a = settings.selection_color.a or defaultSettings.selection_color.a
  627. tempColors.highlight_color.r = settings.highlight_color.r or defaultSettings.highlight_color.r
  628. tempColors.highlight_color.g = settings.highlight_color.g or defaultSettings.highlight_color.g
  629. tempColors.highlight_color.b = settings.highlight_color.b or defaultSettings.highlight_color.b
  630. tempColors.highlight_color.a = settings.highlight_color.a or defaultSettings.highlight_color.a
  631. tempColors.header_color.r = settings.header_color.r or defaultSettings.header_color.r
  632. tempColors.header_color.g = settings.header_color.g or defaultSettings.header_color.g
  633. tempColors.header_color.b = settings.header_color.b or defaultSettings.header_color.b
  634. tempColors.header_color.a = settings.header_color.a or defaultSettings.header_color.a
  635. tempColors.team_color.r = settings.team_color.r or defaultSettings.team_color.r
  636. tempColors.team_color.g = settings.team_color.g or defaultSettings.team_color.g
  637. tempColors.team_color.b = settings.team_color.b or defaultSettings.team_color.b
  638. tempColors.team_color.a = settings.team_color.a or defaultSettings.team_color.a
  639. tempColors.border_color.r = settings.border_color.r or defaultSettings.border_color.r
  640. tempColors.border_color.g = settings.border_color.g or defaultSettings.border_color.g
  641. tempColors.border_color.b = settings.border_color.b or defaultSettings.border_color.b
  642. tempColors.border_color.a = settings.border_color.a or defaultSettings.border_color.a
  643. tempColors.serverinfo_color.r = settings.serverinfo_color.r or defaultSettings.serverinfo_color.r
  644. tempColors.serverinfo_color.g = settings.serverinfo_color.g or defaultSettings.serverinfo_color.g
  645. tempColors.serverinfo_color.b = settings.serverinfo_color.b or defaultSettings.serverinfo_color.b
  646. tempColors.serverinfo_color.a = settings.serverinfo_color.a or defaultSettings.serverinfo_color.a
  647. tempColors.content_color.r = settings.content_color.r or defaultSettings.content_color.r
  648. tempColors.content_color.g = settings.content_color.g or defaultSettings.content_color.g
  649. tempColors.content_color.b = settings.content_color.b or defaultSettings.content_color.b
  650. tempColors.content_color.a = settings.content_color.a or defaultSettings.content_color.a
  651.  
  652. addEventHandler( "onClientGUIClick", windowSettings, settingsWindowClickHandler )
  653. addEventHandler( "onClientRender", getRootElement(), drawSettingsWindowColors )
  654. end
  655.  
  656. function destroyScoreboardSettingsWindow()
  657. removeEventHandler( "onClientGUIClick", windowSettings, settingsWindowClickHandler )
  658. removeEventHandler( "onClientRender", getRootElement(), drawSettingsWindowColors )
  659. destroyElement( windowSettings )
  660. if not getKeyState( "mouse2" ) then
  661. showCursor( false )
  662. end
  663. colorPicker.closeSelect()
  664. windowSettings = nil
  665. end
  666.  
  667. function settingsWindowClickHandler( button, state )
  668. if source == buttonSaveChanges then
  669. saveSettingsFromSettingsWindow()
  670. elseif source == buttonRestoreDefaults then
  671. restoreDefaultSettings()
  672. elseif source == buttonCancel then
  673. destroyScoreboardSettingsWindow()
  674.  
  675. elseif source == buttonColumnFont then
  676. if fontIndexes.column + 1 > #fontNames then
  677. fontIndexes.column = 1
  678. else
  679. fontIndexes.column = fontIndexes.column + 1
  680. end
  681. elseif source == buttonContentFont then
  682. if fontIndexes.content + 1 > #fontNames then
  683. fontIndexes.content = 1
  684. else
  685. fontIndexes.content = fontIndexes.content + 1
  686. end
  687. elseif source == buttonTeamFont then
  688. if fontIndexes.team + 1 > #fontNames then
  689. fontIndexes.team = 1
  690. else
  691. fontIndexes.team = fontIndexes.team + 1
  692. end
  693. elseif source == buttonServerInfoFont then
  694. if fontIndexes.serverinfo + 1 > #fontNames then
  695. fontIndexes.serverinfo = 1
  696. else
  697. fontIndexes.serverinfo = fontIndexes.serverinfo + 1
  698. end
  699.  
  700. elseif source == buttonChangeBackgroundColor then
  701. colorPicker.openSelect( "bg_color" )
  702. elseif source == buttonChangeSelectionColor then
  703. colorPicker.openSelect( "selection_color" )
  704. elseif source == buttonChangeHighlightColor then
  705. colorPicker.openSelect( "highlight_color" )
  706. elseif source == buttonChangeColumnHeaderColor then
  707. colorPicker.openSelect( "header_color" )
  708. elseif source == buttonChangeTeamHeaderColor then
  709. colorPicker.openSelect( "team_color" )
  710. elseif source == buttonChangeBorderlineColor then
  711. colorPicker.openSelect( "border_color" )
  712. elseif source == buttonChangeServerInfoColor then
  713. colorPicker.openSelect( "serverinfo_color" )
  714. elseif source == buttonChangeContentColor then
  715. colorPicker.openSelect( "content_color" )
  716.  
  717. elseif source == checkAnimationNo or source == checkAnimationYes then
  718. guiCheckBoxSetSelected( checkAnimationYes, false )
  719. guiCheckBoxSetSelected( checkAnimationNo, false )
  720. guiCheckBoxSetSelected( source, true )
  721. elseif source == checkModeToggled or source == checkModeHolding then
  722. guiCheckBoxSetSelected( checkModeToggled, false )
  723. guiCheckBoxSetSelected( checkModeHolding, false )
  724. guiCheckBoxSetSelected( source, true )
  725. elseif source == checkShowTeamsNo or source == checkShowTeamsYes then
  726. guiCheckBoxSetSelected( checkShowTeamsYes, false )
  727. guiCheckBoxSetSelected( checkShowTeamsNo, false )
  728. guiCheckBoxSetSelected( source, true )
  729. elseif source == checkUseColorsNo or source == checkUseColorsYes then
  730. guiCheckBoxSetSelected( checkUseColorsYes, false )
  731. guiCheckBoxSetSelected( checkUseColorsNo, false )
  732. guiCheckBoxSetSelected( source, true )
  733. end
  734. end
  735.  
  736. function drawSettingsWindowColors()
  737. local x, y = guiGetPosition( windowSettings, false )
  738.  
  739. local drawSpeed = MIN_DRAWSPEED + ((guiScrollBarGetScrollPosition( scrollDrawSpeed )/100)*(MAX_DRAWSPEED-MIN_DRAWSPEED))
  740. dxDrawText( string.format( "%.2f", drawSpeed ), x+280, y+111, x+280+33, y+111+16, cWhite, 1, "default", "left", "top", true, false, true )
  741.  
  742. local scale = MIN_SCALE + ((guiScrollBarGetScrollPosition( scrollScale )/100)*(MAX_SCALE-MIN_SCALE))
  743. dxDrawText( string.format( "%.2f", scale ), x+280, y+128, x+280+33, y+128+16, tocolor( 0, 174,255,255) or cWhite, 1, "default", "left", "top", true, false, true )
  744.  
  745. dxDrawText( "Column", x+101, y+145, x+101+87, y+145+14, tocolor( 0, 174,255,255) or cWhite, fontscale( fontNames[fontIndexes.column], 1 ), fontNames[fontIndexes.column], "center", "center", true, false, true )
  746. dxDrawText( "Content", x+187, y+145, x+187+87, y+145+14, tocolor( 0, 174,255,255) or cWhite, fontscale( fontNames[fontIndexes.content], 1 ), fontNames[fontIndexes.content], "center", "center", true, false, true )
  747. dxDrawText( "Team", x+101, y+162, x+101+87, y+162+14, cWhite, fontscale( fontNames[fontIndexes.team], 1 ), fontNames[fontIndexes.team], "center", "center", true, false, true )
  748. dxDrawText( "Server info", x+187, y+162, x+187+87, y+162+14, cWhite, fontscale( fontNames[fontIndexes.serverinfo], 1 ), fontNames[fontIndexes.serverinfo], "center", "center", true, false, true )
  749.  
  750. if tempColors.bg_color.r and tempColors.bg_color.g and tempColors.bg_color.b and tempColors.bg_color.a then
  751. dxDrawRectangle( x+101, y+179, 84, 16, tocolor( tempColors.bg_color.r, tempColors.bg_color.g, tempColors.bg_color.b, tempColors.bg_color.a ), true )
  752. end
  753. if tempColors.selection_color.r and tempColors.selection_color.g and tempColors.selection_color.b and tempColors.selection_color.a then
  754. dxDrawRectangle( x+101, y+196, 84, 16, tocolor( tempColors.selection_color.r, tempColors.selection_color.g, tempColors.selection_color.b, tempColors.selection_color.a ), true )
  755. end
  756. if tempColors.highlight_color.r and tempColors.highlight_color.g and tempColors.highlight_color.b and tempColors.highlight_color.a then
  757. dxDrawRectangle( x+101, y+213, 84, 16, tocolor( tempColors.highlight_color.r, tempColors.highlight_color.g, tempColors.highlight_color.b, tempColors.highlight_color.a ), true )
  758. end
  759. if tempColors.header_color.r and tempColors.header_color.g and tempColors.header_color.b and tempColors.header_color.a then
  760. dxDrawRectangle( x+101, y+230, 84, 16, tocolor( tempColors.header_color.r, tempColors.header_color.g, tempColors.header_color.b, tempColors.header_color.a ), true )
  761. end
  762. if tempColors.team_color.r and tempColors.team_color.g and tempColors.team_color.b and tempColors.team_color.a then
  763. dxDrawRectangle( x+101, y+247, 84, 16, tocolor( tempColors.team_color.r, tempColors.team_color.g, tempColors.team_color.b, tempColors.team_color.a ), true )
  764. end
  765. if tempColors.border_color.r and tempColors.border_color.g and tempColors.border_color.b and tempColors.border_color.a then
  766. dxDrawRectangle( x+101, y+264, 84, 16, tocolor( tempColors.border_color.r, tempColors.border_color.g, tempColors.border_color.b, tempColors.border_color.a ), true )
  767. end
  768. if tempColors.serverinfo_color.r and tempColors.serverinfo_color.g and tempColors.serverinfo_color.b and tempColors.serverinfo_color.a then
  769. dxDrawRectangle( x+101, y+281, 84, 16, tocolor( tempColors.serverinfo_color.r, tempColors.serverinfo_color.g, tempColors.serverinfo_color.b, tempColors.serverinfo_color.a ), true )
  770. end
  771. if tempColors.content_color.r and tempColors.content_color.g and tempColors.content_color.b and tempColors.content_color.a then
  772. dxDrawRectangle( x+101, y+298, 84, 16, tocolor( tempColors.content_color.r, tempColors.content_color.g, tempColors.content_color.b, tempColors.content_color.a ), true )
  773. end
  774. end
  775.  
  776. function saveSettingsFromSettingsWindow()
  777. local userSettings = {
  778. ["useanimation"] = nil,
  779. ["toggleable"] = nil,
  780. ["showserverinfo"] = nil,
  781. ["showgamemodeinfo"] = nil,
  782. ["showteams"] = nil,
  783. ["usecolors"] = nil,
  784. ["drawspeed"] = nil,
  785. ["scale"] = nil,
  786. ["columnfont"] = nil,
  787. ["contentfont"] = nil,
  788. ["teamfont"] = nil,
  789. ["serverinfofont"] = nil,
  790. ["bg_color"] = {},
  791. ["selection_color"] = {},
  792. ["highlight_color"] = {},
  793. ["header_color"] = {},
  794. ["team_color"] = {},
  795. ["border_color"] = {},
  796. ["serverinfo_color"] = {},
  797. ["content_color"] = {}
  798. }
  799.  
  800. userSettings.useanimation = iif( guiCheckBoxGetSelected( checkAnimationNo ), false, true )
  801. userSettings.toggleable = iif( guiCheckBoxGetSelected( checkModeToggled ), true, false )
  802. userSettings.showteams = iif( guiCheckBoxGetSelected( checkShowTeamsNo ), false, true )
  803. userSettings.usecolors = iif( guiCheckBoxGetSelected( checkUseColorsNo ), false, true )
  804. userSettings.showserverinfo = guiCheckBoxGetSelected( checkServerInfoServer )
  805. userSettings.showgamemodeinfo = guiCheckBoxGetSelected( checkServerInfoGamemode )
  806.  
  807. userSettings.drawspeed = string.format( "%.2f", MIN_DRAWSPEED + ( (guiScrollBarGetScrollPosition( scrollDrawSpeed )/100)*(MAX_DRAWSPEED-MIN_DRAWSPEED) ) )
  808. userSettings.drawspeed = tonumber( userSettings.drawspeed )
  809.  
  810. userSettings.scale = string.format( "%.2f", MIN_SCALE + ( (guiScrollBarGetScrollPosition( scrollScale )/100)*(MAX_SCALE-MIN_SCALE) ) )
  811. userSettings.scale = tonumber( userSettings.scale )
  812.  
  813. userSettings.columnfont = fontNames[fontIndexes.column]
  814. userSettings.contentfont = fontNames[fontIndexes.content]
  815. userSettings.teamfont = fontNames[fontIndexes.team]
  816. userSettings.serverinfofont = fontNames[fontIndexes.serverinfo]
  817.  
  818. userSettings.bg_color.r = tempColors.bg_color.r or defaultSettings.bg_color.r
  819. userSettings.bg_color.g = tempColors.bg_color.g or defaultSettings.bg_color.g
  820. userSettings.bg_color.b = tempColors.bg_color.b or defaultSettings.bg_color.b
  821. userSettings.bg_color.a = tempColors.bg_color.a or defaultSettings.bg_color.a
  822.  
  823. userSettings.selection_color.r = tempColors.selection_color.r or defaultSettings.selection_color.r
  824. userSettings.selection_color.g = tempColors.selection_color.g or defaultSettings.selection_color.g
  825. userSettings.selection_color.b = tempColors.selection_color.b or defaultSettings.selection_color.b
  826. userSettings.selection_color.a = tempColors.selection_color.a or defaultSettings.selection_color.a
  827.  
  828. userSettings.highlight_color.r = tempColors.highlight_color.r or defaultSettings.highlight_color.r
  829. userSettings.highlight_color.g = tempColors.highlight_color.g or defaultSettings.highlight_color.g
  830. userSettings.highlight_color.b = tempColors.highlight_color.b or defaultSettings.highlight_color.b
  831. userSettings.highlight_color.a = tempColors.highlight_color.a or defaultSettings.highlight_color.a
  832.  
  833. userSettings.header_color.r = tempColors.header_color.r or defaultSettings.header_color.r
  834. userSettings.header_color.g = tempColors.header_color.g or defaultSettings.header_color.g
  835. userSettings.header_color.b = tempColors.header_color.b or defaultSettings.header_color.b
  836. userSettings.header_color.a = tempColors.header_color.a or defaultSettings.header_color.a
  837.  
  838. userSettings.team_color.r = tempColors.team_color.r or defaultSettings.team_color.r
  839. userSettings.team_color.g = tempColors.team_color.g or defaultSettings.team_color.g
  840. userSettings.team_color.b = tempColors.team_color.b or defaultSettings.team_color.b
  841. userSettings.team_color.a = tempColors.team_color.a or defaultSettings.team_color.a
  842.  
  843. userSettings.border_color.r = tempColors.border_color.r or defaultSettings.border_color.r
  844. userSettings.border_color.g = tempColors.border_color.g or defaultSettings.border_color.g
  845. userSettings.border_color.b = tempColors.border_color.b or defaultSettings.border_color.b
  846. userSettings.border_color.a = tempColors.border_color.a or defaultSettings.border_color.a
  847.  
  848. userSettings.serverinfo_color.r = tempColors.serverinfo_color.r or defaultSettings.serverinfo_color.r
  849. userSettings.serverinfo_color.g = tempColors.serverinfo_color.g or defaultSettings.serverinfo_color.g
  850. userSettings.serverinfo_color.b = tempColors.serverinfo_color.b or defaultSettings.serverinfo_color.b
  851. userSettings.serverinfo_color.a = tempColors.serverinfo_color.a or defaultSettings.serverinfo_color.a
  852.  
  853. userSettings.content_color.r = tempColors.content_color.r or defaultSettings.content_color.r
  854. userSettings.content_color.g = tempColors.content_color.g or defaultSettings.content_color.g
  855. userSettings.content_color.b = tempColors.content_color.b or defaultSettings.content_color.b
  856. userSettings.content_color.a = tempColors.content_color.a or defaultSettings.content_color.a
  857.  
  858. saveSettings( userSettings )
  859. end
  860.  
  861. function restoreDefaultSettings()
  862. saveSettings( defaultSettings )
  863. end
  864.  
  865. function saveSettings( settingsTable )
  866. local settingsFile = xmlLoadFile( "settings.xml" )
  867. if not settingsFile then
  868. settingsFile = xmlCreateFile( "settings.xml", "settings" )
  869. if not settingsFile then return false end
  870. local useanimationTag = xmlCreateChild( settingsFile, "useanimation" )
  871. local toggleableTag = xmlCreateChild( settingsFile, "toggleable" )
  872. local showserverinfoTag = xmlCreateChild( settingsFile, "showserverinfo" )
  873. local showgamemodeinfoTag = xmlCreateChild( settingsFile, "showgamemodeinfo" )
  874. local showteamsTag = xmlCreateChild( settingsFile, "showteams" )
  875. local usecolorsTag = xmlCreateChild( settingsFile, "usecolors" )
  876. local drawspeedTag = xmlCreateChild( settingsFile, "drawspeed" )
  877. local scaleTag = xmlCreateChild( settingsFile, "scale" )
  878. local columnfontTag = xmlCreateChild( settingsFile, "columnfont" )
  879. local contentfontTag = xmlCreateChild( settingsFile, "contentfont" )
  880. local teamfontTag = xmlCreateChild( settingsFile, "teamfont" )
  881. local serverinfofontTag = xmlCreateChild( settingsFile, "serverinfofont" )
  882. local bg_colorTag = xmlCreateChild( settingsFile, "bg_color" )
  883. local selection_colorTag = xmlCreateChild( settingsFile, "selection_color" )
  884. local highlight_colorTag = xmlCreateChild( settingsFile, "highlight_color" )
  885. local header_colorTag = xmlCreateChild( settingsFile, "header_color" )
  886. local team_colorTag = xmlCreateChild( settingsFile, "team_color" )
  887. local border_colorTag = xmlCreateChild( settingsFile, "border_color" )
  888. local serverinfo_colorTag = xmlCreateChild( settingsFile, "serverinfo_color" )
  889. local content_colorTag = xmlCreateChild( settingsFile, "content_color" )
  890. end
  891.  
  892. local useanimationTag = xmlFindChild( settingsFile, "useanimation", 0 )
  893. if not useanimationTag then
  894. useanimationTag = xmlCreateChild( settingsFile, "useanimation" )
  895. end
  896.  
  897. local toggleableTag = xmlFindChild( settingsFile, "toggleable", 0 )
  898. if not toggleableTag then
  899. toggleableTag = xmlCreateChild( settingsFile, "toggleable" )
  900. end
  901.  
  902. local showserverinfoTag = xmlFindChild( settingsFile, "showserverinfo", 0 )
  903. if not showserverinfoTag then
  904. showserverinfoTag = xmlCreateChild( settingsFile, "showserverinfo" )
  905. end
  906.  
  907. local showgamemodeinfoTag = xmlFindChild( settingsFile, "showgamemodeinfo", 0 )
  908. if not showgamemodeinfoTag then
  909. showgamemodeinfoTag = xmlCreateChild( settingsFile, "showgamemodeinfo" )
  910. end
  911.  
  912. local showteamsTag = xmlFindChild( settingsFile, "showteams", 0 )
  913. if not showteamsTag then
  914. showteamsTag = xmlCreateChild( settingsFile, "showteams" )
  915. end
  916.  
  917. local usecolorsTag = xmlFindChild( settingsFile, "usecolors", 0 )
  918. if not usecolorsTag then
  919. usecolorsTag = xmlCreateChild( settingsFile, "usecolors" )
  920. end
  921.  
  922. local drawspeedTag = xmlFindChild( settingsFile, "drawspeed", 0 )
  923. if not drawspeedTag then
  924. drawspeedTag = xmlCreateChild( settingsFile, "drawspeed" )
  925. end
  926.  
  927. local scaleTag = xmlFindChild( settingsFile, "scale", 0 )
  928. if not scaleTag then
  929. scaleTag = xmlCreateChild( settingsFile, "scale" )
  930. end
  931.  
  932. local columnfontTag = xmlFindChild( settingsFile, "columnfont", 0 )
  933. if not columnfontTag then
  934. columnfontTag = xmlCreateChild( settingsFile, "columnfont" )
  935. end
  936.  
  937. local contentfontTag = xmlFindChild( settingsFile, "contentfont", 0 )
  938. if not contentfontTag then
  939. contentfontTag = xmlCreateChild( settingsFile, "contentfont" )
  940. end
  941.  
  942. local teamfontTag = xmlFindChild( settingsFile, "teamfont", 0 )
  943. if not teamfontTag then
  944. teamfontTag = xmlCreateChild( settingsFile, "teamfont" )
  945. end
  946.  
  947. local serverinfofontTag = xmlFindChild( settingsFile, "serverinfofont", 0 )
  948. if not serverinfofontTag then
  949. serverinfofontTag = xmlCreateChild( settingsFile, "serverinfofont" )
  950. end
  951.  
  952. local bg_colorTag = xmlFindChild( settingsFile, "bg_color", 0 )
  953. if not bg_colorTag then
  954. bg_colorTag = xmlCreateChild( settingsFile, "bg_color" )
  955. end
  956.  
  957. local selection_colorTag = xmlFindChild( settingsFile, "selection_color", 0 )
  958. if not selection_colorTag then
  959. selection_colorTag = xmlCreateChild( settingsFile, "selection_color" )
  960. end
  961.  
  962. local highlight_colorTag = xmlFindChild( settingsFile, "highlight_color", 0 )
  963. if not highlight_colorTag then
  964. highlight_colorTag = xmlCreateChild( settingsFile, "highlight_color" )
  965. end
  966.  
  967. local header_colorTag = xmlFindChild( settingsFile, "header_color", 0 )
  968. if not header_colorTag then
  969. header_colorTag = xmlCreateChild( settingsFile, "header_color" )
  970. end
  971.  
  972. local team_colorTag = xmlFindChild( settingsFile, "team_color", 0 )
  973. if not team_colorTag then
  974. team_colorTag = xmlCreateChild( settingsFile, "team_color" )
  975. end
  976.  
  977. local border_colorTag = xmlFindChild( settingsFile, "border_color", 0 )
  978. if not border_colorTag then
  979. border_colorTag = xmlCreateChild( settingsFile, "border_color" )
  980. end
  981.  
  982. local serverinfo_colorTag = xmlFindChild( settingsFile, "serverinfo_color", 0 )
  983. if not serverinfo_colorTag then
  984. serverinfo_colorTag = xmlCreateChild( settingsFile, "serverinfo_color" )
  985. end
  986.  
  987. local content_colorTag = xmlFindChild( settingsFile, "content_color", 0 )
  988. if not content_colorTag then
  989. content_colorTag = xmlCreateChild( settingsFile, "content_color" )
  990. end
  991.  
  992. xmlNodeSetValue( useanimationTag, tostring( settingsTable.useanimation ) )
  993. xmlNodeSetValue( toggleableTag, tostring( settingsTable.toggleable ) )
  994. xmlNodeSetValue( showserverinfoTag, tostring( settingsTable.showserverinfo ) )
  995. xmlNodeSetValue( showgamemodeinfoTag, tostring( settingsTable.showgamemodeinfo ) )
  996. xmlNodeSetValue( showteamsTag, tostring( settingsTable.showteams ) )
  997. xmlNodeSetValue( usecolorsTag, tostring( settingsTable.usecolors ) )
  998. xmlNodeSetValue( drawspeedTag, tostring( settingsTable.drawspeed ) )
  999. xmlNodeSetValue( scaleTag, tostring( settingsTable.scale ) )
  1000.  
  1001. xmlNodeSetValue( columnfontTag, tostring( settingsTable.columnfont ) )
  1002. xmlNodeSetValue( contentfontTag, tostring( settingsTable.contentfont ) )
  1003. xmlNodeSetValue( teamfontTag, tostring( settingsTable.teamfont ) )
  1004. xmlNodeSetValue( serverinfofontTag, tostring( settingsTable.serverinfofont ) )
  1005.  
  1006. xmlNodeSetAttribute( bg_colorTag, "r", tostring( settingsTable.bg_color.r ) )
  1007. xmlNodeSetAttribute( bg_colorTag, "g", tostring( settingsTable.bg_color.g ) )
  1008. xmlNodeSetAttribute( bg_colorTag, "b", tostring( settingsTable.bg_color.b ) )
  1009. xmlNodeSetAttribute( bg_colorTag, "a", tostring( settingsTable.bg_color.a ) )
  1010.  
  1011. xmlNodeSetAttribute( selection_colorTag, "r", tostring( settingsTable.selection_color.r ) )
  1012. xmlNodeSetAttribute( selection_colorTag, "g", tostring( settingsTable.selection_color.g ) )
  1013. xmlNodeSetAttribute( selection_colorTag, "b", tostring( settingsTable.selection_color.b ) )
  1014. xmlNodeSetAttribute( selection_colorTag, "a", tostring( settingsTable.selection_color.a ) )
  1015.  
  1016. xmlNodeSetAttribute( highlight_colorTag, "r", tostring( settingsTable.highlight_color.r ) )
  1017. xmlNodeSetAttribute( highlight_colorTag, "g", tostring( settingsTable.highlight_color.g ) )
  1018. xmlNodeSetAttribute( highlight_colorTag, "b", tostring( settingsTable.highlight_color.b ) )
  1019. xmlNodeSetAttribute( highlight_colorTag, "a", tostring( settingsTable.highlight_color.a ) )
  1020.  
  1021. xmlNodeSetAttribute( header_colorTag, "r", tostring( settingsTable.header_color.r ) )
  1022. xmlNodeSetAttribute( header_colorTag, "g", tostring( settingsTable.header_color.g ) )
  1023. xmlNodeSetAttribute( header_colorTag, "b", tostring( settingsTable.header_color.b ) )
  1024. xmlNodeSetAttribute( header_colorTag, "a", tostring( settingsTable.header_color.a ) )
  1025.  
  1026. xmlNodeSetAttribute( team_colorTag, "r", tostring( settingsTable.team_color.r ) )
  1027. xmlNodeSetAttribute( team_colorTag, "g", tostring( settingsTable.team_color.g ) )
  1028. xmlNodeSetAttribute( team_colorTag, "b", tostring( settingsTable.team_color.b ) )
  1029. xmlNodeSetAttribute( team_colorTag, "a", tostring( settingsTable.team_color.a ) )
  1030.  
  1031. xmlNodeSetAttribute( border_colorTag, "r", tostring( settingsTable.border_color.r ) )
  1032. xmlNodeSetAttribute( border_colorTag, "g", tostring( settingsTable.border_color.g ) )
  1033. xmlNodeSetAttribute( border_colorTag, "b", tostring( settingsTable.border_color.b ) )
  1034. xmlNodeSetAttribute( border_colorTag, "a", tostring( settingsTable.border_color.a ) )
  1035.  
  1036. xmlNodeSetAttribute( serverinfo_colorTag, "r", tostring( settingsTable.serverinfo_color.r ) )
  1037. xmlNodeSetAttribute( serverinfo_colorTag, "g", tostring( settingsTable.serverinfo_color.g ) )
  1038. xmlNodeSetAttribute( serverinfo_colorTag, "b", tostring( settingsTable.serverinfo_color.b ) )
  1039. xmlNodeSetAttribute( serverinfo_colorTag, "a", tostring( settingsTable.serverinfo_color.a ) )
  1040.  
  1041. xmlNodeSetAttribute( content_colorTag, "r", tostring( settingsTable.content_color.r ) )
  1042. xmlNodeSetAttribute( content_colorTag, "g", tostring( settingsTable.content_color.g ) )
  1043. xmlNodeSetAttribute( content_colorTag, "b", tostring( settingsTable.content_color.b ) )
  1044. xmlNodeSetAttribute( content_colorTag, "a", tostring( settingsTable.content_color.a ) )
  1045.  
  1046. xmlSaveFile( settingsFile )
  1047. xmlUnloadFile( settingsFile )
  1048. destroyScoreboardSettingsWindow()
  1049. readScoreboardSettings()
  1050. end
  1051.  
  1052. function validateRange( number )
  1053. if type( number ) == "number" then
  1054. local isValid = number >= 0 and number <= 255
  1055. if isValid then
  1056. return number
  1057. end
  1058. end
  1059. return false
  1060. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement