PDA

Просмотр полной версии : [Вопрос] Помогите исправить, целый день сижу...



Mike_Tree
16.04.2017, 20:29
/*============================================*/
/*..................Инклуды...................*/
#include <a_samp>
#include <dc_cmd>
#include <mxINI>
#include <sscanf2>
/*============================================*/

/*============================================*/
/*..................Дефайны...................*/
#define DSL DIALOG_STYLE_LIST
#define DSI DIALOG_STYLE_INPUT
#define DSM DIALOG_STYLE_MSGBOX
#define DSP DIALOG_STYLE_PASSWORD
/*============================================*/
enum pInfo
{
pMoney,
Float:pHeal,
pAdmin,
}
forward SaveAccounts();

new Player [MAX_PLAYERS] [pInfo];
new logged [MAX_PLAYERS];
new bool:gPlayerAccount [MAX_PLAYERS];
new saveacctimer; // таймер для сохранения акков

main()
{
print("\n=====================================");
print(" Мод: Gold Role Play - Запущен!");
print(" Разработка мода началась 13.04.2017");
print("=====================================\n");
}

/*============================================*/
/*..................Паблики...................*/
public OnFilterScriptExit()
{
return 1;
}

public OnGameModeInit()
{
SetGameModeText("Gold RP v0.1");
DisableInteriorEnterExits(); //отключает жёлтые стрелочки
EnableStuntBonusForAll(0); // отключает бонусы за трюки
saveacctimer = SetTimer("SaveAccounts", 5000,1);// Таймкр сохранения акков
AddPlayerClass(0,1766.8654,-1895.6343,13.5629,271.3498,0,0,0,0,0,0);
return 1;
}

public OnGameModeExit()
{
KillTimer(saveacctimer);
SaveAccounts();
return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1477.9594,-1675.2646,-5.5426);
SetPlayerCameraPos(playerid, 1376.9772,-1535.4904,129.4320);
SetPlayerCameraLookAt(playerid, 1480.2061,-1678.2762,41.8443);
return 1;
}

public OnPlayerConnect(playerid)
{
SendClientMessage(playerid,0xFFFF00,"Добро пожаловать на сервер Garex Role Play!");
new PlayerName [MAX_PLAYER_NAME], account[128];
GetPlayerName(playerid, PlayerName, sizeof(PlayerName)); // Узнаём ник игрока
format(account,sizeof(account), "users/%s.ini",PlayerName); // создание аккаунта
if(!fexist(account)) //Если аккаунта нет, то...
{
gPlayerAccount[playerid] = false;
ShowPlayerDialog(playerid, 2, DSI, "Регистрация", "Добро пожаловать на сервер Gold Role Play!\nДанного аккаунта не существует,\nпройдите простую регистрацию!\nПридумайте пароль:");
}
else //аккаунт есть
{
gPlayerAccount[playerid] = true
ShowPlayerDialog(playerid, 3, DSI, "Авторизация", "Добро пожаловать на сервер Gold Role Play\nДанный аккаунт зарегестрирован\nВведите пароль:");
}
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
return 1;
}

public OnPlayerSpawn(playerid)
{
return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}

public OnVehicleSpawn(vehicleid)
{
return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}

public OnPlayerText(playerid, text[])
{
return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
return 1;
}
CMD:tp(playerid)
{
if(Player[playerid][pAdmin] > 0)
{
ShowPlayerDialog(playerid, 1, DSL, "Список телепортов","");
}
else
{return 1;}
}


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 == 2)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DSI, "Регистрация", "Добро пожаловать на сервер Gold Role Play!\nДанного аккаунта не существует,\nпройдите простую регистрацию!\nПридумайте пароль:");
if(response)
{
new PlayerName[MAX_PLAYER_NAME];new account[128];
GetPlayerName(palyerid,PlayerName, sizeof(PlayerName)); // Узнаём ник игрока
format(account,sizeof(account), "users/%s.ini",PlayerName); // ищем акк
if (fexist(account)) return ShowPlayerDialog(playerid, 3, DSI, "Авторизация", "Добро пожаловать на сервер Gold Role Play!\nДанный аккаунт зарегестрирован!\nВведите пароль:");
new iniFile = ini_createFile(account); // создаём акк
if(iniFile < 0) ini_openFile (account); // если файл пустой, то...
{
ini_setString(iniFile,"Пароль",inputtext); // сохраняем пароль
ini_setInteger(iniFile,",Money", 100); // кол-во денег
ini_setFloat(iniFile,"Heal", 100.0); // кол-во хп
ini_setInteger(iniFile,"Admin", 0); // лвл админки
ini_closeFile(inifile);
SetPVarInt(playerid,"Logged", 0); // переменная авторизации
SpawnPlayer(playerid);
}
}
}
if(dialogid == 3)
{
if(!strlen(inputtext)) return Kick(playerid);
if(response) // проверка на кнопку "ОК" и Enter
{
new PlayerName[MAX_PLAYER_NAME], password[64];new account[128];
GetPlayeName(palyerid,PlayerName, sizeof(PlayerName)); // Узнаём ник игрока
format(account,sizeof(account), "users/%s.ini",PlayerName); // ищем акк
if (IsPlayerName(playerid))return 1;
new iniFile = ini_openFile(account);
ini_getString(iniFile, "Пароль",password); // узнаём пароль
if(!strcmp(inputtext, password, true))
{
ini_getInteger(iniFile,",Money",Player[playerid][pMoney]); // кол-во денег
ini_getFloat(iniFile,"Heal",Player[playerid][pHeal]); // кол-во хп
ini_getInteger(iniFile,"Admin",Player[playerid][pAdmin]); // лвл админки
ini_closeFile(inifile);
SetPlayerHealth(playerid, Player[playerid][pHeal]);
logged[playerid] = 1;
SpawnPlayer(playerid);
GivePlayerMoney(playerid, Player[playerid][pMoney])
SendClientMessage(playerid, 0x33CCFFAA, "[/mm] - Меню сервера");
return 1;
}
else
{
SendClientMessage(playerid, 0xFFFF00AA, "Server: Неверный пароль!");
"Авторизация", "Добро пожаловать на сервер Gold Role Play!\nДанный аккаунт зарегестрирован!\nВведите пароль:");
return 1;
}
else
{
Kick(playreid);
}

}
return 1;
}

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

public SaveAccounts()
{
for(new f; f <GetMaxPlayers(); f++)
{
if(!IsPlayerConnected(f))continue;
SaveAccount
}
}
/*============================================*/

stock SaveAccount(playerid)
{
new PlayerName[MAX_PLAYER_NAME], account[128];
GetPlayrName(playerid,PlayerName,sizeof(PlayerName));
format(account,sizeof(account), "users/%s.ini", PlayerName);
new iniFile = ini_openFile(account);
ini_setInteger(iniFile, "Money",GetPlayerMoney(playeid));
ini_seyFloat(iniFile, "Heal", Player[playerid][pHeal]);
ini_setInterger(iniFile, "Admin", Player[playerid][pAdmin]);
ini_closeFile(iniFile);
GetPlayerHealth(playerid, Player[playerid][pHeal]);
return 1;
}

Guldan
16.04.2017, 23:29
Смешно