iThomas | Дата: Четверг, 18.10.2012, 18:23 | Сообщение # 1 |
 Пользователь
| Так... Это надеюсь будет единственное, что я буду вырезать из своего мода UCW...
Тем не менее, думаю может кому пригодится...
Начнём с красивой табличке при входе на сервер, если имеется бан....
Ищем: if(PlayerInfo[playerid][pLocked] == 1)
Заменяем всё входящее на это:
Code if(PlayerInfo[playerid][pLocked] == 1) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); new year, month,day; getdate(year, month, day); new coordsstring[2000]; new msg[] = "\t\t\t"NameServer"\n\n\n» Ник аккаунта:\t\t\t\t\t%s\n» Ваш аккаунт заблокирован!\n» Если вы считаете, что это ошибка - можете подать жалобу\n» Сейчас: %d/%d/%d\n\n\n\t\t\t"NameSite""; format(coordsstring, 2000, msg, name, day, month, year); SPD(playerid,10004,DIALOG_STYLE_MSGBOX,"Информация",coordsstring,"Ок",""); Kick(playerid); }
Далее. Делаем красивый бан.
Ищем "/ban", заменяем на это:
Code else if(strcmp(cmd, "/ban", true) == 0) { if(PlayerInfo[playerid][pAdmin] >= 1) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "{DDA0DD} >> Введите{FFFFFF}: /ban [id] [причина]"); giveplayerid = ReturnUser(tmp); if (PlayerInfo[playerid][pAdmin] >= 2) { if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { if(PlayerInfo[giveplayerid][pAdmin] > 0) return SendClientMessage(playerid, COLOR_GRAD2, "Администратор не может быть забанен!"); new ip[15]; GetPlayerIp(giveplayerid,ip,15); GetPlayerName(playerid, sendername, sizeof(sendername)); GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); new year1, month1, day1, hour1, minute1, second1; getdate(year1, month1, day1); gettime(hour1, minute1, second1); GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "{DDA0DD} >> Введите{FFFFFF}: /ban [id] [причина]"); new year, month,day; new hour, minute, second; getdate(year, month, day); gettime(hour, minute, second); PlayerInfo[giveplayerid][pLocked] = 1; format(string, sizeof(string), "Администратор: %s забанил %s. Причина: %s ",sendername, giveplayer, (result)); SendClientMessageToAll(COLOR_LIGHTRED,string); new name[MAX_PLAYER_NAME]; GetPlayerName(giveplayerid, name, sizeof(name)); new name1[MAX_PLAYERS]; GetPlayerName(playerid, name1, sizeof(name1)); new coordsstring[2000]; new msg[] = "\t\t\t"NameServer"\n\n\n»Ник администратора: \t\t\t\t\t%s\n» Ник аккаунта:\t\t\t\t\t%s\nПричина блокировки: %s\n» Ваш аккаунт заблокирован!\n» Если вы считаете, что это ошибка - можете подать жалобу на администратора\n» Сейчас: %d/%d/%d\n\n\n\t\t\t{ff0099}"NameSite""; format(coordsstring, 2000, msg, name1, name, (result), day, month, year); SPD(giveplayerid,10004,DIALOG_STYLE_MSGBOX,"Информация",coordsstring,"Ок",""); GetPlayerIp(giveplayerid,ip,sizeof(ip)); format(string, sizeof(string), "accounts/%s.ini",giveplayer); new file = ini_openFile(string); if(file < 0) print("нету файла"); else { ini_getString(file,"pIp",string); ini_getString(file,"pIpReg",string); printf("найдено же - %s , началось чтение файла с этим именем",string); ini_closeFile(file); format(string, sizeof(string), "- Ник: [%s] | IP: [%s] | R: [IP: %s] | L: [IP: %s]",giveplayer,ip,string,string); ABroadCast(COLOR_LIGHTRED,string,1); PlayerInfo[giveplayerid][pLocked] = 1; Kick(giveplayerid); } return true; } }//not connected } else { SendClientMessage(playerid, COLOR_GREY, "{DB7093} [Ошибка]: {D3D3D3} Игрок не найден!"); } } return true; }
Если есть трудности - Пиши.
Бесплатно подставить человека на Samp-Rp Обучаю ремеслу вирусов, взломов. Писать в скайп: tidniwe.
|
|
| |