Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- #include <hamsandwich>
- #include <cstrike>
- #include <SINI>
- #include <fakemeta>
- #define XPFORKILL 5
- #define XPFORPREMIUM 10
- new Exp[33]
- new Level[33]
- new const Explevels[] =
- {
- 100, // Level 1 //
- 200, // Level 2 //
- 400, // Level 3 //
- 600, // Level 4 //
- 900, // Level 5 //
- 1200, // Level 6 //
- 1500, // Level 7 //
- 1900, // Level 8 //
- 2500, // Level 9 //
- 3000, // Level 10 //
- 4000, // Level 11 //
- 5000, // Level 12 //
- 6000, // Level 13 //
- 7000, // Level 14 //
- 8000, // Level 15 //
- 9000, // Level 16 //
- 10000, // Level 17 //
- 11000, // Level 18 //
- 12000, // Level 19 //
- 13000, // Level 20 //
- 14000, // Level 21 //
- 15000, // Level 22 //
- 16000, // Level 23 //
- 17000, // Level 24 //
- 18000, // Level 25 //
- 19000, // Level 26 //
- 20000, // Level 27 //
- 21000, // Level 28 //
- 22000, // Level 29 //
- 24000 // Level 30 //
- }
- new KnifeLook[33]
- enum _:Knifes
- {
- ModelPath[40],
- Levels[40],
- Levelss[40],
- KnifeName[40],
- KnifeLevel[40]
- }
- new const Knife[][Knifes] =
- {
- {"models/aGressivEn/v_knife1.mdl", "1",1,"Normal Boxer", "\w[\r Level 1+\w ]"},
- {"models/aGressivEn/v_knife2.mdl", "2",2,"Sharp Knife", "\w[\r Level 2+\w ]"},
- {"models/aGressivEn/v_knife3.mdl", "3",3,"Taser", "\w[\r Level 3+\w ]"},
- {"models/aGressivEn/v_knife4.mdl", "4",4,"Nigger", "\w[\r Level 4+\w ]"},
- {"models/aGressivEn/v_knife5.mdl", "5",5,"Dragon Boxer", "\w[\r Level 5+\w ]"},
- {"models/aGressivEn/v_knife6.mdl", "6",6,"Assasin Dagger", "\w[\r Level 6+\w ]"},
- {"models/aGressivEn/v_knife7.mdl", "7",7,"Dual Tiger Knife", "\w[\r Level 7+\w ]"},
- {"models/aGressivEn/v_knife8.mdl", "8",8,"Ghost", "\w[\r Level 8+\w ]"},
- {"models/aGressivEn/v_knife9.mdl", "9",9,"Holy Knife", "\w[\r Level 9+\w ]"},
- {"models/aGressivEn/v_knife10.mdl", "10",10,"Anonymous", "\w[\r Level 10+\w ]"},
- {"models/aGressivEn/v_knife11.mdl", "11",11,"Void Weapon", "\w[\r Level 11+\w ]"},
- {"models/aGressivEn/v_knife12.mdl", "12",12,"Cyborg", "\w[\r Level 12+\w ]"},
- {"models/aGressivEn/v_knife13.mdl", "13",13,"Long Sword", "\w[\r Level 13+\w ]"},
- {"models/aGressivEn/v_knife14.mdl", "14",14,"Assasin", "\w[\r Level 14+\w ]"},
- {"models/aGressivEn/v_knife15.mdl", "15",15,"Swift Lightsaber", "\w[\r Level 15+\w ]"},
- {"models/aGressivEn/v_knife16.mdl", "16",16,"Nigger 2", "\w[\r Level 16+\w ]"},
- {"models/aGressivEn/v_knife17.mdl", "17",17,"Murderous Sword", "\w[\r Level 17+\w ]"},
- {"models/aGressivEn/v_knife18.mdl", "18",18,"Red Scorpion", "\w[\r Level 18+\w ]"},
- {"models/aGressivEn/v_knife19.mdl", "19",19,"Light Machete", "\w[\r Level 19+\w ]"},
- {"models/aGressivEn/v_knife20.mdl", "20",20,"Machanical Knife", "\w[\r Level 20+\w ]"},
- {"models/aGressivEn/v_knife21.mdl", "21",21,"Neo", "\w[\r Level 21+\w ]"},
- {"models/aGressivEn/v_knife22.mdl", "22",22,"Silver Axe", "\w[\r Level 22+\w ]"},
- {"models/aGressivEn/v_knife23.mdl", "23",23,"Red Ninja", "\w[\r Level 23+\w ]"},
- {"models/aGressivEn/v_knife24.mdl", "24",24,"Katana Sword", "\w[\r Level 24+\w ]"},
- {"models/aGressivEn/v_knife25.mdl", "25",25,"Dragon Sword", "\w[\r Level 25+\w ]"},
- {"models/aGressivEn/v_knife26.mdl", "26",26,"Ninja Terrorist", "\w[\r Level 26+\w ]"},
- {"models/aGressivEn/v_knife27.mdl", "27",27,"Gold Axe", "\w[\r Level 27+\w ]"},
- {"models/aGressivEn/v_knife28.mdl", "28",28,"Holiday Knife", "\w[\r Level 28+\w ]"},
- {"models/aGressivEn/v_knife29.mdl", "29",29,"Legendary Sword", "\w[\r Level 29+\w ]"},
- {"models/aGressivEn/v_knife30.mdl", "30",30,"Crystal Blade", "\w[\r Level 30+\w ]"}
- }
- public plugin_init() {
- register_plugin("AwpLevel", "1.0", "Ido")
- RegisterHam(Ham_Killed,"player","fw_HamPlayerKilled",1)
- register_clcmd("say","SayCmd")
- register_event( "CurWeapon", "eventCur", "be", "1=1" )
- register_clcmd("say /knifes", "KnifeMenu")
- register_clcmd("say /knife", "KnifeMenu")
- }
- public plugin_precache(){
- for(new i;i < sizeof Knife;i++)
- {
- precache_model(Knife[i][ModelPath])
- }
- }
- public eventCur(client)
- {
- if(get_user_weapon(client) == CSW_KNIFE)
- {
- if(Level[client] > 0)
- {
- set_pev(client, pev_viewmodel2, Knife[KnifeLook[client]][ModelPath]);
- }
- }
- }
- public KnifeMenu(id)
- {
- new FormatTemp[65];
- formatex(FormatTemp, charsmax(FormatTemp), "\r[\y aGressivEn \r]\w Knife Menu")
- new Menu = menu_create(FormatTemp, "KnifeMenu_ha")
- for( new i; i < sizeof Knife; i++)
- {
- formatex(FormatTemp, charsmax(FormatTemp), "%s %s %s", Knife[ i ][ KnifeName ], Knife[ i ][ KnifeLevel ], Knife[i][Levelss] == Level[id] || Knife[i][Levelss] < Level[id] ? "- \rUnlocked":"- \dLocked" )
- menu_additem(Menu, FormatTemp)
- }
- menu_display( id, Menu, 0 );
- return PLUGIN_HANDLED;
- }
- public KnifeMenu_ha( id, Menu, key )
- {
- if( key == MENU_EXIT )
- {
- menu_destroy( Menu );
- return 1;
- }
- else
- {
- if(Knife[key][Levelss] == Level[id] || Knife[key][Levelss] < Level[id])
- {
- KnifeLook[id] = key
- ColorChat(id,"^1You^1 have ^1selected ^4Knife ^3%i ^1!",key+1)
- }
- else ColorChat(id, "^1You ^1Need ^1To ^1be ^3Level ^4%i ^1To ^1use ^1this ^4knife",Knife[key][Levelss])
- }
- return 1;
- }
- public SayCmd(client)
- {
- new Msg[192],Arg[64],Args[64],Argss[64]
- read_args(Msg,191)
- remove_quotes(Msg)
- parse(Msg,Arg,63,Args,63,Argss,63)
- if(equali(Arg, "/level") || (equali(Arg, "/xp") ))
- {
- new player = cmd_target(player,Args,8)
- if(player)
- {
- ColorChat(client,"^4%s^1 Level: ^3[^4%i^3] ^3| ^1Exp ^3[^4%i^3] ^3| ^1Next ^1Exp ^3[^4%i^3]",GetUserName(player),Level[player],Exp[player],Explevels[Level[player]] - Exp[player])
- }
- else
- {
- ColorChat(client,"^1Your Level: ^3[^4%i^3] ^3| ^1Exp ^3[^4%i^3] ^3| ^1Next ^1Exp ^3[^4%i^3]",Level[client],Exp[client],Explevels[Level[client]] - Exp[client])
- }
- return 1;
- }
- if(equali(Arg,"/setxp"))
- {
- if(!(get_user_flags(client) & ADMIN_IMMUNITY))
- {
- ColorChat(client,"^1You have no ^4access^1 to this ^4command!")
- return 1;
- }
- new player = cmd_target(player,Args,8)
- if(!player)
- {
- ColorChat(client,"^3There^1 is no ^3such ^4player!")
- return 1;
- }
- new Amount = str_to_num(Argss)
- if(!Amount)
- {
- ColorChat(client,"^1You^1 must ^3type^1 a ^4number!")
- return 1;
- }
- if(player && Amount)
- {
- Exp[player] = Amount;
- ColorChat(0,"^3Admin : ^3%s^1, setted ^3%s^1 xp to ^4%i",GetUserName(client),GetUserName(player),Amount)
- if(Exp[player] >= Explevels[Level[player]])
- {
- Level[player] += 1;
- ColorChat(0,"^3%s^1, ^3grown^1 to level ^4%i",GetUserName(player),Level[player]);
- }
- }
- return 1;
- }
- if(equali(Arg,"/setlevel"))
- {
- if(!(get_user_flags(client) & ADMIN_IMMUNITY))
- {
- ColorChat(client,"You have no ^4access^1 to this ^4command!")
- return 1;
- }
- new player = cmd_target(player,Args,8)
- if(!player)
- {
- ColorChat(client,"^4There^1 is no ^3such ^4player!")
- return 1;
- }
- new Amount = str_to_num(Argss)
- if(!Amount)
- {
- ColorChat(client,"^4You^1 must ^3type^1 a ^4number!")
- return 1;
- }
- if(player && Amount)
- {
- Level[player] = Amount;
- ColorChat(0,"^3Admin : ^4%s^1, setted ^3%s^1 level to ^4%i",GetUserName(client),GetUserName(player),Amount)
- }
- return 1;
- }
- return 0;
- }
- public client_authorized(client)
- {
- LoadLevels(client);
- }
- public client_disconnect(client)
- {
- SaveLevels(client);
- }
- public SaveLevels(client)
- {
- if(SINI_Exists(PlayerFile(client)))
- {
- SINI_Open(PlayerFile(client))
- SINI_WriteInt("Level",Level[client])
- SINI_WriteInt("Exp",Exp[client])
- SINI_WriteInt("KnifeLook", KnifeLook[client]);
- SINI_Save();
- SINI_Close();
- }
- }
- public LoadLevels(client)
- {
- if(SINI_Exists(PlayerFile(client)))
- {
- SINI_Open(PlayerFile(client))
- SINI_ReadInt("Level",Level[client])
- SINI_ReadInt("Exp",Exp[client])
- SINI_ReadInt("KnifeLook", KnifeLook[client]);
- SINI_Save();
- }
- else
- {
- SINI_Create(PlayerFile(client))
- if(SINI_Exists(PlayerFile(client)))
- {
- SINI_Open(PlayerFile(client))
- SINI_WriteInt("Level",0)
- SINI_WriteInt("Exp",0)
- SINI_WriteInt("KnifeLook", 0);
- SINI_Save();
- }
- }
- SINI_Close();
- }
- public fw_HamPlayerKilled(victim,attacker,shouldgib)
- {
- if(is_user_alive(attacker))
- {
- if(!(get_user_flags(attacker) & ADMIN_LEVEL_C))
- {
- ColorChat(attacker,"^3You^4 gained ^1%i xp for ^4kill!",XPFORKILL);
- Exp[attacker] += XPFORKILL;
- CheckLevels(attacker);
- SaveLevels(attacker);
- return 1;
- }
- else
- {
- ColorChat(attacker,"^3You^4 gained ^1%i xp for ^4kill!",XPFORPREMIUM);
- Exp[attacker] += XPFORPREMIUM;
- CheckLevels(attacker);
- SaveLevels(attacker);
- return 1;
- }
- CheckLevels(attacker)
- }
- return 0;
- }
- public CheckLevels(index)
- {
- if(Exp[index] >= Explevels[Level[index]])
- {
- Level[index] += 1;
- set_hudmessage(255, 255, 255, 0.02, -1.0, 0, 6.0, 12.0)
- show_hudmessage(0, "%s grown to level %i",GetUserName(index),Level[index])
- return 1;
- }
- return 1;
- }
- stock ColorChat(const id, const string[], {Float, Sql, Resul,_}:...)
- {
- new msg[191], players[32], count = 1;
- static len; len = formatex(msg, charsmax(msg), "^4[^3 aGressivEn ^4]^1 ");
- vformat(msg[len], charsmax(msg) - len, string, 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();
- }
- }
- }
- stock GetUserName( const Index )
- {
- static gName[ 32 ];
- get_user_name( Index, gName, charsmax( gName ) );
- return gName;
- }
- stock PlayerFile(client)
- {
- new pFile[120];
- format(pFile, 120, "addons/amxmodx/data/KnifeLevels/%s.ini", GetSteamID(client));
- return pFile;
- }
- stock GetSteamID(client)
- {
- new pSteam[50];
- get_user_authid(client, pSteam, 50);
- replace_all(pSteam, 50, ":", "_");
- return pSteam;
- }
- stock get_randomplayer()
- {
- static players[32], pnum;
- get_players(players, pnum, "ch");
- return players[random(pnum)];
- }
- stock GetName(id)
- {
- static szName[33];
- get_user_name(id, szName, charsmax(szName));
- return szName;
- }
- /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
- *{\\ rtf1\\ fbidis\\ ansi\\ ansicpg1252\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset0 Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ ltrpar\\ lang1037\\ f0\\ fs16 \n\\ par }
- */
Advertisement
Add Comment
Please, Sign In to add comment