Offline |
|
|
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 ] #include <amxmodx> #include <amxmisc> #include <nvault> #define MAXCLASSES 5 new PlayerXP[33],PlayerLevel[33],PlayerClass[33] //these are for special kills new XP_Kill,XP_Knife,XP_Hs,SaveXP //this is for Nvault. so that We can save XP new g_vault new const CLASSES[MAXCLASSES][] = { "None", "Newbie", "Average", "Hardcore", "Professional" } new const LEVELS[7] = { 0, 500,//this means you need 100 xp 1100,//this means you need 200 xp 2100,//this means you need 400 xp 3500,//so on 4100,//so on 5000 //so on } public plugin_init() { register_plugin("XPMod", "1.0", "Preetham") register_event("DeathMsg", "eDeath", "a") //is saving on? SaveXP = register_cvar("SaveXP","1") //how many xp are u gonna get per kill? XP_Kill=register_cvar("XP_per_kill", "10") //if you get a hs you get bonus xp XP_Hs=register_cvar("XP_hs_bonus","10") //if you make a knife kill you get bounus xp XP_Knife=register_cvar("XP_knife_bonus","20") //we just opened a new connection NVAULT connection // we will call it animod g_vault = nvault_open("animod") // register a say command to change class register_clcmd("say /class", "ChangeClass") register_clcmd("say_team /class", "ChangeClass") //show how much xp you have register_clcmd("say /xp", "ShowHud") register_clcmd("say_team /xp", "ShowHud") } public eDeath( ) { // Create a variable to store the attacker's id new attacker = read_data( 1 ) // We create the victim variable, so that this function can check // if a player was killed new iVictim = read_data( 2 ) // If a player was killed by a HeadShot, this will be used for the cvar Xp_Hs new headshot = read_data( 3 ) if(attacker == iVictim) return PLUGIN_HANDLED; //which weapon was used if(PlayerClass[attacker] == 0) return PLUGIN_CONTINUE new clip, ammo, weapon = get_user_weapon(attacker,clip,ammo); PlayerXP[attacker] += get_pcvar_num(XP_Kill) // used for the xp_hs cvar // it checks if the victim was killed by a headshot if(headshot) // give him/her bonus xp PlayerXP[attacker] += get_pcvar_num(XP_Hs) // checks if the victim was killed by a knife if(weapon == CSW_KNIFE) //give him/her bonus xp PlayerXP[attacker] += get_pcvar_num(XP_Knife) // this checks if the player has enough xp to advance to a new level while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]]) { // this will create the Congratulations message. client_print(attacker, print_chat, "[XP] You're on level %i %s!", PlayerLevel[attacker],CLASSES[PlayerClass[attacker]]) // Add his/her level PlayerLevel[attacker] += 1 } // shows his level on a hud message ShowHud(attacker) return PLUGIN_CONTINUE; } public ShowHud(id) { set_hudmessage(192, 192, 192, 0.0, 0.24, 0, 6.0, 15.0) show_hudmessage(id, "Level: %i^nXP: %i^nClass: %s",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[id]]) } public ChangeClass(id) { new menu = menu_create("Class Menu" , "Class_Handle"); menu_additem(menu ,"Newbie", "1" , 0); menu_additem(menu ,"Average", "2" , 0); menu_additem(menu ,"Hardcore", "3" , 0); menu_additem(menu ,"Professional", "4" , 0); menu_setprop(menu , MPROP_EXIT , MEXIT_ALL); menu_display(id , menu , 0); return PLUGIN_CONTINUE; } public Class_Handle(id , menu , item) { if(item == MENU_EXIT) { menu_destroy(menu); } new szCommand[6] , szName[64]; new access , callback; menu_item_getinfo(menu , item , access , szCommand , 5 , szName , 63 , callback); new i = str_to_num(szCommand) if(PlayerClass[id] != i) { PlayerClass[id] = i client_print(id,print_chat,"[LEVEL ANNOUNCER] You're on level %s",CLASSES[i]) } else { client_print(id,print_chat,"[LEVEL ANNOUNCER] You're alredy on %s",CLASSES[i]) } menu_destroy(menu); return PLUGIN_CONTINUE } public client_connect(id) { // Only does it if xp saving is on if(get_pcvar_num(SaveXP) == 1) { // load your player data LoadData(id) } } public client_disconnect(id) { // Only does it if xp saving is on if(get_pcvar_num(SaveXP) == 1) { // lets save the data SaveData(id) } } public SaveData(id) { // get the players steam id. We need this because we are saving by steam id new AuthID[35] get_user_authid(id,AuthID,34) new vaultkey[64],vaultdata[256] // format wat is going to be in the animal mod vault file format(vaultkey,63,"%s-Mod",AuthID) format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id]) // save the data nvault_set(g_vault,vaultkey,vaultdata) return PLUGIN_CONTINUE } public LoadData(id) { new AuthID[35] get_user_authid(id,AuthID,34) new vaultkey[64],vaultdata[256] // search format(vaultkey,63,"%s-Mod",AuthID) format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id]) // load the data nvault_get(g_vault,vaultkey,vaultdata,255) replace_all(vaultdata, 255, "#", " ") new playerxp[32], playerlevel[32] parse(vaultdata, playerxp, 31, playerlevel, 31) PlayerXP[id] = str_to_num(playerxp) PlayerLevel[id] = str_to_num(playerlevel) return PLUGIN_CONTINUE }
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. : #include <amxmodx> #include <amxmisc> #include <nvault> #include <fun> #include <cstrike> #include <fakemeta_util> #define PLUGIN "XP/LEVEL" #define VERSION "4.0" #define AUTHOR "ZiZox/hisoka" new g_level[32], g_level_data, g_frags_level, g_ScreenFade,SymbolsName new g_level_max, g_level_num, g_levels[32] new level_exp[32] new g_level_exp[32], g_exp_data, g_Players, nameid[32] new g_trime[32], g_MsgSync new sound_level_up[] = { "misc/level_up.wav"} const PEV_SPEC_TARGET = pev_iuser2 new SaveSystem public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) SaveSystem = register_cvar("fr_SaveSystem","1") g_frags_level = register_cvar("fr_level_frags", "10") g_level_max = register_cvar("fr_level_max", "150") g_level_num = register_cvar("fr_level_number", "1") g_level_data = nvault_open("fr_Leveling_Save") g_exp_data = nvault_open("fr_Exp_Save") SymbolsName = register_cvar("fr_name_symbols", "`") register_forward(FM_ClientUserInfoChanged, "ChangeName") register_event("StatusValue","show_status","be","1=2","2!0"); register_event("StatusValue","show_statusx","be","1=2","2!0"); register_event("HLTV", "Round_Start", "a", "1=0", "2=0") register_event("DeathMsg", "Frags_Manager", "a", "1>0") set_task(2.0,"System_Save",_,_,_,"b") g_ScreenFade = get_user_msgid( "ScreenFade" ) g_Players =get_maxplayers() g_MsgSync = CreateHudSyncObj() } //------| Change Name |------// public ChangeName(id, buffer) { if(!is_user_connected(id)) return FMRES_IGNORED; static Name[32], Val[32]; get_user_name(id, Name, sizeof Name - 1); engfunc(EngFunc_InfoKeyValue, buffer, "name", Val, sizeof Val - 1); if(equal(Val, Name)) return FMRES_IGNORED; set_task(0.2, "client_connect", id); return FMRES_SUPERCEDE; } public client_putinserver(id) { if(get_pcvar_num(SaveSystem)) System_Load(id) g_level_exp[id] = get_pcvar_num(g_frags_level) new name[32] g_trime[id] = false; nameid[id] = get_user_name(id, name, sizeof name - 1) if(is_user_alive(id)) { g_trime[id] = false; new n = 1; while( n != g_level[id] ) { n = n + 1; } } if( g_level[id] == 0) g_level[id] = 1; if( level_exp[id] == g_level[id] ) level_exp[id] = 0; if(g_level[id] < get_pcvar_num(g_level_num)) g_levels[id] = get_pcvar_num(g_level_num); else { if(g_level[id] != g_levels[id]) { new x = 1; while( g_level[id] > ( x * get_pcvar_num(g_level_num)) ) { x = x + 1; g_levels[id] = x * get_pcvar_num(g_level_num); } } } new y = 1; while( g_level[id] != y ) { y = y + 1; g_level_exp[id] = y * get_pcvar_num(g_frags_level); } } public client_connected(id) { System_Load(id) } public client_authorized(id) { System_Load(id) } public client_disconnect(id){ System_Save(id) remove_task(id) new name[32], player_nick[32] player_nick[id] = get_user_name(id, name, sizeof name - 1) if(player_nick[id] == nameid[id]) g_trime[id] = false; static sName[32]; get_user_name(id, sName, sizeof sName - 1); static sChars[32]; get_pcvar_string(SymbolsName, sChars, sizeof sChars - 1); for(new i = 0 ; i < strlen(sName) ; i++) { for(new j = 0 ; j < strlen(sChars) ; j++) { if(sName[i] == sChars[j]) { server_cmd("kick #%d ^"Numele tau contine caractere nepermise.^"", get_user_userid(id)); break; } } } } // Save System When Pausing The Plugin public plugin_pause() { new iPlayers[32], iNum get_players(iPlayers, iNum) for(new i; i<iNum; i++) System_Save(iPlayers[i]) } // Load System After Unpause The Plugin public plugin_unpause() { new iPlayers[32], iNum get_players(iPlayers, iNum) for(new i; i<iNum; i++) System_Load(iPlayers[i]) } public System_Save(id){ new key[64], data[256], data_exp[256], key_exp[64] new name[33] get_user_name(id,name,32) format(key, 63, "%s-/", name) format(data, 255, "%i#", g_level[id]) format(key_exp, 63, "%s-/", name) format(data_exp, 255, "%i#", level_exp[id]) nvault_set(g_level_data, key, data) nvault_set(g_exp_data, key_exp, data_exp) return PLUGIN_CONTINUE; } public System_Load(id) { new key[64], data[256], data_exp[256], key_exp[64] new name[33] get_user_name(id,name,32) format(key, 63, "%s-/", name) format(data, 255, "%i#", g_level[id]) format(key_exp, 63, "%s-/", name) format(data_exp, 255, "%i#", level_exp[id]) nvault_get(g_level_data, key, data, 255) nvault_get(g_exp_data, key_exp, data_exp, 255) replace_all(data, 255, "#", " ") replace_all(data_exp, 255, "#", " ") new givelevel[32], give_exp[32] parse(data, givelevel, 31) parse(data_exp, give_exp, 31) g_level[id] = str_to_num(givelevel) level_exp[id] = str_to_num(give_exp) set_task(1.0 ,"level_status", id, _, _, "b") return PLUGIN_CONTINUE; } /*------------------------------------- Level System ---------------------------------------------------------*/ public Round_Start() { for(new id=1;id<=g_Players;id++) set_task(3.0, "Level", id) } public Level(id) { if(is_user_alive(id) ) { g_trime[id] = false; new n = 1; while( n < g_level[id] ) { n = n + 1 } } } public Frags_Manager() { new aname[32], attacker; attacker = read_data(1) new y; y = 1; get_user_name(attacker, aname, sizeof aname - 1) if( ( level_exp[attacker] >= (g_level_exp[attacker] - 1) ) && (g_level[attacker] <= get_pcvar_num(g_level_max)) && is_user_alive(attacker) ) { g_level[attacker] = g_level[attacker] + 1; level_exp[attacker] = 0; while( g_level[attacker] != y ) { y = y + 1; g_level_exp[attacker] = y * get_pcvar_num(g_frags_level); } message_begin(MSG_ONE_UNRELIABLE, g_ScreenFade, _, attacker) write_short(1<<12) // duration write_short(1) // hold time write_short(0x0000) // fade type write_byte(1) // red write_byte(200) // green write_byte(0) // blue write_byte(205) // alpha message_end() emit_sound(attacker, CHAN_STREAM, sound_level_up, 1.0, ATTN_NORM, 0, PITCH_HIGH ) set_hudmessage(0, 200, 0, 0.65, 0.5, 0, 0.0, 3.0, 2.0, 1.0, -1) show_hudmessage(0, "%s has cut down %i level", aname, g_level[attacker]) System_Save(attacker); } else { if(g_level[attacker] == get_pcvar_num(g_level_max)) Chat9olor(attacker, "^x04you have reached a maximum level: ^4%i", g_level[attacker] ) level_exp[attacker] = level_exp[attacker] + 1; if(get_pcvar_num(SaveSystem)) System_Save(attacker); } } /*-----------------------------------------Hud Message----------------------------------------------------------*/ public level_status(id) { new Spec Spec = pev(id, PEV_SPEC_TARGET) new PlayerName[32] get_user_name(Spec, PlayerName, 31) if(is_user_alive(id)) { if(cs_get_user_team(id) == CS_TEAM_CT) { set_hudmessage(10, 180, 10, -1.0, 0.87, 0, 6.0, 1.1) ShowSyncHudMsg(id, g_MsgSync, "[ Class : Counter-Terrorist ]^n [ Level : %d ] - [ Exp %d/%d ]",g_level[id],level_exp[id],g_level_exp[id]) } if(cs_get_user_team(id) == CS_TEAM_T) { set_hudmessage(10, 180, 10, -1.0, 0.87, 0, 6.0, 1.1) ShowSyncHudMsg(id, g_MsgSync, "[ Class : Terrorist ]^n [ Level : %d ] - [ Exp %d/%d ]",g_level[id],level_exp[id],g_level_exp[id]) } } else if(is_user_alive(Spec)) { if(cs_get_user_team(id) == CS_TEAM_CT) { set_hudmessage(200, 30, 200, -1.0, 0.79, 0, 6.0, 1.1) 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]) } if(cs_get_user_team(id) == CS_TEAM_T) { set_hudmessage(200, 30, 200, -1.0, 0.79, 0, 6.0, 1.1) 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]) } } } public show_status(id) { new name[32],pid = read_data(2) get_user_name(pid,name,31) new idAiming, iBodyPart get_user_aiming(id, idAiming, iBodyPart) if(is_user_alive(idAiming) && is_user_alive(id)) { if(cs_get_user_team(id) == CS_TEAM_CT && cs_get_user_team(idAiming) == CS_TEAM_CT) { set_hudmessage(238,201,0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1) 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]) } else if(cs_get_user_team(id) == CS_TEAM_T && cs_get_user_team(idAiming) == CS_TEAM_T) { set_hudmessage(255,0,0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1) 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]) } } } public show_statusx(id) { new name[32],pid = read_data(2) get_user_name(pid,name,31) new idAiming, iBodyPart get_user_aiming(id, idAiming, iBodyPart) if(is_user_alive(idAiming) && is_user_alive(id)) { if(cs_get_user_team(id) == CS_TEAM_T && cs_get_user_team(idAiming) == CS_TEAM_CT) { set_hudmessage(238, 201, 0,-1.0,0.60,1, 0.01, 3.0, 0.01, 0.01, -1) 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]) } } } stock Chat9olor(const id, const input[], any:...) { new count = 1, players[ 32 ] static msg[ 191 ] vformat( msg, 190, input, 3 ) replace_all( msg, 190, "!g", "^4" ) replace_all( msg, 190, "!y", "^1" ) replace_all( msg, 190, "!t", "^3" ) if(id) players[ 0 ] = id; else get_players( players, count, "ch" ) { for(new i = 0; i < count; i++) { if( is_user_connected( players[ i ] ) ) { message_begin( MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[ i ] ) write_byte( players[ i ] ) write_string( msg ) message_end( ) } } } }
KÉP:
Csatolmányok: |
asdsadsad.png [ 8.37 KiB | Megtekintve 343 alkalommal ]
|
_________________ ˘^Kezdő vagyok!!^ˇ
|
|