Offline |
|
Csatlakozott: 2016.02.28. 12:29 Hozzászólások: 23
Megköszönt másnak: 3 alkalommal Megköszönték neki: 1 alkalommal
|
Desti Bacsi írta: #include <amxmodx> #include <amxmisc> #include <colorchat> #include <fun> #include <nvault> #include <hamsandwich> #define PREFIX "[...]" new gExp[33], gLvl[33], gSpecs[33]; new gCvarKill, gCvarHs, gCvarSui, gCvarWin, gCvarLoose; new gVault; new const Specs[][] = { "Newbie", "Regular", "ModeRate", "Semi-Pro", "OptiMax" } new const Levels[] = { 0, 25, 50, 75, 100, 125, 150, 175, 200, 235, 270, 310, 350, 375, 400, 425, 450, 485, 520, 555, 600 } new const CTWin[][] = { "2=%!MRAD_ctwin", "2=%!MRAD_BOMBDEF", "2=%!MRAD_rescued" } public plugin_init() { register_plugin("Exp-Mod", "1.0", "Rtk.Esc") register_event( "DeathMsg", "DeathEvent", "a" ) register_event( "SendAudio", "TwinEvent", "a", "2=%!MRAD_terwin" ) for(new i; i < sizeof(CTWin); i++) register_event( "SendAudio", "CwinEvent", "a", CTWin[i] ) RegisterHam( Ham_Spawn, "player", "HamSpawnEvent", 1 ) gCvarKill = register_cvar("exp_kill", "20") gCvarHs = register_cvar("exp_headshot","10") gCvarSui = register_cvar("exp_suicide", "10") gCvarWin = register_cvar("exp_win", "10") gCvarLoose = register_cvar("exp_loose", "5") register_clcmd("say /xp", "showExp") register_clcmd("say /info", "showInfo") gVault = nvault_open("exp") } public SaveExp(id) { new SteamID[35] get_user_authid(id, SteamID, 34) new vaultkey[64],vaultdata[256] format(vaultkey, 63, "%s-Mod", SteamID) format(vaultdata, 255, "%i#%i#%i#", gExp[id], gLvl[id], gSpecs[id]) nvault_set(gVault, vaultkey, vaultdata) return PLUGIN_CONTINUE } public LoadExp( id ) { new SteamID[35] get_user_authid(id, SteamID, 34) new vaultkey[64],vaultdata[256] format(vaultkey, 63, "%s-Mod", SteamID) format(vaultdata, 255, "%i#%i#%i#", gExp[id], gLvl[id], gSpecs[id]) nvault_get(gVault,vaultkey,vaultdata,255) replace_all(vaultdata, 255, "#", " ") new exp[32], lvl[32], specs[32] parse(vaultdata, exp, 31, lvl, 31, specs, 31) gExp[id] = str_to_num(exp) gLvl[id] = str_to_num(lvl) gSpecs[id] = str_to_num(specs) return PLUGIN_CONTINUE; } public client_authorized(id) { LoadExp(id) } public client_disconnect(id) { SaveExp(id) gExp[id] = 0; gLvl[id] = 0; gSpecs[id] = 0; } public DeathEvent() { new iAtkr = read_data(1) new iVict = read_data(2) new iSuic = read_data(0) new AtkrTeam = get_user_team(iAtkr) new VictTeam = get_user_team(iVict) if(is_user_bot(iAtkr) || AtkrTeam == VictTeam) { return PLUGIN_HANDLED; } if(iSuic) { gExp[iSuic] -= get_pcvar_num(gCvarSui) SaveExp(iSuic) return PLUGIN_HANDLED; } if(AtkrTeam != VictTeam) { gExp[iAtkr] += get_pcvar_num(gCvarKill) if(read_data(3)) { gExp[iAtkr] += get_pcvar_num(gCvarHs) } } while(gExp[iAtkr] >= Levels[gLvl[iAtkr]]) { gLvl[iAtkr] += 1; ColorChat(iAtkr, GREEN, "%sCongratulations! You grew to level %i!", PREFIX, gLvl[iAtkr]); if(gLvl[iAtkr] == 5 || 10 || 15 || 20) { rankUp(iAtkr); } } SaveExp(iAtkr) return PLUGIN_CONTINUE; } public TwinEvent( ) { for ( new id = 1; id <= 32; ++id ) { if(get_user_team(id) == 2 ) { gExp[id] -= get_pcvar_num(gCvarLoose) SaveExp(id) return PLUGIN_HANDLED; } if( get_user_team ( id ) == 1 ) { gExp[id] += get_pcvar_num( gCvarWin ) while( gExp[id] >= Levels[gLvl[id]] ) { gLvl[id] += 1; ColorChat(id, GREEN, "%sCongratulations! You grew to level %i!", PREFIX, gLvl[id]); if(gLvl[id] == 5 || 10 || 15 || 20) { rankUp(id); } SaveExp( id ); } } } return PLUGIN_HANDLED; } public CwinEvent( ) { for ( new id = 1; id <= 32; ++id ) { if(get_user_team(id) == 1 ) { gExp[id] -= get_pcvar_num(gCvarLoose) SaveExp(id) return PLUGIN_HANDLED; } if( get_user_team ( id ) == 2 ) { gExp[id] += get_pcvar_num( gCvarWin ) while( gExp[id] >= Levels[gLvl[id]] ) { gLvl[id] += 1; ColorChat(id, GREEN, "%sCongratulations! You grew to level %i!", PREFIX, gLvl[id]); if(gLvl[id] == 5 || 10 || 15 || 20) { rankUp(id); } SaveExp( id ); } } } return PLUGIN_HANDLED; } public HamSpawnEvent(id) { if(gLvl[id] >= 5) set_user_health(id, 105) if(gLvl[id] >= 8) set_user_health(id, 110) if(gLvl[id] >= 12) set_user_health(id, 120) if(gLvl[id] >= 15) set_user_health(id, 130) if(gLvl[id] >= 18) { set_user_health(id, 135) give_item(id, "weapon_hegrenade") } if(gLvl[id] >= 21) { set_user_health(id, 140); give_item(id, "weapon_hegrenade"); give_item(id, "weapon_awp"); } } public showExp(id) { set_hudmessage(255, 0, 0, 0.01, 0.17, 0, 6.0, 12.0) show_hudmessage(id, "[%s]Exp: %i Lvl: %i", Specs[gSpecs[id]], gExp[id], gLvl[id]) } public showInfo(id) { set_hudmessage(255, 0, 0, 0.01, 0.17, 0, 6.0, 12.0) show_hudmessage(id, "[%s]Exp:%i/%i Lvl: %i", Specs[gSpecs[id]], gExp[id], Levels[gLvl[id] + 1], gLvl[id]) } public rankUp(id) { if(gLvl[id] == 5) { gSpecs[id] = 1; ColorChat(id, GREEN, "%sYou grew to %s", PREFIX, Specs[gSpecs[id]]) } if(gLvl[id] == 10) { gSpecs[id] = 2; ColorChat(id, GREEN, "%sYou grew to %s", PREFIX, Specs[gSpecs[id]]) } if(gLvl[id] == 15) { gSpecs[id] = 3; ColorChat(id, GREEN, "%sYou grew to %s", PREFIX, Specs[gSpecs[id]]) } if(gLvl[id] == 20) { gSpecs[id] = 4; ColorChat(id, GREEN, "%sYou grew to %s", PREFIX, Specs[gSpecs[id]]) } } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1053\\ f0\\ fs16 \n\\ par } */
|
|