Może ktoś przerobić plugin tak żeby zanim bind " " "+paint" był na "+mazak"
#include <amxmodx>
#include <amxmisc>#include <fakemeta>#include <xs>#include <colorchat>#define PLUGIN "Magic Marker"#define VERSION "3.01"#define AUTHOR "stupok69 edited by bNN"#define MAX_PLAYERS 32#define USAGE_LEVEL 0new Float:origin[MAX_PLAYERS+1][3]new prethink_counter[MAX_PLAYERS+1]new bool:is_drawing[MAX_PLAYERS+1]new bool:is_holding[MAX_PLAYERS+1]new spriteidnew red[33], green[33], blue[33];new bool: los[33];public plugin_init(){register_plugin(PLUGIN, VERSION, AUTHOR)register_clcmd("+paint", "paint_handler", USAGE_LEVEL, "Paint on the walls!")register_clcmd("-paint", "paint_handler", USAGE_LEVEL, "Paint on the walls!")register_forward(FM_PlayerPreThink, "forward_FM_PlayerPreThink", 0)register_clcmd("say /marker", "Menu");register_clcmd("amx_marker", "Menu");register_clcmd("Podaj_Kolor_Czerwony", "HandleWprowadzRed", -1)register_clcmd("Podaj_Kolor_Zielony", "HandleWprowadzGreen", -1);register_clcmd("Podaj_Kolor_Niebieski", "HandleWprowadzBlue", -1);}public client_connect(id){red[id] = 0green[id] = 0blue[id] = 0los[id] = true}public plugin_precache(){spriteid = precache_model("sprites/lgtning.spr")}public Menu(id){if(get_user_flags(id) & USAGE_LEVEL || USAGE_LEVEL == 0){new menu = menu_create("\yWybierz Kolor Markera", "HandleMenu");menu_additem(menu, "\yKonfiguracja RGB", "1", 0);menu_additem(menu, "\yZapisane Kolory", "2", 0);menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);menu_setprop(menu, MPROP_EXITNAME, "\yWyjscie");menu_display(id, menu, 0);return PLUGIN_HANDLED;}else{ColorChat(id, GREEN, "Marker jest tylko dla vipow.");}return PLUGIN_CONTINUE}public HandleMenu(id, menu, item){if (item == MENU_EXIT){menu_destroy(menu);return PLUGIN_HANDLED;}new data[6], iName[64];new acces, callback;menu_item_getinfo(menu, item, acces, data, charsmax(data), iName, charsmax(iName), callback);switch(item + 1){case 1:{RGB(id)}case 2:{ColorMenu(id)}}menu_destroy(menu);return PLUGIN_HANDLED;}public ColorMenu(id){new String[128]new menu = menu_create("\yWybierz Kolor Markera", "HandleColorMenu");formatex(String, charsmax(String), "\y Losowy [\r %s \y]", los[id] ? "Enabled" : "Disabled")menu_additem(menu, String, "1", 0);menu_additem(menu, "\y Czerwony \d R : 255 G: 0 B: 0", "2", 0);menu_additem(menu, "\y Zielony \d R : 0 G: 255 B: 0", "3", 0);menu_additem(menu, "\y Jasny Zielony \d R : 100 G: 255 B: 0", "4", 0);menu_additem(menu, "\y Niebieski \d R : 0 G: 0 B: 255", "5", 0);menu_additem(menu, "\y Bialy \d R : 255 G: 255 B: 255", "6", 0);menu_additem(menu, "\y Zolty \d R : 255 G: 255 B: 0", "7", 0);menu_additem(menu, "\y Pomaranczowy \d R : 255 G: 165 B: 0", "8", 0);menu_additem(menu, "\y Cyjan \d R :0 G: 255 B: 255", "9", 0);menu_additem(menu, "\y Rozowy \d R :255 G: 153 B: 255", "10", 0);menu_additem(menu, "\y Brazawy \d R :153 G: 102 B: 0", "11", 0);menu_additem(menu, "\y Wroc do Glownego Menu", "12", 0);menu_setprop(menu, MPROP_NUMBER_COLOR, "\r")menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);menu_setprop(menu, MPROP_BACKNAME, "\yPowrot");menu_setprop(menu, MPROP_NEXTNAME, "\yDalej");menu_setprop(menu, MPROP_EXITNAME, "\yWyjscie");menu_display(id, menu, 0);return PLUGIN_HANDLED;}public HandleColorMenu(id, menu, item){if (item == MENU_EXIT){menu_destroy(menu);return PLUGIN_HANDLED;}new data[6], iName[64];new acces, callback;menu_item_getinfo(menu, item, acces, data, charsmax(data), iName, charsmax(iName), callback);if(item+1 >1 && item+1 < 13) los[id] = false;switch(item + 1){case 1:{if(!los[id]){los[id] = true}else{los[id] = false}ColorMenu(id);}case 2:{red[id] = 255green[id] = 0blue[id] = 0ColorChat(id ,GREEN, "Kolor zostal zmieniony na czerwony.");ColorMenu(id);}case 3:{red[id] = 0green[id] = 255blue[id] = 0ColorChat(id ,GREEN, "Kolor zostal zmieniony na zielony.");ColorMenu(id);}case 4:{red[id] = 100green[id] = 255blue[id] = 0ColorChat(id ,GREEN, "Kolor zostal zmieniony na zielony.");ColorMenu(id);}case 5:{red[id] = 0green[id] = 0blue[id] = 255ColorChat(id ,GREEN, "Kolor zostal zmieniony na niebieski.");ColorMenu(id);}case 6:{red[id] = 255green[id] = 255blue[id] = 255ColorChat(id ,GREEN, "Kolor zostal zmieniony na Bialy.");ColorMenu(id);}case 7:{red[id] = 255green[id] = 255blue[id] = 0ColorChat(id ,GREEN, "Kolor zostal zmieniony na Zolty.");ColorMenu(id);}case 8:{red[id] = 255green[id] = 165blue[id] = 0ColorChat(id ,GREEN, "Kolor zostal zmieniony na Pomaranczowy.");menu_display(id, menu, 1)}case 9:{red[id] = 0green[id] = 255blue[id] = 255ColorChat(id ,GREEN, "Kolor zostal zmieniony na Cyjan.");menu_display(id, menu, 1)}case 10:{red[id] = 255green[id] = 153blue[id] = 255ColorChat(id ,GREEN, "Kolor zostal zmieniony na Rozowy.");menu_display(id, menu, 1)}case 11:{red[id] = 153green[id] = 102blue[id] = 0ColorChat(id ,GREEN, "Kolor zostal zmieniony na Brazowy.");menu_display(id, menu, 1)}case 12:{Menu(id)}}return PLUGIN_HANDLED;}public RGB(id){new String[128]new menu = menu_create("\yWybierz kolor markera", "HandleRGB");formatex(String, charsmax(String), "\yLosowy [\r %s \y]", los[id] ? "Enabled" : "Disabled")menu_additem(menu, String, "1", 0);formatex(String, charsmax(String), "\yCzerwony \r[\w %d / 255 \r]", red[id])menu_additem(menu, String, "2", 0);formatex(String, charsmax(String), "\yZielony \r[\w %d / 255 \r]", green[id])menu_additem(menu, String, "3", 0);formatex(String, charsmax(String), "\yNiebieski \r[\w %d / 255 \r]", blue[id])menu_additem(menu, String, "4", 0);menu_additem(menu, "\yPowrot", "5", 0);menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);menu_setprop(menu, MPROP_EXITNAME, "\yWyjscie");menu_display(id, menu, 0);return PLUGIN_HANDLED;}public HandleRGB(id, menu, item){if (item == MENU_EXIT){menu_destroy(menu);return PLUGIN_HANDLED;}new data[6], iName[64];new acces, callback;menu_item_getinfo(menu, item, acces, data, charsmax(data), iName, charsmax(iName), callback);if(item+1 >1 && item+1 < 5) los[id] = false;switch(item + 1){case 1:{if(!los[id]){los[id] = true}else{los[id] = false}RGB(id)}case 2:{client_cmd(id, "messagemode Podaj_Kolor_Czerwony");}case 3:{client_cmd(id, "messagemode Podaj_Kolor_Zielony");}case 4:{client_cmd(id, "messagemode Podaj_Kolor_Niebieski");}case 5 :{menu_destroy(menu);Menu(id)return PLUGIN_HANDLED;}}menu_destroy(menu);return PLUGIN_HANDLED;}public HandleWprowadzRed(id){static arg[6];read_argv(1, arg, 5);if ( !strlen(arg) ){client_print(id, print_chat, "Nie moze zostac puste!");client_cmd(id, "messagemode Podaj_Kolor_Czerwony");return PLUGIN_HANDLED;}if( str_to_num(arg) > 255){client_print(id, print_chat, "Wartosc nie mozesz byc wieksza od 255");client_cmd(id, "messagemode Podaj_Kolor_Czerwony");return PLUGIN_HANDLED}red[id] = str_to_num(arg);RGB(id)return PLUGIN_HANDLED;}public HandleWprowadzGreen(id){static arg[6];read_argv(1, arg, 5);if ( !strlen(arg) ){client_print(id, print_chat, "Nie moze zostac puste!");client_cmd(id, "messagemode Podaj_Kolor_Niebieski");return PLUGIN_HANDLED;}if( str_to_num(arg) > 255){client_print(id, print_chat, "Wartosc nie mozesz byc wieksza od 255");client_cmd(id, "messagemode Podaj_Kolor_Niebieski");return PLUGIN_HANDLED}green[id] = str_to_num(arg);RGB(id)return PLUGIN_HANDLED;}public HandleWprowadzBlue(id){static arg[6];read_argv(1, arg, 5);if ( !strlen(arg) ){client_print(id, print_chat, "Nie moze zostac puste!");client_cmd(id, "messagemode Podaj_Kolor_Zielony");return PLUGIN_HANDLED;}if( str_to_num(arg) > 255){client_print(id, print_chat, "Wartosc nie mozesz byc wieksza od 255");client_cmd(id, "messagemode WprowadzLiczbe3");return PLUGIN_HANDLED}blue[id] = str_to_num(arg);RGB(id)return PLUGIN_HANDLED;}public paint_handler(id, level, cid){if(!cmd_access(id, level, cid, 1))return PLUGIN_HANDLEDif(!is_user_alive(id)){return PLUGIN_HANDLED}static cmd[2]read_argv(0, cmd, 1)switch(cmd[0]){case '+': is_drawing[id] = truecase '-': is_drawing[id] = false}return PLUGIN_HANDLED}public forward_FM_PlayerPreThink(id){if(prethink_counter[id]++ > 5){if(is_drawing[id] && !is_aiming_at_sky(id) && is_user_alive(id)){static Float:cur_origin[3], Float:distancecur_origin = origin[id]if(!is_holding[id]){fm_get_aim_origin(id, origin[id])move_toward_client(id, origin[id])is_holding[id] = truereturn FMRES_IGNORED}fm_get_aim_origin(id, origin[id])move_toward_client(id, origin[id])distance = get_distance_f(origin[id], cur_origin)if(distance > 2){if(los[id]){draw_line(origin[id], cur_origin, random(255), random(255), random(255))}else{draw_line(origin[id], cur_origin, red[id], green[id], blue[id])}}}else{is_holding[id] = false}prethink_counter[id] = 0}return FMRES_IGNORED}stock draw_line(Float:origin1[3], Float:origin2[3], r, g,{message_begin(MSG_BROADCAST,SVC_TEMPENTITY)write_byte(TE_BEAMPOINTS)engfunc(EngFunc_WriteCoord, origin1[0])engfunc(EngFunc_WriteCoord, origin1[1])engfunc(EngFunc_WriteCoord, origin1[2])engfunc(EngFunc_WriteCoord, origin2[0])engfunc(EngFunc_WriteCoord, origin2[1])engfunc(EngFunc_WriteCoord, origin2[2])write_short(spriteid)write_byte(0)write_byte(10)write_byte(255)write_byte(50)write_byte(0)write_byte®write_byte(g)write_byte(write_byte(255)write_byte(0)message_end()}//from fakemeta_util.incstock fm_get_aim_origin(index, Float:origin[3]){static Float:start[3], Float:view_ofs[3]pev(index, pev_origin, start)pev(index, pev_view_ofs, view_ofs)xs_vec_add(start, view_ofs, start)static Float:dest[3]pev(index, pev_v_angle, dest)engfunc(EngFunc_MakeVectors, dest)global_get(glb_v_forward, dest)xs_vec_mul_scalar(dest, 9999.0, dest)xs_vec_add(start, dest, dest)engfunc(EngFunc_TraceLine, start, dest, 0, index, 0)get_tr2(0, TR_vecEndPos, origin)return 1}stock move_toward_client(id, Float:origin[3]){static Float:player_origin[3]pev(id, pev_origin, player_origin)origin[0] += (player_origin[0] > origin[0]) ? 1.0 : -1.0origin[1] += (player_origin[1] > origin[1]) ? 1.0 : -1.0origin[2] += (player_origin[2] > origin[2]) ? 1.0 : -1.0}//Thanks Alka!stock bool:is_aiming_at_sky(index){static target, tempget_user_aiming(index, target, temp)if(engfunc(EngFunc_PointContents,target) == CONTENTS_SKY)return truereturn false}