se poate asa ceva cu webhook?

Discutii generale despre GO.eXtreamCS.com

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

User avatar
sssss
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 63
Joined: 15 Dec 2021, 20:14
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Has thanked: 4 times
Been thanked: 1 time

15 Feb 2022, 16:40

https://ugc-gaming.net/index.php?thread ... stem.7241/

am gasit asta
se poate face asa ceva cu webhook discord?
RoyalServer
Shadows Adi
Membru, skill +1
Membru, skill +1
Posts: 349
Joined: 26 Jan 2020, 18:52
Detinator Steam: Da
CS Status: 0x416469
SteamID: shadowsadi120
Fond eXtream: 0
Has thanked: 14 times
Been thanked: 50 times

15 Feb 2022, 17:29

User avatar
sssss
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 63
Joined: 15 Dec 2021, 20:14
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Has thanked: 4 times
Been thanked: 1 time

15 Feb 2022, 17:51

cred ca am incercat toate variantele si nu-mi iese nimic :))
Shadows Adi
Membru, skill +1
Membru, skill +1
Posts: 349
Joined: 26 Jan 2020, 18:52
Detinator Steam: Da
CS Status: 0x416469
SteamID: shadowsadi120
Fond eXtream: 0
Has thanked: 14 times
Been thanked: 50 times

15 Feb 2022, 17:52

Arata ce ai incercat cat si erorile primite. Primele doua API-uri functioneaza.
User avatar
sssss
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 63
Joined: 15 Dec 2021, 20:14
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Has thanked: 4 times
Been thanked: 1 time

16 Feb 2022, 11:24

Shadows Adi wrote:
15 Feb 2022, 17:52
Arata ce ai incercat cat si erorile primite. Primele doua API-uri functioneaza.
am incercat cu asta
| Afiseaza codul
#include < amxmodx >
#include < grip >

/* SETTINGS */
new const WEBHOOK[] = "";

//Команды, по которыым будет доступно меню плагина (просто лень прикручивать ini)
new const cmds[][] = {
	"say /report", 	"say_team /report",
	"say /zhaloba", "say_team /zhaloba"
};

//Причины в меню (просто лень прикручивать ini)
new const reasons[][] = {
	"Читер",
	"Мешает играть",
	"Использование багов",
	"Кемпинг",
	"Оскорбления",
	"Реклама"
};

#define MY_REASON 					//Если не хотите, чтобы люди могли писать свою причину - закоментируйте
#define ANTIFLOOD 	300				//Раз в сколько секунд можно будет отправить репорт? (сохранение на карту) [если антифлуд не нужен - закоментируйте]
#define REP_IMMUN 	ADMIN_RCON		//На кого нельзя подавать жалобы? [Если не нужно - закоментируйте]

//Выводить все мессаги в константы или подключать словарик впадлу
new const PREFIX[] = 					"^3[^4REPORTS^3]";

/*
	{rname} - Ник человека подавшего жалобу | {rip} - ИП человека подавшего жалобу | {rauth} - СтимИД человека подавшего жалобу
	{vname} - Ник человека, на которого идет жалоба | {vip} - ИП человека, на которого идет жалоба | {vauth} - СтимИД человека, на которого идет жалоба
	{reason} - Причина жалобы
	{hostname} - Название сервера | {ip} - ИП Сервера
*/
new const SHABLON_REPORT[] = 			"@everyone^n{hostname} ({ip})^nОт: {rname} ({rauth})^nНа: {vname} ({vauth}) ({vip})^nПричина: {reason}";	//То что, будет написано в дискорд канал
/* SETTINGS */

//MAX_PLAYERS + 1 = 33 <3
new gTarget[33], gReason[33][192], rMenu;
#if defined ANTIFLOOD
new Trie: AntiF, AntiFlood[33];
#endif

new gHostname[64], gIp[22];

public plugin_init(){
	register_plugin("Discord Reports", "0.2", "paffgame");
	
	for(new i; i < sizeof cmds; i ++)
		register_clcmd(cmds, "gotoMenu");
	
	create_reasons();
	
	get_cvar_string("hostname", gHostname, charsmax(gHostname));
	get_user_ip(0, gIp, charsmax(gIp));
	
	#if defined ANTIFLOOD
	AntiF = TrieCreate();
	#endif
}

#if defined ANTIFLOOD
public plugin_end()
	TrieDestroy(AntiF);
#endif

public create_reasons(){
	rMenu = menu_create("Выберите причину", "handler_reason");
	
	for(new i; i < sizeof reasons; i ++)
		menu_additem(rMenu, reasons);
	
	#if defined MY_REASON
	register_clcmd("disc_rep_reason", "get_reason");
	menu_additem(rMenu, "Своя причина");
	#endif
	
	menu_setprop(rMenu, MPROP_NEXTNAME, "Дальше");
	menu_setprop(rMenu, MPROP_BACKNAME, "Назад");
	menu_setprop(rMenu, MPROP_EXITNAME, "Выход");
}

#if defined MY_REASON
public get_reason(id){
	if(!gTarget[id])
		return;
	
	read_argv(1, gReason[id], charsmax(gReason[]));
	send_report(id);
}
#endif

public client_putinserver(id){
	clear(id);
	
	#if defined ANTIFLOOD	
	new steam[35];	
	get_user_authid(id, steam, charsmax(steam));
	if(!TrieGetCell(AntiF, steam, AntiFlood[id]))
		AntiFlood[id] = 0;
	#endif
}

#if defined ANTIFLOOD
public client_disconnected(id){
	if(AntiFlood[id] > get_systime()){
		new steam[35];	
		get_user_authid(id, steam, charsmax(steam));
		TrieSetCell(AntiF, steam, AntiFlood[id]);
	}
}
#endif

public clear(id){
	gTarget[id] = 0;
	gReason[id][0] = '^0';
}

public gotoMenu(id){
	clear(id);
	
	new menu = menu_create("Выберите игрока", "handler_players");
	
	new pl[32], cnt;
	get_players(pl, cnt, "ch");
	
	for(new i, player; i < cnt; i ++){
		player = pl;
		
		#if !defined REP_IMMUN
		if(player == id)	
			continue;
		#else
		if(player == id || get_user_flags(player) & REP_IMMUN)	
			continue;
		#endif
		
		menu_additem(menu, fmt("%n", player), fmt("%d", player));
	}
	
	if(!menu_items(menu)){
		client_print_color(id, 0, "%s Нет подходящих игроков", PREFIX);
		menu_destroy(menu);
		return;
	}
	
	menu_setprop(menu, MPROP_NEXTNAME, "Дальше");
	menu_setprop(menu, MPROP_BACKNAME, "Назад");
	menu_setprop(menu, MPROP_EXITNAME, "Выход");
	
	menu_display(id, menu);
}

public handler_players(id, menu, item){
	if(item == MENU_EXIT){
		menu_destroy(menu);
		return;
	}
	
	#if defined ANTIFLOOD
	new systime;
	if(AntiFlood[id] > (systime = get_systime())){
		client_print_color(id, 0, "%s Новую жалобу Вы сможете подать через^4 %d сек.", PREFIX, AntiFlood[id] - systime);
		menu_destroy(menu);
		return;
	}
	#endif
	
	new access, name[32], info[10], clbck;
	menu_item_getinfo(menu, item, access, info, charsmax(info), name, charsmax(name), clbck);
	menu_destroy(menu);
	
	new pl = str_to_num(info);
	if(!check_target(id, pl)){
		gotoMenu(id);
		return;
	}
	
	gTarget[id] = pl;
	menu_display(id, rMenu);
}

public handler_reason(id, menu, item){
	if(item == MENU_EXIT)
		return;
	
	#if defined MY_REASON
	if(item == sizeof(reasons)){
		client_cmd(id, "messagemode disc_rep_reason");
		return;
	}
	#endif
	
	copy(gReason[id], charsmax(gReason[]), reasons[item]);
	send_report(id);
}

public send_report(id){	
	if(!is_user_connected(id) || !check_target(id, gTarget[id]))
		return;
	
	new text[1024], steam[35], ip[17], psteam[35], pip[17];
	get_user_authid(id, steam, charsmax(steam));
	get_user_authid(gTarget[id], psteam, charsmax(psteam));
	get_user_ip(id, ip, charsmax(ip), 1);
	get_user_ip(gTarget[id], pip, charsmax(pip), 1);
	
	format(text, charsmax(text), "content=%s", SHABLON_REPORT);
	
	replace_string(text, charsmax(text), "{rname}", fmt("%n", id));
	replace_string(text, charsmax(text), "{rauth}", steam);
	replace_string(text, charsmax(text), "{rip}", ip);	
	replace_string(text, charsmax(text), "{vname}", fmt("%n", gTarget[id]));
	replace_string(text, charsmax(text), "{vauth}", psteam);
	replace_string(text, charsmax(text), "{vip}", pip);
	replace_string(text, charsmax(text), "{reason}", gReason[id]);
	replace_string(text, charsmax(text), "{hostname}", gHostname);
	replace_string(text, charsmax(text), "{ip}", gIp);
	
	GoRequest(id, WEBHOOK, "Handler_SendReason", GripRequestTypePost, text);
	
	clear(id);
	#if defined ANTIFLOOD
	AntiFlood[id] = get_systime() + ANTIFLOOD;
	#endif
}

public Handler_SendReason(const id){
	if(!is_user_connected(id))
		return;
	
	if(!HandlerGetErr()){
		client_print_color(id, 0, "%s Произошла ошибка, обратитесь к администрации", PREFIX);
		#if defined ANTIFLOOD
		AntiFlood[id] = 0;
		#endif
		return;
	}
	
	client_print_color(id, 0, "%s Жалоба успешно отправлена!", PREFIX);
}

public check_target(id, pl){
	if(!is_user_connected(pl)){
		client_print_color(id, 0, "%s Игрок вышел с сервера!", PREFIX);
		clear(id);
		return false;
	}
	return true;
}

public GoRequest(const id, const site[], const handler[], const GripRequestType:type, data[]){		
	new GripRequestOptions:options = grip_create_default_options();
	grip_options_add_header(options, "Content-Type", "application/x-www-form-urlencoded");
	
	new GripBody: body = grip_body_from_string(data);
	grip_request(site, body, type, handler, options, id);	
	
	grip_destroy_body(body);	
	grip_destroy_options(options);
}

public bool: HandlerGetErr(){
	if(grip_get_response_state() == GripResponseStateError){
		log_amx("ResponseState is Error");
		return false;
	}
	
	new GripHTTPStatus:err;
	if((err = grip_get_response_status_code()) != GripHTTPStatusNoContent){
		log_amx("ResponseStatusCode is %d", err);
		return false;
	}
	
	return true;
}


prima oara mi-a mers sa l compilez dar uitasem de webhook sa-l adaug, si cand am incercat a doua oara n-a mai mers, am scos si webhook ul sa vad daca merge din nou dar nup
Shadows Adi
Membru, skill +1
Membru, skill +1
Posts: 349
Joined: 26 Jan 2020, 18:52
Detinator Steam: Da
CS Status: 0x416469
SteamID: shadowsadi120
Fond eXtream: 0
Has thanked: 14 times
Been thanked: 50 times

16 Feb 2022, 17:22

sssss wrote:
16 Feb 2022, 11:24
Shadows Adi wrote:
15 Feb 2022, 17:52
Arata ce ai incercat cat si erorile primite. Primele doua API-uri functioneaza.
am incercat cu asta
| Afiseaza codul
#include < amxmodx >
#include < grip >

/* SETTINGS */
new const WEBHOOK[] = "";

//Команды, по которыым будет доступно меню плагина (просто лень прикручивать ini)
new const cmds[][] = {
	"say /report", 	"say_team /report",
	"say /zhaloba", "say_team /zhaloba"
};

//Причины в меню (просто лень прикручивать ini)
new const reasons[][] = {
	"Читер",
	"Мешает играть",
	"Использование багов",
	"Кемпинг",
	"Оскорбления",
	"Реклама"
};

#define MY_REASON 					//Если не хотите, чтобы люди могли писать свою причину - закоментируйте
#define ANTIFLOOD 	300				//Раз в сколько секунд можно будет отправить репорт? (сохранение на карту) [если антифлуд не нужен - закоментируйте]
#define REP_IMMUN 	ADMIN_RCON		//На кого нельзя подавать жалобы? [Если не нужно - закоментируйте]

//Выводить все мессаги в константы или подключать словарик впадлу
new const PREFIX[] = 					"^3[^4REPORTS^3]";

/*
	{rname} - Ник человека подавшего жалобу | {rip} - ИП человека подавшего жалобу | {rauth} - СтимИД человека подавшего жалобу
	{vname} - Ник человека, на которого идет жалоба | {vip} - ИП человека, на которого идет жалоба | {vauth} - СтимИД человека, на которого идет жалоба
	{reason} - Причина жалобы
	{hostname} - Название сервера | {ip} - ИП Сервера
*/
new const SHABLON_REPORT[] = 			"@everyone^n{hostname} ({ip})^nОт: {rname} ({rauth})^nНа: {vname} ({vauth}) ({vip})^nПричина: {reason}";	//То что, будет написано в дискорд канал
/* SETTINGS */

//MAX_PLAYERS + 1 = 33 <3
new gTarget[33], gReason[33][192], rMenu;
#if defined ANTIFLOOD
new Trie: AntiF, AntiFlood[33];
#endif

new gHostname[64], gIp[22];

public plugin_init(){
	register_plugin("Discord Reports", "0.2", "paffgame");
	
	for(new i; i < sizeof cmds; i ++)
		register_clcmd(cmds, "gotoMenu");
	
	create_reasons();
	
	get_cvar_string("hostname", gHostname, charsmax(gHostname));
	get_user_ip(0, gIp, charsmax(gIp));
	
	#if defined ANTIFLOOD
	AntiF = TrieCreate();
	#endif
}

#if defined ANTIFLOOD
public plugin_end()
	TrieDestroy(AntiF);
#endif

public create_reasons(){
	rMenu = menu_create("Выберите причину", "handler_reason");
	
	for(new i; i < sizeof reasons; i ++)
		menu_additem(rMenu, reasons);
	
	#if defined MY_REASON
	register_clcmd("disc_rep_reason", "get_reason");
	menu_additem(rMenu, "Своя причина");
	#endif
	
	menu_setprop(rMenu, MPROP_NEXTNAME, "Дальше");
	menu_setprop(rMenu, MPROP_BACKNAME, "Назад");
	menu_setprop(rMenu, MPROP_EXITNAME, "Выход");
}

#if defined MY_REASON
public get_reason(id){
	if(!gTarget[id])
		return;
	
	read_argv(1, gReason[id], charsmax(gReason[]));
	send_report(id);
}
#endif

public client_putinserver(id){
	clear(id);
	
	#if defined ANTIFLOOD	
	new steam[35];	
	get_user_authid(id, steam, charsmax(steam));
	if(!TrieGetCell(AntiF, steam, AntiFlood[id]))
		AntiFlood[id] = 0;
	#endif
}

#if defined ANTIFLOOD
public client_disconnected(id){
	if(AntiFlood[id] > get_systime()){
		new steam[35];	
		get_user_authid(id, steam, charsmax(steam));
		TrieSetCell(AntiF, steam, AntiFlood[id]);
	}
}
#endif

public clear(id){
	gTarget[id] = 0;
	gReason[id][0] = '^0';
}

public gotoMenu(id){
	clear(id);
	
	new menu = menu_create("Выберите игрока", "handler_players");
	
	new pl[32], cnt;
	get_players(pl, cnt, "ch");
	
	for(new i, player; i < cnt; i ++){
		player = pl;
		
		#if !defined REP_IMMUN
		if(player == id)	
			continue;
		#else
		if(player == id || get_user_flags(player) & REP_IMMUN)	
			continue;
		#endif
		
		menu_additem(menu, fmt("%n", player), fmt("%d", player));
	}
	
	if(!menu_items(menu)){
		client_print_color(id, 0, "%s Нет подходящих игроков", PREFIX);
		menu_destroy(menu);
		return;
	}
	
	menu_setprop(menu, MPROP_NEXTNAME, "Дальше");
	menu_setprop(menu, MPROP_BACKNAME, "Назад");
	menu_setprop(menu, MPROP_EXITNAME, "Выход");
	
	menu_display(id, menu);
}

public handler_players(id, menu, item){
	if(item == MENU_EXIT){
		menu_destroy(menu);
		return;
	}
	
	#if defined ANTIFLOOD
	new systime;
	if(AntiFlood[id] > (systime = get_systime())){
		client_print_color(id, 0, "%s Новую жалобу Вы сможете подать через^4 %d сек.", PREFIX, AntiFlood[id] - systime);
		menu_destroy(menu);
		return;
	}
	#endif
	
	new access, name[32], info[10], clbck;
	menu_item_getinfo(menu, item, access, info, charsmax(info), name, charsmax(name), clbck);
	menu_destroy(menu);
	
	new pl = str_to_num(info);
	if(!check_target(id, pl)){
		gotoMenu(id);
		return;
	}
	
	gTarget[id] = pl;
	menu_display(id, rMenu);
}

public handler_reason(id, menu, item){
	if(item == MENU_EXIT)
		return;
	
	#if defined MY_REASON
	if(item == sizeof(reasons)){
		client_cmd(id, "messagemode disc_rep_reason");
		return;
	}
	#endif
	
	copy(gReason[id], charsmax(gReason[]), reasons[item]);
	send_report(id);
}

public send_report(id){	
	if(!is_user_connected(id) || !check_target(id, gTarget[id]))
		return;
	
	new text[1024], steam[35], ip[17], psteam[35], pip[17];
	get_user_authid(id, steam, charsmax(steam));
	get_user_authid(gTarget[id], psteam, charsmax(psteam));
	get_user_ip(id, ip, charsmax(ip), 1);
	get_user_ip(gTarget[id], pip, charsmax(pip), 1);
	
	format(text, charsmax(text), "content=%s", SHABLON_REPORT);
	
	replace_string(text, charsmax(text), "{rname}", fmt("%n", id));
	replace_string(text, charsmax(text), "{rauth}", steam);
	replace_string(text, charsmax(text), "{rip}", ip);	
	replace_string(text, charsmax(text), "{vname}", fmt("%n", gTarget[id]));
	replace_string(text, charsmax(text), "{vauth}", psteam);
	replace_string(text, charsmax(text), "{vip}", pip);
	replace_string(text, charsmax(text), "{reason}", gReason[id]);
	replace_string(text, charsmax(text), "{hostname}", gHostname);
	replace_string(text, charsmax(text), "{ip}", gIp);
	
	GoRequest(id, WEBHOOK, "Handler_SendReason", GripRequestTypePost, text);
	
	clear(id);
	#if defined ANTIFLOOD
	AntiFlood[id] = get_systime() + ANTIFLOOD;
	#endif
}

public Handler_SendReason(const id){
	if(!is_user_connected(id))
		return;
	
	if(!HandlerGetErr()){
		client_print_color(id, 0, "%s Произошла ошибка, обратитесь к администрации", PREFIX);
		#if defined ANTIFLOOD
		AntiFlood[id] = 0;
		#endif
		return;
	}
	
	client_print_color(id, 0, "%s Жалоба успешно отправлена!", PREFIX);
}

public check_target(id, pl){
	if(!is_user_connected(pl)){
		client_print_color(id, 0, "%s Игрок вышел с сервера!", PREFIX);
		clear(id);
		return false;
	}
	return true;
}

public GoRequest(const id, const site[], const handler[], const GripRequestType:type, data[]){		
	new GripRequestOptions:options = grip_create_default_options();
	grip_options_add_header(options, "Content-Type", "application/x-www-form-urlencoded");
	
	new GripBody: body = grip_body_from_string(data);
	grip_request(site, body, type, handler, options, id);	
	
	grip_destroy_body(body);	
	grip_destroy_options(options);
}

public bool: HandlerGetErr(){
	if(grip_get_response_state() == GripResponseStateError){
		log_amx("ResponseState is Error");
		return false;
	}
	
	new GripHTTPStatus:err;
	if((err = grip_get_response_status_code()) != GripHTTPStatusNoContent){
		log_amx("ResponseStatusCode is %d", err);
		return false;
	}
	
	return true;
}


prima oara mi-a mers sa l compilez dar uitasem de webhook sa-l adaug, si cand am incercat a doua oara n-a mai mers, am scos si webhook ul sa vad daca merge din nou dar nup


Poftim:

Code: Select all

#include < amxmodx >
#include < grip >

/* SETTINGS */
new const WEBHOOK[] = "";

//Команды, по которыым будет доступно меню плагина (просто лень прикручивать ini)
new const cmds[][] = {
	"say /report", 	"say_team /report",
	"say /zhaloba", "say_team /zhaloba"
};

//Причины в меню (просто лень прикручивать ini)
new const reasons[][] = {
	"Читер",
	"Мешает играть",
	"Использование багов",
	"Кемпинг",
	"Оскорбления",
	"Реклама"
};

#define MY_REASON 					//Если не хотите, чтобы люди могли писать свою причину - закоментируйте
#define ANTIFLOOD 	300				//Раз в сколько секунд можно будет отправить репорт? (сохранение на карту) [если антифлуд не нужен - закоментируйте]
#define REP_IMMUN 	ADMIN_RCON		//На кого нельзя подавать жалобы? [Если не нужно - закоментируйте]

//Выводить все мессаги в константы или подключать словарик впадлу
new const PREFIX[] = 					"^3[^4REPORTS^3]";

/*
	{rname} - Ник человека подавшего жалобу | {rip} - ИП человека подавшего жалобу | {rauth} - СтимИД человека подавшего жалобу
	{vname} - Ник человека, на которого идет жалоба | {vip} - ИП человека, на которого идет жалоба | {vauth} - СтимИД человека, на которого идет жалоба
	{reason} - Причина жалобы
	{hostname} - Название сервера | {ip} - ИП Сервера
*/
new const SHABLON_REPORT[] = 			"@everyone^n{hostname} ({ip})^nОт: {rname} ({rauth})^nНа: {vname} ({vauth}) ({vip})^nПричина: {reason}";	//То что, будет написано в дискорд канал
/* SETTINGS */

//MAX_PLAYERS + 1 = 33 <3
new gTarget[33], gReason[33][192], rMenu;
#if defined ANTIFLOOD
new Trie: AntiF, AntiFlood[33];
#endif

new gHostname[64], gIp[22];

public plugin_init(){
	register_plugin("Discord Reports", "0.2", "paffgame");
	
	for(new i; i < sizeof cmds; i ++)
		register_clcmd(cmds[i], "gotoMenu");
	
	create_reasons();
	
	get_cvar_string("hostname", gHostname, charsmax(gHostname));
	get_user_ip(0, gIp, charsmax(gIp));
	
	#if defined ANTIFLOOD
	AntiF = TrieCreate();
	#endif
}

#if defined ANTIFLOOD
public plugin_end()
	TrieDestroy(AntiF);
#endif

public create_reasons(){
	rMenu = menu_create("Выберите причину", "handler_reason");
	
	for(new i; i < sizeof reasons; i ++)
		menu_additem(rMenu, reasons[i]);
	
	#if defined MY_REASON
	register_clcmd("disc_rep_reason", "get_reason");
	menu_additem(rMenu, "Своя причина");
	#endif
	
	menu_setprop(rMenu, MPROP_NEXTNAME, "Дальше");
	menu_setprop(rMenu, MPROP_BACKNAME, "Назад");
	menu_setprop(rMenu, MPROP_EXITNAME, "Выход");
}

#if defined MY_REASON
public get_reason(id){
	if(!gTarget[id])
		return;
	
	read_argv(1, gReason[id], charsmax(gReason[]));
	send_report(id);
}
#endif

public client_putinserver(id){
	clear(id);
	
	#if defined ANTIFLOOD	
	new steam[35];	
	get_user_authid(id, steam, charsmax(steam));
	if(!TrieGetCell(AntiF, steam, AntiFlood[id]))
		AntiFlood[id] = 0;
	#endif
}

#if defined ANTIFLOOD
public client_disconnected(id){
	if(AntiFlood[id] > get_systime()){
		new steam[35];	
		get_user_authid(id, steam, charsmax(steam));
		TrieSetCell(AntiF, steam, AntiFlood[id]);
	}
}
#endif

public clear(id){
	gTarget[id] = 0;
	gReason[id][0] = '^0';
}

public gotoMenu(id){
	clear(id);
	
	new menu = menu_create("Выберите игрока", "handler_players");
	
	new pl[32], cnt;
	get_players(pl, cnt, "ch");
	
	for(new i, player; i < cnt; i ++){
		player = pl[i];
		
		#if !defined REP_IMMUN
		if(player == id)	
			continue;
		#else
		if(player == id || get_user_flags(player) & REP_IMMUN)	
			continue;
		#endif
		
		menu_additem(menu, fmt("%n", player), fmt("%d", player));
	}
	
	if(!menu_items(menu)){
		client_print_color(id, 0, "%s Нет подходящих игроков", PREFIX);
		menu_destroy(menu);
		return;
	}
	
	menu_setprop(menu, MPROP_NEXTNAME, "Дальше");
	menu_setprop(menu, MPROP_BACKNAME, "Назад");
	menu_setprop(menu, MPROP_EXITNAME, "Выход");
	
	menu_display(id, menu);
}

public handler_players(id, menu, item){
	if(item == MENU_EXIT){
		menu_destroy(menu);
		return;
	}
	
	#if defined ANTIFLOOD
	new systime;
	if(AntiFlood[id] > (systime = get_systime())){
		client_print_color(id, 0, "%s Новую жалобу Вы сможете подать через^4 %d сек.", PREFIX, AntiFlood[id] - systime);
		menu_destroy(menu);
		return;
	}
	#endif
	
	new access, name[32], info[10], clbck;
	menu_item_getinfo(menu, item, access, info, charsmax(info), name, charsmax(name), clbck);
	menu_destroy(menu);
	
	new pl = str_to_num(info);
	if(!check_target(id, pl)){
		gotoMenu(id);
		return;
	}
	
	gTarget[id] = pl;
	menu_display(id, rMenu);
}

public handler_reason(id, menu, item){
	if(item == MENU_EXIT)
		return;
	
	#if defined MY_REASON
	if(item == sizeof(reasons)){
		client_cmd(id, "messagemode disc_rep_reason");
		return;
	}
	#endif
	
	copy(gReason[id], charsmax(gReason[]), reasons[item]);
	send_report(id);
}

public send_report(id){	
	if(!is_user_connected(id) || !check_target(id, gTarget[id]))
		return;
	
	new text[1024], steam[35], ip[17], psteam[35], pip[17];
	get_user_authid(id, steam, charsmax(steam));
	get_user_authid(gTarget[id], psteam, charsmax(psteam));
	get_user_ip(id, ip, charsmax(ip), 1);
	get_user_ip(gTarget[id], pip, charsmax(pip), 1);
	
	format(text, charsmax(text), "content=%s", SHABLON_REPORT);
	
	replace_string(text, charsmax(text), "{rname}", fmt("%n", id));
	replace_string(text, charsmax(text), "{rauth}", steam);
	replace_string(text, charsmax(text), "{rip}", ip);	
	replace_string(text, charsmax(text), "{vname}", fmt("%n", gTarget[id]));
	replace_string(text, charsmax(text), "{vauth}", psteam);
	replace_string(text, charsmax(text), "{vip}", pip);
	replace_string(text, charsmax(text), "{reason}", gReason[id]);
	replace_string(text, charsmax(text), "{hostname}", gHostname);
	replace_string(text, charsmax(text), "{ip}", gIp);
	
	GoRequest(id, WEBHOOK, "Handler_SendReason", GripRequestTypePost, text);
	
	clear(id);
	#if defined ANTIFLOOD
	AntiFlood[id] = get_systime() + ANTIFLOOD;
	#endif
}

public Handler_SendReason(const id){
	if(!is_user_connected(id))
		return;
	
	if(!HandlerGetErr()){
		client_print_color(id, 0, "%s Произошла ошибка, обратитесь к администрации", PREFIX);
		#if defined ANTIFLOOD
		AntiFlood[id] = 0;
		#endif
		return;
	}
	
	client_print_color(id, 0, "%s Жалоба успешно отправлена!", PREFIX);
}

public check_target(id, pl){
	if(!is_user_connected(pl)){
		client_print_color(id, 0, "%s Игрок вышел с сервера!", PREFIX);
		clear(id);
		return false;
	}
	return true;
}

public GoRequest(const id, const site[], const handler[], const GripRequestType:type, data[]){		
	new GripRequestOptions:options = grip_create_default_options();
	grip_options_add_header(options, "Content-Type", "application/x-www-form-urlencoded");
	
	new GripBody: body = grip_body_from_string(data);
	grip_request(site, body, type, handler, options, id);	
	
	grip_destroy_body(body);	
	grip_destroy_options(options);
}

public bool: HandlerGetErr(){
	if(grip_get_response_state() == GripResponseStateError){
		log_amx("ResponseState is Error");
		return false;
	}
	
	new GripHTTPStatus:err;
	if((err = grip_get_response_status_code()) != GripHTTPStatusNoContent){
		log_amx("ResponseStatusCode is %d", err);
		return false;
	}
	
	return true;
}
User avatar
sssss
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 63
Joined: 15 Dec 2021, 20:14
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Has thanked: 4 times
Been thanked: 1 time

16 Feb 2022, 18:41

Shadows Adi wrote:
16 Feb 2022, 17:22
sssss wrote:
16 Feb 2022, 11:24
Shadows Adi wrote:
15 Feb 2022, 17:52
Arata ce ai incercat cat si erorile primite. Primele doua API-uri functioneaza.
am incercat cu asta
| Afiseaza codul
#include < amxmodx >
#include < grip >

/* SETTINGS */
new const WEBHOOK[] = "";

//Команды, по которыым будет доступно меню плагина (просто лень прикручивать ini)
new const cmds[][] = {
	"say /report", 	"say_team /report",
	"say /zhaloba", "say_team /zhaloba"
};

//Причины в меню (просто лень прикручивать ini)
new const reasons[][] = {
	"Читер",
	"Мешает играть",
	"Использование багов",
	"Кемпинг",
	"Оскорбления",
	"Реклама"
};

#define MY_REASON 					//Если не хотите, чтобы люди могли писать свою причину - закоментируйте
#define ANTIFLOOD 	300				//Раз в сколько секунд можно будет отправить репорт? (сохранение на карту) [если антифлуд не нужен - закоментируйте]
#define REP_IMMUN 	ADMIN_RCON		//На кого нельзя подавать жалобы? [Если не нужно - закоментируйте]

//Выводить все мессаги в константы или подключать словарик впадлу
new const PREFIX[] = 					"^3[^4REPORTS^3]";

/*
	{rname} - Ник человека подавшего жалобу | {rip} - ИП человека подавшего жалобу | {rauth} - СтимИД человека подавшего жалобу
	{vname} - Ник человека, на которого идет жалоба | {vip} - ИП человека, на которого идет жалоба | {vauth} - СтимИД человека, на которого идет жалоба
	{reason} - Причина жалобы
	{hostname} - Название сервера | {ip} - ИП Сервера
*/
new const SHABLON_REPORT[] = 			"@everyone^n{hostname} ({ip})^nОт: {rname} ({rauth})^nНа: {vname} ({vauth}) ({vip})^nПричина: {reason}";	//То что, будет написано в дискорд канал
/* SETTINGS */

//MAX_PLAYERS + 1 = 33 <3
new gTarget[33], gReason[33][192], rMenu;
#if defined ANTIFLOOD
new Trie: AntiF, AntiFlood[33];
#endif

new gHostname[64], gIp[22];

public plugin_init(){
	register_plugin("Discord Reports", "0.2", "paffgame");
	
	for(new i; i < sizeof cmds; i ++)
		register_clcmd(cmds, "gotoMenu");
	
	create_reasons();
	
	get_cvar_string("hostname", gHostname, charsmax(gHostname));
	get_user_ip(0, gIp, charsmax(gIp));
	
	#if defined ANTIFLOOD
	AntiF = TrieCreate();
	#endif
}

#if defined ANTIFLOOD
public plugin_end()
	TrieDestroy(AntiF);
#endif

public create_reasons(){
	rMenu = menu_create("Выберите причину", "handler_reason");
	
	for(new i; i < sizeof reasons; i ++)
		menu_additem(rMenu, reasons);
	
	#if defined MY_REASON
	register_clcmd("disc_rep_reason", "get_reason");
	menu_additem(rMenu, "Своя причина");
	#endif
	
	menu_setprop(rMenu, MPROP_NEXTNAME, "Дальше");
	menu_setprop(rMenu, MPROP_BACKNAME, "Назад");
	menu_setprop(rMenu, MPROP_EXITNAME, "Выход");
}

#if defined MY_REASON
public get_reason(id){
	if(!gTarget[id])
		return;
	
	read_argv(1, gReason[id], charsmax(gReason[]));
	send_report(id);
}
#endif

public client_putinserver(id){
	clear(id);
	
	#if defined ANTIFLOOD	
	new steam[35];	
	get_user_authid(id, steam, charsmax(steam));
	if(!TrieGetCell(AntiF, steam, AntiFlood[id]))
		AntiFlood[id] = 0;
	#endif
}

#if defined ANTIFLOOD
public client_disconnected(id){
	if(AntiFlood[id] > get_systime()){
		new steam[35];	
		get_user_authid(id, steam, charsmax(steam));
		TrieSetCell(AntiF, steam, AntiFlood[id]);
	}
}
#endif

public clear(id){
	gTarget[id] = 0;
	gReason[id][0] = '^0';
}

public gotoMenu(id){
	clear(id);
	
	new menu = menu_create("Выберите игрока", "handler_players");
	
	new pl[32], cnt;
	get_players(pl, cnt, "ch");
	
	for(new i, player; i < cnt; i ++){
		player = pl;
		
		#if !defined REP_IMMUN
		if(player == id)	
			continue;
		#else
		if(player == id || get_user_flags(player) & REP_IMMUN)	
			continue;
		#endif
		
		menu_additem(menu, fmt("%n", player), fmt("%d", player));
	}
	
	if(!menu_items(menu)){
		client_print_color(id, 0, "%s Нет подходящих игроков", PREFIX);
		menu_destroy(menu);
		return;
	}
	
	menu_setprop(menu, MPROP_NEXTNAME, "Дальше");
	menu_setprop(menu, MPROP_BACKNAME, "Назад");
	menu_setprop(menu, MPROP_EXITNAME, "Выход");
	
	menu_display(id, menu);
}

public handler_players(id, menu, item){
	if(item == MENU_EXIT){
		menu_destroy(menu);
		return;
	}
	
	#if defined ANTIFLOOD
	new systime;
	if(AntiFlood[id] > (systime = get_systime())){
		client_print_color(id, 0, "%s Новую жалобу Вы сможете подать через^4 %d сек.", PREFIX, AntiFlood[id] - systime);
		menu_destroy(menu);
		return;
	}
	#endif
	
	new access, name[32], info[10], clbck;
	menu_item_getinfo(menu, item, access, info, charsmax(info), name, charsmax(name), clbck);
	menu_destroy(menu);
	
	new pl = str_to_num(info);
	if(!check_target(id, pl)){
		gotoMenu(id);
		return;
	}
	
	gTarget[id] = pl;
	menu_display(id, rMenu);
}

public handler_reason(id, menu, item){
	if(item == MENU_EXIT)
		return;
	
	#if defined MY_REASON
	if(item == sizeof(reasons)){
		client_cmd(id, "messagemode disc_rep_reason");
		return;
	}
	#endif
	
	copy(gReason[id], charsmax(gReason[]), reasons[item]);
	send_report(id);
}

public send_report(id){	
	if(!is_user_connected(id) || !check_target(id, gTarget[id]))
		return;
	
	new text[1024], steam[35], ip[17], psteam[35], pip[17];
	get_user_authid(id, steam, charsmax(steam));
	get_user_authid(gTarget[id], psteam, charsmax(psteam));
	get_user_ip(id, ip, charsmax(ip), 1);
	get_user_ip(gTarget[id], pip, charsmax(pip), 1);
	
	format(text, charsmax(text), "content=%s", SHABLON_REPORT);
	
	replace_string(text, charsmax(text), "{rname}", fmt("%n", id));
	replace_string(text, charsmax(text), "{rauth}", steam);
	replace_string(text, charsmax(text), "{rip}", ip);	
	replace_string(text, charsmax(text), "{vname}", fmt("%n", gTarget[id]));
	replace_string(text, charsmax(text), "{vauth}", psteam);
	replace_string(text, charsmax(text), "{vip}", pip);
	replace_string(text, charsmax(text), "{reason}", gReason[id]);
	replace_string(text, charsmax(text), "{hostname}", gHostname);
	replace_string(text, charsmax(text), "{ip}", gIp);
	
	GoRequest(id, WEBHOOK, "Handler_SendReason", GripRequestTypePost, text);
	
	clear(id);
	#if defined ANTIFLOOD
	AntiFlood[id] = get_systime() + ANTIFLOOD;
	#endif
}

public Handler_SendReason(const id){
	if(!is_user_connected(id))
		return;
	
	if(!HandlerGetErr()){
		client_print_color(id, 0, "%s Произошла ошибка, обратитесь к администрации", PREFIX);
		#if defined ANTIFLOOD
		AntiFlood[id] = 0;
		#endif
		return;
	}
	
	client_print_color(id, 0, "%s Жалоба успешно отправлена!", PREFIX);
}

public check_target(id, pl){
	if(!is_user_connected(pl)){
		client_print_color(id, 0, "%s Игрок вышел с сервера!", PREFIX);
		clear(id);
		return false;
	}
	return true;
}

public GoRequest(const id, const site[], const handler[], const GripRequestType:type, data[]){		
	new GripRequestOptions:options = grip_create_default_options();
	grip_options_add_header(options, "Content-Type", "application/x-www-form-urlencoded");
	
	new GripBody: body = grip_body_from_string(data);
	grip_request(site, body, type, handler, options, id);	
	
	grip_destroy_body(body);	
	grip_destroy_options(options);
}

public bool: HandlerGetErr(){
	if(grip_get_response_state() == GripResponseStateError){
		log_amx("ResponseState is Error");
		return false;
	}
	
	new GripHTTPStatus:err;
	if((err = grip_get_response_status_code()) != GripHTTPStatusNoContent){
		log_amx("ResponseStatusCode is %d", err);
		return false;
	}
	
	return true;
}


prima oara mi-a mers sa l compilez dar uitasem de webhook sa-l adaug, si cand am incercat a doua oara n-a mai mers, am scos si webhook ul sa vad daca merge din nou dar nup


Poftim:

Code: Select all

#include < amxmodx >
#include < grip >

/* SETTINGS */
new const WEBHOOK[] = "";

//Команды, по которыым будет доступно меню плагина (просто лень прикручивать ini)
new const cmds[][] = {
	"say /report", 	"say_team /report",
	"say /zhaloba", "say_team /zhaloba"
};

//Причины в меню (просто лень прикручивать ini)
new const reasons[][] = {
	"Читер",
	"Мешает играть",
	"Использование багов",
	"Кемпинг",
	"Оскорбления",
	"Реклама"
};

#define MY_REASON 					//Если не хотите, чтобы люди могли писать свою причину - закоментируйте
#define ANTIFLOOD 	300				//Раз в сколько секунд можно будет отправить репорт? (сохранение на карту) [если антифлуд не нужен - закоментируйте]
#define REP_IMMUN 	ADMIN_RCON		//На кого нельзя подавать жалобы? [Если не нужно - закоментируйте]

//Выводить все мессаги в константы или подключать словарик впадлу
new const PREFIX[] = 					"^3[^4REPORTS^3]";

/*
	{rname} - Ник человека подавшего жалобу | {rip} - ИП человека подавшего жалобу | {rauth} - СтимИД человека подавшего жалобу
	{vname} - Ник человека, на которого идет жалоба | {vip} - ИП человека, на которого идет жалоба | {vauth} - СтимИД человека, на которого идет жалоба
	{reason} - Причина жалобы
	{hostname} - Название сервера | {ip} - ИП Сервера
*/
new const SHABLON_REPORT[] = 			"@everyone^n{hostname} ({ip})^nОт: {rname} ({rauth})^nНа: {vname} ({vauth}) ({vip})^nПричина: {reason}";	//То что, будет написано в дискорд канал
/* SETTINGS */

//MAX_PLAYERS + 1 = 33 <3
new gTarget[33], gReason[33][192], rMenu;
#if defined ANTIFLOOD
new Trie: AntiF, AntiFlood[33];
#endif

new gHostname[64], gIp[22];

public plugin_init(){
	register_plugin("Discord Reports", "0.2", "paffgame");
	
	for(new i; i < sizeof cmds; i ++)
		register_clcmd(cmds[i], "gotoMenu");
	
	create_reasons();
	
	get_cvar_string("hostname", gHostname, charsmax(gHostname));
	get_user_ip(0, gIp, charsmax(gIp));
	
	#if defined ANTIFLOOD
	AntiF = TrieCreate();
	#endif
}

#if defined ANTIFLOOD
public plugin_end()
	TrieDestroy(AntiF);
#endif

public create_reasons(){
	rMenu = menu_create("Выберите причину", "handler_reason");
	
	for(new i; i < sizeof reasons; i ++)
		menu_additem(rMenu, reasons[i]);
	
	#if defined MY_REASON
	register_clcmd("disc_rep_reason", "get_reason");
	menu_additem(rMenu, "Своя причина");
	#endif
	
	menu_setprop(rMenu, MPROP_NEXTNAME, "Дальше");
	menu_setprop(rMenu, MPROP_BACKNAME, "Назад");
	menu_setprop(rMenu, MPROP_EXITNAME, "Выход");
}

#if defined MY_REASON
public get_reason(id){
	if(!gTarget[id])
		return;
	
	read_argv(1, gReason[id], charsmax(gReason[]));
	send_report(id);
}
#endif

public client_putinserver(id){
	clear(id);
	
	#if defined ANTIFLOOD	
	new steam[35];	
	get_user_authid(id, steam, charsmax(steam));
	if(!TrieGetCell(AntiF, steam, AntiFlood[id]))
		AntiFlood[id] = 0;
	#endif
}

#if defined ANTIFLOOD
public client_disconnected(id){
	if(AntiFlood[id] > get_systime()){
		new steam[35];	
		get_user_authid(id, steam, charsmax(steam));
		TrieSetCell(AntiF, steam, AntiFlood[id]);
	}
}
#endif

public clear(id){
	gTarget[id] = 0;
	gReason[id][0] = '^0';
}

public gotoMenu(id){
	clear(id);
	
	new menu = menu_create("Выберите игрока", "handler_players");
	
	new pl[32], cnt;
	get_players(pl, cnt, "ch");
	
	for(new i, player; i < cnt; i ++){
		player = pl[i];
		
		#if !defined REP_IMMUN
		if(player == id)	
			continue;
		#else
		if(player == id || get_user_flags(player) & REP_IMMUN)	
			continue;
		#endif
		
		menu_additem(menu, fmt("%n", player), fmt("%d", player));
	}
	
	if(!menu_items(menu)){
		client_print_color(id, 0, "%s Нет подходящих игроков", PREFIX);
		menu_destroy(menu);
		return;
	}
	
	menu_setprop(menu, MPROP_NEXTNAME, "Дальше");
	menu_setprop(menu, MPROP_BACKNAME, "Назад");
	menu_setprop(menu, MPROP_EXITNAME, "Выход");
	
	menu_display(id, menu);
}

public handler_players(id, menu, item){
	if(item == MENU_EXIT){
		menu_destroy(menu);
		return;
	}
	
	#if defined ANTIFLOOD
	new systime;
	if(AntiFlood[id] > (systime = get_systime())){
		client_print_color(id, 0, "%s Новую жалобу Вы сможете подать через^4 %d сек.", PREFIX, AntiFlood[id] - systime);
		menu_destroy(menu);
		return;
	}
	#endif
	
	new access, name[32], info[10], clbck;
	menu_item_getinfo(menu, item, access, info, charsmax(info), name, charsmax(name), clbck);
	menu_destroy(menu);
	
	new pl = str_to_num(info);
	if(!check_target(id, pl)){
		gotoMenu(id);
		return;
	}
	
	gTarget[id] = pl;
	menu_display(id, rMenu);
}

public handler_reason(id, menu, item){
	if(item == MENU_EXIT)
		return;
	
	#if defined MY_REASON
	if(item == sizeof(reasons)){
		client_cmd(id, "messagemode disc_rep_reason");
		return;
	}
	#endif
	
	copy(gReason[id], charsmax(gReason[]), reasons[item]);
	send_report(id);
}

public send_report(id){	
	if(!is_user_connected(id) || !check_target(id, gTarget[id]))
		return;
	
	new text[1024], steam[35], ip[17], psteam[35], pip[17];
	get_user_authid(id, steam, charsmax(steam));
	get_user_authid(gTarget[id], psteam, charsmax(psteam));
	get_user_ip(id, ip, charsmax(ip), 1);
	get_user_ip(gTarget[id], pip, charsmax(pip), 1);
	
	format(text, charsmax(text), "content=%s", SHABLON_REPORT);
	
	replace_string(text, charsmax(text), "{rname}", fmt("%n", id));
	replace_string(text, charsmax(text), "{rauth}", steam);
	replace_string(text, charsmax(text), "{rip}", ip);	
	replace_string(text, charsmax(text), "{vname}", fmt("%n", gTarget[id]));
	replace_string(text, charsmax(text), "{vauth}", psteam);
	replace_string(text, charsmax(text), "{vip}", pip);
	replace_string(text, charsmax(text), "{reason}", gReason[id]);
	replace_string(text, charsmax(text), "{hostname}", gHostname);
	replace_string(text, charsmax(text), "{ip}", gIp);
	
	GoRequest(id, WEBHOOK, "Handler_SendReason", GripRequestTypePost, text);
	
	clear(id);
	#if defined ANTIFLOOD
	AntiFlood[id] = get_systime() + ANTIFLOOD;
	#endif
}

public Handler_SendReason(const id){
	if(!is_user_connected(id))
		return;
	
	if(!HandlerGetErr()){
		client_print_color(id, 0, "%s Произошла ошибка, обратитесь к администрации", PREFIX);
		#if defined ANTIFLOOD
		AntiFlood[id] = 0;
		#endif
		return;
	}
	
	client_print_color(id, 0, "%s Жалоба успешно отправлена!", PREFIX);
}

public check_target(id, pl){
	if(!is_user_connected(pl)){
		client_print_color(id, 0, "%s Игрок вышел с сервера!", PREFIX);
		clear(id);
		return false;
	}
	return true;
}

public GoRequest(const id, const site[], const handler[], const GripRequestType:type, data[]){		
	new GripRequestOptions:options = grip_create_default_options();
	grip_options_add_header(options, "Content-Type", "application/x-www-form-urlencoded");
	
	new GripBody: body = grip_body_from_string(data);
	grip_request(site, body, type, handler, options, id);	
	
	grip_destroy_body(body);	
	grip_destroy_options(options);
}

public bool: HandlerGetErr(){
	if(grip_get_response_state() == GripResponseStateError){
		log_amx("ResponseState is Error");
		return false;
	}
	
	new GripHTTPStatus:err;
	if((err = grip_get_response_status_code()) != GripHTTPStatusNoContent){
		log_amx("ResponseStatusCode is %d", err);
		return false;
	}
	
	return true;
}
nu a mers, am rezolvat pana la urma, am trecut pe 1.9
dar pe versiunea asta nu merg modurile pe grenada.
serverul este mod furien classic
mie imi merg modurile.dar jucatorilor le apare un simbol , ceva de genul %s
Shadows Adi
Membru, skill +1
Membru, skill +1
Posts: 349
Joined: 26 Jan 2020, 18:52
Detinator Steam: Da
CS Status: 0x416469
SteamID: shadowsadi120
Fond eXtream: 0
Has thanked: 14 times
Been thanked: 50 times

16 Feb 2022, 19:37

User avatar
sssss
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 63
Joined: 15 Dec 2021, 20:14
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Has thanked: 4 times
Been thanked: 1 time

16 Feb 2022, 20:04

Shadows Adi wrote:
16 Feb 2022, 19:37
Pentru ca ai nevoie de un modul.
Poftim:
https://dev-cs.ru/resources/1289/
https://github.com/Hun1eR/Print-Center- ... v2.0.1.zip
[ 1] Reunion RUN - reunion_mm_i386. v0.1.92d ini Start Never
[ 2] AMX Mod X RUN - amxmodx_mm_i386. v1.9.0.5 ini Start ANY
[ 3] ReAuthCheck RUN - reauthcheck_mm_i v0.1.6 ini Start Never
[ 4] hackdetector RUN - hackdetector_amx v0.15.32 ini ANY ANY
[ 5] Fun RUN - fun_amxx_i386.so v1.9.0.5 pl2 ANY ANY
[ 6] Engine RUN - engine_amxx_i386 v1.9.0.5 pl2 ANY ANY
[ 7] FakeMeta RUN - fakemeta_amxx_i3 v1.9.0.5 pl2 ANY ANY
[ 8] GeoIP RUN - geoip_amxx_i386. v1.9.0.5 pl2 ANY ANY
[ 9] CStrike RUN - cstrike_amxx_i38 v1.9.0.5 pl2 ANY ANY
[10] CSX RUN - csx_amxx_i386.so v1.9.0.5 pl2 ANY ANY
[11] CURL AMXX RUN - curl_amxx_i386.s v1.1.1 pl2 ANY ANY
[12] Ham Sandwich RUN - hamsandwich_amxx v1.9.0.5 pl2 ANY ANY
12 plugins, 12 running

adaugat si in modules.ini + restart server
Shadows Adi
Membru, skill +1
Membru, skill +1
Posts: 349
Joined: 26 Jan 2020, 18:52
Detinator Steam: Da
CS Status: 0x416469
SteamID: shadowsadi120
Fond eXtream: 0
Has thanked: 14 times
Been thanked: 50 times

16 Feb 2022, 20:15

This Metamod plugin
in metamod/plugins.ini si il pui intr-un folder.
User avatar
YONTU
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2466
Joined: 10 May 2013, 14:25
Detinator Steam: Nu
CS Status: Everyone is looking at ur shoes
Reputatie: Moderator ajutator
Fost scripter eXtreamCS
Location: Gura Humorului
Has thanked: 256 times
Been thanked: 288 times
Contact:

17 Feb 2022, 12:13

wow pana unde s-a ajuns cu cs-ul, au facut astia posibil transferu de date prin curl, deci sunt uimit =))))))))))

NU MERITA BAETI, NU MERITA. mai bine inveti programare decat sa investesti in cs.........
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș


Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114

Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
justanoob
Membru, skill 0
Membru, skill 0
Posts: 14
Joined: 08 Oct 2023, 15:47
Detinator Steam: Da
CS Status: <img src="https://i.imgur.com/BHHEiZl">
Fond eXtream: 0
Been thanked: 1 time

21 Dec 2023, 22:34

YONTU wrote:
17 Feb 2022, 12:13
wow pana unde s-a ajuns cu cs-ul, au facut astia posibil transferu de date prin curl, deci sunt uimit =))))))))))

NU MERITA BAETI, NU MERITA. mai bine inveti programare decat sa investesti in cs.........
De asta ce zici https://shorturl.at/fouw6
Post Reply

Return to “Discutii generale”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 0 guests