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

[ROZWIĄZANE] Problem z hudem (co robie źle)?


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

#1 Kosa :D

    Profesjonalista

  • Użytkownik

Reputacja: 20
Życzliwy

  • Postów:197
  • GG:
  • Steam:steam
  • Imię:Damian
  • Lokalizacja:WWA
Offline

Napisano 19.06.2012 07:38

otóż pisałem sobie taki plugin jak poniżej tak dla nauki pisania ogólnie i mam pytanie dlaczego nie działa hud po wpisaniu /stop i czy mógłby ktoś dodać albo powiedziec jak żeby tylko admin mógł wpisać tą komende? bo ja sie dopiero ucze i chce wiedzieć co i jak za pomoc daje+++ z góry Pozdrawiam Kosa
Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /super", "Start")

register_clcmd("say /stop", "Stop")
}
public Start(id)
{
set_user_noclip( id, 1 )

}
public Stop(id)
{
set_user_noclip( id )
set_hudmessage( 80, 0, 255, 0.03, 0.76, 2, 0.02, 1.0, 0.01 )
show_hudmessage( id, "%s Nie ma Juz supermana!")
}

  • +
  • -
  • 0
Dołączona grafika
Zapraszam również do grania na moim serwerze . I zapraszam na Serwerownie OpenCS..pl

#2 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 19.06.2012 13:33

show_hudmessage( id, "%s Nie ma Juz supermana!")

%s oznacza zmienną typu string, którą należy podać jako kolejny parametr, nie podajesz jej.

Przykład:
new id, godnosc[32]="Clark Kent";
set_hudmessage(80, 0, 255, 0.03, 0.76, 2, 0.02, 1.0, 0.01);
show_hudmessage(id, "%s Nie ma Juz supermana!", godnosc);


#3 Kosa :D

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 20
Życzliwy

  • Postów:197
  • GG:
  • Steam:steam
  • Imię:Damian
  • Lokalizacja:WWA
Offline

Napisano 19.06.2012 14:57

A to będzie tak, że Każdego nick będzie? że np wpisuje 3 graczy /stop i pisze np M3sQ nie ma juz super mana itp. jak sie nie da w Hud to może da się w client_print ?
  • +
  • -
  • 0
Dołączona grafika
Zapraszam również do grania na moim serwerze . I zapraszam na Serwerownie OpenCS..pl

#4 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 19.06.2012 15:07

show_hudmessage(id, "%s Nie ma Juz supermana!", godnosc);


Jeśli pierwszym parametrem show_hudmessage jest numer id, to wiadomość na HUD zostanie wysłana tylko do gracza o tym określonym id.
Jeśli za pierwszy parametr dasz 0 (zero), to wiadomość na HUD zostanie wysłana do wszystkich.

#5 Kosa :D

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 20
Życzliwy

  • Postów:197
  • GG:
  • Steam:steam
  • Imię:Damian
  • Lokalizacja:WWA
Offline

Napisano 19.06.2012 16:09

a co zrobić żeby tylko było dla Admina, żeby tylko admin mogł wpisać /start i stop na Flage Kick
  • +
  • -
  • 0
Dołączona grafika
Zapraszam również do grania na moim serwerze . I zapraszam na Serwerownie OpenCS..pl

#6 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 19.06.2012 16:18

To jest 3. parametr funkcji register_clcmd.
register_clcmd("say /super", "Start", ADMIN_KICK);
register_clcmd("say /stop", "Stop", ADMIN_KICK);


#7 Kosa :D

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 20
Życzliwy

  • Postów:197
  • GG:
  • Steam:steam
  • Imię:Damian
  • Lokalizacja:WWA
Offline

Napisano 19.06.2012 16:45

nie działa, dalej zwykły gracz może to wpisać :(
  • +
  • -
  • 0
Dołączona grafika
Zapraszam również do grania na moim serwerze . I zapraszam na Serwerownie OpenCS..pl

#8 grzesiu131

    Profesjonalista

  • Użytkownik

Reputacja: 87
Zaawansowany

  • Postów:180
  • Lokalizacja:Warszawa
Offline

Napisano 19.06.2012 17:08

if(!cmd_acces(id, level, cid))
{
return PLUGIN_HANDLED;
}


Dopisz do Start na samej górze

Użytkownik grzesiu131 edytował ten post 19.06.2012 17:10

  • +
  • -
  • 1

#9 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 19.06.2012 17:23

Nie tylko dopisz to, ale i też zmień deklarację funkcji z
public Start(id)

na
public Start(id, level, cid)

  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#10 Kosa :D

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 20
Życzliwy

  • Postów:197
  • GG:
  • Steam:steam
  • Imię:Damian
  • Lokalizacja:WWA
Offline

Napisano 19.06.2012 17:40

dalej nie działa teraz sma wygląda tak, co robie źle? :/
//Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /super", "Start", ADMIN_LEVEL_H)

register_clcmd("say /stop", "Stop", ADMIN_LEVEL_H)
}
public Start(id, level, cid)
{
if(!cmd_acces(id, level, cid))
{
return PLUGIN_HANDLED;
}
set_user_noclip( id, 1 )

}
public Stop(id)
{
set_user_noclip( id )

}

  • +
  • -
  • 0
Dołączona grafika
Zapraszam również do grania na moim serwerze . I zapraszam na Serwerownie OpenCS..pl

#11 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 19.06.2012 17:53

if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED


#12 Kosa :D

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 20
Życzliwy

  • Postów:197
  • GG:
  • Steam:steam
  • Imię:Damian
  • Lokalizacja:WWA
Offline

Napisano 19.06.2012 17:59

błędy w kompilatorze
super.sma(22) : error 017: undefined symbol "cmd_acces"
super.sma(28) : warning 209: function "Start" should return a value
  • +
  • -
  • 0
Dołączona grafika
Zapraszam również do grania na moim serwerze . I zapraszam na Serwerownie OpenCS..pl

#13 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 19.06.2012 18:06

if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED

tak samo dla funkcji Stop()
Na końcu dodaj return PLUGIN_CONTINUE;

#14 Kosa :D

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 20
Życzliwy

  • Postów:197
  • GG:
  • Steam:steam
  • Imię:Damian
  • Lokalizacja:WWA
Offline

Napisano 19.06.2012 21:11

dalej nie działa może coś źle dodaje niech ktoś pokaże cały Kod jak powinien wyglądać :D
  • +
  • -
  • 0
Dołączona grafika
Zapraszam również do grania na moim serwerze . I zapraszam na Serwerownie OpenCS..pl

#15 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 19.06.2012 23:35

SpeedKill, tak NIGDY nie sprawdzamy, czy ktoś ma daną flagę... Tym bardziej w przypadku determinowania czy może użyć danej komendy. Po pierwsze, przy client_connect flagi nie są jeszcze odczytywane, po drugie jeśli nawet by były to mogą się zmienić, bo ktoś np użyje amx_reloadadmins, albo inny plugin doda/ujmie komuś flagę, a po trzecie: nie da się wtedy zmienić szybko flag dostępu do danej funkcji poprzez cmdaccess.ini

Do autora, cmd_access ma 2 s na końcu!
speedkill (20.06.2012 06:11):
Od kiedy minusa daje się za błędy kod ? Chyba, że czegoś nie wiem.

  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#16 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 20.06.2012 00:20

Odnośnie 2s w cmd_access, to już cytowałem własną wypowiedź w moim poprzednim poście, mając nadzieję, że zwrócę na to uwagę.
Jak widać, czasem trzeba prosto z mostu ;)

Jeśli chodzi zaś o
public client_connect(id)
g_Have[id] = (get_user_flags(id) & read_flags("t")) > 0
to wystarczy zamiast client_connect(), użyć client_authorized().
Wadą tego rozwiązania będzie to, że flagi zostaną pobrane tylko raz, w związku z tym, jakiekolwiek modyfikacje sumy flag w czasie rzeczywistym nie będą uwzględniane. Tego rozwiązania nie polecam.
Aczkolwiek zaletą jest, że flagi nie będą pobierane od gracza każdorazowo. Użycie client_connect() jest, masz rację, niepoprawne, gdyż kolejność, w jakiej się wykonają client_connect() oraz client_authorized() jest nieokreślona.

#17 naXe

    Banned

  • Zbanowany

Reputacja: 269
Wszechwidzący

  • Postów:1 489
  • GG:
  • Steam:steam
  • Lokalizacja:Kwidzyn
Offline

Napisano 20.06.2012 00:46

Kombinujecie -_-


#include <amxmodx>
#include <fun>

public plugin_init() {
register_plugin("New Plug-In", "1.0", "Administrator")

register_clcmd("say /super", "wlacz")
register_clcmd("say /stop", "wyłącz")
}

public wlacz(id) {
if(!is_user_alive(id) || !(get_user_flags(id) & ADMIN_KICK))
return PLUGIN_HANDLED

set_user_noclip(id, 1)
return PLUGIN_HANDLED
}

public wyłącz(id) {
if(!is_user_alive(id) || !(get_user_flags(id) & ADMIN_KICK))
return PLUGIN_HANDLED

new nick[32]
get_user_name(id, nick, 31)

set_user_noclip(id)
set_hudmessage(80, 0, 255, 0.03, 0.76, 2, 0.02, 1.0, 0.01)
show_hudmessage(0, "%s nie ma juz supermana!", nick)
return PLUGIN_HANDLED
}


PS: Nie wiem czemu się robią polskie znaki w znaczniku sma wyłącz

Można tez tak i jest krótszy kod:

#include <amxmodx>
#include <fun>

new bool: nc[33]

public plugin_init() {
register_plugin("New Plug-In", "1.0", "Administrator")

register_clcmd("say /super", "wlacz")
}

public wlacz(id) {
if(!is_user_alive(id) || !(get_user_flags(id) & ADMIN_KICK))
return PLUGIN_HANDLED

new nick[32]
get_user_name(id, nick, 31)

if(nc[id]) {
nc[id] = false
set_user_noclip(id)
} else {
nc[id] = true
set_user_noclip(id, 1)
}
set_hudmessage(80, 0, 255, 0.03, 0.76, 2, 0.02, 1.0, 0.01)
show_hudmessage(0, "%s %s supermana!", nick, nc[id]? "ma" : "nie ma juz")
return PLUGIN_HANDLED
}


#18 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 20.06.2012 01:16

naXe, czy ja wiem czy krótszy? Po odliczeniu pustych, wychodzi dokładnie tyle samo linii :P Co prawda ma trochę mniej znaków, ale nie to się liczy. Rejestrujemy o jedną komendę mniej, więc jest niejako "prościej", ale i to jest w tym przypadku względne. Twoje rozwiązanie jednak nie uwzględnia 3ciego aspektu z mojego poprzedniego postu, dalej nie będzie można edytować flagi poprzez cmdaccess.ini

benio, dzięki za przyznanie racji :) Tyle, że Twój post nie wniósł nic, czego mój poprzedni nie zrobił (może prócz ładnych linków do dokumentacji)

Użytkownik GwynBleidD edytował ten post 20.06.2012 01:18

  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#19 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 20.06.2012 01:45

Załączony plik  Untitled.sma   874 bajtów  47 Ilość pobrań
  Untitled.amxx

#20 Kosa :D

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 20
Życzliwy

  • Postów:197
  • GG:
  • Steam:steam
  • Imię:Damian
  • Lokalizacja:WWA
Offline

Napisano 20.06.2012 06:03

Dziękuje wszystkim za pomoc + beniowi dam, ale jutro bo wykorzystałem limit wszyscy inni dostali od góry do dołu :D
  • +
  • -
  • 0
Dołączona grafika
Zapraszam również do grania na moim serwerze . I zapraszam na Serwerownie OpenCS..pl




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

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