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

Fake Say


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

#1 kamioool

    Profesjonalista

  • Zbanowany

Reputacja: 40
Pomocny

  • Postów:203
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Wrocław
Offline

Napisano 29.08.2008 17:08

Witam, dzisiaj zacząłem pracować trochę z pawno ale mam mały problem ... Jeśli ktoś by mógł przerobić / dorobić Tak aby po wpisaniu komendy
amx_fakesay <nick> <wiadomość>
można było wybierać wiadomość jaka chcemy wyświetlić a nie tą na dole. Po prostu nie daje sobie rady z tą zmienna.

Jestem typem osoby która umie się uczyć na przykładach.


#include <amxmodx>
#include <amxmisc>
#include <fun>
 
new PLUGIN[]="FAKE SAY"
new AUTHOR[]="Antylol"
new VERSION[]="1.01"
 
public plugin_init()
{
     register_plugin(PLUGIN, VERSION, AUTHOR)
     register_concmd("amx_fakesay", "cmd_fakesay", ADMIN_MENU ,"<nick> <wiadomosc>")
} 
 
public cmd_fakesay(id, level, cid) {
    
    if (!(get_user_flags(id)&ADMIN_MENU)) {
        console_print(id,"[AMXX] Nie masz uprawnien")
        return PLUGIN_HANDLED
}
		
    new user[32], uid
    read_argv(1,user,32)
    uid = find_player("bh",user)
    if (uid == 0) {
        console_print(id,"[AMXX] Zly User Id")
    }
    
client_cmd(uid,"say Jestem BOTEM")

return PLUGIN_HANDLED

}

Proszę o szybką odpowiedz.
Pozdrawiam

#2 choyrack

    Wszechpomocny

  • Użytkownik

Reputacja: 64
Pomocny

  • Postów:369
  • GG:
  • Lokalizacja:Wrocław
Offline

Napisano 29.08.2008 17:38

kamioool, To nie takie proste odczytać z argumentów ciąg kilku wyrazów (tak jak ty chcesz zrobić), o ile w ogóle da się to w jakiś normalny sposób zrobić.
Sama istota argumentu jest taka, że to jest jeden wyraz - jeden ciąg znaków.

Dużo prostsza metodą było by w kodzie pluginu wypisać gotowe teksty i ich używać.
Wybieranie ich zrobić za pomocą drugiego argumentu - tak samo jak masz zrobione wybieranie usera.


Lub coś na takiej zasadzie:
//...
register_clcmd("amx_fakesay","halndle_fakesay")
//amx_fakesay #USERID <Wiadomosc>
//...


public handle_fakesay() {
new user[33]
read_argv(1,user,32) //mamy gracza

new wiad[512]
read_args(wiad,511) //mamy wiadomosc
//...
} //nie sprawdzalem tego ale powinno dzialac.

  • +
  • -
  • 0

#3 kamioool

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 40
Pomocny

  • Postów:203
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Wrocław
Offline

Napisano 29.08.2008 17:47

Wydawało mi się prostsze - dla przykładu.
amx_ban [reason]
Wiem że to jest skrypt na zupełnie innym poziomie, ale gdyby np. "pożyczyć" fragmencik kodu z tego typu plugina ... Mam jeszcze wielkie kłopoty ze składnia i ... - dobra nie oszukujmy się - mam kłopoty ze wszystkim ale trening czyni mistrze czyż nie?

Mogę powiedzieć że narzazie udaje mi się robić skrypty ale niektóre kawałki są zlepiane ... chyba wiesz o co mi chodzi.

#4 choyrack

    Wszechpomocny

  • Użytkownik

Reputacja: 64
Pomocny

  • Postów:369
  • GG:
  • Lokalizacja:Wrocław
Offline

Napisano 29.08.2008 17:57

kamioool, A tak nie zadziała?
public cmd_fakesay(id, level, cid) {
//sprawdzanie czy ma prawa do uzycia

new user[32], wiad[512]
read_argv(1, user, 31)
read_argv(2, wiad, 511)
Ale wiadomość trzeba podawać w " "
//...
}

  • +
  • -
  • 0

#5 Maktab

    Nowy

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:2
Offline

Napisano 29.08.2008 17:57

To nie takie proste odczytać z argumentów ciąg kilku wyrazów (tak jak ty chcesz zrobić)

Co ty bredzisz? Wystarczy użyć cudzysłowów.

amx_fakesay "nick, nawet ze spacja" "to jest wiadomosc"

Napisałem takie coś:
#include <amxmodx>
#include <amxmisc>

/* #include <fun>
 Plik naglowkowy fun jest niepotrzebny,
 nie uzywasz zadnej jego funkcji.*/
 
new PLUGIN[]="FAKE SAY"
new AUTHOR[]="Antylol"
new VERSION[]="1.01"
 
public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_concmd("amx_fakesay", "cmd_fakesay", ADMIN_MENU ,"<nick> <wiadomosc>")
}
 
public cmd_fakesay(id, level, cid)
{
	if (!(get_user_flags(id)&ADMIN_MENU)) {
		console_print(id,"[AMXX] Nie masz uprawnien")
		return PLUGIN_HANDLED
	}
	
	/* Mozna tez tak (3 - ilosc parametrow, wliczajac komende):
	if(!cmd_access(id, level, cid, 3)
		return PLUGIN_HANDLED
	*/
	
	new user[32], message[128], uid
	read_argv(1, user, 32)
	read_argv(2, message, 128)
	
	uid = find_player("bh",user)
	
	/* albo:
	uid = cmd_target(id, user, CMDTARGET_OBEY_IMMUNITY)
	*/
	
	if (uid == 0) {
		console_print(id,"[AMXX] Zly User Id")
		return PLUGIN_HANDLED
	}
	
	client_cmd(uid,"say %s", message)
	
	return PLUGIN_HANDLED
}

Sprawdź, czy działa.
Pozdrawiam.
  • +
  • -
  • 0

#6 choyrack

    Wszechpomocny

  • Użytkownik

Reputacja: 64
Pomocny

  • Postów:369
  • GG:
  • Lokalizacja:Wrocław
Offline

Napisano 29.08.2008 18:00

Maktab, Tak jak mówisz, zapomniałem że można używać "" :-)
  • +
  • -
  • 0

#7 kamioool

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 40
Pomocny

  • Postów:203
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Wrocław
Offline

Napisano 29.08.2008 18:08

Szczerze mówiąc pisząc tego posta nie spodziewałem się szybkiej odpowiedzi - w ogóle się nie spodziewałem. Ale dziękować że zainteresowaliście się tym tematem. Mam nadzieje że jak trochę się poduczę to ja odpisze wiadomość w waszym temacie z problemem. Pozdrawiam i dzięki wielki jeszcze raz.


@ Kod oczywiście działa.




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

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