Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //------ [ Инклуды ]
- #include <a_samp>
- #include <mxINI>
- //------ [ Макросы ]
- #define pNick(%1) pInfo[%1][pName]
- #define IsPlayerAuthorized(%0) player_authorized{%0}
- #define SetPlayerAuthorized(%0,%1) player_authorized{%0} = %1
- //------ [ Enum's ]
- enum e_PLAYER_INFO
- {
- pName[MAX_PLAYER_NAME],
- pMoney
- };
- new pInfo[MAX_PLAYERS][e_PLAYER_INFO];
- new const NULL_pInfo[e_PLAYER_INFO];
- enum e_DIALOG_ID
- {
- dRegister,
- dLogin
- };
- //------ [ Переменные ]
- new player_authorized[MAX_PLAYERS char];
- new const account_direction[] = "users/%s.ini";
- //------ [ Forward's ]
- //...
- //------ [ Прочее ]
- main()
- {
- print("\n----------------------------------");
- print(" Мод запущен ");
- print("----------------------------------\n");
- }
- //==============================================================================
- //============================== [ Паблики ] ===================================
- //==============================================================================
- public OnGameModeInit()
- {
- SetGameModeText("ModeName");
- AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- AddPlayerClass(1, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- AddPlayerClass(2, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- return 1;
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- GetPlayerName(playerid, pNick(playerid), MAX_PLAYER_NAME);
- new account_string[37];
- format(account_string, sizeof(account_string), account_direction, pNick(playerid));
- if(!fexist(account_string))
- {
- ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация", "Данный аккаунт не зарегистрирован на нашем сервере. Для регистрации введите пароль:", "Далее", "Выход");
- }
- else
- {
- ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "Данный аккаунт зарегистрирован на нашем сервере. Для авторизации введите пароль:", "Далее", "Выход");
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid)
- {
- SavePlayer(playerid);
- //Тут остальной код
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- if(!IsPlayerAuthorized(playerid))
- {
- new account[10+MAX_PLAYER_NAME-4+1];
- format(account, sizeof(account), account_direction, pNick(playerid));
- if(!fexist(account))
- {
- ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация", "Данный аккаунт не зарегистрирован на нашем сервере. Для регистрации введите пароль:", "Далее", "Выход");
- }
- else
- {
- ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "Данный аккаунт зарегистрирован на нашем сервере. Для авторизации введите пароль:", "Далее", "Выход");
- }
- }
- //Тут остальной код
- SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- if(!IsPlayerAuthorized(playerid))
- {
- SendClientMessage(playerid, 0xFF0000FF, "Вы не авторизированы!");
- return 0;
- }
- //Тут остальной код
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if(!IsPlayerAuthorized(playerid)) return SendClientMessage(playerid,0xFF0000FF,"Вы не авторизированы!");
- if (strcmp("/mycommand", cmdtext, true, 10) == 0)
- {
- // Do something here
- return 1;
- }
- return 0;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case dRegister:
- {
- if(!response)
- return Kick(playerid);
- if(!strlen(inputtext))
- return ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "{FF0000}Ошибка", "Вы не ввели пароль. Без пароля регистрация невозможна!\nВведите ваш пароль:", "Далее", "Выход");
- new account[10+MAX_PLAYER_NAME-4+1];
- format(account, sizeof(account), account_direction, pNick(playerid));
- if(fexist(account))
- ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "Данный аккаунт зарегистрирован на нашем сервере. Для авторизации введите пароль:", "Далее", "Выход");
- else
- CreateAccount(playerid, inputtext);
- return 1;
- }
- case dLogin:
- {
- if(!response)
- return Kick(playerid);
- if(!strlen(inputtext))
- return ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "{FF0000}Ошибка", "Для игры на сервере Вы должны авторизироваться!\nВведите ваш пароль:", "Далее", "Выход");
- new account[10+MAX_PLAYER_NAME-4+1];
- format(account, sizeof(account), account_direction, pNick(playerid));
- if(!fexist(account))
- return ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация", "Данный аккаунт не зарегистрирован на нашем сервере. Для регистрации введите пароль:", "Далее", "Выход");
- new password[64];
- new iniFile = ini_openFile(account);
- ini_getString(iniFile, "Пароль",password);
- ini_closeFile(iniFile);
- if(!strcmp(inputtext, password, false))
- OnPlayerLogin(playerid);
- else
- ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "{FF0000}Ошибка", "Вы ввели неверный пароль! Повторите попытку\nВведите ваш пароль:", "Далее", "Выход");
- return 1;
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- //==============================================================================
- //============================== [ Stock's ] ===================================
- //==============================================================================
- stock CreateAccount(playerid, password[])
- {
- new account[10+MAX_PLAYER_NAME-4+1];
- format(account, sizeof(account), account_direction, pNick(playerid));
- if(fexist(account))
- return ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "Данный аккаунт зарегистрирован. Введите пароль:", "Далее", "Выход");
- new iniFile = ini_createFile(account);
- if(iniFile < 0) ini_openFile (account);
- {
- ini_setString(iniFile,"Пароль",password);//О "ini_setString" и "ini_setInteger" написано в теме, которая описывает инклуд mxINI (выше ссылка)
- ini_setInteger(iniFile, "Деньги", 10000);
- ini_closeFile(iniFile);
- OnPlayerLogin(playerid);
- }
- return 1;
- }
- stock OnPlayerLogin(playerid)
- {
- new account[10+MAX_PLAYER_NAME-4+1];
- format(account, sizeof(account), account_direction, pNick(playerid));
- new iniFile = ini_openFile(account);
- ini_getInteger(iniFile,"Деньги", pInfo[playerid][pMoney]);
- ini_closeFile(iniFile);
- ResetPlayerMoney(playerid);
- GivePlayerMoney(playerid, pInfo[playerid][pMoney]);
- SetPlayerAuthorized(playerid, true);
- return 1;
- }
- stock SavePlayer(playerid)
- {
- new account[10+MAX_PLAYER_NAME-4+1];
- format(account, sizeof(account), account_direction, pNick(playerid));
- new iniFile = ini_openFile(account);
- ini_setInteger(iniFile, "Деньги", GetPlayerMoney(playerid));
- ini_closeFile(iniFile);
- pInfo[playerid] = NULL_pInfo;
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement