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

[KOSZ] [HELP] PLUGIN AMXXedit plugin Ingame Config File Editor

plugin amxx

  • Zamknięty Temat jest zamknięty
1 odpowiedź w tym temacie

#1 niko1921

    Nowy

  • Nowy

Reputacja: 0
Nowy

  • Postów:1
  • Imię:txpk
  • Lokalizacja:argentina
Offline

Napisano 19.02.2015 01:50

hello guys .. well I have a problem with this plugin amxx "Ingame Config File Editor" of https://forums.allie...ad.php?p=677802

the problem is that it only displays only the contents of the "cstrike" folder

if someone helps me to display the complete folder on the server ... example:

/ cstrike
/ platforms
/ logs
/dproto.cfg

Here I give the code:

 

thx..

#include <amxmodx>
#include <amxmisc>

#define MAX_FILE_NAME	50
#define MAX_PLAYERS	33
#define FILES_PER_PAGE	8
#define MAX_MENU_CHARS	500
#define MAX_FILE_SIZE	300
#define ACCESS_LEVEL	ADMIN_RCON
#define ALL_MENU_KEYS	(1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 | 1<<7 | 1<<8 | 1<<9)

new my_dir[MAX_PLAYERS][MAX_FILE_SIZE], my_temp_options[MAX_PLAYERS][FILES_PER_PAGE][MAX_FILE_NAME];
new my_selected_file[MAX_PLAYERS][MAX_FILE_SIZE], delete_confirm[MAX_PLAYERS], view_more[MAX_PLAYERS];
new my_page[MAX_PLAYERS], my_file_page[MAX_PLAYERS], my_edit_line[MAX_PLAYERS];

public plugin_init()
{
	register_plugin("Configuration File Editor", "1.0", "WhooKid");

	register_concmd("amx_con", "start_config", ACCESS_LEVEL, "- Opens config editor");
	register_concmd("amx_config", "start_config", ACCESS_LEVEL, "- Opens config editor");

	register_menucmd(register_menuid("ConfigeditorDir"), ALL_MENU_KEYS, "pick_dir");
	register_menucmd(register_menuid("ConfigeditorEditD"), ALL_MENU_KEYS, "pick_diredit");
	register_menucmd(register_menuid("ConfigeditorFoptions"), ALL_MENU_KEYS, "pick_flopt");
	register_menucmd(register_menuid("ConfigeditorFile"), ALL_MENU_KEYS, "pick_file");
	register_menucmd(register_menuid("ConfigeditorLine"), ALL_MENU_KEYS, "pick_line");

	register_clcmd("NewFileName", "user_create_file");
	register_clcmd("NewDirectoryName", "user_create_directory");
	register_clcmd("RenameFileEnterName", "user_rename_file");
	register_clcmd("EnterNewLine", "user_edit_line");
}

public start_config(id)
{
	if (get_user_flags(id) & ACCESS_LEVEL)
	{
		my_page[id] = delete_confirm[id] = 0;
		my_dir[id] = "";
		list_dir(id);
	}
	else
		client_print(id, print_chat, "[AMXX] You do not have access to this command.");

	return PLUGIN_HANDLED;
}

public list_dir(id)
{
	new message[MAX_MENU_CHARS], keys = (1 << 8 | 1 << 9), count, found, range = my_page[id] * FILES_PER_PAGE, iLen = formatex(message, 256, "\r== \yConfig Editor \r== \d(Page: %d)^nPath: /%s^n", my_page[id] + 1, my_dir[id]);
	new cur_file[MAX_FILE_NAME], cur_directory = open_dir(my_dir[id], cur_file, MAX_FILE_NAME - 1);

	while (next_file(cur_directory, cur_file, MAX_FILE_NAME - 1) && found < FILES_PER_PAGE)
		if (contain(cur_file, ".") == -1 || containi(cur_file, ".cfg") != -1 || containi(cur_file, ".txt") != -1 || containi(cur_file, ".ini") != -1 || containi(cur_file, ".log") != -1 || containi(cur_file, ".htm") != -1 || containi(cur_file, ".res") != -1 || containi(cur_file, ".sma") != -1)
		{
			if (contain(cur_file, ".") == -1)
				formatex(cur_file[strlen(cur_file)], 2, "/");

			if (count >= range)
			{
				iLen += formatex(message[iLen], 60, "^n\r%d. \w%s", found + 1, cur_file);
				my_temp_options[id][found] = cur_file;
				keys |= (1 << found);
				found++;
			}

			count++;
		}
	close_dir(cur_directory);

	if (found == FILES_PER_PAGE)
		iLen += formatex(message[iLen], 45, "^n^n\r9. \yNext Page");
	else
	{
		iLen += formatex(message[iLen], 45, "^n^n\r9. \yAdd New");
		my_temp_options[id][FILES_PER_PAGE - 1] = "AddNew";
	}

	if (my_page[id] == 0)
		iLen += formatex(message[iLen], 60, "^n\r0. \%s", (!equal(my_dir[id], "")) ? "y[Previous Directory]" : "dExit");
	else
		iLen += formatex(message[iLen], 25, "^n\r0. \wPrevious Page");

	show_menu(id, keys, message, -1, "ConfigeditorDir");
}

public list_dir_options(id)
{
	new message[MAX_MENU_CHARS], iLen = formatex(message, 256, "\r== \yConfig Editor \r==^n\dPath: /%s^n", my_dir[id]);

	if (!delete_confirm[id])
		iLen += formatex(message[iLen], 200, "^n\r1. \wAdd new file^n\r2. \wAdd new directory^n\r3. \wDelete directory^n^n\r9. \dExit^n\r0. \yBack to Directory");
	else
		iLen += formatex(message[iLen], 200, "^n\rAre you sure you want to delete this directory?^n\dNote: (The directory is required to be empty)^n\r4. \wYes^n\r5. \wNo");

	show_menu(id, (!delete_confirm[id]) ? (1<<0 | 1<<1 | 1<<2 | 1<<8 | 1<<9) : (1<<3 | 1<<4), message, -1, "ConfigeditorEditD");
}

public list_file_options(id)
{
	new message[MAX_MENU_CHARS], iLen = formatex(message, 256, "\r== \yConfig Editor \r==^n\dFile: %s (%dkb)^n", my_selected_file[id], filesize(my_selected_file[id]));

	if (!delete_confirm[id])
		iLen += formatex(message[iLen], 200, "^n\r1. \wView%s^n\r2. \wEdit^n\r3. \wServer Execute (exec)^n\r4. \wRename^n\r5. \wCopy^n\r6. \wDelete^n^n\r9. \dExit^n\r0. \yBack to Directory", (view_more[id] > 0) ? " More" : "");
	else
		iLen += formatex(message[iLen], 120, "^n\rAre you sure you want to delete this file?^n4. \wYes^n\r5. \wNo");

	show_menu(id, (!delete_confirm[id]) ? (1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<8 | 1<<9) : (1<<3 | 1<<4), message, -1, "ConfigeditorFoptions");
}

public list_file_lines(id)
{
	new message[MAX_MENU_CHARS], found, iLen = formatex(message, 256, "\r== \yConfig Editor \r== \d(Page: %d)^nFile: %s^n", my_file_page[id] + 1, my_selected_file[id]), keys = (1 << 9);
	new file = fopen(my_selected_file[id], "r"), value[48], line, range = my_file_page[id] * FILES_PER_PAGE;

	if (file)
	{
		while (fgets(file, value, 47) && found < FILES_PER_PAGE)
		{
			if (line >= range)
			{
				replace(value, 47, "^n", "");
				iLen += formatex(message[iLen], 47, "^n\r%d. \w%s", found + 1, value);
				my_temp_options[id][found] = "";
				keys |= (1 << found);
				found++;
			}
			line++;
		}
		fclose(file);
	}
	else
	{
		client_print(id, print_chat, "[AMXX] Failed to open the file %s.", my_selected_file[id]);
		list_dir(id);
		return;
	}

	if (found == FILES_PER_PAGE)
	{
		iLen += formatex(message[iLen], 30, "^n^n\r9. \yNext Page");
		keys |= (1 << 8);
	}
	else
	{
		iLen += formatex(message[iLen], 40, "^n\r%d. \yMake a new line^n", found + 1);
		my_temp_options[id][found] = "MakeANewLine";
		keys |= (1 << found);
	}

	if (my_file_page[id] == 0)
		iLen += formatex(message[iLen], 30, "^n\r0. \yBack to Options");
	else
		iLen += formatex(message[iLen], 25, "^n\r0. \wPrevious Page");

	show_menu(id, keys, message, -1, "ConfigeditorFile");
}

public list_line_options(id)
{
	new message[MAX_MENU_CHARS], null, iLen = formatex(message, 256, "\r== \yConfig Editor \r== \d(Line: %d)^nFile: %s^n", my_edit_line[id] + 1, my_selected_file[id]);

	if (read_file(my_selected_file[id], my_edit_line[id], my_temp_options[id][4], 299, null))
	{
		iLen += formatex(message[iLen], 250, "^n\w%s^n", my_temp_options[id][4]);
		if (!equal(my_temp_options[id][1], ""))
		{
			iLen += formatex(message[iLen], 250, "\rChanged from:^n\w%s^n", my_temp_options[id][1]);
			my_temp_options[id][1] = "";
		}
	}
	else
	{
		client_print(id, print_chat, "[AMXX] Failed to open the file %s.", my_selected_file[id]);
		list_dir(id);
		return;
	}

	iLen += formatex(message[iLen], 80, "^n\r1. \wEdit^n\r2. \w%somment^n\r3. \wCopy^n\r4. \wDelete^n^n\r0. \yBack to Lines", (my_temp_options[id][4][0] == '/' && my_temp_options[id][4][1] == '/') ? "Unc" : "C");

	show_menu(id, (1 << 0 | 1 << 1 | 1 << 2 | 1 << 3 | 1 << 9) , message, -1, "ConfigeditorLine");

	my_temp_options[id][FILES_PER_PAGE - 1] = "";
}

public pick_dir(id, key)
{
	switch (key)
	{
		case 9:{
			if (my_page[id] == 0)
			{
				if (!equal(my_dir[id], ""))
				{
					new len = strlen(my_dir[id]) - 1;
					my_dir[id][len] = ' ';
					for (new a = len; a >= 0; a--)
						if (my_dir[id][a] != '/')
							my_dir[id][a] = ' ';
						else
							break;
					trim(my_dir[id]);
					if (equal(my_dir[id], "/"))
						my_dir[id] = "";
					list_dir(id);
				}
			}
			else
			{
				my_page[id]--;
				list_dir(id);
			}
		}
		case 8: {
			if (equal(my_temp_options[id][FILES_PER_PAGE - 1], "AddNew"))
			{
				list_dir_options(id);
				my_temp_options[id][FILES_PER_PAGE - 1] = "";
			}
			else
			{
				my_page[id]++;
				list_dir(id);
			}
		}
		default: {
			new full_file[MAX_FILE_SIZE];
			formatex(full_file, MAX_FILE_SIZE, "%s%s", my_dir[id], my_temp_options[id][key]);

			if (dir_exists(full_file))
			{
				my_dir[id] = full_file; 
				my_page[id] = 0;
				list_dir(id);
			}
			else
			{
				if (file_exists(full_file))
				{
					my_selected_file[id] = full_file;
					my_file_page[id] = view_more[id] = 0;
					list_file_options(id);
				}
				else
				{
					client_print(id, print_chat, "[AMXX] The file you have chosen does not exist.");
					list_dir(id);
				}
			}
		}
	}
	return PLUGIN_HANDLED;
}

public pick_diredit(id, key)
{
	switch (key)
	{
		case 9: list_dir(id);
		case 4: {
			if (delete_confirm[id])
				delete_confirm[id] = 0;
			list_dir_options(id);
		}
		case 3: {
			delete_confirm[id] = 0;
			if (equal(my_dir[id], ""))
			{
				client_print(id, print_chat, "[AMXX] You are unable to delete your main directory.");
				list_dir(id);
			}
			else if (rmdir(my_dir[id]))
			{
				client_print(id, print_chat, "[AMXX] Your directory has been successfully deleted.");
				my_page[id] = 0;
				pick_dir(id, 9);
			}
			else
			{
				client_print(id, print_chat, "[AMXX] Unable to delete your directory. Reason unknown, possibly permissions or directory not empty.");	
				list_dir_options(id);
			}
		}
		case 2: {
			delete_confirm[id] = 1;
			list_dir_options(id);
		}
		case 1: {
			client_cmd(id, "messagemode ^"NewDirectoryName^"");
			list_dir_options(id);
		}
		case 0: {
			client_cmd(id, "messagemode ^"NewFileName^"");
			list_dir_options(id);
		}
	}
	return PLUGIN_HANDLED;
}

public pick_flopt(id, key)
{
	switch (key)
	{
		case 9: list_dir(id);
		case 5:{
			delete_confirm[id] = 1;
			list_file_options(id);
		}
		case 4: {
			if (delete_confirm[id])
			{
				delete_confirm[id] = 0;
				list_file_options(id);
				return PLUGIN_HANDLED;
			}
			list_file_options(id);
			new new_file[MAX_FILE_SIZE], temp[2000], len = strlen(my_selected_file[id]) - 1, extention[10];
			temp = my_selected_file[id];
			for (new a = len; a >= 0; a--)
				if (temp[a] != '.')
				{
					extention[len - a] = temp[a];
					temp[a] = ' ';
				}
				else
				{
					temp[a] = ' ';
					break;
				}
			new_file[0] = extention[0], extention[0] = extention[2], extention[2] = new_file[0];
			trim(temp), trim(extention);
			formatex(new_file, MAX_FILE_SIZE, "%s_copy.%s", temp, extention);
			if (file_exists(new_file))
			{
				client_print(id, print_chat, "[AMXX] The filename %s already exists. Copy aborted.", new_file);
				return PLUGIN_HANDLED;
			}
			new file1 = fopen(my_selected_file[id], "rt"), file2 = fopen(new_file, "at+");
			while (fgets(file1, temp, 1999))
				fprintf(file2, temp);
			fclose(file1), fclose(file2);
			client_print(id, print_chat, "[AMXX] Your file has been successfully copied to %s.", new_file);
		}
		case 3:{
			if (!delete_confirm[id])
			{
				client_cmd(id, "messagemode ^"RenameFileEnterName^"");
				list_file_options(id);
			}
			else
			{
				if (delete_file(my_selected_file[id]))
				{
					client_print(id, print_chat, "[AMXX] Your file has been successfully deleted.");
					list_dir(id);
				}
				else
				{
					client_print(id, print_chat, "[AMXX] Unable to delete your file. Reason unknown, possibly permissions or file in use.");	
					list_file_options(id);
				}
				delete_confirm[id] = 0;
			}
		}
		case 2:{
			if (containi(my_selected_file[id], "users.ini") != -1)
			{
				server_cmd("amx_reloadadmins");
				client_print(id, print_chat, "[AMXX] Server administrators have been reloaded.");
			}
			else
			{
				server_cmd("exec %s", my_selected_file[id]);
				client_print(id, print_chat, "[AMXX] Your file ^"%s^" has been executed by the server.", my_selected_file[id]);
			}
			list_file_options(id);
		}
		case 1: list_file_lines(id);
		case 0: {
			new mssge[1300], temp[1000], iLen = formatex(mssge, 5, "<pre>"), file = fopen(my_selected_file[id], "rt"), view_more_cache = view_more[id];

			view_more[id] = 0;
			if (view_more_cache)
				fseek(file, view_more_cache, SEEK_SET);

			while (fgets(file, temp, 999))
				if (iLen + strlen(temp) > 1299)
				{
					view_more[id] = view_more_cache + iLen;
					break;
				}
				else
					iLen += formatex(mssge[iLen], 1294 - iLen, "%s", temp);
			fclose(file);

			mssge[1298] = mssge[1299] = '^n';

			show_motd(id, mssge, "View Config");
			list_file_options(id);
		}
	}
	return PLUGIN_HANDLED;
}

public pick_file(id, key)
{
	switch (key)
	{
		case 9:{
			if (my_file_page[id] != 0)
			{
				my_file_page[id]--;
				list_file_lines(id);
			}
			else
				list_file_options(id);
		}
		case 8: {
			my_file_page[id]++;
			list_file_lines(id);
		}
		default: {
			if (equal(my_temp_options[id][key], "MakeANewLine"))
			{
				if (!write_file(my_selected_file[id], " ", -1))
					client_print(id, print_chat, "[AMXX] Unable to edit that file. Reason unknown, possibly permissions or file in use.");
				my_temp_options[id][key] = "";
				list_file_lines(id);
			}
			else
			{			
				my_edit_line[id] = (my_file_page[id] * FILES_PER_PAGE) + key;
				my_temp_options[id][1] = "";
				list_line_options(id);
			}
		}
	}
	return PLUGIN_HANDLED;
}

public pick_line(id, key)
{
	switch (key)
	{
		case 9: list_file_lines(id);
		case 2, 3: {
			new tempfile[20], temp[2000], line = -1, my_line = my_edit_line[id];
			formatex(tempfile, 20, "TEMPFILE%d", random_num(100000, 999999));
			new file1 = fopen(my_selected_file[id], "rt"), file2 = fopen(tempfile, "at+");
			while (fgets(file1, temp, 1999) && line++ != -2)
				if (line != my_line)
					fprintf(file2, temp);
				else if (key == 2)
					fprintf(file2, temp), fprintf(file2, temp);
			fclose(file1), fclose(file2);
			if (delete_file(my_selected_file[id]))
			{
				rename_file(tempfile, my_selected_file[id], 1);
				client_print(id, print_chat, "[AMXX] Line: %d has been %s your file.", my_line + 1, (key == 3) ? "deleted from" : "copied in");
			}
			else
			{
				delete_file(tempfile);
				client_print(id, print_chat, "[AMXX] The line: %d cannot be %s. File maybe be write protected.", my_line + 1, (key == 3) ? "deleted" : "copied");
			}
			list_file_lines(id);
		}
		case 1: {
			new temp[500], finished[500], null;
			read_file(my_selected_file[id], my_edit_line[id], temp, 500, null);
			if (temp[0] == '/' && temp[1] == '/')
			{
				temp[0] = temp[1] = ' ';
				trim(temp);
				finished = temp;
			}
			else
				formatex(finished, 500, "//%s", temp);
			if (!write_file(my_selected_file[id], finished, my_edit_line[id]))
				client_print(id, print_chat, "[AMXX] Unable to edit that file. Reason unknown, possibly permissions or file in use.");
			list_line_options(id);
		}
		case 0:{
			client_cmd(id, "messagemode ^"EnterNewLine^"", my_edit_line[id] + 1);
			list_line_options(id);
			my_temp_options[id][FILES_PER_PAGE - 1] = "EditALine";
		}
	}
	return PLUGIN_HANDLED;
}

public user_create_file(id)
{
	if (!(get_user_flags(id) & ACCESS_LEVEL))
	{
		client_print(id, print_chat, "[AMXX] You do not have access to this command.");
		return;
	}

	new say[MAX_FILE_SIZE];
	read_args(say, MAX_FILE_SIZE);
	remove_quotes(say), trim(say);

	if (equal(say, ""))
	{
		client_print(id, print_chat, "[AMXX] File aborted.");
		return;
	}
	else if (contain(say, ".") == -1)
	{
		client_print(id, print_chat, "[AMXX] Your file: %s, does not have a proper extention. File aborted.", say);
		return;
	}
	else if (contain(say, "/") != -1)
	{
		client_print(id, print_chat, "[AMXX] Your file: %s, cannot contain directories. File aborted.", say);
		return;
	}
	
	new file[255];
	formatex(file, 255, "%s%s", my_dir[id], say);
	if (!file_exists(file))
	{
		if (write_file(file, " ", -1))
			client_print(id, print_chat, "[AMXX] Your file: %s, has been successfully created.", say);
		else
			client_print(id, print_chat, "[AMXX] Unable to create %s. Reason unknown, possibly permissions.", file);	
	}
	else
		client_print(id, print_chat, "[AMXX] Unable to create %s. The file already exists.", file);
	list_dir(id);
}

public user_create_directory(id)
{
	if (!(get_user_flags(id) & ACCESS_LEVEL))
	{
		client_print(id, print_chat, "[AMXX] You do not have access to this command.");
		return;
	}

	new say[MAX_FILE_SIZE];
	read_args(say, MAX_FILE_SIZE);
	remove_quotes(say), trim(say);

	if (equal(say, ""))
	{
		client_print(id, print_chat, "[AMXX] Directory aborted.");
		return;
	}
	else if (contain(say, ".") != -1 || contain(say, " ") != -1 || contain(say, "\") != -1 || contain(say, "/") != -1 || contain(say, "'") != -1 || contain(say, "^"") != -1 || contain(say, "`") != -1)
	{
		client_print(id, print_chat, "[AMXX] Your directory: %s, contains invalid character(s).", say);
		return;
	}
	
	new newdir[255];
	formatex(newdir, 255, "%s%s/", my_dir[id], say);
	if (!dir_exists(newdir))
	{
		if (!mkdir(newdir))
			client_print(id, print_chat, "[AMXX] Your directory: %s, has been successfully created.", say);
		else
			client_print(id, print_chat, "[AMXX] Unable to create %s. Reason unknown, possibly permissions.", newdir);	
	}
	else
		client_print(id, print_chat, "[AMXX] Unable to create %s. The directory already exists.", newdir);
	list_dir(id);
}

public user_rename_file(id)
{
	if (!(get_user_flags(id) & ACCESS_LEVEL))
	{
		client_print(id, print_chat, "[AMXX] You do not have access to this command.");
		return;
	}

	new say[MAX_FILE_SIZE];
	read_args(say, MAX_FILE_SIZE);
	remove_quotes(say), trim(say);

	if (equal(say, ""))
	{
		client_print(id, print_chat, "[AMXX] Rename Failed.");
		return;
	}
	else if (contain(say, ".") == -1)
	{
		client_print(id, print_chat, "[AMXX] The filename %s, does not have a proper extention. Rename aborted.", say);
		return;
	}
	else if (contain(say, "/") != -1)
	{
		client_print(id, print_chat, "[AMXX] The filename %s, cannot contain directories. Rename aborted.", say);
		return;
	}

	new file[255];
	formatex(file, 255, "%s%s", my_dir[id], say);
	if (file_exists(file))
	{
		client_print(id, print_chat, "[AMXX] The filename %s already exists. Rename aborted.", say);
		return;
	}
	if (file_exists(my_selected_file[id]))
	{
		if (rename_file(my_selected_file[id], file, 1))
			client_print(id, print_chat, "[AMXX] Your file has been successfully renamed to %s.", say);
		else
			client_print(id, print_chat, "[AMXX] Unable to rename %s. Reason unknown, possibly permissions or file in use.", my_selected_file[id]);	
	}
	else
		client_print(id, print_chat, "[AMXX] Unable to rename %s. The file doesn't exist.", my_selected_file[id]);
	list_dir(id);
}

public user_edit_line(id)
{
	if (!(get_user_flags(id) & ACCESS_LEVEL))
	{
		client_print(id, print_chat, "[AMXX] You do not have access to this command.");
		return;
	}

	new say[MAX_FILE_SIZE], null;
	read_args(say, MAX_FILE_SIZE);
	remove_quotes(say);

	if (equal(say, "") || !equal(my_temp_options[id][FILES_PER_PAGE - 1], "EditALine"))
	{
		client_print(id, print_chat, "[AMXX] Edit Failed.");
		return;
	}

	if (file_exists(my_selected_file[id]))
	{
		if (read_file(my_selected_file[id], my_edit_line[id], my_temp_options[id][1], 299, null))
		{
			if (write_file(my_selected_file[id], say, my_edit_line[id]))
				client_print(id, print_chat, "[AMXX] The line has been successfully edited.");
			else
				client_print(id, print_chat, "[AMXX] Unable to edit that file. Reason unknown, possibly permissions or file in use.");
		}
		else
			client_print(id, print_chat, "[AMXX] The line you are trying to edit does not exist.");
		list_line_options(id);
	}
	else
	{
		client_print(id, print_chat, "[AMXX] The file your trying to edit no longer exists.");
		list_dir(id);
	}
}


  • +
  • -
  • 0

#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 983
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 19.02.2015 07:57

Nazywaj tematy zgodnie z ich treścią.
Napisz ponownie temat nazywając go tak, aby każdy wiedział o co chodzi.

Jednoznacznie określ problematykę tematu, wyróżniając go spośród reszty.
Nie dodawaj zbędnych informacji, znaków, ani emotikon w nazwie tematu.

Ten temat w ciągu 24 godzin zostanie przeniesiony do kosza.
  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: plugin, amxx

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

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