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.
|
Guest Message by DevFuse
'jak napisac wlasne komendy'
Temat rozp.
mitol007
, 05.08.2009 15:48
14 odpowiedzi w tym temacie
#1
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
Albo mi powiedźcie / dajcie jakiegoś linka jak 'to cos' napisać albo coś ;pp
Może trochę zawile opisane, ale myślę że mnie zrozumiecie
Albo mi powiedźcie / dajcie jakiegoś linka jak 'to cos' napisać albo coś ;pp
#3
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 ?
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 ?
#4
Napisano 06.08.2009 19:57
Nie znalazło pliku podejrzewam, że chodzi o
Coś takiego
Coś takiego
"/lastmaps" "addons/amxmodx/configs/maphist.ini" "Ostatnio grane mapy"
#5
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 ?
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 ?
#6
Napisano 07.08.2009 09:31
hm. Pewno w funkcji pobierajacej tekst z say/say_team jest return 0 lub return PLUGIN_HANDLED
zgadlem?
zgadlem?
#7
Napisano 07.08.2009 10:14
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 continuereturn PLUGIN_HANDLED
#8
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.
#9
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 (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)
}
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 (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
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)
}
#10
Napisano 07.08.2009 19:16
Daj cały kod tego pluginu jak chcesz wiedzieć co jest w nim źle
#11
Napisano 07.08.2009 20:19
tu masz kod
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
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
#12
Napisano 07.08.2009 21:40
file_displayer.sma
cmd_files.ini
#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"
#13
Napisano 07.08.2009 21:56
haha, zapomniałem odfiltrować puste linie ;> zaraz poprawię
#14
Napisano 07.08.2009 21:59
Ok, pobierz i wrzuć jeszcze raz plik .amxx do plugins
#15
Napisano 08.08.2009 08:41
Wszystko działa jak należy Dzięki jeszcze raz.
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych