Advertisement
Guest User

Barel + Rotem <3

a guest
Sep 1st, 2015
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.23 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <hamsandwich>
  4. #include <cstrike>
  5. #include <SINI>
  6. #include <fakemeta>
  7. #define XPFORKILL 5
  8. #define XPFORPREMIUM 10
  9. new Exp[33]
  10. new Level[33]
  11. new const Explevels[] =
  12. {
  13. 100, // Level 1 //
  14. 200, // Level 2 //
  15. 400, // Level 3 //
  16. 600, // Level 4 //
  17. 900, // Level 5 //
  18. 1200, // Level 6 //
  19. 1500, // Level 7 //
  20. 1900, // Level 8 //
  21. 2500, // Level 9 //
  22. 3000, // Level 10 //
  23. 4000, // Level 11 //
  24. 5000, // Level 12 //
  25. 6000, // Level 13 //
  26. 7000, // Level 14 //
  27. 8000, // Level 15 //
  28. 9000, // Level 16 //
  29. 10000, // Level 17 //
  30. 11000, // Level 18 //
  31. 12000, // Level 19 //
  32. 13000, // Level 20 //
  33. 14000, // Level 21 //
  34. 15000, // Level 22 //
  35. 16000, // Level 23 //
  36. 17000, // Level 24 //
  37. 18000, // Level 25 //
  38. 19000, // Level 26 //
  39. 20000, // Level 27 //
  40. 21000, // Level 28 //
  41. 22000, // Level 29 //
  42. 24000 // Level 30 //
  43. }
  44. new KnifeLook[33]
  45. enum _:Knifes
  46. {
  47. ModelPath[40],
  48. Levels[40],
  49. Levelss[40],
  50. KnifeName[40],
  51. KnifeLevel[40]
  52. }
  53. new const Knife[][Knifes] =
  54. {
  55. {"models/aGressivEn/v_knife1.mdl", "1",1,"Normal Boxer", "\w[\r Level 1+\w ]"},
  56. {"models/aGressivEn/v_knife2.mdl", "2",2,"Sharp Knife", "\w[\r Level 2+\w ]"},
  57. {"models/aGressivEn/v_knife3.mdl", "3",3,"Taser", "\w[\r Level 3+\w ]"},
  58. {"models/aGressivEn/v_knife4.mdl", "4",4,"Nigger", "\w[\r Level 4+\w ]"},
  59. {"models/aGressivEn/v_knife5.mdl", "5",5,"Dragon Boxer", "\w[\r Level 5+\w ]"},
  60. {"models/aGressivEn/v_knife6.mdl", "6",6,"Assasin Dagger", "\w[\r Level 6+\w ]"},
  61. {"models/aGressivEn/v_knife7.mdl", "7",7,"Dual Tiger Knife", "\w[\r Level 7+\w ]"},
  62. {"models/aGressivEn/v_knife8.mdl", "8",8,"Ghost", "\w[\r Level 8+\w ]"},
  63. {"models/aGressivEn/v_knife9.mdl", "9",9,"Holy Knife", "\w[\r Level 9+\w ]"},
  64. {"models/aGressivEn/v_knife10.mdl", "10",10,"Anonymous", "\w[\r Level 10+\w ]"},
  65. {"models/aGressivEn/v_knife11.mdl", "11",11,"Void Weapon", "\w[\r Level 11+\w ]"},
  66. {"models/aGressivEn/v_knife12.mdl", "12",12,"Cyborg", "\w[\r Level 12+\w ]"},
  67. {"models/aGressivEn/v_knife13.mdl", "13",13,"Long Sword", "\w[\r Level 13+\w ]"},
  68. {"models/aGressivEn/v_knife14.mdl", "14",14,"Assasin", "\w[\r Level 14+\w ]"},
  69. {"models/aGressivEn/v_knife15.mdl", "15",15,"Swift Lightsaber", "\w[\r Level 15+\w ]"},
  70. {"models/aGressivEn/v_knife16.mdl", "16",16,"Nigger 2", "\w[\r Level 16+\w ]"},
  71. {"models/aGressivEn/v_knife17.mdl", "17",17,"Murderous Sword", "\w[\r Level 17+\w ]"},
  72. {"models/aGressivEn/v_knife18.mdl", "18",18,"Red Scorpion", "\w[\r Level 18+\w ]"},
  73. {"models/aGressivEn/v_knife19.mdl", "19",19,"Light Machete", "\w[\r Level 19+\w ]"},
  74. {"models/aGressivEn/v_knife20.mdl", "20",20,"Machanical Knife", "\w[\r Level 20+\w ]"},
  75. {"models/aGressivEn/v_knife21.mdl", "21",21,"Neo", "\w[\r Level 21+\w ]"},
  76. {"models/aGressivEn/v_knife22.mdl", "22",22,"Silver Axe", "\w[\r Level 22+\w ]"},
  77. {"models/aGressivEn/v_knife23.mdl", "23",23,"Red Ninja", "\w[\r Level 23+\w ]"},
  78. {"models/aGressivEn/v_knife24.mdl", "24",24,"Katana Sword", "\w[\r Level 24+\w ]"},
  79. {"models/aGressivEn/v_knife25.mdl", "25",25,"Dragon Sword", "\w[\r Level 25+\w ]"},
  80. {"models/aGressivEn/v_knife26.mdl", "26",26,"Ninja Terrorist", "\w[\r Level 26+\w ]"},
  81. {"models/aGressivEn/v_knife27.mdl", "27",27,"Gold Axe", "\w[\r Level 27+\w ]"},
  82. {"models/aGressivEn/v_knife28.mdl", "28",28,"Holiday Knife", "\w[\r Level 28+\w ]"},
  83. {"models/aGressivEn/v_knife29.mdl", "29",29,"Legendary Sword", "\w[\r Level 29+\w ]"},
  84. {"models/aGressivEn/v_knife30.mdl", "30",30,"Crystal Blade", "\w[\r Level 30+\w ]"}
  85. }
  86. public plugin_init() {
  87. register_plugin("AwpLevel", "1.0", "Ido")
  88. RegisterHam(Ham_Killed,"player","fw_HamPlayerKilled",1)
  89. register_clcmd("say","SayCmd")
  90. register_event( "CurWeapon", "eventCur", "be", "1=1" )
  91. register_clcmd("say /knifes", "KnifeMenu")
  92. register_clcmd("say /knife", "KnifeMenu")
  93. }
  94.  
  95. public plugin_precache(){
  96. for(new i;i < sizeof Knife;i++)
  97. {
  98. precache_model(Knife[i][ModelPath])
  99. }
  100. }
  101. public eventCur(client)
  102. {
  103. if(get_user_weapon(client) == CSW_KNIFE)
  104. {
  105. if(Level[client] > 0)
  106. {
  107. set_pev(client, pev_viewmodel2, Knife[KnifeLook[client]][ModelPath]);
  108. }
  109. }
  110. }
  111. public KnifeMenu(id)
  112. {
  113. new FormatTemp[65];
  114. formatex(FormatTemp, charsmax(FormatTemp), "\r[\y aGressivEn \r]\w Knife Menu")
  115. new Menu = menu_create(FormatTemp, "KnifeMenu_ha")
  116. for( new i; i < sizeof Knife; i++)
  117. {
  118. formatex(FormatTemp, charsmax(FormatTemp), "%s %s %s", Knife[ i ][ KnifeName ], Knife[ i ][ KnifeLevel ], Knife[i][Levelss] == Level[id] || Knife[i][Levelss] < Level[id] ? "- \rUnlocked":"- \dLocked" )
  119. menu_additem(Menu, FormatTemp)
  120. }
  121. menu_display( id, Menu, 0 );
  122. return PLUGIN_HANDLED;
  123. }
  124. public KnifeMenu_ha( id, Menu, key )
  125. {
  126.  
  127. if( key == MENU_EXIT )
  128. {
  129. menu_destroy( Menu );
  130. return 1;
  131. }
  132. else
  133. {
  134. if(Knife[key][Levelss] == Level[id] || Knife[key][Levelss] < Level[id])
  135. {
  136. KnifeLook[id] = key
  137. ColorChat(id,"^1You^1 have ^1selected ^4Knife ^3%i ^1!",key+1)
  138. }
  139. else ColorChat(id, "^1You ^1Need ^1To ^1be ^3Level ^4%i ^1To ^1use ^1this ^4knife",Knife[key][Levelss])
  140. }
  141. return 1;
  142. }
  143. public SayCmd(client)
  144. {
  145. new Msg[192],Arg[64],Args[64],Argss[64]
  146. read_args(Msg,191)
  147. remove_quotes(Msg)
  148. parse(Msg,Arg,63,Args,63,Argss,63)
  149. if(equali(Arg, "/level") || (equali(Arg, "/xp") ))
  150. {
  151. new player = cmd_target(player,Args,8)
  152. if(player)
  153. {
  154. ColorChat(client,"^4%s^1 Level: ^3[^4%i^3] ^3| ^1Exp ^3[^4%i^3] ^3| ^1Next ^1Exp ^3[^4%i^3]",GetUserName(player),Level[player],Exp[player],Explevels[Level[player]] - Exp[player])
  155. }
  156. else
  157. {
  158. ColorChat(client,"^1Your Level: ^3[^4%i^3] ^3| ^1Exp ^3[^4%i^3] ^3| ^1Next ^1Exp ^3[^4%i^3]",Level[client],Exp[client],Explevels[Level[client]] - Exp[client])
  159. }
  160. return 1;
  161. }
  162. if(equali(Arg,"/setxp"))
  163. {
  164. if(!(get_user_flags(client) & ADMIN_IMMUNITY))
  165. {
  166. ColorChat(client,"^1You have no ^4access^1 to this ^4command!")
  167. return 1;
  168. }
  169. new player = cmd_target(player,Args,8)
  170. if(!player)
  171. {
  172. ColorChat(client,"^3There^1 is no ^3such ^4player!")
  173. return 1;
  174. }
  175. new Amount = str_to_num(Argss)
  176. if(!Amount)
  177. {
  178. ColorChat(client,"^1You^1 must ^3type^1 a ^4number!")
  179. return 1;
  180. }
  181. if(player && Amount)
  182. {
  183. Exp[player] = Amount;
  184. ColorChat(0,"^3Admin : ^3%s^1, setted ^3%s^1 xp to ^4%i",GetUserName(client),GetUserName(player),Amount)
  185. if(Exp[player] >= Explevels[Level[player]])
  186. {
  187. Level[player] += 1;
  188. ColorChat(0,"^3%s^1, ^3grown^1 to level ^4%i",GetUserName(player),Level[player]);
  189. }
  190. }
  191. return 1;
  192. }
  193. if(equali(Arg,"/setlevel"))
  194. {
  195. if(!(get_user_flags(client) & ADMIN_IMMUNITY))
  196. {
  197. ColorChat(client,"You have no ^4access^1 to this ^4command!")
  198. return 1;
  199. }
  200. new player = cmd_target(player,Args,8)
  201. if(!player)
  202. {
  203. ColorChat(client,"^4There^1 is no ^3such ^4player!")
  204. return 1;
  205. }
  206. new Amount = str_to_num(Argss)
  207. if(!Amount)
  208. {
  209. ColorChat(client,"^4You^1 must ^3type^1 a ^4number!")
  210. return 1;
  211. }
  212. if(player && Amount)
  213. {
  214. Level[player] = Amount;
  215. ColorChat(0,"^3Admin : ^4%s^1, setted ^3%s^1 level to ^4%i",GetUserName(client),GetUserName(player),Amount)
  216. }
  217. return 1;
  218. }
  219. return 0;
  220. }
  221. public client_authorized(client)
  222. {
  223. LoadLevels(client);
  224. }
  225. public client_disconnect(client)
  226. {
  227. SaveLevels(client);
  228. }
  229. public SaveLevels(client)
  230. {
  231. if(SINI_Exists(PlayerFile(client)))
  232. {
  233. SINI_Open(PlayerFile(client))
  234. SINI_WriteInt("Level",Level[client])
  235. SINI_WriteInt("Exp",Exp[client])
  236. SINI_WriteInt("KnifeLook", KnifeLook[client]);
  237. SINI_Save();
  238. SINI_Close();
  239. }
  240. }
  241. public LoadLevels(client)
  242. {
  243. if(SINI_Exists(PlayerFile(client)))
  244. {
  245. SINI_Open(PlayerFile(client))
  246. SINI_ReadInt("Level",Level[client])
  247. SINI_ReadInt("Exp",Exp[client])
  248. SINI_ReadInt("KnifeLook", KnifeLook[client]);
  249. SINI_Save();
  250. }
  251. else
  252. {
  253. SINI_Create(PlayerFile(client))
  254. if(SINI_Exists(PlayerFile(client)))
  255. {
  256. SINI_Open(PlayerFile(client))
  257. SINI_WriteInt("Level",0)
  258. SINI_WriteInt("Exp",0)
  259. SINI_WriteInt("KnifeLook", 0);
  260. SINI_Save();
  261. }
  262. }
  263. SINI_Close();
  264. }
  265. public fw_HamPlayerKilled(victim,attacker,shouldgib)
  266. {
  267. if(is_user_alive(attacker))
  268. {
  269. if(!(get_user_flags(attacker) & ADMIN_LEVEL_C))
  270. {
  271. ColorChat(attacker,"^3You^4 gained ^1%i xp for ^4kill!",XPFORKILL);
  272. Exp[attacker] += XPFORKILL;
  273. CheckLevels(attacker);
  274. SaveLevels(attacker);
  275. return 1;
  276. }
  277. else
  278. {
  279. ColorChat(attacker,"^3You^4 gained ^1%i xp for ^4kill!",XPFORPREMIUM);
  280. Exp[attacker] += XPFORPREMIUM;
  281. CheckLevels(attacker);
  282. SaveLevels(attacker);
  283. return 1;
  284. }
  285. CheckLevels(attacker)
  286. }
  287. return 0;
  288. }
  289. public CheckLevels(index)
  290. {
  291. if(Exp[index] >= Explevels[Level[index]])
  292. {
  293. Level[index] += 1;
  294. set_hudmessage(255, 255, 255, 0.02, -1.0, 0, 6.0, 12.0)
  295. show_hudmessage(0, "%s grown to level %i",GetUserName(index),Level[index])
  296. return 1;
  297. }
  298. return 1;
  299. }
  300. stock ColorChat(const id, const string[], {Float, Sql, Resul,_}:...)
  301. {
  302. new msg[191], players[32], count = 1;
  303. static len; len = formatex(msg, charsmax(msg), "^4[^3 aGressivEn ^4]^1 ");
  304. vformat(msg[len], charsmax(msg) - len, string, 3);
  305.  
  306. if(id) players[0] = id;
  307. else get_players(players,count,"ch");
  308.  
  309. for (new i = 0; i < count; i++)
  310. {
  311. if(is_user_connected(players[i]))
  312. {
  313. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"),_, players[i]);
  314. write_byte(players[i]);
  315. write_string(msg);
  316. message_end();
  317. }
  318. }
  319. }
  320. stock GetUserName( const Index )
  321. {
  322. static gName[ 32 ];
  323. get_user_name( Index, gName, charsmax( gName ) );
  324. return gName;
  325. }
  326. stock PlayerFile(client)
  327. {
  328. new pFile[120];
  329. format(pFile, 120, "addons/amxmodx/data/KnifeLevels/%s.ini", GetSteamID(client));
  330. return pFile;
  331. }
  332. stock GetSteamID(client)
  333. {
  334. new pSteam[50];
  335. get_user_authid(client, pSteam, 50);
  336. replace_all(pSteam, 50, ":", "_");
  337. return pSteam;
  338. }
  339. stock get_randomplayer()
  340. {
  341. static players[32], pnum;
  342. get_players(players, pnum, "ch");
  343.  
  344. return players[random(pnum)];
  345. }
  346. stock GetName(id)
  347. {
  348. static szName[33];
  349. get_user_name(id, szName, charsmax(szName));
  350. return szName;
  351. }
  352. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  353. *{\\ rtf1\\ fbidis\\ ansi\\ ansicpg1252\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset0 Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ ltrpar\\ lang1037\\ f0\\ fs16 \n\\ par }
  354. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement