HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. /*
  2.   Fordította: BBk
  3. */
  4.  
  5. #include <amxmodx>
  6. #include <amxmisc>
  7. #include <engine>
  8. #include <vault>
  9. #include <hamsandwich>
  10. #include <fvault>
  11.  
  12. #pragma tabsize 0
  13.  
  14. #define is_valid_player(%1) (1 <= %1 <= 32)
  15.  
  16. new knife_model[33];
  17.  
  18. new const g_VAULTNAME[] = "Knife-Skins";
  19. new const VERSION[] = "2.2"
  20. new const AUTHOR[] = "Asafmazon."
  21.  
  22.  
  23. new iLevel[33];
  24. new iXp[33];
  25.  
  26. new knife_on;
  27.  
  28. new MaxLevel;
  29. new StartedLevel;
  30.  
  31. new cvar_KillXp;
  32. new cvar_HsXp;
  33. new cvar_KnifeXp;
  34.  
  35. new Forward_spawn;
  36. new Forward_levelup;
  37. new ForwardReturn;
  38.  
  39. new const g_KnifeNames[][32] =
  40. {
  41. "Normal Kes",
  42. "Alien Kes",
  43. "Ellium Tor",
  44. "Fekete Kard",
  45. "Transparent Kes",
  46. "Oszinte Tor",
  47. "Vadaszkes",
  48. "Arnyek Penge",
  49. "Vagohid Balta",
  50. "Arany Katana",
  51. "A Gyilkos Penge",
  52. "Fenykard",
  53. "Veres Farkaskarom",
  54. "Proton Fejsze"
  55. };
  56.  
  57. new const g_KnifevModels[][256] =
  58. {
  59. "models/v_knife.mdl",
  60. "models/Knifes/v_knife_alien.mdl",
  61. "models/Knifes/v_knife_ellium.mdl",
  62. "models/Knifes/v_knife_dark.mdl",
  63. "models/Knifes/v_knife_transparent.mdl",
  64. "models/Knifes/v_knife_genuine.mdl",
  65. "models/Knifes/v_knife_hunt.mdl",
  66. "models/Knifes/v_knife_shadow.mdl",
  67. "models/Knifes/v_knife_slaughterer.mdl",
  68. "models/Knifes/v_knife_katana.mdl",
  69. "models/Knifes/v_knife_assasins.mdl",
  70. "models/Knifes/v_knife_lightsaber.mdl",
  71. "models/Knifes/v_knife_wolverine.mdl",
  72. "models/Knifes/v_knife_proton.mdl"
  73. }
  74.  
  75. native register_maxlevels( maxlevel = 99, started_xp_level = 100 );
  76. native get_user_level( index );
  77. native get_user_xp( index );
  78.  
  79. public plugin_init() {
  80.  
  81. register_plugin(g_VAULTNAME, VERSION, AUTHOR);
  82. register_cvar("knife_skins", VERSION, FCVAR_SERVER); // Find Servers on Game-Monitor
  83. set_cvar_string("knife_skins", VERSION); // Find Servers on Game-Monitor
  84.  
  85. // register max levels 13 is the top level, 100 is the started level xp.
  86. register_maxlevels( 13, 100 );
  87.  
  88. //Admin commands
  89.  
  90. register_concmd("knife_givexp" ,"givexp",ADMIN_RCON,"xp adasa")
  91. register_concmd("knife_takexp", "takexp",ADMIN_RCON,"xp megvonasa")
  92.  
  93. //Clcmd's
  94.  
  95. knife_on = register_cvar( "knife_skins", "1" );
  96.  
  97. register_clcmd("say","HandleSay");
  98. register_clcmd("say_team","HandleSay")
  99. register_clcmd("say /kes", "KnifeSkinsMenu");
  100. register_clcmd("say /szintek", "PlayerLevelsMenu");
  101.  
  102. //Event's
  103.  
  104. register_event("CurWeapon","CurWeapon","be","1=1");
  105. register_event( "DeathMsg", "EventDeathMsg", "a" );
  106.  
  107. //Cvar's
  108.  
  109. cvar_KillXp = register_cvar( "kill_xp", "5" );
  110. cvar_HsXp = register_cvar( "hs_xp", "2" );
  111. cvar_KnifeXp = register_cvar( "knife_xp", "3" );
  112.  
  113. //Ham's
  114.  
  115. RegisterHam( Ham_Spawn, "player", "FwdPlayerSpawn", 1 );
  116. RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
  117.  
  118. //Forward's
  119.  
  120. Forward_levelup = CreateMultiForward( "forward_client_levelup", ET_IGNORE, FP_CELL, FP_CELL, FP_CELL );
  121. Forward_spawn = CreateMultiForward( "forward_client_spawn", ET_IGNORE, FP_CELL , FP_CELL, FP_CELL );
  122.  
  123. set_task(15.0, "Knifemessage", 0, _, _, "b")
  124. set_task(35.0, "Levelmessage", 0, _, _, "b")
  125. }
  126.  
  127. public plugin_precache() {
  128.  
  129. precache_model("models/Knifes/v_knife_alien.mdl")
  130. precache_model("models/Knifes/v_knife_ellium.mdl")
  131. precache_model("models/Knifes/v_knife_dark.mdl")
  132. precache_model("models/Knifes/v_knife_transparent.mdl")
  133. precache_model("models/Knifes/v_knife_genuine.mdl")
  134. precache_model("models/Knifes/v_knife_hunt.mdl")
  135. precache_model("models/Knifes/v_knife_shadow.mdl")
  136. precache_model("models/Knifes/v_knife_slaughterer.mdl")
  137. precache_model("models/Knifes/v_knife_katana.mdl")
  138. precache_model("models/Knifes/v_knife_assasins.mdl")
  139. precache_model("models/Knifes/v_knife_lightsaber.mdl")
  140. precache_model("models/Knifes/v_knife_wolverine.mdl")
  141. precache_model("models/Knifes/v_knife_proton.mdl")
  142.  
  143. }
  144.  
  145. public plugin_natives( )
  146. {
  147. //Native's
  148.  
  149. register_library( "Knife-Skins" );
  150.  
  151. register_native( "register_maxlevels", "_register_maxlevels" );
  152. register_native( "get_user_level", "_get_user_level" );
  153. register_native( "set_user_level", "_set_user_level" );
  154. register_native( "get_user_xp", "_get_user_xp" );
  155. register_native( "set_user_xp", "_set_user_xp" );
  156. }
  157.  
  158. public _register_maxlevels( plugin, params )
  159. {
  160. if( MaxLevel != 0 && StartedLevel != 0 )
  161. {
  162. return;
  163. }
  164. else
  165. {
  166. MaxLevel = get_param( 1 );
  167. StartedLevel = get_param( 2 );
  168. }
  169. }
  170.  
  171. public _get_user_level( plugin, params )
  172. {
  173. return iLevel[ get_param( 1 ) ];
  174. }
  175.  
  176. public _set_user_level( plugin, params )
  177. {
  178. iLevel[ get_param( 1 ) ] = max( get_param( 2 ), MaxLevel );
  179.  
  180. FlsahLevelUp( get_param( 1 ) );
  181.  
  182. SaveData( get_param( 1 ) );
  183.  
  184. LoadData( get_param( 1 ) );
  185. }
  186.  
  187. public _get_user_xp( plugin, params )
  188. {
  189. return iXp[ get_param( 1 ) ];
  190. }
  191.  
  192. public _set_user_xp( plugin, params )
  193. {
  194. iXp[ get_param( 1 ) ] = get_param( 2 );
  195.  
  196. CheckLevel( get_param( 1 ) );
  197.  
  198. SaveData( get_param( 1 ) );
  199.  
  200. LoadData( get_param( 1 ) );
  201. }
  202.  
  203. public CheckLevel( id )
  204. {
  205. if( iLevel[id] == MaxLevel )
  206. {
  207. return;
  208. }
  209. else
  210. {
  211. new level = iLevel[id] > 0 ? iLevel[id] : 1;
  212.  
  213. new xp = level * StartedLevel;
  214.  
  215. if( iLevel[id] > 0 )
  216. {
  217. xp += ( xp * 4 / 2 );
  218. }
  219.  
  220. while( iXp[id] >= xp )
  221. {
  222. iLevel[id]++;
  223.  
  224. ColorChat(id,"^4Gratulalunk!^1 Szintet leptel! Uj^4 SZINT^1 : ^3%i^1.", iLevel[id]);
  225. ColorChat(0,"^3%s^1 felugrott a^4 LEVEL^3 %i^1 szintre!",get_player_name(id), iLevel[id]);
  226.  
  227. FlsahLevelUp(id);
  228.  
  229. ExecuteForward( Forward_levelup, ForwardReturn, id, iLevel[id], iXp[id] );
  230.  
  231. SaveData( id );
  232.  
  233. CheckLevel( id );
  234.  
  235. break;
  236. }
  237. }
  238. }
  239.  
  240. public FlsahLevelUp( id )
  241. {
  242. message_begin( MSG_ONE, get_user_msgid( "ScreenFade" ), { 0, 0, 0}, id );
  243. write_short( 1 << 10 );
  244. write_short( 1 << 10 );
  245. write_short( 0 );
  246. write_byte( 0 );
  247. write_byte( 255 );
  248. write_byte( 215 );
  249. write_byte( 100 );
  250. message_end( );
  251. }
  252.  
  253.  
  254. public HandleSay(id){
  255.  
  256. if (get_pcvar_num(knife_on) == 0)
  257. {
  258. ColorChat(id, "A mod kikapcsolva.");
  259. return PLUGIN_HANDLED;
  260. }
  261.  
  262. new iMsg[200], iArgs[4][60];
  263. new level = iLevel[id] > 0 ? iLevel[id] : 1;
  264.  
  265. new xp = level * StartedLevel;
  266.  
  267. if( iLevel[id] > 0 )
  268. {
  269. xp += ( xp * 4 / 2 );
  270. }
  271.  
  272. read_argv(1,iMsg ,sizeof iMsg - 1);
  273. parse(iMsg,iArgs[0],charsmax(iArgs[]),iArgs[1],charsmax(iArgs[]),iArgs[2],charsmax(iArgs[]),iArgs[3],charsmax(iArgs[]));
  274.  
  275. if (equali(iArgs[0],"/szintek") || equali(iArgs[0],"/szint") || equali(iArgs[0],"/xp"))
  276. {
  277. new player = cmd_target(id,iArgs[1],CMDTARGET_NO_BOTS);
  278.  
  279. if (!player)
  280. {
  281. ColorChat( id, "A te^4 szinted^1:^3 %i^4 |^1 Az^4 XP^1 -d:^3 %i^1/^3%i^1.", iLevel[id], iXp[id], xp );
  282. }
  283. }
  284.  
  285. return 0;
  286. }
  287.  
  288. public EventDeathMsg(id)
  289. {
  290. if (get_pcvar_num(knife_on) == 0)
  291. return PLUGIN_HANDLED;
  292.  
  293. new killer = read_data( 1 );
  294. new victim = read_data( 2 );
  295.  
  296. if( killer == victim || ! is_user_connected( killer ) || ! is_user_connected( victim ) )
  297. {
  298. return PLUGIN_HANDLED;
  299. //return;
  300. }
  301.  
  302. new XpAmount = get_pcvar_num( cvar_KillXp );
  303.  
  304. if( read_data( 3 ) )
  305. {
  306. XpAmount += get_pcvar_num( cvar_HsXp );
  307. }
  308.  
  309. static sWeapon[ 26 ];
  310.  
  311. read_data( 4, sWeapon, sizeof( sWeapon ) - 1 );
  312.  
  313.  
  314. if( equal( sWeapon, "knife" ) )
  315. {
  316. XpAmount += get_pcvar_num( cvar_KnifeXp );
  317. }
  318.  
  319. iXp[ killer ] += XpAmount;
  320.  
  321. CheckLevel( killer );
  322.  
  323. SaveData( killer );
  324.  
  325. ColorChat( killer, "Nyertel^3 %i^1 XP-t.", XpAmount );
  326.  
  327. return PLUGIN_HANDLED;
  328. }
  329.  
  330. public FwdPlayerSpawn( id )
  331. {
  332. ExecuteForward( Forward_spawn, ForwardReturn, id, iLevel[id], iXp[id] );
  333. }
  334.  
  335. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
  336. {
  337. if( get_pcvar_num( knife_on ) == 0 )
  338. return HAM_IGNORED;
  339.  
  340. if( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_KNIFE )
  341. {
  342. SetHamParamFloat(4, damage + knife_model[attacker]);
  343.  
  344. return HAM_HANDLED;
  345. }
  346.  
  347. return HAM_IGNORED;
  348. }
  349.  
  350. public KnifeSkinsMenu(id) {
  351.  
  352. if (get_pcvar_num(knife_on) == 0)
  353. {
  354. ColorChat(id, "A mod kikapcsolva.");
  355. return PLUGIN_HANDLED;
  356. }
  357.  
  358. new szItem[256], szAlien[50], szEllium[50], szDark[50], szTransparent[50], szGenuine[50], szHunt[50], szShadow[50], szSlaughterer[50], szKatana[50], szAssasins[50],
  359. szLightsaber[50], szWolverine[50], szProton[50];
  360.  
  361. new level = iLevel[id] > 0 ? iLevel[id] : 1;
  362.  
  363. new xp = level * StartedLevel;
  364.  
  365. if( iLevel[id] > 0 )
  366. {
  367. xp += ( xp * 4 / 2 );
  368. }
  369.  
  370. formatex(szItem, charsmax(szItem), "\w[ \r%s \w] \yKes-skinek menu \rv%s^n\ySzinted: \r%d \w- \yXP: \r%d\w/\r%d\w.^n\yOldal:\r", g_VAULTNAME, VERSION,iLevel[id],iXp[id], xp);
  371. formatex(szAlien, charsmax(szAlien),"%s", iLevel[id] >= 1 ? "\wAlien Kes [\yFELOLDVA\w]" : "\d???? ????? [\rSZUKSEGES SZINT: 1\d]");
  372. formatex(szEllium, charsmax(szEllium),"%s", iLevel[id] >= 2 ? "\wEllium Tor [\yFELOLDVA\w]" : "\d?????? ?????? [\rSZUKSEGES SZINT: 2\d]");
  373. formatex(szDark, charsmax(szDark),"%s", iLevel[id] >= 3 ? "\wFekete Kard [\yFELOLDVA\w]" : "\d???? ?????? [\rSZUKSEGES SZINT: 3\d]");
  374. formatex(szTransparent, charsmax(szTransparent),"%s", iLevel[id] >= 4 ? "\wTransparent Kes [\yFELOLDVA\w]" : "\d??????????? ????? [\rSZUKSEGES SZINT: 4\d]");
  375. formatex(szGenuine, charsmax(szGenuine),"%s", iLevel[id] >= 5 ? "\wOszinte Tor [\yFELOLDVA\w]" : "\d??????? ?????? [\rSZUKSEGES SZINT: 5\d]");
  376. formatex(szHunt, charsmax(szHunt),"%s", iLevel[id] >= 6 ? "\wVadaszkes [\yFELOLDVA\w]" : "\d???? ????? [\rSZUKSEGES SZINT: 6\d]");
  377. formatex(szShadow, charsmax(szShadow),"%s", iLevel[id] >= 7 ? "\wArnyek Penge [\yFELOLDVA\w]" : "\d?????? ????? [\rSZUKSEGES SZINT: 7\d]");
  378. formatex(szSlaughterer, charsmax(szSlaughterer),"%s", iLevel[id] >= 8 ? "\wVagohid Balta [\yFELOLDVA\w]" : "\d??????????? ??? [\rSZUKSEGES SZINT: 8\d]");
  379. formatex(szKatana, charsmax(szKatana),"%s", iLevel[id] >= 9 ? "\wArany Katana [\yFELOLDVA\w]" : "\d?????? ?????? [\rSZUKSEGES SZINT: 9\d]");
  380. formatex(szAssasins, charsmax(szAssasins),"%s", iLevel[id] >= 10 ? "\wA Gyilkos Penge [\yFELOLDVA\w]" : "\d???????? ????? [\rSZUKSEGES SZINT: 10\d]");
  381. formatex(szLightsaber, charsmax(szLightsaber),"%s", iLevel[id] >= 11 ? "\wFenykard [\yFELOLDVA\w]" : "\d?????????? [\rSZUKSEGES SZINT: 11\d]");
  382. formatex(szWolverine, charsmax(szWolverine),"%s", iLevel[id] >= 12 ? "\wVeres Farkaskarom [\yFELOLDVA\w]" : "\d?????? ????????? ????? [\rSZUKSEGES SZINT: 12\d]");
  383. formatex(szProton, charsmax(szProton),"%s", iLevel[id] >= 13 ? "\wProton Fejsze [\yFELOLDVA\w]" : "\d?????? ??? [\rSZUKSEGES SZINT: 13\d]");
  384.  
  385. new menu = menu_create( szItem, "KnifeSkinsMenu_Handler" );
  386. menu_additem(menu, "\wNormal Kes [\yFELOLDVA\w]", "", 0 );
  387. menu_additem(menu, szAlien, "", iLevel[id] >= 1 ? 0 : 1);
  388. menu_additem(menu, szEllium, "", iLevel[id] >= 2 ? 0 : 1);
  389. menu_additem(menu, szDark, "", iLevel[id] >= 3 ? 0 : 1);
  390. menu_additem(menu, szTransparent, "", iLevel[id] >= 4 ? 0 : 1);
  391. menu_additem(menu, szGenuine, "", iLevel[id] >= 5 ? 0 : 1);
  392. menu_additem(menu, szHunt, "", iLevel[id] >= 6 ? 0 : 1);
  393. menu_additem(menu, szShadow, "", iLevel[id] >= 7 ? 0 : 1);
  394. menu_additem(menu, szSlaughterer, "", iLevel[id] >= 8 ? 0 : 1);
  395. menu_additem(menu, szKatana, "", iLevel[id] >= 9 ? 0 : 1);
  396. menu_additem(menu, szAssasins, "", iLevel[id] >= 10 ? 0 : 1);
  397. menu_additem(menu, szLightsaber, "", iLevel[id] >= 11 ? 0 : 1);
  398. menu_additem(menu, szWolverine, "", iLevel[id] >= 12 ? 0 : 1);
  399. menu_additem(menu, szProton, "", iLevel[id] >= 13 ? 0 : 1);
  400.  
  401. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL );
  402. menu_display(id, menu, 0 );
  403.  
  404. return PLUGIN_HANDLED;
  405. }
  406.  
  407. public KnifeSkinsMenu_Handler(id, menu, item)
  408. {
  409. if(item == MENU_EXIT)
  410. {
  411. menu_destroy(menu)
  412. return PLUGIN_HANDLED
  413. }
  414.  
  415. SetKnife(id, item);
  416. ColorChat(id, "A kivalasztott kes: ^4%s^1.", g_KnifeNames[item]);
  417.  
  418. SaveData(id);
  419. return PLUGIN_HANDLED;
  420. }
  421.  
  422. public SetKnife(id, item) {
  423.  
  424. knife_model[id] = item
  425.  
  426. new Clip, Ammo, Weapon = get_user_weapon(id, Clip, Ammo)
  427. if ( Weapon != CSW_KNIFE )
  428. return PLUGIN_HANDLED
  429.  
  430. new vModel[56],pModel[56]
  431.  
  432. if (get_pcvar_num(knife_on) == 0)
  433. {
  434. format(vModel,55,"models/v_knife.mdl")
  435. return PLUGIN_HANDLED;
  436. }
  437.  
  438. format(vModel,55, g_KnifevModels[item])
  439. format(pModel,55,"models/p_knife.mdl")
  440. entity_set_string(id, EV_SZ_viewmodel, vModel)
  441. entity_set_string(id, EV_SZ_weaponmodel, pModel)
  442.  
  443. return PLUGIN_HANDLED;
  444. }
  445.  
  446. public PlayerLevelsMenu(id)
  447. {
  448. if (get_pcvar_num(knife_on) == 0)
  449. {
  450. ColorChat(id, "A mod kikapcsolva.");
  451. return PLUGIN_HANDLED;
  452. }
  453.  
  454. new some[256], menu;
  455.  
  456. static players[32],szTemp[10],pnum;
  457. get_players(players,pnum,"ch");
  458.  
  459. formatex(some,255,"\w[ \r%s \w] \yA jatekos szintje:\r", g_VAULTNAME);
  460.  
  461. menu = menu_create(some,"PlayerLevelsMenu_Handler");
  462.  
  463. for (new i; i < pnum; i++)
  464. {
  465. new level = iLevel[players[i]] > 0 ? iLevel[players[i]] : 1;
  466.  
  467. new xp = level * StartedLevel;
  468.  
  469. if( iLevel[players[i]] > 0 )
  470. {
  471. xp += ( xp * 4 / 2 );
  472. }
  473.  
  474. formatex(some,256,"%s \y(Szint: \r%i\y) \w- \y(XP: \r%i\w/\r%i\y)",get_player_name(players[i]), iLevel[players[i]], iXp[players[i]], xp);
  475. num_to_str(players[i],szTemp,charsmax(szTemp));
  476. menu_additem(menu, some, szTemp);
  477. }
  478.  
  479. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL );
  480. menu_display(id, menu);
  481.  
  482. return PLUGIN_HANDLED;
  483. }
  484.  
  485. public PlayerLevelsMenu_Handler(id,menu, item){
  486. if (item == MENU_EXIT)
  487. {
  488. menu_destroy(menu);
  489. return;
  490. }
  491.  
  492. new data[6] ,szName[64],access,callback;
  493.  
  494. menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback);
  495.  
  496. new player = str_to_num(data);
  497.  
  498. new level = iLevel[player] > 0 ? iLevel[player] : 1;
  499.  
  500. new xp = level * StartedLevel;
  501.  
  502. if( iLevel[player] > 0 )
  503. {
  504. xp += ( xp * 4 / 2 );
  505. }
  506.  
  507. ColorChat(id,"^3%s ^4SZINTJE ^1: ^3%i ^1%i^1/^3%i ^4XP-vel^1.",get_player_name(player), iLevel[player], iXp[player], xp);
  508. PlayerLevelsMenu(id);
  509. }
  510.  
  511. public CurWeapon(id)
  512. {
  513. // Set Knife Model
  514. SetKnife(id, knife_model[id])
  515. }
  516.  
  517. public givexp(id) {
  518. if (get_pcvar_num(knife_on) == 0)
  519. {
  520. ColorChat(id, "A mod kikapcsolva.");
  521. return PLUGIN_HANDLED;
  522. }
  523.  
  524. if( get_user_flags( id ) & ADMIN_RCON ) {
  525.  
  526. new PlayerToGive[32], XP[32]
  527. read_argv(1,PlayerToGive,31)
  528. read_argv(2,XP, 31)
  529. new Player = cmd_target(id,PlayerToGive,9)
  530.  
  531. if(!Player) {
  532.  
  533. return PLUGIN_HANDLED
  534.  
  535. }
  536.  
  537. new XPtoGive = str_to_num(XP)
  538. new name[32],owner[32]
  539. get_user_name(id,owner,31)
  540. get_user_name(Player,name,31)
  541. ColorChat(0,"^4ADMIN^3 %s^1 adott^4 %s XP-t^3 %s^1 jatekosnak.", owner,XP,name );
  542. iXp[Player]+= XPtoGive
  543. CheckLevel(Player);
  544. SaveData(id)
  545.  
  546. }
  547.  
  548. else {
  549.  
  550. client_print(id,print_console,"Nincs hozzaferesed ehhez a parancshoz")
  551.  
  552. return PLUGIN_HANDLED
  553. }
  554.  
  555. return PLUGIN_HANDLED;
  556. }
  557.  
  558. public takexp(id) {
  559. if (get_pcvar_num(knife_on) == 0)
  560. {
  561. ColorChat(id, "A mod kikapcsolva.");
  562. return PLUGIN_HANDLED;
  563. }
  564.  
  565. if(get_user_flags(id) & ADMIN_RCON ) {
  566.  
  567.  
  568. new PlayerToTake[32], XP[32]
  569. read_argv(1,PlayerToTake,31 )
  570. read_argv(2,XP,31 )
  571. new Player = cmd_target(id,PlayerToTake,9)
  572.  
  573. if(!Player) {
  574.  
  575. return PLUGIN_HANDLED
  576.  
  577. }
  578.  
  579. new XPtoTake = str_to_num(XP)
  580. new name[32],owner[32]
  581. get_user_name(id,owner,31)
  582. get_user_name(Player,name,31)
  583. ColorChat(0,"^4ADMIN^3 %s^1 megvont^4 %s XP-t^3 %s^1 jatekostol.", owner,XP,name );
  584. iXp[ Player ]-=XPtoTake
  585. CheckLevel(Player);
  586. SaveData(id)
  587.  
  588. }
  589.  
  590. else {
  591.  
  592. client_print(id,print_console,"Nincs hozzaferesed ehhez a parancshoz.")
  593.  
  594. return PLUGIN_HANDLED
  595.  
  596. }
  597.  
  598. return PLUGIN_HANDLED;
  599. }
  600.  
  601. public client_disconnect(id) {
  602.  
  603. if(task_exists(id)){
  604. remove_task(id)
  605. }
  606. SaveData(id);
  607. }
  608.  
  609.  
  610. public Knifemessage(id) {
  611.  
  612. if (get_pcvar_num(knife_on) == 0)
  613. return PLUGIN_HANDLED;
  614.  
  615. ColorChat(0, "Ird be ^3/kes ^1hogy megnyisd a ^4Kes-skinek menut^1.");
  616. ColorChat(0, "Ezen a szerveren ^4%s ^3v%s^1 by ^4%s^1 mod fut.",g_VAULTNAME, VERSION, AUTHOR)
  617. return PLUGIN_HANDLED;
  618. }
  619.  
  620. public Levelmessage(id) {
  621.  
  622. if (get_pcvar_num(knife_on) == 0)
  623. return PLUGIN_HANDLED;
  624.  
  625. ColorChat(0,"Megtekintheted a ^4Jatekosok szintjeit. ^1Ird be ^3/szintek ^1.");
  626. return PLUGIN_HANDLED;
  627. }
  628.  
  629. public client_putinserver(id) LoadData(id);
  630.  
  631. public SaveData(id){
  632.  
  633. new authid[32]
  634. get_user_authid(id, authid, 31)
  635.  
  636. new vaultkey[64]
  637. new vaultdata[64]
  638.  
  639. format(vaultkey, 63, "KNIFEMOD_%s", authid)
  640. format(vaultdata, 63, "%d", knife_model[id])
  641. set_vaultdata(vaultkey, vaultdata)
  642.  
  643. new data[ 16 ];
  644.  
  645. get_user_authid( id, authid, sizeof( authid ) - 1 );
  646.  
  647. formatex( data, sizeof( data ) - 1, "%d %d", iLevel[id], iXp[id] );
  648.  
  649. fvault_set_data(g_VAULTNAME, authid, data );
  650.  
  651. return;
  652.  
  653.  
  654. }
  655.  
  656. public LoadData(id){
  657.  
  658. new authid[32]
  659. get_user_authid(id,authid,31)
  660.  
  661. new vaultkey[64], vaultdata[64]
  662.  
  663. format(vaultkey, 63, "KNIFEMOD_%s", authid)
  664. get_vaultdata(vaultkey, vaultdata, 63)
  665. knife_model[id] = str_to_num(vaultdata)
  666.  
  667. new data[ 16 ], szLevel[ 8 ], szXp[ 8 ];
  668.  
  669. get_user_authid( id, authid, sizeof( authid ) - 1 );
  670.  
  671. if( fvault_get_data(g_VAULTNAME, authid, data, sizeof( data ) - 1 ) )
  672. {
  673. strbreak( data, szLevel, sizeof( szLevel ) - 1, szXp, sizeof( szXp ) - 1 );
  674.  
  675. iLevel[id] = str_to_num( szLevel );
  676. iXp[id] = str_to_num( szXp );
  677.  
  678. return;
  679. }
  680. else
  681. {
  682. iLevel[id] = 0;
  683. iXp[id] = 0;
  684.  
  685. return;
  686. }
  687. }
  688.  
  689. stock get_player_name(id){
  690. static szName[32];
  691. get_user_name(id,szName,31);
  692. return szName;
  693. }
  694.  
  695. stock ColorChat( const id, const string[ ], { Float, Sql, Resul, _ } : ... )
  696. {
  697. new msg[ 191 ], players[ 32 ], count = 1;
  698.  
  699. static len;
  700. len = formatex( msg, charsmax( msg ), "^x04[^x01 Kes-skinek^x04 ]^x01 " );
  701. vformat( msg[ len ], charsmax( msg ) - len, string, 3 );
  702.  
  703. if( id )
  704. players[ 0 ] = id;
  705. else
  706. get_players( players,count,"ch" );
  707.  
  708. for( new i = 0; i < count; i++ )
  709. {
  710. if( is_user_connected( players[i] ) )
  711. {
  712. message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _ , players[ i ] );
  713. write_byte( players[ i ] );
  714. write_string( msg );
  715. message_end( );
  716. }
  717. }
  718. }
  719. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  720. *{\\ rtf1\\ fbidis\\ ansi\\ ansicpg1252\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset0 Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ ltrpar\\ lang1033\\ f0\\ fs16 \n\\ par }
  721. */
  722.