Перейти к содержанию
Авторизация  
NIKRUS

Система денег

Рекомендуемые сообщения

NIKRUS

Ищу систему денег(MXINI) с сохранением. Если у кого-то завалялась данная система, то скиньте.

Изменено пользователем NikitaTop

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
NIKRUS

Up

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Даниил Антонов


// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT

#include <a_samp>
#include <mxINI>

forward SaveAccounts(playerid);//ко всем форвардам, сохранение акков
new saveacctimer;// ко всем массивам, созздадим таймер для сохранения акков

enum pInfo {
pMoney, // Сохраняет кол-во денег.
Float:pHeal, // Сохраняет кол-во жизней.
};
new PlayerInfo[MAX_PLAYERS][pInfo];// создадим массив со статистикой
new logged[MAX_PLAYERS];// массив залогинности игрока=)

public OnGameModeInit()
{
DisableInteriorEnterExits();
saveacctimer = SetTimer("SaveAccounts", 200000, 1);// делаем таймер для сохранения акков
// Don't use these lines if it's a filterscript
SetGameModeText("orig1");
AddPlayerClass(0,1208.2163,-2036.7668,69.0078,264.9641,0,0,0,0,0,0);

return 1;
}

main()
{
print("\n---------------------------------------");
print("Running Grand Larceny - by the SA-MP team\n");
print("---------------------------------------\n");
}

public SaveAccounts(playerid)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
new PlayerName[MAX_PLAYER_NAME], account[128];
GetPlayerName(i,PlayerName,sizeof(PlayerName));
format(account,sizeof(account), "users/%s.ini", PlayerName);
new iniFile = ini_openFile(account);
ini_setInteger(iniFile, "Money", GetPlayerMoney(i));
GetPlayerHealth(i,PlayerInfo[i][pHeal]);
ini_setFloat(iniFile, "Heal", PlayerInfo[i][pHeal]);
ini_closeFile(iniFile);
SendClientMessage(i, 0xFFFFFFAA, "Аккаунт сохранен");// для теста добавим
}
return 1;
}

public OnGameModeExit()
{
return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
return 1;
}

public OnPlayerConnect(playerid)
{
logged[playerid] = 0;
new PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid,PlayerName,sizeof(PlayerName)); // Получаем имя игрока
new account[128];
format(account,sizeof(account),"users/%s.ini",PlayerName); //Создадим аккаунт
{
if(!fexist(account)) //Если такого аккаунта нет,то...
{
ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT, "Регистрация", "Зарегистрируйся \nПароль ниже:", "Регистр", ""); //Выдаем диалог с регой
}
else
{
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "Авторизация", "Авторизуйся \nПароль ниже:", "Логин", ""); //Если аккаунт существует, то выдаем авторизацию
}
}
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
logged[playerid]=0;
return 1;
}

public OnPlayerSpawn(playerid)
{
logged[playerid] = 1;
SetPlayerColor(playerid, 0xFFFFFFAA);
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(logged[playerid] == 0)
{
SendClientMessage(playerid, 0xAFAFAFAA, "Сервер: Чтобы писать в чат, пожалуйста авторизуйтесь");
return 0;
}
return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/cvet 0", true))
{
SetPlayerColor(playerid, 0x00000000); //Черный
return 1;
}

if(!strcmp(cmdtext, "/cvet 1", true))
{
SetPlayerColor(playerid, 0xFFFFFFAA); //Белый
return 1;
}

if(!strcmp(cmdtext, "/cvet 2", true))
{
SetPlayerColor(playerid, 0x0000BBAA); //Синий
return 1;
}

if(!strcmp(cmdtext, "/cvet 3", true))
{
SetPlayerColor(playerid, 0x33FF33AA); //Зеленый
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[])
{
if(dialogid == 1) //Регистрация
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Регистрация", "Ну зарегистрируйся ты уже! \nПароль ниже:", "Ок", "");
if(response)
{
new PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid,PlayerName,sizeof(PlayerName)); //Узнаем имя игрока
new account[128];
format(account,sizeof(account),"users/%s.ini",PlayerName);//проверяем.
Есть ли этот акк в папке users
if(fexist(account)) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "Авторизация", "Авторизуйся! \n Пароль ниже:", "Логин", ""); //авторизуем его, если есть акк
new iniFile = ini_createFile(account); //создаем акк
if(iniFile < 0) ini_openFile (account); //если файл пустой, то
{
ini_setString(iniFile,"Пароль",inputtext); //Пароль
ini_setInteger(iniFile, "Money", 5000); // Создаем файл аккаунта с кол-вом денег 5000
ini_setFloat(iniFile, "Heal", 100.0); // Создаем файл аккаунта с кол-вом Здоровья
ini_closeFile(iniFile); //закроем файл
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "Авторизация", "Авторизуйся:", "Логин", "");
}
}
else //Если этот вася захочет обойти регу и нажмет на Esc, то даем ему опять диалог
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Регистрация", "Регистрируйся, червь:", "Ок", "");
}
}
if(dialogid == 2)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "Авторизация", "Авторизуйся! \nПароль ниже:", "Логин", "");
if(response)
{
new PlayerName[MAX_PLAYER_NAME], password[64];
GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
new account[128];
format(account,sizeof(account),"users/%s.ini",PlayerName);
if(IsPlayerNPC(playerid))return 1;
new iniFile = ini_openFile(account);
ini_getString(iniFile, "Пароль",password); // Узнаём пароль аккаунта.
if(!strcmp(inputtext, password, true))
{
ini_getInteger(iniFile, "Money", PlayerInfo[playerid][pMoney]); // Записываем данные в переменную
ini_getFloat(iniFile, "Heal", PlayerInfo[playerid][pHeal]);
SetPlayerHealth(playerid, PlayerInfo[playerid][pHeal]);
GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
ini_closeFile(iniFile);
SpawnPlayer(playerid);
return 1;
}
else
{
SendClientMessage(playerid, 0xAA3333AA, "Сервер: Пароль неверный");
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Авторизация", "Авторизуйся ты наконец:", "Ок", "");
return 1;
}
}
else //Клавиша Esc
{
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Авторизация", "Авторизовывайся,рачок:", "Ок", ""); // выдаем диалог, если нажмет на кнопку Esc
}
}
return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Даниил Антонов

Забыл: В SaveAccounts()

 PlayerInfo[playerid][pMoney] = GetPlayerMoney(playerid);

Там где загрузка данных идет вот такую строку:

        ResetPlayerMoney(playerid);
        GivePlayerMoney(PlayerInfo[playerid][pMoney]);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
NIKRUS
@Даниил Антонов, Зачем тут регистрация? Все сделано. Нужны только деньги и все.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
GoodGamerPro

, Вырежи оттуда систему эту, и сделай под себя, что сложного? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Даниил Антонов

, прошу извините. Скопировал весь мод :)  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.