Multi-Jump amxx


Multi-Jump amxx
  • Обзор
  • Установка
  • Настройки
  • Код/Апи
  • Словарь
  • Команды
  • Обновления
  • Скриншоты/Видео
  • Благодарности

Автор: ar222`
Версия: 1.6.1
Совместимость с: Amx Mod X 1.9.0, Amx Mod X 1.10.0 dev

Описание:

Качественная переделка плагина Multi-Jump (mj): Reboot From ar222``' (Автора начального плагина не помню, но это не я).

За основу взят старый плагин Multi-Jump (rus: Двойной Прыжок). Плагин представляет собой двойной прыжок на сервере.

Вопрос: Как он работает?

Ответ: Игрок заходит на сервер, вводит в чате специальную команду. Если игрок Админ, то у него такое-то кол-во прыжков, иначе, если игрок Вип, то у него другое кол-во прыжков. Если игрок просто юзер, то у него маленькое кол-во прыжков, если он их использует, ему будет оповещение о том, что он может купить привилегию (соответственно прыжков у него будет больше). Как Вы уже поняли, для разных категорий - разное кол-во прыжков. Далее необходимо нажать пробел, потом быстро нажать пробел еще раз.

Установка: Перейдите по ссылке: База знаний

Настройка:

В .sma:


#define CREATE_CONFIG //Автоматическое создание конфига

#define ACCESS_ONLY_ADMIN ADMIN_BAN //Флаг доступа для квара mj_jump_only_admins (1/0)

#define MAIN_CHECK ADMIN_RESERVATION //Флаг доступа для учета Создателя (верхний уровень привилегий)

#define ADMIN_CHECK ADMIN_VOTE //Флаг доступа для учета Аминов
#define VIP_CHECK ADMIN_LEVEL_F //Флаг доступа для учета Випов #define USER_CHECK ADMIN_USER //Флаг доступа для учета юзеров

В .cfg:


// Number of jumps for the main one on the project
// -
// Default: "3"
mj_main_jump_num "3" // Total maximum number of jumps
// - // Default: "1"mj_all_jump_num "1" // The usage of jumps only for admins (0-off|1-on)
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
mj_jump_only_admins "0" // Ability to use limits on rounds (0-off|1-on)
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
mj_counting_round "1" // Number of jumps for the main one on the project
// -
// Default: "3"
mj_number_rounds "3" // Time to show advertising message (fmt: float)
// -
// Default: "30.0"
mj_time_msg "30.0" // Number of allowed jumps for admins
// -
// Default: "100"
mj_allowed_jumps_admin "100" // Number of allowed jumps for vips
// -
// Default: "50"
mj_allowed_jumps_vip "50" // Number of allowed jumps for users
// -
// Default: "20"
mj_allowed_jumps_user "20"

/*
* - ----------
Плагин - "Multi-Jump (mj)"
* - ---------- 
Благодарность за помощь (содействие): w0w
* - ---------- 
Благодарность за перевод на разные языки: ar222`
* - ---------- 
Поддержка плагина:
* - ---------- 
Dev-Cs: @ar222` 
vk: https://vk.com/d1mkin
Telegram: @WellAsGood
* - ---------- 
* - ---------- 
* - Переделка плагина Multi-Jump от 'ar222`' (Автора начального плагина не помню, но это не я)
* - ---------- 
* - За основу взят старый плагин (самая начальная функция) Multi-Jump (rus: Двойной Прыжок)
* - ----------
* - ----------
* - Добавлено:
* - ----------
* - 1) Счетчик прыжков для разных категорий (Админ, Вип, Юзер) ver 1.0
* - 2) Упоминание об окончании прыжков для игрока с разной периодичностью
* - 3) Дополнительные массивы и квары
* - 4) Гибкая настройка значений  ver 1.1
* - 5) Ограничитель на упоминание (дабы не флудить игроку много xD`)
* - 6) Незначительная реклама после разных действий (об команде mj)
* - 7) Оптимизирвоан код, добавлены разъеснительные записки возле команд.ver 1.2
* - 8) Добавлено выключение плагина на карты, ищите строку "new maps[][] = { "de", "cs" };", где можно добавить свои приставки карт.
* - 9) Созданы квары для Создателя и Зам. Создателя  (бесконечные прыжки без лимитов -  COZDGLZAM ADMIN_RESERVATION)
* - 10) Добавлена поддержка AMXX_VERSION == 183 и больше..  ver 1.3
* - 11) Оптимизирован код для читабелньости (без изменения версии)
* - ----------
* - Версии:
* - ----------
* - ver 1.3 (вошли 11 пунктов выше)
* - ver 1.4 (изменение название кваров и оптимизация кода + его читабельность)
* - ver 1.5 (Смотреть >>> Новые доработки плагина)
* - ver 1.6 (Смотреть >>> Новые доработки плагина)
* - ver 1.6.1 (Смотреть >>> Новые доработки плагина)
* - ----------
* - Актуальная версия плагина (конечная с учетом переделок: ver 1.6.1)
* - ----------
*/

/*
Новые доработки плагина:

* - ver 1.5:

* - Добавлен LANG файл (теперь все сообщения редактируются в txt файле; языки пока что: ru, en)
* - Оптимизация кеширования и др., во всем исходнике
* - Внедрена система лимитирования раундов (с какого раунда пользоваться командой)
* - Подготовка плагина к глобальному обновлению, улучшение читабельности.

* - ver 1.6:

* - Убрана поддержка AMXX 1.8.2 и ниже.
* - Убрано client_disconnected(id) за ненужностью, счетчики и другие установки делаются при client_putinserver(id)

* - ver 1.6.1:

* - Переход на 3-х значную версию
* - Произведен Рефакторинг кода. (много переработано)
* - Добавлены многие enum взамен старым переменным.
* - Изменены client_print_color (c %L на %l)
* - Оптимизация кода, всяческие исправления.
* - Добавлена возможность автосоздания CFG (#define CREATE_CONFIG)
* - Изменен поках рекламного сообщения (вместо выполнения после окончания функций многих set_task), добавлен глобальный set_task_ex
*/

#include 
#include 
#include 

#define CREATE_CONFIG //Автоматическое создание конфига

#define ACCESS_ONLY_ADMIN ADMIN_BAN //Флаг доступа для квара mj_jump_only_admins (1/0)
#define MAIN_CHECK ADMIN_RESERVATION //Флаг доступа для учета Создателя (верхний уровень привилегий)
#define ADMIN_CHECK ADMIN_VOTE //Флаг доступа для учета Аминов
#define VIP_CHECK ADMIN_LEVEL_F //Флаг доступа для учета Випов
#define USER_CHECK ADMIN_USER //Флаг доступа для учета юзеров

new const PLUGIN[] = "Multi-Jump (mj)";
new const VERSION[] = "1.6.1";
new const AUTHOR[] = "ar222`";

enum _:CvarData
{
	JumpCountMain, //количество прыжков для Создателя (#define MAIN_CHECK)
	JumpCountAll, //количество прыжков общее
	JumpOnlyAdmins, //использование плагина только для админов (#define ACCESS_ONLY_ADMIN)
	CountingRounds, //возможность сделать работу плагина после n-количества раундов (лимиты)
	NumberRounds, //количество раундов, после которых можно использовать основную функцию плагина.
	Float:TimeMessage, //Время до показа сообщения (реклама об возможности использования прыжков и какая команда)
	AllowedJumpsAdmin, //Кол-во прыжков для Админов
	AllowedJumpsVip, //Кол-во прыжков для Вип
	AllowedJumpsUser //Кол-во прыжков для Юзеров
}

enum _:CheckJumpingData
{
	CheckJumpingAdmin, //Проверки на кол-во прыжков для Админов
	CheckJumpingVip, //Проверки на кол-во прыжков для Вип
	CheckJumpingUser //Проверки на кол-во прыжков для Юзеров
}

enum _:CheckTimeData
{
	OneCheckTimeAdmin, //1й-Счетик для Админов (напоминание)
	OneCheckTimeVip, //1й-Счетик для Вип (напоминание)
	OneCheckTimeUser, //1й-Счетик для Юзеров (напоминание)
	TwoCheckTimeAdmin, //2й-Счетик для Админов (убрать напоминание)
	TwoCheckTimeVip, //2й-Счетик для Вип (убрать напоминание)
	TwoCheckTimeUser //2й-Счетик для Юзеров (убрать напоминание)
}

enum _:CheckCriticalData
{
	TotalJumpCount,
	AccessToActivation,
	bool:AccessSwitch
}

enum _:OtherData
{
	OldName,
	CheckNameOne,
	CheckNameTwo,
	CheckOldName,
	CheckNewName,
	RoundNum
}

new eCvarData[CvarData], eCheckJumpingData[MAX_PLAYERS+1][CheckJumpingData], eCheckTimeData[MAX_PLAYERS+1][CheckTimeData];
new eCheckCriticalData[MAX_PLAYERS+1][CheckCriticalData], eOtherData[OtherData];

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_dictionary("mt-jump.txt");

	register_logevent("round_start", 2, "0=World triggered", "1=Round_Start");

	register_clcmd("say mj", "ActivateChatCommand");
	register_clcmd("say multijump", "ActivateChatCommand");

	CreateCvars();

#if defined CREATE_CONFIG
	AutoExecConfig(true, "mj");
#endif

	set_task_ex(eCvarData[TimeMessage], "DisplayInfo", .flags = SetTask_Repeat);
}

public CreateCvars()
{
	new Cvar;

	Cvar = create_cvar("mj_main_jump_num", "3", FCVAR_NONE, "Number of jumps for the main one on the project", false, 0.0, false, 0.0);
	bind_pcvar_num(Cvar, eCvarData[JumpCountMain]);

	Cvar = create_cvar("mj_all_jump_num", "1", FCVAR_NONE, "Total maximum number of jumps", false, 0.0, false, 0.0);
	bind_pcvar_num(Cvar, eCvarData[JumpCountAll]);

	Cvar = create_cvar("mj_jump_only_admins", "0", FCVAR_NONE, "The usage of jumps only for admins (0-off|1-on)", true, 0.0, true, 1.0);
	bind_pcvar_num(Cvar, eCvarData[JumpOnlyAdmins]);

	Cvar = create_cvar("mj_counting_round", "1", FCVAR_NONE, "Ability to use limits on rounds (0-off|1-on)", true, 0.0, true, 1.0);
	bind_pcvar_num(Cvar, eCvarData[CountingRounds]);

	Cvar = create_cvar("mj_number_rounds", "3", FCVAR_NONE, "Number of jumps for the main one on the project", false, 0.0, false, 0.0);
	bind_pcvar_num(Cvar, eCvarData[NumberRounds]);

	Cvar = create_cvar("mj_time_msg", "30.0", FCVAR_NONE, "Time to show advertising message (fmt: float)", false, 0.0, false, 0.0);
	bind_pcvar_float(Cvar, eCvarData[TimeMessage]);

	Cvar = create_cvar("mj_allowed_jumps_admin", "100", FCVAR_NONE, "Number of allowed jumps for admins", false, 0.0, false, 0.0);
	bind_pcvar_num(Cvar, eCvarData[AllowedJumpsAdmin]);

	Cvar = create_cvar("mj_allowed_jumps_vip", "50", FCVAR_NONE, "Number of allowed jumps for vips", false, 0.0, false, 0.0);
	bind_pcvar_num(Cvar, eCvarData[AllowedJumpsVip]);

	Cvar = create_cvar("mj_allowed_jumps_user", "20", FCVAR_NONE, "Number of allowed jumps for users", false, 0.0, false, 0.0);
	bind_pcvar_num(Cvar, eCvarData[AllowedJumpsUser]);
}

public round_start()
{
	if(eCvarData[CountingRounds]){
		eOtherData[RoundNum]++;
	}
}

public client_putinserver(id)
{
	eCheckCriticalData[id][TotalJumpCount] = 0;
	eCheckCriticalData[id][AccessToActivation] = 0;
	eCheckCriticalData[id][AccessSwitch] = false;

	new Flag = get_user_flags(id);

	if(Flag & ADMIN_CHECK){
		eCheckJumpingData[id][CheckJumpingAdmin] = eCvarData[AllowedJumpsAdmin];
	}
	else if(Flag & VIP_CHECK){
		eCheckJumpingData[id][CheckJumpingVip] = eCvarData[AllowedJumpsVip];
	}
	else if(Flag & USER_CHECK){
		eCheckJumpingData[id][CheckJumpingUser] = eCvarData[AllowedJumpsUser];
	}
}

public DisplayInfo()
{
	client_print_color(0, print_team_default, "%l", "MJ_GLOBAL_INFO");
}

public ActivateChatCommand(id)
{
	if(eCvarData[CountingRounds] && eOtherData[RoundNum] <= eCvarData[NumberRounds]){
		new Rnd = eCvarData[NumberRounds] - eOtherData[RoundNum];
		client_print_color(id, print_team_default, "%l", "MJ_ROUND", Rnd + 1);
		return PLUGIN_HANDLED;
	}

	new NewName[MAX_PLAYERS];
	get_user_name(id, NewName, charsmax(NewName))

	if(eOtherData[OldName] != NewName[id]){
		eOtherData[CheckNameOne] = 0;
		eOtherData[CheckNameTwo] = 0;
		eOtherData[CheckOldName] = eOtherData[CheckNameTwo];
		eOtherData[CheckNewName] = eOtherData[CheckNameOne];
	}
	else if(eOtherData[OldName] == NewName[id]){
		eOtherData[CheckOldName] = eOtherData[CheckNameTwo];
		eOtherData[CheckNewName] = eOtherData[CheckNameOne];
	}

	eOtherData[OldName] = NewName[id]; //запоминается ник игрока который использовал команду.

	new Flag = get_user_flags(id);

	if(Flag & ADMIN_CHECK){
		if(eCheckJumpingData[id][CheckJumpingAdmin] == 0){
			client_print_color(id, print_team_default, "%l", "MJ_STOP_ADMIN");
			return PLUGIN_HANDLED;
		}

		if(eOtherData[CheckOldName] != eOtherData[CheckNewName]){
			client_print_color(id, print_team_default, "%l", "MJ_ALREADY_ACTIVE");
			return PLUGIN_HANDLED;
		}
		else if(eOtherData[CheckOldName] == eOtherData[CheckNewName]){
			client_print_color(id, print_team_default, "%l", "MJ_ACTIVE_1", NewName);
			client_print_color(id, print_team_default, "%l", "MJ_ACTIVE_2", eCheckJumpingData[id][CheckJumpingAdmin]);

			eCheckCriticalData[id][AccessToActivation] = 1;
			eOtherData[CheckNameOne]++;
			eOtherData[CheckNewName] = eOtherData[CheckNameOne];
			return PLUGIN_HANDLED;
		}

		return PLUGIN_HANDLED;
	}
	else if(Flag & VIP_CHECK){
		if(eCheckJumpingData[id][CheckJumpingVip] == 0){
			client_print_color(id, print_team_default, "%l", "MJ_STOP_VIP_1");
			client_print_color(id, print_team_default, "%l", "MJ_STOP_VIP_2");
			return PLUGIN_HANDLED;
		}

		if(eOtherData[CheckOldName] != eOtherData[CheckNewName]){
			client_print_color(id, print_team_default, "%l", "MJ_ALREADY_ACTIVE");
			return PLUGIN_HANDLED;
		}
		else if(eOtherData[CheckOldName] == eOtherData[CheckNewName]){
			client_print_color(id, print_team_default, "%l", "MJ_ACTIVE_1", NewName);
			client_print_color(id, print_team_default, "%l", "MJ_ACTIVE_2", eCheckJumpingData[id][CheckJumpingVip]);

			eCheckCriticalData[id][AccessToActivation] = 1;
			eOtherData[CheckNameOne]++;
			eOtherData[CheckNewName] = eOtherData[CheckNameOne];
			return PLUGIN_HANDLED;
		}

		return PLUGIN_HANDLED;
	}
	else if(Flag & USER_CHECK){
		if(eCheckJumpingData[id][CheckJumpingUser] == 0){
			client_print_color(id, print_team_default, "%l", "MJ_STOP_USER_1");
			client_print_color(id, print_team_default, "%l", "MJ_STOP_USER_2");
			return PLUGIN_HANDLED;
		}

		if(eOtherData[CheckOldName] != eOtherData[CheckNewName]){
			client_print_color(id, print_team_default, "%l", "MJ_ALREADY_ACTIVE");
			return PLUGIN_HANDLED;
		}
		else if(eOtherData[CheckOldName] == eOtherData[CheckNewName]){
			client_print_color(id, print_team_default, "%l", "MJ_ACTIVE_1", NewName);
			client_print_color(id, print_team_default, "%l", "MJ_ACTIVE_2", eCheckJumpingData[id][CheckJumpingUser]);

			eCheckCriticalData[id][AccessToActivation] = 1;
			eOtherData[CheckNameOne]++;
			eOtherData[CheckNewName] = eOtherData[CheckNameOne];
			return PLUGIN_HANDLED;
		}

		return PLUGIN_HANDLED;
	}

	return PLUGIN_HANDLED;
}

public client_PreThink(id)
{
	if(!is_user_alive(id) || !eCheckCriticalData[id][AccessToActivation]){
		return PLUGIN_CONTINUE;
	}

	new Flag = get_user_flags(id);

	if(eCvarData[JumpOnlyAdmins] && !(Flag & ACCESS_ONLY_ADMIN)){
		return PLUGIN_CONTINUE;
	}

	new Button = get_user_button(id);
	new FlagEnt = get_entity_flags(id);

	if(Button & IN_JUMP && !(FlagEnt & FL_ONGROUND) && !(get_user_oldbutton(id) & IN_JUMP)){
		if(Flag & MAIN_CHECK){
			if(eCheckCriticalData[id][TotalJumpCount] < eCvarData[JumpCountMain]){
				eCheckCriticalData[id][AccessSwitch] = true;
				eCheckCriticalData[id][TotalJumpCount]++;
				return PLUGIN_CONTINUE;
			}

			if(Button & IN_JUMP && FlagEnt & FL_ONGROUND){
				eCheckCriticalData[id][TotalJumpCount] = 0;
				return PLUGIN_CONTINUE
			}

			return PLUGIN_HANDLED;
		}

		if(eCheckCriticalData[id][TotalJumpCount] < eCvarData[JumpCountAll]){
			if(Flag & ADMIN_CHECK){
				if(eCheckTimeData[id][TwoCheckTimeAdmin] == 5){ //чекер что-бы убрать напоминалку (надоедливость)
					eCheckCriticalData[id][AccessToActivation] = 0;
					return PLUGIN_HANDLED;
				}

				if(eCheckJumpingData[id][CheckJumpingAdmin] == 0){ //Если админ исчерпал свои разрешенные кол-во мульти-прыжков, то пишем ему об этом в чат.
					client_print_color(id, print_team_default, "%l", "MJ_STOP_ADMIN");

					eCheckTimeData[id][TwoCheckTimeAdmin]++; //снова запуск счетчика (что-бы убрать напоминалку)
					return PLUGIN_HANDLED;
				}

				if(eCheckTimeData[id][OneCheckTimeAdmin] == 30){ //Напоминалка в чат об оставшихся прыжках (из сообразительности для игроков в пользу, надоедливость)
					client_print_color(id, print_team_default, "%l", "MJ_END_JUMP", eCheckJumpingData[id][CheckJumpingAdmin]);
					eCheckTimeData[id][OneCheckTimeAdmin] = 0; //сброс счетчика напоминалки
				}

				eCheckJumpingData[id][CheckJumpingAdmin]--; //Отнимаем от количества прыжков.
				eCheckTimeData[id][OneCheckTimeAdmin]++; //снова запуск счетчика напоминалки
			}
			else if(Flag & VIP_CHECK){
				if(eCheckTimeData[id][TwoCheckTimeVip] == 10){ //чекер что-бы убрать напоминалку (чуть больше надодает чем у админов)
					eCheckCriticalData[id][AccessToActivation] = 0;
					return PLUGIN_HANDLED;
				}

				if(eCheckJumpingData[id][CheckJumpingVip] == 0){ //Если вип исчерпал свои разрешенные кол-во мульти-прыжков, то пишем ему об этом в чат.
					client_print_color(id, print_team_default, "%l", "MJ_STOP_VIP_1");
					client_print_color(id, print_team_default, "%l", "MJ_STOP_VIP_2");

					eCheckTimeData[id][TwoCheckTimeVip]++; //снова запуск счетчика (что-бы убрать напоминалку)
					return PLUGIN_HANDLED;
				}

				if(eCheckTimeData[id][OneCheckTimeVip] == 20){ //Напоминалка в чат об оставшихся прыжках (из сообразительности для игроков в пользу, надоедливей чем у админов)
					client_print_color(id, print_team_default, "%l", "MJ_END_JUMP", eCheckJumpingData[id][CheckJumpingVip]);
					eCheckTimeData[id][OneCheckTimeVip] = 0; //сброс счетчика напоминалки
				}

				eCheckJumpingData[id][CheckJumpingVip]--; //Отнимаем от количества прыжков.
				eCheckTimeData[id][OneCheckTimeVip]++; //снова запуск счетчика напоминалки
			}
			else if(Flag & USER_CHECK){
				if(eCheckTimeData[id][TwoCheckTimeUser] == 15){ //чекер что-бы убрать напоминалку (больше надоедает чем у админов и вип)
					eCheckCriticalData[id][AccessToActivation] = 0;
					return PLUGIN_HANDLED;
				}

				if(eCheckJumpingData[id][CheckJumpingUser] == 0){ //Если юзер исчерпал свои разрешенные кол-во мульти-прыжков, то пишем ему об этом в чат
					client_print_color(id, print_team_default, "%l", "MJ_STOP_USER_1");
					client_print_color(id, print_team_default, "%l", "MJ_STOP_USER_2");

					eCheckTimeData[id][TwoCheckTimeUser]++; //снова запуск счетчика (что-бы убрать напоминалку)
					return PLUGIN_HANDLED;
				}

				if(eCheckTimeData[id][OneCheckTimeUser] == 15){ //Напоминалка в чат об оставшихся прыжках (из сообразительности для игроков в пользу, надоедливей чем у Админов и Вип)
					client_print_color(id, print_team_default, "%l", "MJ_END_JUMP", eCheckJumpingData[id][CheckJumpingUser]);
					eCheckTimeData[id][OneCheckTimeUser] = 0; //сброс счетчика напоминалки
				}

				eCheckJumpingData[id][CheckJumpingUser]--; //Отнимаем от количества прыжков.
				eCheckTimeData[id][OneCheckTimeUser]++; //снова запуск счетчика напоминалки
			}

			eCheckCriticalData[id][AccessSwitch] = true;
			eCheckCriticalData[id][TotalJumpCount]++;
			return PLUGIN_CONTINUE;
		}
	}

	if(Button & IN_JUMP && FlagEnt & FL_ONGROUND){
		eCheckCriticalData[id][TotalJumpCount] = 0;
		return PLUGIN_CONTINUE;
	}

	return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
	if(!is_user_alive(id) || !eCheckCriticalData[id][AccessSwitch]){
		return PLUGIN_CONTINUE;
	}

	if(eCvarData[JumpOnlyAdmins] && !(get_user_flags(id) & ACCESS_ONLY_ADMIN)){
		return PLUGIN_CONTINUE;
	}

	if(eCheckCriticalData[id][AccessSwitch]){
		new Float:velocity[3];
		entity_get_vector(id, EV_VEC_velocity, velocity);

		velocity[2] = random_float(265.0, 285.0);
		entity_set_vector(id, EV_VEC_velocity, velocity);

		eCheckCriticalData[id][AccessSwitch] = false;
	}

	return PLUGIN_CONTINUE;
}
Мультиязычность: RU, EN

[ru]
MJ_GLOBAL_INFO = ^3[^4Двойной прыжок^3] ^1Как начать? ^3>> ^1Say: ^4mj^1, ^4multijump
MJ_ACTIVE_1 = ^3[^4Сервер^3]^1 Игрок ^4%s^1, для ^3Вас ^1включен ^3'^4Двойной прыжок^3'^1!
MJ_ACTIVE_2 = ^3[^4Сервер^3]^1 Количество доступных multi-прыжков: ^4%d
MJ_ALREADY_ACTIVE = ^3[^4Сервер^3]^1 Двойной ^3прыжок^1 уже ^4активирован^1!
MJ_STOP_ADMIN = ^3[^4Сервер^3] ^1Ув. Админ, ^3Вы ^1исчерпали использование ^4multi-прыжков^1!
MJ_STOP_VIP_1 = ^3[^4Сервер^3] ^1Ув. Вип, ^3Вы ^1исчерпали использование ^4multi-прыжков^1!
MJ_STOP_VIP_2 = ^3[^4Сервер^3] ^1Хотите ^3больше ^4прыжков^1? Купите ^3себе ^1у создателя!
MJ_STOP_USER_1 = ^3[^4Сервер^3] ^1Ув. Игрок, ^3Вы ^1исчерпали использование ^4multi-прыжков^1!
MJ_STOP_USER_2 = ^3[^4Сервер^3] ^1Хотите больше ^3прыжков^1? Купите ^3себе ^4Вип ^3или ^4Админку^1!
MJ_END_JUMP_ALL = ^3[^4Сервер^3]^1 Осталось ^3multi^1-прыжков: ^4%d
MJ_ROUND = ^3[^4Сервер^3] ^1Ув. Игрок, до ^3использования ^1multi-jump: ^4%i ^3раундов^1.

[en]
MJ_GLOBAL_INFO = ^3[^4Double jump^3] ^1How to start? ^3>> ^1Say: ^4mj^1, ^4multijump
MJ_ACTIVE_1 = ^3[^4Server^3] ^1Player ^4%s^1, ^3You ^1included a ^3'^4Double jump^3'^1!
MJ_ACTIVE_2 = ^3[^4Server^3] ^1Number of multi-jumps available: ^4%d
MJ_ALREADY_ACTIVE = ^3[^4Server^3] ^1Double ^3jump ^1already ^4activated^1!
MJ_STOP_ADMIN = ^3[^4Server^3] ^1Dear Admin, ^3You ^1exhausted the use of ^4multi-jumps^1!
MJ_STOP_VIP_1 = ^3[^4Server^3] ^1Dear VIP, ^3You ^1exhausted the use of ^4multi-jumps^1!
MJ_STOP_VIP_2 = ^3[^4Server^3] ^1Want ^3more ^4jumps^1? Buy ^3yourself ^1from the Creator!
MJ_STOP_USER_1 = ^3[^4Server^3] ^1Dear Player, ^3You ^1have exhausted the use of ^4multi-jumps^1!
MJ_STOP_USER_2 = ^3[^4Server^3] ^1Want more ^3jumps^1? Buy a ^4VIP ^3or ^4Admin^1!
MJ_AND_JUMP_ALL = ^3[^4Server^3] ^1Left ^3multi^1-jumps: ^4%d
MJ_ROUND = ^3[^4Server^3] ^1Dear Player, up to ^3uses ^1multi-jump: ^4%i ^3rounds^1.
1. mj - команда в чат (активация фукнций плагина на сервере)
2. multijump - команда в чат (активация фукнций плагина на сервере)


[Обновление без изменения версии]:
[Added]:
Добавлена новая информация контактов поддержки.
Исходный код еще раз проверен на пригодность и успешное компилирование.
Пересобран архив.

__________________

__________________



[скачан: 1 раз(а)]

Комментарии к ресурсу

Комментариев пока нет. Будь первым!

Внимание! В комментариях запрещен мат, оскорбления, спам, флуд. Запрещены те комментарии, которые не относятся к тематике сайта в целом! Если будет обнаружено, то будет бан аккаунта. Оставлять комментарий к конкретному ресурсу можно только 1 раз на 1 аккаунт.

Вам необходима регистрация для отправки!