#include <a_samp>
#define MAX_PLAYERS 50
#define INVALID_PLAYER_ID (-1)
// Простые данные игрока (в реальном проекте — БД)
new PlayerRegistered[MAX_PLAYERS]; // 0 = не зарегистрирован, 1 = зарегистрирован
new PlayerBalance[MAX_PLAYERS]; // Баланс в игровой валюте
new PlayerSpawned[MAX_PLAYERS]; // 0 = ещё не заспавнился на RP-точке
public OnGameModeInit()
{
print("\n----------------------------------");
print("RP Mode loaded: базовая RP-логика");
print("----------------------------------\n");
SetGameModeText("RP_MODE");
UsePlayerPedAssets(0);
// Инициализация массивов
for (new i = 0; i < MAX_PLAYERS; i++)
{
PlayerRegistered[i] = 0;
PlayerBalance[i] = 100; // Стартовый баланс
PlayerSpawned[i] = 0;
}
return 1;
}
public OnPlayerConnect(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
SendClientMessage(playerid, 0xFFFFFFAA, "Добро пожаловать на RP-сервер!");
SendClientMessage(playerid, 0xFFFFFFAA, "Если вы здесь впервые, используйте /register <пароль>");
SendClientMessage(playerid, 0xFFFFFFAA, "После регистрации: /login <пароль> и затем /spawn");
PlayerSpawned[playerid] = 0; // При каждом входе сбрасываем флаг спавна
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/register", true) == 0)
{
// В реальном сервере тут будет проверка длины, символов и запись в БД
new params[256];
if (sscanf(cmdtext, "s[255]", params))
{
SendClientMessage(playerid, 0xFF0000AA, "Использование: /register <пароль>");
return 1;
}
if (PlayerRegistered[playerid])
{
SendClientMessage(playerid, 0xFF0000AA, "Вы уже зарегистрированы.");
return 1;
}
// Сохраняем «пароль» в глобальном массиве (только для примера!)
// В реальности: INSERT INTO players (name, password_hash) VALUES (...)
PlayerRegistered[playerid] = 1;
SendClientMessage(playerid, 0x00FF00AA, "Аккаунт успешно зарегистрирован! Теперь используйте /login <ваш пароль>.");
return 1;
}
if (strcmp(cmdtext, "/login", true) == 0)
{
new params[256];
if (sscanf(cmdtext, "s[255]", params))
{
SendClientMessage(playerid, 0xFF0000AA, "Использование: /login <пароль>");
return 1;