Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- #include <cstrike>
- #include <fun>
- #include <hamsandwich>
- /* Credite The Kalu pentru codurile de amx_give */
- #define NAME_LENGHT 33
- #define ADMIN_ACCESS ADMIN_RCON
- new const TAG[] = "^x04[Laleagane.Ro]^x01"
- /*------------------------------------------------*/
- new g_iUserSilverPoints[33], g_iUserGoldPoints[33]
- new File[128]
- enum {
- SILVER_KILL,
- SILVER_KNIFE,
- SILVER_HE,
- SILVER_HS_BONUS,
- SILVER_BMB_PLANT,
- SILVER_BMB_DEFUSE,
- MAX_VARS
- }
- new Config[MAX_VARS]
- public plugin_init()
- {
- register_plugin("Points System", "1.0", "SenorAMXX")
- /*-----------[EVENTURI]-----------*/
- register_event( "DeathMsg", "event_DeathMsg", "a" )
- /*-----------[CVARE]-----------*/
- Config[SILVER_KILL] = register_cvar("silver_kill_points", "10")
- Config[SILVER_KNIFE] = register_cvar("silver_knife_points", "50")
- Config[SILVER_HS_BONUS] = register_cvar("silver_hs_bonus", "50")
- Config[SILVER_HE] = register_cvar("silver_grenade_kill", "30")
- Config[SILVER_BMB_PLANT] = register_cvar("silver_bomb_planted", "35")
- Config[SILVER_BMB_DEFUSE] = register_cvar("silver_bomb_defused", "35")
- register_clcmd("say /points", "CheckPoints")
- register_clcmd("say /pall", "ShowPointsPlayers")
- register_concmd( "amx_give_gold" ,"give_gold", ADMIN_ACCESS, "< nume / @ALL / @T / @CT > < gold >" )
- register_concmd( "amx_give_silver" ,"give_silver", ADMIN_ACCESS, "< nume / @ALL / @T / @CT > < silver >" )
- new DataDir[ 64 ]
- get_datadir( DataDir, 63 )
- format( File, 127, "%s/JahkoPuncte.dat", DataDir )
- }
- public plugin_natives()
- {
- register_native("get_user_silver", "native_get_user_silver", 1)
- register_native("set_user_silver", "native_set_user_silver", 1)
- register_native("get_user_gold", "native_get_user_gold", 1)
- register_native("set_user_gold", "native_set_user_gold", 1)
- }
- public native_get_user_silver(id) return g_iUserSilverPoints[id]
- public native_set_user_silver(id,silver) g_iUserSilverPoints[id] = silver
- public native_get_user_gold(id) return g_iUserGoldPoints[id]
- public native_set_user_gold(id,gold) g_iUserGoldPoints[id] = gold
- public client_putinserver(id) LoadUserPoints(id)
- public client_disconnected(id) SaveUserPoints(id)
- public event_DeathMsg()
- {
- new iKiller = read_data(1)
- new iVictim = read_data(2)
- new iHS = read_data(3)
- new weapon = get_user_weapon(iKiller)
- if(!is_user_connected(iKiller) || !is_user_connected(iVictim))
- {
- return
- }
- if(iKiller == iVictim)
- {
- return
- }
- if(weapon == CSW_KNIFE)
- {
- if(iHS)
- {
- new a = get_pcvar_num(Config[SILVER_KNIFE])
- new b = get_pcvar_num(Config[SILVER_HS_BONUS])
- new sum = a+b
- g_iUserSilverPoints[iKiller] += sum
- print_color(iKiller, "%s You got ^x03[%d]^x01 silver points for giving HS with the KNIFE!",TAG,sum)
- SaveUserPoints(iKiller)
- }
- else
- {
- new a = get_pcvar_num(Config[SILVER_KNIFE])
- g_iUserSilverPoints[iKiller] += a
- print_color(iKiller, "%s You got ^x03[%d]^x01 silver points for killing someone with knife!",TAG,a)
- SaveUserPoints(iKiller)
- }
- }
- if(weapon == CSW_HEGRENADE)
- {
- new a = get_pcvar_num(Config[SILVER_HE])
- g_iUserSilverPoints[iKiller] += a
- print_color(iKiller, "%s You got ^x03[%d]^x01 silver points for killing someone with Grenade!",TAG,a)
- SaveUserPoints(iKiller)
- }
- if(iHS && !(weapon == CSW_KNIFE))
- {
- new a = get_pcvar_num(Config[SILVER_KILL])
- new b = get_pcvar_num(Config[SILVER_HS_BONUS])
- new sum = a+b
- g_iUserSilverPoints[iKiller] += sum
- print_color(iKiller, "%s You got ^x03[%d]^x01 silver points for HS!",TAG,sum)
- SaveUserPoints(iKiller)
- }
- else
- {
- new a = get_pcvar_num(Config[SILVER_KILL])
- g_iUserSilverPoints[iKiller] += a
- print_color(iKiller, "%s You got ^x03[%d]^x01 silver points for killing someone!",TAG,a)
- SaveUserPoints(iKiller)
- }
- }
- public bomb_planted(iExploder)
- {
- new a = get_pcvar_num(Config[SILVER_BMB_PLANT])
- new name[NAME_LENGHT]
- get_user_name(iExploder, name, charsmax(name))
- if(!is_user_connected(iExploder)) return PLUGIN_CONTINUE
- g_iUserSilverPoints[iExploder] += get_pcvar_num(Config[SILVER_BMB_PLANT])
- print_color(0, "%s ^x03%s^x01 got ^x03[%d]^x01 silver points for planting the bomb",TAG,name,a)
- SaveUserPoints(iExploder)
- return PLUGIN_CONTINUE
- }
- public bomb_defused(iDefuser)
- {
- new a = get_pcvar_num(Config[SILVER_BMB_DEFUSE])
- new name[33]
- get_user_name(iDefuser, name, charsmax(name))
- if(!is_user_connected(iDefuser)) return PLUGIN_CONTINUE
- g_iUserSilverPoints[iDefuser] += get_pcvar_num(Config[SILVER_BMB_DEFUSE])
- print_color(0, "%s ^x03%s^x01 got ^x03[%d]^x01 for defusing the bomb",TAG,name,a)
- SaveUserPoints(iDefuser)
- return PLUGIN_CONTINUE
- }
- public CheckPoints(id)
- {
- new a = g_iUserSilverPoints[id]
- new b = g_iUserGoldPoints[id]
- print_color(id, "%s You have ^x03[%d]^x01 silver points and ^x03[%d]^x01 gold points",TAG,a,b)
- }
- public SaveUserPoints(id) {
- new name[NAME_LENGHT]
- get_user_name(id, name, charsmax(name))
- static Data[1024]
- new x = g_iUserSilverPoints[id]
- new y = g_iUserGoldPoints[id]
- formatex(Data, sizeof(Data) - 1, "^"%d^" ^"%d^"",x,y)
- new Save[512]
- format(Save, 511, "^"%s^" %s", name, Data)
- new Line[128], Linie, IsPlayer = false, Arg1[32]
- new FileOpen = fopen(File, "rt")
- while(!feof(FileOpen)) {
- fgets(FileOpen, Line, 127)
- trim(Line)
- parse(Line, Arg1, 31)
- if(equali( Arg1, name)) {
- write_file(File, Save, Linie)
- IsPlayer = true
- break
- }
- Linie++
- }
- fclose(FileOpen)
- if(!IsPlayer) {
- write_file(File, Save, -1)
- }
- }
- public ShowPointsPlayers(id) {
- new iPlayers[32], iPlayersNum, szName[40], szMotd[1024], len
- len = formatex(szMotd, charsmax(szMotd), "<html> ")
- get_players(iPlayers, iPlayersNum)
- for( new i = 0 ; i < iPlayersNum ; i++ ) {
- if(is_user_bot(iPlayers[i])) return
- new b = g_iUserGoldPoints[iPlayers[i]]
- new a = g_iUserSilverPoints[iPlayers[i]]
- get_user_name( iPlayers[ i ], szName, charsmax( szName ) )
- len += formatex( szMotd[ len ], charsmax( szMotd ) - len, "<body style=^"background-color:dark;^"><br><center> <font color=white><bold>Name:</bold></font> <font color=yellow><bold>%s</bold></font> | <font color=grey><bold>Silver:</bold></font> <font color=#8A2BE2>%d</font> | <font color=#grey><bold>Gold:</bold></font> <font color=#8A2BE2>%d</font></body></center><br>", szName,a,b);
- }
- formatex(szMotd[len], charsmax(szMotd) - len, "</html>" );
- show_motd(id, szMotd);
- }
- public LoadUserPoints(id) {
- new name[NAME_LENGHT]
- get_user_name(id, name, charsmax(name))
- new Line[128], IsPlayer = false, Arg1[32], Arg2[32], Arg3[32]
- new FileOpen = fopen(File, "rt")
- while(!feof(FileOpen)) {
- fgets(FileOpen, Line, 127)
- trim(Line)
- parse(Line, Arg1, 31, Arg2, 31, Arg3, 31)
- if(equali(Arg1, name)) {
- g_iUserSilverPoints[id] = str_to_num(Arg2)
- g_iUserGoldPoints[id] = str_to_num(Arg3)
- IsPlayer = true
- break
- }
- }
- fclose(FileOpen)
- if(!IsPlayer) {
- g_iUserSilverPoints[id] = 1
- g_iUserGoldPoints[id] = 1
- }
- }
- public give_gold( id ) {
- if( !( get_user_flags( id ) & ADMIN_ACCESS ) ) {
- client_cmd( id, "echo Nu ai acces la aceasta comanda!" )
- return 1
- }
- new name[NAME_LENGHT]
- get_user_name(id, name, charsmax(name))
- new szFirstArg[ 32 ], szSecondArg[ 10 ];
- read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 )
- read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 )
- if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) ) {
- client_cmd( id, "echo amx_give_gold < nume / @ALL / @T / @CT > < gold >" )
- return 1
- }
- new iPlayers[ 32 ]
- new iPlayersNum
- new iPoints = str_to_num( szSecondArg )
- if( iPoints <= 0 ) {
- client_cmd( id, "echo Valoare Punctelor trebuie sa fie mai mare decat 0!" )
- return 1
- }
- if( szFirstArg[ 0 ] == '@' ) {
- switch ( szFirstArg[ 1 ] ) {
- case 'A': {
- if( equal( szFirstArg, "@ALL" ) ) {
- get_players( iPlayers, iPlayersNum, "ch" )
- for( new i = 0; i < iPlayersNum ; i++ )
- g_iUserGoldPoints[ iPlayers[ i ] ] += iPoints
- print_color(0, "%s Admin ^x03[%s]^x01 gave to all players ^03[%i]^01 gold !",TAG, name, iPoints)
- return 1
- }
- }
- case 'T': {
- if( equal( szFirstArg, "@T" ) ) {
- get_players( iPlayers, iPlayersNum, "ceh", "TERRORIST" )
- if( iPlayersNum == 0 ) {
- client_cmd( id, "echo Nu se afla niciun jucator in aceasta echipa!" )
- return 1
- }
- for( new i = 0; i < iPlayersNum ; i++ )
- g_iUserGoldPoints[ iPlayers[ i ] ] += iPoints
- print_color(0, "%s Admin ^x03[%s]^x01 gave to ^x03T^x01 team ^03[%i]^01 gold !",TAG, name, iPoints)
- return 1
- }
- }
- case 'C': {
- if( equal( szFirstArg, "@CT" ) ) {
- get_players( iPlayers, iPlayersNum, "ceh", "CT" )
- if( iPlayersNum == 0 ) {
- client_cmd( id, "echo Nu se afla niciun jucator in aceasta echipa!" )
- return 1
- }
- for( new i = 0; i < iPlayersNum ; i++ )
- g_iUserGoldPoints[ iPlayers[ i ] ] += iPoints
- print_color(0, "%s Admin ^x03[%s]^x01 gave to ^x03CT^x01 team ^03[%i]^01 gold !",TAG, name, iPoints)
- return 1
- }
- }
- }
- }
- new iPlayer = cmd_target( id, szFirstArg, 8 )
- if( !iPlayer ) {
- client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg )
- return 1
- }
- g_iUserGoldPoints[ iPlayer ] += iPoints
- new szName[ 32 ]
- get_user_name( iPlayer, szName, sizeof ( szName ) -1 )
- print_color(0, "%s Admin ^x03[%s]^x01 gave to ^x03[%s]^x01 -> ^03[%i]^01 gold !",TAG, name, szName, iPoints)
- return 1
- }
- public give_silver( id ) {
- if( !( get_user_flags( id ) & ADMIN_ACCESS ) ) {
- client_cmd( id, "echo Nu ai acces la aceasta comanda!" )
- return 1
- }
- new name[NAME_LENGHT]
- get_user_name(id, name, charsmax(name))
- new szFirstArg[ 32 ], szSecondArg[ 10 ]
- read_argv( 1, szFirstArg, sizeof ( szFirstArg ) -1 )
- read_argv( 2, szSecondArg, sizeof ( szSecondArg ) -1 )
- if( equal( szFirstArg, "" ) || equal( szSecondArg, "" ) ) {
- client_cmd( id, "echo amx_give_silver < nume / @ALL / @T / @CT > < silver >" )
- return 1;
- }
- new iPlayers[ 32 ];
- new iPlayersNum;
- new iPoints = str_to_num( szSecondArg );
- if( iPoints <= 0 ) {
- client_cmd( id, "echo Valoare Punctelor trebuie sa fie mai mare decat 0!" );
- return 1;
- }
- if( szFirstArg[ 0 ] == '@' ) {
- switch ( szFirstArg[ 1 ] ) {
- case 'A': {
- if( equal( szFirstArg, "@ALL" ) ) {
- get_players( iPlayers, iPlayersNum, "ch" )
- for( new i = 0; i < iPlayersNum ; i++ )
- g_iUserSilverPoints[ iPlayers[ i ] ] += iPoints
- print_color(0, "%s Admin ^x03[%s]^x01 gave to all players ^03[%i]^01 silver !",TAG, name, iPoints)
- return 1
- }
- }
- case 'T': {
- if( equal( szFirstArg, "@T" ) ) {
- get_players( iPlayers, iPlayersNum, "ceh", "TERRORIST" )
- if( iPlayersNum == 0 ) {
- client_cmd( id, "echo Nu se afla niciun jucator in aceasta echipa!" )
- return 1
- }
- for( new i = 0; i < iPlayersNum ; i++ )
- g_iUserSilverPoints[ iPlayers[ i ] ] += iPoints
- print_color(0, "%s Admin ^x03[%s]^x01 gave to ^x03T^x01 team ^03[%i]^01 silver !",TAG, name, iPoints)
- return 1
- }
- }
- case 'C': {
- if( equal( szFirstArg, "@CT" ) ) {
- get_players( iPlayers, iPlayersNum, "ceh", "CT" )
- if( iPlayersNum == 0 ) {
- client_cmd( id, "echo Nu se afla niciun jucator in aceasta echipa!" )
- return 1
- }
- for( new i = 0; i < iPlayersNum ; i++ )
- g_iUserSilverPoints[ iPlayers[ i ] ] += iPoints
- print_color(0, "%s Admin ^x03[%s]^x01 gave to ^x03CT^x01 team ^03[%i]^01 silver !",TAG, name, iPoints)
- return 1
- }
- }
- }
- }
- new iPlayer = cmd_target( id, szFirstArg, 8 )
- if( !iPlayer ) {
- client_cmd( id, "echo Jucatorul %s nu a fost gasit!", szFirstArg )
- return 1
- }
- g_iUserSilverPoints[ iPlayer ] += iPoints;
- new szName[ 32 ]
- get_user_name( iPlayer, szName, sizeof ( szName ) -1 )
- print_color(0, "%s Admin ^x03[%s]^x01 gave to ^x03[%s]^x01 -> ^03[%i]^01 gold !",TAG, name, szName, iPoints)
- return 1
- }
- stock print_color(id, const message[], {Float,Sql,Result,_}:...)
- {
- new Buffer[128],Buffer2[128]
- new players[32], index, num, i
- formatex(Buffer2, sizeof Buffer2 - 1, "%s",message)
- vformat(Buffer, sizeof Buffer - 1, Buffer2, 3)
- get_players(players, num,"c")
- if(id)
- {
- message_begin(MSG_ONE,get_user_msgid("SayText"),_,id)
- write_byte(id)
- write_string(Buffer)
- message_end()
- }
- else
- {
- for( i = 0; i < num;i++ )
- {
- index = players[i]
- if( !is_user_connected(index)) continue;
- message_begin(MSG_ONE,get_user_msgid("SayText"),_,index)
- write_byte(index)
- write_string( Buffer )
- message_end()
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement