Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

[Заказ] Написать БД, для мода 679 строк.

Статус
В этой теме нельзя размещать новые ответы.

Fastik

Специалист

1. Что вам требуется : Написать БД, для мода 679 строк. (Если не ошибаюсь, там только рега на мускул.)
2. Цена вопроса : От 50 руб до договорной.
3. Связь: fastik57


Сам мод:

PHP:
/*
							ELECTED - ROLE PLAY
							НАПИСАН ПОЛНОСТЬЮ С НУЛЯ, НА ПЛАТФОРМЕ MYSQL R8 (r15)
							
							АВТОР МОДА: Rubick

							Версия мода: 0.0.1
							
							Версия плагина MySQL: R8 (r15)
							
							Версия плагина Regex: 0.2.1
							
							Версия плагина SSCANF: 2.8.1
*/

/*

							ГОТОВО В МОДЕ:
							
							* РЕГИСТРАЦИЯ
							
							ДАТА РАЗРАБОТКИ: ФЕВРАЛЬ 2013 ГОД
							
*/


/*		Стандартная библиотека от разработчиков SA:MP 0.3x		 */

#include a_samp

/*      Плагин MySQL версии R8 (r15) от бета тестера SA:MP - BlueG */

#include a_mysql

/*      Командный процессор PCMD от разработчика Divine */


/*      Плагин Regex для проверки расширений от разработчика Fro */

#include regex

/*      Плагин SSCANF для установки проверок, оптимизация от автора: Y_LESS */

#include sscanf

/*      Настройки учётной записи базы данных */

#define HOST                                            "localhost"

#define USER                                            "root"

#define BASE                                            "Elected-RP"

#define PASS                                            ""

/*      Константы */


#define TABLE_PLAYERS                                   "Players"

#define MODE_NAME                                       "Elected Role Play"

#define Massive                                         enum

#define WhileOfCheckThe                                 if

#define Dialog                                          ShowPlayerDialog

#define QFormat                                         mysql_format

#define Query                                           mysql_function_query

#define Letter                             				SendClientMessage

#define Thread(%0)(%1)                                  public %0(%1)

#define Void(%0)(%1) 									stock %0(%1)
		
#define Option(%0)(%1) 									forward %0(%1); public %0(%1)

#define PRESSED(%0)										(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))

#define v                                               new

#define WHITE                                           0xFFFFFFFF
#define RED                                             0xF81414FF
#define LIGHT_BLUE                                     	0x00c0FFFF
#define LIGHT_GREEN                                     0xC9FFABFF

/*      Запуск сервера */

main();

/*      Массив с таблицой игроков */

Massive SLAYER_PLAYERS
{
	Password[32],
	A_Password[32],
	Ip[20],
	Skin,
};
v Info[MAX_PLAYERS][SLAYER_PLAYERS];

Massive SLAYER_FACTIONS
{
	Leader,
	Member,
	Rank,
}
v Faction[MAX_PLAYERS][SLAYER_FACTIONS];

/*      Переменные */

static Cache[MAX_PLAYERS];

static SkinMan[] = {2,3,7,208,24,188};
static Text:RM_BOX;
static Text:R_BOX;
static Text:S_BOX;
static Text:E_BOX;
static Text:RM_TEXT;
static Text:L_TEXT;
static Text:R_TEXT;
static Text:S_TEXT;
static Text:E_TEXT;

static Text:C_BOX;
static Text:C_LEFT;
static Text:C_RIGHT;
static Text:C_CIRCLE;
static Text:C_MBOX;
static Text:C_MTEXT;

static connectionHandle;

static string[500];

static RegEx:checkPass;
static RegEx:checkMail;

/*      Стандартные функции */

Thread(OnGameModeInit)()
{
	RM_BOX = TextDrawCreate(411.500000, 5.875000, "usebox");
	TextDrawLetterSize(RM_BOX, 0.000000, 2.016666);
	TextDrawTextSize(RM_BOX, 236.500000, 0.000000);
	TextDrawAlignment(RM_BOX, 1);
	TextDrawColor(RM_BOX, 0);
	TextDrawUseBox(RM_BOX, true);
	TextDrawBoxColor(RM_BOX, 102);
	TextDrawSetShadow(RM_BOX, 0);
	TextDrawSetOutline(RM_BOX, 0);
	TextDrawFont(RM_BOX, 0);

	R_BOX = TextDrawCreate(411.500000, 29.062500, "usebox");
	TextDrawLetterSize(R_BOX, 0.000000, 1.238888);
	TextDrawTextSize(R_BOX, 236.500000, 0.000000);
	TextDrawAlignment(R_BOX, 1);
	TextDrawColor(R_BOX, 0);
	TextDrawUseBox(R_BOX, true);
	TextDrawBoxColor(R_BOX, 102);
	TextDrawSetShadow(R_BOX, 0);
	TextDrawSetOutline(R_BOX, 0);
	TextDrawFont(R_BOX, 0);

	S_BOX = TextDrawCreate(411.500000, 45.250000, "usebox");
	TextDrawLetterSize(S_BOX, 0.000000, 1.093055);
	TextDrawTextSize(S_BOX, 236.500000, 0.000000);
	TextDrawAlignment(S_BOX, 1);
	TextDrawColor(S_BOX, 0);
	TextDrawUseBox(S_BOX, true);
	TextDrawBoxColor(S_BOX, 102);
	TextDrawSetShadow(S_BOX, 0);
	TextDrawSetOutline(S_BOX, 0);
	TextDrawFont(S_BOX, 0);

	E_BOX = TextDrawCreate(412.000000, 60.125000, "usebox");
	TextDrawLetterSize(E_BOX, 0.000000, 1.190277);
	TextDrawTextSize(E_BOX, 236.500000, 0.000000);
	TextDrawAlignment(E_BOX, 1);
	TextDrawColor(E_BOX, 0);
	TextDrawUseBox(E_BOX, true);
	TextDrawBoxColor(E_BOX, 102);
	TextDrawSetShadow(E_BOX, 0);
	TextDrawSetOutline(E_BOX, 0);
	TextDrawFont(E_BOX, 0);

	RM_TEXT = TextDrawCreate(279.500000, 7.000000, "MAIN MENU");
	TextDrawLetterSize(RM_TEXT, 0.449999, 1.600000);
	TextDrawAlignment(RM_TEXT, 1);
	TextDrawColor(RM_TEXT, -1);
	TextDrawSetShadow(RM_TEXT, 0);
	TextDrawSetOutline(RM_TEXT, 1);
	TextDrawBackgroundColor(RM_TEXT, 51);
	TextDrawFont(RM_TEXT, 1);
	TextDrawSetProportional(RM_TEXT, 1);

	L_TEXT = TextDrawCreate(306.500000, 25.812500, "LOGIN");
	TextDrawLetterSize(L_TEXT, 0.449999, 1.600000);
	TextDrawAlignment(L_TEXT, 1);
	TextDrawColor(L_TEXT, -1);
	TextDrawSetShadow(L_TEXT, 0);
	TextDrawSetOutline(L_TEXT, 1);
	TextDrawBackgroundColor(L_TEXT, 51);
	TextDrawFont(L_TEXT, 1);
	TextDrawSetProportional(L_TEXT, 1);

	R_TEXT = TextDrawCreate(291.500000, 26.250000, "REGISTER");
	TextDrawLetterSize(R_TEXT, 0.449999, 1.600000);
	TextDrawAlignment(R_TEXT, 1);
	TextDrawColor(R_TEXT, -1);
	TextDrawSetShadow(R_TEXT, 0);
	TextDrawSetOutline(R_TEXT, 1);
	TextDrawBackgroundColor(R_TEXT, 51);
	TextDrawFont(R_TEXT, 1);
	TextDrawSetProportional(R_TEXT, 1);

	S_TEXT = TextDrawCreate(292.000000, 42.000000, "SETTINGS");
	TextDrawLetterSize(S_TEXT, 0.449999, 1.600000);
	TextDrawAlignment(S_TEXT, 1);
	TextDrawColor(S_TEXT, -1);
	TextDrawSetShadow(S_TEXT, 0);
	TextDrawSetOutline(S_TEXT, 1);
	TextDrawBackgroundColor(S_TEXT, 51);
	TextDrawFont(S_TEXT, 1);
	TextDrawSetProportional(S_TEXT, 1);

	E_TEXT = TextDrawCreate(311.500000, 57.312500, "EXIT");
	TextDrawLetterSize(E_TEXT, 0.449999, 1.600000);
	TextDrawAlignment(E_TEXT, 1);
	TextDrawColor(E_TEXT, -1);
	TextDrawSetShadow(E_TEXT, 0);
	TextDrawSetOutline(E_TEXT, 1);
	TextDrawBackgroundColor(E_TEXT, 51);
	TextDrawFont(E_TEXT, 1);
	TextDrawSetProportional(E_TEXT, 1);

	C_BOX = TextDrawCreate(406.000000, 379.500000, "usebox");
	TextDrawLetterSize(C_BOX, 0.000000, 2.994444);
	TextDrawTextSize(C_BOX, 251.500000, 0.000000);
	TextDrawAlignment(C_BOX, 1);
	TextDrawColor(C_BOX, 0);
	TextDrawUseBox(C_BOX, true);
	TextDrawBoxColor(C_BOX, 102);
	TextDrawSetShadow(C_BOX, 0);
	TextDrawSetOutline(C_BOX, 0);
	TextDrawFont(C_BOX, 0);
	
	C_LEFT = TextDrawCreate(256.000000, 380.625000, "LD_BEAT:left");
	TextDrawLetterSize(C_LEFT, 0.000000, 0.000000);
	TextDrawTextSize(C_LEFT, 41.500000, 24.937500);
	TextDrawAlignment(C_LEFT, 1);
	TextDrawColor(C_LEFT, -1);
	TextDrawSetShadow(C_LEFT, 0);
	TextDrawSetOutline(C_LEFT, 0);
	TextDrawFont(C_LEFT, 4);

	C_RIGHT = TextDrawCreate(357.000000, 380.625000, "LD_BEAT:right");
	TextDrawLetterSize(C_RIGHT, 0.000000, 0.000000);
	TextDrawTextSize(C_RIGHT, 45.000000, 24.937500);
	TextDrawAlignment(C_RIGHT, 1);
	TextDrawColor(C_RIGHT, -1);
	TextDrawSetShadow(C_RIGHT, 0);
	TextDrawSetOutline(C_RIGHT, 0);
	TextDrawFont(C_RIGHT, 4);

	C_CIRCLE = TextDrawCreate(299.500000, 380.625000, "LD_BEAT:circle");
	TextDrawLetterSize(C_CIRCLE, 0.000000, 0.000000);
	TextDrawTextSize(C_CIRCLE, 55.500000, 24.937500);
	TextDrawAlignment(C_CIRCLE, 1);
	TextDrawColor(C_CIRCLE, -1);
	TextDrawSetShadow(C_CIRCLE, 0);
	TextDrawSetOutline(C_CIRCLE, 0);
	TextDrawFont(C_CIRCLE, 4);

	C_MBOX = TextDrawCreate(255.500000, 377.312500, "usebox");
	TextDrawLetterSize(C_MBOX, 0.000000, -2.941666);
	TextDrawTextSize(C_MBOX, 402.000000, 0.000000);
	TextDrawAlignment(C_MBOX, 1);
	TextDrawColor(C_MBOX, 0);
	TextDrawUseBox(C_MBOX, true);
	TextDrawBoxColor(C_MBOX, 102);
	TextDrawSetShadow(C_MBOX, 0);
	TextDrawSetOutline(C_MBOX, 0);
	TextDrawFont(C_MBOX, 0);

	C_MTEXT = TextDrawCreate(285.000000, 355.250000, "SELECT SKIN");
	TextDrawLetterSize(C_MTEXT, 0.449999, 1.600000);
	TextDrawAlignment(C_MTEXT, 1);
	TextDrawColor(C_MTEXT, -1);
	TextDrawSetShadow(C_MTEXT, 0);
	TextDrawSetOutline(C_MTEXT, 1);
	TextDrawBackgroundColor(C_MTEXT, 51);
	TextDrawFont(C_MTEXT, 1);
	TextDrawSetProportional(C_MTEXT, 1);
	
	SetGameModeText("E-RP v0.0.1");

	checkPass = regex_build("[A-Za-z0-9А-Яа-я]{6,25}");
	checkMail = regex_build("[A-Z@.a-z]{10,32}");
	connectionHandle = mysql_connect(HOST, USER, BASE, PASS);

    TextDrawSetSelectable(RM_BOX, false);
    TextDrawSetSelectable(RM_TEXT, false);
    TextDrawSetSelectable(R_BOX, false);
    TextDrawSetSelectable(S_BOX, false);
    TextDrawSetSelectable(E_BOX, false);
	TextDrawSetSelectable(C_BOX, false);


	TextDrawSetSelectable(R_TEXT, true);
	TextDrawSetSelectable(L_TEXT, true);
	TextDrawSetSelectable(S_TEXT, true);
	TextDrawSetSelectable(E_TEXT, true);
	TextDrawSetSelectable(C_RIGHT,true);
	TextDrawSetSelectable(C_LEFT, true);
	TextDrawSetSelectable(C_CIRCLE, true);
	return 1;
}

Thread(OnGameModeExit)()
{
	mysql_close(connectionHandle);
	
	TextDrawDestroy(RM_BOX);
	TextDrawDestroy(R_BOX);
	TextDrawDestroy(S_BOX);
	TextDrawDestroy(E_BOX);
	
	TextDrawDestroy(RM_TEXT);
	TextDrawDestroy(S_TEXT);
	TextDrawDestroy(E_TEXT);
	
	TextDrawDestroy(C_BOX);
	
	TextDrawDestroy(C_MBOX);
	TextDrawDestroy(C_MTEXT);

	TextDrawDestroy(C_RIGHT);
	TextDrawDestroy(C_LEFT);
	TextDrawDestroy(C_CIRCLE);
	return 1;
}

Thread(OnPlayerConnect)(playerid) {
    Cache[playerid] = cache_save();
	GetPlayerVersion(playerid, string, sizeof(string)); WhileOfCheckThe(!strcmp(string,"0.3x-R1-2"))
    {
    }
    else
    {
	SetTimer("OnPlayerKick", 1000, 0), Letter(playerid, RED, "В целях обеспечения безопасности сервера вам необходимо обновить клиентскую часть до: SA-MP 0.3x R1-2");
	}
	return 1;
}

Thread(OnPlayerDisconnect)(playerid) return OnPlayerSave(playerid);

Thread(OnPlayerRequestClass)(playerid, classid) return format(string, sizeof(string), "SELECT `Name` FROM `"TABLE_PLAYERS"` WHERE `Name` = '%s'", Name(playerid)), Query(connectionHandle, string, true, "OnPlayerCheck", "d", playerid);

Thread(OnPlayerSpawn)(playerid)	return cache_delete(Cache[playerid]);

Thread(OnPlayerKeyStateChange)(playerid, newkeys, oldkeys)
{
	WhileOfCheckThe(PRESSED(65536))
	{
	Dialog(playerid, 6, DIALOG_STYLE_LIST, "{FFFFFF}Меню", "{FFFFFF}1. Помощь по серверу", "Выбрать", "Выход");
	}
	WhileOfCheckThe(PRESSED(KEY_FIRE))
	{
	Letter(playerid, -1, "Запрещено атаковать на Role Play сервере!");
	}
	WhileOfCheckThe(PRESSED(262144))
	{
	Dialog(playerid, 20, DIALOG_STYLE_LIST, "{FFFFFF}Меню Администратора", "{FFFFFF}1. Создание объектов\n2. Выполнение SQL запросов\n3. Управление игроком", "Выбрать", "Выход");
	}
	return 1;
}

Thread(OnDialogResponse)(playerid, dialogid, response, listitem, inputtext[])
{
	static numbers, giveplayerid;
	switch(dialogid)
	{
	case 1:
	{
	WhileOfCheckThe(!strlen(inputtext)) return Dialog(playerid, 1, DIALOG_STYLE_INPUT,"{FFFFFF}Регистрация","\t{FFFFFF}Добро пожаловать на сервер!\n\t{FFFFFF}Используйте сложные комбинации символов в пароле.\n\n\t{FFFFFF}Данный аккаунт свободен.\n\tЧтобы зарегистрировать введите пароль:","Далее","Выход");
	WhileOfCheckThe(!regex_match_exid(inputtext, checkPass)) return Dialog(playerid, 1, DIALOG_STYLE_INPUT, "{FFFFFF}Регистрация","\t{FFFFFF}Добро пожаловать на сервер!\n\t{FFFFFF}Используйте сложные комбинации символов в пароле.\n\n\t{FFFFFF}Данный аккаунт свободен.\n\tЧтобы зарегистрировать введите пароль:","Далее","Выход");
	OnPlayerRegister(playerid, inputtext);
	return 1;
	}
	case 2:
	{
	WhileOfCheckThe(!strlen(inputtext)) return Dialog(playerid, 2, DIALOG_STYLE_PASSWORD,"{FFFFFF}Вход в аккаунт","\t{FFFFFF}Добро пожаловать на сервер!\n\t{FFFFFF}Никому не передавайте ваш пароль.\n\n\t{FFFFFF}Данный аккаунт занят.\n\tЧтобы войти введите пароль:","Вход","Выход");
	OnPlayerLogin(playerid, inputtext);
	return 1;
	}
	case 3:
	{
	WhileOfCheckThe(!strlen(inputtext)) return Dialog(playerid, 4, DIALOG_STYLE_INPUT,"{FFFFFF}Электронная почта","\t{FFFFFF}Введите адрес вашей электронной почты\n\t{FFFFFF}Используя его вы сможете восстановить доступ к аккаунту\n\t{FFFFFF}в случае взлома или потеря пароля","Далее", "Назад");
	WhileOfCheckThe(!regex_match_exid(inputtext, checkMail)) return Dialog(playerid, 4, DIALOG_STYLE_INPUT,"{FFFFFF}Электронная почта","\t{FFFFFF}Введите адрес вашей электронной почты\n\t{FFFFFF}Используя его вы сможете восстановить доступ к аккаунту\n\t{FFFFFF}в случае взлома или потерял пароя","Далее", "Назад");
	}
	case 4:
	{
	Dialog(playerid, 8, DIALOG_STYLE_MSGBOX, "{FFFFFF}Подтверждение E-Mail", "\t{FFFFFF}На указанный вами адрес электронной почты был выслан уникальный код.\n\t{FFFFFF}Подтверждение было введено с целью безопасности аккаунта.\n\n\t{FFFFFF}Для того чтобы свернуть игру используйте комбинацию Alt + Tab\n\n\t{FFFFFF}Введите код:\n\tВРЕМЕННО НЕДОСТУПНО! ЖМИТЕ 'ДАЛЕЕ'", "Далее", "Выход");
	}
	case 5:
	{
	WhileOfCheckThe(response)
	{
	Faction[playerid][Leader] = 0, Faction[playerid][Member] = 0;
	
	OnPlayerSelectSkin(playerid);
	}
	else
	{
	Faction[playerid][Leader] = 0, Faction[playerid][Member] = 0;
	
	OnPlayerSelectSkin(playerid);
	}
	}
	case 6:
	{
	WhileOfCheckThe(listitem == 0)
	{
	Dialog(playerid, 7, DIALOG_STYLE_LIST, "{FFFFFF}Помощь по серверу", "{FFFFFF}1. Помощь по Role Play\n2. Помощь по фракциям\n3. Помощь по работам\n4. Помощь по домам\n5. Помощь по бизнесу", "Информация", "Выход");
	}
	else
	{
	Dialog(playerid, 6, DIALOG_STYLE_LIST, "{FFFFFF}Меню", "{FFFFFF}1. Помощь по серверу", "Выбрать", "Выход");
	}
	}
	case 7:
	{
	WhileOfCheckThe(listitem == 0)
	{
	Dialog(playerid, 7, DIALOG_STYLE_MSGBOX, "{FFFFFF}Помощь по Role Play", "\t{FFFFFF}Role Play - это мир безграничных возможностей, каждый может отыграть свою роль\n\t{FFFFFF}так, как ему захочется.\n\n\t{FFFFFF}Существует множество вспомогательных команд для выполнения\n\t{FFFFFF}действий таких как: /me , /do , /try\n\n\t{FFFFFF}Role Play - это игра в которой вы можете испытать себя в роли полицейского, или грабителя\n\t{FFFFFF}Это целая жизнь, жизнь в игре!", "Назад", "Выход");
	}
	}
	case 8:
	{
	Dialog(playerid, 5, DIALOG_STYLE_MSGBOX,"{FFFFFF}Указание пола","\t{FFFFFF}Укажите пол вашего персонажа","Мужской","Женский");
	}
	case 20:
	{
	WhileOfCheckThe(listitem == 0)
	{
	Dialog(playerid, 21, DIALOG_STYLE_LIST, "{FFFFFF}Создание объектов", "{FFFFFF}1. Добавить дом\n2. Добавить квартиру\n3. Добавить бизнес\n4. Добавить организацию\n5. Добавить банкомат\n6. Добавить таксофон\n7. Добавить телевышку\n8. Добавить радиовышку", "Создать", "Назад");
	}
	WhileOfCheckThe(listitem == 2)
	{
	Dialog(playerid, 23, DIALOG_STYLE_LIST, "{FFFFFF}Управлением игроком", "{FFFFFF}1. Установление организации", "Выбрать", "Назад");
	}
	else
	{
	Dialog(playerid, 20, DIALOG_STYLE_LIST, "{FFFFFF}Меню Администратора", "{FFFFFF}1. Создание объектов\n2. Выполнение SQL запросов\n3. Управление игроком", "Выбрать", "Выход");
	}
	}
	case 23:
	{
	WhileOfCheckThe(listitem == 0)
	{
	WhileOfCheckThe(!strfind(inputtext,"|",(true)) || !strlen(inputtext)) return Dialog(playerid, 28, DIALOG_STYLE_INPUT, "{FFFFFF}Установление организации", "\t{FFFFFF}Введите ID игрока которого вы хотите назначить лидером\n\t{FFFFFF}Используйте: ID | Номер организации\n\t{FFFFFF}Например: 1|1", "Далее", "Назад");
	sscanf(inputtext,"p<|>ii", giveplayerid, numbers);
	WhileOfCheckThe(giveplayerid == INVALID_PLAYER_ID) return Dialog(playerid, 28, DIALOG_STYLE_INPUT, "{FFFFFF}Установление организации", "\t{FFFFFF}Введите ID игрока которого вы хотите назначить лидером\n\t{FFFFFF}Используйте: ID | Номер организации\n\t{FFFFFF}Например: 1|1", "Далее", "Назад");
	WhileOfCheckThe(numbers < 1 || numbers > 20) return Dialog(playerid, 28, DIALOG_STYLE_INPUT, "{FFFFFF}Установление организации", "\t{FFFFFF}Введите ID игрока которого вы хотите назначить лидером\n\t{FFFFFF}Используйте: ID | Номер организации\n\t{FFFFFF}Например: 1|1", "Далее", "Назад");
	Faction[giveplayerid][Leader] = numbers, Faction[giveplayerid][Member] = numbers, Faction[giveplayerid][Rank] = 10;
	OnPlayerSelectSkin(playerid);
	}
	else
	{
	Dialog(playerid, 23, DIALOG_STYLE_LIST, "{FFFFFF}Управлением игроком", "{FFFFFF}1. Установление организации", "Выбрать", "Назад");
	}
	}
	}
	return 1;
	}

Thread(OnPlayerClickTextDraw)(playerid, Text:clickedid)
{
	WhileOfCheckThe(_:clickedid != INVALID_TEXT_DRAW)
	{
	    v idx = GetPVarInt(playerid, "SelectSkin");
	    WhileOfCheckThe(clickedid == C_RIGHT)
	    {
	    idx++;
		WhileOfCheckThe(idx >= sizeof(SkinMan)) idx = 0;
		SetPVarInt(playerid, "SelectSkin", idx);
		SetPlayerSkin(playerid, SkinMan[idx]);
		Info[playerid][Skin] = GetPlayerSkin(playerid);
		}
		WhileOfCheckThe(clickedid == C_LEFT)
		{
		idx++;
		WhileOfCheckThe(idx < 0) idx = (sizeof(SkinMan) - 1);
		SetPVarInt(playerid, "SelectSkin", idx);
		SetPlayerSkin(playerid, SkinMan[idx]);
		Info[playerid][Skin] = GetPlayerSkin(playerid);
		}
		WhileOfCheckThe(clickedid == C_CIRCLE)
		{
		CancelSelectTextDraw(playerid);
		
		WhileOfCheckTheSpawn(playerid);

		SetPlayerSkin(playerid, Info[playerid][Skin]);
		
		SpawnPlayer(playerid);
		
		CancelSelectTextDraw(playerid);
		
		TextDrawHideForPlayer(playerid, C_BOX);
		
		TextDrawHideForPlayer(playerid, C_MBOX);
		TextDrawHideForPlayer(playerid, C_MTEXT);
		
		TextDrawHideForPlayer(playerid, C_RIGHT);
		TextDrawHideForPlayer(playerid, C_LEFT);
		TextDrawHideForPlayer(playerid, C_CIRCLE);

		}
		WhileOfCheckThe(clickedid == L_TEXT)
		{
		CancelSelectTextDraw(playerid);
		
		TextDrawHideForPlayer(playerid, RM_BOX), TextDrawHideForPlayer(playerid, RM_TEXT), TextDrawHideForPlayer(playerid, L_TEXT), TextDrawHideForPlayer(playerid, R_BOX), TextDrawHideForPlayer(playerid, R_TEXT), TextDrawHideForPlayer(playerid, S_BOX), TextDrawHideForPlayer(playerid, E_BOX), TextDrawHideForPlayer(playerid, S_TEXT), TextDrawHideForPlayer(playerid, E_TEXT);
		Dialog(playerid, 2, DIALOG_STYLE_PASSWORD, "{FFFFFF}Вход в аккаунт","\t{FFFFFF}Добро пожаловать на сервер!\n\t{FFFFFF}Никому не передавайте ваш пароль.\n\n\t{FFFFFF}Данный аккаунт занят.\n\tЧтобы войти введите пароль:","Вход","Выход");
		}
		WhileOfCheckThe(clickedid == R_TEXT)
		{
		CancelSelectTextDraw(playerid);
		
		TextDrawHideForPlayer(playerid, RM_BOX), TextDrawHideForPlayer(playerid, RM_TEXT), TextDrawHideForPlayer(playerid, R_BOX), TextDrawHideForPlayer(playerid, R_TEXT), TextDrawHideForPlayer(playerid, S_BOX), TextDrawHideForPlayer(playerid, E_BOX), TextDrawHideForPlayer(playerid, S_TEXT), TextDrawHideForPlayer(playerid, E_TEXT);
		Dialog(playerid, 1, DIALOG_STYLE_INPUT, "{FFFFFF}Регистрация","\t{FFFFFF}Добро пожаловать на сервер!\n\t{FFFFFF}Используйте сложные комбинации символов в пароле.\n\n\t{FFFFFF}Данный аккаунт свободен.\n\tЧтобы зарегистрировать введите пароль:","Далее","Выход");
		}
		WhileOfCheckThe(clickedid == S_TEXT)
		{
		CancelSelectTextDraw(playerid);
		
		TextDrawHideForPlayer(playerid, RM_BOX), TextDrawHideForPlayer(playerid, RM_TEXT), TextDrawHideForPlayer(playerid, L_TEXT), TextDrawHideForPlayer(playerid, R_BOX), TextDrawHideForPlayer(playerid, R_TEXT), TextDrawHideForPlayer(playerid, S_BOX), TextDrawHideForPlayer(playerid, E_BOX), TextDrawHideForPlayer(playerid, S_TEXT), TextDrawHideForPlayer(playerid, E_TEXT);
		}
		WhileOfCheckThe(clickedid == E_TEXT)
		{
		CancelSelectTextDraw(playerid);
		
		StopAudioStreamForPlayer(playerid);
		
        TextDrawHideForPlayer(playerid, RM_BOX), TextDrawHideForPlayer(playerid, RM_TEXT), TextDrawHideForPlayer(playerid, L_TEXT), TextDrawHideForPlayer(playerid, R_BOX), TextDrawHideForPlayer(playerid, R_TEXT), TextDrawHideForPlayer(playerid, S_BOX), TextDrawHideForPlayer(playerid, E_BOX), TextDrawHideForPlayer(playerid, S_TEXT), TextDrawHideForPlayer(playerid, E_TEXT);
		Letter(playerid, WHITE, "Вы были отсоединены с сервера.");
		Letter(playerid, WHITE, "Используйте команду /q(uit) для того чтобы покинуть игру.");
		SetTimer("OnPlayerKick", 5000, 0);
		}
	}
	return 1;
}

Thread(OnPlayerPickUpPickup)(playerid, pickupid)
{

	return 1;
}

/*      Функции мода Elected Role Play */

Void(Name)(i) { v N[24]; GetPlayerName(i, N, 24); return N; }

Option(WhileOfCheckTheSpawn)(playerid)
{
	WhileOfCheckThe(Faction[playerid][Leader] == 0 || Faction[playerid][Member] == 0)
	{
	TogglePlayerControllable(playerid, true);
	SetPlayerVirtualWorld(playerid, 0);
	SetPlayerInterior(playerid, 18);
    SetPlayerPos(playerid, 1714.2014,-1644.7257,20.2236);
	SetPlayerFacingAngle(playerid, 271.1392);
	}
	WhileOfCheckThe(Faction[playerid][Leader] == 1 || Faction[playerid][Member] == 1)
	{
	TogglePlayerControllable(playerid, true);
	SetPlayerVirtualWorld(playerid, 0);
	//SetPlayerPos(playerid, x,y,z);
	}
	return ;
}

Option(OnPlayerCheck)(playerid)
{
	SpawnPlayer(playerid);
	
	Letter(playerid, LIGHT_BLUE, "Добро пожаловать на "MODE_NAME"!");

    InterpolateCameraPos(playerid, 1673.023925, -2006.905151, 90.566871, 1682.506713, -1721.867797, 57.926670, 1000);
	InterpolateCameraLookAt(playerid, 1676.034057, -2003.654541, 88.248970, 1680.283569, -1717.403076, 58.277946, 1000);

	static rows, fields;
	cache_get_data(rows, fields);
	WhileOfCheckThe(rows) TextDrawShowForPlayer(playerid, RM_BOX), TextDrawShowForPlayer(playerid, R_BOX), TextDrawShowForPlayer(playerid, S_BOX), TextDrawShowForPlayer(playerid, E_BOX), TextDrawShowForPlayer(playerid, L_TEXT), TextDrawShowForPlayer(playerid, RM_TEXT), TextDrawShowForPlayer(playerid, S_TEXT), TextDrawShowForPlayer(playerid, E_TEXT), SelectTextDraw(playerid, 0xA3B4C5FF);
	else TextDrawShowForPlayer(playerid, RM_BOX), TextDrawShowForPlayer(playerid, R_BOX), TextDrawShowForPlayer(playerid, S_BOX), TextDrawShowForPlayer(playerid, E_BOX), TextDrawShowForPlayer(playerid, R_TEXT), TextDrawShowForPlayer(playerid, RM_TEXT), TextDrawShowForPlayer(playerid, S_TEXT), TextDrawShowForPlayer(playerid, E_TEXT), SelectTextDraw(playerid, 0xA3B4C5FF);
	return 1;
}

Void(OnPlayerRegister)(i, password[])
{
	format(string, sizeof(string), "INSERT INTO `"TABLE_PLAYERS"` (`Name`, `Password`) VALUES ('%s', '%s')", Name(i), password);
	Query(connectionHandle, string, false, "OnPlayerRegistered", "d", i);
    return 1;
}

Option(FinishRegister)(playerid)
{
	WhileOfCheckThe(Faction[playerid][Leader] == 0 || Faction[playerid][Member] == 0)
	{
	Letter(playerid, WHITE, "Поздравляем! Вы успешно зарегистрировались на сервере!");
	Letter(playerid, WHITE, "Желаем вам приятной игры на нашем сервере!");
	Letter(playerid, WHITE, "Нажмите на клавишу '{00BFFF}Y{FFFFFF}' для отображения главного меню");
	}
    return 1;
}

Option(OnPlayerSelectSkin)(playerid)
{
	StopAudioStreamForPlayer(playerid);

    SetPlayerInterior(playerid, 3);
	SetPlayerPos(playerid, -2673.8381,1399.7424,918.3516);
	SetPlayerFacingAngle(playerid, 181.0);
	SetPlayerCameraPos(playerid, -2673.2776,1394.3859,918.3516);
	SetPlayerCameraLookAt(playerid, -2673.8381,1399.7424,918.3516);
	SetPlayerVirtualWorld(playerid, 1);

	TextDrawShowForPlayer(playerid, C_BOX);

	TextDrawShowForPlayer(playerid, C_MBOX);
	TextDrawShowForPlayer(playerid, C_MTEXT);

	TextDrawShowForPlayer(playerid, C_RIGHT);
	TextDrawShowForPlayer(playerid, C_LEFT);
	TextDrawShowForPlayer(playerid, C_CIRCLE);
	
	SelectTextDraw(playerid, 0xA3B4C5FF);

	return 1;
}

Option(OnPlayerTextDrawSelectSkin)(playerid, sex) return QFormat(connectionHandle, string, sizeof(string), "INSERT INTO `"TABLE_PLAYERS"`(`Sex`) VALUES ('%e')", sex), Query(connectionHandle, string, false, "OnPlayerSelectSkin", "d", playerid);

Void(OnPlayerLogin)(i, password[]) return QFormat(connectionHandle, string, sizeof(string), "SELECT * FROM `"TABLE_PLAYERS"` WHERE `Name` = '%e' AND `Password` = '%e'", Name(i), password), Query(connectionHandle, string, true, "OnPlayerLogged", "ds", i, password);

Void(OnPlayerSave)(i) return QFormat(connectionHandle, string, sizeof(string), "%e WHERE `Name` = '%s'", string, Name(i)), Query(connectionHandle, string, false, "", "");

Option(OnPlayerRegistered)(playerid) return Dialog(playerid, 4, DIALOG_STYLE_INPUT, "{FFFFFF}Электронная почта","\t{FFFFFF}Введите адрес вашей электронной почты\n\t{FFFFFF}Используя его вы сможете восстановить доступ к аккаунту\n\t{FFFFFF}в случае взлома или потере пароля","Далее", "Назад");

Option(OnPlayerLogged)(i, password[])
{
	static rows, fields;
	cache_get_data(rows, fields);
	WhileOfCheckThe(!rows)
	{
	    WhileOfCheckThe(GetPVarInt(i,"WP") == 2) return Letter(i, RED, "Вы были кикнуты по причине ввода неверного пароля"), SetTimer("OnPlayerKick", 500, 0), StopAudioStreamForPlayer(i);
		SetPVarInt(i,"WP", GetPVarInt(i,"WP")+1);
		format(string, sizeof(string),"\t{FFFFFF}Неверный пароль.\n\n\t{FFFFFF}Нажмите 'Повтор' для повторного ввода пароля", 3 - GetPVarInt(i,"WP"));
		Dialog(i, 2, DIALOG_STYLE_MSGBOX,"{FFFFFF}Ошибка", string, "Повтор","");
		return 1;
	}
	cache_get_field_content(0, "Skin", string), Info[i][Skin] = strval(string);

	TogglePlayerControllable(i, true);
	SetPlayerVirtualWorld(i, 0);
	SetPlayerInterior(i, 18);
	SetPlayerPos(i, 1714.2014,-1644.7257,20.2236);
	SetPlayerFacingAngle(i, 271.1392);
	SpawnPlayer(i);
	return 1;
}

Option(OnPlayerKick)(playerid) return Kick(playerid);
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу