Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Przerobienie magic marker


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
3 odpowiedzi w tym temacie

#1 domin620

    Pomocny

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:40
  • Imię:Dominik
  • Lokalizacja:Ziebice
Offline

Napisano 18.04.2016 11:03

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 0
 
new 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 spriteid
 
new 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] = 0
green[id] = 0
blue[id] = 0
los[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] = 255
green[id] = 0
blue[id] = 0
ColorChat(id ,GREEN, "Kolor zostal zmieniony na czerwony.");
ColorMenu(id);
}
case 3:
{
red[id] = 0
green[id] = 255
blue[id] = 0
ColorChat(id ,GREEN, "Kolor zostal zmieniony na zielony.");
ColorMenu(id);
}
case 4:
{
red[id] = 100
green[id] = 255
blue[id] = 0
ColorChat(id ,GREEN, "Kolor zostal zmieniony na zielony.");
ColorMenu(id);
}
case 5:
{
red[id] = 0
green[id] = 0
blue[id] = 255
ColorChat(id ,GREEN, "Kolor zostal zmieniony na niebieski.");
ColorMenu(id);
}
case 6:
{
red[id] = 255
green[id] = 255
blue[id] = 255
ColorChat(id ,GREEN, "Kolor zostal zmieniony na Bialy.");
ColorMenu(id);
}
case 7:
{
red[id] = 255
green[id] = 255
blue[id] = 0
ColorChat(id ,GREEN, "Kolor zostal zmieniony na Zolty.");
ColorMenu(id);
}
case 8:
{
red[id] = 255
green[id] = 165
blue[id] = 0
ColorChat(id ,GREEN, "Kolor zostal zmieniony na Pomaranczowy.");
menu_display(id, menu, 1)
}
case 9:
{
red[id] = 0
green[id] = 255 
blue[id] = 255
ColorChat(id ,GREEN, "Kolor zostal zmieniony na Cyjan.");
menu_display(id, menu, 1)
}
case 10:
{
red[id] = 255
green[id] = 153
blue[id] = 255
ColorChat(id ,GREEN, "Kolor zostal zmieniony na Rozowy.");
menu_display(id, menu, 1)
 
}
case 11:
{
red[id] = 153
green[id] = 102 
blue[id] = 0
ColorChat(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_HANDLED
 
if(!is_user_alive(id))
{
return PLUGIN_HANDLED
}
 
static cmd[2]
read_argv(0, cmd, 1)
 
switch(cmd[0])
{
case '+': is_drawing[id] = true
case '-': 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:distance
 
cur_origin = origin[id]
 
if(!is_holding[id])
{
fm_get_aim_origin(id, origin[id])
move_toward_client(id, origin[id])
is_holding[id] = true
return 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, B)
{
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(B)
write_byte(255)
write_byte(0)
message_end()
}
 
//from fakemeta_util.inc
stock 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.0
origin[1] += (player_origin[1] > origin[1]) ? 1.0 : -1.0
origin[2] += (player_origin[2] > origin[2]) ? 1.0 : -1.0
}
//Thanks Alka!
stock bool:is_aiming_at_sky(index)
{
static target, temp
 
get_user_aiming(index, target, temp)
 
if(engfunc(EngFunc_PointContents,target) == CONTENTS_SKY)
return true
 
return false
}
 
 

 


  • +
  • -
  • 0

#2 Robiin

    Godlike

  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 048
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 18.04.2016 11:33

masz

 

Załączone pliki


Użytkownik asik edytował ten post 18.04.2016 11:34

  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#3 domin620

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:40
  • Imię:Dominik
  • Lokalizacja:Ziebice
Offline

Napisano 18.04.2016 12:40

Czemu nie da się go z komplikować? :D


Użytkownik domin620 edytował ten post 18.04.2016 12:42

  • +
  • -
  • 0

#4 domin620

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:40
  • Imię:Dominik
  • Lokalizacja:Ziebice
Offline

Napisano 18.04.2016 13:08

Wszystko działa do zamkniecia dzięki asik


  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych