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
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: 1
0 użytkowników, 1 gości, 0 anonimowych


Dodatki SourceMod



Temat jest zamknięty



ss.amxx






