- Регистрация
- 29 Апр 2012
- Сообщения
- 354
- Лучшие ответы
- 0
- Репутация
- 272
Для того чтобы сделать её Вам понадобидся:
Хотябы немного знаний pawno.
Прямые руки (как же без них).
Мод
Предуприждаю данная информация прнадлежит только мне. (Dmitry_Podtiopa).
Открываем мод:
Ищем:
PHP:
enum pInfo
PHP:
Float:pIpAdmin,
Float:pIpAdmin2,
Float:pIpAdmin3,
Float:pIpAdmin4,
Float:pIpNow,
PHP:
public OnPlayerLogin(playerid,password[])
PHP:
iniGetFloat(File,"pIpAdmin",PlayerInfo[playerid][pIpAdmin]);
iniGetFloat(File,"pIpAdmin2",PlayerInfo[playerid][pIpAdmin2]);
iniGetFloat(File,"pIpAdmin3",PlayerInfo[playerid][pIpAdmin3]);
iniGetFloat(File,"pIpAdmin4",PlayerInfo[playerid][pIpAdmin4]);
iniGetFloat(File,"pIpNow",PlayerInfo[playerid][pIpNow]);
Далле в этом паблике ниже ищим:
PHP:
if(PlayerInfo[playerid][pReg] == 0)
PHP:
new playersip[20];
new sendername[100];
new string[100];
GetPlayerIp(playerid,playersip,sizeof(playersip));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "nick/%s.ini",sendername);
new trata[20];
format(trata, sizeof(trata), "0.0.0.0");
new file = iniOpen(string);
if(file < 0) print("нету файла");
else
{
iniSet(File,"pIpAdmin",trata);
iniSet(File,"pIpAdmin2",trata);
iniSet(File,"pIpAdmin3",trata);
iniSet(File,"pIpAdmin4",trata);
iniClose(File);
}
PHP:
Вы вошли как Администратор
Вместо этого:
PHP:
if(PlayerInfo[playerid][pAdmin] > 0)
{
format(string2, sizeof(string2), "Вы вошли как Администратор");
SendClientMessage(playerid, COLOR_WHITE,string2);
}
Всё это заменяем на:
PHP:
if(PlayerInfo[playerid][pAdmin]>0)
{
if(PlayerInfo[playerid][pIpNow] == PlayerInfo[playerid][pIpAdmin] ||
PlayerInfo[playerid][pIpNow] == PlayerInfo[playerid][pIpAdmin2] ||
PlayerInfo[playerid][pIpNow] == PlayerInfo[playerid][pIpAdmin3] ||
PlayerInfo[playerid][pIpNow] == PlayerInfo[playerid][pIpAdmin4])
{
format(string2, sizeof(string2), "* Вы вошли как Администратор{00aadb} %d{FFFFFF} уровня!",PlayerInfo[playerid][pAdmin]);
SendClientMessage(playerid, COLOR_WHITE,string2);
}
else
{
SendClientMessage(playerid, COLOR_LIGHTRED, "Пошла на*** ***а!");
SendClientMessage(playerid, COLOR_LIGHTRED, "Твой IP отлечается от админского , ****тяй!");
BanEx(playerid, " Ugon akka admina");
PlayerInfo[playerid][pBaned] = 1;
}
}
PHP:
public OnPlayerCommandText(playerid, cmdtext[])
PHP:
if(strcmp(cmd, "/dip1", true) == 0||strcmp(cmd, "/dip1", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] < 2011)
{
SendClientMessage(playerid,COLOR_RED,"* Вы не уполномочены использовать эту команду!");
return 1;
}
new akk[256],ssss[256];
akk = strtok(cmdtext, idx);
if(!strlen(akk))
{
SendClientMessage(playerid,COLOR_GREY,"*Используйте: /dip1 [name_akkaunt][ip]");
return 1;
}
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[256];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_RED, "*Используйте: /dip1 [name_akkaunt][ip] ");
return 1;
}
format(string,sizeof(string),"nick/%s.ini",akk);
if(!fexist(string))
{
SendClientMessage(playerid,COLOR_RED,"* Такого аккаунта не существует!");
return 1;
}
else
{
new File = iniOpen(string);
iniSet(File,"pIpAdmin",(result));
iniClose(File);
format(ssss,sizeof(ssss),"*AdminIP1 : %s",result);
SendClientMessage(playerid,COLOR_LIGHTBLUE,ssss);
}
return 1;
}
Идём дальше.
ко всем forward
Добавляем:
PHP:
forward LoadAdmins(playerid);
PHP:
public LoadAdmins(playerid)
{
new playersip[20];
new sendername[100];
new string[100];
GetPlayerIp(playerid,playersip,sizeof(playersip));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "nick/%s.ini",sendername);
new file = iniOpen(string);
if(file < 0) print("нету файла");
else
{
iniSet(file,"pIpNow",playersip);
iniClose(file);
}
}
PHP:
if(dialogid==1)
PHP:
if(!strcmp((inputtext),pass,true))
{
OnPlayerLogin(playerid,(inputtext));
}
PHP:
if(!strcmp((inputtext),pass,true))
{
LoadAdmins(playerid); // load IP now by Podtiopa
OnPlayerLogin(playerid,(inputtext));
}
Всё. Пользуйтесь на здоровье)
Главное это защита)
Данный материал пренадлежит мне. Dmitry_Podtiopa (*AnonymouS*)
Если динамический ИП нужно вписывать все 3 ипа которые меняються .
P.S(не тестировал но попробуйте: писать подсеть: ip.ip.*.* (пример) 125.47.*.* );
Последнее редактирование: