PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include < ColorChat >
#include <dhudmessage>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define ADMIN_ACCESS ADMIN_IMMUNITY
new const g_szTag[] = "^1[^4BG^1]"
new Credite[ 33 ];
new File[ 128 ];
enum _:iCvars {
PointsPerHS,
Pointskiller,
}
new g_iCvar[ iCvars ];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event( "DeathMsg", "event_DeathMsg", "a" );
g_iCvar[ PointsPerHS ] = register_cvar( "credite_per_headshot", "6" );
g_iCvar[ Pointskiller ] = register_cvar( "credite_killer", "3" );
new DataDir[ 64 ];
get_datadir( DataDir, 63 );
format( File, 127, "%s/CrediteSystem.dat", DataDir );
register_clcmd("say /credite", "show_credite");
register_concmd( "rs_credite", "rs_credite", ADMIN_ACCESS, "< name / @ALL >" );
register_concmd( "give_credite" ,"ClCmdGiveCredite", ADMIN_ACCESS, "< name / @ALL / @T / @CT > < Credite >" );
}
public plugin_natives( )
{
register_native( "get_credite", "native_get_user_credite", 1 );
register_native( "set_credite", "native_set_user_credite", 1 );
}
public native_get_user_credite( id )
{
return Credite[ id ];
}
public native_set_user_credite( id, credite )
{
Credite[ id ] = credite;
}
public client_putinserver(id)
{
LoadUserCredite( id );
}
public client_disconnect(id)
{
SaveUserCredite( id );
}
public event_DeathMsg( ) {
new iKiller = read_data( 1 );
new iVictim = read_data( 2 );
new iHeadshot = read_data( 3 );
if( !is_user_connected( iKiller ) || !is_user_connected( iVictim ) ) {
return;
}
if( iKiller == iVictim ) {
return;
}
if( iHeadshot ) {
Credite[ iKiller ] += get_pcvar_num( g_iCvar[ PointsPerHS ] );
set_hudmessage( random( 255 ), random( 255 ), random( 255 ), 0.4, 0.4, 1, 6.0, 7.0 );
show_hudmessage( iKiller, "+%i Credite", get_pcvar_num( g_iCvar[ PointsPerHS ] ) );
}
else {
Credite[ iKiller ]+= get_pcvar_num( g_iCvar[ Pointskiller ] );
set_hudmessage( random( 255 ), random( 255 ), random( 255 ), 0.4, 0.4, 0, 6.0, 7.0 );
show_hudmessage( iKiller, "+%i Credite", get_pcvar_num( g_iCvar[ Pointskiller ] ) );
}
}
public SaveUserCredite( id ) {
new Name[ 32 ];
get_user_name( id, Name, 31 );
static Data[ 1024 ];
formatex( Data, sizeof( Data ) - 1, "^"%i^"", Credite[ id ] );
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 LoadUserCredite( id ) {
new Name[ 32 ];
get_user_name( id, Name, 31 );
new Line[ 128 ], IsPlayer = false, Arg1[ 32 ], Arg2[ 32 ]
new FileOpen = fopen( File, "rt" );
while( !feof( FileOpen ) ) {
fgets( FileOpen, Line, 127 );
trim( Line );
parse( Line, Arg1, 31, Arg2, 31 );
if( equali( Arg1, Name ) ) {
Credite[ id ] = str_to_num( Arg2 );
IsPlayer = true;
break;
}
}
fclose( FileOpen );
if( !IsPlayer ) {
Credite[ id ] = 1;
}
}
public show_credite(id)
{
new menu = menu_create("\r[Menu] \wShow Players Kill:", "credite_handle");
new name[32], pid[32], players[32], text[555 char],pnum, tempid;
get_players(players, pnum, "c");
for(new i; i< pnum; i++)
{
tempid = players[i];
get_user_name(tempid, name, charsmax(name));
formatex(text, charsmax(text), "%s : \w( \y%i \rCredite\w )", name, Credite[tempid]);
num_to_str(get_user_userid(tempid), pid, 9);
menu_additem(menu, text, pid, 0);
}
menu_display(id, menu);
return PLUGIN_CONTINUE;
}
public credite_handle(id, menu, item)
{
if(item == MENU_EXIT) return PLUGIN_HANDLED;
show_credite(id);
return PLUGIN_CONTINUE;
}
public ClCmdGiveCredite( id ) {
if( !( get_user_flags( id ) & ADMIN_ACCESS ) ) {
client_cmd( id, "echo Nu ai acces la aceasta comanda!" );
return 1;
}
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 give_credite < nume / @ALL / @T / @CT > < credite >" );
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++ )
Credite[ iPlayers[ i ] ] += iPoints;
ColorChat ( 0, TEAM_COLOR, "^x04^%s^x04 Owner^x04 %s^x01 Give^x04 %i Credite^x01 ALL Player", g_szTag, get_name( id ), iPoints );
set_dhudmessage(0, 255, 0, -1.0, 0.4, 0, 0.0, 15.0, 1.0, 1.0, false)
show_dhudmessage(0,"Owner %s Give %i Credite ALL Player", get_name( id ), iPoints )
}
}
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++ )
Credite[ iPlayers[ i ] ] += iPoints;
ColorChat ( 0, TEAM_COLOR, "^x04^%s^x01 Owner^x04 %s^x01 Give^x04 %i Credite^x01 Team^x04 TERO^x01!", g_szTag, get_name( id ), 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++ )
Credite[ iPlayers[ i ] ] += iPoints;
ColorChat ( 0, TEAM_COLOR, "^x04^%s^x01 Owner^x04 %s^x01 Give^x04 %i Credite^x01 Team^x04 CT^x01!", g_szTag, get_name( id ), 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;
}
Credite[ iPlayer ] += iPoints;
new szName[ 32 ];
get_user_name( iPlayer, szName, sizeof ( szName ) -1 );
ColorChat ( 0, TEAM_COLOR, "^x04%s^x01 Owner^x04 %s^x01 Give^x04 %i Credite^x01 lui^x04 %s^x01.", g_szTag, get_name( id ), iPoints, szName );
set_dhudmessage(0, 255, 0, -1.0, 0.4, 0, 0.0, 15.0, 1.0, 1.0, false)
show_dhudmessage(0,"Owner %s Give %i Credite Lui %s", get_name( id ), iPoints,szName )
return 1;
}
public rs_credite( id, level, cid ) {
if( !cmd_access( id, level, cid, 2 ) ) {
return PLUGIN_HANDLED;
}
new szArgument[ 32 ];
read_argv( 1, szArgument, charsmax( szArgument ) );
new iPlayer[ 32 ], iPlayersNum, all;
get_players( iPlayer, iPlayersNum, "c" );
if( equal( szArgument, "@ALL" ) ) {
for( new i; i < iPlayersNum; i++ ) {
all = iPlayer[ i ];
Credite[ all ] = 1;
ColorChat ( 0, TEAM_COLOR, "^x04%s^x01 Owner^x04 %s^x01 v-a resetat toatel^x04 Credite !!!", g_szTag, get_name( id ) );
}
}
else {
new player = cmd_target( id, szArgument, 10 );
if( !player ) {
return PLUGIN_HANDLED;
}
new TargetName[ 32 char ];
get_user_name( player, TargetName, charsmax( TargetName ) );
Credite[ player ] = 1;
ColorChat ( 0, TEAM_COLOR, "^x04%s^x01 Owner^x04 %s^x01 i-a resetat Credite lui^x04 %s^x01 !!!", g_szTag, get_name( id ), TargetName );
}
return PLUGIN_HANDLED;
}
stock get_name( id ) {
new szName[ 32 ];
get_user_name( id, szName, sizeof ( szName ) -1 );
return szName;
}
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color
replace_all(msg, 190, "!team2", "^0") // Team2 Color
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();
}
}
}
}