przeróbka pluga z interpem :D

TeChNoO

New member
Yo,mam taką prośbę do kogoś kto umie pisać pluginy :D

PHP:
#include <amxmodx>
#include <ColorChat>
#define MIN_TIME 10.0

new gcvarMinInterp,gcvarMaxInterp,gcvarPunish,gcvarPunishDelay;
new gcvarShowTut;



public plugin_init(){
	register_plugin("Pokaz interp","1.2.1","grankee&r3x")
	gcvarMinInterp=	register_cvar("amx_mininterp","0.01",0,0.01);
	gcvarMaxInterp=register_cvar("amx_maxinterp","0.01",0,0.03);
	gcvarPunish=register_cvar("amx_baninterp_punish","0");
	gcvarPunishDelay=register_cvar("amx_baninterp_delay","30.0");
	gcvarShowTut=register_cvar("amx_show_tutorial","1");
	pokaz()
}
public pokaz(){
	new players[32],count
	get_players(players,count)
	for(new i=0;i<count;i++){
		if(is_user_bot(players[i])) continue;
		query_client_cvar(players[i],"ex_interp","interp");
	}
	set_task(10.0, "pokaz");
}
public interp(id,const cvar[],const value[]){
	new Float:val=str_to_float(value);
	new Float:fMin=get_pcvar_float(gcvarMinInterp);
	new Float:fMax=get_pcvar_float(gcvarMaxInterp);
	if(val<fMin||val>fMax){
		new name[32]
		get_user_name(id,name,31);
		ColorChat(0, BLUE,"[Interp]^x01 Gracz ^x04%s^x01 ma zly interp (%s)",name,value);
		if(get_pcvar_num(gcvarShowTut)>0){
			ColorChat(id, RED,"[Interp]^x01 Interp dozwolony na tym serwerze to zakres od ^x04%4.2f^x01 do ^x04%4.2f",fMin+0.0001,fMax+0.0001);
			ColorChat(id, GREEN,"[Interp]^x01 Aby zmienic swoj interp na dozwolony na tym serwerze wpisz w consoli gry:");
			ColorChat(id, BLUE,"[Interp]^x01 ex_interp ^"wartosc^""); 
		}
		if(get_pcvar_num(gcvarPunish)){
			if(!task_exists(id)){
				set_task(floatmax(get_pcvar_float(gcvarPunishDelay),MIN_TIME),"kickuj",id);
			}
		}
	}else if(task_exists(id))
		remove_task(id);
}
stock disconnect(id, const szReason[], any:...){
	if(is_user_connected(id)){
		new szReason2[64];
		vformat(szReason2, 63, szReason, 3);
	
		message_begin(MSG_ONE, SVC_DISCONNECT, _, id);
		write_string(szReason2);
		message_end();
	}
}
public kickuj(id){
	new Float:fMin=get_pcvar_float(gcvarMinInterp)+0.0001;
	new Float:fMax=get_pcvar_float(gcvarMaxInterp)+0.0003;
	console_print(id,"---------------------------------------");
	console_print(id,"[Interp] Interp dozwolony na tym serwerze to zakres od %4.2f do %4.2f",fMin,fMax);
	console_print(id,"[Interp] Aby zmienic swoj interp na dozwolony na tym serwerze wpisz w consoli gry:");
	console_print(id,"[Interp] ex_interp ^"wartosc^""); 
	console_print(id,"---------------------------------------");
	
	disconnect(id, "^nZmien ex_interp^n(czytaj w konsoli)");
	
	new szName[32];
	get_user_name(id, szName, 32);
	
	new Color:iColor=GREY;
	new iTeam=get_user_team(id);
	if(iTeam==1)
		iColor=RED;
	else if(iTeam==2)
		iColor=BLUE;
	
	ColorChat(0, iColor, "Gracz^x03 %s^x01 zostal rozlaczony z powodu zlej wartosci^x04 ex_interp", szName);
}

co bym chciał żeby bylo dorobione:
1) menu z wyborem interpu(wartosci takie jak w kodzie czyli od 0.01 do 0.03)
2) żeby na hud wyświetlało info graczowi że ma 15s na zmiane interpu
3) każdemu kto będzie miał zły interp ma się wyświetlić menu z wyborem.

ps. wiem że to dość dziwnie opisałem ale nie wiedziałem jak dokładnie xD(haha)
dam kod jeszcze pluga co ma samo menu
PHP:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Menu interpow"
#define VERSION "2.0"
#define AUTHOR "VaveriX & lisek"

new plugin_on

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_clcmd("interpmenu","menu")
    register_clcmd("say /interp","menu")
    register_clcmd("chooseteam", "cmdInterpStart")
    plugin_on = register_cvar("amx_vavinterp","1")
}

public cmdInterpStart(id)
{
    set_task(12.5,"menu",id,"",0,"a",1)
}
public menu(id)
{
    if(plugin_on)
    {
        new menu = menu_create("Ustaw sobie interp:", "wybieranie")
        
        menu_additem(menu, "0.01", "1", 0)
        menu_additem(menu, "0.02", "2", 0)
        menu_additem(menu, "0.03", "3", 0)
        menu_display(id, menu,0)
        
    }
    else
    {
        client_print(id,print_chat,"[AMXX] * Plugin jest wylaczony, aby go wlaczyc uzyj amx_vavinterp 1")
    }
    
}
public wybieranie(id, menu, item)
{
    if (item == MENU_EXIT)
    {
        
        server_cmd("kick #%i ^"Na tym serwerze jest wymagane ustawienie interpu!^"",get_user_userid(id));
    }
    new data[6], iName[64]
    new acces, callback
    menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback)
    new key = str_to_num(data)
    
    switch(key)
    {
        case 1:{
            client_print(id, print_chat, "[AMXX] * Twoj interp zostal zmieniony na: 0.01")
            client_print(id, print_chat, "[AMXX] * Interp mozesz zmienic za pomoca komendy /interp")
            client_print(id, print_chat, "[AMXX] * Dziekujemy, GL & HF!")
            set_task(1.0, "interp1", id)
            menu_destroy(menu)
            return PLUGIN_HANDLED
        }
        
        case 2:{
            client_print(id, print_chat, "[AMXX] * Twoj interp zostal zmieniony na: 0.02")
            client_print(id, print_chat, "[AMXX] * Interp mozesz zmienic za pomoca komendy /interp")
            client_print(id, print_chat, "[AMXX] * Dziekujemy, GL & HF!")
            set_task(1.0, "interp2", id)
            menu_destroy(menu)
            return PLUGIN_HANDLED
        }
        
        case 3:{
            client_print(id, print_chat, "[AMXX] * Twoj interp zostal zmieniony na: 0.03")
            client_print(id, print_chat, "[AMXX] * Interp mozesz zmienic za pomoca komendy /interp")
            client_print(id, print_chat, "[AMXX] * Dziekujemy, GL & HF!")
            set_task(1.0, "interp3", id)
            menu_destroy(menu)
            return PLUGIN_HANDLED
        }
        
     
        
        
    }
    menu_destroy(menu)
    return PLUGIN_HANDLED
}

public interp1(id)
    client_cmd(id, "ex_interp 0.01")


public interp2(id)
    client_cmd(id, "ex_interp 0.02")


public interp3(id)
    client_cmd(id, "ex_interp 0.03")

ps2: z góry dzieki :D:D jak coś jutro po poludniu odpisze. :D
 

S!p

Administrator
Członek Załogi
Tak na szybko: sprawdzanie.amxx
PHP:
#include <amxmodx> 
#include <ColorChat> 
#define MIN_TIME 10.0 

new gcvarMinInterp,gcvarMaxInterp,gcvarPunish,gcvarPunishDelay; 
new gcvarShowTut, gcvarShowMenu; 



public plugin_init(){ 
	register_plugin("Pokaz interp","1.2.1","grankee&r3x") 
	gcvarMinInterp=    register_cvar("amx_mininterp","0.01",0,0.01); 
	gcvarMaxInterp=register_cvar("amx_maxinterp","0.01",0,0.03); 
	gcvarPunish=register_cvar("amx_baninterp_punish","0"); 
	gcvarPunishDelay=register_cvar("amx_baninterp_delay","15.0"); 
	gcvarShowTut=register_cvar("amx_show_tutorial","1"); 
	gcvarShowMenu = register_cvar("amx_show_menu","1") 
	pokaz() 
} 
public pokaz(){ 
	new players[32],count 
	get_players(players,count) 
	for(new i=0;i<count;i++){ 
		if(is_user_bot(players[i])) continue; 
		query_client_cvar(players[i],"ex_interp","interp"); 
	} 
	set_task(10.0, "pokaz"); 
} 
public interp(id,const cvar[],const value[]){ 
	new Float:val=str_to_float(value); 
	new Float:fMin=get_pcvar_float(gcvarMinInterp); 
	new Float:fMax=get_pcvar_float(gcvarMaxInterp); 
	if(val<fMin||val>fMax){ 
		new name[32] 
		get_user_name(id,name,31); 
		ColorChat(0, BLUE,"[Interp]^x01 Gracz ^x04%s^x01 ma zly interp (%s)",name,value); 
		if(get_pcvar_num(gcvarShowTut)>0){ 
			ColorChat(id, RED,"[Interp]^x01 Interp dozwolony na tym serwerze to zakres od ^x04%4.2f^x01 do ^x04%4.2f",fMin+0.0001,fMax+0.0001); 
			ColorChat(id, GREEN,"[Interp]^x01 Aby zmienic swoj interp na dozwolony na tym serwerze wpisz w consoli gry:"); 
			ColorChat(id, BLUE,"[Interp]^x01 ex_interp ^"wartosc^"");  
		} 
		if(gcvarShowMenu) 
		{ 
			menu(id)
		}
		if(get_pcvar_num(gcvarPunish)){ 
			if(!task_exists(id)){ 
				set_task(1.0,"odliczanie_hud",1339,_,_,"b")
			} 
		} 
	}else if(task_exists(id)) 
	remove_task(id); 
} 
stock disconnect(id, const szReason[], any:...){ 
	if(is_user_connected(id)){ 
		new szReason2[64]; 
		vformat(szReason2, 63, szReason, 3); 
		
		message_begin(MSG_ONE, SVC_DISCONNECT, _, id); 
		write_string(szReason2); 
		message_end(); 
	} 
} 
public kickuj(id){ 
	new Float:fMin=get_pcvar_float(gcvarMinInterp)+0.0001; 
	new Float:fMax=get_pcvar_float(gcvarMaxInterp)+0.0003; 
	console_print(id,"---------------------------------------"); 
	console_print(id,"[Interp] Interp dozwolony na tym serwerze to zakres od %4.2f do %4.2f",fMin,fMax); 
	console_print(id,"[Interp] Aby zmienic swoj interp na dozwolony na tym serwerze wpisz w consoli gry:"); 
	console_print(id,"[Interp] ex_interp ^"wartosc^"");  
	console_print(id,"---------------------------------------"); 
	
	disconnect(id, "^nZmien ex_interp^n(czytaj w konsoli)"); 
	
	new szName[32]; 
	get_user_name(id, szName, 32); 
	
	new Color:iColor=GREY; 
	new iTeam=get_user_team(id); 
	if(iTeam==1) 
		iColor=RED; 
	else if(iTeam==2) 
		iColor=BLUE; 
	
	ColorChat(0, iColor, "Gracz^x03 %s^x01 zostal rozlaczony z powodu zlej wartosci^x04 ex_interp", szName); 
}  

public menu(id) 
{ 
	new menu = menu_create("Ustaw sobie interp:", "wybieranie") 
	
	menu_additem(menu, "0.01", "1", 0) 
	menu_additem(menu, "0.02", "2", 0) 
	menu_additem(menu, "0.03", "3", 0) 
	menu_display(id, menu,0) 
	
	
} 
public wybieranie(id, menu, item) 
{ 
	if (item == MENU_EXIT) 
	{ 
		client_cmd(id, "ex_interp 0.01") 
		client_print(id, print_chat, "[AMXX] * Twoj interp zostal zmieniony na: 0.01") 
		client_print(id, print_chat, "[AMXX] * Interp mozesz zmienic za pomoca komendy /interp") 
		client_print(id, print_chat, "[AMXX] * Dziekujemy, GL & HF!") 
	} 
	new data[6], iName[64] 
	new acces, callback 
	menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback) 
	new key = str_to_num(data) 
	
	switch(key) 
	{ 
		case 1:{ 
			client_print(id, print_chat, "[AMXX] * Twoj interp zostal zmieniony na: 0.01") 
			client_print(id, print_chat, "[AMXX] * Interp mozesz zmienic za pomoca komendy /interp") 
			client_print(id, print_chat, "[AMXX] * Dziekujemy, GL & HF!") 
			set_task(1.0, "interp1", id) 
			menu_destroy(menu) 
			return PLUGIN_HANDLED 
		} 
		
		case 2:{ 
			client_print(id, print_chat, "[AMXX] * Twoj interp zostal zmieniony na: 0.02") 
			client_print(id, print_chat, "[AMXX] * Interp mozesz zmienic za pomoca komendy /interp") 
			client_print(id, print_chat, "[AMXX] * Dziekujemy, GL & HF!") 
			set_task(1.0, "interp2", id) 
			menu_destroy(menu) 
			return PLUGIN_HANDLED 
		} 
		
		case 3:{ 
			client_print(id, print_chat, "[AMXX] * Twoj interp zostal zmieniony na: 0.03") 
			client_print(id, print_chat, "[AMXX] * Interp mozesz zmienic za pomoca komendy /interp") 
			client_print(id, print_chat, "[AMXX] * Dziekujemy, GL & HF!") 
			set_task(1.0, "interp3", id) 
			menu_destroy(menu) 
			return PLUGIN_HANDLED 
		} 
		
		
		
		
	} 
	menu_destroy(menu) 
	return PLUGIN_HANDLED 
} 

public interp1(id) 
	client_cmd(id, "ex_interp 0.01") 


public interp2(id) 
	client_cmd(id, "ex_interp 0.02") 


public interp3(id) 
	client_cmd(id, "ex_interp 0.03")  
	
public odliczanie_hud(id)
{	
	
	new kolor1 = random_num(0,255)
	new kolor2 = random_num(0,255)
	new kolor3 = random_num(0,255)
	
	if(gcvarPunishDelay >= 4) 
		set_hudmessage(kolor1, kolor2, kolor3, 0.03, 0.1, 1, 6.0, -1.0,0.1,0.1)
	else 
		set_hudmessage(kolor1, kolor2, kolor3, 0.03, 0.1, 1, 6.0, 1.0)	
	
	show_hudmessage(0, "Zostalo Ci %d sekund na zmiane interpu!",gcvarPunishDelay)
	
	switch(gcvarPunishDelay) {
		case 3: client_cmd(0,"speak vox/three")
		case 2: client_cmd(0,"speak vox/two")
		case 1: client_cmd(0,"speak vox/one")
		case 0: {
		client_cmd(0,"speak vox/exit")
		kickuj(id)
		remove_task(1339)
		}
		
	}	
	gcvarPunishDelay --
}

Jeśli nie zadziała - dopiero w sobotę będę miał wolne żeby poprawić. ew może Amxxmaster poprawi? :)
 

amxxmaster

New member
niema czego poprawiac, wydaje mi sie ze wszystko jest w porzadku tylko poco taki spam z tym colorchatem ?:p wydaje mi sie ze plugin wyboru interpu powinien byc prosty i zwykly, takie sa najlepsze
 

S!p

Administrator
Członek Załogi
PHP:
#include <amxmodx> 
#include <ColorChat> 
#define MIN_TIME 10.0 

new gcvarMinInterp,gcvarMaxInterp; 
new gcvarShowTut, gcvarShowMenu, gcvarTask, gSyncMessage4; 
new czas = 15



public plugin_init(){ 
	register_plugin("Pokaz interp","1.2.1","grankee&r3x") 
	gcvarMinInterp=    register_cvar("amx_mininterp","0.01",0,0.01); 
	gcvarMaxInterp=register_cvar("amx_maxinterp","0.01",0,0.03); 
	gcvarShowTut=register_cvar("amx_show_tutorial","1"); 
	gcvarShowMenu = register_cvar("amx_show_menu","1") 
	gcvarTask = register_cvar("amx_odliczanie","1")
	gSyncMessage4 = CreateHudSyncObj();  
	pokaz() 
} 
public pokaz(){ 
	new players[32],count 
	get_players(players,count) 
	for(new i=0;i<count;i++){ 
		if(is_user_bot(players[i])) continue; 
		query_client_cvar(players[i],"ex_interp","interp"); 
	} 
	set_task(10.0, "pokaz"); 
} 
public interp(id,const cvar[],const value[]){ 
	new Float:val=str_to_float(value); 
	new Float:fMin=get_pcvar_float(gcvarMinInterp); 
	new Float:fMax=get_pcvar_float(gcvarMaxInterp); 
	if(val<fMin||val>fMax){ 
		new name[32] 
		get_user_name(id,name,31); 
		ColorChat(0, BLUE,"[Interp]^x01 Gracz ^x04%s^x01 ma zly interp (%s)",name,value); 
		if(get_pcvar_num(gcvarShowTut)>0){ 
			ColorChat(id, RED,"[Interp]^x01 Interp dozwolony na tym serwerze to zakres od ^x04%4.2f^x01 do ^x04%4.2f",fMin+0.0001,fMax+0.0001); 
			ColorChat(id, GREEN,"[Interp]^x01 Aby zmienic swoj interp na dozwolony na tym serwerze wpisz w consoli gry:"); 
			ColorChat(id, BLUE,"[Interp]^x01 ex_interp ^"wartosc^"");  
		} 
		if(gcvarShowMenu) 
		{ 
			menu(id)
		}
		if(get_pcvar_num(gcvarTask)){ 
			if(!task_exists(id)){ 
				set_task(1.0,"odliczanie_hud",1339,_,_,"b")
			} 
		} 
	}else if(task_exists(id)) 
	remove_task(id); 
} 
stock disconnect(id, const szReason[], any:...){ 
	if(is_user_connected(id)){ 
		new szReason2[64]; 
		vformat(szReason2, 63, szReason, 3); 
		
		message_begin(MSG_ONE, SVC_DISCONNECT, _, id); 
		write_string(szReason2); 
		message_end(); 
	} 
} 
public kickuj(id){ 
	new Float:fMin=get_pcvar_float(gcvarMinInterp)+0.0001; 
	new Float:fMax=get_pcvar_float(gcvarMaxInterp)+0.0003; 
	console_print(id,"---------------------------------------"); 
	console_print(id,"[Interp] Interp dozwolony na tym serwerze to zakres od %4.2f do %4.2f",fMin,fMax); 
	console_print(id,"[Interp] Aby zmienic swoj interp na dozwolony na tym serwerze wpisz w consoli gry:"); 
	console_print(id,"[Interp] ex_interp ^"wartosc^"");  
	console_print(id,"---------------------------------------"); 
	
	disconnect(id, "^nZmien ex_interp^n(czytaj w konsoli)"); 
	
	new szName[32]; 
	get_user_name(id, szName, 32); 
	
	new Color:iColor=GREY; 
	new iTeam=get_user_team(id); 
	if(iTeam==1) 
		iColor=RED; 
	else if(iTeam==2) 
		iColor=BLUE; 
	
	ColorChat(0, iColor, "Gracz^x03 %s^x01 zostal rozlaczony z powodu zlej wartosci^x04 ex_interp", szName); 
}  

public menu(id) 
{ 
	new menu = menu_create("Ustaw sobie interp:", "wybieranie") 
	
	menu_additem(menu, "0.01", "1", 0) 
	menu_additem(menu, "0.02", "2", 0) 
	menu_additem(menu, "0.03", "3", 0) 
	menu_display(id, menu,0) 
	
	
} 
public wybieranie(id, menu, item) 
{ 
	if (item == MENU_EXIT) 
	{ 
		client_cmd(id, "ex_interp 0.01") 
		client_print(id, print_chat, "[AMXX] * Twoj interp zostal zmieniony na: 0.01") 
		client_print(id, print_chat, "[AMXX] * Interp mozesz zmienic za pomoca komendy /interp") 
		client_print(id, print_chat, "[AMXX] * Dziekujemy, GL & HF!") 
	} 
	new data[6], iName[64] 
	new acces, callback 
	menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback) 
	new key = str_to_num(data) 
	
	switch(key) 
	{ 
		case 1:{ 
			client_print(id, print_chat, "[AMXX] * Twoj interp zostal zmieniony na: 0.01") 
			client_print(id, print_chat, "[AMXX] * Interp mozesz zmienic za pomoca komendy /interp") 
			client_print(id, print_chat, "[AMXX] * Dziekujemy, GL & HF!") 
			set_task(1.0, "interp1", id) 
			remove_task(1339)
			menu_destroy(menu) 
			return PLUGIN_HANDLED 
		} 
		
		case 2:{ 
			client_print(id, print_chat, "[AMXX] * Twoj interp zostal zmieniony na: 0.02") 
			client_print(id, print_chat, "[AMXX] * Interp mozesz zmienic za pomoca komendy /interp") 
			client_print(id, print_chat, "[AMXX] * Dziekujemy, GL & HF!") 
			set_task(1.0, "interp2", id) 
			remove_task(1339)
			menu_destroy(menu) 
			return PLUGIN_HANDLED 
		} 
		
		case 3:{ 
			client_print(id, print_chat, "[AMXX] * Twoj interp zostal zmieniony na: 0.03") 
			client_print(id, print_chat, "[AMXX] * Interp mozesz zmienic za pomoca komendy /interp") 
			client_print(id, print_chat, "[AMXX] * Dziekujemy, GL & HF!") 
			set_task(1.0, "interp3", id) 
			remove_task(1339)
			menu_destroy(menu) 
			return PLUGIN_HANDLED 
		} 
		
		
		
		
	} 
	menu_destroy(menu) 
	return PLUGIN_HANDLED 
} 

public interp1(id) 
	client_cmd(id, "ex_interp 0.01") 


public interp2(id) 
	client_cmd(id, "ex_interp 0.02") 


public interp3(id) 
	client_cmd(id, "ex_interp 0.03")  

public odliczanie_hud(id)
{    
	
	new kolor1 = random_num(0,255)
	new kolor2 = random_num(0,255)
	new kolor3 = random_num(0,255)
	if(czas >= 4) 
		set_hudmessage(kolor1, kolor2, kolor3, 0.10, 0.1, 1, 6.0, -1.0,0.1,0.1)
	else 
		set_hudmessage(kolor1, kolor2, kolor3, 0.10, 0.1, 1, 6.0, 1.0)    
	
	ShowSyncHudMsg(id,gSyncMessage4,"Zostalo Ci %d sekund na zmiane interpu!",czas)
	
	switch(czas) {
		case 3: client_cmd(id,"speak vox/three")
			case 2: client_cmd(id,"speak vox/two")
			case 1: client_cmd(id,"speak vox/one")
			case 0: {
			client_cmd(id,"speak vox/exit")
			kickuj(id)
			remove_task(1339)
		}
		
	}    
	czas --
}
 

Create an account or login to comment

You must be a member in order to leave a comment

Create account

Create an account on our community. It's easy!

Log in

Already have an account? Log in here.

Back
Do góry