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

Problem ze /slot


  • Zamknięty Temat jest zamknięty
16 odpowiedzi w tym temacie

#1 Misiaczek ;c

    /dev/null

  • Moderator

Reputacja: 1 678
Godlike

  • Postów:2 496
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 29.09.2008 14:29

Witam :) mam problem z pluginem :/ przerobiłem go i dalej pokazuje tylko adminów a osoby z tylko flaga "b" sa pomijane :/


Przerobione SMA:
/* Plugin generated by AMXX-Studio
*
* -= English =-
* Based on Admin Check 1.51 by OneEyed
* Edited by MisieQ
* 
* -= Polski =-
* Plugin w calosci bazuje na Admin Check w wersji 1.51 stworzeniej przez OneEyed
* Lekko zmodyfikowany przez MisieQ
*/

#include <amxmodx>

#define ADMIN_CHECK ADMIN_RESERVATION

static const COLOR[] = "^0x03" //kolo teamu
static const CONTACT[] = ""

new maxplayers
new gmsgSayText

public plugin_init() {
    register_plugin("Slot Check", "1.0", "MisieQ")
    maxplayers = get_maxplayers()
    gmsgSayText = get_user_msgid("SayText")
    register_clcmd("say", "handle_say")
    register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
}

public handle_say(id) {
    new said[192]
    read_args(said,192)
    if( ( containi(said, "who") != -1 && containi(said, "slot") != -1 ) || contain(said, "/slot") != -1 )
        set_task(0.1,"print_adminlist",id)
    return PLUGIN_CONTINUE
}
public print_adminlist(user)
{
    new adminnames[33][32]
    new message[256]
    new contactinfo[256], contact[112]
    new id, count, x, len

    for(id = 1 ; id <= maxplayers ; id++)
        if(is_user_connected(id))
            if(get_user_flags(id) & ADMIN_CHECK)
                get_user_name(id, adminnames[count++], 31)

    len = format(message, 255, "%s Osoby ze slotem: ",COLOR)
    if(count > 0) {
        for(x = 0 ; x < count ; x++) {
            len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
            if(len > 96 ) {
                print_message(user, message)
                len = format(message, 255, "%s ",COLOR)
            }
        }
        print_message(user, message)
    }
    else {
        len += format(message[len], 255-len, "Brak osob ze slotem online.")
        print_message(user, message)
    }

    get_cvar_string("amx_contactinfo", contact, 63)
    if(contact[0])  {
        format(contactinfo, 111, "%s Kontakt z adminem serwera -- %s", COLOR, contact)
        print_message(user, contactinfo)
    }
}

print_message(id, msg[]) {
    message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
    write_byte(id)
    write_string(msg)
    message_end()
}


Standardowe SMA:
#include <amxmodx>

/*---------------EDIT ME------------------*/
#define ADMIN_CHECK ADMIN_KICK

static const COLOR[] = "^x04" //green
static const CONTACT[] = ""
/*----------------------------------------*/

new maxplayers
new gmsgSayText

public plugin_init() {
    register_plugin("Admin Check", "1.51", "OneEyed")
    maxplayers = get_maxplayers()
    gmsgSayText = get_user_msgid("SayText")
    register_clcmd("say", "handle_say")
    register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
}

public handle_say(id) {
    new said[192]
    read_args(said,192)
    if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/admin") != -1 || contain(said, "/adm") != -1 )
        set_task(0.1,"print_adminlist",id)
    return PLUGIN_CONTINUE
}
public print_adminlist(user)
{
    new adminnames[33][32]
    new message[256]
    new contactinfo[256], contact[112]
    new id, count, x, len

    for(id = 1 ; id <= maxplayers ; id++)
        if(is_user_connected(id))
            if(get_user_flags(id) & ADMIN_CHECK)
                get_user_name(id, adminnames[count++], 31)

    len = format(message, 255, "%s Admini w grze: ",COLOR)
    if(count > 0) {
        for(x = 0 ; x < count ; x++) {
            len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
            if(len > 96 ) {
                print_message(user, message)
                len = format(message, 255, "%s ",COLOR)
            }
        }
        print_message(user, message)
    }
    else {
        len += format(message[len], 255-len, "Brak adminow online.")
        print_message(user, message)
    }

    get_cvar_string("amx_contactinfo", contact, 63)
    if(contact[0])  {
        format(contactinfo, 111, "%s Kontakt z adminem serwera -- %s", COLOR, contact)
        print_message(user, contactinfo)
    }
}

print_message(id, msg[]) {
    message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
    write_byte(id)
    write_string(msg)
    message_end()
}

info o fladze wziąłem z posta z flagami, cytat:
ADMIN_ALL - którakolwiek
ADMIN_IMMUNITY - flaga "a"
ADMIN_RESERVATION - flaga "b"
ADMIN_KICK - flaga "c"
ADMIN_BAN - flaga "d"
ADMIN_SLAY - flaga "e"
ADMIN_MAP - flaga "f"
ADMIN_CVAR - flaga "g"
ADMIN_CFG - flaga "h"
ADMIN_CHAT - flaga "i" *
ADMIN_VOTE - flaga "j"
ADMIN_PASSWORD - flaga "k"
ADMIN_RCON - flaga "l"
ADMIN_LEVEL_A - flaga "m"
ADMIN_LEVEL_B - flaga "n"
ADMIN_LEVEL_C - flaga "o"
ADMIN_LEVEL_D - flaga "p"
ADMIN_LEVEL_E - flaga "q"
ADMIN_LEVEL_F - flaga "r"
ADMIN_LEVEL_G - flaga "s"
ADMIN_LEVEL_H - flaga "t"
ADMIN_MENU - flaga "u"
ADMIN_ADMIN - flaga "y"
ADMIN_USER - flaga "z"

  • +
  • -
  • 0

#2 wizu

    Godlike

  • Przyjaciel

Reputacja: 224
Profesjonalista

  • Postów:1 217
  • GG:
  • Lokalizacja:Sanok
Offline

Napisano 29.09.2008 14:56

O ile dobrze mi się wydaje, to chcesz pokazać ludzi z rezerwacja slota.
Zmień tą linijkę:
if(get_user_flags(id) & ADMIN_CHECK)
Na
if(get_user_flags(id) & ADMIN_RESERVATION)

  • +
  • -
  • 0

#3 darkman

    Wszechwiedzący

  • Przyjaciel

Reputacja: 87
Zaawansowany

  • Postów:553
  • Lokalizacja:inactive
Offline

Napisano 29.09.2008 15:32

jo, ciekawe skąd wytrzasnąłeś flage ADMIN_CHECK :D popraw tak jak wizu mówi i powinno hulać.
btw. czemu podpisujesz autorstwo plugina pod siebie, jak tylko przerobiłeś w nim może jedną linijke? na alliedmodsie jest to karane banem, albo warnami ;>
  • +
  • -
  • 0

#4 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 29.09.2008 15:37

Bo chciał sobie zdefiniować flagę: :D
#define ADMIN_CHECK ADMIN_RESERVATION

btw. czemu podpisujesz autorstwo plugina pod siebie, jak tylko przerobiłeś w nim może jedną linijke? ;>

ze dwie lub trzy bo teksty pozmieniał ;)
  • +
  • -
  • 0

#5 Misiaczek ;c

    /dev/null

  • Autor tematu
  • Moderator

Reputacja: 1 678
Godlike

  • Postów:2 496
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 29.09.2008 15:40

darkman, niestety nie hula
darkman, prosze tak lepiej ??
/* Plugin generated by AMXX-Studio
*
* -= English =-
* Based on Admin Check 1.51 by OneEyed
* Edited by MisieQ
* 
* -= Polski =-
* Plugin w calosci bazuje na Admin Check w wersji 1.51 stworzeniej przez OneEyed
* Lekko zmodyfikowany przez MisieQ
*/

#include <amxmodx>

#define ADMIN_CHECK ADMIN_RESERVATION

static const COLOR[] = "^0x03" //kolo teamu
static const CONTACT[] = ""

new maxplayers
new gmsgSayText

public plugin_init() {
    register_plugin("Slot Check", "1.6", "OneEyed Edited by MisieQ")
    maxplayers = get_maxplayers()
    gmsgSayText = get_user_msgid("SayText")
    register_clcmd("say", "handle_say")
    register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
}

public handle_say(id) {
    new said[192]
    read_args(said,192)
    if( ( containi(said, "who") != -1 && containi(said, "slot") != -1 ) || contain(said, "/slot") != -1 )
        set_task(0.1,"print_adminlist",id)
    return PLUGIN_CONTINUE
}
public print_adminlist(user)
{
    new adminnames[33][32]
    new message[256]
    new contactinfo[256], contact[112]
    new id, count, x, len

    for(id = 1 ; id <= maxplayers ; id++)
        if(is_user_connected(id))
            if(get_user_flags(id) & ADMIN_CHECK)
                get_user_name(id, adminnames[count++], 31)

    len = format(message, 255, "%s Osoby ze slotem: ",COLOR)
    if(count > 0) {
        for(x = 0 ; x < count ; x++) {
            len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
            if(len > 96 ) {
                print_message(user, message)
                len = format(message, 255, "%s ",COLOR)
            }
        }
        print_message(user, message)
    }
    else {
        len += format(message[len], 255-len, "Brak osob ze slotem online.")
        print_message(user, message)
    }

    get_cvar_string("amx_contactinfo", contact, 63)
    if(contact[0])  {
        format(contactinfo, 111, "%s Kontakt z adminem serwera -- %s", COLOR, contact)
        print_message(user, contactinfo)
    }
}

print_message(id, msg[]) {
    message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
    write_byte(id)
    write_string(msg)
    message_end()
}

  • +
  • -
  • 0

#6 wizu

    Godlike

  • Przyjaciel

Reputacja: 224
Profesjonalista

  • Postów:1 217
  • GG:
  • Lokalizacja:Sanok
Offline

Napisano 29.09.2008 15:42

admin_check jest chyba równoznaczne z is_user_admin, tak?
  • +
  • -
  • 0

#7 Misiaczek ;c

    /dev/null

  • Autor tematu
  • Moderator

Reputacja: 1 678
Godlike

  • Postów:2 496
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 29.09.2008 15:45

wizu, chyba tak nie znam się :( chciałem najprostszą metodą dojść do celu :(
  • +
  • -
  • 0

#8 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 29.09.2008 15:46

To musi hulać:
/* Plugin generated by AMXX-Studio
*
* -= English =-
* Based on Admin Check 1.51 by OneEyed
* Edited by MisieQ
*
* -= Polski =-
* Plugin w calosci bazuje na Admin Check w wersji 1.51 stworzeniej przez OneEyed
* Lekko zmodyfikowany przez MisieQ
*/

#include <amxmodx>

static const COLOR[] = "^0x03" //kolo teamu
static const CONTACT[] = ""

new maxplayers
new gmsgSayText

public plugin_init() {
    register_plugin("Slot Check", "1.6", "OneEyed Edited by MisieQ")
    maxplayers = get_maxplayers()
    gmsgSayText = get_user_msgid("SayText")
    register_clcmd("say", "handle_say")
    register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
}

public handle_say(id) {
    new said[192]
    read_args(said,192)
    if( ( containi(said, "who") != -1 && containi(said, "slot") != -1 ) || contain(said, "/slot") != -1 )
        set_task(0.1,"print_adminlist",id)
    return PLUGIN_CONTINUE
}
public print_adminlist(user)
{
    new adminnames[33][32]
    new message[256]
    new contactinfo[256], contact[112]
    new id, count, x, len

    for(id = 1 ; id <= maxplayers ; id++)
        if(is_user_connected(id))
            if(get_user_flags(id) & ADMIN_RESERVATION)
                get_user_name(id, adminnames[count++], 31)

    len = format(message, 255, "%s Osoby ze slotem: ",COLOR)
    if(count > 0) {
        for(x = 0 ; x < count ; x++) {
            len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
            if(len > 96 ) {
                print_message(user, message)
                len = format(message, 255, "%s ",COLOR)
            }
        }
        print_message(user, message)
    }
    else {
        len += format(message[len], 255-len, "Brak osob ze slotem online.")
        print_message(user, message)
    }

    get_cvar_string("amx_contactinfo", contact, 63)
    if(contact[0])  {
        format(contactinfo, 111, "%s Kontakt z adminem serwera -- %s", COLOR, contact)
        print_message(user, contactinfo)
    }
}

print_message(id, msg[]) {
    message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
    write_byte(id)
    write_string(msg)
    message_end()
}
Zresztą napisałem(i usunąłem) wcześniej to samo co wizu, tylko on chwilkę wcześniej i działało.
Ten kod testowałem i działa.
  • +
  • -
  • 0

#9 darkman

    Wszechwiedzący

  • Przyjaciel

Reputacja: 87
Zaawansowany

  • Postów:553
  • Lokalizacja:inactive
Offline

Napisano 29.09.2008 15:48

stock is_user_admin(id)
{
	new __flags=get_user_flags(id);
	return (__flags>0 && !(__flags&ADMIN_USER));
}

;)
  • +
  • -
  • 0

#10 Misiaczek ;c

    /dev/null

  • Autor tematu
  • Moderator

Reputacja: 1 678
Godlike

  • Postów:2 496
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 29.09.2008 15:48

Pavulon,
Tak tylko wyświetla ci tylko adminów czy tez adminów i osoby posiadające rezerwacje slota czyli flage b??
  • +
  • -
  • 0

#11 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 29.09.2008 15:54

Stworzyłem sobie user'a tylko z flagą "b" i działało. Z "bz" też, nawet z "abcdefghijklmnopqrstuz" będzie działało. :mur:
  • +
  • -
  • 0

#12 darkman

    Wszechwiedzący

  • Przyjaciel

Reputacja: 87
Zaawansowany

  • Postów:553
  • Lokalizacja:inactive
Offline

Napisano 29.09.2008 15:54

pobiera flagi kazdego kto ma flage ADMIN_RESERVATION, nieważne czy ma ją tylko jedną czy jeszcze inne ;>
  • +
  • -
  • 0

#13 Misiaczek ;c

    /dev/null

  • Autor tematu
  • Moderator

Reputacja: 1 678
Godlike

  • Postów:2 496
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 29.09.2008 19:38

a czy coś takiego też będzie działać:
/* Plugin generated by AMXX-Studio
*
* -= English =-
* Based on Admin Check 1.51 by OneEyed
* Edited by MisieQ
*
* -= Polski =-
* Plugin w calosci bazuje na Admin Check w wersji 1.51 stworzeniej przez OneEyed
* Lekko zmodyfikowany przez MisieQ
*/

#include <amxmodx>

static const COLOR[] = "^0x03" //kolo teamu
static const CONTACT[] = ""

new maxplayers
new gmsgSayText

public plugin_init() {
    register_plugin("VIP Check", "1.6", "OneEyed Edited by MisieQ")
    maxplayers = get_maxplayers()
    gmsgSayText = get_user_msgid("SayText")
    register_clcmd("say", "handle_say")
    register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
}

public handle_say(id) {
    new said[192]
    read_args(said,192)
    if( ( containi(said, "who") != -1 && containi(said, "vip") != -1 ) || contain(said, "/vip") != -1 )
        set_task(0.1,"print_adminlist",id)
    return PLUGIN_CONTINUE
}
public print_adminlist(user)
{
    new adminnames[33][32]
    new message[256]
    new contactinfo[256], contact[112]
    new id, count, x, len

    for(id = 1 ; id <= maxplayers ; id++)
        if(is_user_connected(id))
            if(get_user_flags(id) & ADMIN_RESERVATION & ADMIN_IMMUNITY)
                get_user_name(id, adminnames[count++], 31)

    len = format(message, 255, "%s Osoby ze statusem V.I.P: ",COLOR)
    if(count > 0) {
        for(x = 0 ; x < count ; x++) {
            len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
            if(len > 96 ) {
                print_message(user, message)
                len = format(message, 255, "%s ",COLOR)
            }
        }
        print_message(user, message)
    }
    else {
        len += format(message[len], 255-len, "Brak osob ze statusem V.I.P online.")
        print_message(user, message)
    }

    get_cvar_string("amx_contactinfo", contact, 63)
    if(contact[0])  {
        format(contactinfo, 111, "%s Kontakt z adminem serwera -- %s", COLOR, contact)
        print_message(user, contactinfo)
    }
}

print_message(id, msg[]) {
    message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
    write_byte(id)
    write_string(msg)
    message_end()
}

  • +
  • -
  • 0

#14 wizu

    Godlike

  • Przyjaciel

Reputacja: 224
Profesjonalista

  • Postów:1 217
  • GG:
  • Lokalizacja:Sanok
Offline

Napisano 29.09.2008 19:48

Skompiluj i spróbuj. Łatwiejszego rozwiązania nie widzę.
  • +
  • -
  • 0

#15 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 29.09.2008 19:56

Z tego co wiem to ni chu chu nie będzie działało :D
Trzeba coś w stylu:
if ((get_user_flags(id) & ADMIN_RESERVATION) && (get_user_flags(id) & ADMIN_IMMUNITY))
żeby wymagane były obie flagi lub:
if ((get_user_flags(id) & ADMIN_RESERVATION) || (get_user_flags(id) & ADMIN_IMMUNITY))
żeby była wymagana co najmniej jedna z tych dwóch
  • +
  • -
  • 0

#16 Misiaczek ;c

    /dev/null

  • Autor tematu
  • Moderator

Reputacja: 1 678
Godlike

  • Postów:2 496
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 29.09.2008 21:06

To musi hulać:

/* Plugin generated by AMXX-Studio
*
* -= English =-
* Based on Admin Check 1.51 by OneEyed
* Edited by MisieQ
*
* -= Polski =-
* Plugin w calosci bazuje na Admin Check w wersji 1.51 stworzeniej przez OneEyed
* Lekko zmodyfikowany przez MisieQ
*/

#include <amxmodx>

static const COLOR[] = "^0x03" //kolo teamu
static const CONTACT[] = ""

new maxplayers
new gmsgSayText

public plugin_init() {
    register_plugin("Slot Check", "1.6", "OneEyed Edited by MisieQ")
    maxplayers = get_maxplayers()
    gmsgSayText = get_user_msgid("SayText")
    register_clcmd("say", "handle_say")
    register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
}

public handle_say(id) {
    new said[192]
    read_args(said,192)
    if( ( containi(said, "who") != -1 && containi(said, "slot") != -1 ) || contain(said, "/slot") != -1 )
        set_task(0.1,"print_adminlist",id)
    return PLUGIN_CONTINUE
}
public print_adminlist(user)
{
    new adminnames[33][32]
    new message[256]
    new contactinfo[256], contact[112]
    new id, count, x, len

    for(id = 1 ; id <= maxplayers ; id++)
        if(is_user_connected(id))
            if(get_user_flags(id) & ADMIN_RESERVATION)
                get_user_name(id, adminnames[count++], 31)

    len = format(message, 255, "%s Osoby ze slotem: ",COLOR)
    if(count > 0) {
        for(x = 0 ; x < count ; x++) {
            len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
            if(len > 96 ) {
                print_message(user, message)
                len = format(message, 255, "%s ",COLOR)
            }
        }
        print_message(user, message)
    }
    else {
        len += format(message[len], 255-len, "Brak osob ze slotem online.")
        print_message(user, message)
    }

    get_cvar_string("amx_contactinfo", contact, 63)
    if(contact[0])  {
        format(contactinfo, 111, "%s Kontakt z adminem serwera -- %s", COLOR, contact)
        print_message(user, contactinfo)
    }
}

print_message(id, msg[]) {
    message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
    write_byte(id)
    write_string(msg)
    message_end()
}
Zresztą napisałem(i usunąłem) wcześniej to samo co wizu, tylko on chwilkę wcześniej i działało.
Ten kod testowałem i działa.


hmm tylko coś nie działa jak slot jest na IP :/ tzn nie wyświetla tej osoby na liście
  • +
  • -
  • 0

#17 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 29.09.2008 21:09

Nie odpowiadam za to że komuś źle flagi sczytuje. Jeżeli nie wyświetla to upewnij się (amx_who) że dana osoba ma flagę b
  • +
  • -
  • 0




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

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