hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.07.05. 22:05



Jelenlévő felhasználók

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

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Google [Bot]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  [12 hozzászólás ]  OldalElőző12
Szerző Üzenet
 Hozzászólás témája: Re: Hogyan érjem el...
HozzászólásElküldve:2015.02.06. 20:10 
Offline
Tud valamit
Avatar

Csatlakozott:2014.12.19. 23:49
Hozzászólások:100
Megköszönt másnak: 19 alkalommal
Megköszönték neki: 23 alkalommal
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2.  
  3. #include <amxmisc>
  4.  
  5. #include <fakemeta>
  6.  
  7.  
  8.  
  9. #define DICTIONARY "fegyver_skin_menu.txt"
  10.  
  11.  
  12.  
  13. //#define HOOK_P_MODELS
  14.  
  15. #define HOOK_V_MODELS
  16.  
  17. //#define HOOK_W_MODELS
  18.  
  19.  
  20.  
  21. new weapon_select[33]
  22.  
  23.  
  24.  
  25. new const menu_item_names[][][] = {
  26.  
  27. { "Alap Csomag", "0", "" },
  28.  
  29. { "Vadasz awp", "30", "vadasz_awp" },
  30.  
  31. { "Nuclear awp", "50", "nuclear_awp" },
  32.  
  33. { "Resistance awp", "70", "resistance_awp" },
  34.  
  35. { "Pulzus awp", "110", "pulzus_awp" },
  36.  
  37. { "Smack awp", "145", "smack_awp" },
  38.  
  39. { "Tuz awp", "170", "tuz_awp" },
  40.  
  41. { "Teli awp", "230", "teli_awp" },
  42.  
  43. { "Hexo awp", "265", "hexo_awp" },
  44.  
  45. { "Kigyobor awp", "300", "kigyobor_awp" },
  46.  
  47. { "Katonai awp", "350", "katonai_awp" },
  48.  
  49. { "Magma awp", "400", "magma_awp" }
  50.  
  51. }
  52.  
  53.  
  54.  
  55. new const models_name[][] = {
  56.  
  57. "awp.mdl"
  58.  
  59. }
  60.  
  61.  
  62.  
  63. public plugin_init() {
  64.  
  65. register_plugin(PLUGIN, VERSION, AUTHOR)
  66.  
  67.  
  68.  
  69. register_dictionary(DICTIONARY)
  70.  
  71.  
  72.  
  73. register_clcmd("say /awp", "clcmd_menu")
  74.  
  75. register_event("CurWeapon","Hook_P_V_Model","be","1=1")
  76.  
  77.  
  78.  
  79. #if defined HOOK_W_MODELS
  80.  
  81. register_forward(FM_SetModel, "Hook_W_Model", 1)
  82.  
  83. #endif
  84.  
  85. }
  86.  
  87.  
  88.  
  89. public plugin_precache() {
  90.  
  91. for(new i = 0; i < sizeof(models_name); i++) {
  92.  
  93. for(new j = 1; j < sizeof(menu_item_names); j++) {
  94.  
  95. #if defined HOOK_P_MODELS
  96.  
  97. new precache_p[256]
  98.  
  99. format(precache_p, sizeof(precache_p), "models/%s/p_%s", menu_item_names[j][2], models_name[i])
  100.  
  101.  
  102.  
  103. precache_model(precache_p)
  104.  
  105. #endif
  106.  
  107.  
  108.  
  109. #if defined HOOK_V_MODELS
  110.  
  111. new precache_v[256]
  112.  
  113. format(precache_v, sizeof(precache_v), "models/%s/v_%s", menu_item_names[j][2], models_name[i])
  114.  
  115.  
  116.  
  117. precache_model(precache_v)
  118.  
  119. #endif
  120.  
  121.  
  122.  
  123. #if defined HOOK_W_MODELS
  124.  
  125. new precache_w[256]
  126.  
  127. format(precache_w, sizeof(precache_w), "models/%s/w_%s", menu_item_names[j][2], models_name[i])
  128.  
  129.  
  130.  
  131. precache_model(precache_w)
  132.  
  133. #endif
  134.  
  135. }
  136.  
  137. }
  138.  
  139. }
  140.  
  141.  
  142.  
  143. public client_disconnect(id)
  144.  
  145. weapon_select[id] = 0
  146.  
  147.  
  148.  
  149. public W_Model_Hook(ent, model[]) {
  150.  
  151. if(!pev_valid(ent)) return FMRES_IGNORED
  152.  
  153.  
  154.  
  155. new owner = pev(ent, pev_owner)
  156.  
  157.  
  158.  
  159. for(new i = 0; i < sizeof(models_name); i++) {
  160.  
  161. new old_w[256]
  162.  
  163. format(old_w, sizeof(old_w), "models/w_%s", models_name[i])
  164.  
  165.  
  166.  
  167. new new_w[256]
  168.  
  169. format(new_w, sizeof(new_w), "models/%s/w_%s", menu_item_names[weapon_select[owner]][2], models_name[i])
  170.  
  171.  
  172.  
  173. if(equali(model, old_w) || equali(model, new_w)) {
  174.  
  175. if(weapon_select[owner] >= 1) engfunc(EngFunc_SetModel, ent, new_w)
  176.  
  177. else engfunc(EngFunc_SetModel, ent, old_w)
  178.  
  179.  
  180.  
  181. return FMRES_SUPERCEDE
  182.  
  183. }
  184.  
  185. }
  186.  
  187.  
  188.  
  189. return FMRES_IGNORED
  190.  
  191. }
  192.  
  193.  
  194.  
  195. public Hook_P_V_Model(id) {
  196.  
  197. if(!is_user_alive(id))
  198.  
  199. return PLUGIN_CONTINUE
  200.  
  201.  
  202.  
  203. static v_model[32], p_model[32]
  204.  
  205. pev(id, pev_viewmodel2, v_model, 31)
  206.  
  207. pev(id, pev_weaponmodel2, p_model,31)
  208.  
  209.  
  210.  
  211. for(new i = 0; i < sizeof(models_name); i++) {
  212.  
  213. #if defined HOOK_V_MODELS
  214.  
  215. new old_v[256]
  216.  
  217. format(old_v, sizeof(old_v), "models/v_%s", models_name[i])
  218.  
  219.  
  220.  
  221. new new_v[256]
  222.  
  223. format(new_v, sizeof(new_v), "models/%s/v_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  224.  
  225.  
  226.  
  227. if(equali(v_model, old_v) || equali(v_model, new_v)) {
  228.  
  229. if(weapon_select[id] >= 1) set_pev(id, pev_viewmodel2, new_v)
  230.  
  231. else set_pev(id, pev_viewmodel2, old_v)
  232.  
  233.  
  234.  
  235. break
  236.  
  237. }
  238.  
  239. #endif
  240.  
  241.  
  242.  
  243. #if defined HOOK_P_MODELS
  244.  
  245. new old_p[256]
  246.  
  247. format(old_p, sizeof(old_p), "models/p_%s", models_name[i])
  248.  
  249.  
  250.  
  251. new new_p[256]
  252.  
  253. format(new_p, sizeof(new_p), "models/%s/p_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  254.  
  255.  
  256.  
  257. if(equali(p_model, old_p) || equali(p_model, new_p)) {
  258.  
  259. if(weapon_select[id] >= 1) set_pev(id, pev_weaponmodel2, new_p)
  260.  
  261. else set_pev(id, pev_weaponmodel2, old_p)
  262.  
  263.  
  264.  
  265. break
  266.  
  267. }
  268.  
  269. #endif
  270.  
  271. }
  272.  
  273.  
  274.  
  275. return PLUGIN_CONTINUE
  276.  
  277. }
  278.  
  279.  
  280.  
  281.  
  282.  
  283. public clcmd_menu(id) {
  284.  
  285. new menu_line[64], menu_newline[64], i_data[64]
  286.  
  287. format(menu_line, charsmax(menu_line), "\w%L", id, "SKIN_MENU", get_user_frags(id))
  288.  
  289.  
  290.  
  291. new menu = menu_create(menu_line, "clcmd_menu_handler")
  292.  
  293.  
  294.  
  295. for(new i = 0; i < sizeof(menu_item_names); i++) {
  296.  
  297. new convert_num = str_to_num(menu_item_names[i][1])
  298.  
  299. num_to_str(i, i_data, sizeof(i_data))
  300.  
  301.  
  302.  
  303. if(get_user_frags(id) < convert_num)
  304.  
  305. format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM1", menu_item_names[i][0], convert_num)
  306.  
  307. else
  308.  
  309. format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM2", menu_item_names[i][0])
  310.  
  311. menu_additem(menu, menu_newline, i_data, 0)
  312.  
  313. }
  314.  
  315.  
  316.  
  317. menu_display(id, menu, 0)
  318.  
  319.  
  320.  
  321. return PLUGIN_HANDLED
  322.  
  323. }
  324.  
  325.  
  326.  
  327. public clcmd_menu_handler(id, menu, item) {
  328.  
  329. if(item == MENU_EXIT) {
  330.  
  331. menu_destroy(menu)
  332.  
  333. return PLUGIN_HANDLED
  334.  
  335. }
  336.  
  337.  
  338.  
  339. new data[64], szName[64]
  340.  
  341. new access, callback
  342.  
  343. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  344.  
  345.  
  346.  
  347. new key = str_to_num(data)
  348.  
  349. new convert_num = str_to_num(menu_item_names[key][1])
  350.  
  351.  
  352.  
  353. if(get_user_frags(id) < convert_num) {
  354.  
  355. client_print(id, print_chat, "%L", id, "SKIN_NOT_USE", menu_item_names[key][0], convert_num)
  356.  
  357. return PLUGIN_HANDLED
  358.  
  359. }
  360.  
  361.  
  362.  
  363. else {
  364.  
  365. weapon_select[id] = key
  366.  
  367. client_print(id, print_chat, "%L", id, "SKIN_CHOOSED", menu_item_names[key][0])
  368.  
  369. Hook_P_V_Model(id)
  370.  
  371. }
  372.  
  373.  
  374.  
  375. return PLUGIN_CONTINUE
  376.  
  377. }
  378.  
  379. return PLUGIN_HANDLED
  380.  
  381. }
  382.  
  383. public reset(id) {
  384.  
  385. client_print(id, print_chat, "A menü eléréséhez írd be: /menu");
  386.  
  387. }

_________________
[mozgo]^^^ [.:~Be4tBox~:.] ^^^[/mozgo]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Hogyan érjem el...
HozzászólásElküldve:2015.02.06. 20:18 
Offline
Nagyúr
Avatar

Csatlakozott:2014.11.16. 12:37
Hozzászólások:686
Megköszönt másnak: 32 alkalommal
Megköszönték neki: 131 alkalommal
másodszorra írom le :
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4.  
  5. #define DICTIONARY "fegyver_skin_menu.txt"
  6.  
  7. //#define HOOK_P_MODELS
  8. #define HOOK_V_MODELS
  9. //#define HOOK_W_MODELS
  10.  
  11. new weapon_select[33]
  12. new g_roundCount
  13.  
  14. new const menu_item_names[][][] = {
  15. { "Alap Csomag", "0", "" },
  16. { "Vadasz awp", "30", "vadasz_awp" },
  17. { "Nuclear awp", "50", "nuclear_awp" },
  18. { "Resistance awp", "70", "resistance_awp" },
  19. { "Pulzus awp", "110", "pulzus_awp" },
  20. { "Smack awp", "145", "smack_awp" },
  21. { "Tuz awp", "170", "tuz_awp" },
  22. { "Teli awp", "230", "teli_awp" },
  23. { "Hexo awp", "265", "hexo_awp" },
  24. { "Kigyobor awp", "300", "kigyobor_awp" },
  25. { "Katonai awp", "350", "katonai_awp" },
  26. { "Magma awp", "400", "magma_awp" }
  27. }
  28.  
  29. new const models_name[][] = {
  30. "awp.mdl"
  31. }
  32.  
  33. public plugin_init() {
  34. register_plugin("PLUGIN", "VERSION", "AUTHOR")
  35.  
  36. register_dictionary(DICTIONARY)
  37.  
  38. register_clcmd("say /awp", "clcmd_menu")
  39. register_event("CurWeapon","Hook_P_V_Model","be","1=1")
  40. register_event("RoundTime", "roundcount", "bc")
  41. register_event("TextMsg","reset_counter","a","2&#Game_C","2&#Game_w")
  42.  
  43. #if defined HOOK_W_MODELS
  44. register_forward(FM_SetModel, "Hook_W_Model", 1)
  45. #endif
  46. }
  47.  
  48. public plugin_precache() {
  49. for(new i = 0; i < sizeof(models_name); i++) {
  50. for(new j = 1; j < sizeof(menu_item_names); j++) {
  51. #if defined HOOK_P_MODELS
  52. new precache_p[256]
  53. format(precache_p, sizeof(precache_p), "models/%s/p_%s", menu_item_names[j][2], models_name[i])
  54.  
  55. precache_model(precache_p)
  56. #endif
  57.  
  58. #if defined HOOK_V_MODELS
  59. new precache_v[256]
  60. format(precache_v, sizeof(precache_v), "models/%s/v_%s", menu_item_names[j][2], models_name[i])
  61.  
  62. precache_model(precache_v)
  63. #endif
  64.  
  65. #if defined HOOK_W_MODELS
  66. new precache_w[256]
  67. format(precache_w, sizeof(precache_w), "models/%s/w_%s", menu_item_names[j][2], models_name[i])
  68.  
  69. precache_model(precache_w)
  70. #endif
  71. }
  72. }
  73. }
  74. public roundcount()
  75. if ( read_data(1) == floatround(get_cvar_float("mp_roundtime") * 60.0) ) {
  76.  
  77. ++g_roundCount
  78.  
  79. new r = random(256)
  80. new g = random(256)
  81. new b = random(256)
  82.  
  83. set_hudmessage(r,g,b, -1.0, 0.30, 0, 6.0, 6.0, 1.0, 0.15, 1)
  84. show_hudmessage(0,"A menü eléréséhez írj: /menu-t!", g_roundCount)
  85. }
  86.  
  87. public reset_counter(){
  88. g_roundCount = 0
  89. }
  90. public client_disconnect(id)
  91. weapon_select[id] = 0
  92.  
  93. public W_Model_Hook(ent, model[]) {
  94. if(!pev_valid(ent)) return FMRES_IGNORED
  95.  
  96. new owner = pev(ent, pev_owner)
  97.  
  98. for(new i = 0; i < sizeof(models_name); i++) {
  99. new old_w[256]
  100. format(old_w, sizeof(old_w), "models/w_%s", models_name[i])
  101.  
  102. new new_w[256]
  103. format(new_w, sizeof(new_w), "models/%s/w_%s", menu_item_names[weapon_select[owner]][2], models_name[i])
  104.  
  105. if(equali(model, old_w) || equali(model, new_w)) {
  106. if(weapon_select[owner] >= 1) engfunc(EngFunc_SetModel, ent, new_w)
  107. else engfunc(EngFunc_SetModel, ent, old_w)
  108.  
  109. return FMRES_SUPERCEDE
  110. }
  111. }
  112.  
  113. return FMRES_IGNORED
  114. }
  115.  
  116. public Hook_P_V_Model(id) {
  117. if(!is_user_alive(id))
  118. return PLUGIN_CONTINUE
  119.  
  120. static v_model[32], p_model[32]
  121. pev(id, pev_viewmodel2, v_model, 31)
  122. pev(id, pev_weaponmodel2, p_model,31)
  123.  
  124. for(new i = 0; i < sizeof(models_name); i++) {
  125. #if defined HOOK_V_MODELS
  126. new old_v[256]
  127. format(old_v, sizeof(old_v), "models/v_%s", models_name[i])
  128.  
  129. new new_v[256]
  130. format(new_v, sizeof(new_v), "models/%s/v_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  131.  
  132. if(equali(v_model, old_v) || equali(v_model, new_v)) {
  133. if(weapon_select[id] >= 1) set_pev(id, pev_viewmodel2, new_v)
  134. else set_pev(id, pev_viewmodel2, old_v)
  135.  
  136. break
  137. }
  138. #endif
  139.  
  140. #if defined HOOK_P_MODELS
  141. new old_p[256]
  142. format(old_p, sizeof(old_p), "models/p_%s", models_name[i])
  143.  
  144. new new_p[256]
  145. format(new_p, sizeof(new_p), "models/%s/p_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  146.  
  147. if(equali(p_model, old_p) || equali(p_model, new_p)) {
  148. if(weapon_select[id] >= 1) set_pev(id, pev_weaponmodel2, new_p)
  149. else set_pev(id, pev_weaponmodel2, old_p)
  150.  
  151. break
  152. }
  153. #endif
  154. }
  155.  
  156. return PLUGIN_CONTINUE
  157. }
  158.  
  159.  
  160. public clcmd_menu(id) {
  161. new menu_line[64], menu_newline[64], i_data[64]
  162. format(menu_line, charsmax(menu_line), "\w%L", id, "SKIN_MENU", get_user_frags(id))
  163.  
  164. new menu = menu_create(menu_line, "clcmd_menu_handler")
  165.  
  166. for(new i = 0; i < sizeof(menu_item_names); i++) {
  167. new convert_num = str_to_num(menu_item_names[i][1])
  168. num_to_str(i, i_data, sizeof(i_data))
  169.  
  170. if(get_user_frags(id) < convert_num)
  171. format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM1", menu_item_names[i][0], convert_num)
  172. else
  173. format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM2", menu_item_names[i][0])
  174. menu_additem(menu, menu_newline, i_data, 0)
  175. }
  176.  
  177. menu_display(id, menu, 0)
  178.  
  179. return PLUGIN_HANDLED
  180. }
  181.  
  182. public clcmd_menu_handler(id, menu, item) {
  183. if(item == MENU_EXIT) {
  184. menu_destroy(menu)
  185. return PLUGIN_HANDLED
  186. }
  187.  
  188. new data[64], szName[64]
  189. new access, callback
  190. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  191.  
  192. new key = str_to_num(data)
  193. new convert_num = str_to_num(menu_item_names[key][1])
  194.  
  195. if(get_user_frags(id) < convert_num) {
  196. client_print(id, print_chat, "%L", id, "SKIN_NOT_USE", menu_item_names[key][0], convert_num)
  197. return PLUGIN_HANDLED
  198. }
  199.  
  200. else {
  201. weapon_select[id] = key
  202. client_print(id, print_chat, "%L", id, "SKIN_CHOOSED", menu_item_names[key][0])
  203. Hook_P_V_Model(id)
  204. }
  205.  
  206. return PLUGIN_CONTINUE
  207. }

_________________
Kép
"I wouldn't hold my breath if I was you
Cause I'll forget but I'll never forgive you
Don't you know, don't you know?
True friends stab you in the front."


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  [12 hozzászólás ]  OldalElőző12


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 18 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