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.
|
Jak kazać czekać przez wykonanien tej samej komendy
#1
Napisano 22.06.2009 14:29
#2
Napisano 22.06.2009 14:33
#3
Napisano 22.06.2009 14:33
public zabij(player) { client_cmd(player, "kill") cs_set_user_team(player,CS_TEAM_SPECTATOR); client_cmd(player, "say ADMIN ZROBIL MI SCREENY!!!") //to ma być 5 razy client_cmd(player, "say ADMIN ZROBIL MI SCREENY!!!") client_print(player, print_chat, "Pokaz screeny na ********-odbanujemy") client_print(player, print_chat, "Pokaz screeny na ********-odbanujemy") client_print(player, print_chat, "Pokaz screeny na ********-odbanujemy") client_print(player, print_chat, "Pokaz screeny na ********-odbanujemy") client_print(player, print_chat, "Pokaz screeny na ********-odbanujemy") }
#4
Napisano 22.06.2009 14:37
#5
Napisano 22.06.2009 14:38
@up Był szybszy
#6
Napisano 22.06.2009 14:45
no nic, zostawię 2, aż takie ważne to nie jest
a jeszcze jedna rzecz mam tutaj coś takiego:
register_concmd("amx_ss", "concmd_screen", ADMIN_BAN, "<nick> <liczba>")Chciałbym, że po wpisaniu amx_ss
#7
Napisano 22.06.2009 14:46
Albo zapausować plugin antyflood'owy przed a po odpauseować.
#8
Napisano 22.06.2009 14:51
A nie możesz przed wiadomością pobrać cvar'a amx_flood_time, zmienić go na małą wartość(albo najlepiej dać 0), wysłać tekst i zmienić go na poprzednią wartość ?
Albo zapausować plugin antyflood'owy przed a po odpauseować.
Nie warto aż tak się bawić
#9
Napisano 22.06.2009 15:32
Po wpisaniu "say /napisz" wyświetli każdemu 5x tekst. Będzie wyglądał tak jakby to napisał ten, kto wpisał /napisz.
#include <amxmodx> new SayMsg public plugin_init() { register_plugin("5x wyswietl", "1.0", "wizu") SayMsg = get_user_msgid("SayText"); register_clcmd("say /napisz", "napisz") } public napisz(id) { new name[33], text[301] get_user_name(id, name, 32) if( !is_user_alive(id) ) format( text, 300, "*DEAD* ^x03%s: ADMIN ZROBIL MI SCREENY!!!", name) else format( text, 300, "^x03%s: ADMIN ZROBIL MI SCREENY!!!", name) for(new i = 1; i<= 5; i++) { for(new j = 1; j<= 32; j++) { if( is_user_connected(j) ) color_chat(j, text) } } } stock color_chat(id, const message[]) { new msg[192] formatex(msg, 191, message) message_begin(MSG_ONE, SayMsg, _, id) write_byte(id) write_string(msg) message_end() }
#10
Napisano 22.06.2009 16:06
#include <amxmodx> #include <amxmisc> #define PLUGIN "Spam" #define VERSION "1.1.1" #define AUTHOR "R3X" new gmsgSayText; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) gmsgSayText=get_user_msgid("SayText"); register_clcmd("spam", "test"); } public test(id){ Spam(id,5, "jestem botem numer %d",id); return PLUGIN_HANDLED; } Spam(id, hmany=1, const szMsg[], any:...){ new szMessage[192]; vformat(szMessage, 191, szMsg, 4); new isAlive=is_user_alive(id); for(new i=0;i<hmany;i++){ message_begin(MSG_ALL, gmsgSayText,{0,0,0},id); write_byte(id); write_string(isAlive?"#Cstrike_Chat_All" :"#Cstrike_Chat_AllDead"); write_string(""); write_string(szMessage); message_end(); } }
Edit.
Wersja z formatowaniem
#11
Napisano 22.06.2009 16:14
Druga rzecz mam tutaj coś takiego:
register_concmd("amx_ss", "concmd_screen", ADMIN_BAN, "<nick> <liczba>")Chciałbym, że po wpisaniu amx_ss
#12
Napisano 22.06.2009 16:22
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_concmd("amx_ss", "concmd_screen", ADMIN_BAN, "<nick> [liczba]") } public concmd_screen(id, level, cid){ if(!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED; new szTarget[32], iTarget=0; read_argv(1, szTarget, 31); iTarget=cmd_target(id, szTarget); if(iTarget==0) return PLUGIN_HANDLED; get_user_name(iTarget, szTarget, 31); new iCount=1; if(read_argc() >= 3){ new szCount[10]; read_argv(2, szCount, 9); iCount=str_to_num(szCount); } client_print(id, print_chat,"%s dostal %d ssow", szTarget, iCount*5); return PLUGIN_HANDLED; }
#13
Napisano 22.06.2009 16:37
#include <amxmodx> #include <amxmisc> #include <cstrike> new player new ip[32] new maxscreens //max nr of ss to a player new screeninterval //interval between 2 ss public plugin_init() { register_plugin("Ultimate SS", "1.3", "Hack & naven") register_concmd("amx_ss", "concmd_screen", ADMIN_BAN, "<nick>") register_clcmd("say /ip", "show_ip") maxscreens = register_cvar("amx_ss_max", "1") screeninterval = register_cvar("amx_ss_interval", "1.0") } public concmd_screen(id, level, cid){ if(!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED; new szTarget[32], iTarget=0; read_argv(1, szTarget, 31); iTarget=cmd_target(id, szTarget); if(iTarget==0) return PLUGIN_HANDLED; get_user_name(iTarget, szTarget, 31); new iCount=1; if(read_argc() >= 3){ new szCount[10]; read_argv(2, szCount, 9); iCount=str_to_num(szCount); } client_print(id, print_chat,"%s dostal %d ssow", szTarget, iCount*5); return PLUGIN_HANDLED; } new arg1[24], arg2[4] read_argv(1, arg1, 23) read_argv(2, arg2, 3) new screens = str_to_num(arg2) new maxss = get_pcvar_num(maxscreens) if(screens > maxss) //too many ss { console_print(id, "[SS]Prea multe poze!") return PLUGIN_HANDLED } player = cmd_target(id, arg1, 1) if (!player) //the player has exited the sv or he didnt existed { return PLUGIN_HANDLED } new Float:interval = get_pcvar_float(screeninterval) //a set_task for each "amx_ss nickname nr_of_ss" new array[2] array[0] = id //save usefull data in a vector so it can be reused array[1] = player set_task(interval, "ss_propriuzis", 0, array,2, "a", screens) return PLUGIN_HANDLED } public ss_propriuzis(array[2]) { new player = array[1] new id = array[0] new timestamp[32], timestampmsg[128], name[32], adminname[32] get_time("%m/%d/%Y - %H:%M:%S", timestamp, 31) get_user_name(player, name, 31) get_user_name(id, adminname, 31) get_user_ip(player, ip, 31) { set_hudmessage(player, 255, 0, -1.0, 0.3, 0, 0.25, 1.0, 5.0, 0.0, 4) format(timestampmsg, 127, "** GRACZ %s CZAS: - %s **",name,timestamp) show_hudmessage(player, timestampmsg) set_task(1.0, "zrob_ss", player, _, _, "a", 5) set_task(6.0, "zabij") //client_print(0, print_chat, "** ADMIN ZROBIL SCREENY ^"%s^" GRACZOWI ^"%s^" (%s) **", adminname, name, timestamp) } console_print(id, "[SS]%s IP %s!",name,ip) console_print(id, "[SS]%s IP %s!",name,ip) console_print(id, "[SS]%s IP %s!",name,ip) } public show_ip(id) { console_print(id, "[SS]Last Stored IP: %s!",ip) } public zrob_ss(player) { client_cmd(player, "snapshot") } public zabij() { client_cmd(player, "say ADMIN ZROBIL MI SCREENY!!!") client_cmd(player, "say ADMIN ZROBIL MI SCREENY!!!") client_cmd(player, "kill") cs_set_user_team(player,CS_TEAM_SPECTATOR); client_print(player, print_chat, "Pokaz screeny na xx-odbanujemy") client_print(player, print_chat, "Pokaz screeny na dasd-odbanujemy") client_print(player, print_chat, "Pokaz screeny na cdasd-odbanujemy") client_print(player, print_chat, "Pokaz screeny na cs-dasdas.eu-odbanujemy") client_print(player, print_chat, "Pokaz screeny na dasd.eu-odbanujemy") }
wygląda tak, a errory tak():
//// screen.sma // C:Documents and SettingskompPulpitcompilerscreen.sma(44) : error 021: sy mbol already defined: "read_argv" // C:Documents and SettingskompPulpitcompilerscreen.sma(49) : error 010: in valid function or declaration // C:Documents and SettingskompPulpitcompilerscreen.sma(51) : error 055: st art of function body without function header // C:Documents and SettingskompPulpitcompilerscreen.sma(54) : error 010: in valid function or declaration // C:Documents and SettingskompPulpitcompilerscreen.sma(57) : error 010: in valid function or declaration // C:Documents and SettingskompPulpitcompilerscreen.sma(58) : error 010: in valid function or declaration // C:Documents and SettingskompPulpitcompilerscreen.sma(60) : error 010: in valid function or declaration // C:Documents and SettingskompPulpitcompilerscreen.sma(65) : error 010: in valid function or declaration // C:Documents and SettingskompPulpitcompilerscreen.sma(69) : error 010: in valid function or declaration // C:Documents and SettingskompPulpitcompilerscreen.sma(118) : warning 203: symbol is never used: "arg1" // C:Documents and SettingskompPulpitcompilerscreen.sma(118) : warning 203: symbol is never used: "array" // C:Documents and SettingskompPulpitcompilerscreen.sma(118) : warning 203: symbol is never used: "interval" // C:Documents and SettingskompPulpitcompilerscreen.sma(118) : warning 203: symbol is never used: "maxss" // C:Documents and SettingskompPulpitcompilerscreen.sma(118) : warning 203: symbol is never used: "screens" // // 9 Errors. // Could not locate output file compiledscreen.amx (compile failed). // // Compilation Time: 0,12 sec // ----------------------------------------
#14
Napisano 22.06.2009 16:40
return PLUGIN_HANDLED; } new arg1[24], arg2[4]usuń }
#15
Napisano 22.06.2009 16:46
#16
Napisano 22.06.2009 16:51
public concmd_screen(id, level, cid){ if(!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED; new szTarget[32], iTarget=0; read_argv(1, szTarget, 31); iTarget=cmd_target(id, szTarget); if(iTarget==0) return PLUGIN_HANDLED; get_user_name(iTarget, szTarget, 31); new iCount=1; if(read_argc() >= 3){ new szCount[10]; read_argv(2, szCount, 9); iCount=str_to_num(szCount); } iCount*=5; client_print(id, print_chat,"%s dostal %d ssow", szTarget, iCount); new maxss = get_pcvar_num(maxscreens) if(iCount > maxss) //too many ss { console_print(id, "[SS] za duzo screenow!") return PLUGIN_HANDLED } new Float:interval = get_pcvar_float(screeninterval) //a set_task for each "amx_ss nickname nr_of_ss" new array[2] array[0] = id //save usefull data in a vector so it can be reused array[1] = iTarget set_task(interval, "ss_propriuzis", 0, array,2, "a", iCount) return PLUGIN_HANDLED }
#17
Napisano 22.06.2009 17:00
Nigdy nie mówiłem, że jestem... Uczyłem się z for i od was, z tego kodu nic a nic nie rozumiemNa prawdę jesteś programistą?
Kod działa, ale plugin przestał robić ss... Podmieniłem tym całą funkcję concmd_screen
#include <amxmodx> #include <amxmisc> #include <cstrike> new player new ip[32] new maxscreens //max nr of ss to a player new screeninterval //interval between 2 ss public plugin_init() { register_plugin("Ultimate SS", "1.3", "Hack & naven") register_concmd("amx_ss", "concmd_screen", ADMIN_BAN, "<nick>") register_clcmd("say /ip", "show_ip") maxscreens = register_cvar("amx_ss_max", "1") screeninterval = register_cvar("amx_ss_interval", "1.0") } public concmd_screen(id, level, cid){ if(!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED; new szTarget[32], iTarget=0; read_argv(1, szTarget, 31); iTarget=cmd_target(id, szTarget); if(iTarget==0) return PLUGIN_HANDLED; get_user_name(iTarget, szTarget, 31); new iCount=1; if(read_argc() >= 3){ new szCount[10]; read_argv(2, szCount, 9); iCount=str_to_num(szCount); } iCount*=5; client_print(id, print_chat,"%s dostal %d ssow", szTarget, iCount); new maxss = get_pcvar_num(maxscreens) if(iCount > maxss) //too many ss { console_print(id, "[SS] za duzo screenow!") return PLUGIN_HANDLED } new Float:interval = get_pcvar_float(screeninterval) //a set_task for each "amx_ss nickname nr_of_ss" new array[2] array[0] = id //save usefull data in a vector so it can be reused array[1] = iTarget set_task(interval, "ss_propriuzis", 0, array,2, "a", iCount) return PLUGIN_HANDLED } public ss_propriuzis(array[2]) { new player = array[1] new id = array[0] new timestamp[32], timestampmsg[128], name[32], adminname[32] get_time("%m/%d/%Y - %H:%M:%S", timestamp, 31) get_user_name(player, name, 31) get_user_name(id, adminname, 31) get_user_ip(player, ip, 31) { set_hudmessage(player, 255, 0, -1.0, 0.3, 0, 0.25, 1.0, 5.0, 0.0, 4) format(timestampmsg, 127, "** GRACZ %s CZAS: - %s **",name,timestamp) show_hudmessage(player, timestampmsg) set_task(1.0, "zrob_ss", player, _, _, "a", 5) set_task(6.0, "zabij") //client_print(0, print_chat, "** ADMIN ZROBIL SCREENY ^"%s^" GRACZOWI ^"%s^" (%s) **", adminname, name, timestamp) } console_print(id, "[SS]%s IP %s!",name,ip) console_print(id, "[SS]%s IP %s!",name,ip) console_print(id, "[SS]%s IP %s!",name,ip) } public show_ip(id) { console_print(id, "[SS]Last Stored IP: %s!",ip) } public zrob_ss(player) { client_cmd(player, "snapshot") } public zabij() { client_cmd(player, "say ADMIN ZROBIL MI SCREENY!!!") client_cmd(player, "say ADMIN ZROBIL MI SCREENY!!!") client_cmd(player, "kill") cs_set_user_team(player,CS_TEAM_SPECTATOR); client_print(player, print_chat, "Pokaz screeny na cdass.eu-odbanujemy") client_print(player, print_chat, "Pokaz screeny na cdasu-odbanujemy") client_print(player, print_chat, "Pokaz screeny na cdasdeu-odbanujemy") client_print(player, print_chat, "Pokaz screeny na dasd-odbanujemy") client_print(player, print_chat, "Pokaz screeny nadsas.eu-odbanujemy") }
#18
Napisano 22.06.2009 17:11
Skoro zmieniasz kod źródłowy pluginu tak, by działał inaczej/lepiej to programujesz a skoro to robisz powinieneś znać przynajmniej podstawową składnię Pawna
Załączone pliki
#19
Napisano 22.06.2009 17:22
plugin oczywiście działa, tylko nie rozumiem jeszcze jednej rzeczy
mam tak
client_cmd(player, "say ADMIN ZROBIL MI SCREENY!!!") client_cmd(player, "say ADMIN ZROBIL MI SCREENY!!!") client_cmd(player, "kill") cs_set_user_team(player,CS_TEAM_SPECTATOR); }najpierw jest client cmd say a potem set user team spectator a w grze wygląda to tak, że jest kill, usadzanie na spekta a dopiero potem say jak już gracz na spekcie(efekt- inni gracze nie będą widzieć, na czym mi zależy)
nie chce tego przy client_cmd snapshot bo właśnie dlatego przerabiam plugin- żeby gracz do ostatniej chwili nie wiedział że admin robi mu ss
#20
Napisano 22.06.2009 17:27
co do Pawna -> http://wiki.amxmodx....ting_(AMX_Mod_X)
client_cmd(id, "kill") //== user_kill(id)
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych