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] /komenda [tekst]


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

#1 Willson

    Pomocny

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:74
  • Lokalizacja:Białystok
Offline

Napisano 20.05.2012 19:28

new player_tekst[33][128]

register_clcmd("say /komenda","komenda")


public komenda(id,level,cid)
{
if(!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED;

new argument[32]
read_argv(1,argument,31)
player_tekst[id] = argument
return PLUGIN_HANDLED
}



zrobiłem tak i po uzyciu /komenda player_tekst[id] = /komenda
Chodzi o to,żeby w player_tekst[id] było to co wpisałem po /komenda np. /komenda siema,czego wynikiem ma być w player_tekst[id] = siema

Użytkownik Willson edytował ten post 20.05.2012 19:28

  • +
  • -
  • 0

#2 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 20.05.2012 20:26

public komenda(id) {
new argument[128], tmp[64];
read_argv(1, argument, 127);
strbreak(argument, argument, 127, tmp, 64);

copy(player_tekst[id], 127, tmp);
}

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#3 Willson

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:74
  • Lokalizacja:Białystok
Offline

Napisano 21.05.2012 10:10

jak wpisze /komenda test to ta komenda nie działa,a jak wpisze samo /komenda to działa,ale wartość jest pusta.
  • +
  • -
  • 0

#4 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 21.05.2012 10:14

Pokaż cały kod.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#5 Willson

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:74
  • Lokalizacja:Białystok
Offline

Napisano 21.05.2012 12:07

public komenda(id)
{
new argument[128], tmp[64];
read_argv(1, argument, 127);
strbreak(argument, argument, 127, tmp, 64);
copy(player_tekst[id], 127, tmp);
return PLUGIN_HANDLED
}

Użytkownik Willson edytował ten post 21.05.2012 12:07

  • +
  • -
  • 0

#6 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 21.05.2012 12:35

Cały kod, chociażby jak używasz tego "player_tekst[id]".
Ogólnie kod, który podałem wcześniej zamień na
public komenda(id)
{
new argument[128];
read_argv(1, argument, 127);
strbreak(argument, argument, 127, player_tekst[id], 127);

return PLUGIN_HANDLED;
}

i sprawdź coś takiego
public komenda(id)
{
new argument[128];
read_argv(1, argument, 127);
strbreak(argument, argument, 127, player_tekst[id], 127);
client_print(id, print_chat, player_tekst[id]);

return PLUGIN_HANDLED;
}

i napisz co się wyświetla.


  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#7 Willson

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:74
  • Lokalizacja:Białystok
Offline

Napisano 21.05.2012 13:30

Dołączona grafika

Cały kod, chociażby jak używasz tego "player_tekst[id]".





public write_hud(id)
{
set_hudmessage(0, 255, 0, 0.08, 0.25, 0, 6.0, 1.0)
show_hudmessage(id, "Test: %s",player_tekst[id])
}

Użytkownik Willson edytował ten post 21.05.2012 13:31

  • +
  • -
  • 0

#8 ogieR8

    Wszechmogący

  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 21.05.2012 13:56

Willson, czy Ty kumasz dobrze ? :facepalm: Cały kod, zaczynając od :

#include <amxmodx>


Kończąc na ostatniej linijce, nie mamy pewności, czy Ty coś po drodze w tym kodzie nie walisz z tą zmienną np.
  • +
  • -
  • 0

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#9 Willson

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:74
  • Lokalizacja:Białystok
Offline

Napisano 21.05.2012 14:17

od 1 do 18k? -.-

Powiem tylko tyle,że to diablo_onyke
  • +
  • -
  • 0

#10 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 21.05.2012 14:20

To wrzuć całe sma do załącznika, albo przynajmniej podaj cały kod gdzie używasz tej zmiennej.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#11 Willson

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:74
  • Lokalizacja:Białystok
Offline

Napisano 21.05.2012 19:57

Skoro boicie się,że gdzieś coś popułem to macie to:

public komenda(id)
{
new zobacz[33][128]
new argument[128];
read_argv(1, argument, 127);
strbreak(argument, argument, 127, zobacz[id], 127);
client_print(id, print_chat, zobacz[id]);
return PLUGIN_HANDLED }


Bez zmian,czyli po wpisaniu /komenda nie pokazuje na czacie(efekt plugin_handled),a po wpisaniu /komenda test pokazuje to co wpisałem na czacie.

Użytkownik Willson edytował ten post 21.05.2012 19:58

  • +
  • -
  • 0

#12 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 21.05.2012 20:31

Chyba jednak mały mój błąd, a raczej nie dopatrzenie z mojej strony, chodzi o początek Twojego postu, trzeba inaczej rejestrować takie zdarzenie, a dokładniej
register_clcmd("say", "komenda");
(...)
public komenda(id) {
new argument[128];
read_argv(1, argument, 127);

if(equal(argument, "/komenda", 8))
strbreak(argument, argument, 127, player_tekst[id], 127);
}

Zresztą już gdzieś podobny kod pisałem, chyba przy jakimś pluginie do coda.

EDIT:
http://amxx.pl/topic...wy/#entry349489 może Ci się przydać.
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#13 Willson

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:74
  • Lokalizacja:Białystok
Offline

Napisano 22.05.2012 10:31

Sorry,inaczej chce to zrobić :D



public plugin_init()
{
register_concmd("amx_test", "komenda", ADMIN_SLAY, "<name> <message> - send a message")
}



public komenda(id, level, cid)
{
if (!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED

new name[32]
read_argv(1, name, 31)
new priv = cmd_target(id, name, 0)

if (!priv)
return PLUGIN_HANDLED

new message[192]
read_args(message, 191)
if (id && id != priv)
player_tekst[priv] = message //tutaj error
return PLUGIN_HANDLED
}



Error: Array sizes do not match, or destination array is too small on line 8348

przeróbka amx_psay

Użytkownik Willson edytował ten post 22.05.2012 10:31

  • +
  • -
  • 0

#14 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 22.05.2012 10:40

Jest błąd, bo jeśli ciąg znaków przypisujesz poprzez = to długość tablicy z tymi znakami nie może być większa od tej co próbujesz do niej coś przypisać. Czyli jeszcze inaczej, skoro "player_tekst[priv]" ma 128 znaków, to nie możesz przypisać tutaj tablicy z 192 znakami.

public komenda(id, level, cid)
{
if (!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED

new name[32]
read_argv(1, name, 31)
new priv = cmd_target(id, name, 0)

if (!priv)
return PLUGIN_HANDLED

if (id && id != priv)
read_argv(2, player_tekst[priv], 127);

return PLUGIN_HANDLED
}

  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#15 Willson

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:74
  • Lokalizacja:Białystok
Offline

Napisano 22.05.2012 13:34

public komenda(id, level, cid)
{
if (!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED
new name[32]
read_argv(1, name, 31)
new priv = cmd_target(id, name, 0)
if (!priv)
return PLUGIN_HANDLED
read_argv(2, player_tekst[priv], 127);
return PLUGIN_HANDLED }


Wszystko gra,ale jak zrobić,by pobierało więcej niż jedno słowo? np wpisze amx_test [nick] [abcd make], to wyswietla samo abcd, a chce jeszcze by wiswietlało make

Użytkownik Willson edytował ten post 22.05.2012 13:36

  • +
  • -
  • 0

#16 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 22.05.2012 15:51

Słowa musisz wpisać w "", albo próbuj z "read_args" tylko wtedy musisz się pozbyć dwóch pierwszych argumentów, ale to już pisałem jak się robi, a dokładniej za pomocą "strbreak".
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#17 Willson

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:74
  • Lokalizacja:Białystok
Offline

Napisano 23.05.2012 09:21

Ok można zamknąć.
  • +
  • -
  • 0

#18 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

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

Napisano 23.05.2012 14:12

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Temat zamknięty na prośbę użytkownika.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

If you can dream it, you can do it.





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

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