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

Narzucenie nick'a przy wejściu na serwer oraz blokada możliwości jego zmiany.


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

#1 JSokol

    Życzliwy

  • Użytkownik

Reputacja: 5
Nowy

  • Postów:31
  • Lokalizacja:JG | Wro
Offline

Napisano 02.01.2010 15:04

Cześć.

Napisałem sobie funkcję "zmien_nick(id)" która narzuca graczowi nick taki, jaki ja chcę.

Chciałbym teraz, aby była ona wywoływana przy wejściu gracza na serwer.
Dlatego próbowałem ją wywołać w "client_authorized(id) {}" oraz w "client_putinserver(id) {}" a także w "client_connect(id) {}" ale nie przynosiło to skutków.
Sama funkcja działa dobrze, bo sprawdzałem to poprzez wykonanie:
"register_clcmd("say /nick","zmien_nick",0,"Bla bla bla...");"
i zmieniała tak jak sobie tego życzyłem.

Co więc muszę zrobić, aby wykonywała zmianę nicku gracza przy wejściu na serwer?

Druga sprawa: czy jest możliwość, aby po pomyślnej zmianie nicku zablokować funkcję "name nowy_nick" dla gracza tak, by grał z narzuconym nickiem do końca?

Piszę dość spory plugin dlatego pozwolę sobie w przyszłości w tym temacie zadawać kolejne pytania jeżeli będę mieć jakieś problemy.

Pozdrawiam,
JSokol
  • +
  • -
  • 0
Banid.pl - sprawdź z kim grasz! Nie graj z cheaterami!

#2 Portek

    Kończymy zabawę, permanentna emerytura!

  • Przyjaciel

Reputacja: 976
Master

  • Postów:3 007
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Częstochowa
Offline

Napisano 02.01.2010 16:00

1.
public client_putinserver(id){
 set_task(0.1, "zmien_nick")
}

2. Przejrzyj sma G_block_name_change - Nieoficjalny polski support AMX Mod X

  • +
  • -
  • 1

serwer-1.png
IP: ts3.cserwerek.pl


#3 JSokol

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:31
  • Lokalizacja:JG | Wro
Offline

Napisano 02.01.2010 16:35

1.

public client_putinserver(id){
 set_task(0.1, "zmien_nick")
}

Ehh.. zabrakło u mnie słówka "public"... :P
Tak więc dzięki wielkie, bo teraz w nowej formie:
"public client_putinserver(id) { zmien_nick(id); }"
już działa ;)

2. Przejrzyj sma G_block_name_change - Nieoficjalny polski support AMX Mod X

Ten link się bardzo przydał, bo rzeczywiście ten plugin blokuje zmianę nick'a, tylko teraz jak zrobić wystarczające opóźnienie, by najpierw zmienił przy wejściu na serwer (bo dokonuje się to dopiero po dołączeniu do team'u), a potem dopiero zablokował zmienianie przez user'a. Próbowałem zrobić to tak, że linijkę:
"register_message(get_user_msgid("SayText"), "message");"
dodawałem na samym końcu funkcji "zmien_nick(id)", niestety nie pomogło to i blokowało także zmianę nicka wywołaną przez tą funkcję.

Dobra, poradziłem sobie z tym drugim punktem :) Dodałem zmienną bool'owską, która przy pierwszej próbie zmiany nicku zmienia swoją wartość, jednocześnie pozwalając na zmianę nicku, a każda kolejna zmiana jest blokowana. :)
Zostaje więc póki co tylko problem wpisany poniżej w "edit'ach" :)


Za pomoc oczywiście ląduje plusik, dziękuję Portek :)

Pozdrawiam,
JSokol


// EDIT:
W dokumentacji języka PAWN znalazłem też funkcję "cs_set_user_team()" która wrzucałaby mi zawodnika zaraz po wejściu na serwer do teamu który wpisał w bazie danych, niestety okazuje się, że kompilator nie przepuszcza tej funkcji (próbowałem też w wersji set_user_team()). Tak więc nie znacie może jakiejś funkcji zastępczej, która pod określonym warunkiem (danej w bazie) wrzucałaby zawodnika od razu do teamu, nie dając mu możliwości wybrania go?
// Edit do EDITa :)
Dodałem:
"#include <cstrike.inc>"
i teraz kompilator rozpoznaje już tą funkcję, jednak gdy funkcja jest wywoływana w:
"public client_putinserver(id) { cs_set_user_team(id,CS_TEAM_T); }"
to wcale nie wrzuca automatycznie gracza, czyli w sumie to w ogóle dzieje się tak, jakby tej funkcji tam nie było :)

Użytkownik JSokol edytował ten post 02.01.2010 18:05

  • +
  • -
  • 0
Banid.pl - sprawdź z kim grasz! Nie graj z cheaterami!

#4 Portek

    Kończymy zabawę, permanentna emerytura!

  • Przyjaciel

Reputacja: 976
Master

  • Postów:3 007
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Częstochowa
Offline

Napisano 02.01.2010 19:03

// EDIT:
W dokumentacji języka PAWN znalazłem też funkcję "cs_set_user_team()" która wrzucałaby mi zawodnika zaraz po wejściu na serwer do teamu który wpisał w bazie danych, niestety okazuje się, że kompilator nie przepuszcza tej funkcji (próbowałem też w wersji set_user_team()). Tak więc nie znacie może jakiejś funkcji zastępczej, która pod określonym warunkiem (danej w bazie) wrzucałaby zawodnika od razu do teamu, nie dając mu możliwości wybrania go?
// Edit do EDITa :)
Dodałem:
"#include <cstrike.inc>"
i teraz kompilator rozpoznaje już tą funkcję, jednak gdy funkcja jest wywoływana w:
"public client_putinserver(id) { cs_set_user_team(id,CS_TEAM_T); }"
to wcale nie wrzuca automatycznie gracza, czyli w sumie to w ogóle dzieje się tak, jakby tej funkcji tam nie było :)

Nieoficjalny polski support AMX Mod X -> Dokumentacja :: AMXX

cs_set_user_team (id, cs_get_user_team(id) == CS_TEAM_UNASSIGNED?CS_TEAM_CT:CS_TEAM_CT, CS_DONTCHANGE)

  • +
  • -
  • 0

serwer-1.png
IP: ts3.cserwerek.pl





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

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