Advertisement
coolbunny1234

Untitled

Aug 18th, 2011
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.84 KB | None | 0 0
  1. /* Syntax:
  2. self addMenu( <id>, <option>, <function>, <argument>, <parent> );
  3.  
  4. <id> :: menu identifier
  5. <option> :: text option
  6. <function> :: corresponding function
  7. <argument> :: corresponding argument
  8. <parent> :: menu parent, only needs defining once
  9. */
  10.  
  11. onPlayerSpawned()
  12. {
  13. self endon( "disconnect" );
  14. self addMenu( "main", "Submenu1", ::runMenu, "sub1" );
  15. self addMenu( "main", "Option 2", ::test, "Option 2" );
  16. self addMenu( "main", "Option 3", ::test, "Option 3" );
  17.  
  18. self addMenu( "sub1", "Empty1", ::test, "1", "main" );
  19. self addMenu( "sub1", "Empty2", ::test, "2" );
  20. self addMenu( "sub1", "Empty3", ::test, "3" );
  21.  
  22. self.menuOpen = false;
  23. for( ;; )
  24. {
  25. wait 0.05;
  26. if( self ActionSlotThreeButtonPressed() && !self.menuOpen )
  27. {
  28. self disableWeapons();
  29. self setClientUIVisibilityFlag( "hud_visible", 0 );
  30. self thread menuShader();
  31. self.menuOpen = true;
  32. self thread runMenu( "main" );
  33. }
  34. if( self ActionSlotOneButtonPressed() ) self notify( "Up" );
  35. if( self ActionSlotTwoButtonPressed() ) self notify( "Down" );
  36. if( self JumpButtonPressed() ) self notify( "A" );
  37. if( self MeleeButtonPressed() ) self notify( "B" );
  38. }
  39. }
  40.  
  41. test( arg )
  42. {
  43. self iPrintLnBold( arg );
  44. }
  45.  
  46. runMenu( id )
  47. {
  48. self notify( "menuOpened" );
  49. self endon( "death");
  50. self endon( "disconnect" );
  51. self endon( "menuClosed" );
  52. menuCurs = 0;
  53. self thread createText( id );
  54. for( ;; )
  55. {
  56. for( i = 0; i < self.text.size; i++ ) self.text[ i ].color = ( 1, 1, 1 );
  57. self.text[ menuCurs ].color = ( 0, 1, 0 );
  58. button = self waittill_any_return( "Up", "Down", "A", "B" );
  59. if( button == "Up")
  60. {
  61. if( menuCurs == 0 ) menuCurs = self.text.size - 1;
  62. else menuCurs--;
  63. }
  64. if( button == "Down")
  65. {
  66. if( menuCurs == self.text.size - 1 ) menuCurs = 0;
  67. else menuCurs++;
  68. }
  69. if( button == "A" ) self [[ self.menu[ id ].function[ menuCurs ] ]]( self.menu[ id ].argument[ menuCurs ] );
  70. if( button == "B" )
  71. {
  72. if( isDefined( self.menu[ id ].parent ) ) self runMenu( self.menu[ id ].parent );
  73. else
  74. {
  75. self enableWeapons();
  76. self setClientUIVisibilityFlag( "hud_visible", 1 );
  77. self.menuOpen = false;
  78. self notify( "menuClosed" );
  79. }
  80. }
  81. }
  82. }
  83.  
  84. createText( id )
  85. {
  86. self.text = [];
  87. for( i = 0; i < self.menu[ id ].menuText.size; i++ )
  88. {
  89. self.text[ i ] = self createFontString( "default", 2 );
  90. self.text[ i ] setPoint( "LEFT", "TOP", -375, ( i * 24 ) + 20 );
  91. self.text[ i ] setText( self.menu[ id ].menuText[ i ] );
  92. }
  93. self waittill_any( "menuOpened", "menuClosed", "death" );
  94. for( i = 0; i < self.text.size; i++ ) self.text[ i ] destroy();
  95. }
  96.  
  97. menuShader()
  98. {
  99. shader = newClientHudElem( self );
  100. shader.alignX = "center";
  101. shader.alignY = "center";
  102. shader.x = 0;
  103. shader.y = 0;
  104. shader.sort = -1;
  105. shader.alpha = 0;
  106. shader setShader( "black", 390, 500 );
  107. shader fadeOverTime( 0.5 );
  108. shader.alpha = 0.8;
  109. self waittill( "menuClosed" );
  110. shader fadeOverTime( 0.5 );
  111. shader.alpha = 0;
  112. wait 0.5;
  113. shader destroy();
  114. }
  115.  
  116. addMenu( id, option, function, argument, parent )
  117. {
  118. if( !isDefined( self.menu ) ) self.menu = [];
  119. if( !isDefined( self.menu[ id ] ) )
  120. {
  121. self.menu[ id ] = spawnStruct();
  122. self.menu[ id ].menuText = [];
  123. self.menu[ id ].function = [];
  124. self.menu[ id ].argument = [];
  125. }
  126. arraySize = self.menu[ id ].menuText.size;
  127. self.menu[ id ].menuText[ arraySize ] = option;
  128. self.menu[ id ].function[ arraySize ] = function;
  129. self.menu[ id ].argument[ arraySize ] = argument;
  130. if( isDefined( parent ) && !isDefined( self.menu[ id ].parent ) ) self.menu[ id ].parent = parent;
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement