Yo,mam taką prośbę do kogoś kto umie pisać pluginy
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
ps2: z góry dzieki jak coś jutro po poludniu odpisze.
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 jak coś jutro po poludniu odpisze.