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

Pobieranie tekstu


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

#1 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 06.07.2011 08:46

Tak więc. Mam mały problem z pobraniem do zmiennej tego, co napisze gracz w sayu. Kombinowałem i nic. :( chętnie nie pogardze kodem z wyjaśnieniem.
  • +
  • -
  • 0

#2 Harsay

    Harsayus pospolitus

  • Użytkownik

Reputacja: 88
Zaawansowany

  • Postów:274
  • Imię:Michał
  • Lokalizacja:Bydgoszcz
Offline

Napisano 06.07.2011 09:07

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Sprawdz Co Napisal"
#define VERSION "0.0.0.0.1"
#define AUTHOR "Harsay"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd ( "say", "SprawdzCoNapisal" )	
}


public SprawdzCoNapisal(id) {
	new said[192] // wiem że w tym zapisuje się ciąg znaków
	read_args ( said, 191 ) // a tutaj chyba odczytuje zmienną
	
	client_print(0, print_chat, "[Sprawdz Co Napisal] Ktos napisal - %s", said)
}

Na takiej zasadzie działa swear replacement. A co do wyjaśnień to się tylko domyślam xD

Szkoda że nie jest read_args opisane w dokumentacji na amxx.pl
Dokumentacja AMXX.pl: Core >> amxmodx > read_args

Ale raczej służy do odczytywania ciągu znaków ;P

@edit
Działa na 100%
Steam Community :: hry mix óń :: Screenshots

Użytkownik Harsay edytował ten post 06.07.2011 09:18

  • +
  • -
  • 1

#3 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Autor tematu
  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 06.07.2011 09:29

czyli jak dam
register_clcmd ( "say !", "SprawdzCoNapisal" )

to przeczyta mi to co jest dalej po "!" ?
  • +
  • -
  • 0

#4 Harsay

    Harsayus pospolitus

  • Użytkownik

Reputacja: 88
Zaawansowany

  • Postów:274
  • Imię:Michał
  • Lokalizacja:Bydgoszcz
Offline

Napisano 06.07.2011 09:32

Nie.

@edit
poczekaj...
register_clcmd ( "say ^"!", "SprawdzCoNapisal" )

Wtedy powinno zareagować. Jeżeli nie to zaraz napiszę jak trzeba

@edit2
Jednak nie. Sekunda...

@edit3
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Sprawdz Co Napisal"
#define VERSION "0.0.0.0.1"
#define AUTHOR "Harsay"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd ( "say", "SprawdzCoNapisal" )
}


public SprawdzCoNapisal(id) {
	new said[192]
	read_args ( said, 191 )
	
	if ( containi ( said, ! ) != -1 ) // Sprawdzamy czy tekst zawiera ! Jezeli nie zwroci -1 tp nie wywola client_print
		client_print(0, print_chat, "[Sprawdz Co Napisal] Ktos napisal - %s", said)
}

Zdaje mi się że ! musi być na początku a ten kod pokaże tekst zawierający w każdym miejscu.

Więc containi musi zwrócić 0
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Sprawdz Co Napisal"
#define VERSION "0.0.0.0.1"
#define AUTHOR "Harsay"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd ( "say", "SprawdzCoNapisal" )
}


public SprawdzCoNapisal(id) {
	new said[192]
	read_args ( said, 191 )
	
	if ( containi ( said, ! ) == 0 )
		client_print(0, print_chat, "[Sprawdz Co Napisal] Ktos napisal - %s", said)
}

Użytkownik Harsay edytował ten post 06.07.2011 09:53

  • +
  • -
  • 1

#5 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Autor tematu
  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 06.07.2011 10:16

Error: Invalid expression, assumed zero on line 19

w linijce

if ( containi ( said, ! ) != -1 )
  • +
  • -
  • 0

#6 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 06.07.2011 10:23

eh ludzie
if ( containi ( said, "!" ) != -1 )
a tak po za tym to wiesz ze to się wykona nawet w takim przypadku ?
say "Elo ludzie !" albo "elo! ludzie"
  • +
  • -
  • 0

#7 diablix

    emeryt

  • Przyjaciel

Reputacja: 507
Wszechwiedzący

  • Postów:663
  • GG:
  • Steam:steam
  • Imię:Daniel
  • Lokalizacja:Warszawa
Offline

Napisano 06.07.2011 11:11

Pobrać do zmiennej możesz za pomocą np. globalnej tablicy

new g_sSomeoneSaid[33][128];

//...
g_sSomeoneSaid[id] = vArgs;

  • +
  • -
  • 0

#8 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Autor tematu
  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 06.07.2011 12:49

ogólnie to chodzi mi o to, żeby pobierało mi tekst gdy jest na początku ! (dla przykładu)
  • +
  • -
  • 0

#9 vaverix

    Życzliwy

  • Użytkownik

Reputacja: 29
Życzliwy

  • Postów:29
  • GG:
  • Lokalizacja:Warszawa
Offline

Napisano 06.07.2011 15:20

Witam.

Nie ma co domniemywać, czy to będzie działało, czy nie, po prostu sprawdźcie kod, zanim go zamieścicie...

Proszę:

/*
	vaverix, amxx-dev.pl, amxx.pl
*/

#include <amxmodx>

#define MAX 128	// maksymalna dlugosc wiadomosci

new g_text[128];

public plugin_init()
{
	register_plugin("Nowy Plugin","1.0","#Vaverix.");
	register_clcmd("say","cmd_say");
	register_clcmd("say_team","cmd_say");
}

public cmd_say(id)
{
	new arg[MAX];			// deklarujemy zmienną w której będzie wysłana wiadomość
	read_argv(1, arg, MAX-1);	// pobieramy wiadomość (można też przez read_args, bez znaczenia)

	if(!equal("!",arg,1))			// sprawdzamy, czy na początku wiadomości znajduję się wykrzyknik
		return PLUGIN_CONTINUE;		// jeśli nie, to zostawiamy wiadomość w spokoju

	// jeśli tak to informujemy o tym gracza
	client_print(id, print_chat, "Twoja wiadomosc zawiera wykrzyknik i zostala przechowana w zmiennej g_text...");

	replace(arg, MAX-1, "!", "");	// usuwamy wykrzynik na początku wiadomości
	copy(g_text, MAX-1, arg);	// zapisujemy wiadomość bez wykrzyknika do stringu g_text

	return PLUGIN_HANDLED;	// i nie pokazujemy tej wiadomości na czacie...
}

Coś takiego?

ogólnie to chodzi mi o to, żeby pobierało mi tekst gdy jest na początku ! (dla przykładu)


W efekcie jak wyślesz wiadomość zawierającą na początku wykrzyknik, to zostanie ona zapisana do stringu g_text, czyli dokładnie tak, jak chciałeś...

Pozdrawiam.

Użytkownik vaverix edytował ten post 06.07.2011 15:26

  • +
  • -
  • 1

#10 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Autor tematu
  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 06.07.2011 16:08

Dzięki wielkie tego potrzebowałem ;)

Do zamknięcia
  • +
  • -
  • 0




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

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