Page 1 of 1

Cerere plugin DEATHRUN-CLASSIC

Posted: 26 Mar 2020, 18:29
by adEn
Plugin Cerut:Doresc un shop pentru modul deathrun
Descriere (adica ce face el mai exact):Pluginul consta in ,atunci cand scrii /shop sa apara asa
Respawn -sa plateasca 15$ pentru respawn
Chat Prefix - sa plateasca 200$ pentru un chat prefix adica sa isi aleaga un tag random , precum [EXPERT] adEn

Knife - aici doresc mai multe chestii ,adica:
aici doresc sa fie asa
[DR-KNIFE] Gold - FREE
[DR-KNIFE] Blue - 200$
mai multe knife-uri care se cumpara cu $ pe care ii face pe kill si awards - awards consta in timpu pe care-l face pe server , adica stai 10 minute primesti 20$ etc
Usp - aici este exact ca la knife numai denumirea difera
[DR-USP] NIGHT - FREE
[DR-USP] Diamond - 150$
Serverul impune conditii strict HLDS/REHLDS?:reHLDS
Ai cautat pluginul?(daca da, precizeaza cum):Da , am cautat , dar pluginul asta nu se gaseste deoarece modul / serverul meu este de dr classic cu 800 gravity , normal
Necesita mod special?:Da
:flexed_biceps: :flexed_biceps:

Re: Cerere plugin DEATHRUN-CLASSIC

Posted: 27 Mar 2020, 12:24
by adEn
careva ??

Re: Cerere plugin DEATHRUN-CLASSIC

Posted: 28 Mar 2020, 19:14
by levin
plg de tage și a ales el
plg de credite cu nativ ales de el

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 }
*/
shop

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();
}