hlmod.hu
https://hlmod.hu/

Vasarlas(buy)tiltó
https://hlmod.hu/viewtopic.php?f=29&t=13417
Oldal: 1 / 1

Szerző:  sHockeR [ 2013.12.23. 09:35 ]
Hozzászólás témája:  Vasarlas(buy)tiltó

Olyan plugin kellene ami megakadályozza a "B" betű nyomását.
Vagy nemtom hogy lenne jobb.
Az a lényeg h netudjanak vásárolni.
Ha megnyomják a vásárlást irja ki chatbe sárgával(ha megoldható)vagy zölddel hogy
[/size]
Furien módba nemtudsz vásárolni!

[size=200]Aki megcsinálja megy a gomb

Szerző:  Beckx [ 2013.12.23. 10:27 ]
Hozzászólás témája:  Re: Vasarlas(buy)tiltó

Próbáld meg!
SMA Forráskód: [ Mindet kijelol ]
  1.  
  2. #include <amxmodx>
  3. #include <fakemeta>
  4.  
  5. // plugin's main information
  6. #define PLUGIN_NAME "Buyzone Range"
  7. #define PLUGIN_VERSION "0.1"
  8. #define PLUGIN_AUTHOR "VEN"
  9.  
  10. // OPTIONS BELOW
  11.  
  12. // CVAR name and its default value
  13. #define CVAR_NAME "bz_range"
  14. #define CVAR_DEF "1"
  15.  
  16. // uncomment to disable automatic 32/64bit processor detection
  17. // possible values is <0: 32bit | 1: 64bit>
  18. //#define PROCESSOR_TYPE 0
  19.  
  20. // OPTIONS ABOVE
  21.  
  22. // mapzone player's private data offset
  23. #define OFFSET_32BIT 235
  24. #define OFFSET_64BIT 268
  25.  
  26. // offset's linux difference
  27. #define OFFSET_LINUX_DIFF 5
  28.  
  29. // buyzone bit
  30. #define BIT_BUYZONE (1<<0)
  31.  
  32. // determination of actual offsets
  33. #if !defined PROCESSOR_TYPE // is automatic 32/64bit processor detection?
  34. #if cellbits == 32 // is the size of a cell 32 bits?
  35. // then considering processor as 32 bit
  36. #define OFFSET OFFSET_32BIT
  37. #else // in other case considering the size of a cell as 64 bits
  38. // and then considering processor as 64 bit
  39. #define OFFSET OFFSET_64BIT
  40. #endif
  41. #else // processor type is specified by PROCESSOR_TYPE define
  42. #if PROCESSOR_TYPE == 0 // 32bit processor defined
  43. #define OFFSET OFFSET_32BIT
  44. #else // considering that defined 64bit processor
  45. #define OFFSET OFFSET_64BIT
  46. #endif
  47. #endif
  48.  
  49. // get/set mapzone bits
  50. #define CS_GET_USER_MAPZONES(%1) get_pdata_int(%1, OFFSET, OFFSET_LINUX_DIFF)
  51. #define CS_SET_USER_MAPZONES(%1,%2) set_pdata_int(%1, OFFSET, %2, OFFSET_LINUX_DIFF)
  52.  
  53. // fake buyzone absmin and absmax
  54. new Float:g_buyzone_min[3] = {-8192.0, -8192.0, -8192.0}
  55. new Float:g_buyzone_max[3] = {-8191.0, -8191.0, -8191.0}
  56.  
  57. new g_buyzone
  58. new g_pcvar
  59.  
  60. new bool:g_enabled
  61. new g_bit
  62.  
  63. new bool:g_new_round
  64. new g_maxplayers
  65.  
  66. #define MAX_PLAYERS 32
  67. new bool:g_alive[MAX_PLAYERS + 1]
  68.  
  69. new g_msgid_icon
  70. new g_icon_name[] = "buyzone"
  71.  
  72. #define ICON_R 0
  73. #define ICON_G 160
  74. #define ICON_B 0
  75.  
  76. public plugin_init() {
  77. register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
  78.  
  79. g_pcvar = register_cvar(CVAR_NAME, CVAR_DEF)
  80.  
  81. register_clcmd("buy", "menu_block")
  82. register_clcmd("buyequip", "menu_block")
  83. register_clcmd("fullupdate", "clcmd_fullupdate")
  84.  
  85. register_event("HLTV", "event_new_round", "a", "1=0", "2=0")
  86. register_event("ResetHUD", "event_player_alive", "be")
  87. register_event("Health", "event_player_dead", "bd", "1=0")
  88.  
  89. register_forward(FM_PlayerPostThink, "forward_player_postthink")
  90.  
  91. g_msgid_icon = get_user_msgid("StatusIcon")
  92. register_message(g_msgid_icon, "message_status_icon")
  93.  
  94. g_maxplayers = get_maxplayers()
  95.  
  96. g_buyzone = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "func_buyzone"))
  97. dllfunc(DLLFunc_Spawn, g_buyzone)
  98. engfunc(EngFunc_SetSize, g_buyzone, g_buyzone_min, g_buyzone_max)
  99.  
  100. update_state_vars()
  101. }
  102.  
  103. public forward_player_postthink(id) {
  104. if (g_alive[id] && g_enabled) {
  105. switch (g_bit) {
  106. case BIT_BUYZONE: dllfunc(DLLFunc_Touch, g_buyzone, id)
  107. default: CS_SET_USER_MAPZONES(id, CS_GET_USER_MAPZONES(id) & ~BIT_BUYZONE)
  108. }
  109. }
  110. }
  111.  
  112. public event_new_round() {
  113. g_new_round = true
  114. set_task(0.1, "task_unset_var")
  115. update_state_vars()
  116. }
  117.  
  118. public task_unset_var() {
  119. g_new_round = false
  120. }
  121.  
  122. public event_player_alive(id) {
  123. g_alive[id] = true
  124.  
  125. if (g_new_round) {
  126. if (g_enabled)
  127. draw_buyzone_icon(id, g_bit)
  128. }
  129. else {
  130. update_state_vars()
  131. if (g_enabled) {
  132. for (new i = 1; i <= g_maxplayers; ++i) {
  133. if (g_alive[i])
  134. draw_buyzone_icon(i, g_bit)
  135. }
  136. }
  137. }
  138. }
  139.  
  140. public event_player_dead(id) {
  141. g_alive[id] = false
  142. }
  143.  
  144. public client_disconnect(id) {
  145. g_alive[id] = false
  146. }
  147.  
  148. public message_status_icon(msg_id, msg_dest, id) {
  149. if (!g_alive[id] || !g_enabled)
  150. return PLUGIN_CONTINUE
  151.  
  152. new icon[8]
  153. get_msg_arg_string(2, icon, 7)
  154. if (equal(icon, g_icon_name))
  155. return PLUGIN_HANDLED
  156.  
  157. return PLUGIN_CONTINUE
  158. }
  159.  
  160. public menu_block(id) {
  161. if (g_alive[id] && g_enabled && !g_bit)
  162. return PLUGIN_HANDLED
  163.  
  164. return PLUGIN_CONTINUE
  165. }
  166.  
  167. public clcmd_fullupdate() {
  168. return PLUGIN_HANDLED
  169. }
  170.  
  171. update_state_vars() {
  172. new cvar_value = get_pcvar_num(g_pcvar)
  173. g_enabled = true
  174. switch (cvar_value) {
  175. case 0: g_bit = 0
  176. case 1: g_enabled = false
  177. default: g_bit = BIT_BUYZONE
  178. }
  179. }
  180.  
  181. draw_buyzone_icon(id, draw) {
  182. message_begin(MSG_ONE, g_msgid_icon, _, id)
  183. write_byte(draw)
  184. write_string(g_icon_name)
  185. if (draw) {
  186. write_byte(ICON_R)
  187. write_byte(ICON_G)
  188. write_byte(ICON_B)
  189. }
  190. message_end()
  191. }

Szerző:  sHockeR [ 2013.12.23. 10:48 ]
Hozzászólás témája:  Re: Vasarlas(buy)tiltó

A szöveg nemmegy de am jó kösz ment a gomb

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/