Code: Select all
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <nvault>
#define PLUGIN "Depozit Mooney"
#define AUTHOR "Aragon*"
#define VERSION "1.0"
new PlayerCredits[10000];
new Vault, SymbolsName, savepoints;
public plugin_init() {
register_plugin(PLUGIN,VERSION,AUTHOR)
register_forward(FM_ClientUserInfoChanged, "ChangeName");
SymbolsName = register_cvar("fr_name_symbols", "~`"); //| Symbols Name Restricted |// biohazardshopmod = register_cvar("bh_shop_mode", "1"); //| Money/Points 0 Money Tax -> 1 Points Tax |//
savepoints = register_cvar("fr_save_points", "1"); //| Save Points Mode 0 Disable -> 1 Name -> 2 IP -> 3 SteamID |//
register_clcmd("depozit","Depozit")
register_clcmd("say /depozit","Depozit")
register_clcmd("say_team /depozit","Depozit")
register_clcmd("retrage","Retrage")
register_clcmd("say /retrage","Retrage")
register_clcmd("say_team /retrage","Retrage")
register_clcmd("credits","Show_Credits")
register_clcmd("credite","Show_Credits")
register_clcmd("say /credits","Show_Credits")
register_clcmd("say /credite","Show_Credits")
register_clcmd("say_team /credits","Show_Credits")
register_clcmd("say_team /credite","Show_Credits")
register_concmd("amx_give_credits", "Give_Credits", ADMIN_RCON, "Name/@T/@CT/@All -> Amount");
register_concmd("amx_reset_credits", "Reset_Credits", ADMIN_RCON, "Name/@T/@CT/@All");
}
public plugin_natives()
{
register_native("ar_get_credits","_get_credits")
register_native("ar_aet_credits","_aet_credits")
}
public _get_credits(iPlugin, iParams) return PlayerCredits[get_param( 1 )]
public _set_credits(iPlugin, iParams)
{
new id = get_param( 1 );
PlayerCredits[ id ] = max( 0, get_param( 2 ) );
SaveCredits( id );
return PlayerCredits[ id ];
}
public client_putinserver(id) {
LoadCredits(id)
}
public client_authorized(id) {
LoadCredits(id)
}
public client_connected(id) {
LoadCredits(id)
}
public client_disconnect(id) {
SaveCredits(id)
}
//------| 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;
}
//------| Client connect |------//
public client_connect(id) {
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;
}
else {
LoadCredits(id);
}
}
}
}
public Depozit(id) {
if(cs_get_user_team(id) == CS_TEAM_SPECTATOR) return PLUGIN_HANDLED;
if(cs_get_user_money(id) == 16000) {
ColorChat(id, "^x03[Depozit]^x04 Ai depozitat^x03 16000$^x04 is ai primit^x03 1^x04 credit.");
PlayerCredits[id] += 1;
cs_set_user_money(id, 0);
}
else {
ColorChat(id, "^x03[Depozit]^x04 Iti trebuie^x03 16000$^x04 pentru a putea depozita.");
}
SaveCredits(id)
return PLUGIN_HANDLED;
}
public Retrage(id) {
if(cs_get_user_team(id) == CS_TEAM_SPECTATOR) return PLUGIN_HANDLED;
if(cs_get_user_money(id) == 16000) {
ColorChat(id, "^x03[Depozit]^x04 Ai deja^x03 16000$.");
PlayerCredits[id] -= 1;
}
else if(PlayerCredits[id]) {
ColorChat(id, "^x03[Depozit]^x04 Ai retras^x03 1^x04 credit din depozit, ai primit^x03 16000$.");
PlayerCredits[id] -= 1;
cs_set_user_money(id, 16000);
}
else {
ColorChat(id, "^x03[Depozit]^x04 Iti trebuie^x03 1 credit^x04 pentru a putea retrage.");
}
SaveCredits(id)
return PLUGIN_HANDLED;
}
public Show_Credits(id) {
set_hudmessage(0, 128, 0, 0.03, 0.86, 2, 6.0, 5.0);
show_hudmessage(id, "Ai %d Credite.", PlayerCredits[id]);
ColorChat(id, "^x03[Depozit]^x04 Ai^x03 %d^x04 Credite.", PlayerCredits[id]);
return PLUGIN_HANDLED;
}
public Give_Credits(id, level, cid) {
if(!cmd_access(id, level, cid, 2)) {
return PLUGIN_HANDLED;
}
new arg[23], gplayers[32], num, i, players, name[32];
get_user_name(id, name, 31);
read_argv(1, arg, 23);
new give_credits[5];
read_argv(2, give_credits, charsmax(give_credits));
new Credits = str_to_num(give_credits);
if(equali(arg, "@T")) {
get_players(gplayers, num, "e", "TERRORIST");
for(i = 0; i < num; i++) {
players = gplayers[i];
if(!is_user_connected(players))
continue;
PlayerCredits[players] += Credits;
SaveCredits(id)
}
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(0, "^x03ADMIN^x04 give^x03 %i Credits^x04 to all^x03 Ts.", Credits);
case 2: ColorChat(0, "^x03%s^x04 give^x03 %i Credits^x04 to all^x03 Ts.", name, Credits);
}
}
else if(equali(arg, "@CT")) {
get_players(gplayers, num, "e", "CT");
for(i = 0; i < num; i++) {
players = gplayers[i];
if(!is_user_connected(players))
continue;
PlayerCredits[players] += Credits;
SaveCredits(id)
}
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(0, "^x03ADMIN^x04 give^x03 %i Credits^x04 to all^x03 CTs.", Credits);
case 2: ColorChat(0, "^x03%s^x04 give^x03 %i Credits^x04 to all^x03 CTs.", name, Credits);
}
}
if(equali(arg, "@All")) {
get_players(gplayers, num, "a");
for(i = 0; i < num; i++) {
players = gplayers[i];
if(!is_user_connected(players))
continue;
PlayerCredits[players] += Credits;
SaveCredits(id)
}
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(0, "^x03ADMIN^x04 give^x03 %i Credits^x04 to all^x03 Players.", Credits);
case 2: ColorChat(0, "^x03%s^x04 give^x03 %i Credits^x04 to all^x03 Players.", name, Credits);
}
}
new player = cmd_target(id, arg, 11);
if(!player) {
return PLUGIN_HANDLED;
}
PlayerCredits[player] += Credits;
SaveCredits(id)
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(player, "^x03ADMIN^x04 give your^x03 %i Credits.", Credits);
case 2: ColorChat(player, "^x03%s^x04 give your^x03 %i Credits.", name, Credits);
}
return PLUGIN_HANDLED;
}
public Reset_Credits(id, level, cid) {
if(!cmd_access(id, level, cid, 2)) {
return PLUGIN_HANDLED;
}
new arg[23], gplayers[32], num, i, players, name[32];
get_user_name(id, name, 31);
read_argv(1, arg, 23);
if(equali(arg, "@T")) {
get_players(gplayers, num, "e", "TERRORIST");
for(i = 0; i < num; i++) {
players = gplayers[i];
if(!is_user_connected(players))
continue;
PlayerCredits[players] = 0;
SaveCredits(id)
}
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(0, "^x03ADMIN^x04 reset^x03 Credits^x04 to all^x03 Ts.");
case 2: ColorChat(0, "^x03%s^x04 reset^x03 Credits^x04 to all^x03 Ts.", name);
}
}
else if(equali(arg, "@CT")) {
get_players(gplayers, num, "e", "CT");
for(i = 0; i < num; i++) {
players = gplayers[i];
if(!is_user_connected(players))
continue;
PlayerCredits[players] = 0;
SaveCredits(id)
}
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(0, "^x03ADMIN^x04 reset^x03 %i Credits^x04 to all^x03 CTs.");
case 2: ColorChat(0, "^x03%s^x04 reset^x03 %i Credits^x04 to all^x03 CTs.", name);
}
}
if(equali(arg, "@All")) {
get_players(gplayers, num, "a");
for(i = 0; i < num; i++) {
players = gplayers[i];
if(!is_user_connected(players))
continue;
PlayerCredits[players] = 0;
SaveCredits(id)
}
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(0, "^x03ADMIN^x04 reset^x03 Credits^x04 to all^x03 Players.");
case 2: ColorChat(0, "^x03%s^x04 resetx03 Credits^x04 to all^x03 Players.", name);
}
}
new player = cmd_target(id, arg, 11);
if(!player) {
return PLUGIN_HANDLED;
}
PlayerCredits[player] = 0;
SaveCredits(id)
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(player, "^x03ADMIN^x04 reset your^x03 Credits.");
case 2: ColorChat(player, "^x03%s^x04 reset your^x03 Credits.", name);
}
return PLUGIN_HANDLED;
}
//------| Save Credits |------//
public SaveCredits(id) {
Vault = nvault_open("DepozitCredits");
new data_credits[256], key_credits[64];
switch( get_pcvar_num(savepoints) ) {
case 1: {
new name[33];
get_user_name(id,name,32);
format(key_credits, 63, "%s-/", name);
}
case 2: {
new player_ip[33];
get_user_ip(id,player_ip,32);
format(key_credits, 63, "%s-/", player_ip);
}
case 3: {
new steam_ID[33];
get_user_authid(id,steam_ID,32);
format(key_credits, 63, "%s-/", steam_ID);
}
}
format(data_credits, 255, "%i#", PlayerCredits[id]);
nvault_set(Vault, key_credits, data_credits);
return PLUGIN_CONTINUE;
}
//------| Loading Credits |------//
public LoadCredits(id) {
Vault = nvault_open("DepozitCredits");
new data_credits[256], key_credits[64];
switch( get_pcvar_num(savepoints) ) {
case 1: {
new name[33];
get_user_name(id,name,32);
format(key_credits, 63, "%s-/", name);
}
case 2: {
new player_ip[33];
get_user_ip(id,player_ip,32);
format(key_credits, 63, "%s-/", player_ip);
}
case 3: {
new steam_ID[33];
get_user_authid(id,steam_ID,32);
format(key_credits, 63, "%s-/", steam_ID);
}
}
format(data_credits, 255, "%i#", PlayerCredits[id]);
nvault_get(Vault, key_credits, data_credits, 255);
replace_all(data_credits, 255, "#", " ");
new Credits[32];
parse(data_credits, Credits, 31);
PlayerCredits[id] = str_to_num(Credits);
return PLUGIN_CONTINUE;
}
stock ColorChat(const id, const input[], any:...) {
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!x04", "^4");
replace_all(msg, 190, "!x01", "^1");
replace_all(msg, 190, "!x03", "^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();
}
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
Code: Select all
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
native ar_get_credits(id)
native ar_aet_credits(id,num)
stock ar_add_user_credits(client, credits)
{
return ar_aet_credits(client, ar_get_credits(client) + credits);
}
new const CHAT_PREFIX[]=".gTAGUL TAU DIN CHAT pentru MESAJE.g"
new const TITLU_MENIU[]="SHOPUL MIEU"
new const PRICE_SYMBOL[]="$"
enum _:Data
{
ITEM[55],
PRICE
}
new const SI[][Data]=
{
{ "Respawn", 15 },
{ "Chat Prefix", 200 },
{ "[DR-KNIFE] Gold", 0 },
{ "[DR-KNIFE] Blue", 200 },
{ "[DR-USP] NIGHT", 0 },
{ "[DR-USP] Diamond", 200 }
}
enum _:Data2
{
vModel[32],
pModel[32],
wModel[32]
}
new const SW[][Data2]=
{
{ "gk", "", "" },
{ "bk", "", "" },
{ "un", "", "" },
{ "ud", "", "" }
}
new HostName[60],name[33][32],usp[33],knife[33]
public plugin_init() {
register_event("HLTV", "event_new_round", "a", "1=0", "2=0")
register_clcmd("say /shop","SM")
register_clcmd("say_team /shop","SM")
register_clcmd( "DS_SetTag", "SST" );
get_cvar_string( "hostname", HostName, charsmax( HostName ) );
// Add your code here...
}
public plugin_precache()
{
for(new i; i < sizeof(SW); i++)
{
precache_custom_models(SW[i][vModel])
if(!equal(SW[i][pModel],"")) precache_custom_models(SW[i][pModel])
if(!equal(SW[i][wModel],"")) precache_custom_models(SW[i][wModel])
}
}
precache_custom_models(szModel[])
{
static szFile[128]
formatex(szFile, charsmax(szFile), "models/drsm/%s.mdl", szModel)
precache_model(szFile)
}
public client_putinserver(id)
{
if(!is_user_connected(id)||is_user_bot(id)||is_user_hltv(id)) return
get_user_name(id,name[id],charsmax(name[]))
knife[id]=0
usp[id]=0
}
public client_disconnect(id)
{
knife[id]=0
usp[id]=0
}
public event_new_round()
{
arrayset(knife,0,charsmax(knife))
arrayset(usp,0,charsmax(usp))
}
public SM(id)
{
new menu,title[120],meniu[120],callback
formatex(title,charsmax(title),TITLU_MENIU)
menu=menu_create(title,"SH")
callback = menu_makecallback("hook_shop");
for(new i;i<sizeof(SI);i++)
{
formatex(meniu,charsmax(meniu),"%s - %d%s",SI[i][ITEM],SI[i][PRICE],PRICE_SYMBOL)
menu_additem(menu,meniu,.callback=callback)
}
menu_display(id,menu)
}
public hook_shop(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
if(ar_get_credits(id) < SI[item][PRICE]) return ITEM_DISABLED;
return ITEM_ENABLED;
}
public shop_handler(id, menu, item)
{
if(item<0) return
switch(item)
{
case 0:
{
if(is_user_alive(id)) return
ExecuteHamB(Ham_CS_RoundRespawn,id)
}
case 1:
{
if( containi( name[id], HostName ) != -1 )
{
print_cc(id, "%s Acest.g nick.nu poate primii.t tag", CHAT_PREFIX );
return
}
client_cmd( id, "messagemode DS_SetTag" );
print_cc(id, "%s.t SUS IN COLTUL STANG TI-A APARUT UN LOC UNDE APARE CE SCRII!(.nTAGUL.t)", CHAT_PREFIX );
}
case 2:
{
knife[id]=1
set_weapon_model(id)
}
case 3:
{
knife[id]=2
set_weapon_model(id)
}
case 4:
{
usp[id]=1
set_weapon_model(id)
}
case 5:
{
usp[id]=2
set_weapon_model(id)
}
}
print_cc(id, "%s Ai cumparat ^".t%s.n^" pentru.t %d.n%s", CHAT_PREFIX,SI[item][ITEM],SI[item][PRICE],PRICE_SYMBOL );
ar_add_user_credits(id,SI[item][PRICE])
}
public SST( id )
{
static szArg[ 64 ];
read_argv( 1, szArg, sizeof ( szArg ) -1 );
remove_quotes(szArg)
trim(szArg)
if( !strlen( szArg )||equal(szArg,"") )
{
client_cmd( id, "messagemode DS_SetTag");
print_cc(id, "%s.t TAG INVALID!.g INCEARCA IAR", CHAT_PREFIX );
return PLUGIN_HANDLED;
}
else if( strlen( szArg )<3)
{
client_cmd( id, "messagemode DS_SetTag");
print_cc(id, "%s.t TAG INVALID!.g INCEARCA IAR", CHAT_PREFIX );
return PLUGIN_HANDLED;
}
new flags[33]
get_flags(get_user_flags(id),flags,charsmax(flags))
server_cmd("amx_addtag ^"%s^" ^"%s^" ^"%s^"",name[id],flags,szArg)
return PLUGIN_HANDLED;
}
public set_weapon_model(id)
{
static szMODEL[128]
switch(get_user_weapon(id))
{
case CSW_KNIFE:
{
switch(knife[id])
{
case 1:
{
formatex(szMODEL, charsmax(szMODEL), "models/drsm/%s.mdl", SW[0][vModel])
set_pev(id,pev_viewmodel2,szMODEL)
if(!equal(SW[0][pModel],""))
{
formatex(szMODEL, charsmax(szMODEL), "models/drsm/%s.mdl", SW[0][pModel])
set_pev(id,pev_weaponmodel2,szMODEL)
}
engclient_cmd(id,"weapon_knife")
}
case 2:
{
formatex(szMODEL, charsmax(szMODEL), "models/drsm/%s.mdl", SW[1][vModel])
set_pev(id,pev_viewmodel2,szMODEL)
if(!equal(SW[1][pModel],""))
{
formatex(szMODEL, charsmax(szMODEL), "models/drsm/%s.mdl", SW[1][pModel])
set_pev(id,pev_weaponmodel2,szMODEL)
}
engclient_cmd(id,"weapon_knife")
}
}
}
case CSW_USP:
{
switch(usp[id])
{
case 1:
{
formatex(szMODEL, charsmax(szMODEL), "models/drsm/%s.mdl", SW[2][vModel])
set_pev(id,pev_viewmodel2,szMODEL)
if(!equal(SW[2][pModel],""))
{
formatex(szMODEL, charsmax(szMODEL), "models/drsm/%s.mdl", SW[2][pModel])
set_pev(id,pev_weaponmodel2,szMODEL)
}
engclient_cmd(id,"weapon_usp")
}
case 2:
{
formatex(szMODEL, charsmax(szMODEL), "models/drsm/%s.mdl", SW[3][vModel])
set_pev(id,pev_viewmodel2,szMODEL)
if(!equal(SW[3][pModel],""))
{
formatex(szMODEL, charsmax(szMODEL), "models/drsm/%s.mdl", SW[3][pModel])
set_pev(id,pev_weaponmodel2,szMODEL)
}
engclient_cmd(id,"weapon_uso")
}
}
}
}
}
print_cc(id, fmt[], any:...)
{
static saytext = 0, fake_user;
if (!saytext)
{
saytext = get_user_msgid("SayText");
fake_user = get_maxplayers() + 1;
}
new msg[192];
vformat(msg, charsmax(msg), fmt, 3)
replace_all(msg, sizeof(msg) - 1, ".g", "^x04");
replace_all(msg, sizeof(msg) - 1, ".n", "^x01");
replace_all(msg, sizeof(msg) - 1, ".t", "^x03");
message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, saytext, _, id);
write_byte(id ? id : fake_user);
write_string(msg);
message_end();
}