hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.05.13. 10:44



Jelenlévő felhasználók

Jelenleg 580 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 580 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 3 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Buy menü korlátozása(letiltás)
HozzászólásElküldve: 2015.02.25. 21:39 
Offline
Beavatott
Avatar

Csatlakozott: 2014.10.20. 14:00
Hozzászólások: 86
Megköszönt másnak: 2 alkalommal
Megköszönték neki: 6 alkalommal
Hali azt hogyan lehet megcsinálni hogy az alap buy-menüből ne tudjanak fegyvert vásárolni ?.
Nagyon kellene az a plugin van akármi... :(
AKI MEGCSINÁLJA ANNAK MEGY A GOMB !

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Buy menü korlátozása(letiltás)
HozzászólásElküldve: 2015.02.25. 21:57 
Offline
Jómunkásember

Csatlakozott: 2012.01.29. 12:48
Hozzászólások: 408
Megköszönt másnak: 15 alkalommal
Megköszönték neki: 126 alkalommal
Vásárlási zóna blokkoló


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Buy menü korlátozása(letiltás)
HozzászólásElküldve: 2015.02.25. 22:44 
Offline
Nagyúr

Csatlakozott: 2014.05.10. 16:41
Hozzászólások: 721
Megköszönt másnak: 43 alkalommal
Megköszönték neki: 64 alkalommal
Ezis jó szerintem!

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


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 3 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 72 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole