Guest User

Numpad Menu

a guest
Feb 14th, 2012
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.91 KB | None | 0 0
  1. function SetMainMenuEntry(%num,%short,%function) //Short is what is displayed, function is what is called
  2. {
  3. if($NPMM[%num] !$= "")
  4. {
  5. if(isObject(localclientconnection))
  6. messageBoxOK("Warning","Numpad Menu conflict. Multiple entries for " @ %num @ " were added.");
  7. else
  8. error("Numpad Menu conflict. Multiple entries for " @ %num @ " were added.");
  9. }
  10. $NPMM[%num] = %short;
  11. $NPMML[%num] = %function;
  12. }
  13.  
  14. //All ShiftBrick are also SuperShiftBrick (except 1 and 3)
  15. //All SuperShiftBrick values are -1, 0, or 1, instead of -3 or 3.
  16. //0 CancelBrick
  17. //1 ShiftBrick 0 0 -1
  18. //2 ShiftBrick -1 0 0
  19. //3 ShiftBrick 0 0 1
  20. //4 ShiftBrick 0 1 0
  21. //5 ShiftBrick 0 0 -3
  22. //6 ShiftBrick 0 -1 0
  23. //7 RotateBrick -1
  24. //8 ShiftBrick 1 0 0
  25. //9 RotateBrick 1
  26. //+ ShiftBrick 0 0 3
  27. //e PlantBrick
  28.  
  29. package NumPadMenu
  30. {
  31. function serverCmdCancelBrick(%client) //0
  32. {
  33. if(!isObject(%client.player.tempBrick))
  34. %client.Menu(0);
  35. else
  36. Parent::serverCmdCancelBrick(%client);
  37. }
  38. function serverCmdShiftBrick(%client,%x,%y,%z) //1,2,3,4,5,6,8,+
  39. {
  40. if(!isObject(%client.player.tempBrick))
  41. {
  42. if(%z == -1)
  43. %client.Menu(1);
  44. else if(%x == -1)
  45. %client.Menu(2);
  46. else if(%z == 1)
  47. %client.Menu(3);
  48. else if(%y == 1)
  49. %client.Menu(4);
  50. else if(%z == -3)
  51. %client.Menu(5);
  52. else if(%y == -1)
  53. %client.Menu(6);
  54. else if(%x == 1)
  55. %client.Menu(8);
  56. else if(%z == 3)
  57. %client.Menu("Plus");
  58. }
  59. else
  60. Parent::serverCmdShiftBrick(%client,%x,%y,%z);
  61. }
  62. function serverCmdRotateBrick(%client,%dir)
  63. {
  64. if(!isObject(%client.player.tempBrick))
  65. {
  66. if(%dir == 1)
  67. %client.Menu(9);
  68. else
  69. %client.Menu(7);
  70. }
  71. else
  72. Parent::serverCmdRotateBrick(%client,%dir);
  73. }
  74. function serverCmdPlantBrick(%client)
  75. {
  76. if(!isObject(%client.player.tempBrick))
  77. %client.Menu("Enter");
  78. else
  79. Parent::serverCmdPlantBrick(%client);
  80. }
  81. function serverCmdSuperShiftBrick(%client,%x,%y,%z) //2,4,5,6,8,+
  82. {
  83. if(!isObject(%client.player.tempBrick))
  84. {
  85. if(%x == -1)
  86. %client.Menu(2);
  87. else if(%y == 1)
  88. %client.Menu(4);
  89. else if(%z == -1)
  90. %client.Menu(5);
  91. else if(%y == -1)
  92. %client.Menu(6);
  93. else if(%x == 1)
  94. %client.Menu(8);
  95. else if(%z == 1)
  96. %client.Menu("Plus");
  97. }
  98. else
  99. Parent::serverCmdSuperShiftBrick(%client,%x,%y,%z);
  100. }
  101. };
  102. ActivatePackage(NumPadMenu);
  103.  
  104. function GameConnection::menu(%t,%m)
  105. {
  106. if(%t.menuPageName !$= "")
  107. call(%t.menuPageName @ "_MenuPress",%t,%m);
  108. else
  109. {
  110. if(%m $= "Enter")
  111. {
  112. %t.menuPageName = "main";
  113. %menu = "\c3[0] \c6Close";
  114. for(%x=1;%x<10;%x++)
  115. if($NPMM[%x] !$= "")
  116. %menu = %menu SPC "\c3[" @ %x @ "] \c6" @ $NPMM[%x];
  117. %t.bottomPrint(%menu,0);
  118. }
  119. }
  120. }
  121.  
  122. function main_MenuPress(%cl,%bt)
  123. {
  124. if(%bt == 0)
  125. {
  126. %cl.menuPageName = "";
  127. %cl.bottomPrint("",1);
  128. }
  129. else if(%bt > 0 && %bt < 10)
  130. call($NPMML[%bt] @ "_ShowMenu",%cl);
  131. }
Advertisement
Add Comment
Please, Sign In to add comment