PDA

Просмотр полной версии : [Вопрос] Как сделать сохранение админ-пароля, который игрок ввёл в диалоговое окно?



Dimon_Fanat
14.11.2014, 19:59
Сделал команду /aduty для администрации.
Когда выдаю админку игроку иесли у него доступ в админ центр 0 ему для начала предлогается придумать пароль для того чтобы в следующий раз при вводе /aduty ему уже надо было вводить этот пароль который он сам себе придумал но он не сохроняется я пробовал не получалось кто может помочь в pawn я не спец так что прошу вашей помощи.


if(strcmp(cmd, "/aduty", true) == 0)
{
if(Player[playerid][pAdmin] == 0) return NoRights;
if(Player[playerid][pAdutydostup] == 0) return ShowPlayerDialog(playerid,DIALOG_ADUTYPASS,DIALOG_STYLE_INPUT,"{33CCFF}Администраторские права","{FFE4B5}Придумайте себе пароль для дольнейшего использования /aduty.","Ввести","Закрыть");
if(aDuty[playerid] == false)
{
ShowPlayerDialog(playerid,DIALOG_ADUTY,DIALOG_STYLE_PASSWORD,"{33CCFF}Администраторские права","{FFE4B5}Введи свой пароль для получения администраторских прав.","Ввести","Закрыть");
return true;
}
else
{
new arank[64];
switch(Player[playerid][pAdmin])
{
case 1: arank = "Помощник";
case 2: arank = "Ст.Помощник";
case 3: arank = "Мл.Администратор";
case 4: arank = "Администратор";
case 5: arank = "Ст.Администратор";
case 6: arank = "Администратор фракций";
case 7: arank = "Администратор банов";
case 8: arank = "Администратои ивентов";
case 9: arank = "Зам.Гл.Алминистратора";
case 10: arank = "Гл.Администратор";
case 11: arank = "Гл.Администратор";
}
format(string, sizeof(string), "%s %s[%d] завершил(а) дежурство.",arank, RPN(playerid),playerid);
SendAdminMessage(COLOR_YELLOW,string,1);
aDuty[playerid] = false;
AdutyPas[playerid] = 0;
}
return true;
}


else if(dialogid == DIALOG_ADUTY)
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_ADUTY,DIALOG_STYLE_PASSWORD,"{33CCFF}Администраторские права","{FFE4B5}Введи свой пароль для получения администраторских прав.","Ввести","Закрыть");
Adutydostup[playerid] = strval(inputtext);
if(Adutydostup[playerid] == Player[playerid][pAdutydostup])
{
new arank[50];
switch(Player[playerid][pAdmin])
{
case 1: arank = "Помощник";
case 2: arank = "Ст.Помощник";
case 3: arank = "Мл.Администратор";
case 4: arank = "Администратор";
case 5: arank = "Ст.Администратор";
case 6: arank = "Администратор фракций";
case 7: arank = "Администратор банов";
case 8: arank = "Администратор ивентов";
case 9: arank = "Зам.Гл.Администратора";
case 10: arank = "Гл.Администратор";
case 11: arank = "Гл.Администратор";
}
format(string,sizeof(string), "%s %s[%d] заступил(а) на дежурство.",arank,RPN(playerid),playerid);
ABroadCast(COLOR_YELLOW,string,1);
format(string,sizeof(string), "%s %s[%d] заступил(а) на дежурство.",arank,RPN(playerid),playerid);
SendClientMessage(playerid,COLOR_YELLOW, string);
//AdminLogin[playerid] = 1;
aDuty[playerid] = true;
}
else
{
AdutyPas[playerid]++;
format(string, sizeof(string), "[ОШИБКА] {FFFFFF}Неверный пароль от ''/aduty''. Осталось попыток {FF0000}%d{FFFFFF}.", 3-AdutyPas[playerid]);
SendClientMessage(playerid,COLOR_RED,string);
if(AdutyPas[playerid] >= 3)
{
new playername[32];
GetPlayerName(playerid, playername, sizeof(playername));
format(string, sizeof(string), "Античит: %s[%d] был(а) кикнут(а). Причина: Не верный пароль от ''/aduty''.", playername,playerid);
ABroadCast(COLOR_YELLOW,string,1);
SendClientMessage(playerid,COLOR_YELLOW,"Ты был(а) кикнут(а) античитом. Причина: Не верный пароль от ''/aduty''.");
Kick(playerid);
}}
return 1;}}


else if(dialogid == DIALOG_ADUTYPASS)
{
if(response)
{
if(!strlen(inputtext))return ShowPlayerDialog(playerid,DIALOG_ADUTYPASS,DIALOG_STYLE_INPUT,"{33CCFF}Администраторские права","{FFE4B5}Придумай себе пароль для дальнейшего использования /aduty.","Ввести","Закрыть");

//Вот тут я не знаю что прописать так как раньше я делал сохронение в папку а теперь надо в masql
SaveAccount(playerid);
}}

gangzone.ini
14.11.2014, 20:02
SaveAccount stock нужен

Dimon_Fanat
14.11.2014, 20:05
stock SaveAccount(playerid)
{
if(Player[playerid][pLogged] == true)
{
CheckMySQLConnection();
new str[1500];
new sqlname[MAX_PLAYER_NAME];
mysql_real_escape_string(Player[playerid][pName], sqlname);
format(str, sizeof(str), "UPDATE `Accounts` SET `Nickname`= '%s',`Level`= '%i', `Admin`= '%i', `Reg`= '%i', `Sex`= '%i', `Spawn`= '%i', `Exp`= '%i', `BankPass`= '%i', `Money` = '%i', `Bank` = '%i', `MuteTime` = '%i', `Job`= '%i',",
sqlname,
Player[playerid][pLevel],
Player[playerid][pAdmin],
Player[playerid][pReg],
Player[playerid][pSex],
Player[playerid][pSpawn],
Player[playerid][pExp],
Player[playerid][pBankPass],
Player[playerid][pMoney],
Player[playerid][pBank],
Player[playerid][pMuteTime],
Player[playerid][pJob]);
format(str, sizeof(str), "%s `PayCheck` = '%i',`Jailed` = '%i',`JailTime`= '%i',`MedicTime` = '%i',`Mats` = '%i',`Drugs`= '%i',`JobTime`= '%i',`Member` = '%i',`Leader` = '%i',`Zam` = '%i',`Rank` = '%i',`Model` = '%i',`Char` = '%i',`Phousekey` = '%i',`Carkey1` = '%i',",
str,
Player[playerid][pPayCheck],
Player[playerid][pJailed],
Player[playerid][pJailTime],
Player[playerid][pMedicTime],
Player[playerid][pMats],
Player[playerid][pDrugs],
Player[playerid][pJobTime],
Player[playerid][pMember],
Player[playerid][pLeader],
Player[playerid][pZam],
Player[playerid][pRank],
Player[playerid][pModel],
Player[playerid][pChar],
Player[playerid][pPhousekey],
Player[playerid][pCarkey1]);
format(str, sizeof(str), "%s `Carkey2` = '%i',`Pbiskey` = '%i',`TWarns` = '%i',`CarLic` = '%i',`MotoLic` = '%i',`TruckLic` = '%i',`TruckELic` = '%i',`FlyLic` = '%i',`BoatLic` = '%i',`SD` = '%i',",
str,
Player[playerid][pCarkey2],
Player[playerid][pPbiskey],
Player[playerid][pTWarns],
Player[playerid][pCarLic],
Player[playerid][pMotoLic],
Player[playerid][pTruckLic],
Player[playerid][pTruckELic],
Player[playerid][pFlyLic],
Player[playerid][pBoatLic],
Player[playerid][pSD]);
format(str, sizeof(str), "%s `GunLic` = '%i',`TaxiLic`= '%i',`GruzSkill` = '%i',`DrugSkill` = '%i',`GunSkill` = '%i',`CarSkill` = '%i',`JackSkill` = '%i',`RobSkill` = '%i',`RobHouseSkill` = '%i',`TimePizdanul` = '%i',`RobHouseTime` = '%i',`MechSkill` = '%i',`TruckSkill` = '%i',`DetSkill` = '%i',`HeadValue` = '%i',`HunterValue` = '%i',`TruckTime` = '%i',`TruckETime` = '%i',",
str,
Player[playerid][pGunLic],
Player[playerid][pTaxiLic],
Player[playerid][pGruzSkill],
Player[playerid][pDrugSkill],
Player[playerid][pGunSkill],
Player[playerid][pCarSkill],
Player[playerid][pJackSkill],
Player[playerid][pRobSkill],
Player[playerid][pRobHouseSkill],
Player[playerid][pTimePizdanul],
Player[playerid][pRobHouseTime],
Player[playerid][pMechSkill],
Player[playerid][pTruckSkill],
Player[playerid][pDetSkill],
Player[playerid][pHeadValue],
Player[playerid][pHunterValue],
Player[playerid][pTruckTime],
Player[playerid][pTruckETime]);
format(str, sizeof(str), "%s `PayDay` = '%i',`Warns`= '%i',`Boxing` = '%i',`Kunfu` = '%i',`Kneehead` = '%i',`Grabkick` = '%i',`FStyle` = '%i',`Rope` = '%i',`CheatPassword` = '%i',`GPS` = '%i',`Sigs` = '%i',`Pivo` = '%i',`Wanted` = '%i',`RobTime` = '%i',`JackTime` = '%i',`Vipe` = '%i',`AdminOnline` = '%i',`Vip` = '%i', `MissionKeis` = '%i', `Donate` = '%i', `Adutydostup` = '%i' WHERE `ID` = '%i'",
str,
Player[playerid][pPayDay],
Player[playerid][pWarns],
Player[playerid][pBoxing],
Player[playerid][pKunfu],
Player[playerid][pKneehead],
Player[playerid][pGrabkick],
Player[playerid][pFStyle],
Player[playerid][pRope],
Player[playerid][pCheatPassword],
Player[playerid][pGPS],
Player[playerid][pSigs],
Player[playerid][pPivo],
Player[playerid][pWanted],
Player[playerid][pRobTime],
Player[playerid][pJackTime],
Player[playerid][pVipe],
Player[playerid][pAdminOnline],
Player[playerid][pVip],
Player[playerid][pMissionKeis],
Player[playerid][pDonate],
Player[playerid][pAdutydostup],
Player[playerid][pID]);
mysql_query(str);
}
return 1;
}

gangzone.ini
14.11.2014, 23:16
Что-то я не наблидаю структуры AdutyPass, создай её) И вместо SaveAccount(playerid);, сделай сохранение пароля...

Dimon_Fanat
15.11.2014, 10:04
Что-то я не наблидаю структуры AdutyPass, создай её) И вместо SaveAccount(playerid);, сделай сохранение пароля...

Можешь раскозать что да как я с этими сохранениями не очень дружу...

gangzone.ini
15.11.2014, 13:25
Если начали сами делать, думаете за Вас будут делать ? :smile:
Посмотрите код, и все поймете :smile:

DeimoS
15.11.2014, 18:50
Радует фраза "Я новичок в Pawn, поэтому прошу вашей помощи". В школе/универе/на работе вы тоже подходите к преподавателю/работодателю и говорите "Ну я новичок, поэтому сделай всё за меня"? Пока сам не пройдёшь через серию попыток и неудач, опыта ты не наберёшься и навеки останешься "новичком". Знания сами по себе не придут
P.S. Автору устное предупреждение. Изучи правила форума. Следующая тема, нарушающая правила данного форума, будет нещадно удаляться