Tag przed nickiem
PROstyCzlowiek
23.07.2011
Witam Serdecznie !
Prosiłbym o plugin który dodaje tag przed nickiem - nie ma zmieniać nicku. Szukałem, ale to co znalazłem nie sprawdziło się.
Miały by być cztery rodzaje tagów przed nickiem:
1. [Head-Admin]
2. [Admin]
3. [Vip]
4. [Premium]
Na flagę:
1. ADMIN_IMMUNITY
2. ADMIN_KICK
3. ADMIN_LEVEL_G
4. ADMIN_LEVEL_H
Flagi nie są bardzo ważne - jak będzie kod sma to go edytuję.
Znalazłem Tag Przed Nickiem - AMXX.pl: Support AMX Mod X , gdy kod sma który dodał AmD w pierwszym poście edytowałem, żeby dawał tag dla [Head-Admin] działał dobrze. Gdy zrobiłem drugi plugin (ten sam kod), żeby dodawał adminowi [Admin] działał, ale jak admin pisał to wychodził oto dwa razy.
Pozdrawiam serdecznie PROstyCzlowiek!
Dodano 23 lipiec 2011 - 17:00:
Mój drugi problem:
Na serwerze mam cod mod [CoD Nowy] Call of Duty: MW Mod [UPDATE] - AMXX.pl: Support AMX Mod X , zainstalowałem [CoD Nowy] Admin Menu - v 1.5 - AMXX.pl: Support AMX Mod X W cvarach mam ustawiony max lvl - 16.000. Gdy daje lvl przez /codadmin wybieram gracza - wpisuje lvl 15999 to gracz dostaje lvl: -3783 (lvl na minusie). Co zrobić?
Prosiłbym o plugin który dodaje tag przed nickiem - nie ma zmieniać nicku. Szukałem, ale to co znalazłem nie sprawdziło się.

Miały by być cztery rodzaje tagów przed nickiem:
1. [Head-Admin]
2. [Admin]
3. [Vip]
4. [Premium]
Na flagę:
1. ADMIN_IMMUNITY
2. ADMIN_KICK
3. ADMIN_LEVEL_G
4. ADMIN_LEVEL_H
Flagi nie są bardzo ważne - jak będzie kod sma to go edytuję.
Znalazłem Tag Przed Nickiem - AMXX.pl: Support AMX Mod X , gdy kod sma który dodał AmD w pierwszym poście edytowałem, żeby dawał tag dla [Head-Admin] działał dobrze. Gdy zrobiłem drugi plugin (ten sam kod), żeby dodawał adminowi [Admin] działał, ale jak admin pisał to wychodził oto dwa razy.
Pozdrawiam serdecznie PROstyCzlowiek!
Dodano 23 lipiec 2011 - 17:00:
Mój drugi problem:
Na serwerze mam cod mod [CoD Nowy] Call of Duty: MW Mod [UPDATE] - AMXX.pl: Support AMX Mod X , zainstalowałem [CoD Nowy] Admin Menu - v 1.5 - AMXX.pl: Support AMX Mod X W cvarach mam ustawiony max lvl - 16.000. Gdy daje lvl przez /codadmin wybieram gracza - wpisuje lvl 15999 to gracz dostaje lvl: -3783 (lvl na minusie). Co zrobić?
MarWit
23.07.2011
Kiedyś napisałem sobie coś podobnego, ale nie wiem czy ci będzie odpowiadało ( pozmieniałem pod ciebie )

Załączone pliki
PROstyCzlowiek
23.07.2011
Dziękuję Tobie bardzo
Użytkownik PROstyCzlowiek edytował ten post 24.07.2011 17:32

Użytkownik PROstyCzlowiek edytował ten post 24.07.2011 17:32
PROstyCzlowiek
24.07.2011
Po do głębszym przetestowaniu coś mi szwankuje ;/ Każdy kto ma jedną z tych flag ma napisane Head-Admin. Co zrobić?
exexe
24.07.2011
Zoptymalizowana wersja w kodzie, sprawdź:
Użytkownik abcus edytował ten post 24.07.2011 18:01
#include <amxmodx>
#include <ColorChat>
new flaga[33];
public plugin_init()
{
register_plugin("Admin Tag", "1.0", "abc")
register_clcmd("say", "handle_say")
}
public client_connect(id) sprawdz(id);
public client_disconnect(id) flaga[id] = 0;
public handle_say(id)
{
if(flaga[id] == 0) return PLUGIN_CONTINUE
flaga[id] = 4
new message[192]
read_args(message, 191)
remove_quotes(message)
trim(message)
if(message[0] == '/' || message[0] == '@' || message[0] == '!' || equal(message, ""))
return PLUGIN_CONTINUE
Wyslij_Wiadomosc(id, message)
return PLUGIN_HANDLED
}
public Wyslij_Wiadomosc(id, message[192])
{
new bool:zyje, dead[9], nick[32], druzyna = 0;
if ( is_user_alive(id) ) zyje = true;
formatex(dead, 8, "* DEAD *");
get_user_name(id, nick, 31)
switch ( get_user_team(id) )
{
case 1: druzyna = 1;
case 2: druzyna = 2;
}
switch ( flaga[id] )
{
case 4: ColorChat(0, druzyna == 0 ? GREY : druzyna ? RED : BLUE, "%s [Head-Admin] ^x04%s : ^x01%s", zyje ? "" : dead, nick, message)
case 3: ColorChat(0, druzyna == 0 ? GREY : druzyna ? RED : BLUE, "%s [Admin] ^x04%s : ^x01%s", zyje ? "" : dead, nick, message)
case 2: ColorChat(0, druzyna == 0 ? GREY : druzyna ? RED : BLUE, "%s [Vip] ^x04%s : ^x01%s", zyje ? "" : dead, nick, message)
case 1: ColorChat(0, druzyna == 0 ? GREY : druzyna ? RED : BLUE, "%s [Premium] ^x04%s : ^x01%s", zyje ? "" : dead, nick, message)
}
}
public sprawdz(id)
{
switch ( get_user_flags(id) )
{
case ADMIN_IMMUNITY: flaga[id] = 4;
case ADMIN_KICK: flaga[id] = 3;
case ADMIN_LEVEL_G: flaga[id] = 2;
case ADMIN_LEVEL_H: flaga[id] = 1;
default: flaga[id] = 0;
}
}
Użytkownik abcus edytował ten post 24.07.2011 18:01
MarWit
24.07.2011
Ups bład
usuń flaga[id] = 4 nad new message[192]
@abcus, nie może tak byc gdyż znak "?" obsługuje tylko 2 argumenty wiec co będzie sie wysietlalo na specu
do reszta jest dobrze (napisałbym podobnie gdybym mial wczoraj czas
)

@abcus, nie może tak byc gdyż znak "?" obsługuje tylko 2 argumenty wiec co będzie sie wysietlalo na specu


A może sma?
24.07.2011
Łap bez buga wersje (testowana - musi działać
)
PS. MarWit fajny kod^^ Tylko na !@#$ sobie życie utrudniać?
Kod nie uwzględnia jednej ważnej rzeczy: specta
Użytkownik kisiel96 edytował ten post 24.07.2011 18:13

PS. MarWit fajny kod^^ Tylko na !@#$ sobie życie utrudniać?

Kod nie uwzględnia jednej ważnej rzeczy: specta
![:]](http://img.amxx.pl/public/style_emoticons/default/cwaniak.gif)
Załączone pliki
Użytkownik kisiel96 edytował ten post 24.07.2011 18:13
exexe
24.07.2011
@MarWit
Ja też zbyt dużo nie miałem czasu, ale coś tam naskrobałem ;d
To nie ma znaczenia "?" obsługuje więcej niż 2 znaki
Na specu, właśnie lipa, bo nie określiłeś, że spec = 3, a mi się tego już nie chciało robić.
@Temat
Teraz powinno hulać, daj znać czy działa.
Użytkownik abcus edytował ten post 24.07.2011 18:16
Ja też zbyt dużo nie miałem czasu, ale coś tam naskrobałem ;d
To nie ma znaczenia "?" obsługuje więcej niż 2 znaki

Na specu, właśnie lipa, bo nie określiłeś, że spec = 3, a mi się tego już nie chciało robić.
@Temat
#include <amxmodx>
#include <ColorChat>
new flaga[33];
public plugin_init()
{
register_plugin("Admin Tag", "1.0", "abc")
register_clcmd("say", "handle_say")
}
public client_connect(id) sprawdz(id);
public client_disconnect(id) flaga[id] = 0;
public handle_say(id)
{
if(flaga[id] == 0) return PLUGIN_HANDLED;
new message[192]
read_args(message, 191)
remove_quotes(message)
trim(message)
if(message[0] == '/' || message[0] == '@' || message[0] == '!' || equal(message, "")) return PLUGIN_HANDLED;
Wyslij_Wiadomosc(id, message)
return PLUGIN_HANDLED
}
public Wyslij_Wiadomosc(id, message[192])
{
new bool:zyje, dead[9], nick[32], druzyna = 0;
if ( is_user_alive(id) ) zyje = true;
formatex(dead, 8, "* DEAD *");
get_user_name(id, nick, 31)
switch ( get_user_team(id) )
{
case 1: druzyna = 1;
case 2: druzyna = 2;
case 3: druzyna = 0
}
switch ( flaga[id] )
{
case 4: ColorChat(0, druzyna == 0 ? GREY : druzyna ? RED : BLUE, "%s [Head-Admin] ^x04%s : ^x01%s", zyje ? "" : dead, nick, message)
case 3: ColorChat(0, druzyna == 0 ? GREY : druzyna ? RED : BLUE, "%s [Admin] ^x04%s : ^x01%s", zyje ? "" : dead, nick, message)
case 2: ColorChat(0, druzyna == 0 ? GREY : druzyna ? RED : BLUE, "%s [Vip] ^x04%s : ^x01%s", zyje ? "" : dead, nick, message)
case 1: ColorChat(0, druzyna == 0 ? GREY : druzyna ? RED : BLUE, "%s [Premium] ^x04%s : ^x01%s", zyje ? "" : dead, nick, message)
}
}
public sprawdz(id)
{
switch ( get_user_flags(id) )
{
case ADMIN_IMMUNITY: flaga[id] = 4;
case ADMIN_KICK: flaga[id] = 3;
case ADMIN_LEVEL_G: flaga[id] = 2;
case ADMIN_LEVEL_H: flaga[id] = 1;
default: flaga[id] = 0;
}
}
Teraz powinno hulać, daj znać czy działa.
Użytkownik abcus edytował ten post 24.07.2011 18:16
MarWit
24.07.2011
Jak dalej nie będzie działać, to jutro napisze to od początku jak najoptymalniej i dodam do działu "Pluginy" (dzisiaj juz nie mam czasu
).
@kisiel96, uwzględnia speca, myślisz ze czemu stworzyłem zmienna druzyna od razu ustawiana na 0
Użytkownik MarWit edytował ten post 24.07.2011 18:28

@kisiel96, uwzględnia speca, myślisz ze czemu stworzyłem zmienna druzyna od razu ustawiana na 0

Użytkownik MarWit edytował ten post 24.07.2011 18:28
A może sma?
24.07.2011
To napisz coś na spec... Wyświetli się: * DEAD * zamiast spec
Po 2. nie do końca... Dokumentacja AMXX.pl: Core >> amxmodx > get_user_team
Plugin uwzględniający speca:
AdminTag.sma 3,16 KB
86 Ilość pobrań
(usunąłem uwzględaninie braku wybranej drużyny - admin wtedy i tak nie może pisać
(no dobra, może ale na cholerę?))
Próbowałem przerobić ten wyżej, ale nie ogarnąłem go
Użytkownik kisiel96 edytował ten post 24.07.2011 18:49
Po 2. nie do końca... Dokumentacja AMXX.pl: Core >> amxmodx > get_user_team
Zwracane wartości to:
0 - brak wybranej drużyny
1 - terrorysci
2 - antyterrorysci
3 - obserwator
Plugin uwzględniający speca:

(usunąłem uwzględaninie braku wybranej drużyny - admin wtedy i tak nie może pisać

Próbowałem przerobić ten wyżej, ale nie ogarnąłem go

Użytkownik kisiel96 edytował ten post 24.07.2011 18:49
PROstyCzlowiek
24.07.2011
@MarWit
Ja też zbyt dużo nie miałem czasu, ale coś tam naskrobałem ;d
To nie ma znaczenia "?" obsługuje więcej niż 2 znaki
Na specu, właśnie lipa, bo nie określiłeś, że spec = 3, a mi się tego już nie chciało robić.
@Temat
#include <amxmodx>
#include <ColorChat>
new flaga[33];
public plugin_init()
{
register_plugin("Admin Tag", "1.0", "abc")
register_clcmd("say", "handle_say")
}
public client_connect(id) sprawdz(id);
public client_disconnect(id) flaga[id] = 0;
public handle_say(id)
{
if(flaga[id] == 0) return PLUGIN_HANDLED;
new message[192]
read_args(message, 191)
remove_quotes(message)
trim(message)
if(message[0] == '/' || message[0] == '@' || message[0] == '!' || equal(message, "")) return PLUGIN_HANDLED;
Wyslij_Wiadomosc(id, message)
return PLUGIN_HANDLED
}
public Wyslij_Wiadomosc(id, message[192])
{
new bool:zyje, dead[9], nick[32], druzyna = 0;
if ( is_user_alive(id) ) zyje = true;
formatex(dead, 8, "* DEAD *");
get_user_name(id, nick, 31)
switch ( get_user_team(id) )
{
case 1: druzyna = 1;
case 2: druzyna = 2;
case 3: druzyna = 0
}
switch ( flaga[id] )
{
case 4: ColorChat(0, druzyna == 0 ? GREY : druzyna ? RED : BLUE, "%s [Head-Admin] ^x04%s : ^x01%s", zyje ? "" : dead, nick, message)
case 3: ColorChat(0, druzyna == 0 ? GREY : druzyna ? RED : BLUE, "%s [Admin] ^x04%s : ^x01%s", zyje ? "" : dead, nick, message)
case 2: ColorChat(0, druzyna == 0 ? GREY : druzyna ? RED : BLUE, "%s [Vip] ^x04%s : ^x01%s", zyje ? "" : dead, nick, message)
case 1: ColorChat(0, druzyna == 0 ? GREY : druzyna ? RED : BLUE, "%s [Premium] ^x04%s : ^x01%s", zyje ? "" : dead, nick, message)
}
}
public sprawdz(id)
{
switch ( get_user_flags(id) )
{
case ADMIN_IMMUNITY: flaga[id] = 4;
case ADMIN_KICK: flaga[id] = 3;
case ADMIN_LEVEL_G: flaga[id] = 2;
case ADMIN_LEVEL_H: flaga[id] = 1;
default: flaga[id] = 0;
}
}
Teraz powinno hulać, daj znać czy działa.
Prawdę mówiąc : to chat nie działa (dla tych z tagiem)

A może sma?
24.07.2011
Skorzystaj ze sprawdzonych rozwiązań
Post nr 13: Tag przed nickiem - AMXX.pl: Support AMX Mod X - tutaj nie jest uwzględniany spec![:]](http://img.amxx.pl/public/style_emoticons/default/cwaniak.gif)
Post nr 10: Tag przed nickiem - AMXX.pl: Support AMX Mod X
Zalecam drugą wersję (w sumie to jej nie testowałem, ale powinna działać)
PS. MarWin: na !@#$ sprawdzasz w swoim pluginie, w przypadku gdy gracz nie ma drużyny czy przypadkiem żyje?
Widziałeś kiedyś gracza, bez drużyny, który biega po planszy? 
BTW: BARDZO fajny plugin
Użytkownik kisiel96 edytował ten post 24.07.2011 18:54

Post nr 13: Tag przed nickiem - AMXX.pl: Support AMX Mod X - tutaj nie jest uwzględniany spec
![:]](http://img.amxx.pl/public/style_emoticons/default/cwaniak.gif)
Post nr 10: Tag przed nickiem - AMXX.pl: Support AMX Mod X
Zalecam drugą wersję (w sumie to jej nie testowałem, ale powinna działać)
PS. MarWin: na !@#$ sprawdzasz w swoim pluginie, w przypadku gdy gracz nie ma drużyny czy przypadkiem żyje?


BTW: BARDZO fajny plugin

Użytkownik kisiel96 edytował ten post 24.07.2011 18:54
PROstyCzlowiek
24.07.2011
To napisz coś na spec... Wyświetli się: * DEAD * zamiast spec
Po 2. nie do końca... Dokumentacja AMXX.pl: Core >> amxmodx > get_user_teamZwracane wartości to:
0 - brak wybranej drużyny
1 - terrorysci
2 - antyterrorysci
3 - obserwator
Plugin uwzględniający speca:AdminTag.sma 3,16 KB 86 Ilość pobrań
(usunąłem uwzględaninie braku wybranej drużyny - admin wtedy i tak nie może pisać(no dobra, może ale na cholerę?))
Próbowałem przerobić ten wyżej, ale nie ogarnąłem go
Dzięki Ci bardzo !!!



Jednak działa, ale.
Ktoś kto ma taga moze pisac normalnie.
A zwykly uzytkownik (bez taga i bez flagi) musi pisac z "/" np. /witam
Czemu?

Mam tez pare innych problemów:
http://amxx.pl/topic...-i-lvl-cod-mod/
Użytkownik PROstyCzlowiek edytował ten post 24.07.2011 19:11
A może sma?
24.07.2011
Ale d*py teraz dałem
Łap działające (znowu^^):
AdminTag.sma 3,49 KB
104 Ilość pobrań
Tak na marginesie to żaden plugin prócz tego nie miał prawa przepuścić wiadomości od zwykłego usera, która nie zaczynała się @ albo / bądź też !
Tylko tego w sma nie rozumiem:
Po co sprawdzać czy wiadomość zaczyna się od... No właśnie, od czego?
Użytkownik kisiel96 edytował ten post 24.07.2011 19:21


Tak na marginesie to żaden plugin prócz tego nie miał prawa przepuścić wiadomości od zwykłego usera, która nie zaczynała się @ albo / bądź też !

Tylko tego w sma nie rozumiem:
equal(message, ""
Po co sprawdzać czy wiadomość zaczyna się od... No właśnie, od czego?

Użytkownik kisiel96 edytował ten post 24.07.2011 19:21
MarWit
25.07.2011
equal(message, ""To sprawdza czy wiadomosc jest pusta

P.S. Jak skończę pisać plugin to wrzuce na forum i dam tu linka.
Użytkownik MarWit edytował ten post 25.07.2011 14:14
byCZUS
25.07.2011
Krótsza ver. sprawdź sobie:
/* Script generated by Pawn Studio */
#include <amxmodx>
#include <ColorChat>
new const tagi[][] = {
{ ADMIN_IMMUNITY, "[Head Admin] " },
{ ADMIN_KICK, "[Admin] " },
{ ADMIN_LEVEL_G, "[VIP] " },
{ ADMIN_LEVEL_H, "[Premium] " }
}
public plugin_init() {
register_plugin("TAG", "1.0", "byCZEK");
register_clcmd("say", "handle_say");
}
public handle_say(id) {
new msg[256]; read_args(msg, 191);
new team = get_user_team(id);
new nick[33]; get_user_name(id, nick, 32);
new bool: b = false;
remove_quotes(msg);
for(new i = 0; i < sizeof(tagi); i++) {
if(get_user_flags(id) & tagi[i][0]) {
ColorChat(0, !team ? GREY : team ? RED : BLUE, "%s%s^x04%s: ^x01%s", tagi[i][1], is_user_alive(id) ? "" : "* DEAD * ", nick, msg);
b = true;
break;
}
}
return b ? PLUGIN_HANDLED : PLUGIN_CONTINUE;
}