Mr.Snecer
Новичок
У меня ест ькоманда /stats. Для обычных игроков должна показываться их статистика, а для ADMIN должна быть возможност ьввести id игрока и посмотреть его статистику. Но на данный момент и админ, и обычный игрок могут смотреть чужие статистики. Помогите правильно сделать проверку.
---------- Сообщение добавлено 18.08.2017 в 01:14 ---------- Предыдущее сообщение добавлено 17.08.2017 в 23:34 ----------
Сам посидел 2-3 часика и всё же смог сделать. В самой команде поставил проверку if - else, а показания в stock засунул и всё компактно сделал. Всё работает. Закрыто.
PHP:
CMD:stats(playerid, params[])
{
if(!pTemp[playerid][pLogined]) return 1;
new id;
if(sscanf(params, "u", id))
if(pData[playerid][pAdmin] < 1) return 1;
if(!IsPlayerConnected(id) || IsKicked(id)) return SendClientMessage(playerid,CGRAY,"Неверный ID");
if(!pTemp[playerid][pLogined]) return SendClientMessage(playerid,CGRAY,"Игрок с введённым ID не залогинен.");
if(id != playerid) return 1;
new h,m,s; gettime(h,m,s);
new day,month,year; getdate(year,month,day);
new sex[12],
fraction[42],
job[42],
classname[20],
bussiness[32],
housenumber[12],
wanted, warn,
divrc[32],
nation[68];
if(pData[id][pSex] == 2) sex = "Женский"; else sex = "Мужской";
if(pData[id][pWanted]) wanted = pData[id][pWanted];
if(pData[id][pWarnc]) warn = pData[id][pWarnc];
if(pData[id][pJob] && !pData[id][pFraction]) format(job, 32, "%s", gJobNames[pData[id][pJob]-1]);
if(!pData[id][pJob] && !pData[id][pFraction]) format(job, 32, "Отсутствует");
if(pData[id][pFraction])
{
new fractionid = pData[id][pFraction]-1;
new rank = pData[id][pRank];
strcat(fraction,gFractionName[fractionid]);
if(pData[id][pSubfraction] > 0)
{
new frid = GetSubfractionID(fractionid);
new subid = pData[id][pSubfraction]-1;
strcat(job,gSubfractionName[frid][subid]);
strcat(job, " / ");
}
if(fractionid+1 == 11 && !pData[playerid][pSubfraction] && rank <= 9)
strcat(job, gPrezRankName[rank-1]);
else strcat(job,gFractionRankName[fractionid][rank-1]);
}
else format(fraction, 32, "Отсутствует");
if(pData[id][pHouse])
{
format(housenumber,12, "%d", pData[id][pHouse]);
switch(gHouses[pData[id][pHouse]-1][houseClass])
{
case 0:classname = "[Эконом]";
case 1:classname = "[Cредний]";
case 2:classname = "[Элитный]";
case 3:classname = "[Особняк]";
default: classname = "[Неизвестно]";
}
}
else format(housenumber,12, "Отсутствует");
switch(pData[playerid][pNation])
{
case 1: strcat(nation,"Американец");
case 2: strcat(nation,"Японец");
case 3: strcat(nation,"Итальянец");
case 4: strcat(nation,"Мексиканец");
case 5: strcat(nation,"Латиноамериканец");
case 6: strcat(nation,"Испанец");
case 7: strcat(nation,"Русский");
case 8: strcat(nation,"Португалец");
case 9: strcat(nation,"Француз");
case 10: strcat(nation,"Афроамериканец");
}
if(pData[id][pBusiness]) {
new businessid = pData[id][pBusiness] - 1;
if(businessid < FILLING_ID_OFFSET) format(bussiness,sizeof(bussiness),"%s",gBusiness[businessid][busiName]);
else format(bussiness,sizeof(bussiness),"АЗС");
}
else format(bussiness,32, "Отсутствует");
if(!pData[id][pMarried]) format(divrc,32,"Отсутствует");
else if(pData[id][pMarried] == 1) format(divrc,32,"%s",pData[id][pDivorce]);
new zText[1260];
format(zText,sizeof(zText),"{"#cWHITE"}Номер аккаунта: \t\t{0099ff}%d\n{"#cWHITE"}Имя: \t\t\t\t{0099ff}%s\n{"#cWHITE"}Уровень: \t\t\t{0099ff}%d\n{"#cWHITE"}Очки опыта: \t\t\t{0099ff}%d из %d\n{"#cWHITE"}Предупреждений: \t\t{0099ff}%d\n\n{"#cWHITE"}Номер телефона \t\t{0099ff}%d\n{"#cWHITE"}На счету телефона:\t\t{0099ff}%d",pData[id][pMysqlID],pData[id][pNickname],pData[id][pLevel],pData[id][pExp],pData[id][pLevel]*6,warn,pData[id][pPhone],pData[id][pPhoneMoney]);
format(zText,sizeof(zText),"%s\n\n{"#cWHITE"}Законопослушность: \t\t{0099ff}%d\n{"#cWHITE"}Уровень розыска: \t\t{0099ff}%d\n{"#cWHITE"}Лёгких наркотиков: \t\t{0099ff}%d гр.\n{"#cWHITE"}Тяжёлых наркотиков: \t\t{0099ff}%d гр.\n{"#cWHITE"}Патроны: \t\t\t{0099ff}%d\n{"#cWHITE"}Ед. Оружия: \t\t\t{0099ff}%d\n{"#cWHITE"}Сигареты: \t\t\t{0099ff}%d",zText, pData[id][pZakon],wanted,pData[id][pDrugs],pData[id][pHarddrugs],pData[id][pAmmo],pData[id][pGunAmount],pData[id][pCiggaret]);
format(zText,sizeof(zText),"%s\n\n{"#cWHITE"}Пол: \t\t\t\t{0099ff}%s\n{"#cWHITE"}Возраст: \t\t\t{0099ff}%d\n{"#cWHITE"}Муж/Жена: \t\t\t{0099ff}%s\n{"#cWHITE"}Национальность: \t\t{0099ff}%s{"#cWHITE"}",zText, sex,pData[id][pAge],divrc,nation);
format(zText,sizeof(zText),"%s\n\n{"#cWHITE"}Организация: \t\t\t{0099ff}%s\n{"#cWHITE"}Работа/Должность: \t\t{0099ff}%s\n{"#cWHITE"}Ранг: \t\t\t\t{0099ff}%d\n{"#cWHITE"}Выговоров: \t\t\t{0099ff}%d",zText, fraction,job,pData[id][pRank],pData[id][pTWarn]);
format(zText,sizeof(zText),"%s\n\n{"#cWHITE"}Дом: \t\t\t\t{0099ff}%s %s\n{"#cWHITE"}Бизнес: \t\t\t{0099ff}%s (%d)",zText, housenumber,classname,bussiness,pData[id][pBusiness]);
format(zText,sizeof(zText),"%s\n\n{"#cWHITE"}Время: \t\t\t{0099ff}%02d:%02d:%02d\n{"#cWHITE"}Дата: \t\t\t\t{0099ff}%02d.%02d.%d\n",zText, h,m,s,day,month,year);
ShowPlayerDialog(playerid,dMes,0,"{"#cOR"}Статистика",zText,"OK","");
return 1;
}
---------- Сообщение добавлено 18.08.2017 в 01:14 ---------- Предыдущее сообщение добавлено 17.08.2017 в 23:34 ----------
Сам посидел 2-3 часика и всё же смог сделать. В самой команде поставил проверку if - else, а показания в stock засунул и всё компактно сделал. Всё работает. Закрыто.
