hlmod.hu

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



Jelenlévő felhasználók

Jelenleg 190 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 189 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Google [Bot] 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  [ 39 hozzászólás ]  Oldal Előző 1 2 3 4 Következő
Szerző Üzenet
 Hozzászólás témája: Re: Szintrendszer(XP mód)
HozzászólásElküldve: 2014.03.27. 19:38 
Offline
Senior Tag
Avatar

Csatlakozott: 2014.02.02. 10:59
Hozzászólások: 238
Megköszönt másnak: 63 alkalommal
Megköszönték neki: 12 alkalommal
megtettem..

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Szintrendszer(XP mód)
HozzászólásElküldve: 2014.05.18. 20:36 
Offline
Lelkes
Avatar

Csatlakozott: 2014.04.15. 13:58
Hozzászólások: 18
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 1 alkalommal
az XP elmentődik ha kilépek a szeróról,becsukom a szerót ? :?:


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Szintrendszer(XP mód)
HozzászólásElküldve: 2014.05.18. 20:40 
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
Igen :) mivel van benne vault

_________________
My Steam:
KépKép

Ők köszönték meg Golo nek ezt a hozzászólást: ~Destroy*anonymousCL (2014.05.18. 21:49)
  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(XP mód)
HozzászólásElküldve: 2014.05.18. 21:48 
Offline
Lelkes
Avatar

Csatlakozott: 2014.04.15. 13:58
Hozzászólások: 18
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 1 alkalommal
még egy kérdés:
szintsma.sma(204) : error 018: initialization data exceeds declared size
szintsma.sma(219) : error 018: initialization data exceeds declared size

2 Errors.
Could not locate output file szintsma.amx (compile failed).

ez azt jelenti hogy túl hosszú ? mert átírtam amerikai katona szintek szerint (62 szint) és gondolom az a baj ? szóval ezt nemtudom át konvertálni sehogy ?:S

_________________
Játék beli név:
~Destroy*FuCkEr{CL} vagy FuCkEr
Configok:
AWP gyors zoom,double duck,silent run,stop reloading
Klán TGF:ON
Feltételek:
CS tapasztalat, Admin tapasztalat, helyesírás,facebook vagy hamachi!


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Szintrendszer(XP mód)
HozzászólásElküldve: 2014.05.20. 06:51 
Offline
Őskövület
Avatar

Csatlakozott: 2012.02.27. 09:42
Hozzászólások: 2588
Megköszönt másnak: 25 alkalommal
Megköszönték neki: 418 alkalommal
oké hogy te beleírtál 62 szintet az addig oké.

1. xp-t is adtál mind a 62 szintnek?
2.
SMA Forráskód: [ Mindet kijelol ]
  1. #define MaxLevels 12
átírtad
SMA Forráskód: [ Mindet kijelol ]
  1. #define MaxLevels 61
-re?

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Szintrendszer(XP mód)
HozzászólásElküldve: 2014.05.20. 14:28 
Offline
Lelkes
Avatar

Csatlakozott: 2014.04.15. 13:58
Hozzászólások: 18
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 1 alkalommal
Itt hol a gond??
xp.sma(227) : error 001: expected token: "}", but found "-string-"
sma:
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <nvault>
  4. enum Color
  5. {
  6. NORMAL = 1, // clients scr_concolor cvar color
  7. GREEN, // Green Color
  8. TEAM_COLOR, // Red, grey, blue
  9. GREY, // grey
  10. RED, // Red
  11. BLUE, // Blue
  12. }
  13.  
  14. new TeamName[][] =
  15. {
  16. "",
  17. "TERRORIST",
  18. "CT",
  19. "SPECTATOR"
  20. }
  21.  
  22. ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
  23. {
  24. static message[256];
  25.  
  26. switch(type)
  27. {
  28. case NORMAL: // clients scr_concolor cvar color
  29. {
  30. message[0] = 0x01;
  31. }
  32. case GREEN: // Green
  33. {
  34. message[0] = 0x04;
  35. }
  36. default: // White, Red, Blue
  37. {
  38. message[0] = 0x03;
  39. }
  40. }
  41.  
  42. vformat(message[1], 251, msg, 4);
  43. message[192] = '^0';
  44.  
  45. static team, ColorChange, index, MSG_Type;
  46.  
  47. if(id)
  48. {
  49. MSG_Type = MSG_ONE;
  50. index = id;
  51. } else {
  52. index = FindPlayer();
  53. MSG_Type = MSG_ALL;
  54. }
  55.  
  56. team = get_user_team(index);
  57. ColorChange = ColorSelection(index, MSG_Type, type);
  58.  
  59. ShowColorMessage(index, MSG_Type, message);
  60.  
  61. if(ColorChange)
  62. {
  63. Team_Info(index, MSG_Type, TeamName[team]);
  64. }
  65. }
  66.  
  67. ShowColorMessage(id, type, message[])
  68. {
  69. message_begin(type, get_user_msgid("SayText"), _, id);
  70. write_byte(id)
  71. write_string(message);
  72. message_end();
  73. }
  74.  
  75. Team_Info(id, type, team[])
  76. {
  77. message_begin(type, get_user_msgid("TeamInfo"), _, id);
  78. write_byte(id);
  79. write_string(team);
  80. message_end();
  81.  
  82. return 1;
  83. }
  84.  
  85. ColorSelection(index, type, Color:Type)
  86. {
  87. switch(Type)
  88. {
  89. case RED:
  90. {
  91. return Team_Info(index, type, TeamName[1]);
  92. }
  93. case BLUE:
  94. {
  95. return Team_Info(index, type, TeamName[2]);
  96. }
  97. case GREY:
  98. {
  99. return Team_Info(index, type, TeamName[0]);
  100. }
  101. }
  102.  
  103. return 0;
  104. }
  105.  
  106. FindPlayer()
  107. {
  108. static i;
  109. i = -1;
  110.  
  111. while(i <= get_maxplayers())
  112. {
  113. if(is_user_connected(++i))
  114. {
  115. return i;
  116. }
  117. }
  118.  
  119. return -1;
  120. }
  121.  
  122. #include <cstrike>
  123. #include <fun>
  124. #include <hamsandwich>
  125. #include <fakemeta>
  126.  
  127. new Level[33], eXP[33]
  128. new KillXp, HsXp, HeXp/*, KnifeXp*/
  129. new gVault
  130.  
  131. new const szPrefix[] = "[^4Szintrendszer^3] -"
  132.  
  133. #define MaxLevels 12
  134. #define IsPlayer(%1) ( 1 <= %1 <= g_iMaxPlayers )
  135. #define TASK_SHOW_HUD 10113
  136.  
  137. new g_msgHudSync
  138. new bool:is_user_ignored[ 33 ]
  139.  
  140. new const Levels[MaxLevels+51] =
  141. {
  142. 100, // Level.1 #1
  143. 150, // Level.2 #2
  144. 200, // Level.3 #3
  145. 250, // Level.4 #4
  146. 300, // Level.5 #5
  147. 350, // Level.6 #6
  148. 400, // Level.7 #7
  149. 450, // Level.8 #8
  150. 550, // Level.9 #9
  151. 600, // Level.10 #10
  152. 650, // Level.11 #11
  153. 700, // Level.12 #12
  154. 750, // Level.13 #13
  155. 800, // Level.14 #14
  156. 850, // Level.15 #15
  157. 900, // Level.16 #16
  158. 950, // Level.17 #17
  159. 1000, // Level.18 #18
  160. 1050, // Level.19 #19
  161. 1100, // Level.20 #20
  162. 1150, // Level.21 #21
  163. 1200, // Level.22 #22
  164. 1250, // Level.23 #23
  165. 1300, // Level.24 #24
  166. 1350, // Level.25 #25
  167. 1400, // Level.26 #26
  168. 1450, // Level.27 #27
  169. 1500, // Level.28 #28
  170. 1550, // Level.29 #29
  171. 1600, // Level.30 #30
  172. 1650, // Level.31 #31
  173. 1700, // Level.32 #32
  174. 1750, // Level.33 #33
  175. 1800, // Level.34 #34
  176. 1850, // Level.35 #35
  177. 1900, // Level.36 #36
  178. 1950, // Level.37 #37
  179. 2000, // Level.38 #38
  180. 2050, // Level.39 #39
  181. 2100, // Level.40 #40
  182. 2150, // Level.41 #41
  183. 2200, // Level.42 #42
  184. 2250, // Level.43 #43
  185. 2300, // Level.44 #44
  186. 2350, // Level.45 #45
  187. 2400, // Level.46 #46
  188. 2450, // Level.47 #47
  189. 2500, // Level.48 #48
  190. 2550, // Level.49 #49
  191. 2600, // Level.50 #50
  192. 2650, // Level.51 #51
  193. 2700, // Level.52 #52
  194. 2750, // Level.53 #53
  195. 2800, // Level.54 #54
  196. 2850, // Level.55 #55
  197. 2900, // Level.56 #56
  198. 2950, // Level.57 #57
  199. 3000, // Level.58 #58
  200. 3050, // Level.59 #59
  201. 3100, // Level.60 #60
  202. 3150, // Level.61 #61
  203. 3200 // Level.62 #62
  204. }
  205. new const Prefix[MaxLevels+50][] =
  206. {
  207. "Recruit", // 1
  208. "Private", // 2
  209. "Private*", // 3
  210. "Private**", // 4
  211. "Private***", // 5
  212. "Corporal", // 6
  213. "Corporal*", // 7
  214. "Corporal**", // 8
  215. "Corporal***", // 9
  216. "Sergeant", // 10
  217. "Sergeant*", // 11
  218. "Sergeant**", // 12
  219. "Sergeant***", // 13
  220. "Lieutenant", // 14
  221. "Lieutenant*", // 15
  222. "Lieutenant**", // 16
  223. "Lieutenant***", // 17
  224. "Captain", // 18
  225. "Captain*", // 19
  226. "Captain**", // 20
  227. 1"Captain***", // 21
  228. "Major", // 22
  229. "Major*", // 23
  230. "Major**", // 24
  231. "Major***", // 25
  232. "Commander", // 26
  233. "Commander*", // 27
  234. "Commander**", // 28
  235. "Commander***", // 29
  236. "Lt Colonel", // 30
  237. "Lt Colonel*", // 31
  238. "Lt Colonel**", // 32
  239. "Lt Colonel***", // 33
  240. "Colonel", // 34
  241. "Colonel*", // 35
  242. "Colonel**", // 36
  243. "Colonel***", // 37
  244. "General", // 38
  245. "General*", // 39
  246. "General**", // 40
  247. "General***", // 41
  248. "Field Marshal", // 42
  249. "Field Marshal*", // 43
  250. "Field Marshal**", // 44
  251. "Field Marshal***", // 45
  252. "Supreme Marshal", // 46
  253. "Supreme Marshal*", // 47
  254. "Supreme Marshal**", // 48
  255. "Supreme Marshal***", // 49
  256. "National Force", // 50
  257. "National Force*", // 51
  258. "National Force**", // 52
  259. "National Force***", // 53
  260. "World Class Force", // 54
  261. "World Class Force*", // 55
  262. "World Class Force**", // 56
  263. "World Class Force***", // 57
  264. "Legendary Force", // 58
  265. "Legendary Force*", // 59
  266. "Legendary Force**", // 60
  267. "Legendary Force***", // 61
  268. "God of War" // 62
  269. }
  270.  
  271. // Bonus Stuff
  272. new healthperlevel,
  273. armorperlevel,
  274. speedperlevel,
  275. damageperlevel,
  276. gravityperlvl
  277.  
  278. new g_iMaxPlayers
  279.  
  280. // ADMIN CHAT COLORS by ConnorMcLeod
  281. enum _:ADMIN_DATAS
  282. {
  283. m_szName[32],
  284. m_iFlag
  285. }
  286.  
  287. new const AdminsDatas[][ADMIN_DATAS] =
  288. {
  289. {"Owner", ADMIN_BAN},
  290. {"Manager", ADMIN_BAN},
  291. // {"SuperAdmin", ADMIN_CFG},
  292. {"Admin", ADMIN_KICK},
  293. {"VIP", ADMIN_RESERVATION}
  294. };
  295.  
  296. public plugin_init()
  297. {
  298. register_plugin("Deathrun XP & Level Mod", "0.1", "FuCkEr")
  299.  
  300. register_message(get_user_msgid("SayText"),"Message_SayText"); // CREDITS TO ConnorMcLeod
  301.  
  302. RegisterHam ( Ham_Spawn, "player", "Ham_CheckOthers_Bonus", 1);
  303. RegisterHam ( Ham_TakeDamage, "player", "Ham_CheckDamage_Bonus", .Post = false );
  304. RegisterHam ( Ham_Item_PreFrame, "player", "Ham_CheckSpeed_Bonus", 1);
  305.  
  306. g_iMaxPlayers = get_maxplayers( );
  307.  
  308. register_cvar( "AdminChatColors_On", "1" ); // Admin Tag - Example: [Admin] Freestyle
  309. register_cvar( "XP_Reward_MSG", "1" ); // Message of the XP Gain
  310.  
  311. // CHAT COMMANDS //
  312. register_clcmd ( "say /xp", "ShowPlayerXP")
  313. register_clcmd ( "say_team /xp", "ShowPlayerXP")
  314. register_clcmd ( "say /level", "ShowPlayerLevel")
  315. register_clcmd ( "say_team /level", "ShowPlayerLevel")
  316.  
  317. // XP SYSTEM //
  318. KillXp = register_cvar("drxp_per_kill", "1")
  319. HsXp = register_cvar("drxp_per_hs", "2")
  320. HeXp = register_cvar("drxp_per_nade_kill", "4")
  321. //KnifeXp = register_cvar("drxp_per_knife_kill", "3")
  322.  
  323. // Give & Remove XP //
  324. register_concmd ( "give_xp", "CmdAddXP", ADMIN_RCON, "<nick, #userid, authid | @all> <xp>" )
  325. register_concmd ( "remove_xp", "CmdRemoveXP", ADMIN_RCON, "<nick, #userid, authid | @all> <xp>" )
  326.  
  327. /* Bonus Stuff */
  328.  
  329. // Health Per Level //
  330. healthperlevel = register_cvar("health_per_lvl", "0")
  331.  
  332. // Armor Per Level //
  333. armorperlevel = register_cvar("armor_per_lvl", "0")
  334.  
  335. // Speed Per Level //
  336. speedperlevel = register_cvar("speed_per_lvl", "0")
  337.  
  338. // Gravity Per Level //
  339. gravityperlvl = register_cvar("gravity_per_lvl", "0") // NERVER MORE THAN 66 PER LVL
  340.  
  341. // Damage Per Level //
  342. damageperlevel = register_cvar("damage_per_lvl", "0")
  343.  
  344. g_msgHudSync = CreateHudSyncObj()
  345. }
  346.  
  347. public plugin_cfg( )
  348. {
  349. gVault = nvault_open( "DEATHRUN_XP" )
  350.  
  351. if ( gVault == INVALID_HANDLE )
  352. set_fail_state( "Error opening nVault" );
  353. }
  354.  
  355. /* INFO ABOUT PERSONAL XP/LEVEL */
  356. public ShowPlayerXP(id)
  357. {
  358. ColorChat(id, GREY, "%s Neked ^4%i^3 XP-d van es a szinted: ^4%s^3!", szPrefix, eXP[id], Prefix[Level[id]])
  359. }
  360.  
  361. public ShowPlayerLevel(id)
  362. {
  363. new name[32]
  364. get_user_name(id, name, sizeof(name) -1)
  365.  
  366. ColorChat(id, GREY, "%s A te szinted: ^4%s^3 ^4%i^3 XP-vel!", szPrefix, Prefix[Level[id]], eXP[id])
  367. }
  368.  
  369. public Ham_CheckDamage_Bonus( pevVictim, pevInflictor, pevAttacker, Float:flDamage, iDmgBits )
  370. {
  371. if( !( 1 <= pevAttacker <= g_iMaxPlayers) )
  372. {
  373. return HAM_HANDLED;
  374. }
  375.  
  376. if( !is_user_alive( pevAttacker ) )
  377. {
  378. return HAM_HANDLED;
  379. }
  380.  
  381. SetHamParamFloat( 4 , flDamage + ( get_pcvar_num( damageperlevel ) * Level[ pevAttacker ] ) )
  382.  
  383. return HAM_IGNORED;
  384. }
  385.  
  386. /* Speed Check */
  387. public Ham_CheckSpeed_Bonus( id )
  388. {
  389. if( !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
  390. {
  391. return HAM_IGNORED;
  392. }
  393.  
  394. set_user_maxspeed( id, 250.0 + ( get_pcvar_num(speedperlevel) * Level[ id ] ) );
  395.  
  396. return HAM_IGNORED;
  397. }
  398.  
  399. /* HP & AP & Gravity Check */
  400. public Ham_CheckOthers_Bonus(id)
  401. {
  402. if( !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
  403. return HAM_IGNORED;
  404.  
  405. // HP Check
  406. new HPCheck = ( get_user_health(id) + get_pcvar_num(healthperlevel) * Level[ id ] );
  407. set_user_health( id, HPCheck );
  408.  
  409. // AP Check
  410. new APCheck = ( get_user_armor(id) + get_pcvar_num(armorperlevel) * Level[ id ] );
  411. set_user_armor( id, APCheck );
  412.  
  413. // Gravity
  414. new GRAVITYCheck = 800 - ( get_pcvar_num( gravityperlvl ) * Level[ id ] );
  415.  
  416. if(get_pcvar_num(gravityperlvl) > 66)
  417. {
  418. set_user_gravity( id, float( 8 ) / 800.0 );
  419. }
  420. else
  421. {
  422. set_user_gravity( id, float( GRAVITYCheck ) / 800.0 );
  423. }
  424.  
  425. remove_task( TASK_SHOW_HUD + id );
  426.  
  427. set_task(0.1, "ShowHud", TASK_SHOW_HUD + id)
  428.  
  429. return HAM_IGNORED;
  430. }
  431.  
  432. /* Respected Player Join / Leave Stuff */
  433.  
  434. public LvL_12_PlayerJoin(id)
  435. {
  436. new name[32]
  437. get_user_name(id, name, sizeof(name) -1)
  438.  
  439. ColorChat(0, GREY, "%s ^4Egy LegenD : ^1%s^4 belepett,^1%i^4 XP-je van!", szPrefix, name, eXP[id])
  440. }
  441.  
  442. public LvL_12_PlayerRemove(id)
  443. {
  444. new name[32]
  445. get_user_name(id, name, sizeof(name) -1)
  446.  
  447. ColorChat(0, GREY, "%s ^4Egy LegenD : %s lelepett %i XP-je van!", szPrefix, name, eXP[id])
  448. }
  449.  
  450. public plugin_end( )
  451. nvault_close( gVault )
  452.  
  453. public client_putinserver(id)
  454. {
  455. LoadData(id)
  456. set_task( 3.0, "ShowHud", id, .flags = "b" );
  457.  
  458. if(Level[id] == 12)
  459. {
  460. set_task(5.0, "LvL_12_PlayerJoin", id)
  461. }
  462. }
  463.  
  464. public client_disconnect(id)
  465. {
  466. SaveData(id)
  467.  
  468. if(Level[id] == 12)
  469. {
  470. set_task(1.0, "LvL_12_PlayerRemove", id)
  471. }
  472. }
  473.  
  474. /* XP REWARDS */
  475. public client_death( iKiller, iVictim, wpnindex, hitplace )
  476. {
  477. new vname[32]
  478. new kname[32]
  479.  
  480. get_user_name( iKiller, kname, charsmax( kname ) )
  481. get_user_name( iVictim, vname, charsmax( vname ) )
  482.  
  483. if( is_user_ignored[ iKiller ] )
  484. return PLUGIN_HANDLED_MAIN
  485.  
  486. get_user_name( iKiller, kname, charsmax( kname ) )
  487. get_user_name( iVictim, vname, charsmax( vname ) )
  488.  
  489. if( iKiller != iVictim && ( 1 <= iKiller <= g_iMaxPlayers ) && ( 1 <= iVictim <= g_iMaxPlayers ) && !( hitplace == HIT_HEAD ) && !( wpnindex == CSW_HEGRENADE ) )
  490. {
  491. eXP[iKiller] += get_pcvar_num(KillXp)
  492.  
  493. if( get_cvar_num("XP_Reward_MSG") == 1 )
  494. {
  495. ColorChat ( iKiller, GREY, "%s Kaptal^4 %i^3 XP-t mert megolted ^4 %s^3-t", szPrefix, get_pcvar_num(KillXp), vname )
  496. }
  497. }
  498.  
  499. if( hitplace == HIT_HEAD )
  500. {
  501. eXP[iKiller] += get_pcvar_num(HsXp)
  502.  
  503. if( get_cvar_num("XP_Reward_MSG") == 1 )
  504. {
  505. ColorChat ( iKiller, GREY, "%s Kaptal^4 %i^3 XP-t mert megolted ^4 %s^3-t", szPrefix, get_pcvar_num (HsXp), vname )
  506. }
  507. }
  508.  
  509. if( wpnindex == CSW_HEGRENADE && iKiller != iVictim )
  510. {
  511. eXP[iKiller] += get_pcvar_num(HeXp)
  512.  
  513. if( get_cvar_num("XP_Reward_MSG") == 1 )
  514. {
  515. ColorChat( iKiller, GREEN, "%s Kaptal^4 %i^3 XP-t mert megolted ^4 %s^3-t", szPrefix, get_pcvar_num (HeXp), vname )
  516. }
  517. }
  518. CheckLevel(iKiller)
  519. SaveData(iKiller)
  520.  
  521. return PLUGIN_CONTINUE
  522. }
  523.  
  524. public CheckLevel(id)
  525. {
  526. if(Level[id] < MaxLevels-1)
  527. {
  528. while(eXP[id] >= Levels[Level[id]])
  529. {
  530. Level[id] += 1
  531. ColorChat(id, GREY, "%s Gratulalok szintet leptel, mostani szinted szama : ^4%i^3", szPrefix, Level[id])
  532. }
  533. }
  534. }
  535.  
  536. /* HUD PERMANENT INFO */
  537. public ShowHud(task)
  538. {
  539. new id = task - TASK_SHOW_HUD
  540.  
  541. if(!is_user_alive(id))
  542. return;
  543.  
  544. set_hudmessage(0, 0, 0, 0.02, 0.33, 0, 0.0, 0.3, 0.0, 0.0)
  545. ShowSyncHudMsg(id, g_msgHudSync,"[Szinted : %s]^n[XP-d : %i]", Prefix[Level[id]], eXP[id])
  546.  
  547. set_task(0.1, "ShowHud", TASK_SHOW_HUD + id)
  548. }
  549.  
  550. /* nVault Stuff */
  551. public SaveData(id)
  552. {
  553. new AuthID[35]
  554. get_user_authid(id,AuthID,34)
  555. new vaultkey[64],vaultdata[256]
  556.  
  557. format(vaultkey,63,"%s-Mod",AuthID)
  558. format(vaultdata,255,"%i#%i#",eXP[id],Level[id])
  559.  
  560. nvault_set(gVault,vaultkey,vaultdata)
  561.  
  562. return PLUGIN_CONTINUE
  563. }
  564. public LoadData(id)
  565. {
  566. new AuthID[35]
  567. get_user_authid(id,AuthID,34)
  568. new vaultkey[64],vaultdata[256]
  569.  
  570. format(vaultkey,63,"%s-Mod",AuthID)
  571. format(vaultdata,255,"%i#%i#",eXP[id],Level[id])
  572.  
  573. nvault_get(gVault,vaultkey,vaultdata,255)
  574.  
  575. replace_all(vaultdata, 255, "#", " ")
  576.  
  577. new playerxp[32], playerlevel[32]
  578.  
  579. parse(vaultdata, playerxp, 31, playerlevel, 31)
  580.  
  581. eXP[id] = str_to_num(playerxp)
  582.  
  583. Level[id] = str_to_num(playerlevel)
  584.  
  585. return PLUGIN_CONTINUE
  586. }
  587.  
  588. /* Remove And Add XP */
  589. public CmdAddXP ( iPlayer, level, cid )
  590. {
  591. if( !cmd_access( iPlayer, level, cid, 3 ) ) return PLUGIN_HANDLED;
  592.  
  593. new arg [ 32 ]
  594. read_argv ( 1, arg, 31 )
  595.  
  596. new AddXP [ 32 ]
  597. read_argv ( 2, AddXP, charsmax ( AddXP ) )
  598.  
  599. new XPtoGive = str_to_num ( AddXP )
  600.  
  601. new AdminName [ 32 ]
  602. new TargetName [ 32 ]
  603. get_user_name ( iPlayer, AdminName, charsmax ( AdminName ) )
  604.  
  605. if( arg[0]=='@' )
  606. {
  607. if( equali(arg[1],"All") || equali(arg[1],"ALL") )
  608. {
  609. new players[32], totalplayers, All
  610. get_players( players, totalplayers )
  611.  
  612. for ( new i = 0; i < totalplayers; i++ )
  613. {
  614. All = players[ i ]
  615.  
  616. eXP[ All ] += XPtoGive
  617. }
  618.  
  619. CheckLevel( All )
  620. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t minden ^1 jatekosnak^3!", szPrefix, AdminName, XPtoGive )
  621. }
  622. else if( equali(arg[1],"T") || equali(arg[1],"t") )
  623. {
  624. new players[32], totalplayers, T
  625. get_players( players, totalplayers )
  626.  
  627. for ( new i = 0; i < totalplayers; i++ )
  628. {
  629. if ( get_user_team(players[ i ]) == 1 )
  630. {
  631. T = players[ i ]
  632.  
  633. eXP[ T ] += XPtoGive
  634. }
  635. }
  636.  
  637. CheckLevel( T )
  638. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t minden^1 Terrornak^3!", szPrefix, AdminName, XPtoGive )
  639. }
  640. else if( equali(arg[1],"CT") || equali(arg[1],"ct") )
  641. {
  642. new players[32], totalplayers, CT
  643. get_players( players, totalplayers )
  644.  
  645. for( new i = 0; i < totalplayers; i++ )
  646. {
  647. if( get_user_team(players[ i ] ) == 2 )
  648. {
  649. CT = players[ i ]
  650.  
  651. eXP[ CT ] += XPtoGive
  652. }
  653. }
  654.  
  655. CheckLevel( CT )
  656. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t minden^1 CT-nek^3!", szPrefix, AdminName, XPtoGive )
  657. }
  658. }
  659. else
  660. {
  661. new iTarget = cmd_target( iPlayer, arg, 3 )
  662. get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
  663.  
  664. if( iTarget )
  665. {
  666. eXP[ iTarget ] += XPtoGive
  667.  
  668. CheckLevel( iTarget )
  669. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t ^1 %s-nek^3", szPrefix, AdminName, XPtoGive, TargetName )
  670. }
  671. }
  672. return PLUGIN_HANDLED
  673. }
  674.  
  675. public CmdRemoveXP ( iPlayer, level, cid )
  676. {
  677. if( !cmd_access(iPlayer, level, cid, 3) ) return PLUGIN_HANDLED;
  678.  
  679. new arg [ 32 ]
  680. read_argv ( 1, arg, 31 )
  681.  
  682. new RemoveXP [ 32 ]
  683. read_argv ( 2, RemoveXP, charsmax ( RemoveXP ) )
  684.  
  685. new XPtoRemove = str_to_num ( RemoveXP )
  686.  
  687. new AdminName [ 32 ]
  688. new TargetName [ 32 ]
  689. get_user_name ( iPlayer, AdminName, charsmax ( AdminName ) )
  690.  
  691. if( arg[0]=='@' )
  692. {
  693. if( equali(arg[1],"All") || equali(arg[1],"ALL") )
  694. {
  695. new players[32], totalplayers, All
  696. get_players( players, totalplayers )
  697.  
  698. for ( new i = 0; i < totalplayers; i++ )
  699. {
  700. All = players[ i ]
  701.  
  702. eXP[ All ] -= XPtoRemove
  703. }
  704.  
  705. CheckLevel( All )
  706. ColorChat ( 0, GREY, "%s ^1%s^3 elvett^1 %i^3 XP-t ^1mindenkitol^3!", szPrefix, AdminName, XPtoRemove )
  707. }
  708. else if( equali(arg[1],"T") || equali(arg[1],"t") )
  709. {
  710. new players[32], totalplayers, T
  711. get_players( players, totalplayers )
  712.  
  713. for ( new i = 0; i < totalplayers; i++ )
  714. {
  715. if ( get_user_team(players[ i ]) == 1 )
  716. {
  717. T = players[ i ]
  718.  
  719. eXP[ T ] -= XPtoRemove
  720. }
  721. }
  722.  
  723. CheckLevel( T )
  724. ColorChat ( 0, GREY, "%s ^1%s^3 elvett^1 %i^3 XP-t minden^1 Terroristatol^3!", szPrefix, AdminName, XPtoRemove )
  725. }
  726. else if( equali(arg[1],"CT") || equali(arg[1],"ct") )
  727. {
  728. new players[32], totalplayers, CT
  729. get_players( players, totalplayers )
  730.  
  731. for( new i = 0; i < totalplayers; i++ )
  732. {
  733. if( get_user_team(players[ i ] ) == 2 )
  734. {
  735. CT = players[ i ]
  736.  
  737. eXP[ CT ] -= XPtoRemove
  738. }
  739. }
  740.  
  741. CheckLevel( CT )
  742. ColorChat ( 0, GREY, "%s ^1%s^3 elvett^1 %i^3 XP-t minden^1 CT-tol^3!", szPrefix, AdminName, XPtoRemove )
  743. }
  744. }
  745. else
  746. {
  747. new iTarget = cmd_target( iPlayer, arg, 3 )
  748. get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
  749.  
  750. if( !iTarget )
  751. return PLUGIN_HANDLED
  752.  
  753. eXP[ iTarget ] -= XPtoRemove
  754.  
  755. CheckLevel( iTarget )
  756. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t ^1 %s-nek^3", szPrefix, AdminName, XPtoRemove, TargetName )
  757. }
  758.  
  759. return PLUGIN_HANDLED
  760. }
  761. /* Level Behind Nick & AdminChatColors
  762.   CREDITS TO ConnorMcLeod */
  763. public Message_SayText(msgId,msgDest,msgEnt)
  764. {
  765. new id = get_msg_arg_int(1);
  766. if( is_user_connected(id) )
  767. {
  768. if( get_cvar_num("AdminChatColors_On") == 1 )
  769. {
  770. new flags = get_user_flags(id)
  771. for(new i; i<sizeof(AdminsDatas); i++)
  772. {
  773. if( flags & AdminsDatas[i][m_iFlag] )
  774. {
  775. new szChannel[64]
  776. get_msg_arg_string(2, szChannel, charsmax(szChannel))
  777.  
  778. if( equal(szChannel, "#Cstrike_Chat_All") )
  779. {
  780. formatex(szChannel, charsmax(szChannel), "^4[%s - %s] ^3%%s1 ^1: %%s2", Prefix[Level[id]], AdminsDatas[i][m_szName])
  781. set_msg_arg_string(2, szChannel)
  782. }
  783. else if( !equal(szChannel, "#Cstrike_Name_Change") )
  784. {
  785. format(szChannel, charsmax(szChannel), "^4[%s - %s] %s", Prefix[Level[id]], AdminsDatas[i][m_szName], szChannel)
  786. set_msg_arg_string(2, szChannel)
  787. }
  788. return
  789. }
  790. else
  791. {
  792. new szChannel[64]
  793. get_msg_arg_string(2, szChannel, charsmax(szChannel))
  794.  
  795. if( equal(szChannel, "#Cstrike_Chat_All") )
  796. {
  797. formatex(szChannel, charsmax(szChannel), "^4[%s] ^3%%s1 ^1: %%s2", Prefix[Level[id]])
  798. set_msg_arg_string(2, szChannel)
  799. }
  800. else if( !equal(szChannel, "#Cstrike_Name_Change") )
  801. {
  802. format(szChannel, charsmax(szChannel), "^4[%s] %s", Prefix[Level[id]], szChannel)
  803. set_msg_arg_string(2, szChannel)
  804. }
  805. return
  806. }
  807. }
  808. }
  809. else
  810. {
  811. new szChannel[64]
  812. get_msg_arg_string(2, szChannel, charsmax(szChannel));
  813.  
  814. if( equal(szChannel, "#Cstrike_Chat_All") )
  815. {
  816. formatex(szChannel, charsmax(szChannel), "^4[%s] ^3%%s1 ^1: %%s2", Prefix[Level[id]])
  817. set_msg_arg_string(2, szChannel)
  818. }
  819. else if( !equal(szChannel, "#Cstrike_Name_Change") )
  820. {
  821. format(szChannel, charsmax(szChannel), "^4[%s] %s", Prefix[Level[id]], szChannel)
  822. set_msg_arg_string(2, szChannel)
  823. }
  824. return
  825. }
  826. }
  827. }


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Szintrendszer(XP mód)
HozzászólásElküldve: 2014.05.20. 16:16 
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
Legközelebb rakd sma formátumba
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <nvault>
  4. enum Color
  5. {
  6. NORMAL = 1, // clients scr_concolor cvar color
  7. GREEN, // Green Color
  8. TEAM_COLOR, // Red, grey, blue
  9. GREY, // grey
  10. RED, // Red
  11. BLUE, // Blue
  12. }
  13.  
  14. new TeamName[][] =
  15. {
  16. "",
  17. "TERRORIST",
  18. "CT",
  19. "SPECTATOR"
  20. }
  21.  
  22. ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
  23. {
  24. static message[256];
  25.  
  26. switch(type)
  27. {
  28. case NORMAL: // clients scr_concolor cvar color
  29. {
  30. message[0] = 0x01;
  31. }
  32. case GREEN: // Green
  33. {
  34. message[0] = 0x04;
  35. }
  36. default: // White, Red, Blue
  37. {
  38. message[0] = 0x03;
  39. }
  40. }
  41.  
  42. vformat(message[1], 251, msg, 4);
  43. message[192] = '^0';
  44.  
  45. static team, ColorChange, index, MSG_Type;
  46.  
  47. if(id)
  48. {
  49. MSG_Type = MSG_ONE;
  50. index = id;
  51. } else {
  52. index = FindPlayer();
  53. MSG_Type = MSG_ALL;
  54. }
  55.  
  56. team = get_user_team(index);
  57. ColorChange = ColorSelection(index, MSG_Type, type);
  58.  
  59. ShowColorMessage(index, MSG_Type, message);
  60.  
  61. if(ColorChange)
  62. {
  63. Team_Info(index, MSG_Type, TeamName[team]);
  64. }
  65. }
  66.  
  67. ShowColorMessage(id, type, message[])
  68. {
  69. message_begin(type, get_user_msgid("SayText"), _, id);
  70. write_byte(id)
  71. write_string(message);
  72. message_end();
  73. }
  74.  
  75. Team_Info(id, type, team[])
  76. {
  77. message_begin(type, get_user_msgid("TeamInfo"), _, id);
  78. write_byte(id);
  79. write_string(team);
  80. message_end();
  81.  
  82. return 1;
  83. }
  84.  
  85. ColorSelection(index, type, Color:Type)
  86. {
  87. switch(Type)
  88. {
  89. case RED:
  90. {
  91. return Team_Info(index, type, TeamName[1]);
  92. }
  93. case BLUE:
  94. {
  95. return Team_Info(index, type, TeamName[2]);
  96. }
  97. case GREY:
  98. {
  99. return Team_Info(index, type, TeamName[0]);
  100. }
  101. }
  102.  
  103. return 0;
  104. }
  105.  
  106. FindPlayer()
  107. {
  108. static i;
  109. i = -1;
  110.  
  111. while(i <= get_maxplayers())
  112. {
  113. if(is_user_connected(++i))
  114. {
  115. return i;
  116. }
  117. }
  118.  
  119. return -1;
  120. }
  121.  
  122. #include <cstrike>
  123. #include <fun>
  124. #include <hamsandwich>
  125. #include <fakemeta>
  126.  
  127. new Level[33], eXP[33]
  128. new KillXp, HsXp, HeXp/*, KnifeXp*/
  129. new gVault
  130.  
  131. new const szPrefix[] = "[^4Szintrendszer^3] -"
  132.  
  133. #define MaxLevels 12
  134. #define IsPlayer(%1) ( 1 <= %1 <= g_iMaxPlayers )
  135. #define TASK_SHOW_HUD 10113
  136.  
  137. new g_msgHudSync
  138. new bool:is_user_ignored[ 33 ]
  139.  
  140. new const Levels[MaxLevels+51] =
  141. {
  142. 100, // Level.1 #1
  143. 150, // Level.2 #2
  144. 200, // Level.3 #3
  145. 250, // Level.4 #4
  146. 300, // Level.5 #5
  147. 350, // Level.6 #6
  148. 400, // Level.7 #7
  149. 450, // Level.8 #8
  150. 550, // Level.9 #9
  151. 600, // Level.10 #10
  152. 650, // Level.11 #11
  153. 700, // Level.12 #12
  154. 750, // Level.13 #13
  155. 800, // Level.14 #14
  156. 850, // Level.15 #15
  157. 900, // Level.16 #16
  158. 950, // Level.17 #17
  159. 1000, // Level.18 #18
  160. 1050, // Level.19 #19
  161. 1100, // Level.20 #20
  162. 1150, // Level.21 #21
  163. 1200, // Level.22 #22
  164. 1250, // Level.23 #23
  165. 1300, // Level.24 #24
  166. 1350, // Level.25 #25
  167. 1400, // Level.26 #26
  168. 1450, // Level.27 #27
  169. 1500, // Level.28 #28
  170. 1550, // Level.29 #29
  171. 1600, // Level.30 #30
  172. 1650, // Level.31 #31
  173. 1700, // Level.32 #32
  174. 1750, // Level.33 #33
  175. 1800, // Level.34 #34
  176. 1850, // Level.35 #35
  177. 1900, // Level.36 #36
  178. 1950, // Level.37 #37
  179. 2000, // Level.38 #38
  180. 2050, // Level.39 #39
  181. 2100, // Level.40 #40
  182. 2150, // Level.41 #41
  183. 2200, // Level.42 #42
  184. 2250, // Level.43 #43
  185. 2300, // Level.44 #44
  186. 2350, // Level.45 #45
  187. 2400, // Level.46 #46
  188. 2450, // Level.47 #47
  189. 2500, // Level.48 #48
  190. 2550, // Level.49 #49
  191. 2600, // Level.50 #50
  192. 2650, // Level.51 #51
  193. 2700, // Level.52 #52
  194. 2750, // Level.53 #53
  195. 2800, // Level.54 #54
  196. 2850, // Level.55 #55
  197. 2900, // Level.56 #56
  198. 2950, // Level.57 #57
  199. 3000, // Level.58 #58
  200. 3050, // Level.59 #59
  201. 3100, // Level.60 #60
  202. 3150, // Level.61 #61
  203. 3200 // Level.62 #62
  204. }
  205. new const Prefix[MaxLevels+50][] =
  206. {
  207. "Recruit", // 1
  208. "Private", // 2
  209. "Private*", // 3
  210. "Private**", // 4
  211. "Private***", // 5
  212. "Corporal", // 6
  213. "Corporal*", // 7
  214. "Corporal**", // 8
  215. "Corporal***", // 9
  216. "Sergeant", // 10
  217. "Sergeant*", // 11
  218. "Sergeant**", // 12
  219. "Sergeant***", // 13
  220. "Lieutenant", // 14
  221. "Lieutenant*", // 15
  222. "Lieutenant**", // 16
  223. "Lieutenant***", // 17
  224. "Captain", // 18
  225. "Captain*", // 19
  226. "Captain**", // 20
  227. "Captain***", // 21
  228. "Major", // 22
  229. "Major*", // 23
  230. "Major**", // 24
  231. "Major***", // 25
  232. "Commander", // 26
  233. "Commander*", // 27
  234. "Commander**", // 28
  235. "Commander***", // 29
  236. "Lt Colonel", // 30
  237. "Lt Colonel*", // 31
  238. "Lt Colonel**", // 32
  239. "Lt Colonel***", // 33
  240. "Colonel", // 34
  241. "Colonel*", // 35
  242. "Colonel**", // 36
  243. "Colonel***", // 37
  244. "General", // 38
  245. "General*", // 39
  246. "General**", // 40
  247. "General***", // 41
  248. "Field Marshal", // 42
  249. "Field Marshal*", // 43
  250. "Field Marshal**", // 44
  251. "Field Marshal***", // 45
  252. "Supreme Marshal", // 46
  253. "Supreme Marshal*", // 47
  254. "Supreme Marshal**", // 48
  255. "Supreme Marshal***", // 49
  256. "National Force", // 50
  257. "National Force*", // 51
  258. "National Force**", // 52
  259. "National Force***", // 53
  260. "World Class Force", // 54
  261. "World Class Force*", // 55
  262. "World Class Force**", // 56
  263. "World Class Force***", // 57
  264. "Legendary Force", // 58
  265. "Legendary Force*", // 59
  266. "Legendary Force**", // 60
  267. "Legendary Force***", // 61
  268. "God of War" // 62
  269. }
  270.  
  271. // Bonus Stuff
  272. new healthperlevel,
  273. armorperlevel,
  274. speedperlevel,
  275. damageperlevel,
  276. gravityperlvl
  277.  
  278. new g_iMaxPlayers
  279.  
  280. // ADMIN CHAT COLORS by ConnorMcLeod
  281. enum _:ADMIN_DATAS
  282. {
  283. m_szName[32],
  284. m_iFlag
  285. }
  286.  
  287. new const AdminsDatas[][ADMIN_DATAS] =
  288. {
  289. {"Owner", ADMIN_BAN},
  290. {"Manager", ADMIN_BAN},
  291. // {"SuperAdmin", ADMIN_CFG},
  292. {"Admin", ADMIN_KICK},
  293. {"VIP", ADMIN_RESERVATION}
  294. };
  295.  
  296. public plugin_init()
  297. {
  298. register_plugin("Deathrun XP & Level Mod", "0.1", "FuCkEr")
  299.  
  300. register_message(get_user_msgid("SayText"),"Message_SayText"); // CREDITS TO ConnorMcLeod
  301.  
  302. RegisterHam ( Ham_Spawn, "player", "Ham_CheckOthers_Bonus", 1);
  303. RegisterHam ( Ham_TakeDamage, "player", "Ham_CheckDamage_Bonus", .Post = false );
  304. RegisterHam ( Ham_Item_PreFrame, "player", "Ham_CheckSpeed_Bonus", 1);
  305.  
  306. g_iMaxPlayers = get_maxplayers( );
  307.  
  308. register_cvar( "AdminChatColors_On", "1" ); // Admin Tag - Example: [Admin] Freestyle
  309. register_cvar( "XP_Reward_MSG", "1" ); // Message of the XP Gain
  310.  
  311. // CHAT COMMANDS //
  312. register_clcmd ( "say /xp", "ShowPlayerXP")
  313. register_clcmd ( "say_team /xp", "ShowPlayerXP")
  314. register_clcmd ( "say /level", "ShowPlayerLevel")
  315. register_clcmd ( "say_team /level", "ShowPlayerLevel")
  316.  
  317. // XP SYSTEM //
  318. KillXp = register_cvar("drxp_per_kill", "1")
  319. HsXp = register_cvar("drxp_per_hs", "2")
  320. HeXp = register_cvar("drxp_per_nade_kill", "4")
  321. //KnifeXp = register_cvar("drxp_per_knife_kill", "3")
  322.  
  323. // Give & Remove XP //
  324. register_concmd ( "give_xp", "CmdAddXP", ADMIN_RCON, "<nick, #userid, authid | @all> <xp>" )
  325. register_concmd ( "remove_xp", "CmdRemoveXP", ADMIN_RCON, "<nick, #userid, authid | @all> <xp>" )
  326.  
  327. /* Bonus Stuff */
  328.  
  329. // Health Per Level //
  330. healthperlevel = register_cvar("health_per_lvl", "0")
  331.  
  332. // Armor Per Level //
  333. armorperlevel = register_cvar("armor_per_lvl", "0")
  334.  
  335. // Speed Per Level //
  336. speedperlevel = register_cvar("speed_per_lvl", "0")
  337.  
  338. // Gravity Per Level //
  339. gravityperlvl = register_cvar("gravity_per_lvl", "0") // NERVER MORE THAN 66 PER LVL
  340.  
  341. // Damage Per Level //
  342. damageperlevel = register_cvar("damage_per_lvl", "0")
  343.  
  344. g_msgHudSync = CreateHudSyncObj()
  345. }
  346.  
  347. public plugin_cfg( )
  348. {
  349. gVault = nvault_open( "DEATHRUN_XP" )
  350.  
  351. if ( gVault == INVALID_HANDLE )
  352. set_fail_state( "Error opening nVault" );
  353. }
  354.  
  355. /* INFO ABOUT PERSONAL XP/LEVEL */
  356. public ShowPlayerXP(id)
  357. {
  358. ColorChat(id, GREY, "%s Neked ^4%i^3 XP-d van es a szinted: ^4%s^3!", szPrefix, eXP[id], Prefix[Level[id]])
  359. }
  360.  
  361. public ShowPlayerLevel(id)
  362. {
  363. new name[32]
  364. get_user_name(id, name, sizeof(name) -1)
  365.  
  366. ColorChat(id, GREY, "%s A te szinted: ^4%s^3 ^4%i^3 XP-vel!", szPrefix, Prefix[Level[id]], eXP[id])
  367. }
  368.  
  369. public Ham_CheckDamage_Bonus( pevVictim, pevInflictor, pevAttacker, Float:flDamage, iDmgBits )
  370. {
  371. if( !( 1 <= pevAttacker <= g_iMaxPlayers) )
  372. {
  373. return HAM_HANDLED;
  374. }
  375.  
  376. if( !is_user_alive( pevAttacker ) )
  377. {
  378. return HAM_HANDLED;
  379. }
  380.  
  381. SetHamParamFloat( 4 , flDamage + ( get_pcvar_num( damageperlevel ) * Level[ pevAttacker ] ) )
  382.  
  383. return HAM_IGNORED;
  384. }
  385.  
  386. /* Speed Check */
  387. public Ham_CheckSpeed_Bonus( id )
  388. {
  389. if( !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
  390. {
  391. return HAM_IGNORED;
  392. }
  393.  
  394. set_user_maxspeed( id, 250.0 + ( get_pcvar_num(speedperlevel) * Level[ id ] ) );
  395.  
  396. return HAM_IGNORED;
  397. }
  398.  
  399. /* HP & AP & Gravity Check */
  400. public Ham_CheckOthers_Bonus(id)
  401. {
  402. if( !is_user_alive( id ) || cs_get_user_team( id ) != CS_TEAM_T )
  403. return HAM_IGNORED;
  404.  
  405. // HP Check
  406. new HPCheck = ( get_user_health(id) + get_pcvar_num(healthperlevel) * Level[ id ] );
  407. set_user_health( id, HPCheck );
  408.  
  409. // AP Check
  410. new APCheck = ( get_user_armor(id) + get_pcvar_num(armorperlevel) * Level[ id ] );
  411. set_user_armor( id, APCheck );
  412.  
  413. // Gravity
  414. new GRAVITYCheck = 800 - ( get_pcvar_num( gravityperlvl ) * Level[ id ] );
  415.  
  416. if(get_pcvar_num(gravityperlvl) > 66)
  417. {
  418. set_user_gravity( id, float( 8 ) / 800.0 );
  419. }
  420. else
  421. {
  422. set_user_gravity( id, float( GRAVITYCheck ) / 800.0 );
  423. }
  424.  
  425. remove_task( TASK_SHOW_HUD + id );
  426.  
  427. set_task(0.1, "ShowHud", TASK_SHOW_HUD + id)
  428.  
  429. return HAM_IGNORED;
  430. }
  431.  
  432. /* Respected Player Join / Leave Stuff */
  433.  
  434. public LvL_12_PlayerJoin(id)
  435. {
  436. new name[32]
  437. get_user_name(id, name, sizeof(name) -1)
  438.  
  439. ColorChat(0, GREY, "%s ^4Egy LegenD : ^1%s^4 belepett,^1%i^4 XP-je van!", szPrefix, name, eXP[id])
  440. }
  441.  
  442. public LvL_12_PlayerRemove(id)
  443. {
  444. new name[32]
  445. get_user_name(id, name, sizeof(name) -1)
  446.  
  447. ColorChat(0, GREY, "%s ^4Egy LegenD : %s lelepett %i XP-je van!", szPrefix, name, eXP[id])
  448. }
  449.  
  450. public plugin_end( )
  451. nvault_close( gVault )
  452.  
  453. public client_putinserver(id)
  454. {
  455. LoadData(id)
  456. set_task( 3.0, "ShowHud", id, .flags = "b" );
  457.  
  458. if(Level[id] == 12)
  459. {
  460. set_task(5.0, "LvL_12_PlayerJoin", id)
  461. }
  462. }
  463.  
  464. public client_disconnect(id)
  465. {
  466. SaveData(id)
  467.  
  468. if(Level[id] == 12)
  469. {
  470. set_task(1.0, "LvL_12_PlayerRemove", id)
  471. }
  472. }
  473.  
  474. /* XP REWARDS */
  475. public client_death( iKiller, iVictim, wpnindex, hitplace )
  476. {
  477. new vname[32]
  478. new kname[32]
  479.  
  480. get_user_name( iKiller, kname, charsmax( kname ) )
  481. get_user_name( iVictim, vname, charsmax( vname ) )
  482.  
  483. if( is_user_ignored[ iKiller ] )
  484. return PLUGIN_HANDLED_MAIN
  485.  
  486. get_user_name( iKiller, kname, charsmax( kname ) )
  487. get_user_name( iVictim, vname, charsmax( vname ) )
  488.  
  489. if( iKiller != iVictim && ( 1 <= iKiller <= g_iMaxPlayers ) && ( 1 <= iVictim <= g_iMaxPlayers ) && !( hitplace == HIT_HEAD ) && !( wpnindex == CSW_HEGRENADE ) )
  490. {
  491. eXP[iKiller] += get_pcvar_num(KillXp)
  492.  
  493. if( get_cvar_num("XP_Reward_MSG") == 1 )
  494. {
  495. ColorChat ( iKiller, GREY, "%s Kaptal^4 %i^3 XP-t mert megolted ^4 %s^3-t", szPrefix, get_pcvar_num(KillXp), vname )
  496. }
  497. }
  498.  
  499. if( hitplace == HIT_HEAD )
  500. {
  501. eXP[iKiller] += get_pcvar_num(HsXp)
  502.  
  503. if( get_cvar_num("XP_Reward_MSG") == 1 )
  504. {
  505. ColorChat ( iKiller, GREY, "%s Kaptal^4 %i^3 XP-t mert megolted ^4 %s^3-t", szPrefix, get_pcvar_num (HsXp), vname )
  506. }
  507. }
  508.  
  509. if( wpnindex == CSW_HEGRENADE && iKiller != iVictim )
  510. {
  511. eXP[iKiller] += get_pcvar_num(HeXp)
  512.  
  513. if( get_cvar_num("XP_Reward_MSG") == 1 )
  514. {
  515. ColorChat( iKiller, GREEN, "%s Kaptal^4 %i^3 XP-t mert megolted ^4 %s^3-t", szPrefix, get_pcvar_num (HeXp), vname )
  516. }
  517. }
  518. CheckLevel(iKiller)
  519. SaveData(iKiller)
  520.  
  521. return PLUGIN_CONTINUE
  522. }
  523.  
  524. public CheckLevel(id)
  525. {
  526. if(Level[id] < MaxLevels-1)
  527. {
  528. while(eXP[id] >= Levels[Level[id]])
  529. {
  530. Level[id] += 1
  531. ColorChat(id, GREY, "%s Gratulalok szintet leptel, mostani szinted szama : ^4%i^3", szPrefix, Level[id])
  532. }
  533. }
  534. }
  535.  
  536. /* HUD PERMANENT INFO */
  537. public ShowHud(task)
  538. {
  539. new id = task - TASK_SHOW_HUD
  540.  
  541. if(!is_user_alive(id))
  542. return;
  543.  
  544. set_hudmessage(0, 0, 0, 0.02, 0.33, 0, 0.0, 0.3, 0.0, 0.0)
  545. ShowSyncHudMsg(id, g_msgHudSync,"[Szinted : %s]^n[XP-d : %i]", Prefix[Level[id]], eXP[id])
  546.  
  547. set_task(0.1, "ShowHud", TASK_SHOW_HUD + id)
  548. }
  549.  
  550. /* nVault Stuff */
  551. public SaveData(id)
  552. {
  553. new AuthID[35]
  554. get_user_authid(id,AuthID,34)
  555. new vaultkey[64],vaultdata[256]
  556.  
  557. format(vaultkey,63,"%s-Mod",AuthID)
  558. format(vaultdata,255,"%i#%i#",eXP[id],Level[id])
  559.  
  560. nvault_set(gVault,vaultkey,vaultdata)
  561.  
  562. return PLUGIN_CONTINUE
  563. }
  564. public LoadData(id)
  565. {
  566. new AuthID[35]
  567. get_user_authid(id,AuthID,34)
  568. new vaultkey[64],vaultdata[256]
  569.  
  570. format(vaultkey,63,"%s-Mod",AuthID)
  571. format(vaultdata,255,"%i#%i#",eXP[id],Level[id])
  572.  
  573. nvault_get(gVault,vaultkey,vaultdata,255)
  574.  
  575. replace_all(vaultdata, 255, "#", " ")
  576.  
  577. new playerxp[32], playerlevel[32]
  578.  
  579. parse(vaultdata, playerxp, 31, playerlevel, 31)
  580.  
  581. eXP[id] = str_to_num(playerxp)
  582.  
  583. Level[id] = str_to_num(playerlevel)
  584.  
  585. return PLUGIN_CONTINUE
  586. }
  587.  
  588. /* Remove And Add XP */
  589. public CmdAddXP ( iPlayer, level, cid )
  590. {
  591. if( !cmd_access( iPlayer, level, cid, 3 ) ) return PLUGIN_HANDLED;
  592.  
  593. new arg [ 32 ]
  594. read_argv ( 1, arg, 31 )
  595.  
  596. new AddXP [ 32 ]
  597. read_argv ( 2, AddXP, charsmax ( AddXP ) )
  598.  
  599. new XPtoGive = str_to_num ( AddXP )
  600.  
  601. new AdminName [ 32 ]
  602. new TargetName [ 32 ]
  603. get_user_name ( iPlayer, AdminName, charsmax ( AdminName ) )
  604.  
  605. if( arg[0]=='@' )
  606. {
  607. if( equali(arg[1],"All") || equali(arg[1],"ALL") )
  608. {
  609. new players[32], totalplayers, All
  610. get_players( players, totalplayers )
  611.  
  612. for ( new i = 0; i < totalplayers; i++ )
  613. {
  614. All = players[ i ]
  615.  
  616. eXP[ All ] += XPtoGive
  617. }
  618.  
  619. CheckLevel( All )
  620. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t minden ^1 jatekosnak^3!", szPrefix, AdminName, XPtoGive )
  621. }
  622. else if( equali(arg[1],"T") || equali(arg[1],"t") )
  623. {
  624. new players[32], totalplayers, T
  625. get_players( players, totalplayers )
  626.  
  627. for ( new i = 0; i < totalplayers; i++ )
  628. {
  629. if ( get_user_team(players[ i ]) == 1 )
  630. {
  631. T = players[ i ]
  632.  
  633. eXP[ T ] += XPtoGive
  634. }
  635. }
  636.  
  637. CheckLevel( T )
  638. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t minden^1 Terrornak^3!", szPrefix, AdminName, XPtoGive )
  639. }
  640. else if( equali(arg[1],"CT") || equali(arg[1],"ct") )
  641. {
  642. new players[32], totalplayers, CT
  643. get_players( players, totalplayers )
  644.  
  645. for( new i = 0; i < totalplayers; i++ )
  646. {
  647. if( get_user_team(players[ i ] ) == 2 )
  648. {
  649. CT = players[ i ]
  650.  
  651. eXP[ CT ] += XPtoGive
  652. }
  653. }
  654.  
  655. CheckLevel( CT )
  656. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t minden^1 CT-nek^3!", szPrefix, AdminName, XPtoGive )
  657. }
  658. }
  659. else
  660. {
  661. new iTarget = cmd_target( iPlayer, arg, 3 )
  662. get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
  663.  
  664. if( iTarget )
  665. {
  666. eXP[ iTarget ] += XPtoGive
  667.  
  668. CheckLevel( iTarget )
  669. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t ^1 %s-nek^3", szPrefix, AdminName, XPtoGive, TargetName )
  670. }
  671. }
  672. return PLUGIN_HANDLED
  673. }
  674.  
  675. public CmdRemoveXP ( iPlayer, level, cid )
  676. {
  677. if( !cmd_access(iPlayer, level, cid, 3) ) return PLUGIN_HANDLED;
  678.  
  679. new arg [ 32 ]
  680. read_argv ( 1, arg, 31 )
  681.  
  682. new RemoveXP [ 32 ]
  683. read_argv ( 2, RemoveXP, charsmax ( RemoveXP ) )
  684.  
  685. new XPtoRemove = str_to_num ( RemoveXP )
  686.  
  687. new AdminName [ 32 ]
  688. new TargetName [ 32 ]
  689. get_user_name ( iPlayer, AdminName, charsmax ( AdminName ) )
  690.  
  691. if( arg[0]=='@' )
  692. {
  693. if( equali(arg[1],"All") || equali(arg[1],"ALL") )
  694. {
  695. new players[32], totalplayers, All
  696. get_players( players, totalplayers )
  697.  
  698. for ( new i = 0; i < totalplayers; i++ )
  699. {
  700. All = players[ i ]
  701.  
  702. eXP[ All ] -= XPtoRemove
  703. }
  704.  
  705. CheckLevel( All )
  706. ColorChat ( 0, GREY, "%s ^1%s^3 elvett^1 %i^3 XP-t ^1mindenkitol^3!", szPrefix, AdminName, XPtoRemove )
  707. }
  708. else if( equali(arg[1],"T") || equali(arg[1],"t") )
  709. {
  710. new players[32], totalplayers, T
  711. get_players( players, totalplayers )
  712.  
  713. for ( new i = 0; i < totalplayers; i++ )
  714. {
  715. if ( get_user_team(players[ i ]) == 1 )
  716. {
  717. T = players[ i ]
  718.  
  719. eXP[ T ] -= XPtoRemove
  720. }
  721. }
  722.  
  723. CheckLevel( T )
  724. ColorChat ( 0, GREY, "%s ^1%s^3 elvett^1 %i^3 XP-t minden^1 Terroristatol^3!", szPrefix, AdminName, XPtoRemove )
  725. }
  726. else if( equali(arg[1],"CT") || equali(arg[1],"ct") )
  727. {
  728. new players[32], totalplayers, CT
  729. get_players( players, totalplayers )
  730.  
  731. for( new i = 0; i < totalplayers; i++ )
  732. {
  733. if( get_user_team(players[ i ] ) == 2 )
  734. {
  735. CT = players[ i ]
  736.  
  737. eXP[ CT ] -= XPtoRemove
  738. }
  739. }
  740.  
  741. CheckLevel( CT )
  742. ColorChat ( 0, GREY, "%s ^1%s^3 elvett^1 %i^3 XP-t minden^1 CT-tol^3!", szPrefix, AdminName, XPtoRemove )
  743. }
  744. }
  745. else
  746. {
  747. new iTarget = cmd_target( iPlayer, arg, 3 )
  748. get_user_name ( iTarget, TargetName, charsmax ( TargetName ) )
  749.  
  750. if( !iTarget )
  751. return PLUGIN_HANDLED
  752.  
  753. eXP[ iTarget ] -= XPtoRemove
  754.  
  755. CheckLevel( iTarget )
  756. ColorChat ( 0, GREY, "%s ^1%s^3 adott^1 %i^3 XP-t ^1 %s-nek^3", szPrefix, AdminName, XPtoRemove, TargetName )
  757. }
  758.  
  759. return PLUGIN_HANDLED
  760. }
  761. /* Level Behind Nick & AdminChatColors
  762. CREDITS TO ConnorMcLeod */
  763. public Message_SayText(msgId,msgDest,msgEnt)
  764. {
  765. new id = get_msg_arg_int(1);
  766. if( is_user_connected(id) )
  767. {
  768. if( get_cvar_num("AdminChatColors_On") == 1 )
  769. {
  770. new flags = get_user_flags(id)
  771. for(new i; i<sizeof(AdminsDatas); i++)
  772. {
  773. if( flags & AdminsDatas[i][m_iFlag] )
  774. {
  775. new szChannel[64]
  776. get_msg_arg_string(2, szChannel, charsmax(szChannel))
  777.  
  778. if( equal(szChannel, "#Cstrike_Chat_All") )
  779. {
  780. formatex(szChannel, charsmax(szChannel), "^4[%s - %s] ^3%%s1 ^1: %%s2", Prefix[Level[id]], AdminsDatas[i][m_szName])
  781. set_msg_arg_string(2, szChannel)
  782. }
  783. else if( !equal(szChannel, "#Cstrike_Name_Change") )
  784. {
  785. format(szChannel, charsmax(szChannel), "^4[%s - %s] %s", Prefix[Level[id]], AdminsDatas[i][m_szName], szChannel)
  786. set_msg_arg_string(2, szChannel)
  787. }
  788. return
  789. }
  790. else
  791. {
  792. new szChannel[64]
  793. get_msg_arg_string(2, szChannel, charsmax(szChannel))
  794.  
  795. if( equal(szChannel, "#Cstrike_Chat_All") )
  796. {
  797. formatex(szChannel, charsmax(szChannel), "^4[%s] ^3%%s1 ^1: %%s2", Prefix[Level[id]])
  798. set_msg_arg_string(2, szChannel)
  799. }
  800. else if( !equal(szChannel, "#Cstrike_Name_Change") )
  801. {
  802. format(szChannel, charsmax(szChannel), "^4[%s] %s", Prefix[Level[id]], szChannel)
  803. set_msg_arg_string(2, szChannel)
  804. }
  805. return
  806. }
  807. }
  808. }
  809. else
  810. {
  811. new szChannel[64]
  812. get_msg_arg_string(2, szChannel, charsmax(szChannel));
  813.  
  814. if( equal(szChannel, "#Cstrike_Chat_All") )
  815. {
  816. formatex(szChannel, charsmax(szChannel), "^4[%s] ^3%%s1 ^1: %%s2", Prefix[Level[id]])
  817. set_msg_arg_string(2, szChannel)
  818. }
  819. else if( !equal(szChannel, "#Cstrike_Name_Change") )
  820. {
  821. format(szChannel, charsmax(szChannel), "^4[%s] %s", Prefix[Level[id]], szChannel)
  822. set_msg_arg_string(2, szChannel)
  823. }
  824. return
  825. }
  826. }
  827. }

_________________
My Steam:
KépKép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Szintrendszer(XP mód)
HozzászólásElküldve: 2014.05.20. 19:33 
Offline
Lelkes
Avatar

Csatlakozott: 2014.04.15. 13:58
Hozzászólások: 18
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 1 alkalommal
GOLO!! pls még valami , addoltam magamnak XP-t de véletlenul túl sokat (elfelejtettem hogy csak 3200 a max) és a vault miatt elmentette, hogy írjam bele a pluginba hogy nekem legyen 3200xpm hogy maradjon úgy ?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Szintrendszer(XP mód)
HozzászólásElküldve: 2014.06.14. 19:34 
Offline
Lelkes
Avatar

Csatlakozott: 2014.06.14. 19:09
Hozzászólások: 19
Megköszönt másnak: 1 alkalommal
Megköszönték neki: 1 alkalommal
Nem jött be


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Szintrendszer(XP mód)
HozzászólásElküldve: 2014.06.14. 19:55 
Offline
Újonc
Avatar

Csatlakozott: 2014.06.14. 19:17
Hozzászólások: 5
Megköszönt másnak: 3 alkalommal
Kicsit át írtam a rangokat köszi szépen tökéletes :)!


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  [ 39 hozzászólás ]  Oldal Előző 1 2 3 4 Következő


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 10 vendég


Nem nyithatsz 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