hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.28. 06:02



Jelenlévő felhasználók

Jelenleg 506 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 506 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  [ 13 hozzászólás ]  Oldal 1 2 Következő
Szerző Üzenet
 Hozzászólás témája: szintrendszer módosítás
HozzászólásElküldve: 2014.07.09. 01:29 
Offline
Beavatott
Avatar

Csatlakozott: 2014.04.14. 21:21
Hozzászólások: 88
Megköszönt másnak: 6 alkalommal
Megköszönték neki: 4 alkalommal
Sziasztok!

Van ez a szintrendszeres plugin:
SMA Forráskód: [ Mindet kijelol ]
  1. /////////////////////////////////////////////////////////////////////////////
  2. //==============================
  3. //= Szintrendszer =
  4. //==============================
  5. //
  6. //---------------------
  7. //- Description -
  8. //---------------------
  9. //
  10. //This plugin include the features:
  11. //** XP System - nVault
  12. //** Level System - nVault
  13. //** Cvars to control all bonus per lvl
  14. //** Commands to Add & Remove XP
  15. //** Level behind the Nick Name
  16. //** Bonus Per level
  17. //** ADM Chat Colors Support
  18. //** ...
  19. //
  20. //----------------------
  21. //- Requirements -
  22. //----------------------
  23. //
  24. //** AMXX: Version 1.8.1
  25. //** AMXX Modules: Cstrike, Fun, Engine, Fakemeta, ColorChat, nVault and Hamsandwich modules
  26. //
  27. //----------------------
  28. //- Installation -
  29. //----------------------
  30. //
  31. //1- Download and compile the plugin from:
  32. //2- Upload the amxx file to your server (cstrike>addons>amxmodx>plugins).
  33. //3- Edit the config file and add the plugin (cstrike>addons>amxmodx>configs>plugins.ini).
  34. //
  35. //----------------------
  36. //- Contact Info -
  37. //----------------------
  38. //
  39. //For reporting bugs or post your feedback visit:
  40. //https://forums.alliedmods.net/showthread.php?p=1810627
  41. //
  42. //If you want some private job PM ME on alliedmodders Forum's or send me and email to:
  43. //
  44. //-----------------
  45. //- Credits -
  46. //-----------------
  47. //
  48. //** Ex1ne
  49. //- XP System & Level System
  50. //
  51. //** matsi
  52. //- Observations and optimizations
  53. //
  54. //** tre3fla
  55. //- Suggestion and request
  56. //
  57. //** ConnorMcLeod
  58. //- Suggestion, SayTxt and Admin Chat Colors Code
  59. //
  60. //** xBatista
  61. //- ShowHud Help
  62. //
  63. //------------------
  64. //- Updates Logs -
  65. //------------------
  66. //
  67. //** v0.0.1 [Oct 2012]
  68. //- First Release
  69. //
  70. //** v0.0.2 [Oct 2012]
  71. //- Optimize & Improve Code
  72. //
  73. //** v0.0.3 [Oct 2012]
  74. //- Optimize Code
  75. //
  76. //** v0.0.4 [Oct 2012]
  77. //- Improve Level Prefix and Personal Info
  78. //
  79. //** v0.0.5 [Oct 2012]
  80. //- Optimize EventDeathMsg
  81. //- Improve Check Level
  82. //
  83. //** v0.0.6 [Oct 2012]
  84. //- Fix Damage Bug
  85. //- Fix Messages Bugs
  86. //
  87. //** v0.0.7 [Oct 2012]
  88. //- Fix Index of Bounds
  89. //
  90. //** v0.0.8 [Oct 2012]
  91. //- Added feature Admin Chat Colors
  92. //
  93. //** v0.0.9 [Oct 2012]
  94. //- Fix some Bugs & Added XP Reward MSG CVAR
  95. //
  96. //** v1.0 [Jan 2013]
  97. //- Fix Give & Remove XP Command
  98. //
  99. ////////////////////////////////////////////////////////////////////
  100.  
  101. #include <amxmodx>
  102. #include <amxmisc>
  103. #include <nvault>
  104. #include <colorchat>
  105. #include <cstrike>
  106. #include <fun>
  107. #include <hamsandwich>
  108. #include <fakemeta>
  109.  
  110. new Level[33], eXP[33]
  111. new KillXp, HsXp, HeXp/*, KnifeXp*/
  112. new gVault
  113.  
  114. new const szPrefix[] = "[^4Szintrendszer^3] -"
  115.  
  116. #define MaxLevels 12
  117. #define IsPlayer(%1) ( 1 <= %1 <= g_iMaxPlayers )
  118. #define TASK_SHOW_HUD 10113
  119.  
  120. new g_msgHudSync
  121. new bool:is_user_ignored[ 33 ]
  122.  
  123. new const Levels[MaxLevels] =
  124. {
  125. 100, // Starter #1
  126. 150, // Noob #2
  127. 200, // Beginner #3
  128. 250, // Knifer #4
  129. 300, // Rambo #5
  130. 350, // Butcher #6
  131. 400, // Matrix #7
  132. 450, // Probhop #8
  133. 550, // Freak #9
  134. 600, // Racer #10
  135. 650, // Kill Bill #11
  136. 700 // Respected Player #12
  137. }
  138. new const Prefix[MaxLevels +1][] =
  139. {
  140. "Kezdo", // 0
  141. "Ujonc", // 1
  142. "Halado", // 2
  143. "TudValamit", // 3
  144. "Gyilkos", // 4
  145. "LoL", // 5
  146. "Orult", // 6
  147. "Wh-s", // 7
  148. "Legyozhetetlen", // 8
  149. "Aimos", // 9
  150. "Mester", // 10
  151. "Eszmeletlen", // 11
  152. "LegenD" // 12
  153. }
  154.  
  155. // Bonus Stuff
  156. new healthperlevel,
  157. armorperlevel,
  158. speedperlevel,
  159. damageperlevel,
  160. gravityperlvl
  161.  
  162. new g_iMaxPlayers
  163.  
  164. // ADMIN CHAT COLORS by ConnorMcLeod
  165. enum _:ADMIN_DATAS
  166. {
  167. m_szName[32],
  168. m_iFlag
  169. }
  170.  
  171. new const AdminsDatas[][ADMIN_DATAS] =
  172. {
  173. {"Owner", ADMIN_IMMUNITY},
  174. {"Manager", ADMIN_BAN},
  175. // {"SuperAdmin", ADMIN_CFG},
  176. {"Admin", ADMIN_KICK},
  177. {"VIP", ADMIN_RESERVATION}
  178. };
  179.  
  180. public plugin_init()
  181. {
  182. register_plugin("Deathrun XP & Level Mod", "0.0.9", "Freestyle")
  183.  
  184. register_message(get_user_msgid("SayText"),"Message_SayText"); // CREDITS TO ConnorMcLeod
  185.  
  186. RegisterHam ( Ham_Spawn, "player", "Ham_CheckOthers_Bonus", 1);
  187. RegisterHam ( Ham_TakeDamage, "player", "Ham_CheckDamage_Bonus", .Post = false );
  188. RegisterHam ( Ham_Item_PreFrame, "player", "Ham_CheckSpeed_Bonus", 1);
  189.  
  190. g_iMaxPlayers = get_maxplayers( );
  191.  
  192. register_cvar( "AdminChatColors_On", "1" ); // Admin Tag - Example: [Admin] Freestyle
  193. register_cvar( "XP_Reward_MSG", "1" ); // Message of the XP Gain
  194.  
  195. // CHAT COMMANDS //
  196. register_clcmd ( "say /xp", "ShowPlayerXP")
  197. register_clcmd ( "say_team /xp", "ShowPlayerXP")
  198. register_clcmd ( "say /level", "ShowPlayerLevel")
  199. register_clcmd ( "say_team /level", "ShowPlayerLevel")
  200.  
  201. // XP SYSTEM //
  202. KillXp = register_cvar("drxp_per_kill", "1")
  203. HsXp = register_cvar("drxp_per_hs", "1")
  204. HeXp = register_cvar("drxp_per_nade_kill", "2")
  205. //KnifeXp = register_cvar("drxp_per_knife_kill", "2")
  206.  
  207. // Give & Remove XP //
  208. register_concmd ( "give_xp", "CmdAddXP", ADMIN_RCON, "<nick, #userid, authid | @all> <xp>" )
  209. register_concmd ( "remove_xp", "CmdRemoveXP", ADMIN_RCON, "<nick, #userid, authid | @all> <xp>" )
  210.  
  211. /* Bonus Stuff */
  212.  
  213. // Health Per Level //
  214. healthperlevel = register_cvar("health_per_lvl", "0")
  215.  
  216. // Armor Per Level //
  217. armorperlevel = register_cvar("armor_per_lvl", "0")
  218.  
  219. // Speed Per Level //
  220. speedperlevel = register_cvar("speed_per_lvl", "0")
  221.  
  222. // Gravity Per Level //
  223. gravityperlvl = register_cvar("gravity_per_lvl", "0") // NERVER MORE THAN 66 PER LVL
  224.  
  225. // Damage Per Level //
  226. damageperlevel = register_cvar("damage_per_lvl", "0")
  227.  
  228. g_msgHudSync = CreateHudSyncObj()
  229. }
  230.  
  231. public plugin_cfg( )
  232. {
  233. gVault = nvault_open( "DEATHRUN_XP" )
  234.  
  235. if ( gVault == INVALID_HANDLE )
  236. set_fail_state( "Error opening nVault" );
  237. }
  238.  
  239. /* INFO ABOUT PERSONAL XP/LEVEL */
  240. public ShowPlayerXP(id)
  241. {
  242. ColorChat(id, GREY, "%s Neked ^4%i^3 XP-d van es a szinted: ^4%s^3!", szPrefix, eXP[id], Prefix[Level[id]])
  243. }
  244.  
  245. public ShowPlayerLevel(id)
  246. {
  247. new name[32]
  248. get_user_name(id, name, sizeof(name) -1)
  249.  
  250. ColorChat(id, GREY, "%s A te szinted: ^4%s^3 ^4%i^3 XP-vel!", szPrefix, Prefix[Level[id]], eXP[id])
  251. }
  252.  
  253. public Ham_CheckDamage_Bonus( pevVictim, pevInflictor, pevAttacker, Float:flDamage, iDmgBits )
  254. {
  255. if( !( 1 <= pevAttacker <= g_iMaxPlayers) )
  256. {
  257. return HAM_HANDLED;
  258. }
  259.  
  260. if( !is_user_alive( pevAttacker ) )
  261. {
  262. return HAM_HANDLED;
  263. }
  264.  
  265. SetHamParamFloat( 4 , flDamage + ( get_pcvar_num( damageperlevel ) * Level[ pevAttacker ] ) )
  266.  
  267. return HAM_IGNORED;
  268. }
  269.  
  270. /* Speed Check */
  271. public Ham_CheckSpeed_Bonus( id )
  272. {
  273. if( !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
  274. {
  275. return HAM_IGNORED;
  276. }
  277.  
  278. set_user_maxspeed( id, 250.0 + ( get_pcvar_num(speedperlevel) * Level[ id ] ) );
  279.  
  280. return HAM_IGNORED;
  281. }
  282.  
  283. /* HP & AP & Gravity Check */
  284. public Ham_CheckOthers_Bonus(id)
  285. {
  286. if( !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
  287. return HAM_IGNORED;
  288.  
  289. // HP Check
  290. new HPCheck = ( get_user_health(id) + get_pcvar_num(healthperlevel) * Level[ id ] );
  291. set_user_health( id, HPCheck );
  292.  
  293. // AP Check
  294. new APCheck = ( get_user_armor(id) + get_pcvar_num(armorperlevel) * Level[ id ] );
  295. set_user_armor( id, APCheck );
  296.  
  297. // Gravity
  298. new GRAVITYCheck = 800 - ( get_pcvar_num( gravityperlvl ) * Level[ id ] );
  299.  
  300. if(get_pcvar_num(gravityperlvl) > 66)
  301. {
  302. set_user_gravity( id, float( 8 ) / 800.0 );
  303. }
  304. else
  305. {
  306. set_user_gravity( id, float( GRAVITYCheck ) / 800.0 );
  307. }
  308.  
  309. remove_task( TASK_SHOW_HUD + id );
  310.  
  311. set_task(0.1, "ShowHud", TASK_SHOW_HUD + id)
  312.  
  313. return HAM_IGNORED;
  314. }
  315.  
  316. /* Respected Player Join / Leave Stuff */
  317.  
  318. public LvL_12_PlayerJoin(id)
  319. {
  320. new name[32]
  321. get_user_name(id, name, sizeof(name) -1)
  322.  
  323. ColorChat(0, GREY, "%s ^4Egy LegenD : ^1%s^4 belepett,^1%i^4 XP-je van!", szPrefix, name, eXP[id])
  324. }
  325.  
  326. public LvL_12_PlayerRemove(id)
  327. {
  328. new name[32]
  329. get_user_name(id, name, sizeof(name) -1)
  330.  
  331. ColorChat(0, GREY, "%s ^4Egy LegenD : %s lelepett %i XP-je van!", szPrefix, name, eXP[id])
  332. }
  333.  
  334. public plugin_end( )
  335. nvault_close( gVault )
  336.  
  337. public client_putinserver(id)
  338. {
  339. LoadData(id)
  340. set_task( 3.0, "ShowHud", id, .flags = "b" );
  341.  
  342. if(Level[id] == 12)
  343. {
  344. set_task(5.0, "LvL_12_PlayerJoin", id)
  345. }
  346. }
  347.  
  348. public client_disconnect(id)
  349. {
  350. SaveData(id)
  351.  
  352. if(Level[id] == 12)
  353. {
  354. set_task(1.0, "LvL_12_PlayerRemove", id)
  355. }
  356. }
  357.  
  358. /* XP REWARDS */
  359. public client_death( iKiller, iVictim, wpnindex, hitplace )
  360. {
  361. new vname[32]
  362. new kname[32]
  363.  
  364. get_user_name( iKiller, kname, charsmax( kname ) )
  365. get_user_name( iVictim, vname, charsmax( vname ) )
  366.  
  367. if( is_user_ignored[ iKiller ] )
  368. return PLUGIN_HANDLED_MAIN
  369.  
  370. get_user_name( iKiller, kname, charsmax( kname ) )
  371. get_user_name( iVictim, vname, charsmax( vname ) )
  372.  
  373. if( iKiller != iVictim && ( 1 <= iKiller <= g_iMaxPlayers ) && ( 1 <= iVictim <= g_iMaxPlayers ) && !( hitplace == HIT_HEAD ) && !( wpnindex == CSW_HEGRENADE ) )
  374. {
  375. eXP[iKiller] += get_pcvar_num(KillXp)
  376.  
  377. if( get_cvar_num("XP_Reward_MSG") == 1 )
  378. {
  379. ColorChat ( iKiller, GREY, "%s Kaptal^4 %i^3 XP-t mert megolted ^4 %s^3-t", szPrefix, get_pcvar_num(KillXp), vname )
  380. }
  381. }
  382.  
  383. if( hitplace == HIT_HEAD )
  384. {
  385. eXP[iKiller] += get_pcvar_num(HsXp)
  386.  
  387. if( get_cvar_num("XP_Reward_MSG") == 1 )
  388. {
  389. ColorChat ( iKiller, GREY, "%s Kaptal^4 %i^3 XP-t mert megolted ^4 %s^3-t", szPrefix, get_pcvar_num (HsXp), vname )
  390. }
  391. }
  392.  
  393. if( wpnindex == CSW_HEGRENADE && iKiller != iVictim )
  394. {
  395. eXP[iKiller] += get_pcvar_num(HeXp)
  396.  
  397. if( get_cvar_num("XP_Reward_MSG") == 1 )
  398. {
  399. ColorChat( iKiller, GREEN, "%s Kaptal^4 %i^3 XP-t mert megolted ^4 %s^3-t", szPrefix, get_pcvar_num (HeXp), vname )
  400. }
  401. }
  402. CheckLevel(iKiller)
  403. SaveData(iKiller)
  404.  
  405. return PLUGIN_CONTINUE
  406. }
  407.  
  408. public CheckLevel(id)
  409. {
  410. if(Level[id] < MaxLevels-1)
  411. {
  412. while(eXP[id] >= Levels[Level[id]])
  413. {
  414. Level[id] += 1
  415. ColorChat(id, GREY, "%s Gratulalok szintet leptel, mostani szinted szama : ^4%i^3", szPrefix, Level[id])
  416. }
  417. }
  418. }
  419.  
  420. /* HUD PERMANENT INFO */
  421. public ShowHud(task)
  422. {
  423. new id = task - TASK_SHOW_HUD
  424.  
  425. if(!is_user_alive(id))
  426. return;
  427.  
  428. set_hudmessage(0, 0, 0, 0.02, 0.33, 0, 0.0, 0.3, 0.0, 0.0)
  429. ShowSyncHudMsg(id, g_msgHudSync,"[Szinted : %s]^n[XP-d : %i]", Prefix[Level[id]], eXP[id])
  430.  
  431. set_task(0.1, "ShowHud", TASK_SHOW_HUD + id)
  432. }
  433.  
  434. /* nVault Stuff */
  435. public SaveData(id)
  436. {
  437. new AuthID[35]
  438. get_user_authid(id,AuthID,34)
  439. new vaultkey[64],vaultdata[256]
  440.  
  441. format(vaultkey,63,"%s-Mod",AuthID)
  442. format(vaultdata,255,"%i#%i#",eXP[id],Level[id])
  443.  
  444. nvault_set(gVault,vaultkey,vaultdata)
  445.  
  446. return PLUGIN_CONTINUE
  447. }
  448. public LoadData(id)
  449. {
  450. new AuthID[35]
  451. get_user_authid(id,AuthID,34)
  452. new vaultkey[64],vaultdata[256]
  453.  
  454. format(vaultkey,63,"%s-Mod",AuthID)
  455. format(vaultdata,255,"%i#%i#",eXP[id],Level[id])
  456.  
  457. nvault_get(gVault,vaultkey,vaultdata,255)
  458.  
  459. replace_all(vaultdata, 255, "#", " ")
  460.  
  461. new playerxp[32], playerlevel[32]
  462.  
  463. parse(vaultdata, playerxp, 31, playerlevel, 31)
  464.  
  465. eXP[id] = str_to_num(playerxp)
  466.  
  467. Level[id] = str_to_num(playerlevel)
  468.  
  469. return PLUGIN_CONTINUE
  470. }
  471.  
  472. /* Remove And Add XP */
  473. public CmdAddXP ( iPlayer, level, cid )
  474. {
  475. if( !cmd_access( iPlayer, level, cid, 3 ) ) return PLUGIN_HANDLED;
  476.  
  477. new arg [ 32 ]
  478. read_argv ( 1, arg, 31 )
  479.  
  480. new AddXP [ 32 ]
  481. read_argv ( 2, AddXP, charsmax ( AddXP ) )
  482.  
  483. new XPtoGive = str_to_num ( AddXP )
  484.  
  485. new AdminName [ 32 ]
  486. new TargetName [ 32 ]
  487. get_user_name ( iPlayer, AdminName, charsmax ( AdminName ) )
  488.  
  489. if( arg[0]=='@' )
  490. {
  491. if( equali(arg[1],"All") || equali(arg[1],"ALL") )
  492. {
  493. new players[32], totalplayers, All
  494. get_players( players, totalplayers )
  495.  
  496. for ( new i = 0; i < totalplayers; i++ )
  497. {
  498. All = players[ i ]
  499.  
  500. eXP[ All ] += XPtoGive
  501. }
  502.  
  503. CheckLevel( All )
  504. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t minden ^1 jatekosnak^3!", szPrefix, AdminName, XPtoGive )
  505. }
  506. else if( equali(arg[1],"T") || equali(arg[1],"t") )
  507. {
  508. new players[32], totalplayers, T
  509. get_players( players, totalplayers )
  510.  
  511. for ( new i = 0; i < totalplayers; i++ )
  512. {
  513. if ( get_user_team(players[ i ]) == 1 )
  514. {
  515. T = players[ i ]
  516.  
  517. eXP[ T ] += XPtoGive
  518. }
  519. }
  520.  
  521. CheckLevel( T )
  522. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t minden^1 Terrornak^3!", szPrefix, AdminName, XPtoGive )
  523. }
  524. else if( equali(arg[1],"CT") || equali(arg[1],"ct") )
  525. {
  526. new players[32], totalplayers, CT
  527. get_players( players, totalplayers )
  528.  
  529. for( new i = 0; i < totalplayers; i++ )
  530. {
  531. if( get_user_team(players[ i ] ) == 2 )
  532. {
  533. CT = players[ i ]
  534.  
  535. eXP[ CT ] += XPtoGive
  536. }
  537. }
  538.  
  539. CheckLevel( CT )
  540. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t minden^1 CT-nek^3!", szPrefix, AdminName, XPtoGive )
  541. }
  542. }
  543. else
  544. {
  545. new iTarget = cmd_target( iPlayer, arg, 3 )
  546. get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
  547.  
  548. if( iTarget )
  549. {
  550. eXP[ iTarget ] += XPtoGive
  551.  
  552. CheckLevel( iTarget )
  553. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t ^1 %s-nek^3", szPrefix, AdminName, XPtoGive, TargetName )
  554. }
  555. }
  556. return PLUGIN_HANDLED
  557. }
  558.  
  559. public CmdRemoveXP ( iPlayer, level, cid )
  560. {
  561. if( !cmd_access(iPlayer, level, cid, 3) ) return PLUGIN_HANDLED;
  562.  
  563. new arg [ 32 ]
  564. read_argv ( 1, arg, 31 )
  565.  
  566. new RemoveXP [ 32 ]
  567. read_argv ( 2, RemoveXP, charsmax ( RemoveXP ) )
  568.  
  569. new XPtoRemove = str_to_num ( RemoveXP )
  570.  
  571. new AdminName [ 32 ]
  572. new TargetName [ 32 ]
  573. get_user_name ( iPlayer, AdminName, charsmax ( AdminName ) )
  574.  
  575. if( arg[0]=='@' )
  576. {
  577. if( equali(arg[1],"All") || equali(arg[1],"ALL") )
  578. {
  579. new players[32], totalplayers, All
  580. get_players( players, totalplayers )
  581.  
  582. for ( new i = 0; i < totalplayers; i++ )
  583. {
  584. All = players[ i ]
  585.  
  586. eXP[ All ] -= XPtoRemove
  587. }
  588.  
  589. CheckLevel( All )
  590. ColorChat ( 0, GREY, "%s ^1%s^3 elvett^1 %i^3 XP-t ^1mindenkitol^3!", szPrefix, AdminName, XPtoRemove )
  591. }
  592. else if( equali(arg[1],"T") || equali(arg[1],"t") )
  593. {
  594. new players[32], totalplayers, T
  595. get_players( players, totalplayers )
  596.  
  597. for ( new i = 0; i < totalplayers; i++ )
  598. {
  599. if ( get_user_team(players[ i ]) == 1 )
  600. {
  601. T = players[ i ]
  602.  
  603. eXP[ T ] -= XPtoRemove
  604. }
  605. }
  606.  
  607. CheckLevel( T )
  608. ColorChat ( 0, GREY, "%s ^1%s^3 elvett^1 %i^3 XP-t minden^1 Terroristatol^3!", szPrefix, AdminName, XPtoRemove )
  609. }
  610. else if( equali(arg[1],"CT") || equali(arg[1],"ct") )
  611. {
  612. new players[32], totalplayers, CT
  613. get_players( players, totalplayers )
  614.  
  615. for( new i = 0; i < totalplayers; i++ )
  616. {
  617. if( get_user_team(players[ i ] ) == 2 )
  618. {
  619. CT = players[ i ]
  620.  
  621. eXP[ CT ] -= XPtoRemove
  622. }
  623. }
  624.  
  625. CheckLevel( CT )
  626. ColorChat ( 0, GREY, "%s ^1%s^3 elvett^1 %i^3 XP-t minden^1 CT-tol^3!", szPrefix, AdminName, XPtoRemove )
  627. }
  628. }
  629. else
  630. {
  631. new iTarget = cmd_target( iPlayer, arg, 3 )
  632. get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
  633.  
  634. if( !iTarget )
  635. return PLUGIN_HANDLED
  636.  
  637. eXP[ iTarget ] -= XPtoRemove
  638.  
  639. CheckLevel( iTarget )
  640. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t ^1 %s-nek^3", szPrefix, AdminName, XPtoRemove, TargetName )
  641. }
  642.  
  643. return PLUGIN_HANDLED
  644. }
  645. /* Level Behind Nick & AdminChatColors
  646.   CREDITS TO ConnorMcLeod */
  647. public Message_SayText(msgId,msgDest,msgEnt)
  648. {
  649. new id = get_msg_arg_int(1);
  650. if( is_user_connected(id) )
  651. {
  652. if( get_cvar_num("AdminChatColors_On") == 1 )
  653. {
  654. new flags = get_user_flags(id)
  655. for(new i; i<sizeof(AdminsDatas); i++)
  656. {
  657. if( flags & AdminsDatas[i][m_iFlag] )
  658. {
  659. new szChannel[64]
  660. get_msg_arg_string(2, szChannel, charsmax(szChannel))
  661.  
  662. if( equal(szChannel, "#Cstrike_Chat_All") )
  663. {
  664. formatex(szChannel, charsmax(szChannel), "^4[%s - %s] ^3%%s1 ^1: %%s2", Prefix[Level[id]], AdminsDatas[i][m_szName])
  665. set_msg_arg_string(2, szChannel)
  666. }
  667. else if( !equal(szChannel, "#Cstrike_Name_Change") )
  668. {
  669. format(szChannel, charsmax(szChannel), "^4[%s - %s] %s", Prefix[Level[id]], AdminsDatas[i][m_szName], szChannel)
  670. set_msg_arg_string(2, szChannel)
  671. }
  672. return
  673. }
  674. else
  675. {
  676. new szChannel[64]
  677. get_msg_arg_string(2, szChannel, charsmax(szChannel))
  678.  
  679. if( equal(szChannel, "#Cstrike_Chat_All") )
  680. {
  681. formatex(szChannel, charsmax(szChannel), "^4[%s] ^3%%s1 ^1: %%s2", Prefix[Level[id]])
  682. set_msg_arg_string(2, szChannel)
  683. }
  684. else if( !equal(szChannel, "#Cstrike_Name_Change") )
  685. {
  686. format(szChannel, charsmax(szChannel), "^4[%s] %s", Prefix[Level[id]], szChannel)
  687. set_msg_arg_string(2, szChannel)
  688. }
  689. return
  690. }
  691. }
  692. }
  693. else
  694. {
  695. new szChannel[64]
  696. get_msg_arg_string(2, szChannel, charsmax(szChannel));
  697.  
  698. if( equal(szChannel, "#Cstrike_Chat_All") )
  699. {
  700. formatex(szChannel, charsmax(szChannel), "^4[%s] ^3%%s1 ^1: %%s2", Prefix[Level[id]])
  701. set_msg_arg_string(2, szChannel)
  702. }
  703. else if( !equal(szChannel, "#Cstrike_Name_Change") )
  704. {
  705. format(szChannel, charsmax(szChannel), "^4[%s] %s", Prefix[Level[id]], szChannel)
  706. set_msg_arg_string(2, szChannel)
  707. }
  708. return
  709. }
  710. }
  711. }
  712.  


Nos, ebbe kéne pár módosítás:
1. A rangokat átkéne írni ezekre: Bot, Kezdő, Újonc, Lelkes, Tud valamit, Tag, Fanatikus, Mester, Veterán, Isten, Pro, Legenda
2. A radar alatt írja ezeket:
A te rangod: Bot
Következő rang: Kezdő
Következő ranghoz szükséges XP: "xp"
(ezeket ha lehet pirossal írja ki)

3. Az XP szintlépést is átkéne írni.
Bot--> Kezdőre kelljen 100 XP
Kezdő--> Újonc 200 XP
Újonc--> Lelkes 400 XP
Lelkes--> Tud Valamit 650 XP
Tud valamit--> Tag 900 XP
Tag--> Fanatikus 1200 XP
Fanatikus--> Mester 1550 XP
Veterán--> Isten 1900 XP
Isten--> Pro 2300 XP
Pro--> Legenda 3000 XP

Így kéne a fejlődés. :)

4. Amikor beírom a remove_xp(elveszek XP-t) akkor chatbe azt írja hogy mattboy adott 500 XP-t xy játékosnak.
Ezt átkéne írni hogy ne adott legyen hanem "elvett" 500 XP-t xy játékostól
5. Amikor elveszem az XP-t és lejjebb kéne menne egy rangot akkor marad ugyanazon a rangon mint amin volt. Ezt megkéne csinálni úgy, hogy ahogy megy lejjebb az XP-je úgy mennyen le a rangja is.

Előre is köszönöm a segítséget, elég fontos lenne.:) Megy a gomb aki megcsinálja.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: szintrendszer módosítás
HozzászólásElküldve: 2014.07.09. 09:05 
Offline
Senior Tag
Avatar

Csatlakozott: 2014.03.12. 18:54
Hozzászólások: 295
Megköszönt másnak: 33 alkalommal
Megköszönték neki: 26 alkalommal
Szia!
Szerintem az XP-és rendszer az felesleges.

SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <nvault>
  4.  
  5. #define PLUGIN "HLMOD.Hus Rangok"
  6. #define VERSION "1.0"
  7. #define AUTHOR "ExTraaaa and qKKKJ;>"
  8.  
  9. new message[192]
  10. new nev[32]
  11. new Temp[192]
  12. static color[10]
  13. new g_vault
  14. new olesek[33]
  15. new szint[33]
  16.  
  17.  
  18. #define ASD 15
  19.  
  20. //Ha az ASD értéke 15 akkor a szamoknal 15 szám a rangoknál 16 szöveg
  21.  
  22. new const szamok[ASD] = {
  23. 15,
  24. 20,
  25. 30,
  26. 45,
  27. 55,
  28. 65,
  29. 75,
  30. 85,
  31. 90,
  32. 105,
  33. 115,
  34. 120,
  35. 125,
  36. 135,
  37. 140
  38.  
  39. }
  40.  
  41. new const rangok[ASD+1][] = {
  42. "Újonc",
  43. "Lelkes",
  44. "Tag",
  45. "Beavatott",
  46. "Tud valamit",
  47. "Fanatikus",
  48. "Senior Tag",
  49. "Jómunkásember",
  50. "Nagyúr",
  51. "Félisten",
  52. "Östag",
  53. "Veterán",
  54. "Őskövület",
  55. "Minden6ó",
  56. "ISTEN",
  57. "Mindent Tudó"
  58.  
  59. }
  60.  
  61. public plugin_init()
  62. {
  63. register_plugin(PLUGIN, VERSION, AUTHOR)
  64. register_clcmd("say /rang", "hud")
  65. register_clcmd("say", "sayhook")
  66. register_clcmd("say_team", "tshook")
  67. register_event("DeathMsg", "halal", "a")
  68. g_vault = nvault_open("namerang")
  69.  
  70. }
  71. public hud(id)
  72. {
  73. if(szint[id] != ASD+1)
  74. {
  75.  
  76.  
  77. client_print(id, print_chat, "Prefix: %s^nÖlések: %d^nKell még: %d",rangok[szint[id]], olesek[id],szamok[szint[id]]-olesek[id] )
  78. }
  79. else {
  80.  
  81. client_print(id, print_chat, "Prefix: %s^nÖlések: %d^nKell még: 0",rangok[szint[id]], olesek[id])
  82. }
  83.  
  84. }
  85. public sayhook(id)
  86. {
  87.  
  88. read_args (message, 191)
  89. remove_quotes (message)
  90. if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
  91. {
  92. return PLUGIN_CONTINUE
  93. }
  94. get_user_name(id, nev, 31)
  95. if(is_user_alive(id)) {
  96. get_user_team(id, color, 9)
  97. formatex(Temp, 191, "^x04[%s] ^x03%s^x01: %s", rangok[szint[id]], nev, message)
  98.  
  99. }
  100. else {
  101. get_user_team(id, color, 9)
  102. formatex(Temp, 191, "^x04*Halott* [%s] ^x03%s^x01: %s", rangok[szint[id]], nev, message)
  103. }
  104. sendmessage(color)
  105. return PLUGIN_HANDLED
  106. }
  107. public tshook(id)
  108. {
  109. read_args (message, 191)
  110. remove_quotes (message)
  111. if (message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message, ""))
  112. {
  113. return PLUGIN_CONTINUE
  114. }
  115. get_user_name(id, nev, 31)
  116. new playerTeam = get_user_team(id)
  117. new playerTeamName[19]
  118. switch (playerTeam)
  119. {
  120. case 1: {
  121. copy (playerTeamName, 11, "*Terrorista*")
  122.  
  123. }
  124. case 2: {
  125. copy (playerTeamName, 18, "*Anti-Terrorista*")
  126.  
  127. }
  128. default:
  129. copy (playerTeamName, 9, "*Néző*")
  130. }
  131. if(is_user_alive(id))
  132. {
  133. get_user_team(id, color, 9)
  134. formatex(Temp, 191, "^x03(%s) ^x04[%s] ^x03%s^x01: %s",playerTeamName, rangok[szint[id]], nev, message)
  135.  
  136. }
  137. else
  138. {
  139. get_user_team(id, color, 9)
  140. formatex(Temp, 191, "^x04*Halott* ^x03(%s) ^x04[%s] ^x03%s^x01: %s",playerTeamName, rangok[szint[id]], nev, message)
  141. }
  142. sendtmessage(color, playerTeam)
  143. return PLUGIN_HANDLED
  144. }
  145. public sendmessage(color[])
  146. {
  147. new teamName[10]
  148. for(new player = 1; player < get_maxplayers(); player++)
  149. {
  150. get_user_team (player, teamName, 9)
  151. teamf (player, color)
  152. elkuldes(player, Temp)
  153. teamf(player, teamName)
  154. }
  155. }
  156. public sendtmessage(color[], playerTeam)
  157. {
  158. new teamName[10]
  159. for (new player = 1; player < get_maxplayers(); player++)
  160. {
  161. if(get_user_team(player) == playerTeam)
  162. {
  163. get_user_team (player, teamName, 9)
  164. elkuldes(player, Temp)
  165. teamf (player, teamName)
  166. teamf (player, color)
  167. }
  168. }
  169. }
  170. public teamf(player, team[])
  171. {
  172. message_begin(MSG_ONE, get_user_msgid("TeamInfo"), _, player)
  173. write_byte(player)
  174. write_string(team)
  175. message_end()
  176. }
  177. public elkuldes(player, Temp[])
  178. {
  179.  
  180. message_begin( MSG_ONE, get_user_msgid( "SayText" ), _, player)
  181. write_byte( player )
  182. write_string( Temp )
  183. message_end()
  184.  
  185. }
  186.  
  187. public client_connect(id)
  188. {
  189. LoadData(id)
  190. }
  191. public client_disconnect(id) SaveData(id)
  192.  
  193. public SaveData(id)
  194. {
  195. new name[32]
  196. get_user_name(id, name, 31)
  197.  
  198. new vaultkey[64],vaultdata[256]
  199. format(vaultkey,63,"%s-rang", name)
  200. format(vaultdata,255,"%i#%i#",olesek[id],szint[id])
  201.  
  202.  
  203. nvault_set(g_vault,vaultkey,vaultdata)
  204. return PLUGIN_CONTINUE
  205. }
  206. public LoadData(id)
  207. {
  208. new name[32]
  209. get_user_name(id, name, 31)
  210. new vaultkey[64],vaultdata[256]
  211.  
  212. format(vaultkey,63,"%s-rang", name)
  213. format(vaultdata,255,"%i#%i#",olesek[id],szint[id])
  214.  
  215. nvault_get(g_vault,vaultkey,vaultdata,255)
  216. replace_all(vaultdata, 255, "#", " ")
  217. new oles[32], level[32]
  218. parse(vaultdata, oles, 31, level, 31)
  219. olesek[id] = str_to_num(oles)
  220. szint[id] = str_to_num(level)
  221. return PLUGIN_CONTINUE
  222. }
  223. public halal()
  224. {
  225. new killer = read_data(1)
  226. new victim = read_data(2)
  227.  
  228. if(killer != victim)
  229. olesek[killer]++
  230.  
  231. while(olesek[killer] >= szamok[szint[killer]])
  232. {
  233. szint[killer]++
  234. }
  235. }


Itt van ez.
Szerintem ezt még te is tudod szerverkeszteni :)
De ha nem felel meg akk. megcsinálom neked az XP-ést csak jelezd :)

_________________
Kép

MAIN :
Kép

MÁSIK :
KépKép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: szintrendszer módosítás
HozzászólásElküldve: 2014.07.09. 10:34 
Offline
Beavatott
Avatar

Csatlakozott: 2014.04.14. 21:21
Hozzászólások: 88
Megköszönt másnak: 6 alkalommal
Megköszönték neki: 4 alkalommal
Hát, örülnék ha megtudnád csinálni az XP-set. :)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: szintrendszer módosítás
HozzászólásElküldve: 2014.07.09. 16:05 
Offline
Senior Tag
Avatar

Csatlakozott: 2014.03.12. 18:54
Hozzászólások: 295
Megköszönt másnak: 33 alkalommal
Megköszönték neki: 26 alkalommal
Próbáld
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <nvault>
  4. #include <colorchat>
  5. #include <cstrike>
  6. #include <fun>
  7. #include <hamsandwich>
  8. #include <fakemeta>
  9.  
  10. new Level[33], eXP[33]
  11. new KillXp, HsXp, HeXp/*, KnifeXp*/
  12. new gVault
  13.  
  14. new const szPrefix[] = "[^4Szintrendszer^3] -"
  15.  
  16. #define MaxLevels 12
  17. #define IsPlayer(%1) ( 1 <= %1 <= g_iMaxPlayers )
  18. #define TASK_SHOW_HUD 10113
  19.  
  20. new g_msgHudSync
  21. new bool:is_user_ignored[ 33 ]
  22.  
  23. new const Levels[MaxLevels] =
  24. {
  25. 100, // Starter #1
  26. 200, // Noob #2
  27. 400, // Beginner #3
  28. 650, // Knifer #4
  29. 900, // Rambo #5
  30. 1200, // Butcher #6
  31. 1550, // Matrix #7
  32. 1900, // Probhop #8
  33. 2300, // Freak #9
  34. 3000, // Racer #10
  35. 3150, // Kill Bill #11
  36. 3300 // Respected Player #12
  37. }
  38. new const Prefix[MaxLevels +1][] =
  39. {
  40. "Bot", // 0
  41. "Kezdő", // 1
  42. "Újonc", // 2
  43. "Lelkes", // 3
  44. "Tud Valamit", // 4
  45. "Tag", // 5
  46. "Fanatikus", // 6
  47. "Mester", // 7
  48. "Veterán", // 8
  49. "Isten", // 9
  50. "Pro", // 10
  51. "Legenda", // 11
  52. "Legyőzhetetlen" // 12
  53. }
  54.  
  55. // Bonus Stuff
  56. new healthperlevel,
  57. armorperlevel,
  58. speedperlevel,
  59. damageperlevel,
  60. gravityperlvl
  61.  
  62. new g_iMaxPlayers
  63.  
  64. // ADMIN CHAT COLORS by ConnorMcLeod
  65. enum _:ADMIN_DATAS
  66. {
  67. m_szName[32],
  68. m_iFlag
  69. }
  70.  
  71. new const AdminsDatas[][ADMIN_DATAS] =
  72. {
  73. {"Owner", ADMIN_IMMUNITY},
  74. {"Manager", ADMIN_BAN},
  75. // {"SuperAdmin", ADMIN_CFG},
  76. {"Admin", ADMIN_KICK},
  77. {"VIP", ADMIN_RESERVATION}
  78. };
  79.  
  80. public plugin_init()
  81. {
  82. register_plugin("Deathrun XP & Level Mod", "0.0.9", "Freestyle")
  83.  
  84. register_message(get_user_msgid("SayText"),"Message_SayText"); // CREDITS TO ConnorMcLeod
  85.  
  86. RegisterHam ( Ham_Spawn, "player", "Ham_CheckOthers_Bonus", 1);
  87. RegisterHam ( Ham_TakeDamage, "player", "Ham_CheckDamage_Bonus", .Post = false );
  88. RegisterHam ( Ham_Item_PreFrame, "player", "Ham_CheckSpeed_Bonus", 1);
  89.  
  90. g_iMaxPlayers = get_maxplayers( );
  91.  
  92. register_cvar( "AdminChatColors_On", "1" ); // Admin Tag - Example: [Admin] Freestyle
  93. register_cvar( "XP_Reward_MSG", "1" ); // Message of the XP Gain
  94.  
  95. // CHAT COMMANDS //
  96. register_clcmd ( "say /xp", "ShowPlayerXP")
  97. register_clcmd ( "say_team /xp", "ShowPlayerXP")
  98. register_clcmd ( "say /level", "ShowPlayerLevel")
  99. register_clcmd ( "say_team /level", "ShowPlayerLevel")
  100.  
  101. // XP SYSTEM //
  102. KillXp = register_cvar("drxp_per_kill", "1")
  103. HsXp = register_cvar("drxp_per_hs", "1")
  104. HeXp = register_cvar("drxp_per_nade_kill", "2")
  105. //KnifeXp = register_cvar("drxp_per_knife_kill", "2")
  106.  
  107. // Give & Remove XP //
  108. register_concmd ( "give_xp", "CmdAddXP", ADMIN_RCON, "<nick, #userid, authid | @all> <xp>" )
  109. register_concmd ( "remove_xp", "CmdRemoveXP", ADMIN_RCON, "<nick, #userid, authid | @all> <xp>" )
  110.  
  111. /* Bonus Stuff */
  112.  
  113. // Health Per Level //
  114. healthperlevel = register_cvar("health_per_lvl", "0")
  115.  
  116. // Armor Per Level //
  117. armorperlevel = register_cvar("armor_per_lvl", "0")
  118.  
  119. // Speed Per Level //
  120. speedperlevel = register_cvar("speed_per_lvl", "0")
  121.  
  122. // Gravity Per Level //
  123. gravityperlvl = register_cvar("gravity_per_lvl", "0") // NERVER MORE THAN 66 PER LVL
  124.  
  125. // Damage Per Level //
  126. damageperlevel = register_cvar("damage_per_lvl", "0")
  127.  
  128. g_msgHudSync = CreateHudSyncObj()
  129. }
  130.  
  131. public plugin_cfg( )
  132. {
  133. gVault = nvault_open( "DEATHRUN_XP" )
  134.  
  135. if ( gVault == INVALID_HANDLE )
  136. set_fail_state( "Error opening nVault" );
  137. }
  138.  
  139. /* INFO ABOUT PERSONAL XP/LEVEL */
  140. public ShowPlayerXP(id)
  141. {
  142. ColorChat(id, GREY, "%s Neked ^4%i^3 XP-d van es a szinted: ^4%s^3!", szPrefix, eXP[id], Prefix[Level[id]])
  143. }
  144.  
  145. public ShowPlayerLevel(id)
  146. {
  147. new name[32]
  148. get_user_name(id, name, sizeof(name) -1)
  149.  
  150. ColorChat(id, GREY, "%s A te szinted: ^4%s^3 ^4%i^3 XP-vel!", szPrefix, Prefix[Level[id]], eXP[id])
  151. }
  152.  
  153. public Ham_CheckDamage_Bonus( pevVictim, pevInflictor, pevAttacker, Float:flDamage, iDmgBits )
  154. {
  155. if( !( 1 <= pevAttacker <= g_iMaxPlayers) )
  156. {
  157. return HAM_HANDLED;
  158. }
  159.  
  160. if( !is_user_alive( pevAttacker ) )
  161. {
  162. return HAM_HANDLED;
  163. }
  164.  
  165. SetHamParamFloat( 4 , flDamage + ( get_pcvar_num( damageperlevel ) * Level[ pevAttacker ] ) )
  166.  
  167. return HAM_IGNORED;
  168. }
  169.  
  170. /* Speed Check */
  171. public Ham_CheckSpeed_Bonus( id )
  172. {
  173. if( !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
  174. {
  175. return HAM_IGNORED;
  176. }
  177.  
  178. set_user_maxspeed( id, 250.0 + ( get_pcvar_num(speedperlevel) * Level[ id ] ) );
  179.  
  180. return HAM_IGNORED;
  181. }
  182.  
  183. /* HP & AP & Gravity Check */
  184. public Ham_CheckOthers_Bonus(id)
  185. {
  186. if( !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
  187. return HAM_IGNORED;
  188.  
  189. // HP Check
  190. new HPCheck = ( get_user_health(id) + get_pcvar_num(healthperlevel) * Level[ id ] );
  191. set_user_health( id, HPCheck );
  192.  
  193. // AP Check
  194. new APCheck = ( get_user_armor(id) + get_pcvar_num(armorperlevel) * Level[ id ] );
  195. set_user_armor( id, APCheck );
  196.  
  197. // Gravity
  198. new GRAVITYCheck = 800 - ( get_pcvar_num( gravityperlvl ) * Level[ id ] );
  199.  
  200. if(get_pcvar_num(gravityperlvl) > 66)
  201. {
  202. set_user_gravity( id, float( 8 ) / 800.0 );
  203. }
  204. else
  205. {
  206. set_user_gravity( id, float( GRAVITYCheck ) / 800.0 );
  207. }
  208.  
  209. remove_task( TASK_SHOW_HUD + id );
  210.  
  211. set_task(0.1, "ShowHud", TASK_SHOW_HUD + id)
  212.  
  213. return HAM_IGNORED;
  214. }
  215.  
  216. /* Respected Player Join / Leave Stuff */
  217.  
  218. public LvL_12_PlayerJoin(id)
  219. {
  220. new name[32]
  221. get_user_name(id, name, sizeof(name) -1)
  222.  
  223. ColorChat(0, GREY, "%s ^4Egy Legyőzhetetlen : ^1%s^4 belépett,^1%i^4 XP-je van!", szPrefix, name, eXP[id])
  224. }
  225.  
  226. public LvL_12_PlayerRemove(id)
  227. {
  228. new name[32]
  229. get_user_name(id, name, sizeof(name) -1)
  230.  
  231. ColorChat(0, GREY, "%s ^4Egy Legyőzhetetlen: %s lelépett %i XP-je van!", szPrefix, name, eXP[id])
  232. }
  233.  
  234. public plugin_end( )
  235. nvault_close( gVault )
  236.  
  237. public client_putinserver(id)
  238. {
  239. LoadData(id)
  240. set_task( 3.0, "ShowHud", id, .flags = "b" );
  241.  
  242. if(Level[id] == 12)
  243. {
  244. set_task(5.0, "LvL_12_PlayerJoin", id)
  245. }
  246. }
  247.  
  248. public client_disconnect(id)
  249. {
  250. SaveData(id)
  251.  
  252. if(Level[id] == 12)
  253. {
  254. set_task(1.0, "LvL_12_PlayerRemove", id)
  255. }
  256. }
  257.  
  258. /* XP REWARDS */
  259. public client_death( iKiller, iVictim, wpnindex, hitplace )
  260. {
  261. new vname[32]
  262. new kname[32]
  263.  
  264. get_user_name( iKiller, kname, charsmax( kname ) )
  265. get_user_name( iVictim, vname, charsmax( vname ) )
  266.  
  267. if( is_user_ignored[ iKiller ] )
  268. return PLUGIN_HANDLED_MAIN
  269.  
  270. get_user_name( iKiller, kname, charsmax( kname ) )
  271. get_user_name( iVictim, vname, charsmax( vname ) )
  272.  
  273. if( iKiller != iVictim && ( 1 <= iKiller <= g_iMaxPlayers ) && ( 1 <= iVictim <= g_iMaxPlayers ) && !( hitplace == HIT_HEAD ) && !( wpnindex == CSW_HEGRENADE ) )
  274. {
  275. eXP[iKiller] += get_pcvar_num(KillXp)
  276.  
  277. if( get_cvar_num("XP_Reward_MSG") == 1 )
  278. {
  279. ColorChat ( iKiller, GREY, "%s Kaptál^4 %i^3 XP-t mert megölted ^4 %s^3-t", szPrefix, get_pcvar_num(KillXp), vname )
  280. }
  281. }
  282.  
  283. if( hitplace == HIT_HEAD )
  284. {
  285. eXP[iKiller] += get_pcvar_num(HsXp)
  286.  
  287. if( get_cvar_num("XP_Reward_MSG") == 1 )
  288. {
  289. ColorChat ( iKiller, GREY, "%s Kaptál^4 %i^3 XP-t mert megölted ^4 %s^3-t", szPrefix, get_pcvar_num (HsXp), vname )
  290. }
  291. }
  292.  
  293. if( wpnindex == CSW_HEGRENADE && iKiller != iVictim )
  294. {
  295. eXP[iKiller] += get_pcvar_num(HeXp)
  296.  
  297. if( get_cvar_num("XP_Reward_MSG") == 1 )
  298. {
  299. ColorChat( iKiller, GREEN, "%s Kaptál^4 %i^3 XP-t mert megölted ^4 %s^3-t", szPrefix, get_pcvar_num (HeXp), vname )
  300. }
  301. }
  302. CheckLevel(iKiller)
  303. SaveData(iKiller)
  304.  
  305. return PLUGIN_CONTINUE
  306. }
  307.  
  308. public CheckLevel(id)
  309. {
  310. if(Level[id] < MaxLevels-1)
  311. {
  312. while(eXP[id] >= Levels[Level[id]])
  313. {
  314. Level[id] += 1
  315. ColorChat(id, GREY, "%s Gratulálok szintet leptél, mostani szinted száma : ^4%i^3", szPrefix, Level[id])
  316. }
  317. }
  318. }
  319.  
  320. /* HUD PERMANENT INFO */
  321. public ShowHud(task)
  322. {
  323. new id = task - TASK_SHOW_HUD
  324.  
  325. if(!is_user_alive(id))
  326. return;
  327.  
  328. set_hudmessage(random(256), random(256), random(256), 0.02, 0.33, 2, 0.0, 0.3, 0.0, 0.0)
  329. ShowSyncHudMsg(id, g_msgHudSync,"[A Te rangod: %s]^n[Következő rangod: %s]^n[XP-d : %i]", Prefix[Level[id]], eXP[id])
  330.  
  331. set_task(0.1, "ShowHud", TASK_SHOW_HUD + id)
  332. }
  333.  
  334. /* nVault Stuff */
  335. public SaveData(id)
  336. {
  337. new AuthID[35]
  338. get_user_authid(id,AuthID,34)
  339. new vaultkey[64],vaultdata[256]
  340.  
  341. format(vaultkey,63,"%s-Mod",AuthID)
  342. format(vaultdata,255,"%i#%i#",eXP[id],Level[id])
  343.  
  344. nvault_set(gVault,vaultkey,vaultdata)
  345.  
  346. return PLUGIN_CONTINUE
  347. }
  348. public LoadData(id)
  349. {
  350. new AuthID[35]
  351. get_user_authid(id,AuthID,34)
  352. new vaultkey[64],vaultdata[256]
  353.  
  354. format(vaultkey,63,"%s-Mod",AuthID)
  355. format(vaultdata,255,"%i#%i#",eXP[id],Level[id])
  356.  
  357. nvault_get(gVault,vaultkey,vaultdata,255)
  358.  
  359. replace_all(vaultdata, 255, "#", " ")
  360.  
  361. new playerxp[32], playerlevel[32]
  362.  
  363. parse(vaultdata, playerxp, 31, playerlevel, 31)
  364.  
  365. eXP[id] = str_to_num(playerxp)
  366.  
  367. Level[id] = str_to_num(playerlevel)
  368.  
  369. return PLUGIN_CONTINUE
  370. }
  371.  
  372. /* Remove And Add XP */
  373. public CmdAddXP ( iPlayer, level, cid )
  374. {
  375. if( !cmd_access( iPlayer, level, cid, 3 ) ) return PLUGIN_HANDLED;
  376.  
  377. new arg [ 32 ]
  378. read_argv ( 1, arg, 31 )
  379.  
  380. new AddXP [ 32 ]
  381. read_argv ( 2, AddXP, charsmax ( AddXP ) )
  382.  
  383. new XPtoGive = str_to_num ( AddXP )
  384.  
  385. new AdminName [ 32 ]
  386. new TargetName [ 32 ]
  387. get_user_name ( iPlayer, AdminName, charsmax ( AdminName ) )
  388.  
  389. if( arg[0]=='@' )
  390. {
  391. if( equali(arg[1],"All") || equali(arg[1],"ALL") )
  392. {
  393. new players[32], totalplayers, All
  394. get_players( players, totalplayers )
  395.  
  396. for ( new i = 0; i < totalplayers; i++ )
  397. {
  398. All = players[ i ]
  399.  
  400. eXP[ All ] += XPtoGive
  401. }
  402.  
  403. CheckLevel( All )
  404. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t minden ^1 játékosnak^3!", szPrefix, AdminName, XPtoGive )
  405. }
  406. else if( equali(arg[1],"T") || equali(arg[1],"t") )
  407. {
  408. new players[32], totalplayers, T
  409. get_players( players, totalplayers )
  410.  
  411. for ( new i = 0; i < totalplayers; i++ )
  412. {
  413. if ( get_user_team(players[ i ]) == 1 )
  414. {
  415. T = players[ i ]
  416.  
  417. eXP[ T ] += XPtoGive
  418. }
  419. }
  420.  
  421. CheckLevel( T )
  422. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t minden^1 Terrornak^3!", szPrefix, AdminName, XPtoGive )
  423. }
  424. else if( equali(arg[1],"CT") || equali(arg[1],"ct") )
  425. {
  426. new players[32], totalplayers, CT
  427. get_players( players, totalplayers )
  428.  
  429. for( new i = 0; i < totalplayers; i++ )
  430. {
  431. if( get_user_team(players[ i ] ) == 2 )
  432. {
  433. CT = players[ i ]
  434.  
  435. eXP[ CT ] += XPtoGive
  436. }
  437. }
  438.  
  439. CheckLevel( CT )
  440. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t minden^1 CT-nek^3!", szPrefix, AdminName, XPtoGive )
  441. }
  442. }
  443. else
  444. {
  445. new iTarget = cmd_target( iPlayer, arg, 3 )
  446. get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
  447.  
  448. if( iTarget )
  449. {
  450. eXP[ iTarget ] += XPtoGive
  451.  
  452. CheckLevel( iTarget )
  453. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t ^1 %s-nek^3", szPrefix, AdminName, XPtoGive, TargetName )
  454. }
  455. }
  456. return PLUGIN_HANDLED
  457. }
  458.  
  459. public CmdRemoveXP ( iPlayer, level, cid )
  460. {
  461. if( !cmd_access(iPlayer, level, cid, 3) ) return PLUGIN_HANDLED;
  462.  
  463. new arg [ 32 ]
  464. read_argv ( 1, arg, 31 )
  465.  
  466. new RemoveXP [ 32 ]
  467. read_argv ( 2, RemoveXP, charsmax ( RemoveXP ) )
  468.  
  469. new XPtoRemove = str_to_num ( RemoveXP )
  470.  
  471. new AdminName [ 32 ]
  472. new TargetName [ 32 ]
  473. get_user_name ( iPlayer, AdminName, charsmax ( AdminName ) )
  474.  
  475. if( arg[0]=='@' )
  476. {
  477. if( equali(arg[1],"All") || equali(arg[1],"ALL") )
  478. {
  479. new players[32], totalplayers, All
  480. get_players( players, totalplayers )
  481.  
  482. for ( new i = 0; i < totalplayers; i++ )
  483. {
  484. All = players[ i ]
  485.  
  486. eXP[ All ] -= XPtoRemove
  487. }
  488.  
  489. CheckLevel( All )
  490. ColorChat ( 0, GREY, "%s ^1%s^3 elvett^1 %i^3 XP-t ^1mindenkitől^3!", szPrefix, AdminName, XPtoRemove )
  491. }
  492. else if( equali(arg[1],"T") || equali(arg[1],"t") )
  493. {
  494. new players[32], totalplayers, T
  495. get_players( players, totalplayers )
  496.  
  497. for ( new i = 0; i < totalplayers; i++ )
  498. {
  499. if ( get_user_team(players[ i ]) == 1 )
  500. {
  501. T = players[ i ]
  502.  
  503. eXP[ T ] -= XPtoRemove
  504. }
  505. }
  506.  
  507. CheckLevel( T )
  508. ColorChat ( 0, GREY, "%s ^1%s^3 elvett^1 %i^3 XP-t minden^1 Terroristatol^3!", szPrefix, AdminName, XPtoRemove )
  509. }
  510. else if( equali(arg[1],"CT") || equali(arg[1],"ct") )
  511. {
  512. new players[32], totalplayers, CT
  513. get_players( players, totalplayers )
  514.  
  515. for( new i = 0; i < totalplayers; i++ )
  516. {
  517. if( get_user_team(players[ i ] ) == 2 )
  518. {
  519. CT = players[ i ]
  520.  
  521. eXP[ CT ] -= XPtoRemove
  522. }
  523. }
  524.  
  525. CheckLevel( CT )
  526. ColorChat ( 0, GREY, "%s ^1%s^3 elvett^1 %i^3 XP-t minden^1 CT-tol^3!", szPrefix, AdminName, XPtoRemove )
  527. }
  528. }
  529. else
  530. {
  531. new iTarget = cmd_target( iPlayer, arg, 3 )
  532. get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
  533.  
  534. if( !iTarget )
  535. return PLUGIN_HANDLED
  536.  
  537. eXP[ iTarget ] -= XPtoRemove
  538.  
  539. CheckLevel( iTarget )
  540. ColorChat ( 0, GREY, "%s ^1%s^3 elvett^1 %i^3 XP-t ^1 %s-től^3", szPrefix, AdminName, XPtoRemove, TargetName )
  541. }
  542.  
  543. return PLUGIN_HANDLED
  544. }
  545. /* Level Behind Nick & AdminChatColors
  546.   CREDITS TO ConnorMcLeod */
  547. public Message_SayText(msgId,msgDest,msgEnt)
  548. {
  549. new id = get_msg_arg_int(1);
  550. if( is_user_connected(id) )
  551. {
  552. if( get_cvar_num("AdminChatColors_On") == 1 )
  553. {
  554. new flags = get_user_flags(id)
  555. for(new i; i<sizeof(AdminsDatas); i++)
  556. {
  557. if( flags & AdminsDatas[i][m_iFlag] )
  558. {
  559. new szChannel[64]
  560. get_msg_arg_string(2, szChannel, charsmax(szChannel))
  561.  
  562. if( equal(szChannel, "#Cstrike_Chat_All") )
  563. {
  564. formatex(szChannel, charsmax(szChannel), "^4[%s - %s] ^3%%s1 ^1: %%s2", Prefix[Level[id]], AdminsDatas[i][m_szName])
  565. set_msg_arg_string(2, szChannel)
  566. }
  567. else if( !equal(szChannel, "#Cstrike_Name_Change") )
  568. {
  569. format(szChannel, charsmax(szChannel), "^4[%s - %s] %s", Prefix[Level[id]], AdminsDatas[i][m_szName], szChannel)
  570. set_msg_arg_string(2, szChannel)
  571. }
  572. return
  573. }
  574. else
  575. {
  576. new szChannel[64]
  577. get_msg_arg_string(2, szChannel, charsmax(szChannel))
  578.  
  579. if( equal(szChannel, "#Cstrike_Chat_All") )
  580. {
  581. formatex(szChannel, charsmax(szChannel), "^4[%s] ^3%%s1 ^1: %%s2", Prefix[Level[id]])
  582. set_msg_arg_string(2, szChannel)
  583. }
  584. else if( !equal(szChannel, "#Cstrike_Name_Change") )
  585. {
  586. format(szChannel, charsmax(szChannel), "^4[%s] %s", Prefix[Level[id]], szChannel)
  587. set_msg_arg_string(2, szChannel)
  588. }
  589. return
  590. }
  591. }
  592. }
  593. else
  594. {
  595. new szChannel[64]
  596. get_msg_arg_string(2, szChannel, charsmax(szChannel));
  597.  
  598. if( equal(szChannel, "#Cstrike_Chat_All") )
  599. {
  600. formatex(szChannel, charsmax(szChannel), "^4[%s] ^3%%s1 ^1: %%s2", Prefix[Level[id]])
  601. set_msg_arg_string(2, szChannel)
  602. }
  603. else if( !equal(szChannel, "#Cstrike_Name_Change") )
  604. {
  605. format(szChannel, charsmax(szChannel), "^4[%s] %s", Prefix[Level[id]], szChannel)
  606. set_msg_arg_string(2, szChannel)
  607. }
  608. return
  609. }
  610. }
  611. }


Nem biztos hogy jó ;)
Ha az a radar alatti cucc nem jó azt még megcsináltatad valakivel :)
Ennyit tudtam vele csinálni :D :)

_________________
Kép

MAIN :
Kép

MÁSIK :
KépKép

Ők köszönték meg D3M0*~ nek ezt a hozzászólást: mattboy (2014.07.09. 17:36)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: szintrendszer módosítás
HozzászólásElküldve: 2014.07.09. 16:36 
Offline
Beavatott
Avatar

Csatlakozott: 2014.04.14. 21:21
Hozzászólások: 88
Megköszönt másnak: 6 alkalommal
Megköszönték neki: 4 alkalommal
szintsma.sma(299) : error 017: undefined symbol "GREEN"
szintsma.sma(299) : warning 215: expression has no effect
szintsma.sma(299) : warning 215: expression has no effect
szintsma.sma(299) : warning 215: expression has no effect
szintsma.sma(299) : error 001: expected token: ";", but found ")"
szintsma.sma(299) : error 029: invalid expression, assumed zero
szintsma.sma(299) : fatal error 107: too many error messages on one line

Ezeket a hibákat írja ki fordításnál.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: szintrendszer módosítás
HozzászólásElküldve: 2014.07.09. 16:49 
Offline
Nagyúr
Avatar

Csatlakozott: 2013.09.04. 15:21
Hozzászólások: 635
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 141 alkalommal
Nincs colorchat.inc nálad

_________________
My Steam:
KépKép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: szintrendszer módosítás
HozzászólásElküldve: 2014.07.09. 17:00 
Offline
Beavatott
Avatar

Csatlakozott: 2014.04.14. 21:21
Hozzászólások: 88
Megköszönt másnak: 6 alkalommal
Megköszönték neki: 4 alkalommal
és ezt hol tudnám beszerezni?
Egyébként ezt a szerverre kell betenni?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: szintrendszer módosítás
HozzászólásElküldve: 2014.07.09. 17:08 
Offline
Senior Tag
Avatar

Csatlakozott: 2014.03.12. 18:54
Hozzászólások: 295
Megköszönt másnak: 33 alkalommal
Megköszönték neki: 26 alkalommal
Hát passz ezt én nem tudom...
Vmi olyan aki jobb nálam az javitsa ki ;)

_________________
Kép

MAIN :
Kép

MÁSIK :
KépKép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: szintrendszer módosítás
HozzászólásElküldve: 2014.07.09. 19:38 
Offline
Nagyúr
Avatar

Csatlakozott: 2013.09.04. 15:21
Hozzászólások: 635
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 141 alkalommal
Ezt berakod az amxx studio scripting/include mappájába
és úgy fordítod le vagy 1 online fordítóval ami tartalmazza a colorchat-et


Csatolmányok:
colorchat.inc [1.92 KiB]
Letöltve 63 alkalommal.

_________________
My Steam:
KépKép
Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: szintrendszer módosítás
HozzászólásElküldve: 2014.07.09. 21:12 
Offline
Beavatott
Avatar

Csatlakozott: 2014.04.14. 21:21
Hozzászólások: 88
Megköszönt másnak: 6 alkalommal
Megköszönték neki: 4 alkalommal
Rendben, magát a plugint sikerült betennem, viszont 1-2 dolog még hiányos.
1. A radar alatt folyamatosan kéne írnia a dolgokat, viszont csak kör elején bevillan 1 másodpercre, és utána eltünik, szóval el sem lehet olvasni.
példa:
A te rangod: Bot
Következő rang: Kezdő
Következő ranghoz szükséges XP: (és itt számolja visszafele hogy mennyi kell még a következő ranghoz)
Ezt megtudnád csinálni hogy folyamatosan írja piros színnel a radar alatt? :)

2.Nem tudom pontosan mi a neve, de talán prefix. Szóval hogyha ír chatbe, akkor a neve elött mutatja az akkori rangját. pl. [Bot] Mattboy és ha rangot lépek akkor [Kezdő] Mattboy
szóval így. Ha megcsinálod akkor ezer hálám. :)

sma:
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <nvault>
  4. #include <colorchat>
  5. #include <cstrike>
  6. #include <fun>
  7. #include <hamsandwich>
  8. #include <fakemeta>
  9.  
  10. new Level[33], eXP[33]
  11. new KillXp, HsXp, HeXp/*, KnifeXp*/
  12. new gVault
  13.  
  14. new const szPrefix[] = "[^4Szintrendszer^3] -"
  15.  
  16. #define MaxLevels 12
  17. #define IsPlayer(%1) ( 1 <= %1 <= g_iMaxPlayers )
  18. #define TASK_SHOW_HUD 10113
  19.  
  20. new g_msgHudSync
  21. new bool:is_user_ignored[ 33 ]
  22.  
  23. new const Levels[MaxLevels] =
  24. {
  25. 100, // Starter #1
  26. 200, // Noob #2
  27. 400, // Beginner #3
  28. 650, // Knifer #4
  29. 900, // Rambo #5
  30. 1200, // Butcher #6
  31. 1550, // Matrix #7
  32. 1900, // Probhop #8
  33. 2300, // Freak #9
  34. 3000, // Racer #10
  35. 3150, // Kill Bill #11
  36. 3300 // Respected Player #12
  37. }
  38. new const Prefix[MaxLevels +1][] =
  39. {
  40. "Bot", // 0
  41. "Kezdő", // 1
  42. "Újonc", // 2
  43. "Lelkes", // 3
  44. "Tud Valamit", // 4
  45. "Tag", // 5
  46. "Fanatikus", // 6
  47. "Mester", // 7
  48. "Veterán", // 8
  49. "Isten", // 9
  50. "Pro", // 10
  51. "Legenda", // 11
  52. "Legyőzhetetlen" // 12
  53. }
  54.  
  55. // Bonus Stuff
  56. new healthperlevel,
  57. armorperlevel,
  58. speedperlevel,
  59. damageperlevel,
  60. gravityperlvl
  61.  
  62. new g_iMaxPlayers
  63.  
  64. // ADMIN CHAT COLORS by ConnorMcLeod
  65. enum _:ADMIN_DATAS
  66. {
  67. m_szName[32],
  68. m_iFlag
  69. }
  70.  
  71. new const AdminsDatas[][ADMIN_DATAS] =
  72. {
  73. {"Owner", ADMIN_IMMUNITY},
  74. {"Manager", ADMIN_BAN},
  75. // {"SuperAdmin", ADMIN_CFG},
  76. {"Admin", ADMIN_KICK},
  77. {"VIP", ADMIN_RESERVATION}
  78. };
  79.  
  80. public plugin_init()
  81. {
  82. register_plugin("Deathrun XP & Level Mod", "0.0.9", "Freestyle")
  83.  
  84. register_message(get_user_msgid("SayText"),"Message_SayText"); // CREDITS TO ConnorMcLeod
  85.  
  86. RegisterHam ( Ham_Spawn, "player", "Ham_CheckOthers_Bonus", 1);
  87. RegisterHam ( Ham_TakeDamage, "player", "Ham_CheckDamage_Bonus", .Post = false );
  88. RegisterHam ( Ham_Item_PreFrame, "player", "Ham_CheckSpeed_Bonus", 1);
  89.  
  90. g_iMaxPlayers = get_maxplayers( );
  91.  
  92. register_cvar( "AdminChatColors_On", "1" ); // Admin Tag - Example: [Admin] Freestyle
  93. register_cvar( "XP_Reward_MSG", "1" ); // Message of the XP Gain
  94.  
  95. // CHAT COMMANDS //
  96. register_clcmd ( "say /xp", "ShowPlayerXP")
  97. register_clcmd ( "say_team /xp", "ShowPlayerXP")
  98. register_clcmd ( "say /level", "ShowPlayerLevel")
  99. register_clcmd ( "say_team /level", "ShowPlayerLevel")
  100.  
  101. // XP SYSTEM //
  102. KillXp = register_cvar("drxp_per_kill", "1")
  103. HsXp = register_cvar("drxp_per_hs", "1")
  104. HeXp = register_cvar("drxp_per_nade_kill", "2")
  105. //KnifeXp = register_cvar("drxp_per_knife_kill", "2")
  106.  
  107. // Give & Remove XP //
  108. register_concmd ( "give_xp", "CmdAddXP", ADMIN_RCON, "<nick, #userid, authid | @all> <xp>" )
  109. register_concmd ( "remove_xp", "CmdRemoveXP", ADMIN_RCON, "<nick, #userid, authid | @all> <xp>" )
  110.  
  111. /* Bonus Stuff */
  112.  
  113. // Health Per Level //
  114. healthperlevel = register_cvar("health_per_lvl", "0")
  115.  
  116. // Armor Per Level //
  117. armorperlevel = register_cvar("armor_per_lvl", "0")
  118.  
  119. // Speed Per Level //
  120. speedperlevel = register_cvar("speed_per_lvl", "0")
  121.  
  122. // Gravity Per Level //
  123. gravityperlvl = register_cvar("gravity_per_lvl", "0") // NERVER MORE THAN 66 PER LVL
  124.  
  125. // Damage Per Level //
  126. damageperlevel = register_cvar("damage_per_lvl", "0")
  127.  
  128. g_msgHudSync = CreateHudSyncObj()
  129. }
  130.  
  131. public plugin_cfg( )
  132. {
  133. gVault = nvault_open( "DEATHRUN_XP" )
  134.  
  135. if ( gVault == INVALID_HANDLE )
  136. set_fail_state( "Error opening nVault" );
  137. }
  138.  
  139. /* INFO ABOUT PERSONAL XP/LEVEL */
  140. public ShowPlayerXP(id)
  141. {
  142. ColorChat(id, GREY, "%s Neked ^4%i^3 XP-d van es a szinted: ^4%s^3!", szPrefix, eXP[id], Prefix[Level[id]])
  143. }
  144.  
  145. public ShowPlayerLevel(id)
  146. {
  147. new name[32]
  148. get_user_name(id, name, sizeof(name) -1)
  149.  
  150. ColorChat(id, GREY, "%s A te szinted: ^4%s^3 ^4%i^3 XP-vel!", szPrefix, Prefix[Level[id]], eXP[id])
  151. }
  152.  
  153. public Ham_CheckDamage_Bonus( pevVictim, pevInflictor, pevAttacker, Float:flDamage, iDmgBits )
  154. {
  155. if( !( 1 <= pevAttacker <= g_iMaxPlayers) )
  156. {
  157. return HAM_HANDLED;
  158. }
  159.  
  160. if( !is_user_alive( pevAttacker ) )
  161. {
  162. return HAM_HANDLED;
  163. }
  164.  
  165. SetHamParamFloat( 4 , flDamage + ( get_pcvar_num( damageperlevel ) * Level[ pevAttacker ] ) )
  166.  
  167. return HAM_IGNORED;
  168. }
  169.  
  170. /* Speed Check */
  171. public Ham_CheckSpeed_Bonus( id )
  172. {
  173. if( !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
  174. {
  175. return HAM_IGNORED;
  176. }
  177.  
  178. set_user_maxspeed( id, 250.0 + ( get_pcvar_num(speedperlevel) * Level[ id ] ) );
  179.  
  180. return HAM_IGNORED;
  181. }
  182.  
  183. /* HP & AP & Gravity Check */
  184. public Ham_CheckOthers_Bonus(id)
  185. {
  186. if( !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
  187. return HAM_IGNORED;
  188.  
  189. // HP Check
  190. new HPCheck = ( get_user_health(id) + get_pcvar_num(healthperlevel) * Level[ id ] );
  191. set_user_health( id, HPCheck );
  192.  
  193. // AP Check
  194. new APCheck = ( get_user_armor(id) + get_pcvar_num(armorperlevel) * Level[ id ] );
  195. set_user_armor( id, APCheck );
  196.  
  197. // Gravity
  198. new GRAVITYCheck = 800 - ( get_pcvar_num( gravityperlvl ) * Level[ id ] );
  199.  
  200. if(get_pcvar_num(gravityperlvl) > 66)
  201. {
  202. set_user_gravity( id, float( 8 ) / 800.0 );
  203. }
  204. else
  205. {
  206. set_user_gravity( id, float( GRAVITYCheck ) / 800.0 );
  207. }
  208.  
  209. remove_task( TASK_SHOW_HUD + id );
  210.  
  211. set_task(0.1, "ShowHud", TASK_SHOW_HUD + id)
  212.  
  213. return HAM_IGNORED;
  214. }
  215.  
  216. /* Respected Player Join / Leave Stuff */
  217.  
  218. public LvL_12_PlayerJoin(id)
  219. {
  220. new name[32]
  221. get_user_name(id, name, sizeof(name) -1)
  222.  
  223. ColorChat(0, GREY, "%s ^4Egy Legyőzhetetlen : ^1%s^4 belépett,^1%i^4 XP-je van!", szPrefix, name, eXP[id])
  224. }
  225.  
  226. public LvL_12_PlayerRemove(id)
  227. {
  228. new name[32]
  229. get_user_name(id, name, sizeof(name) -1)
  230.  
  231. ColorChat(0, GREY, "%s ^4Egy Legyőzhetetlen: %s lelépett %i XP-je van!", szPrefix, name, eXP[id])
  232. }
  233.  
  234. public plugin_end( )
  235. nvault_close( gVault )
  236.  
  237. public client_putinserver(id)
  238. {
  239. LoadData(id)
  240. set_task( 3.0, "ShowHud", id, .flags = "b" );
  241.  
  242. if(Level[id] == 12)
  243. {
  244. set_task(5.0, "LvL_12_PlayerJoin", id)
  245. }
  246. }
  247.  
  248. public client_disconnect(id)
  249. {
  250. SaveData(id)
  251.  
  252. if(Level[id] == 12)
  253. {
  254. set_task(1.0, "LvL_12_PlayerRemove", id)
  255. }
  256. }
  257.  
  258. /* XP REWARDS */
  259. public client_death( iKiller, iVictim, wpnindex, hitplace )
  260. {
  261. new vname[32]
  262. new kname[32]
  263.  
  264. get_user_name( iKiller, kname, charsmax( kname ) )
  265. get_user_name( iVictim, vname, charsmax( vname ) )
  266.  
  267. if( is_user_ignored[ iKiller ] )
  268. return PLUGIN_HANDLED_MAIN
  269.  
  270. get_user_name( iKiller, kname, charsmax( kname ) )
  271. get_user_name( iVictim, vname, charsmax( vname ) )
  272.  
  273. if( iKiller != iVictim && ( 1 <= iKiller <= g_iMaxPlayers ) && ( 1 <= iVictim <= g_iMaxPlayers ) && !( hitplace == HIT_HEAD ) && !( wpnindex == CSW_HEGRENADE ) )
  274. {
  275. eXP[iKiller] += get_pcvar_num(KillXp)
  276.  
  277. if( get_cvar_num("XP_Reward_MSG") == 1 )
  278. {
  279. ColorChat ( iKiller, GREY, "%s Kaptál^4 %i^3 XP-t mert megölted ^4 %s^3-t", szPrefix, get_pcvar_num(KillXp), vname )
  280. }
  281. }
  282.  
  283. if( hitplace == HIT_HEAD )
  284. {
  285. eXP[iKiller] += get_pcvar_num(HsXp)
  286.  
  287. if( get_cvar_num("XP_Reward_MSG") == 1 )
  288. {
  289. ColorChat ( iKiller, GREY, "%s Kaptál^4 %i^3 XP-t mert megölted ^4 %s^3-t", szPrefix, get_pcvar_num (HsXp), vname )
  290. }
  291. }
  292.  
  293. if( wpnindex == CSW_HEGRENADE && iKiller != iVictim )
  294. {
  295. eXP[iKiller] += get_pcvar_num(HeXp)
  296.  
  297. if( get_cvar_num("XP_Reward_MSG") == 1 )
  298. {
  299. ColorChat( iKiller, GREEN, "%s Kaptál^4 %i^3 XP-t mert megölted ^4 %s^3-t", szPrefix, get_pcvar_num (HeXp), vname )
  300. }
  301. }
  302. CheckLevel(iKiller)
  303. SaveData(iKiller)
  304.  
  305. return PLUGIN_CONTINUE
  306. }
  307.  
  308. public CheckLevel(id)
  309. {
  310. if(Level[id] < MaxLevels-1)
  311. {
  312. while(eXP[id] >= Levels[Level[id]])
  313. {
  314. Level[id] += 1
  315. ColorChat(id, GREY, "%s Gratulálok szintet leptél, mostani szinted száma : ^4%i^3", szPrefix, Level[id])
  316. }
  317. }
  318. }
  319.  
  320. /* HUD PERMANENT INFO */
  321. public ShowHud(task)
  322. {
  323. new id = task - TASK_SHOW_HUD
  324.  
  325. if(!is_user_alive(id))
  326. return;
  327.  
  328. set_hudmessage(random(256), random(256), random(256), 0.02, 0.33, 2, 0.0, 0.3, 0.0, 0.0)
  329. ShowSyncHudMsg(id, g_msgHudSync,"[A Te rangod: %s]^n[Következő rangod: %s]^n[XP-d : %i]", Prefix[Level[id]], eXP[id])
  330.  
  331. set_task(0.1, "ShowHud", TASK_SHOW_HUD + id)
  332. }
  333.  
  334. /* nVault Stuff */
  335. public SaveData(id)
  336. {
  337. new AuthID[35]
  338. get_user_authid(id,AuthID,34)
  339. new vaultkey[64],vaultdata[256]
  340.  
  341. format(vaultkey,63,"%s-Mod",AuthID)
  342. format(vaultdata,255,"%i#%i#",eXP[id],Level[id])
  343.  
  344. nvault_set(gVault,vaultkey,vaultdata)
  345.  
  346. return PLUGIN_CONTINUE
  347. }
  348. public LoadData(id)
  349. {
  350. new AuthID[35]
  351. get_user_authid(id,AuthID,34)
  352. new vaultkey[64],vaultdata[256]
  353.  
  354. format(vaultkey,63,"%s-Mod",AuthID)
  355. format(vaultdata,255,"%i#%i#",eXP[id],Level[id])
  356.  
  357. nvault_get(gVault,vaultkey,vaultdata,255)
  358.  
  359. replace_all(vaultdata, 255, "#", " ")
  360.  
  361. new playerxp[32], playerlevel[32]
  362.  
  363. parse(vaultdata, playerxp, 31, playerlevel, 31)
  364.  
  365. eXP[id] = str_to_num(playerxp)
  366.  
  367. Level[id] = str_to_num(playerlevel)
  368.  
  369. return PLUGIN_CONTINUE
  370. }
  371.  
  372. /* Remove And Add XP */
  373. public CmdAddXP ( iPlayer, level, cid )
  374. {
  375. if( !cmd_access( iPlayer, level, cid, 3 ) ) return PLUGIN_HANDLED;
  376.  
  377. new arg [ 32 ]
  378. read_argv ( 1, arg, 31 )
  379.  
  380. new AddXP [ 32 ]
  381. read_argv ( 2, AddXP, charsmax ( AddXP ) )
  382.  
  383. new XPtoGive = str_to_num ( AddXP )
  384.  
  385. new AdminName [ 32 ]
  386. new TargetName [ 32 ]
  387. get_user_name ( iPlayer, AdminName, charsmax ( AdminName ) )
  388.  
  389. if( arg[0]=='@' )
  390. {
  391. if( equali(arg[1],"All") || equali(arg[1],"ALL") )
  392. {
  393. new players[32], totalplayers, All
  394. get_players( players, totalplayers )
  395.  
  396. for ( new i = 0; i < totalplayers; i++ )
  397. {
  398. All = players[ i ]
  399.  
  400. eXP[ All ] += XPtoGive
  401. }
  402.  
  403. CheckLevel( All )
  404. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t minden ^1 játékosnak^3!", szPrefix, AdminName, XPtoGive )
  405. }
  406. else if( equali(arg[1],"T") || equali(arg[1],"t") )
  407. {
  408. new players[32], totalplayers, T
  409. get_players( players, totalplayers )
  410.  
  411. for ( new i = 0; i < totalplayers; i++ )
  412. {
  413. if ( get_user_team(players[ i ]) == 1 )
  414. {
  415. T = players[ i ]
  416.  
  417. eXP[ T ] += XPtoGive
  418. }
  419. }
  420.  
  421. CheckLevel( T )
  422. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t minden^1 Terrornak^3!", szPrefix, AdminName, XPtoGive )
  423. }
  424. else if( equali(arg[1],"CT") || equali(arg[1],"ct") )
  425. {
  426. new players[32], totalplayers, CT
  427. get_players( players, totalplayers )
  428.  
  429. for( new i = 0; i < totalplayers; i++ )
  430. {
  431. if( get_user_team(players[ i ] ) == 2 )
  432. {
  433. CT = players[ i ]
  434.  
  435. eXP[ CT ] += XPtoGive
  436. }
  437. }
  438.  
  439. CheckLevel( CT )
  440. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t minden^1 CT-nek^3!", szPrefix, AdminName, XPtoGive )
  441. }
  442. }
  443. else
  444. {
  445. new iTarget = cmd_target( iPlayer, arg, 3 )
  446. get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
  447.  
  448. if( iTarget )
  449. {
  450. eXP[ iTarget ] += XPtoGive
  451.  
  452. CheckLevel( iTarget )
  453. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t ^1 %s-nek^3", szPrefix, AdminName, XPtoGive, TargetName )
  454. }
  455. }
  456. return PLUGIN_HANDLED
  457. }
  458.  
  459. public CmdRemoveXP ( iPlayer, level, cid )
  460. {
  461. if( !cmd_access(iPlayer, level, cid, 3) ) return PLUGIN_HANDLED;
  462.  
  463. new arg [ 32 ]
  464. read_argv ( 1, arg, 31 )
  465.  
  466. new RemoveXP [ 32 ]
  467. read_argv ( 2, RemoveXP, charsmax ( RemoveXP ) )
  468.  
  469. new XPtoRemove = str_to_num ( RemoveXP )
  470.  
  471. new AdminName [ 32 ]
  472. new TargetName [ 32 ]
  473. get_user_name ( iPlayer, AdminName, charsmax ( AdminName ) )
  474.  
  475. if( arg[0]=='@' )
  476. {
  477. if( equali(arg[1],"All") || equali(arg[1],"ALL") )
  478. {
  479. new players[32], totalplayers, All
  480. get_players( players, totalplayers )
  481.  
  482. for ( new i = 0; i < totalplayers; i++ )
  483. {
  484. All = players[ i ]
  485.  
  486. eXP[ All ] -= XPtoRemove
  487. }
  488.  
  489. CheckLevel( All )
  490. ColorChat ( 0, GREY, "%s ^1%s^3 elvett^1 %i^3 XP-t ^1mindenkitől^3!", szPrefix, AdminName, XPtoRemove )
  491. }
  492. else if( equali(arg[1],"T") || equali(arg[1],"t") )
  493. {
  494. new players[32], totalplayers, T
  495. get_players( players, totalplayers )
  496.  
  497. for ( new i = 0; i < totalplayers; i++ )
  498. {
  499. if ( get_user_team(players[ i ]) == 1 )
  500. {
  501. T = players[ i ]
  502.  
  503. eXP[ T ] -= XPtoRemove
  504. }
  505. }
  506.  
  507. CheckLevel( T )
  508. ColorChat ( 0, GREY, "%s ^1%s^3 elvett^1 %i^3 XP-t minden^1 Terroristatol^3!", szPrefix, AdminName, XPtoRemove )
  509. }
  510. else if( equali(arg[1],"CT") || equali(arg[1],"ct") )
  511. {
  512. new players[32], totalplayers, CT
  513. get_players( players, totalplayers )
  514.  
  515. for( new i = 0; i < totalplayers; i++ )
  516. {
  517. if( get_user_team(players[ i ] ) == 2 )
  518. {
  519. CT = players[ i ]
  520.  
  521. eXP[ CT ] -= XPtoRemove
  522. }
  523. }
  524.  
  525. CheckLevel( CT )
  526. ColorChat ( 0, GREY, "%s ^1%s^3 elvett^1 %i^3 XP-t minden^1 CT-tol^3!", szPrefix, AdminName, XPtoRemove )
  527. }
  528. }
  529. else
  530. {
  531. new iTarget = cmd_target( iPlayer, arg, 3 )
  532. get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
  533.  
  534. if( !iTarget )
  535. return PLUGIN_HANDLED
  536.  
  537. eXP[ iTarget ] -= XPtoRemove
  538.  
  539. CheckLevel( iTarget )
  540. ColorChat ( 0, GREY, "%s ^1%s^3 elvett^1 %i^3 XP-t ^1 %s-től^3", szPrefix, AdminName, XPtoRemove, TargetName )
  541. }
  542.  
  543. return PLUGIN_HANDLED
  544. }
  545. /* Level Behind Nick & AdminChatColors
  546.   CREDITS TO ConnorMcLeod */
  547. public Message_SayText(msgId,msgDest,msgEnt)
  548. {
  549. new id = get_msg_arg_int(1);
  550. if( is_user_connected(id) )
  551. {
  552. if( get_cvar_num("AdminChatColors_On") == 1 )
  553. {
  554. new flags = get_user_flags(id)
  555. for(new i; i<sizeof(AdminsDatas); i++)
  556. {
  557. if( flags & AdminsDatas[i][m_iFlag] )
  558. {
  559. new szChannel[64]
  560. get_msg_arg_string(2, szChannel, charsmax(szChannel))
  561.  
  562. if( equal(szChannel, "#Cstrike_Chat_All") )
  563. {
  564. formatex(szChannel, charsmax(szChannel), "^4[%s - %s] ^3%%s1 ^1: %%s2", Prefix[Level[id]], AdminsDatas[i][m_szName])
  565. set_msg_arg_string(2, szChannel)
  566. }
  567. else if( !equal(szChannel, "#Cstrike_Name_Change") )
  568. {
  569. format(szChannel, charsmax(szChannel), "^4[%s - %s] %s", Prefix[Level[id]], AdminsDatas[i][m_szName], szChannel)
  570. set_msg_arg_string(2, szChannel)
  571. }
  572. return
  573. }
  574. else
  575. {
  576. new szChannel[64]
  577. get_msg_arg_string(2, szChannel, charsmax(szChannel))
  578.  
  579. if( equal(szChannel, "#Cstrike_Chat_All") )
  580. {
  581. formatex(szChannel, charsmax(szChannel), "^4[%s] ^3%%s1 ^1: %%s2", Prefix[Level[id]])
  582. set_msg_arg_string(2, szChannel)
  583. }
  584. else if( !equal(szChannel, "#Cstrike_Name_Change") )
  585. {
  586. format(szChannel, charsmax(szChannel), "^4[%s] %s", Prefix[Level[id]], szChannel)
  587. set_msg_arg_string(2, szChannel)
  588. }
  589. return
  590. }
  591. }
  592. }
  593. else
  594. {
  595. new szChannel[64]
  596. get_msg_arg_string(2, szChannel, charsmax(szChannel));
  597.  
  598. if( equal(szChannel, "#Cstrike_Chat_All") )
  599. {
  600. formatex(szChannel, charsmax(szChannel), "^4[%s] ^3%%s1 ^1: %%s2", Prefix[Level[id]])
  601. set_msg_arg_string(2, szChannel)
  602. }
  603. else if( !equal(szChannel, "#Cstrike_Name_Change") )
  604. {
  605. format(szChannel, charsmax(szChannel), "^4[%s] %s", Prefix[Level[id]], szChannel)
  606. set_msg_arg_string(2, szChannel)
  607. }
  608. return
  609. }
  610. }
  611. }


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  [ 13 hozzászólás ]  Oldal 1 2 Következő


Ki van itt

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