1. sayfa (Toplam 1 sayfa)

EXP Plugini Tag

Gönderilme zamanı: Prş Eyl 08, 2016 4:41 pm
gönderen Revenqe
Arkadaslar Bu Plugini Editlermisniz Ben Bu Rütbeleri Sayda Adamlarin İsminin Yaninda Yazmasini İsityorum [ER] Nick Gibi Sayda Belli Olucak Rütbesi Yapablirmisiniz
@CSmiLeFaCe

Kod: Tümünü seç

#include <amxmodx>
#include <nvault>
#include <fakemeta>
#include <hamsandwich>
#include <fun>

#define g_exp(%1) get_pcvar_num(xpm_start) + (seviye[%1] * get_pcvar_num(xpm_inc))
#define DLIGHT_LIFE 8
#define DLIGHT_DECAY 60
#define message_begin_f(%1,%2,%3) (engfunc (EngFunc_MessageBegin, %1, %2, %3))
#define write_coord_f(%1) (engfunc (EngFunc_WriteCoord, %1))
#define FLAG ADMIN_KICK

new const gsz_RankModel [ ] = "models/3dranks.mdl"

new xpm_3drank

new gi_PlayerRank [ 33 ]

new xpkayit,seviye[33] = 1,exp[33],xpm_kill,xpm_knife,xpm_headshot,xpm_maxlevel,hud_info,xpm_inc,xpm_start,xpm_heal_up,xpm_damage_up,aim_goster,g_iMsgSayText,hud_show,rutbe[33]
new const level[] = "explevel/seviye_atlama.wav"
new const tag[] = "!g[RBP Team Sport]!y"
new const is[] = "%"
enum Coord_e {Float:x, Float:y, Float:z};

enum
{
ER,
ONBASI,
CAVUS,
TEGMEN,
YUZBASI,
BINBASI,
YARBAY,
ALBAY,
GENERAL	
}
public plugin_init() {
	register_plugin("Xp-Mod v2.1 ", "2.1", "RBP Team Sport")
	xpm_start = register_cvar("xpm_start", "30");
	xpm_inc = register_cvar("xpm_inc", "20");
	xpm_kill = register_cvar("xpm_kill","2")
	xpm_knife = register_cvar("xpm_knife","3")
	xpm_headshot = register_cvar("xpm_headshot","4")
	xpm_maxlevel = register_cvar("xpm_maxlevel","25")
	xpm_heal_up = register_cvar("xpm_heal_up","0")
	xpm_damage_up = register_cvar("xpm_damage_up","0")
	xpkayit = nvault_open("xpmod_kayit")
	xpm_3drank = register_cvar ( "xpm_3drank", "0" )
	register_clcmd("__xpm_maxlevel","__xpm_maxlevel_devam")
	register_clcmd("__xpm_kill","__xpm_kill_devam")
	register_clcmd("__xpm_inc","__xpm_inc_devam")
	register_clcmd("__xpm_headshot","__xpm_headshot_devam")
	register_clcmd("__xpm_knife","__xpm_knife_devam")
	register_clcmd("__xpm_damage_up","__xpm_damage_devam")
	register_clcmd("__xpm_heal_up","__xpm_heal_devam")
	register_clcmd("say /xpreset","xpmod_reset")
	register_clcmd("say /xpkontrol","xpmod_kontrol")
	register_clcmd("/xpkontrol","xpmod_kontrol")
	register_event("DeathMsg", "event_death", "a");
	register_event("StatusValue", "showStatus", "be", "1=2", "2!0")
	register_event("StatusValue", "hideStatus", "be", "1=1", "2=0")
	RegisterHam(Ham_Spawn, 		"player", "Fwd_PlayerSpawn_Post",	1)
	RegisterHam(Ham_TakeDamage, 	"player", "FwdTakeDamage", 		0)
	hud_show = CreateHudSyncObj();
	hud_info = CreateHudSyncObj();
	aim_goster = CreateHudSyncObj()
	g_iMsgSayText 	= get_user_msgid("SayText") 
}
public xpmod_reset(id){
	seviye[id] = 1
	exp[id] = 0
	ChatColor(id,"%s !tLeveliniz!y ve !tExp (tecrube)!y puaniniz basariyla sifirlanmistir.",tag)
}
public plugin_precache() {
	precache_sound("fvox/beep.wav")
	precache_sound(level)
	precache_model ( gsz_RankModel )
}
public kaydet(id){
	new name[64],key[72], stats[34];
	get_user_name(id, name, 63);
	formatex(key, 71, "%s-stats", name);
	formatex(stats, 33, "%i#%i#", seviye[id], exp[id]);
	nvault_set(xpkayit, key, stats);
}
public kontrol(id){
	new name[32]
	get_user_name(id,name,31)
	if(exp[id] >= g_exp(id)){
		seviye[id]++	
		exp[id] = 0
		ChatColor(0,"%s !t'%s'!y adli oyuncu !g[%d]!y Rütbeye ulasti.",tag,name,seviye[id])
		level_atlama(id)
	}
	else if(exp[id] < g_exp(id))
	{
		console_cmd(id,"spk fvox/beep")	
	}
}
public yukle(id){
	new name[64],key[72], stats[34], stat[3][12];
	get_user_name(id, name, 63);
	formatex(key, 71, "%s-stats", name);
	nvault_get(xpkayit, key, stats, 33);
	replace_all(stats , 33, "#", " ")
	parse(stats, stat[0], 11, stat[1], 11);
	seviye[id] = str_to_num(stat[0]);
	exp[id] = str_to_num(stat[1]);	
	if(seviye[id] == 0){
		seviye[id] = 1
	}
}
public client_authorized(id){
	seviye[id]=1
	exp[id] = 0
	set_task(1.0, "show_explevel", id, _, _, "b")
	yukle(id)
	create_rank_entity ( id )
}
public client_disconnect(id){
	kaydet(id)
	if ( gi_PlayerRank [ id ] > 0 )
		engfunc ( EngFunc_RemoveEntity, gi_PlayerRank [ id ] )
	
	gi_PlayerRank [ id ] = 0
}
public create_rank_entity ( index )
{	
	gi_PlayerRank [ index ] = engfunc ( EngFunc_CreateNamedEntity, engfunc ( EngFunc_AllocString, "info_target" ) )
	
	set_pev ( gi_PlayerRank [ index ], pev_movetype, MOVETYPE_FOLLOW )
	set_pev ( gi_PlayerRank [ index ], pev_aiment, index )
	set_pev ( gi_PlayerRank [ index ], pev_rendermode, kRenderNormal )
	set_pev ( gi_PlayerRank [ index ], pev_renderfx, kRenderFxGlowShell )
	set_pev ( gi_PlayerRank [ index ], pev_renderamt, 5.0 )
	
	engfunc ( EngFunc_SetModel, gi_PlayerRank [ index ], gsz_RankModel )
}
public event_death(){
	
	//new attacker = read_data(1);
	new victim = read_data(2);
	new attacker = get_user_attacker(victim)
	new miktar[32] = 0 
	if ( is_valid_player ( attacker ) )
	{
		check_rank ( attacker )
	}
	if(attacker == victim)
	{
		return PLUGIN_HANDLED;
	}
	if(seviye[attacker] >= get_pcvar_num(xpm_maxlevel)){
		ChatColor(attacker,"%s !tmaximum!y Rütbeye ulastiniz",tag)
		return PLUGIN_HANDLED;
	}
	exp[attacker] += get_pcvar_num(xpm_kill)
	miktar[attacker] += get_pcvar_num(xpm_kill)
	if(get_pdata_int(victim, 75) == HIT_HEAD){
		exp[attacker] += get_pcvar_num(xpm_headshot)
		miktar[attacker] += get_pcvar_num(xpm_headshot)
	}
	if(get_user_weapon(attacker) == CSW_KNIFE){
		exp[attacker] += get_pcvar_num(xpm_knife)
		miktar[attacker] += get_pcvar_num(xpm_knife)
	}
	ChatColor(attacker,"%s !t%d!y exp (tecrube) puani kazandiniz.",tag,miktar[attacker])
	kontrol(attacker)
	return PLUGIN_HANDLED;
}
public show_explevel(id){
	if(!is_user_alive(id))
	return PLUGIN_HANDLED;
	new ly[33],ey[33],as[33],show[33]
	as[id] = get_pcvar_num(xpm_start) + (seviye[id] * get_pcvar_num(xpm_inc))
	ly[id] = seviye[id] * 100 / get_pcvar_num(xpm_maxlevel) 
	ey[id] = exp[id] * 100 / as[id]
	if(ly[id] < 6){
	rutbe[id] = ER
	show = "Silver 1"
	}
	else if(ly[id] < 16 ){
	rutbe[id] = ONBASI
	show = "Silver 2"
	}
	else if(ly[id] < 31 ){
	rutbe[id] = CAVUS
	show = "Silver 3"
	}
	else if(ly[id] < 46 ){
	rutbe[id] = TEGMEN
	show = "Silver 4"
	}
	else if(ly[id] < 61 ){
	rutbe[id] = YUZBASI
	show = "Gold Nova 1"
	}
	else if(ly[id] < 71 ){
	rutbe[id] = BINBASI
	show = "Gold Nova 2"
	}
	else if(ly[id] < 81 ){
	rutbe[id] = YARBAY
	show = "Gold Nova 3"
	}
	else if(ly[id] < 91 ){
	rutbe[id] = ALBAY
	show = " Gold Nova Master"
	}
	else if(ly[id] <= 100){
	rutbe[id] = GENERAL	
	show = "The Global Elite"
	}
	set_hudmessage( 255, 0, 0, 0.90, 0.15, 0, 6.0, 3.0, 0.1, 1.5 );
	ShowSyncHudMsg(id, hud_show,"CSGO Rutbe Sistemi" );
	set_hudmessage( 255, 255, 255, 0.90, 0.18, 0, 6.0, 3.0, 0.1, 1.5 );
	ShowSyncHudMsg(id, hud_info, "Level: [%d/%d] - (%s%i)  ^nFrag: [%i/%i] - (%s%i)  ^nRutbe: [%s]   ",seviye[id],get_pcvar_num(xpm_maxlevel),is,ly[id],exp[id],g_exp(id),is,ey[id],show);
	return PLUGIN_HANDLED
}
public showStatus(id){
	new name[32], pid = read_data(2)
	get_user_name(pid,name,31)
	if(!is_user_bot(id) && is_user_connected(id)) {
		if(get_user_team(pid) == 1){
			set_hudmessage(255,25,25, -1.0, 0.55, 0, 0.01, 3.0, 0.01, 0.01, -1)
			ShowSyncHudMsg(id, aim_goster, "%s | Hp: %d | Level: %d",name,get_user_health(pid),seviye[pid])
		}
		else if(get_user_team(pid) == 2){
			set_hudmessage(25,25,255, -1.0, 0.55, 0, 0.01, 3.0, 0.01, 0.01, -1)
			ShowSyncHudMsg(id, aim_goster, "%s | Hp: %d | Level: %d",name,get_user_health(pid),seviye[pid])
		}
	}
}
public hideStatus(id){
	ClearSyncHud(id, aim_goster)
}
public Fwd_PlayerSpawn_Post(player){
	new hp
	hp = seviye[player] * 1 - 1
	if(get_pcvar_num(xpm_heal_up) && is_user_alive(player)){
		set_user_health(player, get_user_health(player) + hp )
	}
	if ( is_valid_player ( player ) && get_pcvar_num(xpm_3drank))
	{
		check_rank ( player )
	}
	else if(!get_pcvar_num(xpm_3drank))
	{
	if ( gi_PlayerRank [ player ] > 0 )
		engfunc ( EngFunc_RemoveEntity, gi_PlayerRank [ player ] )
	
	gi_PlayerRank [player ] = 0	
	}
}
public FwdTakeDamage(victim, inflictor, attacker, Float:damage, damage_bits){
	new dmg = seviye[ attacker ] * 1 - 1
	if(get_pcvar_num(xpm_damage_up)){
		SetHamParamFloat( 4 , damage + dmg )
		
		return PLUGIN_HANDLED
	}
	return PLUGIN_HANDLED
}
stock level_atlama(id){
	static Float:FOrigin3[3] // PARLAMA EFEKTI
	pev(id, pev_origin, FOrigin3)
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, FOrigin3, 0)
	write_byte(TE_IMPLOSION)
	engfunc(EngFunc_WriteCoord, FOrigin3[0])
	engfunc(EngFunc_WriteCoord, FOrigin3[1])
	engfunc(EngFunc_WriteCoord, FOrigin3[2])
	write_byte(200)
	write_byte(100)
	write_byte(5)  
	message_end()
	emit_sound(id, CHAN_VOICE, level, 1.0, ATTN_NORM, 0, PITCH_NORM)
	level_atlama__(id)
}
public level_atlama__(id){
	//new const Invoker
	static Coord_e:vecOrigin [Coord_e];
	pev (id,pev_origin, vecOrigin);

	message_begin_f (MSG_PVS, SVC_TEMPENTITY, vecOrigin, 0);
	write_byte (TE_DLIGHT);
	write_coord_f (vecOrigin [x ]);
	write_coord_f (vecOrigin [y ]);
	write_coord_f (vecOrigin [z ]);
	write_byte (35);
	write_byte (250);
	write_byte (150);
	write_byte (15);
	write_byte (DLIGHT_LIFE);
	write_byte (DLIGHT_DECAY);
	message_end();
        
	return FMRES_HANDLED;
}
public xpmod_kontrol(id)
{
	if(get_user_flags(id) & ADMIN_CVAR)
	{
		static Item[64]
		
		formatex(Item, charsmax(Item),"\yXpmod | Kontrol Paneli") 
		new Menu = menu_create(Item, "takim_menu")
		
		formatex(Item, charsmax(Item),"\wxpm_maxlevel \d'%d'",get_pcvar_num(xpm_maxlevel))
		menu_additem(Menu, Item, "1")
		
		formatex(Item, charsmax(Item),"\wxpm_kill \d'%d'",get_pcvar_num(xpm_kill))
		menu_additem(Menu, Item, "2")
		
		formatex(Item, charsmax(Item),"\wxpm_inc \d'%d'",get_pcvar_num(xpm_inc))
		menu_additem(Menu, Item, "3")
		
		formatex(Item, charsmax(Item),"\wxpm_headshot \d'%d'",get_pcvar_num(xpm_headshot))
		menu_additem(Menu, Item, "5")
		
		formatex(Item, charsmax(Item),"\wxpm_knife \d'%d'",get_pcvar_num(xpm_knife))
		menu_additem(Menu, Item, "6")
		
		formatex(Item, charsmax(Item),"\wxpm_damage_up \d'%s'",get_pcvar_num(xpm_damage_up) > 0 ? "Acik" : "Kapali")
		menu_additem(Menu, Item, "6")
		
		formatex(Item, charsmax(Item),"\wxpm_heal_up \d'%s'",get_pcvar_num(xpm_heal_up) > 0 ? "Acik" : "Kapali")
		menu_additem(Menu, Item, "7")
		
		
		
		
		
		menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
		menu_display(id, Menu)
	}
	else
	{
		ChatColor(id,"[%s]!gYetkiniz !yBulunmamaktadir...",tag)
	}
	return PLUGIN_HANDLED
}
public takim_menu(id, menu, item)
{
	
	if (item == MENU_EXIT)
	{
		menu_destroy(menu)
		return PLUGIN_HANDLED
	}
	new Data[6], Name[64]
	new Access, Callback
	new say[300]
	read_args(say, charsmax(say))
	
	menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)
	
	new Key = str_to_num(Data)
	
	switch (Key)
	{
		case 1:
		{	
		client_cmd(id, "messagemode __xpm_maxlevel")
		}
		case 2: 
		{	
		client_cmd(id, "messagemode __xpm_kill")	
		}
		case 3:
		{	
		client_cmd(id, "messagemode __xpm_inc")	
		}
		case 4: 
		{	
		client_cmd(id, "messagemode __xpm_headshot")	
		}
		case 5: 
		{	
		client_cmd(id, "messagemode __xpm_knife")	
		}
		case 6: 
		{
		client_cmd(id, "messagemode __xpm_damage_up")
		}
		case 7: 
		{	
		client_cmd(id, "messagemode __xpm_heal_up")	
		}
		
	}
	menu_destroy(menu)	
	return PLUGIN_HANDLED
}
public __xpm_maxlevel_devam(id){
	new say[300]
	read_args(say, charsmax(say))
	remove_quotes(say)
	client_cmd(id,"amx_cvar xpm_maxlevel %s",say)
	console_cmd(id,"/xpkontrol")
}
public __xpm_kill_devam(id){
	new say[300]
	read_args(say, charsmax(say))
	remove_quotes(say)
	client_cmd(id,"amx_cvar xpm_kill %s",say)
	console_cmd(id,"/xpkontrol")
}
public __xpm_inc_devam(id){
	new say[300]
	read_args(say, charsmax(say))
	remove_quotes(say)
	client_cmd(id,"amx_cvar xpm_inc %s",say)
	console_cmd(id,"/xpkontrol")
}
public __xpm_headshot_devam(id){
	new say[300]
	read_args(say, charsmax(say))
	remove_quotes(say)
	client_cmd(id,"amx_cvar xpm_headshot %s",say)
	console_cmd(id,"/xpkontrol")
}
public __xpm_knife_devam(id){
	new say[300]
	read_args(say, charsmax(say))
	remove_quotes(say)
	client_cmd(id,"amx_cvar xpm_knife %s",say)
	console_cmd(id,"/xpkontrol")
}
public __xpm_heal_devam(id){
	new say[300]
	read_args(say, charsmax(say))
	remove_quotes(say)
	client_cmd(id,"amx_cvar xpm_damage_up %s",say)
	console_cmd(id,"/xpkontrol")
}
public __xpm_damage_devam(id){
	new say[300]
	read_args(say, charsmax(say))
	remove_quotes(say)
	client_cmd(id,"amx_cvar xpm_heal_up %s",say)
	console_cmd(id,"/xpkontrol")
}
public check_rank ( index )
{
	new PlayerRank = get_player_rank ( index )
	
	set_pev ( gi_PlayerRank [ index ], pev_body, PlayerRank )
	
	switch ( PlayerRank )
	{
		case 1, 2, 3:
		{
			set_pev ( gi_PlayerRank [ index ], pev_rendercolor, { 255.0, 255.0, 255.0 } )
		}
		
		case 12:
		{
			set_pev ( gi_PlayerRank [ index ], pev_rendercolor, { 255.0, 0.0, 0.0 } )
		}
		
		default:
		{
			set_pev ( gi_PlayerRank [ index ], pev_rendercolor, { 255.0, 255.0, 0.0 } )
		}
	}
}

stock get_player_rank ( index )
{
	new PlayerFrags = rutbe[ index ]
	
	switch ( PlayerFrags )
	{
		case ER:
		{
			return 1
		}
		
		case ONBASI:
		{
			return 2
		}
		
		case CAVUS:
		{
			return 3
		}
		
		case TEGMEN:
		{
			return 4
		}
		
		case YUZBASI:
		{
			return 5
		}
		
		case BINBASI:
		{
			return 6
		}
		
		case YARBAY:
		{
			return 7
		}
		
		case ALBAY:
		{
			return 8
		}
		
		case GENERAL:
		{
			return 9
		}
		
		default:
		{
			return 10
		}
	}
	
	return 0
}

stock is_valid_player ( index )
{
	if ( is_user_connected ( index ) && 1 <= index <= 32 )
	{
		return true
	}
	
	return false
}
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, "!t", "^3") // Team 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, g_iMsgSayText, _, 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\\ lang1055\\ f0\\ fs16 \n\\ par }
*/

EXP Plugini Tag

Gönderilme zamanı: Prş Eyl 08, 2016 5:07 pm
gönderen Yek'-ta
Eklenti içerisinde say desteği yok, olsa bile ichat,allchat gibi eklentilerle çakışır. Ki, şahsen ben uğraşmam yapmak için vaktim yok.