hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.06.16. 22:42



Jelenlévő felhasználók

Jelenleg 393 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 393 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  [ 4 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: XP mod, Beleírás.
HozzászólásElküldve: 2015.02.25. 17:35 
Offline
Fanatikus
Avatar

Csatlakozott: 2015.01.19. 20:54
Hozzászólások: 170
Megköszönt másnak: 13 alkalommal
Megköszönték neki: 3 alkalommal
Sziasztok! valaki ebbe a modba még írna egy olyat hogy hudba irja azt ami ott lent van a képen.
MÓD: SMA Forráskód: [ Mindet kijelol ]
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <nvault>
  4.  
  5. #define MAXCLASSES 5
  6.  
  7. new PlayerXP[33],PlayerLevel[33],PlayerClass[33]
  8. //these are for special kills
  9. new XP_Kill,XP_Knife,XP_Hs,SaveXP
  10. //this is for Nvault. so that We can save XP
  11. new g_vault
  12.  
  13. new const CLASSES[MAXCLASSES][] = {
  14. "None",
  15. "Newbie",
  16. "Average",
  17. "Hardcore",
  18. "Professional"
  19. }
  20.  
  21. new const LEVELS[7] = {
  22. 0,
  23. 500,//this means you need 100 xp
  24. 1100,//this means you need 200 xp
  25. 2100,//this means you need 400 xp
  26. 3500,//so on
  27. 4100,//so on
  28. 5000 //so on
  29. }
  30.  
  31. public plugin_init()
  32. {
  33. register_plugin("XPMod", "1.0", "Preetham")
  34. register_event("DeathMsg", "eDeath", "a")
  35. //is saving on?
  36. SaveXP = register_cvar("SaveXP","1")
  37. //how many xp are u gonna get per kill?
  38. XP_Kill=register_cvar("XP_per_kill", "10")
  39. //if you get a hs you get bonus xp
  40. XP_Hs=register_cvar("XP_hs_bonus","10")
  41. //if you make a knife kill you get bounus xp
  42. XP_Knife=register_cvar("XP_knife_bonus","20")
  43. //we just opened a new connection NVAULT connection
  44. // we will call it animod
  45. g_vault = nvault_open("animod")
  46. // register a say command to change class
  47. register_clcmd("say /class", "ChangeClass")
  48. register_clcmd("say_team /class", "ChangeClass")
  49. //show how much xp you have
  50. register_clcmd("say /xp", "ShowHud")
  51. register_clcmd("say_team /xp", "ShowHud")
  52. }
  53.  
  54. public eDeath( )
  55. {
  56. // Create a variable to store the attacker's id
  57. new attacker = read_data( 1 )
  58. // We create the victim variable, so that this function can check
  59. // if a player was killed
  60. new iVictim = read_data( 2 )
  61. // If a player was killed by a HeadShot, this will be used for the cvar Xp_Hs
  62. new headshot = read_data( 3 )
  63.  
  64. if(attacker == iVictim)
  65. return PLUGIN_HANDLED;
  66. //which weapon was used
  67.  
  68. if(PlayerClass[attacker] == 0)
  69. return PLUGIN_CONTINUE
  70.  
  71. new clip, ammo, weapon = get_user_weapon(attacker,clip,ammo);
  72. PlayerXP[attacker] += get_pcvar_num(XP_Kill)
  73. // used for the xp_hs cvar
  74. // it checks if the victim was killed by a headshot
  75. if(headshot)
  76. // give him/her bonus xp
  77. PlayerXP[attacker] += get_pcvar_num(XP_Hs)
  78. // checks if the victim was killed by a knife
  79. if(weapon == CSW_KNIFE)
  80. //give him/her bonus xp
  81. PlayerXP[attacker] += get_pcvar_num(XP_Knife)
  82. // this checks if the player has enough xp to advance to a new level
  83.  
  84. while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
  85. { // this will create the Congratulations message.
  86. client_print(attacker, print_chat, "[XP] You're on level %i %s!", PlayerLevel[attacker],CLASSES[PlayerClass[attacker]])
  87. // Add his/her level
  88. PlayerLevel[attacker] += 1
  89. }
  90. // shows his level on a hud message
  91. ShowHud(attacker)
  92. return PLUGIN_CONTINUE;
  93.  
  94. }
  95.  
  96. public ShowHud(id)
  97. {
  98. set_hudmessage(192, 192, 192, 0.0, 0.24, 0, 6.0, 15.0)
  99. show_hudmessage(id, "Level: %i^nXP: %i^nClass: %s",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[id]])
  100. }
  101.  
  102. public ChangeClass(id)
  103. {
  104. new menu = menu_create("Class Menu" , "Class_Handle");
  105. menu_additem(menu ,"Newbie", "1" , 0);
  106. menu_additem(menu ,"Average", "2" , 0);
  107. menu_additem(menu ,"Hardcore", "3" , 0);
  108. menu_additem(menu ,"Professional", "4" , 0);
  109. menu_setprop(menu , MPROP_EXIT , MEXIT_ALL);
  110. menu_display(id , menu , 0);
  111. return PLUGIN_CONTINUE;
  112. }
  113.  
  114. public Class_Handle(id , menu , item)
  115. {
  116. if(item == MENU_EXIT)
  117. {
  118. menu_destroy(menu);
  119. }
  120. new szCommand[6] , szName[64]; new access , callback;
  121. menu_item_getinfo(menu , item , access , szCommand , 5 , szName , 63 , callback);
  122. new i = str_to_num(szCommand)
  123. if(PlayerClass[id] != i)
  124. {
  125. PlayerClass[id] = i
  126. client_print(id,print_chat,"[LEVEL ANNOUNCER] You're on level %s",CLASSES[i])
  127. }
  128. else
  129. {
  130. client_print(id,print_chat,"[LEVEL ANNOUNCER] You're alredy on %s",CLASSES[i])
  131. }
  132. menu_destroy(menu);
  133. return PLUGIN_CONTINUE
  134. }
  135.  
  136. public client_connect(id)
  137. {
  138. // Only does it if xp saving is on
  139. if(get_pcvar_num(SaveXP) == 1)
  140. {
  141. // load your player data
  142. LoadData(id)
  143. }
  144. }
  145.  
  146. public client_disconnect(id)
  147. {
  148. // Only does it if xp saving is on
  149. if(get_pcvar_num(SaveXP) == 1)
  150. {
  151. // lets save the data
  152. SaveData(id)
  153. }
  154. }
  155.  
  156. public SaveData(id)
  157. {
  158. // get the players steam id. We need this because we are saving by steam id
  159. new AuthID[35]
  160. get_user_authid(id,AuthID,34)
  161. new vaultkey[64],vaultdata[256]
  162. // format wat is going to be in the animal mod vault file
  163. format(vaultkey,63,"%s-Mod",AuthID)
  164. format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
  165. // save the data
  166. nvault_set(g_vault,vaultkey,vaultdata)
  167. return PLUGIN_CONTINUE
  168. }
  169.  
  170. public LoadData(id)
  171. {
  172. new AuthID[35]
  173. get_user_authid(id,AuthID,34)
  174. new vaultkey[64],vaultdata[256]
  175. // search
  176. format(vaultkey,63,"%s-Mod",AuthID)
  177. format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
  178. // load the data
  179. nvault_get(g_vault,vaultkey,vaultdata,255)
  180. replace_all(vaultdata, 255, "#", " ")
  181. new playerxp[32], playerlevel[32]
  182. parse(vaultdata, playerxp, 31, playerlevel, 31)
  183. PlayerXP[id] = str_to_num(playerxp)
  184. PlayerLevel[id] = str_to_num(playerlevel)
  185. return PLUGIN_CONTINUE
  186. }

aki megcsinálja kap egy gombot :) Előre is köszi :)


itt van az is amivel kéne egybe írni , ebbe van az amit a képen látsz. :
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <nvault>
  4. #include <fun>
  5. #include <cstrike>
  6. #include <fakemeta_util>
  7.  
  8. #define PLUGIN "XP/LEVEL"
  9. #define VERSION "4.0"
  10. #define AUTHOR "ZiZox/hisoka"
  11.  
  12. new g_level[32], g_level_data, g_frags_level, g_ScreenFade,SymbolsName
  13. new g_level_max, g_level_num, g_levels[32]
  14. new level_exp[32]
  15. new g_level_exp[32], g_exp_data, g_Players, nameid[32]
  16. new g_trime[32], g_MsgSync
  17. new sound_level_up[] = { "misc/level_up.wav"}
  18. const PEV_SPEC_TARGET = pev_iuser2
  19. new SaveSystem
  20.  
  21. public plugin_init()
  22. {
  23. register_plugin(PLUGIN, VERSION, AUTHOR)
  24.  
  25. SaveSystem = register_cvar("fr_SaveSystem","1")
  26.  
  27.  
  28. g_frags_level = register_cvar("fr_level_frags", "10")
  29. g_level_max = register_cvar("fr_level_max", "150")
  30. g_level_num = register_cvar("fr_level_number", "1")
  31.  
  32. g_level_data = nvault_open("fr_Leveling_Save")
  33. g_exp_data = nvault_open("fr_Exp_Save")
  34.  
  35. SymbolsName = register_cvar("fr_name_symbols", "`")
  36.  
  37. register_forward(FM_ClientUserInfoChanged, "ChangeName")
  38.  
  39. register_event("StatusValue","show_status","be","1=2","2!0");
  40. register_event("StatusValue","show_statusx","be","1=2","2!0");
  41. register_event("HLTV", "Round_Start", "a", "1=0", "2=0")
  42. register_event("DeathMsg", "Frags_Manager", "a", "1>0")
  43. set_task(2.0,"System_Save",_,_,_,"b")
  44.  
  45. g_ScreenFade = get_user_msgid( "ScreenFade" )
  46. g_Players =get_maxplayers()
  47. g_MsgSync = CreateHudSyncObj()
  48. }
  49.  
  50.  
  51.  
  52.  
  53.  
  54. //------| Change Name |------//
  55. public ChangeName(id, buffer) {
  56. if(!is_user_connected(id))
  57. return FMRES_IGNORED;
  58.  
  59. static Name[32], Val[32];
  60. get_user_name(id, Name, sizeof Name - 1);
  61. engfunc(EngFunc_InfoKeyValue, buffer, "name", Val, sizeof Val - 1);
  62.  
  63. if(equal(Val, Name))
  64. return FMRES_IGNORED;
  65.  
  66. set_task(0.2, "client_connect", id);
  67. return FMRES_SUPERCEDE;
  68. }
  69.  
  70.  
  71. public client_putinserver(id)
  72. {
  73.  
  74. if(get_pcvar_num(SaveSystem))
  75. System_Load(id)
  76. g_level_exp[id] = get_pcvar_num(g_frags_level)
  77. new name[32]
  78. g_trime[id] = false;
  79. nameid[id] = get_user_name(id, name, sizeof name - 1)
  80. if(is_user_alive(id))
  81. {
  82. g_trime[id] = false;
  83. new n = 1;
  84. while( n != g_level[id] )
  85. {
  86. n = n + 1;
  87. }
  88. }
  89. if( g_level[id] == 0) g_level[id] = 1;
  90. if( level_exp[id] == g_level[id] ) level_exp[id] = 0;
  91. if(g_level[id] < get_pcvar_num(g_level_num))
  92. g_levels[id] = get_pcvar_num(g_level_num);
  93. else
  94. {
  95. if(g_level[id] != g_levels[id])
  96. {
  97. new x = 1;
  98. while( g_level[id] > ( x * get_pcvar_num(g_level_num)) )
  99. {
  100. x = x + 1;
  101. g_levels[id] = x * get_pcvar_num(g_level_num);
  102. }
  103. }
  104. }
  105. new y = 1;
  106. while( g_level[id] != y )
  107. {
  108. y = y + 1;
  109. g_level_exp[id] = y * get_pcvar_num(g_frags_level);
  110. }
  111. }
  112.  
  113. public client_connected(id) {
  114. System_Load(id)
  115. }
  116. public client_authorized(id) {
  117. System_Load(id)
  118. }
  119. public client_disconnect(id){
  120.  
  121. System_Save(id)
  122. remove_task(id)
  123. new name[32], player_nick[32]
  124. player_nick[id] = get_user_name(id, name, sizeof name - 1)
  125. if(player_nick[id] == nameid[id])
  126. g_trime[id] = false;
  127.  
  128. static sName[32];
  129. get_user_name(id, sName, sizeof sName - 1);
  130. static sChars[32];
  131. get_pcvar_string(SymbolsName, sChars, sizeof sChars - 1);
  132. for(new i = 0 ; i < strlen(sName) ; i++) {
  133. for(new j = 0 ; j < strlen(sChars) ; j++) {
  134. if(sName[i] == sChars[j]) {
  135. server_cmd("kick #%d ^"Numele tau contine caractere nepermise.^"", get_user_userid(id));
  136. break;
  137. }
  138. }
  139. }
  140. }
  141.  
  142. // Save System When Pausing The Plugin
  143. public plugin_pause()
  144. {
  145. new iPlayers[32], iNum
  146. get_players(iPlayers, iNum)
  147. for(new i; i<iNum; i++)
  148. System_Save(iPlayers[i])
  149. }
  150.  
  151. // Load System After Unpause The Plugin
  152. public plugin_unpause()
  153. {
  154. new iPlayers[32], iNum
  155. get_players(iPlayers, iNum)
  156. for(new i; i<iNum; i++)
  157. System_Load(iPlayers[i])
  158. }
  159. public System_Save(id){
  160. new key[64], data[256], data_exp[256], key_exp[64]
  161. new name[33]
  162. get_user_name(id,name,32)
  163.  
  164. format(key, 63, "%s-/", name)
  165. format(data, 255, "%i#", g_level[id])
  166.  
  167. format(key_exp, 63, "%s-/", name)
  168. format(data_exp, 255, "%i#", level_exp[id])
  169.  
  170. nvault_set(g_level_data, key, data)
  171. nvault_set(g_exp_data, key_exp, data_exp)
  172.  
  173. return PLUGIN_CONTINUE;
  174.  
  175. }
  176.  
  177. public System_Load(id)
  178. {
  179.  
  180. new key[64], data[256], data_exp[256], key_exp[64]
  181. new name[33]
  182. get_user_name(id,name,32)
  183.  
  184. format(key, 63, "%s-/", name)
  185. format(data, 255, "%i#", g_level[id])
  186.  
  187. format(key_exp, 63, "%s-/", name)
  188. format(data_exp, 255, "%i#", level_exp[id])
  189.  
  190. nvault_get(g_level_data, key, data, 255)
  191. nvault_get(g_exp_data, key_exp, data_exp, 255)
  192.  
  193. replace_all(data, 255, "#", " ")
  194. replace_all(data_exp, 255, "#", " ")
  195.  
  196. new givelevel[32], give_exp[32]
  197. parse(data, givelevel, 31)
  198. parse(data_exp, give_exp, 31)
  199.  
  200. g_level[id] = str_to_num(givelevel)
  201. level_exp[id] = str_to_num(give_exp)
  202.  
  203. set_task(1.0 ,"level_status", id, _, _, "b")
  204. return PLUGIN_CONTINUE;
  205. }
  206. /*------------------------------------- Level System ---------------------------------------------------------*/
  207. public Round_Start()
  208. {
  209. for(new id=1;id<=g_Players;id++)
  210. set_task(3.0, "Level", id)
  211.  
  212. }
  213.  
  214. public Level(id)
  215. {
  216. if(is_user_alive(id) )
  217. {
  218. g_trime[id] = false;
  219. new n = 1;
  220. while( n < g_level[id] )
  221. {
  222. n = n + 1
  223. }
  224. }
  225. }
  226.  
  227. public Frags_Manager()
  228. {
  229. new aname[32], attacker; attacker = read_data(1)
  230. new y; y = 1;
  231. get_user_name(attacker, aname, sizeof aname - 1)
  232. if( ( level_exp[attacker] >= (g_level_exp[attacker] - 1) ) && (g_level[attacker] <= get_pcvar_num(g_level_max)) && is_user_alive(attacker) )
  233. {
  234. g_level[attacker] = g_level[attacker] + 1;
  235. level_exp[attacker] = 0;
  236. while( g_level[attacker] != y )
  237. {
  238. y = y + 1;
  239. g_level_exp[attacker] = y * get_pcvar_num(g_frags_level);
  240. }
  241. message_begin(MSG_ONE_UNRELIABLE, g_ScreenFade, _, attacker)
  242. write_short(1<<12) // duration
  243. write_short(1) // hold time
  244. write_short(0x0000) // fade type
  245. write_byte(1) // red
  246. write_byte(200) // green
  247. write_byte(0) // blue
  248. write_byte(205) // alpha
  249. message_end()
  250. emit_sound(attacker, CHAN_STREAM, sound_level_up, 1.0, ATTN_NORM, 0, PITCH_HIGH )
  251. set_hudmessage(0, 200, 0, 0.65, 0.5, 0, 0.0, 3.0, 2.0, 1.0, -1)
  252. show_hudmessage(0, "%s has cut down %i level", aname, g_level[attacker])
  253. System_Save(attacker);
  254. }
  255. else
  256. {
  257. if(g_level[attacker] == get_pcvar_num(g_level_max))
  258. Chat9olor(attacker, "^x04you have reached a maximum level: ^4%i", g_level[attacker] )
  259. level_exp[attacker] = level_exp[attacker] + 1;
  260. if(get_pcvar_num(SaveSystem))
  261. System_Save(attacker);
  262. }
  263. }
  264.  
  265. /*-----------------------------------------Hud Message----------------------------------------------------------*/
  266.  
  267. public level_status(id)
  268. {
  269. new Spec
  270. Spec = pev(id, PEV_SPEC_TARGET)
  271. new PlayerName[32]
  272. get_user_name(Spec, PlayerName, 31)
  273.  
  274. if(is_user_alive(id))
  275. {
  276.  
  277. if(cs_get_user_team(id) == CS_TEAM_CT)
  278. {
  279. set_hudmessage(10, 180, 10, -1.0, 0.87, 0, 6.0, 1.1)
  280. ShowSyncHudMsg(id, g_MsgSync, "[ Class : Counter-Terrorist ]^n [ Level : %d ] - [ Exp %d/%d ]",g_level[id],level_exp[id],g_level_exp[id])
  281. }
  282.  
  283. if(cs_get_user_team(id) == CS_TEAM_T)
  284. {
  285. set_hudmessage(10, 180, 10, -1.0, 0.87, 0, 6.0, 1.1)
  286. ShowSyncHudMsg(id, g_MsgSync, "[ Class : Terrorist ]^n [ Level : %d ] - [ Exp %d/%d ]",g_level[id],level_exp[id],g_level_exp[id])
  287. }
  288.  
  289. }
  290.  
  291. else
  292.  
  293. if(is_user_alive(Spec))
  294. {
  295.  
  296. if(cs_get_user_team(id) == CS_TEAM_CT)
  297. {
  298. set_hudmessage(200, 30, 200, -1.0, 0.79, 0, 6.0, 1.1)
  299. ShowSyncHudMsg(id, g_MsgSync, "Spectating: %s ^n [ Class : Counter-Terrorist ]^n [ Level : %d ] - [ Exp %d/%d ]",PlayerName,g_level[Spec],level_exp[Spec],g_level_exp[Spec])
  300. }
  301.  
  302. if(cs_get_user_team(id) == CS_TEAM_T)
  303. {
  304. set_hudmessage(200, 30, 200, -1.0, 0.79, 0, 6.0, 1.1)
  305. ShowSyncHudMsg(id, g_MsgSync, "Spectating: %s ^n [ Class : Terrorist ]^n [ Level : %d ] - [ Exp %d/%d ]",PlayerName,g_level[Spec],level_exp[Spec],g_level_exp[Spec])
  306. }
  307.  
  308. }
  309. }
  310. public show_status(id)
  311. {
  312. new name[32],pid = read_data(2)
  313. get_user_name(pid,name,31)
  314. new idAiming, iBodyPart
  315. get_user_aiming(id, idAiming, iBodyPart)
  316.  
  317. if(is_user_alive(idAiming) && is_user_alive(id))
  318. {
  319. if(cs_get_user_team(id) == CS_TEAM_CT && cs_get_user_team(idAiming) == CS_TEAM_CT)
  320. {
  321. set_hudmessage(238,201,0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1)
  322. show_hudmessage(id, "%s ^n [ Health: %d - Class: Counter-Terrorist - Armor: %d - Money: %d ]^n Level : %i - Exp : %i/%i", name,get_user_health(pid),get_user_armor(pid),cs_get_user_money(pid),g_level[pid],level_exp[pid],g_level_exp[pid])
  323. }
  324. else
  325. if(cs_get_user_team(id) == CS_TEAM_T && cs_get_user_team(idAiming) == CS_TEAM_T)
  326. {
  327. set_hudmessage(255,0,0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1)
  328. show_hudmessage(id, "%s ^n [ Health: %d - Class: Terrorist - Armor: %d - Money: %d ]^n Level : %i - Exp : %i/%i", name,get_user_health(pid),get_user_armor(pid),cs_get_user_money(pid),g_level[pid],level_exp[pid],g_level_exp[pid])
  329. }
  330. }
  331. }
  332. public show_statusx(id)
  333. {
  334. new name[32],pid = read_data(2)
  335. get_user_name(pid,name,31)
  336. new idAiming, iBodyPart
  337. get_user_aiming(id, idAiming, iBodyPart)
  338.  
  339. if(is_user_alive(idAiming) && is_user_alive(id))
  340. {
  341. if(cs_get_user_team(id) == CS_TEAM_T && cs_get_user_team(idAiming) == CS_TEAM_CT)
  342. {
  343. set_hudmessage(238, 201, 0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1)
  344. show_hudmessage(id, "%s ^n [ Elet: %d - Class: Counter-Terrorist - Armor: %d - Money: %d ]^n Level : %i - Exp : %i/%i", name,get_user_health(pid),get_user_armor(pid),cs_get_user_money(pid),g_level[pid],level_exp[pid],g_level_exp[pid])
  345. }
  346. }
  347. }
  348. stock Chat9olor(const id, const input[], any:...)
  349. {
  350. new count = 1, players[ 32 ]
  351. static msg[ 191 ]
  352. vformat( msg, 190, input, 3 )
  353. replace_all( msg, 190, "!g", "^4" )
  354. replace_all( msg, 190, "!y", "^1" )
  355. replace_all( msg, 190, "!t", "^3" )
  356. if(id) players[ 0 ] = id; else get_players( players, count, "ch" )
  357. {
  358. for(new i = 0; i < count; i++)
  359. {
  360. if( is_user_connected( players[ i ] ) )
  361. {
  362. message_begin( MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[ i ] )
  363. write_byte( players[ i ] )
  364. write_string( msg )
  365. message_end( )
  366. }
  367. }
  368. }
  369. }
  370.  


KÉP:


Csatolmányok:
asdsadsad.png
asdsadsad.png [ 8.37 KiB | Megtekintve 343 alkalommal ]

_________________
Kép

˘^Kezdő vagyok!!^ˇ
Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: XP mod, Beleírás.
HozzászólásElküldve: 2015.02.27. 11:53 
Offline
Tud valamit
Avatar

Csatlakozott: 2014.12.19. 23:49
Hozzászólások: 100
Megköszönt másnak: 19 alkalommal
Megköszönték neki: 23 alkalommal
Úgy is jó, ha külön-külön be rakod a szerverre a pluginokat.. Ha neked így jó akkor írok külön egy olyan plugint ami írja hudba a cuccokat :)

_________________
[mozgo]^^^ [.:~Be4tBox~:.] ^^^[/mozgo]


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: XP mod, Beleírás.
HozzászólásElküldve: 2015.02.27. 11:55 
Offline
Fanatikus
Avatar

Csatlakozott: 2015.01.19. 20:54
Hozzászólások: 170
Megköszönt másnak: 13 alkalommal
Megköszönték neki: 3 alkalommal
beatboxhunterr írta:
Úgy is jó, ha külön-külön be rakod a szerverre a pluginokat.. Ha neked így jó akkor írok külön egy olyan plugint ami írja hudba a cuccokat :)

király lenne Meg köszönném :)

_________________
Kép

˘^Kezdő vagyok!!^ˇ


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: XP mod, Beleírás.
HozzászólásElküldve: 2015.02.27. 16:08 
Offline
Jómunkásember

Csatlakozott: 2012.01.29. 12:48
Hozzászólások: 408
Megköszönt másnak: 15 alkalommal
Megköszönték neki: 126 alkalommal
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <nvault>
  4. #include <fakemeta_util>
  5.  
  6. #define MAXCLASSES 5
  7.  
  8. new hud_uzenet
  9.  
  10.  
  11.  
  12. new PlayerXP[33],PlayerLevel[33],PlayerClass[33]
  13. //these are for special kills
  14. new XP_Kill,XP_Knife,XP_Hs,SaveXP
  15. //this is for Nvault. so that We can save XP
  16. new g_vault
  17.  
  18. const PEV_SPEC_TARGET = pev_iuser2
  19.  
  20. new const CLASSES[MAXCLASSES][] = {
  21. "None",
  22. "Newbie",
  23. "Average",
  24. "Hardcore",
  25. "Professional"
  26. }
  27.  
  28. new const LEVELS[7] = {
  29. 0,
  30. 500,//this means you need 100 xp
  31. 1100,//this means you need 200 xp
  32. 2100,//this means you need 400 xp
  33. 3500,//so on
  34. 4100,//so on
  35. 5000 //so on
  36. }
  37. public plugin_init()
  38. {
  39. register_plugin("XPMod", "1.0", "Preetham")
  40. register_event("DeathMsg", "eDeath", "a")
  41. //is saving on?
  42. SaveXP = register_cvar("SaveXP","1")
  43. //how many xp are u gonna get per kill?
  44. XP_Kill=register_cvar("XP_per_kill", "10")
  45. //if you get a hs you get bonus xp
  46. XP_Hs=register_cvar("XP_hs_bonus","10")
  47. //if you make a knife kill you get bounus xp
  48. XP_Knife=register_cvar("XP_knife_bonus","20")
  49. //we just opened a new connection NVAULT connection
  50. // we will call it animod
  51. g_vault = nvault_open("animod")
  52. // register a say command to change class
  53. register_clcmd("say /class", "ChangeClass")
  54. register_clcmd("say_team /class", "ChangeClass")
  55. //show how much xp you have
  56. hud_uzenet = CreateHudSyncObj()
  57.  
  58.  
  59. }
  60.  
  61. public eDeath( )
  62. {
  63. // Create a variable to store the attacker's id
  64. new attacker = read_data( 1 )
  65. // We create the victim variable, so that this function can check
  66. // if a player was killed
  67. new iVictim = read_data( 2 )
  68. // If a player was killed by a HeadShot, this will be used for the cvar Xp_Hs
  69. new headshot = read_data( 3 )
  70.  
  71. if(attacker == iVictim)
  72. return PLUGIN_HANDLED;
  73. //which weapon was used
  74.  
  75. if(PlayerClass[attacker] == 0)
  76. return PLUGIN_CONTINUE
  77.  
  78. new clip, ammo, weapon = get_user_weapon(attacker,clip,ammo);
  79. PlayerXP[attacker] += get_pcvar_num(XP_Kill)
  80. // used for the xp_hs cvar
  81. // it checks if the victim was killed by a headshot
  82. if(headshot)
  83. // give him/her bonus xp
  84. PlayerXP[attacker] += get_pcvar_num(XP_Hs)
  85. // checks if the victim was killed by a knife
  86. if(weapon == CSW_KNIFE)
  87. //give him/her bonus xp
  88. PlayerXP[attacker] += get_pcvar_num(XP_Knife)
  89. // this checks if the player has enough xp to advance to a new level
  90.  
  91. while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
  92. { // this will create the Congratulations message.
  93. client_print(attacker, print_chat, "[XP] You're on level %i %s!", PlayerLevel[attacker],CLASSES[PlayerClass[attacker]])
  94. // Add his/her level
  95. PlayerLevel[attacker] += 1
  96. }
  97.  
  98. return PLUGIN_CONTINUE
  99.  
  100. }
  101. public ShowHud(id)
  102. {
  103. new spec
  104. spec = pev(id, PEV_SPEC_TARGET)
  105. new PlayerName[32]
  106. get_user_name(spec, PlayerName, 31)
  107.  
  108. if(is_user_alive(id))
  109. {
  110. set_hudmessage(0, 255, 0, -1.0, 0.87, 0, 6.0, 1.1)
  111. ShowSyncHudMsg(id, hud_uzenet, "[ Osztaly : %s ]^n[ Szint: %i ] - [ XP: %i/%i ]", CLASSES[PlayerClass[id]], PlayerLevel[id],PlayerXP[id], LEVELS[PlayerLevel[id]] )
  112. }
  113. else if(is_user_alive(spec))
  114. {
  115. set_hudmessage(200, 30, 200, -1.0, 0.79, 0, 6.0, 1.1)
  116. ShowSyncHudMsg(id, hud_uzenet, "Nezed : %s ^n[ Osztaly : %s ]^n[ Szint: %i ] - [ XP: %i/%i ]", PlayerName, CLASSES[PlayerClass[spec]], PlayerLevel[spec],PlayerXP[spec], LEVELS[PlayerLevel[spec]] )
  117. }
  118. }
  119. public ChangeClass(id)
  120. {
  121. new menu = menu_create("Class Menu" , "Class_Handle");
  122. menu_additem(menu ,"Newbie", "1" , 0);
  123. menu_additem(menu ,"Average", "2" , 0);
  124. menu_additem(menu ,"Hardcore", "3" , 0);
  125. menu_additem(menu ,"Professional", "4" , 0);
  126. menu_setprop(menu , MPROP_EXIT , MEXIT_ALL);
  127. menu_display(id , menu , 0);
  128. return PLUGIN_CONTINUE;
  129. }
  130.  
  131. public Class_Handle(id , menu , item)
  132. {
  133. if(item == MENU_EXIT)
  134. {
  135. menu_destroy(menu);
  136. }
  137. new szCommand[6] , szName[64]; new access , callback;
  138. menu_item_getinfo(menu , item , access , szCommand , 5 , szName , 63 , callback);
  139. new i = str_to_num(szCommand)
  140. if(PlayerClass[id] != i)
  141. {
  142. PlayerClass[id] = i
  143. client_print(id,print_chat,"[LEVEL ANNOUNCER] You're on level %s",CLASSES[i])
  144. }
  145. else
  146. {
  147. client_print(id,print_chat,"[LEVEL ANNOUNCER] You're alredy on %s",CLASSES[i])
  148. }
  149. menu_destroy(menu);
  150. return PLUGIN_CONTINUE
  151. }
  152.  
  153. public client_connect(id)
  154. {
  155. // Only does it if xp saving is on
  156. if(get_pcvar_num(SaveXP) == 1)
  157. {
  158. // load your player data
  159. LoadData(id)
  160. }
  161. }
  162.  
  163. public client_disconnect(id)
  164. {
  165. // Only does it if xp saving is on
  166. if(get_pcvar_num(SaveXP) == 1)
  167. {
  168. // lets save the data
  169. SaveData(id)
  170. }
  171. }
  172.  
  173. public SaveData(id)
  174. {
  175. // get the players steam id. We need this because we are saving by steam id
  176. new AuthID[35]
  177. get_user_authid(id,AuthID,34)
  178. new vaultkey[64],vaultdata[256]
  179. // format wat is going to be in the animal mod vault file
  180. format(vaultkey,63,"%s-Mod",AuthID)
  181. format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
  182. // save the data
  183. nvault_set(g_vault,vaultkey,vaultdata)
  184. return PLUGIN_CONTINUE
  185. }
  186.  
  187. public LoadData(id)
  188. {
  189. new AuthID[35]
  190. get_user_authid(id,AuthID,34)
  191. new vaultkey[64],vaultdata[256]
  192. // search
  193. format(vaultkey,63,"%s-Mod",AuthID)
  194. format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
  195. // load the data
  196. nvault_get(g_vault,vaultkey,vaultdata,255)
  197. replace_all(vaultdata, 255, "#", " ")
  198. new playerxp[32], playerlevel[32]
  199. parse(vaultdata, playerxp, 31, playerlevel, 31)
  200. PlayerXP[id] = str_to_num(playerxp)
  201. PlayerLevel[id] = str_to_num(playerlevel)
  202. set_task( 1.0, "ShowHud", id, _, _, "b" );
  203. return PLUGIN_CONTINUE
  204. }

 


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  [ 4 hozzászólás ] 


Ki van itt

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