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
Modyfikacja

Dopisek "VIP" dla osoby mającej slota

Modyfikacja

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

#1 Filip1512

    Wszechmogący

  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 04.08.2012 13:28

Cześć,
mógłby ktoś zrobić plugin, który będzie dopisywał "VIP" w tabeli obok nicku gracza, który ma wykupiony slot ? :> Myślę, że to nie jest dużo roboty, a ja nie potrafie niestety :>
Jak zawsze - będą +
  • +
  • -
  • 0
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!

#2 Filip1512

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 05.08.2012 20:04

refresh

Znalazłem coś takiego:

#include <amxmodx>
#include <cstrike>

#define ADMIN_VIP ADMIN_LEVEL_H
#define SCOREATTRIB_NONE 0
#define SCOREATTRIB_DEAD (1<<0)
#define SCOREATTRIB_BOMB (1<<1)
#define SCOREATTRIB_VIP (1<<2)

public plugin_init()
{
register_plugin("VIP Admin", "0.0.1", "Exolent");
register_message(get_user_msgid("ScoreAttrib"), "MessageScoreAttrib");
}
public MessageScoreAttrib(iMsgID, iDest, iReceiver)
{
new iPlayer = get_msg_arg_int(1);
if( is_user_connected( iPlayer ) && ( get_user_flags( iPlayer ) & ADMIN_VIP ) )
{
set_msg_arg_int( 2, ARG_BYTE, is_user_alive( iPlayer ) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD );
}
}

public client_putinserver(id)
{
if(get_user_flags(id) & ADMIN_LEVEL_H)
{
new name[32]
get_user_name(id,name,31)

set_hudmessage(255, 0, 0, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2);
show_hudmessage(0, "Przychodzi Vip^n %s^n Witamy!!!",name)

client_cmd(0,"spk misc/vip")
}
}


Jak zrobić, aby VIP'a miały tylko te osoby, które posiadają flagi B i Z (obie te flagi)? ADMIN_RESERVATION i ADMIN_LEVEL_Z(dobrze pisze?)?
  • +
  • -
  • 0
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!

#3 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 05.08.2012 20:30

if(get_user_flags(id) & ( ADMIN_RESERVATION | ADMIN_USER ) == ( ADMIN_RESERVATION | ADMIN_USER )){
// VIP, posiadający zarówno flagę B, jak i Z
} else {
// Brak tegoż VIPa
}
Pamiętaj, że informacja o vipie nie wyświetla się żywym Terrorystom tak samo, jak informacja o bombie nie wyświetla się żywym antyterrorystom.

#4 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 05.08.2012 20:52

Załączam Ci gotowe SMA z VIP generatora, tak, jak chciałeś, trzeba mieć zarówno flagę B, jak i Z:

Załączony plik  VipUltimate.sma   514 bajtów  81 Ilość pobrań
  VipUltimate.amxx

#5 Filip1512

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 05.08.2012 22:27

Czyli będzie tak?

#include <amxmodx>
#include <cstrike>

#define ADMIN_VIP ADMIN_LEVEL_H
#define SCOREATTRIB_NONE 0
#define SCOREATTRIB_DEAD (1<<0)
#define SCOREATTRIB_BOMB (1<<1)
#define SCOREATTRIB_VIP (1<<2)

public plugin_init()
{
register_plugin("VIP Admin", "0.0.1", "Exolent");
register_message(get_user_msgid("ScoreAttrib"), "MessageScoreAttrib");
}
public MessageScoreAttrib(iMsgID, iDest, iReceiver)
{
new iPlayer = get_msg_arg_int(1);
if( is_user_connected( iPlayer ) && ( get_user_flags( iPlayer ) & ADMIN_VIP ) )
{
set_msg_arg_int( 2, ARG_BYTE, is_user_alive( iPlayer ) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD );
}
}

public client_putinserver(id)
{
if(get_user_flags(id) & ( ADMIN_RESERVATION | ADMIN_USER ) == ( ADMIN_RESERVATION | ADMIN_USER )){
// VIP, posiadający zarówno flagę B, jak i Z
} else {
// Brak tegoż VIPa
}

set_hudmessage(255, 0, 0, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2);
show_hudmessage(0, "Przychodzi Vip^n %s^n Witamy!!!",name)

client_cmd(0,"spk misc/vip")
}
}


A w define nic nie trzeba zmieniać?

Użytkownik aerocell edytował ten post 05.08.2012 22:27

  • +
  • -
  • 0
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!

#6 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 05.08.2012 22:35

Dostałeś gotowy kod, nie trzeba nic zmieniać ;)
  • +
  • -
  • 1

If you can dream it, you can do it.


#7 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 05.08.2012 23:30

Dzisiaj dość sporo czasu poświęciłem nad vipem i jeśli pytasz się o define, to w ogóle nie użyłem go.
Myślę, że definiowanie liczb 0,1,2 i 4 trochę mija się z celem.

Ponadto, definicje 0,1 i 2 są zbędne. Dla vipów wystarczy wiadomościach ScoreAttrib zsumować binarnie z liczbą 4, czyli statusem VIP.
Nie potrzebne są żadne inne akcje, gdyż:
  • Nie ma możliwości, aby żywi terroryści widzieli status VIPa w tabeli, podobnie jak żywi CT nie widzą, kto ma Bombę.
  • ScoreAttrib wysyła się jako sumę binarną flag, co jest istotą całego rozwiązania i pozwala na taką prostotę działania.
  • Priorytety flag układają się następująco:
  • W pierwszej kolejności brana jest pod uwagę flaga DEAD, jeśli gracz nie żyje, to wyświetla się status DEAD w tabeli
  • W drugiej kolejności zastosowanie ma flaga BOMB, co gwarantuje, że o ile któryś z Terrorystów posiada bombę, to jego towarzysze zawsze się o tym dowiedzą z tabeli
  • W trzeciej kolejności dopiero brana jest pod uwagę flaga VIP, jeśli i jej nie ma, to dopiero wtedy pole w tabeli pozostaje puste, ostatecznie priorytety układają się rosnąco
Wiele osób się głowiło i męczyło, mamy takie wypociny, jak:Ten kod jest banalny w swojej prostocie i spełnia idealnie swoje zadanie.
Przysiadłem nad nim, bo do tej pory nigdzie nie znalazłem prawidłowo działającego kodu.
Może szukałem niedokładnie, ale w obliczy takiej fali niepoprawnych kodów, napisałem własny, poprawny.

#8 Filip1512

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 06.08.2012 01:26

Aha ok, czyli kolejność jest idealna (o taką samą mi chodziło), te wypociny czytałem (3 z nich) ale tam nie było to czego szukałem właśnie :)
Teraz jeszcze takie pytanie, żeby się upewnić, bo na ogół mój serwer ma skrypt, że jak ktoś kupi slota przez www (albo ja dodam przez panel) to dodaje mu flagi "bz" - chodzi mi o flagę "b", czy nie będzie ona się "zlewała" z adminami? Bo z tego co czytam z sma to dany gracz musi spełniać oba warunki jednocześnie (i o to mi właśnie chodzi) tak?

Jeśli tak to close :)
(06.08.2012 02:44):
Tak, vipami są osoby z obydwiema flagami, B i Z.
Nie wystarczy ani samo B, ani samo Z. Muszą być obie razem.

Użytkownik aerocell edytował ten post 06.08.2012 01:27

  • +
  • -
  • 0
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!

#9 Filip1512

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 18.08.2012 17:51

Czesc ponownie :) Poprosiłem o otworzenie tematu i już piszę do rzeczy.
Chodzi o to, że mam serwer DM i nie wiem, czy jest sens, aby pod uwagę były brane osoby, które mają bombe lub są nieżywi. Mógłbyś benio, albo ktoś inny przerobić ten plugin tak, aby dopisywało "VIP" bez względu na to, czy ktoś ma pake lub czy ktoś jest nieżywy ? :)

//edit
oczywiście obecny plugin działa, sprawdzone.

Użytkownik aerocell edytował ten post 18.08.2012 17:52

  • +
  • -
  • 0
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!

#10 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 24.08.2012 23:47

Nie ma takiej możliwości, a przynajmniej do tej pory nigdzie takowej nie znalazłem.
Zresztą napisałem niemalże referat na ten temat w poprzednim poście, więc nie będę powtarzał:
najprawdopodobniej nie jest to możliwe bez modyfikacji plików gracza, a i ta nie jest wcale łatwa.

Sprawdzanie, czy gracz jest żywy, pomimo serwera DM jest konieczne.
W kodzie nie ma sprawdzania drużyn ani posiadanej bomby.





Również z jednym lub większą ilością słów kluczowych: Modyfikacja

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

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