Advertisement
Guest User

_hud_util - Notesblok

a guest
Nov 19th, 2011
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.47 KB | None | 0 0
  1. #include maps\mp\_utility;
  2.  
  3. setParent( element )
  4. {
  5. if ( isDefined( self.parent ) && self.parent == element )
  6. return;
  7.  
  8. if ( isDefined( self.parent ) )
  9. self.parent removeChild( self );
  10.  
  11. self.parent = element;
  12. self.parent addChild( self );
  13.  
  14. if ( isDefined( self.point ) )
  15. self setPoint( self.point, self.relativePoint, self.xOffset, self.yOffset );
  16. else
  17. self setPoint( "TOPLEFT" );
  18. }
  19.  
  20. getParent()
  21. {
  22. return self.parent;
  23. }
  24.  
  25. addChild( element )
  26. {
  27. element.index = self.children.size;
  28. self.children[self.children.size] = element;
  29. }
  30.  
  31. removeChild( element )
  32. {
  33. element.parent = undefined;
  34.  
  35. if ( self.children[self.children.size-1] != element )
  36. {
  37. self.children[element.index] = self.children[self.children.size-1];
  38. self.children[element.index].index = element.index;
  39. }
  40. self.children[self.children.size-1] = undefined;
  41.  
  42. element.index = undefined;
  43. }
  44.  
  45.  
  46. setPoint( point, relativePoint, xOffset, yOffset, moveTime )
  47. {
  48. if ( !isDefined( moveTime ) )
  49. moveTime = 0;
  50.  
  51. element = self getParent();
  52.  
  53. if ( moveTime )
  54. self moveOverTime( moveTime );
  55.  
  56. if ( !isDefined( xOffset ) )
  57. xOffset = 0;
  58. self.xOffset = xOffset;
  59.  
  60. if ( !isDefined( yOffset ) )
  61. yOffset = 0;
  62. self.yOffset = yOffset;
  63.  
  64. self.point = point;
  65.  
  66. self.alignX = "center";
  67. self.alignY = "middle";
  68.  
  69. if ( isSubStr( point, "TOP" ) )
  70. self.alignY = "top";
  71. if ( isSubStr( point, "BOTTOM" ) )
  72. self.alignY = "bottom";
  73. if ( isSubStr( point, "LEFT" ) )
  74. self.alignX = "left";
  75. if ( isSubStr( point, "RIGHT" ) )
  76. self.alignX = "right";
  77.  
  78. if ( !isDefined( relativePoint ) )
  79. relativePoint = point;
  80.  
  81. self.relativePoint = relativePoint;
  82.  
  83. relativeX = "center_adjustable";
  84. relativeY = "middle";
  85.  
  86. if ( isSubStr( relativePoint, "TOP" ) )
  87. relativeY = "top_adjustable";
  88. if ( isSubStr( relativePoint, "BOTTOM" ) )
  89. relativeY = "bottom_adjustable";
  90. if ( isSubStr( relativePoint, "LEFT" ) )
  91. relativeX = "left_adjustable";
  92. if ( isSubStr( relativePoint, "RIGHT" ) )
  93. relativeX = "right_adjustable";
  94.  
  95. if ( element == level.uiParent )
  96. {
  97. self.horzAlign = relativeX;
  98. self.vertAlign = relativeY;
  99. }
  100. else
  101. {
  102. self.horzAlign = element.horzAlign;
  103. self.vertAlign = element.vertAlign;
  104. }
  105.  
  106.  
  107. if ( strip_suffix( relativeX, "_adjustable" ) == element.alignX )
  108. {
  109. offsetX = 0;
  110. xFactor = 0;
  111. }
  112. else if ( relativeX == "center" || element.alignX == "center" )
  113. {
  114. offsetX = int(element.width / 2);
  115. if ( relativeX == "left_adjustable" || element.alignX == "right" )
  116. xFactor = -1;
  117. else
  118. xFactor = 1;
  119. }
  120. else
  121. {
  122. offsetX = element.width;
  123. if ( relativeX == "left_adjustable" )
  124. xFactor = -1;
  125. else
  126. xFactor = 1;
  127. }
  128. self.x = element.x + (offsetX * xFactor);
  129.  
  130. if ( strip_suffix( relativeY, "_adjustable" ) == element.alignY )
  131. {
  132. offsetY = 0;
  133. yFactor = 0;
  134. }
  135. else if ( relativeY == "middle" || element.alignY == "middle" )
  136. {
  137. offsetY = int(element.height / 2);
  138. if ( relativeY == "top_adjustable" || element.alignY == "bottom" )
  139. yFactor = -1;
  140. else
  141. yFactor = 1;
  142. }
  143. else
  144. {
  145. offsetY = element.height;
  146. if ( relativeY == "top_adjustable" )
  147. yFactor = -1;
  148. else
  149. yFactor = 1;
  150. }
  151. self.y = element.y + (offsetY * yFactor);
  152.  
  153. self.x += self.xOffset;
  154. self.y += self.yOffset;
  155.  
  156. switch ( self.elemType )
  157. {
  158. case "bar":
  159. setPointBar( point, relativePoint, xOffset, yOffset );
  160. break;
  161. }
  162.  
  163. self updateChildren();
  164. }
  165.  
  166.  
  167. setPointBar( point, relativePoint, xOffset, yOffset )
  168. {
  169. self.bar.horzAlign = self.horzAlign;
  170. self.bar.vertAlign = self.vertAlign;
  171.  
  172. self.bar.alignX = "left";
  173. self.bar.alignY = self.alignY;
  174. self.bar.y = self.y;
  175.  
  176. if ( self.alignX == "left" )
  177. self.bar.x = self.x;
  178. else if ( self.alignX == "right" )
  179. self.bar.x = self.x - self.width;
  180. else
  181. self.bar.x = self.x - int(self.width / 2);
  182.  
  183. if ( self.alignY == "top" )
  184. self.bar.y = self.y;
  185. else if ( self.alignY == "bottom" )
  186. self.bar.y = self.y;
  187.  
  188. self updateBar( self.bar.frac );
  189. }
  190.  
  191.  
  192. updateBar( barFrac, rateOfChange )
  193. {
  194. if ( self.elemType == "bar" )
  195. updateBarScale( barFrac, rateOfChange );
  196. }
  197.  
  198.  
  199. updateBarScale( barFrac, rateOfChange ) // rateOfChange is optional and is in "(entire bar lengths) per second"
  200. {
  201. barWidth = int(self.width * barFrac + 0.5); // (+ 0.5 rounds)
  202.  
  203. if ( !barWidth )
  204. barWidth = 1;
  205.  
  206. self.bar.frac = barFrac;
  207. self.bar setShader( self.bar.shader, barWidth, self.height );
  208.  
  209. assertEx( barWidth <= self.width, "barWidth <= self.width: " + barWidth + " <= " + self.width + " - barFrac was " + barFrac );
  210.  
  211. //if barWidth is bigger than self.width then we are drawing more than 100%
  212. if ( isDefined( rateOfChange ) && barWidth < self.width )
  213. {
  214. if ( rateOfChange > 0 )
  215. {
  216. //printLn( "scaling from: " + barWidth + " to " + self.width + " at " + ((1 - barFrac) / rateOfChange) );
  217. assertex( ((1 - barFrac) / rateOfChange) > 0, "barFrac: " + barFrac + "rateOfChange: " + rateOfChange );
  218. self.bar scaleOverTime( (1 - barFrac) / rateOfChange, self.width, self.height );
  219. }
  220. else if ( rateOfChange < 0 )
  221. {
  222. //printLn( "scaling from: " + barWidth + " to " + 0 + " at " + (barFrac / (-1 * rateOfChange)) );
  223. assertex( (barFrac / (-1 * rateOfChange)) > 0, "barFrac: " + barFrac + "rateOfChange: " + rateOfChange );
  224. self.bar scaleOverTime( barFrac / (-1 * rateOfChange), 1, self.height );
  225. }
  226. }
  227. self.bar.rateOfChange = rateOfChange;
  228. self.bar.lastUpdateTime = getTime();
  229. }
  230.  
  231.  
  232. createFontString( font, fontScale )
  233. {
  234. fontElem = newClientHudElem( self );
  235. fontElem.elemType = "font";
  236. fontElem.font = font;
  237. fontElem.fontscale = fontScale;
  238. fontElem.baseFontScale = fontScale;
  239. fontElem.x = 0;
  240. fontElem.y = 0;
  241. fontElem.width = 0;
  242. fontElem.height = int(level.fontHeight * fontScale);
  243. fontElem.xOffset = 0;
  244. fontElem.yOffset = 0;
  245. fontElem.children = [];
  246. fontElem setParent( level.uiParent );
  247. fontElem.hidden = false;
  248. return fontElem;
  249. }
  250.  
  251.  
  252. createServerFontString( font, fontScale, team )
  253. {
  254. if ( isDefined( team ) )
  255. fontElem = newTeamHudElem( team );
  256. else
  257. fontElem = newHudElem();
  258.  
  259. fontElem.elemType = "font";
  260. fontElem.font = font;
  261. fontElem.fontscale = fontScale;
  262. fontElem.baseFontScale = fontScale;
  263. fontElem.x = 0;
  264. fontElem.y = 0;
  265. fontElem.width = 0;
  266. fontElem.height = int(level.fontHeight * fontScale);
  267. fontElem.xOffset = 0;
  268. fontElem.yOffset = 0;
  269. fontElem.children = [];
  270. fontElem setParent( level.uiParent );
  271. fontElem.hidden = false;
  272.  
  273. return fontElem;
  274. }
  275.  
  276. createServerTimer( font, fontScale, team )
  277. {
  278. if ( isDefined( team ) )
  279. timerElem = newTeamHudElem( team );
  280. else
  281. timerElem = newHudElem();
  282. timerElem.elemType = "timer";
  283. timerElem.font = font;
  284. timerElem.fontScale = fontScale;
  285. timerElem.baseFontScale = fontScale;
  286. timerElem.x = 0;
  287. timerElem.y = 0;
  288. timerElem.width = 0;
  289. timerElem.height = int(level.fontHeight * fontScale);
  290. timerElem.xOffset = 0;
  291. timerElem.yOffset = 0;
  292. timerElem.children = [];
  293. timerElem setParent( level.uiParent );
  294. timerElem.hidden = false;
  295.  
  296. return timerElem;
  297. }
  298.  
  299.  
  300. createTimer( font, fontScale )
  301. {
  302. timerElem = newClientHudElem( self );
  303. timerElem.elemType = "timer";
  304. timerElem.font = font;
  305. timerElem.fontScale = fontScale;
  306. timerElem.baseFontScale = fontScale;
  307. timerElem.x = 0;
  308. timerElem.y = 0;
  309. timerElem.width = 0;
  310. timerElem.height = int(level.fontHeight * fontScale);
  311. timerElem.xOffset = 0;
  312. timerElem.yOffset = 0;
  313. timerElem.children = [];
  314. timerElem setParent( level.uiParent );
  315. timerElem.hidden = false;
  316.  
  317. return timerElem;
  318. }
  319.  
  320.  
  321. createIcon( shader, width, height )
  322. {
  323. iconElem = newClientHudElem( self );
  324. iconElem.elemType = "icon";
  325. iconElem.x = 0;
  326. iconElem.y = 0;
  327. iconElem.width = width;
  328. iconElem.height = height;
  329. iconElem.baseWidth = iconElem.width;
  330. iconElem.baseHeight = iconElem.height;
  331. iconElem.xOffset = 0;
  332. iconElem.yOffset = 0;
  333. iconElem.children = [];
  334. iconElem setParent( level.uiParent );
  335. iconElem.hidden = false;
  336.  
  337. if ( isDefined( shader ) )
  338. {
  339. iconElem setShader( shader, width, height );
  340. iconElem.shader = shader;
  341. }
  342.  
  343. return iconElem;
  344. }
  345.  
  346.  
  347. createServerIcon( shader, width, height, team )
  348. {
  349. if ( isDefined( team ) )
  350. iconElem = newTeamHudElem( team );
  351. else
  352. iconElem = newHudElem();
  353. iconElem.elemType = "icon";
  354. iconElem.x = 0;
  355. iconElem.y = 0;
  356. iconElem.width = width;
  357. iconElem.height = height;
  358. iconElem.baseWidth = iconElem.width;
  359. iconElem.baseHeight = iconElem.height;
  360. iconElem.xOffset = 0;
  361. iconElem.yOffset = 0;
  362. iconElem.children = [];
  363. iconElem setParent( level.uiParent );
  364. iconElem.hidden = false;
  365.  
  366. if ( isDefined( shader ) )
  367. {
  368. iconElem setShader( shader, width, height );
  369. iconElem.shader = shader;
  370. }
  371.  
  372. return iconElem;
  373. }
  374.  
  375.  
  376. createServerBar( color, width, height, flashFrac, team, selected )
  377. {
  378. if ( isDefined( team ) )
  379. barElem = newTeamHudElem( team );
  380. else
  381. barElem = newHudElem();
  382. barElem.x = 0;
  383. barElem.y = 0;
  384. barElem.frac = 0;
  385. barElem.color = color;
  386. barElem.sort = -2;
  387. barElem.shader = "progress_bar_fill";
  388. barElem setShader( "progress_bar_fill", width, height );
  389. barElem.hidden = false;
  390. if ( isDefined( flashFrac ) )
  391. {
  392. barElem.flashFrac = flashFrac;
  393. // barElem thread flashThread();
  394. }
  395.  
  396. if ( isDefined( team ) )
  397. barElemBG = newTeamHudElem( team );
  398. else
  399. barElemBG = newHudElem();
  400. barElemBG.elemType = "bar";
  401. barElemBG.x = 0;
  402. barElemBG.y = 0;
  403. barElemBG.width = width;
  404. barElemBG.height = height;
  405. barElemBG.xOffset = 0;
  406. barElemBG.yOffset = 0;
  407. barElemBG.bar = barElem;
  408. barElemBG.children = [];
  409. barElemBG.sort = -3;
  410. barElemBG.color = (0,0,0);
  411. barElemBG.alpha = 0.5;
  412. barElemBG setParent( level.uiParent );
  413. barElemBG setShader( "progress_bar_bg", width, height );
  414. barElemBG.hidden = false;
  415.  
  416. return barElemBG;
  417. }
  418.  
  419. createBar( color, width, height, flashFrac )
  420. {
  421. barElem = newClientHudElem( self );
  422. barElem.x = 0 ;
  423. barElem.y = 0;
  424. barElem.frac = 0;
  425. barElem.color = color;
  426. barElem.sort = -2;
  427. barElem.shader = "progress_bar_fill";
  428. barElem setShader( "progress_bar_fill", width, height );
  429. barElem.hidden = false;
  430. if ( isDefined( flashFrac ) )
  431. {
  432. barElem.flashFrac = flashFrac;
  433. // barElem thread flashThread();
  434. }
  435.  
  436. barElemBG = newClientHudElem( self );
  437. barElemBG.elemType = "bar";
  438. barElemBG.width = width;
  439. barElemBG.height = height;
  440. barElemBG.xOffset = 0;
  441. barElemBG.yOffset = 0;
  442. barElemBG.bar = barElem;
  443. barElemBG.children = [];
  444. barElemBG.sort = -3;
  445. barElemBG.color = (0,0,0);
  446. barElemBG.alpha = 0.5;
  447. barElemBG setParent( level.uiParent );
  448. barElemBG setShader( "progress_bar_bg", width + 4, height + 4 );
  449. barElemBG.hidden = false;
  450.  
  451. return barElemBG;
  452. }
  453.  
  454. getCurrentFraction()
  455. {
  456. frac = self.bar.frac;
  457. if (isdefined(self.bar.rateOfChange))
  458. {
  459. frac += (getTime() - self.bar.lastUpdateTime) * self.bar.rateOfChange;
  460. if (frac > 1) frac = 1;
  461. if (frac < 0) frac = 0;
  462. }
  463. return frac;
  464. }
  465.  
  466. createPrimaryProgressBar( xOffset, yOffset )
  467. {
  468. if ( !isDefined( xOffset ) )
  469. xOffset = 0;
  470. if ( !isDefined( yOffset ) )
  471. yOffset = 0;
  472.  
  473. bar = createBar( (1, 1, 1), level.primaryProgressBarWidth, level.primaryProgressBarHeight );
  474. bar setPoint("CENTER", undefined, level.primaryProgressBarX + xOffset, level.primaryProgressBarY + yOffset );
  475.  
  476. return bar;
  477. }
  478. createPrimaryProgressBarText( xOffset, yOffset )
  479. {
  480. if ( !isDefined( xOffset ) )
  481. xOffset = 0;
  482. if ( !isDefined( yOffset ) )
  483. yOffset = 0;
  484.  
  485. text = createFontString( "hudbig", level.primaryProgressBarFontSize );
  486. text setPoint("CENTER", undefined, level.primaryProgressBarTextX + xOffset, level.primaryProgressBarTextY + yOffset );
  487. text.sort = -1;
  488. return text;
  489. }
  490.  
  491.  
  492. createTeamProgressBar( team )
  493. {
  494. bar = createServerBar( (1,0,0), level.teamProgressBarWidth, level.teamProgressBarHeight, undefined, team );
  495. bar setPoint("TOP", undefined, 0, level.teamProgressBarY);
  496. return bar;
  497. }
  498. createTeamProgressBarText( team )
  499. {
  500. text = createServerFontString( "default", level.teamProgressBarFontSize, team );
  501. text setPoint("TOP", undefined, 0, level.teamProgressBarTextY);
  502. return text;
  503. }
  504.  
  505.  
  506. setFlashFrac( flashFrac )
  507. {
  508. self.bar.flashFrac = flashFrac;
  509. }
  510.  
  511. hideElem()
  512. {
  513. if ( self.hidden )
  514. return;
  515.  
  516. self.hidden = true;
  517.  
  518. if ( self.alpha != 0 )
  519. self.alpha = 0;
  520.  
  521. if ( self.elemType == "bar" || self.elemType == "bar_shader" )
  522. {
  523. self.bar.hidden = true;
  524. if ( self.bar.alpha != 0 )
  525. self.bar.alpha = 0;
  526. }
  527. }
  528.  
  529. showElem()
  530. {
  531. if ( !self.hidden )
  532. return;
  533.  
  534. self.hidden = false;
  535.  
  536. if ( self.elemType == "bar" || self.elemType == "bar_shader" )
  537. {
  538. if ( self.alpha != .5 )
  539. self.alpha = .5;
  540.  
  541. self.bar.hidden = false;
  542. if ( self.bar.alpha != 1 )
  543. self.bar.alpha = 1;
  544.  
  545. }
  546. else
  547. {
  548. if ( self.alpha != 1 )
  549. self.alpha = 1;
  550. }
  551. }
  552.  
  553.  
  554. flashThread()
  555. {
  556. self endon ( "death" );
  557.  
  558. if ( !self.hidden )
  559. self.alpha = 1;
  560.  
  561. while(1)
  562. {
  563. if ( self.frac >= self.flashFrac )
  564. {
  565. if ( !self.hidden )
  566. {
  567. self fadeOverTime(0.3);
  568. self.alpha = .2;
  569. wait(0.35);
  570. self fadeOverTime(0.3);
  571. self.alpha = 1;
  572. }
  573. wait(0.7);
  574. }
  575. else
  576. {
  577. if ( !self.hidden && self.alpha != 1 )
  578. self.alpha = 1;
  579.  
  580. wait ( 0.05 );
  581. }
  582. }
  583. }
  584.  
  585.  
  586. destroyElem()
  587. {
  588. tempChildren = [];
  589.  
  590. for ( index = 0; index < self.children.size; index++ )
  591. {
  592. if ( isDefined( self.children[index] ) )
  593. tempChildren[tempChildren.size] = self.children[index];
  594. }
  595.  
  596. for ( index = 0; index < tempChildren.size; index++ )
  597. tempChildren[index] setParent( self getParent() );
  598.  
  599. if ( self.elemType == "bar" || self.elemType == "bar_shader" )
  600. {
  601. self.bar destroy();
  602. }
  603.  
  604. self destroy();
  605. }
  606.  
  607. setIconShader( shader )
  608. {
  609. self setShader( shader, self.width, self.height );
  610. self.shader = shader;
  611. }
  612.  
  613.  
  614. getIconShader( shader )
  615. {
  616. return self.shader;
  617. }
  618.  
  619.  
  620. setIconSize( width, height )
  621. {
  622. assert( isDefined( self.shader ) );
  623.  
  624. self setShader( self.shader, width, height );
  625. }
  626.  
  627.  
  628. setWidth( width )
  629. {
  630. self.width = width;
  631. }
  632.  
  633.  
  634. setHeight( height )
  635. {
  636. self.height = height;
  637. }
  638.  
  639. setSize( width, height )
  640. {
  641. self.width = width;
  642. self.height = height;
  643. }
  644.  
  645. updateChildren()
  646. {
  647. for ( index = 0; index < self.children.size; index++ )
  648. {
  649. child = self.children[index];
  650. child setPoint( child.point, child.relativePoint, child.xOffset, child.yOffset );
  651. }
  652. }
  653.  
  654.  
  655.  
  656. transitionReset()
  657. {
  658. self.x = self.xOffset;
  659. self.y = self.yOffset;
  660. if ( self.elemType == "font" )
  661. {
  662. self.fontScale = self.baseFontScale;
  663. self.label = &"";
  664. }
  665. else if ( self.elemType == "icon" )
  666. {
  667. //self scaleOverTime( 0.001, self.width, self.height );
  668. self setShader( self.shader, self.width, self.height );
  669. }
  670. self.alpha = 0;
  671. }
  672.  
  673.  
  674. transitionZoomIn( duration )
  675. {
  676. switch ( self.elemType )
  677. {
  678. case "font":
  679. case "timer":
  680. self.fontScale = 6.3;
  681. self changeFontScaleOverTime( duration );
  682. self.fontScale = self.baseFontScale;
  683. break;
  684. case "icon":
  685. self setShader( self.shader, self.width * 6, self.height * 6 );
  686. self scaleOverTime( duration, self.width, self.height );
  687. break;
  688. }
  689. }
  690.  
  691.  
  692. transitionPulseFXIn( inTime, duration )
  693. {
  694. transTime = int(inTime)*1000;
  695. showTime = int(duration)*1000;
  696.  
  697. switch ( self.elemType )
  698. {
  699. case "font":
  700. case "timer":
  701. self setPulseFX( transTime+250, showTime+transTime, transTime+250 );
  702. break;
  703. default:
  704. break;
  705. }
  706. }
  707.  
  708.  
  709. transitionSlideIn( duration, direction )
  710. {
  711. if ( !isDefined( direction ) )
  712. direction = "left";
  713.  
  714. switch ( direction )
  715. {
  716. case "left":
  717. self.x += 1000;
  718. break;
  719. case "right":
  720. self.x -= 1000;
  721. break;
  722. case "up":
  723. self.y -= 1000;
  724. break;
  725. case "down":
  726. self.y += 1000;
  727. break;
  728. }
  729. self moveOverTime( duration );
  730. self.x = self.xOffset;
  731. self.y = self.yOffset;
  732. }
  733.  
  734.  
  735. transitionSlideOut( duration, direction )
  736. {
  737. if ( !isDefined( direction ) )
  738. direction = "left";
  739.  
  740. gotoX = self.xOffset;
  741. gotoY = self.yOffset;
  742.  
  743. switch ( direction )
  744. {
  745. case "left":
  746. gotoX += 1000;
  747. break;
  748. case "right":
  749. gotoX -= 1000;
  750. break;
  751. case "up":
  752. gotoY -= 1000;
  753. break;
  754. case "down":
  755. gotoY += 1000;
  756. break;
  757. }
  758.  
  759. self.alpha = 1;
  760.  
  761. self moveOverTime( duration );
  762. self.x = gotoX;
  763. self.y = gotoY;
  764. }
  765.  
  766.  
  767. transitionZoomOut( duration )
  768. {
  769. switch ( self.elemType )
  770. {
  771. case "font":
  772. case "timer":
  773. self changeFontScaleOverTime( duration );
  774. self.fontScale = 6.3;
  775. case "icon":
  776. self scaleOverTime( duration, self.width * 6, self.height * 6 );
  777. break;
  778. }
  779. }
  780.  
  781.  
  782. transitionFadeIn( duration )
  783. {
  784. self fadeOverTime( duration );
  785. if ( isDefined( self.maxAlpha ) )
  786. self.alpha = self.maxAlpha;
  787. else
  788. self.alpha = 1;
  789. }
  790.  
  791.  
  792. transitionFadeOut( duration )
  793. {
  794. self fadeOverTime( 0.15 );
  795. self.alpha = 0;
  796. }
  797.  
  798. getWeeklyRef( chRef )
  799. {
  800. for ( chIndex = 0; chIndex < 3; chIndex++ )
  801. {
  802. weeklyId = self getPlayerData( "weeklyChallengeId", chIndex );
  803. weeklyRef = tableLookupByRow( "mp/weeklyChallengesTable.csv", weeklyId, 0 );
  804.  
  805. if ( weeklyRef == chRef )
  806. return "ch_weekly_" + chIndex;
  807. }
  808.  
  809. return "";
  810. }
  811.  
  812. getDailyRef( chRef )
  813. {
  814. for ( chIndex = 0; chIndex < 3; chIndex++ )
  815. {
  816. dailyId = self getPlayerData( "dailyChallengeId", chIndex );
  817. dailyRef = tableLookupByRow( "mp/dailyChallengesTable.csv", dailyId, 0 );
  818.  
  819. if ( dailyRef == chRef )
  820. return "ch_daily_" + chIndex;
  821. }
  822.  
  823. return "";
  824. }
  825.  
  826. ch_getProgress( refString )
  827. {
  828. if ( level.challengeInfo[refString]["type"] == 0 )
  829. return self getPlayerData( "challengeProgress", refString );
  830. //*else if ( level.challengeInfo[refString]["type"] == 1 )
  831. //* return self getPlayerData( "challengeProgress", getDailyRef( refString ) );
  832. //*else if ( level.challengeInfo[refString]["type"] == 2 )
  833. //* return self getPlayerData( "challengeProgress", getWeeklyRef( refString ) );
  834. }
  835.  
  836.  
  837. ch_getState( refString )
  838. {
  839. if ( level.challengeInfo[refString]["type"] == 0 )
  840. return self getPlayerData( "challengeState", refString );
  841. //*else if ( level.challengeInfo[refString]["type"] == 1 )
  842. //* return self getPlayerData( "challengeState", getDailyRef( refString ) );
  843. //*else if ( level.challengeInfo[refString]["type"] == 2 )
  844. //* return self getPlayerData( "challengeState", getWeeklyRef( refString ) );
  845. }
  846.  
  847.  
  848. ch_setProgress( refString, value )
  849. {
  850. if ( level.challengeInfo[refString]["type"] == 0 )
  851. return self setPlayerData( "challengeProgress", refString, value );
  852. //*else if ( level.challengeInfo[refString]["type"] == 1 )
  853. //* return self setPlayerData( "challengeProgress", getDailyRef( refString ), value );
  854. //*else if ( level.challengeInfo[refString]["type"] == 2 )
  855. //* return self setPlayerData( "challengeProgress", getWeeklyRef( refString ), value );
  856. }
  857.  
  858.  
  859. ch_setState( refString, value )
  860. {
  861. if ( level.challengeInfo[refString]["type"] == 0 )
  862. return self setPlayerData( "challengeState", refString, value );
  863. //*else if ( level.challengeInfo[refString]["type"] == 1 )
  864. //* return self setPlayerData( "challengeState", getDailyRef( refString ), value );
  865. //*else if ( level.challengeInfo[refString]["type"] == 2 )
  866. //* return self setPlayerData( "challengeState", getWeeklyRef( refString ), value );
  867. }
  868.  
  869. ch_getTarget( refString, state )
  870. {
  871. if ( level.challengeInfo[refString]["type"] == 0 )
  872. return int( tableLookup( "mp/allChallengesTable.csv", 0, refString, 6 + ((state-1)*2) ) );
  873. //*else if ( level.challengeInfo[refString]["type"] == 1 )
  874. //* return int( tableLookup( "mp/dailyChallengesTable.csv", 0, refString, 6 + ((state-1)*2) ) );
  875. //*else if ( level.challengeInfo[refString]["type"] == 2 )
  876. //* return int( tableLookup( "mp/weeklyChallengesTable.csv", 0, refString, 6 + ((state-1)*2) ) );
  877. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement