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

'jak napisac wlasne komendy'


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

#1 mitol007

    Pomocny

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:64
Offline

Napisano 05.08.2009 15:48

Witam, nie wiem czy dobry dział, jeśli zły, to proszę o przeniesienie. Chodzi mi o to że, chce/ poszukuję (sam nie wiem), czegoś co, np. po wpisaniu /lastmap pokazuje ostatnio grane mapy (może je czytac z danego pliku, bo taki akurat mam), inna np. /mapcycle czyli po wpisaniu pojawia sie mapcycle na serwerze itp (tez moze czytac z pliku mapcycle.txt)
Może trochę zawile opisane, ale myślę że mnie zrozumiecie ;P
Albo mi powiedźcie / dajcie jakiegoś linka jak 'to cos' napisać albo coś ;pp
  • +
  • -
  • 0

#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 05.08.2009 16:09

http://amxx.pl/topic...yer-vt10161.htm
  • +
  • -
  • 0

#3 mitol007

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:64
Offline

Napisano 06.08.2009 19:16

R3X, działa :) Wielkie dzięki.
Ale mam jeszcze jedno pytanko. Bo mam na serwie mapchooser4 i on w pliku maphist.ini przechowuje 15 ostatnich granych map. I chcę, aby po wpisaniu np. /lastmaps mi się one pokazały. A jak robię to wg. tego pluginu to na serwerze pokazuje się tylko napis z linijką maphist.ini. A ja chce żeby ta komenda 'czytała' ten plik, a nie pokazywała jego nazwę.
Czy na to trzeba coś innego czy jak ?
  • +
  • -
  • 0

#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 06.08.2009 19:57

Nie znalazło pliku :D podejrzewam, że chodzi o

Coś takiego

"/lastmaps" "addons/amxmodx/configs/maphist.ini" "Ostatnio grane mapy"


  • +
  • -
  • 0

#5 mitol007

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:64
Offline

Napisano 06.08.2009 22:36

Ale tego nie zauwazyłem ;/
Jak ten plugin włącze to działa, wszystko ok. Ale przez niego w ogóle nie działa say, say_team ! piszesz normalnie a nie pokazuje... @say, admin_chat działa...
Co teraz powiesz :D?
  • +
  • -
  • 0

#6 kyku

    Wszechmogący

  • Użytkownik

Reputacja: 166
Profesjonalista

  • Postów:612
  • Lokalizacja:Jasło
Offline

Napisano 07.08.2009 09:31

hm. Pewno w funkcji pobierajacej tekst z say/say_team jest return 0 lub return PLUGIN_HANDLED
zgadlem?
  • +
  • -
  • 0

#7 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 07.08.2009 10:14

return PLUGIN_HANDLED

Handled blokuje pojawianie sie tekstu w sayu czyli jak wpiszesz komende w say to sie kod wykona lecz samowpisanie komendy nie bedzie widoczne w sayu (tak jak bys tego nie wpisał) natomiast Continue wypisze na say twoja komendę po wykonaniu kodu nie wiem jak to jest z liczbami ale chyba tak samo 0 handled , 1 continue
  • +
  • -
  • 0

#8 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 07.08.2009 12:50

Tak, plugin blokuje say, ale tylko w przypadku tych komend. Wysłanie wiadomości nie będącej komendą nie zostanie zablokowane przez ten plugin.
  • +
  • -
  • 0

#9 mitol007

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:64
Offline

Napisano 07.08.2009 18:21

Zbytnio nie jestem w tych sprawach obeznany, wiec się nie denerwujcie jak coś :)
Rozumiem, że mam coś podmienić / zmienić, tak ?
R3X, jestem pewien że to ten plugin powoduje mój problem. Gdy go włączę - /say nie działa, a gdy wyłączę - /say działa bez zarzutu.
O tym 'czerwonym' mówicie ? Mam coś w tym zmienić, czy jak :D (fragment .sma, gdzie zauważyłem te komendy)


}
if(ArraySize(g_Cmds))
set_task(ANNOUNCER_TIME,"announce",0,_,_,"b");
return PLUGIN_CONTINUE;
}
public openFile(id){
new szCmd[21],szCmd2[21],iCmdId=-1;
read_argv(1,szCmd,20);
for(new i=0;i ArrayGetString(g_Cmds,i,szCmd2,20);
if(equal(szCmd,szCmd2)){
iCmdId=i;
break;
}
}
if(iCmdId==-1)
return PLUGIN_HANDLED;
new szFile[FILE_LEN],szTitle[TITLE_LEN];
ArrayGetString(g_Files,iCmdId,szFile,FILE_LEN-1);
ArrayGetString(g_Titles,iCmdId,szTitle,TITLE_LEN-1);
show_motd(id,szFile,szTitle);
return PLUGIN_HANDLED;
}
public announce(){
if(++g_iNow>=ArraySize(g_Cmds))
g_iNow=0;
new szTitle[TITLE_LEN],szCmd[CMD_LEN];
ArrayGetString(g_Titles,g_iNow,szTitle,TITLE_LEN-1);
ArrayGetString(g_Cmds,g_iNow,szCmd,CMD_LEN-1);
ColorChat(0,YELLOW,"Wpisz w czacie ^x04%s^x01 aby zobaczyc ^x04%s^x01",szCmd,szTitle)
}
  • +
  • -
  • 0

#10 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 07.08.2009 19:16

Daj cały kod tego pluginu jak chcesz wiedzieć co jest w nim źle
  • +
  • -
  • 0

#11 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 07.08.2009 20:19

tu masz kod :D
http://amxx.pl/topic...yer-vt10161.htm

możecie oblukać kod, ale ja wiem, że takie zjawisko zachodzi, gdy w pliku .ini wpiszesz pustą komendę :> więc pokaż tu cmd_files.ini
  • +
  • -
  • 0

#12 mitol007

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:64
Offline

Napisano 07.08.2009 21:40

file_displayer.sma
#include <amxmodx>
#include <amxmisc>
#include "colorChat.inl"

#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "R3X"
#define CFG_FILE "cmd_files.ini"

#define CMD_LEN 20
#define TITLE_LEN 20
#define FILE_LEN 60
#define LINE_LEN CMD_LEN+TITLE_LEN+FILE_LEN+1

#define ANNOUNCER_TIME 30.0
new Array:g_Files;
new Array:g_Titles;
new Array:g_Cmds;
new g_iNow=-1;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	new cfgFile[70];
	get_configsdir(cfgFile,49);
	add(cfgFile,69,"/");
	add(cfgFile,69,CFG_FILE);
	if(!file_exists(cfgFile)){
		return set_fail_state("Brakuje pliku konfiguracyjnego");
	}
	g_Files=ArrayCreate(FILE_LEN,1);
	g_Cmds=ArrayCreate(CMD_LEN,1);
	g_Titles=ArrayCreate(TITLE_LEN,1);
	new szLine[LINE_LEN],szCmd[CMD_LEN],szTitle[TITLE_LEN],iLen=0;
	new szCmdBuf[CMD_LEN+11];
	for(new i=0;read_file(cfgFile,i,szLine,LINE_LEN-1,iLen);i++){
		trim(szLine);
		if(szLine[0]==';') continue;
		parse(szLine,szCmd,CMD_LEN,szLine,FILE_LEN-1,szTitle,TITLE_LEN-1);
		trim(szCmd);
		trim(szLine);
		trim(szTitle);
		ArrayPushString(g_Files,szLine);
		ArrayPushString(g_Cmds,szCmd);
		ArrayPushString(g_Titles,szTitle);
		format(szCmdBuf,CMD_LEN+10,"say %s",szCmd);
		register_clcmd(szCmdBuf,"openFile");
		format(szCmdBuf,CMD_LEN+10,"say_team %s",szCmd);
		register_clcmd(szCmdBuf,"openFile");
	}
	if(ArraySize(g_Cmds))
		set_task(ANNOUNCER_TIME,"announce",0,_,_,"b");
	return PLUGIN_CONTINUE;
}
public openFile(id){
	new szCmd[21],szCmd2[21],iCmdId=-1;
	read_argv(1,szCmd,20);
	for(new i=0;i<ArraySize(g_Cmds);i++){
		ArrayGetString(g_Cmds,i,szCmd2,20);
		if(equal(szCmd,szCmd2)){
			iCmdId=i;
			break;
		}
	}
	if(iCmdId==-1)
		return PLUGIN_HANDLED;
	new szFile[FILE_LEN],szTitle[TITLE_LEN];
	ArrayGetString(g_Files,iCmdId,szFile,FILE_LEN-1);
	ArrayGetString(g_Titles,iCmdId,szTitle,TITLE_LEN-1);
	show_motd(id,szFile,szTitle);
	return PLUGIN_HANDLED;
}
public announce(){
	if(++g_iNow>=ArraySize(g_Cmds))
		g_iNow=0;
	new szTitle[TITLE_LEN],szCmd[CMD_LEN];
	ArrayGetString(g_Titles,g_iNow,szTitle,TITLE_LEN-1);
	ArrayGetString(g_Cmds,g_iNow,szCmd,CMD_LEN-1);
	ColorChat(0,YELLOW,"Wpisz w czacie ^x04%s^x01 aby zobaczyc ^x04%s^x01",szCmd,szTitle)
}

cmd_files.ini
;"plik" to ścieżka dostępu od folderu moda np. cstrike/
;"komenda" "plik" "tytuł"

"/motd" "motd.txt" "powitanie"
"/maps" "cmd_mapy.txt" "dostepne mapy"
"/lastmaps" "addons/amxmodx/configs/maphist.ini" "ostatnio grane mapy"

  • +
  • -
  • 0

#13 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 07.08.2009 21:56

haha, zapomniałem odfiltrować puste linie ;> zaraz poprawię
  • +
  • -
  • 0

#14 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

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

Napisano 07.08.2009 21:59

Ok, pobierz i wrzuć jeszcze raz plik .amxx do plugins
  • +
  • -
  • 0

#15 mitol007

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:64
Offline

Napisano 08.08.2009 08:41

Wszystko działa jak należy :) Dzięki jeszcze raz.
  • +
  • -
  • 0




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

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