HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <hamsandwich>
  3. #include <fakemeta>
  4. #include <cstrike>
  5. #include <engine>
  6. #include <nvault>
  7.  
  8. //native cs_get_user_zoom(index);
  9. #define CSW_SHIELD 2
  10. #define DEFAULT_FOV 90
  11. #define SetPlayerBit(%1,%2) ( %1 |= ( 1 << ( %2 & 31 ) ) )
  12. #define ClearPlayerBit(%1,%2) ( %1 &= ~( 1 << ( %2 & 31 ) ) )
  13. #define CheckPlayerBit(%1,%2) ( %1 & ( 1 << ( %2 & 31 ) ) )
  14.  
  15. #define HUD_HIDE_CROSS (1<<6)
  16. #define HUD_DRAW_CROSS (1<<7)
  17.  
  18.  
  19. new const AUG_SCOPE[] = "models/v_augscope.mdl";
  20. new const SIG_SCOPE[] = "models/v_sigscope.mdl";
  21. //new const AUG[] = "models/v_aug.mdl";
  22. //new const SG552[] = "models/v_sg552.mdl";
  23. new weapon_weapon[][] =
  24. {
  25. "weapon_aug",
  26. "weapon_sg552"
  27. }
  28.  
  29. new g_Zoom[33], Float:g_ZoomTime[33]
  30.  
  31. new const silah_listesi[][][] =
  32. {
  33. {"","","","","","","","",""},
  34. {"weapon_p228",9,52,-1,-1,1,3,1,0},
  35. {"","","","","","","","",""},
  36. {"weapon_scout",2,90,-1,-1,0,9,3,0},
  37. {"weapon_hegrenade",12,1,-1,-1,3,1,4,24},
  38. {"weapon_xm1014",5,32,-1,-1,0,12,5,0},
  39. {"weapon_c4",14,1,-1,-1,4,3,6,24},
  40. {"weapon_mac10",6,100,-1,-1,0,13,7,0},
  41. {"weapon_aug",4,90,-1,-1,0,14,8,0},
  42. {"weapon_smokegrenade",13,1,-1,-1,3,3,9,24},
  43. {"weapon_elite",10,120,-1,-1,1,5,10,0},
  44. {"weapon_fiveseven",7,100,-1,-1,1,6,11,0},
  45. {"weapon_ump45",6,100,-1,-1,0,15,12,0},
  46. {"weapon_sg550",4,90,-1,-1,0,16,13,0},
  47. {"weapon_galil",4,90,-1,-1,0,17,14,0},
  48. {"weapon_famas",4,90,-1,-1,0,18,15,0},
  49. {"weapon_usp",6,100,-1,-1,1,4,16,0},
  50. {"weapon_glock18",10,120,-1,-1,1,2,17,0},
  51. {"weapon_awp",1,30,-1,-1,0,2,18,0},
  52. {"weapon_mp5navy",10,120,-1,-1,0,7,19,0},
  53. {"weapon_m249",3,200,-1,-1,0,4,20,0},
  54. {"weapon_m3",5,32,-1,-1,0,5,21,0},
  55. {"weapon_m4a1",4,90,-1,-1,0,6,22,0},
  56. {"weapon_tmp",10,120,-1,-1,0,11,23,0},
  57. {"weapon_g3sg1",2,90,-1,-1,0,3,24,0},
  58. {"weapon_flashbang",11,2,-1,-1,3,2,25,24},
  59. {"weapon_deagle",8,35,-1,-1,1,1,26,0},
  60. {"weapon_sg552",4,90,-1,-1,0,10,27,0},
  61. {"weapon_ak47",2,90,-1,-1,0,1,28,0},
  62. {"weapon_knife",-1,-1,-1,-1,2,1,29,0},
  63. {"weapon_p90",7,100,-1,-1,0,8,30,0}
  64.  
  65. }
  66. enum _: ImlecBilgileri
  67. {
  68. SeciliCrosshair,
  69. AssaultKontrol,
  70. SniperKontrol,
  71. FovKontrol
  72. }
  73.  
  74. #define MAX_FOV 25
  75. #define MAX_CROSSHAIR 12
  76. new ImlecKontrol[33][ImlecBilgileri];
  77. new zoomkontrol[33]
  78.  
  79. new const genel_bilgiler[][][] = {
  80. {"CS:GO Default 1","sprites/vatan_toplu_imlecler1.txt","vatan_toplu_imlecler1"},
  81. {"CS:GO Default 2","sprites/vatan_toplu_imlecler2.txt","vatan_toplu_imlecler2"},
  82. {"FalleN","sprites/vatan_toplu_imlecler3.txt","vatan_toplu_imlecler3"},
  83. {"KennyS","sprites/vatan_toplu_imlecler4.txt","vatan_toplu_imlecler4"},
  84. {"Taco","sprites/vatan_toplu_imlecler5.txt","vatan_toplu_imlecler5"},
  85. {"Skadoodle","sprites/vatan_toplu_imlecler6.txt","vatan_toplu_imlecler6"},
  86. {"KRIMZ","sprites/vatan_toplu_imlecler7.txt","vatan_toplu_imlecler7"},
  87. {"Rip","sprites/vatan_toplu_imlecler8.txt","vatan_toplu_imlecler8"},
  88. {"XANTARES","sprites/vatan_toplu_imlecler9.txt","vatan_toplu_imlecler9"},
  89. {"woxic","sprites/vatan_toplu_imlecler10.txt","vatan_toplu_imlecler10"},
  90. {"coldzera","sprites/vatan_toplu_imlecler11.txt","vatan_toplu_imlecler11"},
  91. {"s1mple","sprites/vatan_toplu_imlecler12.txt","vatan_toplu_imlecler12"},
  92.  
  93. {"","sprites/vatan_toplu_imlecler.spr",""},
  94. {"","sprites/weapon_vtn_awp.txt",""},
  95. {"","sprites/vatan_durbunspr.spr",""},
  96. {"","sprites/vatan_aug_nokta.txt",""}
  97. }
  98. new const awp_zoom[] = {"weapon_vtn_awp"}
  99. new const aug_nokta[] = {"vatan_aug_nokta"}
  100. new g_bSomeBool
  101. enum _:MESSAGES {
  102. g_iMsg_WeaponList,
  103. g_iMsg_CurWeapon,
  104. g_iMsg_ForceCam,
  105. g_iMsg_SetFOV
  106. }
  107.  
  108. new g_Messages_Name[MESSAGES][] = {
  109. "WeaponList",
  110. "CurWeapon",
  111. "ForceCam",
  112. "SetFOV"
  113. }
  114. new const MenuKomutlari[][] = { "say /celkereszt", "say_team /celkereszt","say ch", "say_team ch","say celkereszt", "say_team celkereszt" };
  115.  
  116. new g_Messages[MESSAGES],g_msgHideWeapon, iMsgCrosshair,imlecvault,giristecrosshair;
  117. new modelismiaug[80][33],modelismisg[80][33]
  118.  
  119. public plugin_init(){
  120. register_plugin("CS:GO Crosshair", "2.4", "csfweed")
  121. for (new i; i < sizeof MenuKomutlari; i++) register_clcmd(MenuKomutlari[i], "genelmenu");
  122.  
  123. for(new i; i < sizeof(g_Messages); i++)
  124. {
  125. g_Messages[i] = get_user_msgid(g_Messages_Name[i]);
  126. register_message(g_Messages[i], "block");
  127. }
  128. register_message(g_Messages[g_iMsg_SetFOV], "message_setfov")
  129. #if AMXX_VERSION_NUM >= 183
  130. new cvarayar = create_cvar("alapertelmezett_kurzor","1", FCVAR_NONE, "A kurzort a játékosok számára kell kiválasztani (0-11)")
  131. bind_pcvar_num(cvarayar, giristecrosshair)
  132. #else
  133. giristecrosshair = get_pcvar_num(register_cvar("alapertelmezett_kurzor", "1"))
  134. #endif
  135. g_msgHideWeapon = get_user_msgid("HideWeapon");
  136. iMsgCrosshair = get_user_msgid("Crosshair");
  137. register_event("CurWeapon", "HookCurWeapon2", "be", "1=1")
  138. set_task(135.0, "csgobilgi", 0, _, _, "b")
  139. RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
  140. register_event("HLTV", "Event_New_Round", "a", "1=0", "2=0");
  141. register_forward(FM_CmdStart, "FW_CmdStart")
  142. imlecvault = nvault_open("vatanimlecbilgisi")
  143. RegisterHam(Ham_Item_Deploy, "weapon_aug", "assault_deploy_aug", 1)
  144. RegisterHam(Ham_Item_Deploy, "weapon_sg552", "assault_deploy_sg552", 1)
  145. RegisterHam( Ham_Item_PostFrame, "weapon_aug", "Atakla", 1 );
  146. RegisterHam( Ham_Item_PostFrame, "weapon_sg552", "AtaklaSG", 1 );
  147. for(new i = 0; i < sizeof weapon_weapon; i++)
  148. RegisterHam(Ham_Weapon_Reload, weapon_weapon[i], "fw_Weapon_Reload_Post", 1)
  149. }
  150.  
  151. public Atakla(Ent)
  152. {
  153. static id; id = get_pdata_cbase(Ent, 41, 4)
  154. if(ImlecKontrol[id][AssaultKontrol])
  155. {
  156. if(g_Zoom[id] == 1)
  157. ScopeTekrar(id)
  158. }
  159. }
  160.  
  161. public AtaklaSG(Ent)
  162. {
  163. static id; id = get_pdata_cbase(Ent, 41, 4)
  164. if(ImlecKontrol[id][AssaultKontrol])
  165. {
  166. if(g_Zoom[id] == 2)
  167. ScopeTekrar(id)
  168. }
  169. }
  170.  
  171. public message_setfov(msg_id, msg_dest, id)
  172. {
  173. if (!is_user_alive(id))
  174. return;
  175.  
  176. zoomkontrol[id] = get_msg_arg_int(1)
  177. if(get_msg_arg_int(1) == 90)
  178. set_msg_arg_int(1, get_msg_argtype(1), DEFAULT_FOV+ImlecKontrol[id][FovKontrol])
  179. }
  180.  
  181. public fw_Weapon_Reload_Post(ent)
  182. {
  183. static id;
  184. id = pev(ent, pev_owner);
  185. new zoom = cs_get_user_zoom(id);
  186.  
  187. if(get_user_weapon(id) == CSW_AUG || get_user_weapon(id) == CSW_SG552)
  188. if(zoom == 1)
  189. UnScope(id);
  190.  
  191. return HAM_HANDLED
  192. }
  193.  
  194. public Event_New_Round()
  195. {
  196. new id, players[32], num;
  197. get_players(players, num, "ac");
  198. for (new i = 0; i < num; i++)
  199. {
  200. id = players[i];
  201. if(get_user_weapon(id) == CSW_AUG || get_user_weapon(id) == CSW_SG552)
  202. UnScope(id);
  203. }
  204. }
  205.  
  206. public FW_CmdStart(id, uc_handle, seed)
  207. {
  208. if(!is_user_alive(id))
  209. return FMRES_IGNORED
  210.  
  211. if(is_user_bot(id))
  212. return FMRES_IGNORED
  213.  
  214. static NewButton, zoom;
  215. NewButton = get_uc(uc_handle, UC_Buttons);
  216.  
  217. if(NewButton & IN_ATTACK2)
  218. {
  219. if(get_user_weapon(id) == CSW_AUG || get_user_weapon(id) == CSW_SG552)
  220. {
  221. if(get_gametime() > g_ZoomTime[id])
  222. {
  223. zoom = cs_get_user_zoom(id);
  224. if(g_Zoom[id] && zoom == 1)
  225. UnScope(id);
  226. else if (!g_Zoom[id] && zoom == 4)
  227. {
  228. Scope(id);
  229. }
  230. g_ZoomTime[id] = get_gametime();
  231. }
  232. }
  233. else
  234. g_Zoom[id] = 0
  235. }
  236.  
  237. return FMRES_HANDLED
  238. }
  239.  
  240. public assault_deploy_aug(Ent)
  241. {
  242. static id; id = get_pdata_cbase(Ent, 41, 4)
  243. set_task(0.1,"silahmodelinicekaug",id)
  244. }
  245.  
  246. public silahmodelinicekaug(id)
  247. {
  248. pev(id,pev_viewmodel2, modelismiaug[id],charsmax(modelismiaug))
  249. if(equali(modelismiaug[id],AUG_SCOPE))
  250. modelismiaug[id] = "models/v_aug.mdl"
  251. }
  252. public silahmodeliniceksg(id)
  253. {
  254. pev(id,pev_viewmodel2, modelismisg[id],charsmax(modelismisg))
  255. if(equali(modelismisg[id],SIG_SCOPE))
  256. modelismisg[id] = "models/v_sg552.mdl"
  257. }
  258.  
  259. public assault_deploy_sg552(Ent)
  260. {
  261. static id; id = get_pdata_cbase(Ent, 41, 4)
  262. set_task(0.1,"silahmodeliniceksg",id)
  263. }
  264.  
  265.  
  266. public csgobilgi()
  267. {
  268. client_print_color(0,0, "^4[CS:GO] ^1Szeretnél CS:GO-s célkeresztet? Írd a be chatre ^3/celkereszt ^1vagy ^3ch^1.")
  269. }
  270.  
  271. public fw_PlayerKilled(victim, attacker)
  272. {
  273. set_task(0.1, "sifirla", victim)
  274. }
  275.  
  276. public sifirla(id)
  277. {
  278. ClearPlayerBit(g_bSomeBool,id);
  279. Msg_CurWeapon(id,0,0,0);
  280. Hide_NormalCrosshair(id, 0);
  281. show_crosshair(id, 0)
  282. new w = get_user_weapon(id)
  283. if((w == CSW_AUG && g_Zoom[id] == 1) || (w == CSW_SG552 && g_Zoom[id] == 2))
  284. return
  285.  
  286. if(g_Zoom[id])
  287. UnScope(id);
  288. }
  289.  
  290. public genelmenu(id)
  291. {
  292. if(!is_user_connected(id))
  293. return
  294.  
  295. new menu = menu_create("\r[CS:GO] \wCélkereszt \wBeállítás","genelmenu2")
  296. new ekleme[128]
  297. if(ImlecKontrol[id][SeciliCrosshair] == -1)
  298. formatex(ekleme,127,"\wCélkereszt \d[\rAlap\d]")
  299. else
  300. formatex(ekleme,127,"\wCélkereszt \d[\r%s\d]",genel_bilgiler[ImlecKontrol[id][SeciliCrosshair]][0][0])
  301.  
  302. menu_additem(menu,ekleme,"1",0)
  303. formatex(ekleme,127,"\wSniper Scope \d[\r%s\d]",ImlecKontrol[id][SniperKontrol] ? "BE":"\dKI")
  304. menu_additem(menu,ekleme,"2",0)
  305. formatex(ekleme,127,"\wAUG & SG552 Scope \d[\r%s\d]",ImlecKontrol[id][AssaultKontrol] ? "BE":"\dKI")
  306. menu_additem(menu,ekleme,"3",0)
  307. formatex(ekleme,127,"\wFOV \d[\r%i \w/ \r%i\d]^n^n",ImlecKontrol[id][FovKontrol],MAX_FOV)
  308.  
  309. menu_additem(menu,ekleme,"4",0)
  310.  
  311. menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
  312. menu_display(id, menu, 0);
  313.  
  314. }
  315.  
  316.  
  317. public genelmenu2(id,menu,item)
  318. {
  319. if(item==MENU_EXIT)
  320. {
  321. menu_destroy(menu)
  322. return PLUGIN_HANDLED
  323. }
  324. new data[6], iName[64]
  325. new access, callback
  326. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  327. new key = str_to_num(data)
  328. switch(key)
  329. {
  330. case 1:{
  331. imlecsecim(id)
  332. return PLUGIN_HANDLED
  333. }
  334. case 2:{
  335. ImlecKontrol[id][SniperKontrol] = ImlecKontrol[id][SniperKontrol] ? 0 : 1
  336. }
  337. case 3:{
  338. ImlecKontrol[id][AssaultKontrol] = ImlecKontrol[id][AssaultKontrol] ? 0 : 1
  339. client_cmd(id,"weapon_knife;wait;wait;wait;weapon_aug;weapon_sg552")
  340. }
  341. case 4:{
  342. ImlecKontrol[id][FovKontrol] += 5
  343. if(ImlecKontrol[id][FovKontrol] > MAX_FOV || ImlecKontrol[id][FovKontrol] < 0)
  344. ImlecKontrol[id][FovKontrol] = 0
  345. }
  346. }
  347. genelmenu(id)
  348. bilgilerikaydet(id)
  349. HookCurWeapon2(id)
  350.  
  351. return PLUGIN_HANDLED
  352. }
  353.  
  354.  
  355. public imlecsecim(id)
  356. {
  357. if(!is_user_connected(id))
  358. return
  359.  
  360. new cevir[10];
  361. new menu = menu_create("\r[CS:GO] \wCélkereszt \wBeállítás^n","imlecsecim2")
  362. num_to_str(MAX_CROSSHAIR+1,cevir,9)
  363. menu_additem(menu,"\wNormál Célkereszt",cevir,0)
  364. for (new i; i < MAX_CROSSHAIR; i++)
  365. {
  366. num_to_str(i,cevir,9)
  367. menu_additem(menu,genel_bilgiler[i][0][0],cevir,0)
  368. }
  369.  
  370. menu_setprop(menu, MPROP_EXITNAME, "Kilépés");
  371. menu_setprop(menu, MPROP_BACKNAME, "Vissza");
  372. menu_setprop(menu, MPROP_NEXTNAME, "Következő");
  373. menu_display(id, menu, 0);
  374.  
  375. }
  376.  
  377.  
  378. public imlecsecim2(id,menu,item)
  379. {
  380. if(item==MENU_EXIT)
  381. {
  382. menu_destroy(menu)
  383. return PLUGIN_HANDLED
  384. }
  385. new data[6], iName[64]
  386. new access, callback
  387. menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
  388. new key = str_to_num(data)
  389. if(key > MAX_CROSSHAIR)
  390. {
  391. sifirla(id)
  392. ImlecKontrol[id][SeciliCrosshair] = -1
  393. HookCurWeapon2(id)
  394. client_print_color(id,id,"^4[CS:GO] ^1Célkereszted visszaállítottad az alapra!")
  395. }
  396. else
  397. {
  398. ImlecKontrol[id][SeciliCrosshair] = key
  399. HookCurWeapon2(id)
  400. }
  401. bilgilerikaydet(id)
  402.  
  403. return PLUGIN_HANDLED
  404. }
  405.  
  406.  
  407. public client_putinserver(id)
  408. {
  409. client_cmd(id, "crosshair 1")
  410. bilgiler(id)
  411. }
  412.  
  413. public bilgiler(id)
  414. {
  415. new toplam[64],bilgilertoplam[15],steamid[32],cross[5],assault[5],sniper[5],fov[5]
  416. get_user_authid( id, steamid, charsmax(steamid))
  417. formatex(toplam,63,"%s-STEAMID",steamid)
  418. nvault_get(imlecvault, toplam, bilgilertoplam, charsmax(bilgilertoplam))
  419. parse(bilgilertoplam,cross,4,assault,4,sniper,4,fov,4)
  420. ImlecKontrol[id][SeciliCrosshair] = str_to_num(cross)
  421. ImlecKontrol[id][AssaultKontrol] = str_to_num(assault)
  422. ImlecKontrol[id][SniperKontrol] = str_to_num(sniper)
  423. ImlecKontrol[id][FovKontrol] = str_to_num(fov)
  424. if(ImlecKontrol[id][FovKontrol] > MAX_FOV || ImlecKontrol[id][FovKontrol] < 0)
  425. ImlecKontrol[id][FovKontrol] = 0
  426.  
  427. if(equali(bilgilertoplam,""))
  428. {
  429. if(giristecrosshair < -1 || giristecrosshair > MAX_CROSSHAIR)
  430. ImlecKontrol[id][SeciliCrosshair] = 0
  431. else
  432. ImlecKontrol[id][SeciliCrosshair] = giristecrosshair
  433. ImlecKontrol[id][AssaultKontrol] = 1
  434. ImlecKontrol[id][SniperKontrol] = 1
  435. ImlecKontrol[id][FovKontrol] = 0
  436. }
  437. }
  438.  
  439. public bilgilerikaydet(id)
  440. {
  441. new toplam[64],bilgilertoplam[15],steamid[32]
  442. get_user_authid( id, steamid, charsmax(steamid))
  443. if(ImlecKontrol[id][FovKontrol] > MAX_FOV || ImlecKontrol[id][FovKontrol] < 0)
  444. ImlecKontrol[id][FovKontrol] = 0
  445.  
  446. formatex(bilgilertoplam,14,"%i %i %i %i",ImlecKontrol[id][SeciliCrosshair],ImlecKontrol[id][AssaultKontrol],ImlecKontrol[id][SniperKontrol],ImlecKontrol[id][FovKontrol])
  447. formatex(toplam,63,"%s-STEAMID",steamid)
  448. nvault_set(imlecvault,toplam,bilgilertoplam)
  449. }
  450.  
  451.  
  452. public HookCurWeapon2(id)
  453. {
  454. if(!is_user_connected(id))
  455. return PLUGIN_CONTINUE
  456.  
  457. if(ImlecKontrol[id][SeciliCrosshair] != -1)
  458. Hide_NormalCrosshair(id, 1);
  459.  
  460. new clip, ammo
  461. new w = get_user_weapon(id, clip, ammo)
  462.  
  463. if(w == CSW_AWP || w == CSW_SCOUT || w == CSW_G3SG1 || w == CSW_SG550)
  464. {
  465. Hide_NormalCrosshair(id, 1)
  466. if(g_Zoom[id])
  467. {
  468. Msg_SetFOV(id,DEFAULT_FOV+ImlecKontrol[id][FovKontrol]);
  469. g_Zoom[id] = 0
  470. }
  471. else if(zoomkontrol[id] >= 90)
  472. Msg_SetFOV(id,DEFAULT_FOV+ImlecKontrol[id][FovKontrol])
  473.  
  474. ClearPlayerBit(g_bSomeBool, id);
  475. Msg_CurWeapon(id,0,0,0);
  476. if(ImlecKontrol[id][SniperKontrol])
  477. Msg_WeaponList(id,awp_zoom,silah_listesi[w][1][0],silah_listesi[w][2][0],silah_listesi[w][3][0],silah_listesi[w][4][0],silah_listesi[w][5][0],0,CSW_SHIELD,silah_listesi[w][8][0]);
  478. else
  479. Msg_WeaponList(id,"weapon_awp",silah_listesi[w][1][0],silah_listesi[w][2][0],silah_listesi[w][3][0],silah_listesi[w][4][0],silah_listesi[w][5][0],0,CSW_SHIELD,silah_listesi[w][8][0]);
  480.  
  481. ClearPlayerBit(g_bSomeBool, id);
  482. Msg_CurWeapon(id,1,2,clip);
  483.  
  484. return PLUGIN_CONTINUE
  485. }
  486. else if(ImlecKontrol[id][SeciliCrosshair] == -1)
  487. {
  488. sifirla(id)
  489. if((g_Zoom[id] == 1 && w == CSW_AUG) || (g_Zoom[id] == 2 && w == CSW_SG552))
  490. {
  491. Msg_SetFOV(id,55)
  492. }
  493. else
  494. {
  495. if(g_Zoom[id])
  496. UnScope(id)
  497.  
  498. Msg_SetFOV(id,DEFAULT_FOV+ImlecKontrol[id][FovKontrol])
  499. }
  500. return PLUGIN_CONTINUE
  501. }
  502. else if(w == CSW_AUG || w == CSW_SG552)
  503. {
  504. if(g_Zoom[id] && ImlecKontrol[id][AssaultKontrol] && ((g_Zoom[id] == 1 && w == CSW_AUG) || (g_Zoom[id] == 2 && w == CSW_SG552)))
  505. Msg_WeaponList(id,aug_nokta,silah_listesi[w][1][0],silah_listesi[w][2][0],silah_listesi[w][3][0],silah_listesi[w][4][0],silah_listesi[w][5][0],0,CSW_SHIELD,silah_listesi[w][8][0]);
  506. else
  507. Msg_WeaponList(id,genel_bilgiler[ImlecKontrol[id][SeciliCrosshair]][2][0],silah_listesi[w][1][0],silah_listesi[w][2][0],silah_listesi[w][3][0],silah_listesi[w][4][0],silah_listesi[w][5][0],0,CSW_SHIELD,silah_listesi[w][8][0]);
  508.  
  509. Msg_SetFOV(id,DEFAULT_FOV-1);
  510. ClearPlayerBit(g_bSomeBool, id);
  511. Msg_CurWeapon(id,1,2,clip);
  512. SetPlayerBit(g_bSomeBool,id);
  513. if((g_Zoom[id] == 1 && w == CSW_AUG) || (g_Zoom[id] == 2 && w == CSW_SG552))
  514. {
  515. Msg_SetFOV(id,55)
  516. /*if(ImlecKontrol[id][AssaultKontrol])
  517. {
  518. ScopeTekrar(id)
  519. }*/
  520. }
  521. else
  522. {
  523. if(g_Zoom[id])
  524. UnScope(id)
  525.  
  526. Msg_SetFOV(id,DEFAULT_FOV+ImlecKontrol[id][FovKontrol])
  527. }
  528.  
  529. return PLUGIN_HANDLED_MAIN
  530. }
  531.  
  532. if(g_Zoom[id])
  533. UnScope(id)
  534.  
  535. Msg_WeaponList(id,genel_bilgiler[ImlecKontrol[id][SeciliCrosshair]][2][0],silah_listesi[w][1][0],silah_listesi[w][2][0],silah_listesi[w][3][0],silah_listesi[w][4][0],silah_listesi[w][5][0],0,CSW_SHIELD,silah_listesi[w][8][0]);
  536. Msg_SetFOV(id,DEFAULT_FOV-1);
  537. ClearPlayerBit(g_bSomeBool, id);
  538. Msg_CurWeapon(id,1,2,clip);
  539. SetPlayerBit(g_bSomeBool,id);
  540. Msg_SetFOV(id,DEFAULT_FOV+ImlecKontrol[id][FovKontrol]);
  541. return PLUGIN_CONTINUE
  542. }
  543.  
  544.  
  545. public Scope(id)
  546. {
  547. new clip, ammo
  548. new w = get_user_weapon(id, clip, ammo)
  549. if(w == CSW_AUG)
  550. g_Zoom[id] = 1;
  551. else if (w == CSW_SG552)
  552. g_Zoom[id] = 2;
  553.  
  554. if(!ImlecKontrol[id][AssaultKontrol])
  555. {
  556. HookCurWeapon2(id)
  557. return
  558. }
  559.  
  560. if(w == CSW_AUG)
  561. {
  562. entity_set_string(id, EV_SZ_viewmodel, AUG_SCOPE);
  563. }
  564. else if (w == CSW_SG552)
  565. {
  566. entity_set_string(id, EV_SZ_viewmodel, SIG_SCOPE);
  567. }
  568. HookCurWeapon2(id)
  569. }
  570.  
  571. public ScopeTekrar(id)
  572. {
  573. new clip, ammo
  574. new w = get_user_weapon(id, clip, ammo)
  575.  
  576. if(w == CSW_AUG)
  577. {
  578. entity_set_string(id, EV_SZ_viewmodel, AUG_SCOPE);
  579. }
  580. else if (w == CSW_SG552)
  581. {
  582. entity_set_string(id, EV_SZ_viewmodel, SIG_SCOPE);
  583. }
  584. }
  585.  
  586. stock UnScope(id)
  587. {
  588. g_Zoom[id] = 0;
  589. if(!ImlecKontrol[id][AssaultKontrol])
  590. {
  591. HookCurWeapon2(id)
  592. return
  593. }
  594.  
  595. new w = get_user_weapon(id)
  596. if(w == CSW_AUG)
  597. entity_set_string(id, EV_SZ_viewmodel, modelismiaug[id]);
  598. else if(w == CSW_SG552)
  599. entity_set_string(id, EV_SZ_viewmodel, modelismisg[id])
  600.  
  601. HookCurWeapon2(id)
  602.  
  603. }
  604.  
  605. stock show_crosshair(id, flag)
  606. {
  607. message_begin(MSG_ONE_UNRELIABLE, iMsgCrosshair, _, id);
  608. write_byte(flag);
  609. message_end();
  610. }
  611.  
  612. stock Hide_NormalCrosshair(id, flag)
  613. {
  614. if(flag == 1)
  615. {
  616. message_begin(MSG_ONE, g_msgHideWeapon, _, id);
  617. write_byte(HUD_HIDE_CROSS);
  618. message_end();
  619. }
  620. else
  621. {
  622. message_begin(MSG_ONE, g_msgHideWeapon, _, id);
  623. write_byte(HUD_DRAW_CROSS);
  624. message_end();
  625. }
  626. }
  627.  
  628. public plugin_precache(){
  629. for(new i; i < sizeof(genel_bilgiler); i++)
  630. precache_generic(genel_bilgiler[i][1][0]);
  631.  
  632. precache_model(AUG_SCOPE);
  633. precache_model(SIG_SCOPE);
  634. }
  635.  
  636.  
  637.  
  638. public block(iMsgID,iMsgType,iPlrID){
  639. if(CheckPlayerBit(g_bSomeBool,iPlrID))
  640. return PLUGIN_HANDLED;
  641.  
  642. return PLUGIN_CONTINUE;
  643. }
  644.  
  645. stock Msg_WeaponList(id,const WeaponName[],PrimaryAmmoID,PrimaryAmmoMaxAmount,SecondaryAmmoID,SecondaryAmmoMaxAmount,
  646. SlotID,NumberInSlot,WeaponID,Flags){
  647. message_begin(MSG_ONE,g_Messages[g_iMsg_WeaponList],_, id);
  648. {
  649. write_string(WeaponName);
  650. write_byte(PrimaryAmmoID);
  651. write_byte(PrimaryAmmoMaxAmount);
  652. write_byte(SecondaryAmmoID);
  653. write_byte(SecondaryAmmoMaxAmount);
  654. write_byte(SlotID);
  655. write_byte(NumberInSlot);
  656. write_byte(WeaponID);
  657. write_byte(Flags);
  658. }
  659. message_end();
  660. }
  661.  
  662. stock Msg_CurWeapon(id,IsActive,WeaponID, ClipAmmo)
  663. {
  664. message_begin(MSG_ONE,g_Messages[g_iMsg_CurWeapon],_,id);
  665. {
  666. write_byte(IsActive);
  667. write_byte(WeaponID);
  668. write_byte(ClipAmmo);
  669. }
  670. message_end();
  671. }
  672.  
  673. stock Msg_SetFOV(id,Degrees){
  674. message_begin(MSG_ONE,g_Messages[g_iMsg_SetFOV], _,id);
  675. {
  676. write_byte(Degrees);
  677. }
  678. message_end();
  679. }
  680.  
  681. #if AMXX_VERSION_NUM < 183
  682. stock client_print_color(id, type, const text[], const veri[] = "" ,any:...)
  683. {
  684. if(type >= 0)
  685. {
  686. new g_iMsgidSayText;
  687. g_iMsgidSayText = get_user_msgid("SayText");
  688.  
  689. new szMsg[191], iPlayers[32], iCount = 1;
  690. vformat(szMsg, charsmax(szMsg), text, 3);
  691.  
  692. replace_all(szMsg, charsmax(szMsg), "!g","^x04");
  693. replace_all(szMsg, charsmax(szMsg), "!n","^x01");
  694. replace_all(szMsg, charsmax(szMsg), "!t","^x03");
  695. if(!equal(veri,""))
  696. {
  697. add(szMsg,charsmax(szMsg),veri)
  698. }
  699.  
  700. if(id)
  701. iPlayers[0] = id;
  702. else
  703. get_players(iPlayers, iCount, "ch");
  704.  
  705. for(new i = 0 ; i < iCount ; i++)
  706. {
  707. if(!is_user_connected(iPlayers[i]))
  708. continue;
  709.  
  710. message_begin(MSG_ONE_UNRELIABLE, g_iMsgidSayText, _, iPlayers[i]);
  711. write_byte(iPlayers[i]);
  712. write_string(szMsg);
  713. message_end();
  714. }
  715. }
  716. }
  717. #endif
  718. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  719. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
  720. */
  721.