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

Nie czaje tego player id


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

#1 naven

    Hero

  • Power User

Reputacja: 204
Profesjonalista

  • Postów:1 088
  • GG:
  • Imię:Adam
  • Lokalizacja:Cieszyn
Offline

Napisano 22.04.2009 15:29

player is a player index from 1 to 32.


Rozumiem po ang, ale nie rozumiem kiedy czego użyć, w poprzednim pluginie przy show_motd miałem (id ,"a.txt" , "test") i działało, a jak zrobiłem żeby były 2 funkcje to dopiero po wpisaniu przy każdym show_motd 1 dało się skompilować.
Ogólnie to moje pytanie to, skąd mam wiedzieć co mam wpisać xD?
  • +
  • -
  • 0

#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 22.04.2009 15:37

id masz pobierać - jako argument funkcji, wiadomości itd, nigdy nie wpisuje się id ręcznie np.
client_cmd(5, "exit;"); //błąd!

Jedyny taki przypadek to 0 - wiele funkcji bierze to za 'wszyscy gracze'

Przykład przechwytywania ID
public plugin_init() {
	register_concmd("amx_komenda", "cmd_amx_komenda");
}
public cmd_amx_komenda(id){
}

W tym wypadku ID gracza jest pierwszym argumentem funkcji obsługującej komendę. Podobnie jest przy eventach z flagą "b" i forwardach (amxmodx/fakemeta/engine)
  • +
  • -
  • 0

#3 naven

    Hero

  • Autor tematu
  • Power User

Reputacja: 204
Profesjonalista

  • Postów:1 088
  • GG:
  • Imię:Adam
  • Lokalizacja:Cieszyn
Offline

Napisano 22.04.2009 15:48

hmm, myślę myślę i zrozumieć nie mogę, mam taki kod:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Regulamin i pomoc"
#define VERSION "1.0"
#define AUTHOR "naven"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("say /pomoc", "pomoc")
	register_clcmd("say /regulamin", "regulamin")
}

public pomoc()
{
	show_motd(1, "pomoc.txt", "Menu pomocy.")
}

public regulamin()
{
	show_motd(1, "regulamin.txt", "Regulamin serwera.")
}
Jak tu to pobrać?
  • +
  • -
  • 0

#4 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 22.04.2009 15:51

register_clcmd wywoluje funkcje z przekazanym parametrem id osoby co uzyly komendy ;-)

public pomoc(id)
public regulamin(id)
  • +
  • -
  • 0

#5 naven

    Hero

  • Autor tematu
  • Power User

Reputacja: 204
Profesjonalista

  • Postów:1 088
  • GG:
  • Imię:Adam
  • Lokalizacja:Cieszyn
Offline

Napisano 22.04.2009 15:53

No, ale zobacz:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Regulamin i pomoc"
#define VERSION "1.0"
#define AUTHOR "naven"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("say /pomoc", "pomoc")
	register_clcmd("say /regulamin", "regulamin")
}

public pomoc()
{
	show_motd(id, "pomoc.txt", "Menu pomocy.")
}

public regulamin()
{
	show_motd(id, "regulamin.txt", "Regulamin serwera.")
}

//// regpomoc.sma
// C:Documents and SettingskompPulpitcompilerregpomoc.sma(20) : error 017:
undefined symbol "id"
// C:Documents and SettingskompPulpitcompilerregpomoc.sma(20) : warning 215
: expression has no effect
// C:Documents and SettingskompPulpitcompilerregpomoc.sma(20) : warning 215
: expression has no effect
// C:Documents and SettingskompPulpitcompilerregpomoc.sma(20) : error 001:
expected token: ";", but found ")"
// C:Documents and SettingskompPulpitcompilerregpomoc.sma(20) : error 029:
invalid expression, assumed zero
// C:Documents and SettingskompPulpitcompilerregpomoc.sma(20) : fatal error
 107: too many error messages on one line

  • +
  • -
  • 0

#6 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 22.04.2009 15:56

public pomoc(id)
{
    show_motd(id, "pomoc.txt", "Menu pomocy.")
}

public regulamin(id)
{
    show_motd(id, "regulamin.txt", "Regulamin serwera.")
}
Jak dają to bierz [chodzi o id :D ].


PS. http://amxx.pl/viewtopic.php?t=5947
  • +
  • -
  • 0

#7 naven

    Hero

  • Autor tematu
  • Power User

Reputacja: 204
Profesjonalista

  • Postów:1 088
  • GG:
  • Imię:Adam
  • Lokalizacja:Cieszyn
Offline

Napisano 22.04.2009 16:00

Aaaa w ten sposób:D ;*
jeszcze tylko 1;p, kiedy dawać cudzysłowie? Raz mi wywala że nie ma, a raz wywala że mam a ma nie być?
  • +
  • -
  • 0

#8 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

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

Napisano 22.04.2009 16:02

cudzysłów oznacza zmienną typu string => "BRAKUJE CI PODSTAW"
  • +
  • -
  • 0

#9 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 22.04.2009 16:06

w Pawnie nie ma typowych wskaźników, więc w funkcjach register_...() podaje się nazwę "funkcji" jako string
  • +
  • -
  • 0

#10 naven

    Hero

  • Autor tematu
  • Power User

Reputacja: 204
Profesjonalista

  • Postów:1 088
  • GG:
  • Imię:Adam
  • Lokalizacja:Cieszyn
Offline

Napisano 22.04.2009 16:07

"BRAKUJE CI PODSTAW"


Pavulon, ja się uczę dopiero, nie czaje jeszcze wszystkiego, a podstawy staram się poznawać, ale ciężko jest...
  • +
  • -
  • 0

#11 darkman

    Wszechwiedzący

  • Przyjaciel

Reputacja: 87
Zaawansowany

  • Postów:553
  • Lokalizacja:inactive
Offline

Napisano 22.04.2009 19:28

id masz pobierać - jako argument funkcji, wiadomości itd, nigdy nie wpisuje się id ręcznie np.

client_cmd(5, "exit;"); //błąd!

Jedyny taki przypadek to 0 - wiele funkcji bierze to za 'wszyscy gracze'

Przykład przechwytywania ID
public plugin_init() {
	register_concmd("amx_komenda", "cmd_amx_komenda");
}
public cmd_amx_komenda(id){
}

W tym wypadku ID gracza jest pierwszym argumentem funkcji obsługującej komendę. Podobnie jest przy eventach z flagą "b" i forwardach (amxmodx/fakemeta/engine)


tutaj akurat nie masz racji, bo ta piatke mozna bezproblemowo wpisac, ale nie zawsze bedzie na serwerze gracz ktoremu jest przypisane id 5
  • +
  • -
  • 0

#12 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 22.04.2009 19:32

client_cmd(5, "exit;")

to jest dobry sposob na ogranczenie maxymalnej ilosci osob na serwie do 4 - id sa rozdawane od liczby 1 do liczby 32 - sprawdza czy id 1 jest wolne - nie? - sprawsza nr 2 - zajete? - nr 3 i tak dalej. [teoretyzuje - nie sprawdzane]

Co nie oznacza ze jak masz 10 graczy na serwie to nie ma gracza o id np. 12 (moglo byc 12 osob ale 2 po srodku sie rozlaczyly). Id nie zmienia sie juz po jego przydzieleniu (nie ma sortowania - to juz jest pewne)
  • +
  • -
  • 0

#13 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 22.04.2009 20:11

darkman, nie napiszesz pluginu wstawiając tam 5 na stałe, bo to bez sensu - chodziło mi o to, że nie będzie działać poprawnie xP a nie, że w ogóle nie zadziała
Miczu, masz racje: gracze dostają kolejne ID i nic im tego nie zmieni aż do client_disconnect();
jeśli w trakcie gry, któryś z graczy opuści serwer kolejność ID zostaje zaburzona (np, 1,2,4,5) i dlatego nie można używać for(i=0;i
  • +
  • -
  • 0

#14 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 26.04.2009 10:35

i dlatego nie można używać for(i=0;i

można, ale w połączeniu z is_user_connected(i)(lub zależnie od potrzeb is_user_alive(i)

for(i=0;i<LICZBA_GRACZY;i++)
{
        if(is_user_connected(i))
        {
                //kod...
         }
}

ale można użyć get_players, w zasadzie ta funkcja działa tak samo, ma tylko dodatkowe parametry typu team i coś tam jeszcze
  • +
  • -
  • 0

#15 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 26.04.2009 11:06

Zgodzę się tylko jeśli LICZBA_GRACZY to ilość slotów (maxplayers).
  • +
  • -
  • 0




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

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