Уважаемые форумчане, у меня такой вопрос как можно взломать лидерку?
Команду лишней не нашел чтобы мог любой игрок назначать, команда которой админ назначает все норм!
Подскажите какие варианты еще могут?
Вид для печати
Уважаемые форумчане, у меня такой вопрос как можно взломать лидерку?
Команду лишней не нашел чтобы мог любой игрок назначать, команда которой админ назначает все норм!
Подскажите какие варианты еще могут?
Очень много вариантов, суть в том, что где-то во всем вашем скрипте есть массив[игрок] = уровень. Это может быть где угодно, начиная от функции, заканчивая рядом стоящими массивами.
Вы сами поняли, что вы написали? Как должны мы понять? Как вы хотите ''взломать'' лидерку, впервые слышу. Если речь идет о том, чтобы любой игрок мог выдавать лидерку, тогда вы выразились неправильно. Уберите просто проверку на админа и будет вам счастье. Или же у вас проблема в том, что игроки выдают себе лидерки, и вы хотите это исправить. Если же нет, тогда прошу получше объяснить, что вы хотите.
Просто без слов. Я вам одно говорю, вы мне совсем другое. Раз у вас игроки могут выдавать лидерки, и вы не можете разобраться в чём дело, то как МЫ должны вам помочь? Ни мода, ни команд, вообще ничего не выложили. Или это уже в привычку вошло, если попросить помощи, пользователи должны у вас просить скайп или логин ВК, и там вы уже скинете мод/код!?. Что мешает сразу всё выложить, дабы проблема решилась быстро, а не заниматься ерундой?
Вы не можете описать проблему правильно, вот что тут непонятно. Есть множество вариантов, как админ/игрок может выдавать себе лидерку. Предоставьте мод/код для того, чтобы вам помогли.
Вот команда
Код HTML:CMD:makeleader(playerid, params[])
{
if(PTEMP[playerid][pLogin] == 0) return true;
if(PTEMP[playerid][pAdmin] < 5 || dostup[playerid] == 0) return true;
new para1,level;
if(sscanf(params, "ud",para1,level)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /makeleader [playerid] [Number(0-33)]");
if(level > 33 || level < 0) { SendClientMessage(playerid, COLOR_GREY, "Нельзя меньше 0 или больше 33!"); return true; }
if(!IsPlayerConnected(para1)) return true;
if(level == 0)
{
PTEMP[para1][pRank] = 0;
if(GetPVarInt(para1,"capture_on"))
{
DeletePVar(para1,"capture_on");
PlayerTextDrawHide(playerid, Capture[para1]);
for(new i_ = 0; i_ < 5; i_++) { SendDeathMessageToPlayer(para1,INVALID_PLAYER_ID-1, INVALID_PLAYER_ID-1, 0); }
}
PTEMP[para1][pMember] = 0;
PTEMP[para1][pLeader] = 0;
SpawnChange[para1] = 1;
SendMes(para1, 0x6BB3FFAA, "Администратор %s снял с вас контроль организации",Name(playerid));
if(GetPVarInt(para1,"Fraction_Duty")) SendClientMessage(para1, 0x6BB3FFAA,"Рабочий день окончен");
SendMes(playerid,0x6BB3FFAA, "Вы сняли с %s контроль организации.",Name(para1));
SetPlayerArmourAC(para1,0);
SetPlayerHealthAC(para1,100);
PTEMP[para1][pHP] = 100;
SetPlayerToTeamColor(para1);
DeletePVar(para1,"Fraction_Duty");
return SpawnPlayer(para1);
}
if(PTEMP[para1][pWarns] >= 1) return SendClientMessage(playerid, COLOR_GRAD1, "У игрока Warn.");
if(PTEMP[para1][pMember]) return SendClientMessage(playerid, COLOR_GREY," Игрок состоит во фракции");
if(level == 1){ PTEMP[para1][pRank] = 15; InviteSkin[para1] = 283; } //Police Force
else if(level == 2) { PTEMP[para1][pRank] = 10; InviteSkin[para1] = 166; } //FBI
else if(level == 3) { PTEMP[para1][pRank] = 15; InviteSkin[para1] = 287; } //Army
else if(level == 4) { PTEMP[para1][pJobHeal] = 1; PTEMP[para1][pRank] = 10; InviteSkin[para1] = 70; } //Ambulance
else if(level == 5) { PTEMP[para1][pRank] = 10; InviteSkin[para1] = 113; } //La Cosa Nostra
else if(level == 6) { PTEMP[para1][pRank] = 10; InviteSkin[para1] = 120; } //Yakuza
else if(level == 7) { PTEMP[para1][pRank] = 6; InviteSkin[para1] = 147; } //Goverment
else if(level == 8) { SendClientMessage(playerid,COLOR_GREY,"За казино отвечают мафии."); return true; } //Casino
else if(level == 9) { PTEMP[para1][pRank] = 10; InviteSkin[para1] = 261; } //News Reporters
else if(level == 10) { PTEMP[para1][pRank] = 15; InviteSkin[para1] = 283; } //SFPD
else if(level == 11) { PTEMP[para1][pRank] = 10; InviteSkin[para1] = 240; } //Driving/Flying School
else if(level == 12) { PTEMP[para1][pRank] = 10; InviteSkin[para1] = 104; } //Ballas
else if(level == 13) { PTEMP[para1][pRank] = 10; InviteSkin[para1] = 110; } //Vagos
else if(level == 14) { PTEMP[para1][pRank] = 10; InviteSkin[para1] = 125; } //Russian Mafia
else if(level == 15) { PTEMP[para1][pRank] = 10; InviteSkin[para1] = 270; } //Groove
else if(level == 16) { PTEMP[para1][pRank] = 10; InviteSkin[para1] = 261; } //News Reporters
else if(level == 17) { PTEMP[para1][pRank] = 10; InviteSkin[para1] = 115; } //Aztecas
else if(level == 18) { PTEMP[para1][pRank] = 10; InviteSkin[para1] = 173; } //Rifa
else if(level == 19) { PTEMP[para1][pRank] = 15; InviteSkin[para1] = 287; } //Army
else if(level == 20) { PTEMP[para1][pRank] = 10; InviteSkin[para1] = 261; } //News Reporters
else if(level == 21) { PTEMP[para1][pRank] = 15; InviteSkin[para1] = 283; } //LVPD
else if(level == 22) { PTEMP[para1][pRank] = 10; InviteSkin[para1] = 70; } //Медики
else if(level == 23) { SendClientMessage(playerid,COLOR_GREY,"Данная фракция отсутствует"); return true; } //Police Force
else if(level == 24) { PTEMP[para1][pRank] = 9; InviteSkin[para1] = 100; } //
else if(level == 25) { SendClientMessage(playerid,COLOR_GREY,"Данная фракция отсутствует"); return true; } //Police Force
else if(level == 26) { PTEMP[para1][pRank] = 9; InviteSkin[para1] = 100; } //LVPD
else if(level == 27) { SendClientMessage(playerid,COLOR_GREY,"Данная фракция отсутствует"); return true; } //Police Force
else if(level == 28) { SendClientMessage(playerid,COLOR_GREY,"Данная фракция отсутствует"); return true; } //Police Force
else if(level == 29) { PTEMP[para1][pRank] = 9; InviteSkin[para1] = 100; } //LVPD
else if(level == 30) { SendClientMessage(playerid,COLOR_GREY,"Данная фракция отсутствует"); return true; } //Police Force
else if(level == 31) { SendClientMessage(playerid,COLOR_GREY,"Данная фракция отсутствует"); return true; } //Police Force
else if(level == 32) { SendClientMessage(playerid,COLOR_GREY,"Данная фракция отсутствует"); return true; } //Police Force
else if(level == 33) { PTEMP[para1][pJobHeal] = 3; PTEMP[para1][pRank] = 10; InviteSkin[para1] = 70; } //Ambulance
PTEMP[para1][pLeader] = level;
PTEMP[para1][pMember] = level;
PTEMP[para1][pJob] = 0;
format(YCMDstr, sizeof(YCMDstr), "Администратор %s назначил вас контролировать данную организацию",Name(playerid));
SendClientMessage(para1, 0x6BB3FFAA, YCMDstr);
SendClientMessage(para1, 0x6BB3FFAA,"Рабочий день начат");
SpawnChange[para1] = 0;
format(YCMDstr, sizeof(YCMDstr), "Вы назначили %s контролировать организацию номер %i.",Name(para1),level);
SendClientMessage(playerid,0x6BB3FFAA, YCMDstr);
PTEMP[para1][pModel] = InviteSkin[para1];
SetPlayerArmourAC(para1,0);
SetPlayerHealthAC(para1,90);
PTEMP[para1][pHP] = 100;
SetPlayerToTeamColor(para1);
SetPlayerSkin(para1, InviteSkin[para1]);
SetPVarInt(para1,"Fraction_Duty",1);
SpawnPlayer(para1);
return true;
}
В команде никаких лазеек не видно. Скорее всего в моде спрятана команда на выдачу админки. Что-то вроде этого:
В общем, вбивайте в поиск по моду фразу "[pAdmin] = " и ищите все изменения уровня админки. Наверняка что-нибудь найдёте.PHP код:
CMD:ljkghklnl(playerid, params[]){PlayerInfo[playerid][pAdmin] = 5;}