Бан на время
Dimka_71rus Дата: Суббота, 08.10.2011, 14:30:33 | Сообщение # 1
Группа: Пользователи
Сообщений: 360
Напишите пож как сделать бан по нику на время ,ток не кидайте скрипт т к они не работают или работают на 0.3a или скиньте проверенный
Лучшие моды,скрипты,карты - вы найдёте на сайте samp-pawno.ru Самые чёткие ответы на ваши вопросы и помощь по скритингу вы найдёте на сайте forum-pawno.ru
Сообщение отредактировал Dimka_71rus - Суббота, 08.10.2011, 14:30:56
Сообщение Напишите пож как сделать бан по нику на время ,ток не кидайте скрипт т к они не работают или работают на 0.3a или скиньте проверенный Автор - Dimka_71rus Дата добавления - 08.10.2011 в 14:30:33
[east_side]_trane Дата: Воскресенье, 09.10.2011, 09:57:49 | Сообщение # 2
Группа: Пользователи
Сообщений: 443
Quote
Бан на время с использованием unix времени
Создай папку в scriptfiles с названием banlist Скачай инклуды отсюда: include Время перевода с Unix на нормальное настроенно на московское В начало мода вставляем если нету : Code
#include <MxINI> #include <mxdate> #define DIALOGUNBAN 162 // id диалога для высвечивания даты
В конец мода : Code
stock GetBan(playerid) { new PlayerNick[MAX_PLAYER_NAME],string[255]; GetPlayerName(playerid, PlayerNick, MAX_PLAYER_NAME); format(string, sizeof(string), "banlist/%s.ini", PlayerNick); if(fexist(string)) { new OpenBan = ini_openFile(string); new bantime, unbantime, PlayerBan[MAX_PLAYER_NAME], reason[128]; ini_getInteger(OpenBan, "BanTime", bantime); ini_getInteger(OpenBan, "UnBanTime", unbantime); ini_getString(OpenBan, "PlayerBan", PlayerBan); ini_getString(OpenBan, "Reason", reason); ini_closeFile(OpenBan); if(gettime() >= unbantime) return UnBan(PlayerNick); else { format(string, sizeof(string), "\ Дата бана: %s\n\ Дата Разбана: %s\n\ Забанил: %s\n\ Причина бана: %s\n\ ", date("%dd.%mm.%yyyy в %hh:%ii:%ss",bantime), date("%dd.%mm.%yyyy в %hh:%ii:%ss",unbantime), PlayerBan,reason); ShowPlayerDialog(playerid,DIALOGUNBAN,0,"Вы забанены",string,"Выйти",""); return Kick(playerid); } } else return true; } stock UnBan(playerid[]) { new string[64]; format(string, sizeof(string), "banlist/%s.ini", playerid); return fremove(string); } stock AddBan(player, playerid[], giveplayerid[], type = 1, chislo = 0, reason[]) { new totalban = 0; switch(type) { case 1: totalban = 60*chislo; // минуты case 2: totalban = 3600*chislo; // часы case 3: totalban = 86400*chislo; // сутки default: totalban = chislo; // секунды } new string[64]; format(string, sizeof(string), "banlist/%s.ini", playerid); new OpenBan = ini_createFile(string); if(OpenBan < 0) ini_openFile(string); ini_setInteger(OpenBan, "BanTime", gettime()); ini_setInteger(OpenBan, "UnBanTime", gettime()+totalban); ini_setString(OpenBan, "PlayerBan", giveplayerid); ini_setString(OpenBan, "Reason", reason); ini_closeFile(OpenBan); // Закрываем файл. ShowPlayerDialog(player,DIALOGUNBAN,0,"Вы забанены","{FF0000}Вы забанены","Выйти",""); return Kick(player); }
В OnPlayerConnect : Команду бана и разбана переделай под себя ( думаю справишься): Code
if(strcmp(cmd, "/ban", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]"); giveplayerid = strval(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]"); new type = strval(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]"); new chislo = strval(tmp); if(PlayerInfo[playerid][pAdmin] >= 4) { if(giveplayerid != INVALID_PLAYER_ID) { 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, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]"); new PlayerNick[MAX_PLAYER_NAME], PlayerBan[MAX_PLAYER_NAME]; GetPlayerName(playerid, PlayerNick, MAX_PLAYER_NAME); GetPlayerName(giveplayerid, PlayerBan, MAX_PLAYER_NAME); AddBan(giveplayerid, PlayerBan, PlayerNick, type, chislo, result); return true; }//not connected } return true; } if(strcmp(cmd,"/unban",true)==0) { if(PlayerInfo[playerid][pAdmin] >= 8) { tmp = strtok(cmdtext,idx); if(!strlen(tmp)) return SendClientMessage(playerid,COLOR_GRAD1,"/unban [players nick]"); UnBan(tmp); } return true; }
Не проверял, но должно работать ИМХО
Pawn скриптер Мои услуги по оптимизации
Сообщение отредактировал [east_side]_trane - Воскресенье, 09.10.2011, 09:58:53
Сообщение Quote
Бан на время с использованием unix времени
Создай папку в scriptfiles с названием banlist Скачай инклуды отсюда: include Время перевода с Unix на нормальное настроенно на московское В начало мода вставляем если нету : Code
#include <MxINI> #include <mxdate> #define DIALOGUNBAN 162 // id диалога для высвечивания даты
В конец мода : Code
stock GetBan(playerid) { new PlayerNick[MAX_PLAYER_NAME],string[255]; GetPlayerName(playerid, PlayerNick, MAX_PLAYER_NAME); format(string, sizeof(string), "banlist/%s.ini", PlayerNick); if(fexist(string)) { new OpenBan = ini_openFile(string); new bantime, unbantime, PlayerBan[MAX_PLAYER_NAME], reason[128]; ini_getInteger(OpenBan, "BanTime", bantime); ini_getInteger(OpenBan, "UnBanTime", unbantime); ini_getString(OpenBan, "PlayerBan", PlayerBan); ini_getString(OpenBan, "Reason", reason); ini_closeFile(OpenBan); if(gettime() >= unbantime) return UnBan(PlayerNick); else { format(string, sizeof(string), "\ Дата бана: %s\n\ Дата Разбана: %s\n\ Забанил: %s\n\ Причина бана: %s\n\ ", date("%dd.%mm.%yyyy в %hh:%ii:%ss",bantime), date("%dd.%mm.%yyyy в %hh:%ii:%ss",unbantime), PlayerBan,reason); ShowPlayerDialog(playerid,DIALOGUNBAN,0,"Вы забанены",string,"Выйти",""); return Kick(playerid); } } else return true; } stock UnBan(playerid[]) { new string[64]; format(string, sizeof(string), "banlist/%s.ini", playerid); return fremove(string); } stock AddBan(player, playerid[], giveplayerid[], type = 1, chislo = 0, reason[]) { new totalban = 0; switch(type) { case 1: totalban = 60*chislo; // минуты case 2: totalban = 3600*chislo; // часы case 3: totalban = 86400*chislo; // сутки default: totalban = chislo; // секунды } new string[64]; format(string, sizeof(string), "banlist/%s.ini", playerid); new OpenBan = ini_createFile(string); if(OpenBan < 0) ini_openFile(string); ini_setInteger(OpenBan, "BanTime", gettime()); ini_setInteger(OpenBan, "UnBanTime", gettime()+totalban); ini_setString(OpenBan, "PlayerBan", giveplayerid); ini_setString(OpenBan, "Reason", reason); ini_closeFile(OpenBan); // Закрываем файл. ShowPlayerDialog(player,DIALOGUNBAN,0,"Вы забанены","{FF0000}Вы забанены","Выйти",""); return Kick(player); }
В OnPlayerConnect : Команду бана и разбана переделай под себя ( думаю справишься): Code
if(strcmp(cmd, "/ban", true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]"); giveplayerid = strval(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]"); new type = strval(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]"); new chislo = strval(tmp); if(PlayerInfo[playerid][pAdmin] >= 4) { if(giveplayerid != INVALID_PLAYER_ID) { 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, 0xFFFFFFFF, "USAGE: /ban [playerid] [type:(1-минуты)(2-часы)(3-дни)(другое секунды)] [число] [причина]"); new PlayerNick[MAX_PLAYER_NAME], PlayerBan[MAX_PLAYER_NAME]; GetPlayerName(playerid, PlayerNick, MAX_PLAYER_NAME); GetPlayerName(giveplayerid, PlayerBan, MAX_PLAYER_NAME); AddBan(giveplayerid, PlayerBan, PlayerNick, type, chislo, result); return true; }//not connected } return true; } if(strcmp(cmd,"/unban",true)==0) { if(PlayerInfo[playerid][pAdmin] >= 8) { tmp = strtok(cmdtext,idx); if(!strlen(tmp)) return SendClientMessage(playerid,COLOR_GRAD1,"/unban [players nick]"); UnBan(tmp); } return true; }
Не проверял, но должно работать ИМХО Автор - [east_side]_trane Дата добавления - 09.10.2011 в 09:57:49
Dimka_71rus Дата: Воскресенье, 09.10.2011, 10:15:36 | Сообщение # 3
Группа: Пользователи
Сообщений: 360
[east_side]_trane , Code
D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\pawno\include\MxINI.inc(698) : error 021: symbol already defined: "ini_getInteger" D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\pawno\include\MxINI.inc(865) : error 021: symbol already defined: "ini_getFloat" D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\pawno\include\MxINI.inc(1040) : error 021: symbol already defined: "ini_setString" D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\pawno\include\MxINI.inc(1326) : error 021: symbol already defined: "ini_setInteger" D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\pawno\include\MxINI.inc(1624) : error 021: symbol already defined: "ini_setFloat" D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\pawno\include\MxINI.inc(1919) : error 021: symbol already defined: "ini_removeKey" D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\pawno\include\MxINI.inc(2118) : error 021: symbol already defined: "ini_getErrorInfo" D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\gamemodes\GalaxY.pwn(792) : warning 219: local variable "giveplayerid" shadows a variable at a preceding level D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\gamemodes\GalaxY.pwn(964) : warning 213: tag mismatch D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\gamemodes\GalaxY.pwn(35936) : error 017: undefined symbol "PHP" D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\gamemodes\GalaxY.pwn(35936) : error 029: invalid expression, assumed zero D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\gamemodes\GalaxY.pwn(35936) : error 029: invalid expression, assumed zero D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\gamemodes\GalaxY.pwn(35936) : fatal error 107: too many error messages on one line
Всё не надо я исправил
Лучшие моды,скрипты,карты - вы найдёте на сайте samp-pawno.ru Самые чёткие ответы на ваши вопросы и помощь по скритингу вы найдёте на сайте forum-pawno.ru
Сообщение отредактировал Dimka_71rus - Воскресенье, 09.10.2011, 10:22:07
Сообщение [east_side]_trane , Code
D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\pawno\include\MxINI.inc(698) : error 021: symbol already defined: "ini_getInteger" D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\pawno\include\MxINI.inc(865) : error 021: symbol already defined: "ini_getFloat" D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\pawno\include\MxINI.inc(1040) : error 021: symbol already defined: "ini_setString" D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\pawno\include\MxINI.inc(1326) : error 021: symbol already defined: "ini_setInteger" D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\pawno\include\MxINI.inc(1624) : error 021: symbol already defined: "ini_setFloat" D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\pawno\include\MxINI.inc(1919) : error 021: symbol already defined: "ini_removeKey" D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\pawno\include\MxINI.inc(2118) : error 021: symbol already defined: "ini_getErrorInfo" D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\gamemodes\GalaxY.pwn(792) : warning 219: local variable "giveplayerid" shadows a variable at a preceding level D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\gamemodes\GalaxY.pwn(964) : warning 213: tag mismatch D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\gamemodes\GalaxY.pwn(35936) : error 017: undefined symbol "PHP" D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\gamemodes\GalaxY.pwn(35936) : error 029: invalid expression, assumed zero D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\gamemodes\GalaxY.pwn(35936) : error 029: invalid expression, assumed zero D:\Всё для компьютера\Сервер\дополнительно\GalaxY мод разархивированный\gamemodes\GalaxY.pwn(35936) : fatal error 107: too many error messages on one line
Всё не надо я исправил Автор - Dimka_71rus Дата добавления - 09.10.2011 в 10:15:36
[east_side]_trane Дата: Воскресенье, 09.10.2011, 11:20:38 | Сообщение # 4
Группа: Пользователи
Сообщений: 443
Проверишь отпишись... хочу знать работает ли
Pawn скриптер Мои услуги по оптимизации
Сообщение Проверишь отпишись... хочу знать работает ли Автор - [east_side]_trane Дата добавления - 09.10.2011 в 11:20:38
Dimka_71rus Дата: Воскресенье, 09.10.2011, 13:21:14 | Сообщение # 5
Группа: Пользователи
Сообщений: 360
[east_side]_trane , все работает все оки доки спс тебе
Лучшие моды,скрипты,карты - вы найдёте на сайте samp-pawno.ru Самые чёткие ответы на ваши вопросы и помощь по скритингу вы найдёте на сайте forum-pawno.ru
Сообщение [east_side]_trane , все работает все оки доки спс тебе Автор - Dimka_71rus Дата добавления - 09.10.2011 в 13:21:14
[east_side]_trane Дата: Воскресенье, 09.10.2011, 13:48:09 | Сообщение # 6
Группа: Пользователи
Сообщений: 443
Просто спс не принимается)) Я рад что работает...
Pawn скриптер Мои услуги по оптимизации
Сообщение отредактировал [east_side]_trane - Воскресенье, 09.10.2011, 13:48:27
Сообщение Просто спс не принимается)) Я рад что работает... Автор - [east_side]_trane Дата добавления - 09.10.2011 в 13:48:09
Dimka_71rus Дата: Четверг, 10.11.2011, 22:25:07 | Сообщение # 7
Группа: Пользователи
Сообщений: 360
[east_side]_trane , а можно сделать чтоб в чате писалось когда банишь типа так как и в кике По примеру: Name Был забанен администратором Dimka_71rus Причина: чит вот по примеру как тут в кике
if(strcmp(cmd, "/kick", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, " Используйте: /kick [playerid/PartOfName] [причина]"); return 1; } giveplayerid = ReturnUser(tmp); if (PlayerInfo[playerid][pAdmin] >= 1) { if(IsPlayerConnected(giveplayerid)) { if(PlayerInfo[playerid][pAdmin] < PlayerInfo[giveplayerid][pAdmin]) { SendClientMessage(playerid,COLOR_GREY,"Нельзя забанить(кикнуть) Администратора(ов) старше вас!"); return 1; } if(giveplayerid != INVALID_PLAYER_ID) { GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); new arank[64]; if(PlayerInfo[playerid][pAdmin] == 6) { arank = "Гл. Администратором"; } else if(PlayerInfo[playerid][pAdmin] == 5) { arank = "Администратором"; } else if(PlayerInfo[playerid][pAdmin] == 4) { arank = "Главный Модератором"; } else if(PlayerInfo[playerid][pAdmin] == 3) { arank = "Модератором"; } else if(PlayerInfo[playerid][pAdmin] == 2) { arank = "Модератором"; } else if(PlayerInfo[playerid][pAdmin] == 1) { arank = "Модератором"; } else { arank = "Модератор"; } 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)) { SendClientMessage(playerid, COLOR_GRAD2, " Используйте: /kick [playerid/PartOfName] [причина]"); return 1; } new year, month,day; getdate(year, month, day); format(string, sizeof(string), "GalaxY: %s Был(а) кикнут(а) %s %s, Причина: %s", giveplayer,arank,sendername, (result)); SendClientMessageToAll(COLOR_LIGHTRED, string); KickLog(string); Kick(giveplayerid); return 1; } } } else { format(string, sizeof(string), " %d Не активный игрок.", giveplayerid); SendClientMessage(playerid, COLOR_GRAD1, string); } } return 1; }
и как убрать чтоб когда банишь и разбаниваешь в чат не писалась вот ета шняга banlist/%s.ini С меня + и награда
Лучшие моды,скрипты,карты - вы найдёте на сайте samp-pawno.ru Самые чёткие ответы на ваши вопросы и помощь по скритингу вы найдёте на сайте forum-pawno.ru
Сообщение [east_side]_trane , а можно сделать чтоб в чате писалось когда банишь типа так как и в кике По примеру: Name Был забанен администратором Dimka_71rus Причина: чит вот по примеру как тут в кике
if(strcmp(cmd, "/kick", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD2, " Используйте: /kick [playerid/PartOfName] [причина]"); return 1; } giveplayerid = ReturnUser(tmp); if (PlayerInfo[playerid][pAdmin] >= 1) { if(IsPlayerConnected(giveplayerid)) { if(PlayerInfo[playerid][pAdmin] < PlayerInfo[giveplayerid][pAdmin]) { SendClientMessage(playerid,COLOR_GREY,"Нельзя забанить(кикнуть) Администратора(ов) старше вас!"); return 1; } if(giveplayerid != INVALID_PLAYER_ID) { GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); new arank[64]; if(PlayerInfo[playerid][pAdmin] == 6) { arank = "Гл. Администратором"; } else if(PlayerInfo[playerid][pAdmin] == 5) { arank = "Администратором"; } else if(PlayerInfo[playerid][pAdmin] == 4) { arank = "Главный Модератором"; } else if(PlayerInfo[playerid][pAdmin] == 3) { arank = "Модератором"; } else if(PlayerInfo[playerid][pAdmin] == 2) { arank = "Модератором"; } else if(PlayerInfo[playerid][pAdmin] == 1) { arank = "Модератором"; } else { arank = "Модератор"; } 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)) { SendClientMessage(playerid, COLOR_GRAD2, " Используйте: /kick [playerid/PartOfName] [причина]"); return 1; } new year, month,day; getdate(year, month, day); format(string, sizeof(string), "GalaxY: %s Был(а) кикнут(а) %s %s, Причина: %s", giveplayer,arank,sendername, (result)); SendClientMessageToAll(COLOR_LIGHTRED, string); KickLog(string); Kick(giveplayerid); return 1; } } } else { format(string, sizeof(string), " %d Не активный игрок.", giveplayerid); SendClientMessage(playerid, COLOR_GRAD1, string); } } return 1; }
и как убрать чтоб когда банишь и разбаниваешь в чат не писалась вот ета шняга banlist/%s.ini С меня + и награда Автор - Dimka_71rus Дата добавления - 10.11.2011 в 22:25:07
ZAVASKAS Дата: Пятница, 29.06.2012, 12:54:56 | Сообщение # 8
Группа: Пользователи
Сообщений: 1
и как убрать чтоб когда банишь и разбаниваешь в чат не писалась вот ета шняга banlist/%s.ini
Сообщение и как убрать чтоб когда банишь и разбаниваешь в чат не писалась вот ета шняга banlist/%s.ini Автор - ZAVASKAS Дата добавления - 29.06.2012 в 12:54:56
Загрузка страницы, займет меньше минуты...
Статистика Форума
Последнии темы
Читаемые темы
Лучшие пользователи
Новые пользователи