hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.28. 11:48



Jelenlévő felhasználók

Jelenleg 218 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 218 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  [ 7 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Vault rendszer
HozzászólásElküldve: 2015.04.05. 10:51 
Offline
Nagyúr
Avatar

Csatlakozott: 2014.08.24. 18:28
Hozzászólások: 584
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 120 alkalommal
Helló! :hi:

Ügyködtem egy kicsit, és szerettem volna RaZzoR Fegyver Skin Menüje alapján készíteni egyet úgy, hogy azt mentse az öléseket. Két napnyi szenvedés után úgy döntöttem, megkérdezem a kedves fórumozókat, hogy hol, és mit rontottam el.
SMA Forráskód: [ Mindet kijelol ]
  1.  
  2. #include <amxmodx>
  3. #include <amxmisc>
  4. #include <fakemeta>
  5. #include <nvault>
  6. #include <fun>
  7.  
  8.  
  9. #define PLUGIN "FegyverSkinMenu"
  10. #define VERSION "1.0"
  11. #define AUTHOR "RaZzoR"
  12.  
  13. #define DICTIONARY "fegyver_skin_menu.txt"
  14.  
  15. #define HOOK_V_MODELS
  16.  
  17. #define PKILLS get_user_frags
  18.  
  19. new vault
  20. new kill[33], skin[33], skin_kill, skin_hskill, skin_knifekill
  21. new SAVE_PKILLS
  22.  
  23. new weapon_select[33]
  24.  
  25. new const menu_item_names[][][] = {
  26. { "Alap Csomag", "0", "alap" },
  27. { "BASIC Csomag", "10", "hhskins/basic" },
  28. { "Rozsdas Csomag", "100", "hhskins/rozsdas" },
  29. { "Bronz Csomag", "200", "hhskins/bronz" },
  30. { "Flamed Csomag", "400", "hhskins/flamed" },
  31. { "Arany Csomag", "800", "hhskins/arany" },
  32. { "CS:GO Csomag", "1600", "hhskins/go" },
  33. { "Crysis Csomag", "3200", "hhskins/crysis" },
  34. { "Sectio8 Csomag", "6400", "hhskins/sec8" },
  35. { "SF2 Csomag", "12800", "hhskins/sf2" },
  36. { "STALKER Csomag", "25600", "hhskins/stalker" }
  37. }
  38.  
  39. new const models_name[][] = {
  40. "m4a1.mdl",
  41. "ak47.mdl",
  42. "awp.mdl",
  43. "m249.mdl",
  44. "aug.mdl",
  45. "famas.mdl",
  46. "galil.mdl",
  47. "mp5navy.mdl",
  48. "xm1014.mdl",
  49. "m3.mdl",
  50. "scout.mdl",
  51. "deagle.mdl",
  52. "knife.mdl"
  53. }
  54.  
  55. public plugin_init() {
  56. register_plugin(PLUGIN, VERSION, AUTHOR)
  57.  
  58. register_dictionary(DICTIONARY)
  59.  
  60. register_clcmd("say /menu", "clcmd_menu")
  61. register_event("CurWeapon","Hook_P_V_Model","be","1=1")
  62. register_clcmd("say /oles", "oles")
  63.  
  64. register_cvar("sima_oles", "2");
  65. register_cvar("hs_oles", "2");
  66. register_cvar("kes_oles", "1");
  67.  
  68. skin_kill = get_cvar_num("sima_oles");
  69. skin_hskill = get_cvar_num("hs_oles");
  70. skin_knifekill = get_cvar_num("kes_oles");
  71.  
  72.  
  73. register_event("DeathMsg", "death", "a")
  74.  
  75. vault = nvault_open("hhskin")
  76.  
  77. SAVE_PKILLS = register_cvar("save_pkills", "1")
  78. }
  79.  
  80. public plugin_precache() {
  81. for(new i = 0; i < sizeof(models_name); i++) {
  82. for(new j = 1; j < sizeof(menu_item_names); j++) {
  83. #if defined HOOK_P_MODELS
  84. new precache_p[256]
  85. format(precache_p, sizeof(precache_p), "models/%s/p_%s", menu_item_names[j][2], models_name[i])
  86.  
  87. precache_model(precache_p)
  88. #endif
  89.  
  90. #if defined HOOK_V_MODELS
  91. new precache_v[256]
  92. format(precache_v, sizeof(precache_v), "models/%s/v_%s", menu_item_names[j][2], models_name[i])
  93.  
  94. precache_model(precache_v)
  95. #endif
  96.  
  97. #if defined HOOK_W_MODELS
  98. new precache_w[256]
  99. format(precache_w, sizeof(precache_w), "models/%s/w_%s", menu_item_names[j][2], models_name[i])
  100.  
  101. precache_model(precache_w)
  102. #endif
  103. }
  104. }
  105. }
  106. public Hook_P_V_Model(id) {
  107. if(!is_user_alive(id))
  108. return PLUGIN_CONTINUE
  109.  
  110. static v_model[32], p_model[32]
  111. pev(id, pev_viewmodel2, v_model, 31)
  112. pev(id, pev_weaponmodel2, p_model,31)
  113.  
  114. for(new i = 0; i < sizeof(models_name); i++) {
  115. #if defined HOOK_V_MODELS
  116. new old_v[256]
  117. format(old_v, sizeof(old_v), "models/v_%s", models_name[i])
  118.  
  119. new new_v[256]
  120. format(new_v, sizeof(new_v), "models/%s/v_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  121.  
  122. if(equali(v_model, old_v) || equali(v_model, new_v)) {
  123. if(weapon_select[id] >= 1) set_pev(id, pev_viewmodel2, new_v)
  124. else set_pev(id, pev_viewmodel2, old_v)
  125.  
  126. break
  127. }
  128. #endif
  129.  
  130. #if defined HOOK_P_MODELS
  131. new old_p[256]
  132. format(old_p, sizeof(old_p), "models/p_%s", models_name[i])
  133.  
  134. new new_p[256]
  135. format(new_p, sizeof(new_p), "models/%s/p_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  136.  
  137. if(equali(p_model, old_p) || equali(p_model, new_p)) {
  138. if(weapon_select[id] >= 1) set_pev(id, pev_weaponmodel2, new_p)
  139. else set_pev(id, pev_weaponmodel2, old_p)
  140.  
  141. break
  142. }
  143. #endif
  144. }
  145.  
  146. return PLUGIN_CONTINUE
  147. }
  148.  
  149. public clcmd_menu(id) {
  150. new menu_line[64], menu_newline[64], i_data[64]
  151. format(menu_line, charsmax(menu_line), "\w%L", id, "SKIN_MENU", get_user_frags(id))
  152.  
  153. new menu = menu_create(menu_line, "clcmd_menu_handler")
  154.  
  155. for(new i = 0; i < sizeof(menu_item_names); i++) {
  156. new convert_num = str_to_num(menu_item_names[i][1])
  157. num_to_str(i, i_data, sizeof(i_data))
  158.  
  159. if(get_user_frags(id) < convert_num)
  160. format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM1", menu_item_names[i][0], convert_num)
  161. else
  162. format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM2", menu_item_names[i][0])
  163. menu_additem(menu, menu_newline, i_data, 0)
  164. }
  165.  
  166. menu_display(id, menu, 0)
  167.  
  168. return PLUGIN_HANDLED
  169. }
  170.  
  171. public clcmd_menu_handler(id, menu, item) {
  172. if(item == MENU_EXIT) {
  173. menu_destroy(menu)
  174. return PLUGIN_HANDLED
  175. }
  176.  
  177. new data[64], szName[64]
  178. new access, callback
  179. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  180.  
  181. new key = str_to_num(data)
  182. new convert_num = str_to_num(menu_item_names[key][1])
  183.  
  184. if(get_user_frags(id) < convert_num) {
  185. client_print(id, print_chat, "%L", id, "SKIN_NOT_USE", menu_item_names[key][0], convert_num)
  186. return PLUGIN_HANDLED
  187. }
  188.  
  189. else {
  190. weapon_select[id] = key
  191. client_print(id, print_chat, "%L", id, "SKIN_CHOOSED", menu_item_names[key][0])
  192. Hook_P_V_Model(id)
  193. }
  194.  
  195. return PLUGIN_CONTINUE
  196. }
  197. public death(id)
  198. {
  199. new attacker = read_data( 1 );
  200. new victim = read_data( 2 );
  201.  
  202. if(attacker == victim || ! is_user_connected(gyilkos) || ! is_user_connected(aldozat))
  203. {
  204. return PLUGIN_HANDLED;
  205. }
  206. new olesekert = skin_kill;
  207.  
  208. if(read_data(3))
  209. {
  210. olesekert += skin_hskill;
  211. }
  212.  
  213. static Fegyver[26];
  214.  
  215. read_data(4, Fegyver, sizeof(Fegyver) -1);
  216.  
  217. if(equal(Fegyver,"knife"))
  218. {
  219. olesekert += skin_knifekill;
  220. }
  221. kill[attacker] += olesekert;
  222.  
  223. return PLUGIN_HANDLED;
  224. }
  225. stock log_kill(attacker, victim, fegyver[],fejloves) {
  226. user_silentkill( victim );
  227.  
  228. message_begin( MSG_ALL, get_user_msgid( "DeathMsg" ), {0,0,0}, 0 );
  229. write_byte( attacker );
  230. write_byte( victim );
  231. write_byte( fejloves );
  232. write_string( fegyver );
  233. message_end();
  234.  
  235. new kill = get_user_frags( attacker );
  236. set_user_frags( attacker, kill++ );
  237. new elvetel = get_user_frags( victim );
  238. set_user_frags( victim, elvetel++ );
  239.  
  240. return PLUGIN_CONTINUE
  241. }
  242. public client_connect(id)
  243. {
  244. if(get_pcvar_num(SAVE_PKILLS) == 1)
  245. {
  246. LoadData(id)
  247. }
  248. }
  249. public client_disconnect(id)
  250. {
  251. weapon_select[id] = 0
  252. if(get_pcvar_num(SAVE_PKILLS) == 1)
  253. {
  254. SaveData(id)
  255. }
  256. }
  257. public SaveData(id)
  258. {
  259. new vaultkey[64],vaultdata[256], authid[32]
  260. get_user_authid(id, authid, 31)
  261. format(vaultkey,63,"%s-SKIN", authid)
  262. format(vaultdata,255,"%i#%i#", kill[id],skin[id])
  263. nvault_set(vault,vaultkey,vaultdata)
  264. return PLUGIN_CONTINUE
  265. }
  266. public LoadData(id)
  267. {
  268. new vaultkey[64],vaultdata[256], authid[32]
  269. get_user_authid(id, authid, 31)
  270. format(vaultkey,63,"%s-SKIN", authid)
  271. format(vaultdata,255,"%i#%i#",kill[id],skin[id])
  272. nvault_get(vault,vaultkey,vaultdata,255)
  273. replace_all(vaultdata, 255, "#", " ")
  274. new str_num[32], skin_num[32]
  275. parse(vaultdata, str_num, 31, skin_num, 31)
  276. kill[id] = str_to_num(str_num)
  277. skin[id] = str_to_num(skin_num)
  278. return PLUGIN_CONTINUE
  279. }


Előre is köszönök mindent. :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Vault rendszer
HozzászólásElküldve: 2015.04.05. 10:54 
Offline
Senior Tag
Avatar

Csatlakozott: 2013.03.10. 11:42
Hozzászólások: 240
Megköszönt másnak: 52 alkalommal
Megköszönték neki: 9 alkalommal
Szia!
Nem volt nagy hibád.
Annyi volt a gond hogy áldozat helyett victim, gyilkos helyett meg attacker kellett:)

SMA Forráskód: [ Mindet kijelol ]
  1.  
  2. #include <amxmodx>
  3. #include <amxmisc>
  4. #include <fakemeta>
  5. #include <nvault>
  6. #include <fun>
  7.  
  8.  
  9. #define PLUGIN "FegyverSkinMenu"
  10. #define VERSION "1.0"
  11. #define AUTHOR "RaZzoR"
  12.  
  13. #define DICTIONARY "fegyver_skin_menu.txt"
  14.  
  15. #define HOOK_V_MODELS
  16.  
  17. #define PKILLS get_user_frags
  18.  
  19. new vault
  20. new kill[33], skin[33], skin_kill, skin_hskill, skin_knifekill
  21. new SAVE_PKILLS
  22.  
  23. new weapon_select[33]
  24.  
  25. new const menu_item_names[][][] = {
  26. { "Alap Csomag", "0", "alap" },
  27. { "BASIC Csomag", "10", "hhskins/basic" },
  28. { "Rozsdas Csomag", "100", "hhskins/rozsdas" },
  29. { "Bronz Csomag", "200", "hhskins/bronz" },
  30. { "Flamed Csomag", "400", "hhskins/flamed" },
  31. { "Arany Csomag", "800", "hhskins/arany" },
  32. { "CS:GO Csomag", "1600", "hhskins/go" },
  33. { "Crysis Csomag", "3200", "hhskins/crysis" },
  34. { "Sectio8 Csomag", "6400", "hhskins/sec8" },
  35. { "SF2 Csomag", "12800", "hhskins/sf2" },
  36. { "STALKER Csomag", "25600", "hhskins/stalker" }
  37. }
  38.  
  39. new const models_name[][] = {
  40. "m4a1.mdl",
  41. "ak47.mdl",
  42. "awp.mdl",
  43. "m249.mdl",
  44. "aug.mdl",
  45. "famas.mdl",
  46. "galil.mdl",
  47. "mp5navy.mdl",
  48. "xm1014.mdl",
  49. "m3.mdl",
  50. "scout.mdl",
  51. "deagle.mdl",
  52. "knife.mdl"
  53. }
  54.  
  55. public plugin_init() {
  56. register_plugin(PLUGIN, VERSION, AUTHOR)
  57.  
  58. register_dictionary(DICTIONARY)
  59.  
  60. register_clcmd("say /menu", "clcmd_menu")
  61. register_event("CurWeapon","Hook_P_V_Model","be","1=1")
  62. register_clcmd("say /oles", "oles")
  63.  
  64. register_cvar("sima_oles", "2");
  65. register_cvar("hs_oles", "2");
  66. register_cvar("kes_oles", "1");
  67.  
  68. skin_kill = get_cvar_num("sima_oles");
  69. skin_hskill = get_cvar_num("hs_oles");
  70. skin_knifekill = get_cvar_num("kes_oles");
  71.  
  72.  
  73. register_event("DeathMsg", "death", "a")
  74.  
  75. vault = nvault_open("hhskin")
  76.  
  77. SAVE_PKILLS = register_cvar("save_pkills", "1")
  78. }
  79.  
  80. public plugin_precache() {
  81. for(new i = 0; i < sizeof(models_name); i++) {
  82. for(new j = 1; j < sizeof(menu_item_names); j++) {
  83. #if defined HOOK_P_MODELS
  84. new precache_p[256]
  85. format(precache_p, sizeof(precache_p), "models/%s/p_%s", menu_item_names[j][2], models_name[i])
  86.  
  87. precache_model(precache_p)
  88. #endif
  89.  
  90. #if defined HOOK_V_MODELS
  91. new precache_v[256]
  92. format(precache_v, sizeof(precache_v), "models/%s/v_%s", menu_item_names[j][2], models_name[i])
  93.  
  94. precache_model(precache_v)
  95. #endif
  96.  
  97. #if defined HOOK_W_MODELS
  98. new precache_w[256]
  99. format(precache_w, sizeof(precache_w), "models/%s/w_%s", menu_item_names[j][2], models_name[i])
  100.  
  101. precache_model(precache_w)
  102. #endif
  103. }
  104. }
  105. }
  106. public Hook_P_V_Model(id) {
  107. if(!is_user_alive(id))
  108. return PLUGIN_CONTINUE
  109.  
  110. static v_model[32], p_model[32]
  111. pev(id, pev_viewmodel2, v_model, 31)
  112. pev(id, pev_weaponmodel2, p_model,31)
  113.  
  114. for(new i = 0; i < sizeof(models_name); i++) {
  115. #if defined HOOK_V_MODELS
  116. new old_v[256]
  117. format(old_v, sizeof(old_v), "models/v_%s", models_name[i])
  118.  
  119. new new_v[256]
  120. format(new_v, sizeof(new_v), "models/%s/v_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  121.  
  122. if(equali(v_model, old_v) || equali(v_model, new_v)) {
  123. if(weapon_select[id] >= 1) set_pev(id, pev_viewmodel2, new_v)
  124. else set_pev(id, pev_viewmodel2, old_v)
  125.  
  126. break
  127. }
  128. #endif
  129.  
  130. #if defined HOOK_P_MODELS
  131. new old_p[256]
  132. format(old_p, sizeof(old_p), "models/p_%s", models_name[i])
  133.  
  134. new new_p[256]
  135. format(new_p, sizeof(new_p), "models/%s/p_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  136.  
  137. if(equali(p_model, old_p) || equali(p_model, new_p)) {
  138. if(weapon_select[id] >= 1) set_pev(id, pev_weaponmodel2, new_p)
  139. else set_pev(id, pev_weaponmodel2, old_p)
  140.  
  141. break
  142. }
  143. #endif
  144. }
  145.  
  146. return PLUGIN_CONTINUE
  147. }
  148.  
  149. public clcmd_menu(id) {
  150. new menu_line[64], menu_newline[64], i_data[64]
  151. format(menu_line, charsmax(menu_line), "\w%L", id, "SKIN_MENU", get_user_frags(id))
  152.  
  153. new menu = menu_create(menu_line, "clcmd_menu_handler")
  154.  
  155. for(new i = 0; i < sizeof(menu_item_names); i++) {
  156. new convert_num = str_to_num(menu_item_names[i][1])
  157. num_to_str(i, i_data, sizeof(i_data))
  158.  
  159. if(get_user_frags(id) < convert_num)
  160. format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM1", menu_item_names[i][0], convert_num)
  161. else
  162. format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM2", menu_item_names[i][0])
  163. menu_additem(menu, menu_newline, i_data, 0)
  164. }
  165.  
  166. menu_display(id, menu, 0)
  167.  
  168. return PLUGIN_HANDLED
  169. }
  170.  
  171. public clcmd_menu_handler(id, menu, item) {
  172. if(item == MENU_EXIT) {
  173. menu_destroy(menu)
  174. return PLUGIN_HANDLED
  175. }
  176.  
  177. new data[64], szName[64]
  178. new access, callback
  179. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  180.  
  181. new key = str_to_num(data)
  182. new convert_num = str_to_num(menu_item_names[key][1])
  183.  
  184. if(get_user_frags(id) < convert_num) {
  185. client_print(id, print_chat, "%L", id, "SKIN_NOT_USE", menu_item_names[key][0], convert_num)
  186. return PLUGIN_HANDLED
  187. }
  188.  
  189. else {
  190. weapon_select[id] = key
  191. client_print(id, print_chat, "%L", id, "SKIN_CHOOSED", menu_item_names[key][0])
  192. Hook_P_V_Model(id)
  193. }
  194.  
  195. return PLUGIN_CONTINUE
  196. }
  197. public death(id)
  198. {
  199. new attacker = read_data( 1 );
  200. new victim = read_data( 2 );
  201.  
  202. if(attacker == victim || ! is_user_connected(attacker) || ! is_user_connected(victim))
  203. {
  204. return PLUGIN_HANDLED;
  205. }
  206. new olesekert = skin_kill;
  207.  
  208. if(read_data(3))
  209. {
  210. olesekert += skin_hskill;
  211. }
  212.  
  213. static Fegyver[26];
  214.  
  215. read_data(4, Fegyver, sizeof(Fegyver) -1);
  216.  
  217. if(equal(Fegyver,"knife"))
  218. {
  219. olesekert += skin_knifekill;
  220. }
  221. kill[attacker] += olesekert;
  222.  
  223. return PLUGIN_HANDLED;
  224. }
  225. stock log_kill(attacker, victim, fegyver[],fejloves) {
  226. user_silentkill( victim );
  227.  
  228. message_begin( MSG_ALL, get_user_msgid( "DeathMsg" ), {0,0,0}, 0 );
  229. write_byte( attacker );
  230. write_byte( victim );
  231. write_byte( fejloves );
  232. write_string( fegyver );
  233. message_end();
  234.  
  235. new kill = get_user_frags( attacker );
  236. set_user_frags( attacker, kill++ );
  237. new elvetel = get_user_frags( victim );
  238. set_user_frags( victim, elvetel++ );
  239.  
  240. return PLUGIN_CONTINUE
  241. }
  242. public client_connect(id)
  243. {
  244. if(get_pcvar_num(SAVE_PKILLS) == 1)
  245. {
  246. LoadData(id)
  247. }
  248. }
  249. public client_disconnect(id)
  250. {
  251. weapon_select[id] = 0
  252. if(get_pcvar_num(SAVE_PKILLS) == 1)
  253. {
  254. SaveData(id)
  255. }
  256. }
  257. public SaveData(id)
  258. {
  259. new vaultkey[64],vaultdata[256], authid[32]
  260. get_user_authid(id, authid, 31)
  261. format(vaultkey,63,"%s-SKIN", authid)
  262. format(vaultdata,255,"%i#%i#", kill[id],skin[id])
  263. nvault_set(vault,vaultkey,vaultdata)
  264. return PLUGIN_CONTINUE
  265. }
  266. public LoadData(id)
  267. {
  268. new vaultkey[64],vaultdata[256], authid[32]
  269. get_user_authid(id, authid, 31)
  270. format(vaultkey,63,"%s-SKIN", authid)
  271. format(vaultdata,255,"%i#%i#",kill[id],skin[id])
  272. nvault_get(vault,vaultkey,vaultdata,255)
  273. replace_all(vaultdata, 255, "#", " ")
  274. new str_num[32], skin_num[32]
  275. parse(vaultdata, str_num, 31, skin_num, 31)
  276. kill[id] = str_to_num(str_num)
  277. skin[id] = str_to_num(skin_num)
  278. return PLUGIN_CONTINUE
  279. }

_________________
NEW IP:
Kép

Ők köszönték meg TraneTommy nek ezt a hozzászólást: LyleChriss (2015.04.15. 21:19)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Vault rendszer
HozzászólásElküldve: 2015.04.05. 16:18 
Offline
Nagyúr
Avatar

Csatlakozott: 2014.08.24. 18:28
Hozzászólások: 584
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 120 alkalommal
Hiába, így sem menti... Ha reconectelek, törlődnek az öléseim... :(


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Vault rendszer
HozzászólásElküldve: 2015.04.05. 19:30 
Offline
Nagyúr

Csatlakozott: 2015.02.01. 11:40
Hozzászólások: 670
Megköszönt másnak: 16 alkalommal
Megköszönték neki: 99 alkalommal
biztos id-re akarod menteni? :D

SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <nvault>
  5. #include <fun>
  6.  
  7.  
  8. #define PLUGIN "FegyverSkinMenu"
  9. #define VERSION "1.0"
  10. #define AUTHOR "RaZzoR"
  11.  
  12. #define DICTIONARY "fegyver_skin_menu.txt"
  13.  
  14. #define HOOK_V_MODELS
  15.  
  16. #define PKILLS get_user_frags
  17.  
  18. new vault
  19. new kill[33], skin[33], skin_kill, skin_hskill, skin_knifekill
  20. new SAVE_PKILLS
  21.  
  22. new weapon_select[33]
  23.  
  24. new const menu_item_names[][][] = {
  25. { "Alap Csomag", "0", "alap" },
  26. { "BASIC Csomag", "10", "hhskins/basic" },
  27. { "Rozsdas Csomag", "100", "hhskins/rozsdas" },
  28. { "Bronz Csomag", "200", "hhskins/bronz" },
  29. { "Flamed Csomag", "400", "hhskins/flamed" },
  30. { "Arany Csomag", "800", "hhskins/arany" },
  31. { "CS:GO Csomag", "1600", "hhskins/go" },
  32. { "Crysis Csomag", "3200", "hhskins/crysis" },
  33. { "Sectio8 Csomag", "6400", "hhskins/sec8" },
  34. { "SF2 Csomag", "12800", "hhskins/sf2" },
  35. { "STALKER Csomag", "25600", "hhskins/stalker" }
  36. }
  37.  
  38. new const models_name[][] = {
  39. "m4a1.mdl",
  40. "ak47.mdl",
  41. "awp.mdl",
  42. "m249.mdl",
  43. "aug.mdl",
  44. "famas.mdl",
  45. "galil.mdl",
  46. "mp5navy.mdl",
  47. "xm1014.mdl",
  48. "m3.mdl",
  49. "scout.mdl",
  50. "deagle.mdl",
  51. "knife.mdl"
  52. }
  53.  
  54. public plugin_init() {
  55. register_plugin(PLUGIN, VERSION, AUTHOR)
  56.  
  57. register_dictionary(DICTIONARY)
  58.  
  59. register_clcmd("say /menu", "clcmd_menu")
  60. register_event("CurWeapon","Hook_P_V_Model","be","1=1")
  61. register_clcmd("say /oles", "oles")
  62.  
  63. register_cvar("sima_oles", "2");
  64. register_cvar("hs_oles", "2");
  65. register_cvar("kes_oles", "1");
  66.  
  67. skin_kill = get_cvar_num("sima_oles");
  68. skin_hskill = get_cvar_num("hs_oles");
  69. skin_knifekill = get_cvar_num("kes_oles");
  70.  
  71.  
  72. register_event("DeathMsg", "death", "a")
  73.  
  74. vault = nvault_open("hhskin")
  75.  
  76. SAVE_PKILLS = register_cvar("save_pkills", "1")
  77. }
  78.  
  79. public plugin_precache() {
  80. for(new i = 0; i < sizeof(models_name); i++) {
  81. for(new j = 1; j < sizeof(menu_item_names); j++) {
  82. #if defined HOOK_P_MODELS
  83. new precache_p[256]
  84. format(precache_p, sizeof(precache_p), "models/%s/p_%s", menu_item_names[j][2], models_name[i])
  85.  
  86. precache_model(precache_p)
  87. #endif
  88.  
  89. #if defined HOOK_V_MODELS
  90. new precache_v[256]
  91. format(precache_v, sizeof(precache_v), "models/%s/v_%s", menu_item_names[j][2], models_name[i])
  92.  
  93. precache_model(precache_v)
  94. #endif
  95.  
  96. #if defined HOOK_W_MODELS
  97. new precache_w[256]
  98. format(precache_w, sizeof(precache_w), "models/%s/w_%s", menu_item_names[j][2], models_name[i])
  99.  
  100. precache_model(precache_w)
  101. #endif
  102. }
  103. }
  104. }
  105. public Hook_P_V_Model(id) {
  106. if(!is_user_alive(id))
  107. return PLUGIN_CONTINUE
  108.  
  109. static v_model[32], p_model[32]
  110. pev(id, pev_viewmodel2, v_model, 31)
  111. pev(id, pev_weaponmodel2, p_model,31)
  112.  
  113. for(new i = 0; i < sizeof(models_name); i++) {
  114. #if defined HOOK_V_MODELS
  115. new old_v[256]
  116. format(old_v, sizeof(old_v), "models/v_%s", models_name[i])
  117.  
  118. new new_v[256]
  119. format(new_v, sizeof(new_v), "models/%s/v_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  120.  
  121. if(equali(v_model, old_v) || equali(v_model, new_v)) {
  122. if(weapon_select[id] >= 1) set_pev(id, pev_viewmodel2, new_v)
  123. else set_pev(id, pev_viewmodel2, old_v)
  124.  
  125. break
  126. }
  127. #endif
  128.  
  129. #if defined HOOK_P_MODELS
  130. new old_p[256]
  131. format(old_p, sizeof(old_p), "models/p_%s", models_name[i])
  132.  
  133. new new_p[256]
  134. format(new_p, sizeof(new_p), "models/%s/p_%s", menu_item_names[weapon_select[id]][2], models_name[i])
  135.  
  136. if(equali(p_model, old_p) || equali(p_model, new_p)) {
  137. if(weapon_select[id] >= 1) set_pev(id, pev_weaponmodel2, new_p)
  138. else set_pev(id, pev_weaponmodel2, old_p)
  139.  
  140. break
  141. }
  142. #endif
  143. }
  144.  
  145. return PLUGIN_CONTINUE
  146. }
  147.  
  148. public clcmd_menu(id) {
  149. new menu_line[64], menu_newline[64], i_data[64]
  150. format(menu_line, charsmax(menu_line), "\w%L", id, "SKIN_MENU", get_user_frags(id))
  151.  
  152. new menu = menu_create(menu_line, "clcmd_menu_handler")
  153.  
  154. for(new i = 0; i < sizeof(menu_item_names); i++) {
  155. new convert_num = str_to_num(menu_item_names[i][1])
  156. num_to_str(i, i_data, sizeof(i_data))
  157.  
  158. if(get_user_frags(id) < convert_num)
  159. format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM1", menu_item_names[i][0], convert_num)
  160. else
  161. format(menu_newline, charsmax(menu_newline), "%L", id, "SKIN_ITEM2", menu_item_names[i][0])
  162. menu_additem(menu, menu_newline, i_data, 0)
  163. }
  164.  
  165. menu_display(id, menu, 0)
  166.  
  167. return PLUGIN_HANDLED
  168. }
  169.  
  170. public clcmd_menu_handler(id, menu, item) {
  171. if(item == MENU_EXIT) {
  172. menu_destroy(menu)
  173. return PLUGIN_HANDLED
  174. }
  175.  
  176. new data[64], szName[64]
  177. new access, callback
  178. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  179.  
  180. new key = str_to_num(data)
  181. new convert_num = str_to_num(menu_item_names[key][1])
  182.  
  183. if(get_user_frags(id) < convert_num) {
  184. client_print(id, print_chat, "%L", id, "SKIN_NOT_USE", menu_item_names[key][0], convert_num)
  185. return PLUGIN_HANDLED
  186. }
  187.  
  188. else {
  189. weapon_select[id] = key
  190. client_print(id, print_chat, "%L", id, "SKIN_CHOOSED", menu_item_names[key][0])
  191. Hook_P_V_Model(id)
  192. }
  193.  
  194. return PLUGIN_CONTINUE
  195. }
  196. public death(id)
  197. {
  198. new attacker = read_data( 1 );
  199. new victim = read_data( 2 );
  200.  
  201. if(attacker == victim || ! is_user_connected(attacker) || ! is_user_connected(victim))
  202. {
  203. return PLUGIN_HANDLED;
  204. }
  205. new olesekert = skin_kill;
  206.  
  207. if(read_data(3))
  208. {
  209. olesekert += skin_hskill;
  210. }
  211.  
  212. static Fegyver[26];
  213.  
  214. read_data(4, Fegyver, sizeof(Fegyver) -1);
  215.  
  216. if(equal(Fegyver,"knife"))
  217. {
  218. olesekert += skin_knifekill;
  219. }
  220. kill[attacker] += olesekert;
  221.  
  222. return PLUGIN_HANDLED;
  223. }
  224. stock log_kill(attacker, victim, fegyver[],fejloves) {
  225. user_silentkill( victim );
  226.  
  227. message_begin( MSG_ALL, get_user_msgid( "DeathMsg" ), {0,0,0}, 0 );
  228. write_byte( attacker );
  229. write_byte( victim );
  230. write_byte( fejloves );
  231. write_string( fegyver );
  232. message_end();
  233.  
  234. new kill = get_user_frags( attacker );
  235. set_user_frags( attacker, kill++ );
  236. new elvetel = get_user_frags( victim );
  237. set_user_frags( victim, elvetel++ );
  238.  
  239. return PLUGIN_CONTINUE
  240. }
  241. public client_connect(id)
  242. {
  243. if(get_pcvar_num(SAVE_PKILLS) == 1)
  244. {
  245. LoadData(id)
  246. }
  247. }
  248. public client_disconnect(id)
  249. {
  250. weapon_select[id] = 0
  251. if(get_pcvar_num(SAVE_PKILLS) == 1)
  252. {
  253. SaveData(id)
  254. }
  255. }
  256. public SaveData(id)
  257. {
  258. new vaultkey[64],vaultdata[256], authid[32]
  259. get_user_authid(id, authid, 31)
  260. format(vaultkey,63,"%s-SKIN", authid)
  261. format(vaultdata,255,"%d#%d#", kill[id],skin[id])
  262. nvault_set(vault,vaultkey,vaultdata)
  263. return PLUGIN_CONTINUE
  264. }
  265. public LoadData(id)
  266. {
  267. new vaultkey[64],vaultdata[256], authid[32]
  268. get_user_authid(id, authid, 31)
  269. format(vaultkey,63,"%s-SKIN", authid)
  270. format(vaultdata,255,"%d#%d#",kill[id],skin[id])
  271. nvault_get(vault,vaultkey,vaultdata,255)
  272. replace_all(vaultdata, 255, "#", " ")
  273. new str_num[32], skin_num[32]
  274. parse(vaultdata, str_num, 31, skin_num, 31)
  275. kill[id] = str_to_num(str_num)
  276. skin[id] = str_to_num(skin_num)
  277. return PLUGIN_CONTINUE
  278. }

_________________
http://steamcommunity.com/id/floxay/

Ők köszönték meg FloxaY nek ezt a hozzászólást: LyleChriss (2015.04.15. 21:19)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Vault rendszer
HozzászólásElküldve: 2015.04.05. 20:48 
Offline
Nagyúr
Avatar

Csatlakozott: 2014.08.24. 18:28
Hozzászólások: 584
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 120 alkalommal
Köszönöm. :)
Hát, igazából az eredeti névre mentett, de közben már annyi variáció született, hogy az már horribilis... XD
Végülis, van bent egy reg rendszer, de a SteamID a legtöbb embernél ritkábban változik, mint a név. :)
A lényeg ez: Nagyon szépen köszönöm! :thank_you2:


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Vault rendszer
HozzászólásElküldve: 2015.04.05. 21:51 
Offline
Nagyúr

Csatlakozott: 2015.02.01. 11:40
Hozzászólások: 670
Megköszönt másnak: 16 alkalommal
Megköszönték neki: 99 alkalommal
LyleChriss írta:
Köszönöm. :)
Hát, igazából az eredeti névre mentett, de közben már annyi variáció született, hogy az már horribilis... XD
Végülis, van bent egy reg rendszer, de a SteamID a legtöbb embernél ritkábban változik, mint a név. :)
A lényeg ez: Nagyon szépen köszönöm! :thank_you2:

működik? :D:D:D
%i-t kicseréltem %d-re

_________________
http://steamcommunity.com/id/floxay/

Ők köszönték meg FloxaY nek ezt a hozzászólást: LyleChriss (2015.04.15. 21:19)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Vault rendszer
HozzászólásElküldve: 2015.04.05. 21:55 
Offline
A Scripter

Csatlakozott: 2013.11.19. 19:08
Hozzászólások: 827
Megköszönt másnak: 8 alkalommal
Megköszönték neki: 315 alkalommal
nvault szar megbízhatatlan. nem ajánlom.

Ők köszönték meg DeR0iD nek ezt a hozzászólást: LyleChriss (2015.04.15. 21:19)
  Népszerűség: 2.27%


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


Ki van itt

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