myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
16 страниц V  « < 11 12 13 14 15 > »   
Ответить в данную темуНачать новую тему

> От: Экзекутор (ekzekutor), От темы с ID: 1403

Теги
Нет тегов для показа
Naum_Off
сообщение 16.5.2010, 22:55
Сообщение #241


Начинающий
*

Группа: Пользователи
Сообщений: 25
Регистрация: 1.10.2009
Из: Самара
Пользователь №: 4 611
Спасибо сказали: 0 раз




Мощный бот. Спасибо автору.
Пожалуй не хватает разве что плагина анкет юзеров. Phazeus, не затруднит добавить?
Go to the top of the page
+Quote Post
Phazeus
сообщение 18.5.2010, 2:38
Сообщение #242


Продвинутый участник
****

Группа: Пользователи
Сообщений: 179
Регистрация: 24.2.2009
Из: Самара
Пользователь №: 2 340
Спасибо сказали: 103 раза




Цитата(Naum_Off @ 16.5.2010, 23:55) *
Мощный бот. Спасибо автору.
Пожалуй не хватает разве что плагина анкет юзеров. Phazeus, не затруднит добавить?

А что это такое? Как Вы это представляете и для чего? Просто база, где можно найти интересующих людей по нику/имени или другим данным и всё такое?
Go to the top of the page
+Quote Post
(Steep)_(Boss)
сообщение 18.5.2010, 10:13
Сообщение #243


МеСтНый ФлУдЕР xD
***

Группа: Пользователи
Сообщений: 59
Регистрация: 2.3.2010
Из: Г.Муравленко ЯНАО
Пользователь №: 6 241
Спасибо сказали: 0 раз




Цитата(Phazeus @ 18.5.2010, 4:38) *
А что это такое? Как Вы это представляете и для чего? Просто база, где можно найти интересующих людей по нику/имени или другим данным и всё такое?

именно ты понял его верно, я бы показал скрипт но пол часа искал не нашол(анкеты),,,
просто было бы хорошо если бы добавить такой плагин что бы Юзеры создавали свои анкеты, Обьястню как ето выглядит,,
Например
мне приходит сообщение : не желаете Создать анкету?
ну и пошло поехало, в анкете запалняеш имя,аську мыло, пару почт, телефон,интересы,День рождение(и что бы при ДЕНЮХЕ Хобяб поздравления вылетали,,в многих скриптах етого нету),,,
если хочеш увидить пример работы скрипта то если найду скину!!!



-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
все таки нашол!!!
Раскрывающийся текст
-- - Теперь можно оставлять комментарии к анкетам
-- - При входе пользователь получает уведомление о новой анкете
-- - Можно выбрать, куда будут приходить сообщения от бота: в чат или приват
--
-- [1.1]:
-- Данный скрипт позволит вашим пользователям создавать и управлять своими анкетами на основании вашего шаблона.
--
-- Пункты анкеты:
-- - имя_в_реале
-- - дата_рождения
-- - знак_зодиака
-- - пол
-- - тело
-- - icq
-- - где_живешь
-- - учеба_работа
-- - о_себе
-- - семья
-- - о_других
-- - интересы
-- - музыка
-- - фильмы
-- - привычки
--
--
-- Также есть администраторская команда для редактирования чужих анкет.
-- Управление доступом к командам.
--
-- F.A.Q.
--
-- В. Как добавить или удалить пункт анкеты?
--
-- О. Во-первых, вам нужно внести новый пункт анкеты или отредактировать старый в таблице
-- tUserProfiles[sUser], которая вынесена в конфигуратор.
-- Во-вторых, необходимо отредактировать вывод анкет в чат. Данный пункт находится в
-- функции showProfile(sUser,type) - там увидете.
-- В-третьих, не забудьте поменять команды меню, которые также вынесены в конфигуратор - MenuProfile(user)
--
-- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\
--|• Настройки •||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| |
-- \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
tVar = {
sPrefix = "!", -- Префикс команд
------------------------------------------
sBot = "Profiles", -- Имя бота
sBotD = "Анкеты пользователей", -- Описание бота
sBotE = "profiles@px.net", -- Email бота
sIsOP = 1, -- Бот ОП? <1=да,0=нет>
------------------------------------------
sFolder = "AHKETbI", -- Папка скрипта
sFile = "uprofiles.dat", -- Название БД
------------------------------------------
sRCEnable = "on", -- Посылать менюшку? <on=да, off=нет>
sRCName = "Анкеты", -- Название менюшки
------------------------------------------
sEdited = "on", -- Прятать анкеты, которые еще не редактировались? <on=да, off=нет>
sSpam = "on", -- Если у юзера еще нет анкеты, то предлагать ему создать ее при входе? ;)
sMsg = "pm", -- Куда отсылать сообщения? <main=чат,pm=личка>
------------------------------------------
sMsgtoUsers = "Теперь можно создать свою анкету! Напиши !анкета создать",
};

-- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\
--|• Команды •||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| |
-- \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
tCmd = {
-- Команды пользователей
sHelp = "анхелп", -- Показать помощь
sProfile = "анкета", -- Редактировать свою анкету
sViewPro = "анкеты", -- Посмотреть список анкет юзеров
sComment = "анкоммент", -- Сделать комментарий к анкете

-- Команды админа
sDelPro = "delpro", -- Удалить анкету юзера или какое-то значение в анкете
};

-- Пункты анкеты
-- ** Советую вам сразу определиться с графами анкеты! **
-- ** Если в будущем Вы захотите изменить что-то здесь, то **
-- ** Вам придется удалить всю старую базу! **
tFields = {
["имя_в_реале"] = "",
["дата_рождения"] = "",
["знак_зодиака"] = "",
["пол"] = "",
["тело"] = "",
["icq"] = "",
["где_живешь"] = "",
["учеба_работа"] = "",
["о_себе"] = "",
["семья"] = "",
["о_других"] = "",
["интересы"] = "",
["музыка"] = "",
["фильмы"] = "",
["привычки"] = "",
};

-- Уровень доступа к командам:
--
-- Доступ = 1
-- Запрет = 0
--
-- Профили 4,5 и 6 созданы для поддержки скриптами Robocop и Leviathan
--
-- Админ доступ
pAdmin = {
[-1] = 0, -- Un-Reg
[0] = 1, -- Master
[1] = 0, -- OP
[2] = 0, -- ViP
[3] = 0, -- Reg
--[4] = 1, -- Moderator
--[5] = 1, -- Netfounder
--[6] = 1, -- Owner
};
-- Пользовательский доступ
pUser = {
[-1] = 1, -- Un-Reg
[0] = 1, -- Master
[1] = 1, -- OP
[2] = 1, -- ViP
[3] = 1, -- Reg
--[4] = 1, -- Moderator
--[5] = 1, -- Netfounder
--[6] = 1, -- Owner
};

-- Меню для редактирования пунктов своей анкеты. Специально вынес отдельно (NRJ)

function MenuProfile(user)
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Посмотреть$<%[mynick]> !"..tCmd.sProfile.."|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Редактировать\\Настоящее имя$<%[mynick]> !"..tCmd.sProfile.." добавить имя_в_реале %[line:Твое настоящее имя?]|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Редактировать\\Дата рождения$<%[mynick]> !"..tCmd.sProfile.." добавить дата_рождения %[line:Дата рождения?]|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Редактировать\\Знак Зодиака$<%[mynick]> !"..tCmd.sProfile.." добавить знак_зодиака %[line:Знак Зодиака?]|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Редактировать\\Пол$<%[mynick]> !"..tCmd.sProfile.." добавить пол %[line:ж) или м)?]|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Редактировать\\Телосложение$<%[mynick]> !"..tCmd.sProfile.." добавить тело %[line:Рост, вес, общее впечатление?]|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Редактировать\\ICQ$<%[mynick]> !"..tCmd.sProfile.." добавить icq %[line:Твоя аська?]|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Редактировать\\Где живешь$<%[mynick]> !"..tCmd.sProfile.." добавить где_живешь %[line:Где ты живешь?]|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Редактировать\\Учеба и работа$<%[mynick]> !"..tCmd.sProfile.." добавить учеба_работа %[line:Где учишься и/или работаешь?]|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Редактировать\\О себе$<%[mynick]> !"..tCmd.sProfile.." добавить о_себе %[line:Немного о себе..]|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Редактировать\\О семье$<%[mynick]> !"..tCmd.sProfile.." добавить семья %[line:Парень, девушка, муж, жена, дети?]|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Редактировать\\Цели знакомства$<%[mynick]> !"..tCmd.sProfile.." добавить о_других %[line:С кем бы хотелось познакомиться?..]|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Редактировать\\Интересы$<%[mynick]> !"..tCmd.sProfile.." добавить интересы %[line:Твои интересы?]|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Редактировать\\Музыка$<%[mynick]> !"..tCmd.sProfile.." добавить музыка %[line:Любимая музыка?]|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Редактировать\\Фильмы$<%[mynick]> !"..tCmd.sProfile.." добавить фильмы %[line:Любимые фильмы?]|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Редактировать\\Вредные привычки$<%[mynick]> !"..tCmd.sProfile.." добавить привычки %[line:Курение, водка, КС?big_smile.gif]|")

end

-- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\
--|• Основной код •|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| |
-- \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/

if (_VERSION == "Lua 5.1") then
TableMaxSize = table.maxn; StringMatch = string.gmatch;
CollectTrash = function() collectgarbage("collect"); end
elseif (_VERSION == "Lua 5.0.3") or (_VERSION == "Lua 5.0.2") then
TableMaxSize = table.getn; StringMatch = string.gfind;
CollectTrash = function() collectgarbage(collect); end
else
Core.SendToAll("<"..tVar.sBot.."> *** Этот скрипт работает только при поддержке Lua 5.1 или Lua 5.0.X У вас же: ".._VERSION);
end

function OnStartup()
Core.RegBot(tVar.sBot,"","",true);
ProTask.LoadProfile();
end

function ChatArrival(user,data)
Core.GetUserAllData(user)
local data = string.sub(data,1,-2)
local _,_,sTrig,sCmd = string.find(data,"%b<>%s*(%S)(%S+)")
if sTrig == tVar.sPrefix then
if tScriptCmds[sCmd] then
return tScriptCmds[sCmd](user,data);
end
end
end

function ToArrival(user,data)
Core.GetUserAllData(user)
if string.sub(data,6,5+(string.len(tVar.sBot))) == tVar.sBot then
data = string.sub(data,(18+string.len(tVar.sBot)+2*string.len(user.sNick)),(string.len(data)-1));
local _,_,sTrig,sCmd = string.find(data,"(%S)(%S+)");
if sTrig and sTrig == tVar.sPrefix and sCmd and tScriptCmds[sCmd] then
return tScriptCmds[sCmd](user,"<"..user.sNick.."> "..data);
end
end
end

function UserConnected(user)
Core.GetUserAllData(user)
ProTask.RC(user,"con");
if string.lower(tVar.sSpam) == "on" then
if not tUserProfiles[user.sNick] then
Core.SendToNick(user.sNick,"<"..tVar.sBot.."> *** "..tVar.sMsgtoUsers)
else
if TableMaxSize(tUserProfiles[user.sNick]["comments"]) > tUserProfiles[user.sNick]["new"] then
Core.SendToNick(user.sNick,"<"..tVar.sBot.."> *** У твоей анкеты появились новые комментарии!")
tUserProfiles[user.sNick]["new"] = TableMaxSize(tUserProfiles[user.sNick]["comments"]);
ProTask.SaveProfile();
end
end
end
end

function OnExit()
ProTask.SaveProfile();
end

tScriptCmds = {
[tCmd.sHelp] = function(user,data)
local s = ""
if pUser[user.iProfile] == 1 then
s = s..tab.."\n\n"..tab.."::: ::: ::: Команды управления анкетой ::: ::: :::\n"
..tab.."\n\tПомощь по командам:\t\t- "..tVar.sPrefix..tCmd.sHelp
..tab.."\n\tМоя анкета:\t\t- "..tVar.sPrefix..tCmd.sProfile
..tab.."\n\tВсе анкеты:\t\t- "..tVar.sPrefix..tCmd.sViewPro
..tab.."\n\tОставить комментарий:\t\t- "..tVar.sPrefix..tCmd.sComment
end
if pAdmin[user.iProfile] == 1 then
s = s.."\n\n"..tab.."::: ::: ::: Администраторские команды ::: ::: :::"
..tab.."\n\n\tУдалить анкету/значение в анкете\t- "..tVar.sPrefix..tCmd.sDelPro.."\n"
end
ProTask.ToUser(user,s);
return true;
end,

[tCmd.sProfile] = function(user,data)
if pUser[user.iProfile] ~= 1 then return true; end
local sUser = user.sNick;
local _,_,Cmd1 = string.find(data,"%b<>%s+%S+%s+(%S+)");
if Cmd1 then
local _,_,Cmd2 = string.find(data,"%b<>%s+%S+%s+%S+%s+(%S+)");
if string.lower(Cmd1) == "создать" and not tUserProfiles[sUser] then
ProTask.NewProfile(sUser);
ProTask.RC(user,"update");
ProTask.ToUser(user,"*** Создана новая анкета! Чтобы отредактировать ее, воспользуйтесь меню или напиши в чате: "..tVar.sPrefix..tCmd.sProfile);
elseif string.lower(Cmd1) == "добавить" and tUserProfiles[sUser] then
if Cmd2 then
if tUserProfiles[sUser][string.lower(Cmd2)] then
local _,_,Cmd3 = string.find(data,"%b<>%s+%S+%s+%S+%s+%S+%s+(.*)");
if Cmd3 == "*" then
ProTask.EditProfile(sUser,string.lower(Cmd2),"No declaration");
ProTask.ToUser(user,"*** Твоя анкета изменена: "..Cmd2.." - No declaration");
elseif Cmd3 then
ProTask.EditProfile(sUser,string.lower(Cmd2),Cmd3);
ProTask.ToUser(user,"*** Твоя анкета изменена: "..Cmd2.." - "..Cmd3);
else
ProTask.ToUser(user,"*** Ошибка! Ты забыл указать значение: "..tVar.sPrefix..tCmd.sProfile.." добавить "..Cmd2.." <текст>");
end
else
ProTask.ToUser(user,ProTask.ShowProfile(sUser,"profilecmds").."\r\n"..tab.."*** Ошибка! Чтобы отредактировать пункт анкеты воспользуйтесь командой "..tVar.sPrefix..tCmd.sProfile.." добавить <пункт> <текст>, * = пустое значение.");
end
else
ProTask.ToUser(user,ProTask.ShowProfile(sUser,"user")..tab.."Выбери пункт анкеты, который хочешь\r\n"..tab.."отредактировать и укажи его значение:\r\n"..tab.." "..tVar.sPrefix..tCmd.sProfile.." добавить <пункт> <текст>\r\n"..tab.."* = пустое значение.");
end
elseif string.lower(Cmd1) == "удалить" then
if Cmd2 then
if string.lower(Cmd2) == "полностью" then
ProTask.DelProfile(sUser);
ProTask.ToUser(user,"*** Твоя анкета была удалена!");
else
ProTask.ToUser(user,"*** ВНИМАНИЕ!! Это команда полностью удалит твою анкету! Для подтверждения введи: "..tVar.sPrefix..tCmd.sProfile.." удалить полностью");
end
else
ProTask.ToUser(user,"*** ВНИМАНИЕ!! Это команда полностью удалит твою анкету! Для подтверждения введи: "..tVar.sPrefix..tCmd.sProfile.." удалить полностью");
end
else
ProTask.ToUser(user,"*** Ошибка! Для редактирования или удаления свой анкеты введи: "..tVar.sPrefix..tCmd.sProfile.." <добавить/удалить>");
end
else
if not tUserProfiles[sUser] then
ProTask.ToUser(user,"*** У тебя еще нет анкеты! Чтобы создать анкету напиши: "..tVar.sPrefix..tCmd.sProfile.." создать"); return true;
else
ProTask.ToUser(user,ProTask.ShowProfile(sUser,"user").."\r\n"..tab.."Для редактирования или удаления\r\n"..tab.."свой анкеты введи: "..tVar.sPrefix..tCmd.sProfile.." <добавить/удалить>");
end
end
return true;
end,

[tCmd.sViewPro] = function(user,data)
if pUser[user.iProfile] ~= 1 then return true; end
local _,_,sUser = string.find(data,"%b<>%s+%S+%s+(%S+)");
if tUserProfiles[sUser] then
ProTask.ToUser(user,ProTask.ShowProfile(sUser,"user"));
else
ProTask.ToUser(user,ProTask.ShowProfile(user,"allusers").."\r\n"..tab.."*** "..tVar.sPrefix..tCmd.sViewPro.." <ник> для просмотра анкеты. ***");
end
return true;
end,

[tCmd.sComment] = function(user,data)
if pUser[user.iProfile] ~= 1 then return true; end
local _,_,sUser,sComment = string.find(data,"%b<>%s+%S+%s+(%S+)%s+(.*)");
if sUser and tUserProfiles[sUser] and sComment then
table.insert(tUserProfiles[sUser]["comments"], {["user"] = user.sNick,["msg"] = sComment});
ProTask.ToUser(user,"*** Твой комментарий добавлен!");
ProTask.SaveProfile();
else
ProTask.ToUser(user,ProTask.ShowProfile(user,"allusers").."\r\n"..tab.."*** Ошибка! Чтобы добавить комментарий к анкете введите: "..tVar.sPrefix..tCmd.sComment.." <ник> <коммент> ***");
end
return true;
end,

[tCmd.sDelPro] = function(user,data)
if pAdmin[user.iProfile] ~= 1 then return true; end
local _,_,Cmd1 = string.find(data,"%b<>%s+%S+%s+(%S+)");
if Cmd1 and Core.GetUser(Cmd1,true) then
local _,_,Cmd2 = string.find(data,"%b<>%s+%S+%s+%S+%s+(%S+)");
if Cmd2 then
if string.lower(Cmd2) == "удалить" then
ProTask.DelProfile(Cmd1);
ProTask.ToUser(user,"*** Анкета юзера "..Cmd1.." была удалена.");
elseif tUserProfiles[Cmd1][string.lower(Cmd2)] then
ProTask.EditProfile(Cmd1,string.lower(Cmd2),"No declaration");
ProTask.ToUser(user,"*** Пункт анкеты "..Cmd2.." юзера "..Cmd1.." был очищен.");
else
ProTask.ToUser(user,"*** Ошибка! Ты забыл указать, что мы будем делать - удалять или редактировать анкету: "..tVar.sPrefix..tCmd.sDelPro.." "..Cmd1.." <пункт/удалить>");
end
else
ProTask.ToUser(user,ProTask.ShowProfile(Cmd1,"user").."\r\n"..tab.."*** Укажите пункт для удаления или воспользуйтесь\r\n"..tab.."командой 'удалить', чтобы стереть всю анкету:\r\n"..tab..tVar.sPrefix..tCmd.sDelPro.." <ник> <пункт/удалить>");
end
else
ProTask.ToUser(user,"*** Чтобы удалить анкету юзера или пукнт чьей-либо анкеты воспользуйтесь командой: "..tVar.sPrefix..tCmd.sDelPro.." <ник>");
end
return true;
end,
}

ProTask = {
["RC"] = function(user,type)
if type == "con" then
if user.bUserCommand then
if pUser[user.iProfile] == 1 and string.lower(tVar.sRCEnable) == "on" then
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Помощь$<%[mynick]> !"..tCmd.sHelp.."|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Оставить коммент$<%[mynick]> !"..tCmd.sComment.." %[line:Ник?] %[line:Коммент?]|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Просмотр\\Все анкеты$<%[mynick]> !"..tCmd.sViewPro.."|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Просмотр\\Анкета этого юзера$<%[mynick]> !"..tCmd.sViewPro.." %[nick]|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Просмотр\\Анкета юзера..$<%[mynick]> !"..tCmd.sViewPro.." %[line:Введите ник]|")
if tUserProfiles[user.sNick] then
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Посмотреть$<%[mynick]> !"..tCmd.sProfile.."|")
MenuProfile(user)
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Удалить\\Свою анкету$<%[mynick]> !"..tCmd.sProfile.." удалить|")
else
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Создать анкету$<%[mynick]> !"..tCmd.sProfile.." создать|")
end
end
if pAdmin[user.iProfile] == 1 and string.lower(tVar.sRCEnable) == "on" then
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Админ\\Удалить анкету юзера$<%[mynick]> !"..tCmd.sDelPro.." %[line:Ник юзера?] удалить|")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Админ\\Удалить пункт анкеты юзера$<%[mynick]> !"..tCmd.sDelPro.." %[line:Ник юзера?] %[line:Пункт анкеты?]|")
end
end
elseif type == "update" then
MenuProfile(user)
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tVar.sRCName.."\\Мой профиль\\Удалить\\Свою анкету$<%[mynick]> !"..tCmd.sProfile.." удалить|")
end
end,

["ToUser"] = function(user,s)
if tVar.sMsg == "pm" then
Core.SendPmToNick(user.sNick,tVar.sBot,s);
else
ProTask.ToUser(user,s);
end
end,

["NewProfile"] = function(sUser)
tUserProfiles[sUser] = tFields
tUserProfiles[sUser]["edited"] = "0";
tUserProfiles[sUser]["comments"] = {};
tUserProfiles[sUser]["new"] = 0;
ProTask.SaveProfile();
end,

["SaveProfile"] = function()
local f = assert(io.open(tVar.sFolder.."/"..tVar.sFile,"w+"),"Cannot locate folder: scripts\\"..tVar.sFolder);
ProTask.Serialize(tUserProfiles,"tUserProfiles",f);
f:close();
end,

["Serialize"] = function(tTable,sTableName,hFile,sTab)
sTab = sTab or "";
hFile:write(sTab..sTableName.." = {\n");
for key,value in pairs(tTable) do
if (type(value) ~= "function") then
local sKey = (type(key) == "string") and string.format("[%q]",key) or string.format("[%d]",key);
if(type(value) == "table") then
ProTask.Serialize(value,sKey,hFile,sTab.."\t");
else
local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value);
hFile:write(sTab.."\t"..sKey.." = "..sValue);
end
hFile:write(",\n");
end
end
hFile:write(sTab.."}");
end,

["LoadProfile"] = function()
if loadfile(tVar.sFolder.."/"..tVar.sFile) then
dofile(tVar.sFolder.."/"..tVar.sFile);
else
local f = assert(io.open(tVar.sFolder.."/"..tVar.sFile,"w+"),"Cannot locate folder: scripts\\"..tVar.sFolder);
f:write("ProfileData = {\r\n}");
f:close();
io.flush();
tUserProfiles = {};
end
end,

["EditProfile"] = function(sUser,sItem,sValue)
if tUserProfiles[sUser] then
tUserProfiles[sUser][sItem] = sValue;
if tUserProfiles[sUser]["edited"] == "0" then tUserProfiles[sUser]["edited"] = "1"; end
ProTask.SaveProfile();
else
ProTask.NewProfile(sUser); ProTask.SaveProfile(); ProTask.EditProfile(sUser,sItem,sValue)
end
end,

["DelProfile"] = function(sUser)
tUserProfiles[sUser] = nil;
ProTask.SaveProfile();
end,

["ShowProfile"] = function(sUser,type)
local sMsg = "\r\n\r\n"..tab;
if type == "user" then sMsg = sMsg.."-= Анкета "..sUser.." =-\r\n\r\n";
elseif type == "profilecmds" then sMsg = sMsg.."-= Анкета "..sUser.." - Показ команд =-\r\n\r\n";
elseif type == "all" or type == "allusers" then sMsg = sMsg.."-= Анкеты всех юзеров =-\r\n\r\n"; end
local Lines = function(s,n,u)
local tab = string.rep("\t",n);
local msg = "\n"..tab..u..": "
if string.find(s,"^(.-)\n") then
s = s.."\n"
local p = "\n"
for line in StringMatch(t,".-\n") do
if string.len(string.gsub(line,"%s+","")) ~= 0 then
p = p..tab.." - "..line;
end
end
return msg..p;
else
return msg..s;
end
end
if type == "user" then
if tUserProfiles[sUser] then
sMsg = sMsg..tab..string.rep("«»",19).."\r\n"
sMsg = sMsg..tab.."имя_в_реале\t - "..tUserProfiles[sUser]["имя_в_реале"].."\r\n";
sMsg = sMsg..tab.."дата_рождения\t - "..tUserProfiles[sUser]["дата_рождения"].."\r\n";
sMsg = sMsg..tab.."пол\t\t - "..tUserProfiles[sUser]["пол"].."\r\n";
sMsg = sMsg..tab.."тело\t\t - "..tUserProfiles[sUser]["тело"].."\r\n";
sMsg = sMsg..tab.."icq\t\t - "..tUserProfiles[sUser]["icq"].."\r\n";
sMsg = sMsg..tab.."где_живешь\t - "..tUserProfiles[sUser]["где_живешь"].."\r\n";
sMsg = sMsg..tab.."учеба_работа\t - "..tUserProfiles[sUser]["учеба_работа"].."\r\n";
sMsg = sMsg..tab.."о_себе\t\t - "..tUserProfiles[sUser]["о_себе"].."\r\n";
sMsg = sMsg..tab.."семья\t\t - "..tUserProfiles[sUser]["семья"].."\r\n";
sMsg = sMsg..tab.."о_других\t - "..tUserProfiles[sUser]["о_других"].."\r\n";
sMsg = sMsg..tab.."интересы\t - "..tUserProfiles[sUser]["интересы"].."\r\n";
sMsg = sMsg..tab.."музыка\t - "..tUserProfiles[sUser]["музыка"].."\r\n";
sMsg = sMsg..tab.."фильмы\t - "..tUserProfiles[sUser]["фильмы"].."\r\n";
sMsg = sMsg..tab.."привычки\t - "..tUserProfiles[sUser]["привычки"].."\r\n";
sMsg = sMsg..tab..string.rep("«»",19).."\n\n\t Комментарии:\n"
for i = 1, TableMaxSize(tUserProfiles[sUser]["comments"]) do
sMsg = sMsg..Lines(tUserProfiles[sUser]["comments"][i]["msg"],2,tUserProfiles[sUser]["comments"][i]["user"]);
end
end
elseif type == "profilecmds" then
if tUserProfiles[sUser] then
sMsg = sMsg..tab..string.rep("«»",19).."\n"
for sItem in pairs(tUserProfiles[sUser]) do
if sItem ~= "edited" then
sMsg = sMsg.."\t "..tVar.sPrefix..tCmd.sProfile.." add "..sItem.." \t- "..tUserProfiles[sUser][sItem].."\n";
end
end
sMsg = sMsg.."\t "..tVar.sPrefix..tCmd.sProfile.." добавить коммент\n"
..tab..string.rep("«»",19).."\n\n"
end
elseif type == "allusers" then
if tUserProfiles ~= nil then
sMsg = sMsg..tab..string.rep("«»",19).."\n\n"
for User in pairs(tUserProfiles) do
if string.lower(tVar.sEdited) == "on" then
for sItem in pairs(tUserProfiles[User]) do
if sItem == "edited" and tUserProfiles[User][sItem] ~= "0" then
sMsg = sMsg.."\t •"..User.."\n";
end
end
else
sMsg = sMsg.."\t •"..User.."\n";
end
end
sMsg = sMsg.."\n"..tab..string.rep("«»",19).."\n\n"
end
end
return sMsg;
end,
};

tab = " "..string.rep(" ",string.len(tVar.sBot));
OpConnected = UserConnected
RegConnected = UserConnected


Автор Скрипта хер знает кто!! скрипт как я помню на ап1 был взятый от сюда и ДСЗона Переминовала автора(типо они создали скрипт)
Посматри пример может надумаеш что!!!

Сообщение отредактировал Saymon - 18.5.2010, 15:42
Причина редактирования: Не надо разукрашивать сообщения!
Go to the top of the page
+Quote Post
Naum_Off
сообщение 18.5.2010, 15:57
Сообщение #244


Начинающий
*

Группа: Пользователи
Сообщений: 25
Регистрация: 1.10.2009
Из: Самара
Пользователь №: 4 611
Спасибо сказали: 0 раз




Все верно, небольшая база с личными данными юзеров заполняемая ими по желанию. Скрипт выше работает довольно криво. Отличная реализация скрипта от Jaska вот здесь
Go to the top of the page
+Quote Post
Setuper
сообщение 18.5.2010, 19:49
Сообщение #245


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Ну а что мешает поставить анкеты отдельным скриптом?
Если немного задуматься о принципах работы хаба и скриптов, то бот всё в одном по своей сути уступает в производительности такой же функциональности, сложенной из нескольких скриптов.
Go to the top of the page
+Quote Post
Naum_Off
сообщение 18.5.2010, 20:48
Сообщение #246


Начинающий
*

Группа: Пользователи
Сообщений: 25
Регистрация: 1.10.2009
Из: Самара
Пользователь №: 4 611
Спасибо сказали: 0 раз




Это всего лишь предложение по увеличению функциональности бота. Скрипт от Jaska стоит, плохо лишь то, что он с "закрытым исходным кодом"(.
Go to the top of the page
+Quote Post
Phazeus
сообщение 19.5.2010, 2:57
Сообщение #247


Продвинутый участник
****

Группа: Пользователи
Сообщений: 179
Регистрация: 24.2.2009
Из: Самара
Пользователь №: 2 340
Спасибо сказали: 103 раза




Благодарю за идеи, гляну наанкеты... Может руки дойдут big_smile.gif А день рождения есть в плагине Коляды Дар с поздравлялкой и просмотром именинников big_smile.gif

Цитата(Setuper @ 18.5.2010, 20:49) *
Ну а что мешает поставить анкеты отдельным скриптом?
Если немного задуматься о принципах работы хаба и скриптов, то бот всё в одном по своей сути уступает в производительности такой же функциональности, сложенной из нескольких скриптов.

Неа, в данной плагинной реализации не уступает, а как раз немного быстрее из-за передачи плагинам всем уже отсортированных и подготовленных данных (ники, данные, айпи и т.д.), тоесть каждому плагину нет необходимости парсировать события каждый раз. Но это мелочи big_smile.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 19.5.2010, 7:13
Сообщение #248


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




А ты думаешь со списком скриптов что-то каждый раз парсируется?
В птохе пробег по скриптам намного быстрее, чем у тебя. Скрипты в птохе находятся в двусвязных списках и там даже никакие переменные не инициализируются в цикле, а просто идёт переход по указателю. А теперь посмотри как работает цикл в lua. Ведь в lua циклы медленнее из-за помещения результатов на каждом шаге в стек и из-за различных внутренних инициалазаций.
Go to the top of the page
+Quote Post
Phazeus
сообщение 20.5.2010, 7:09
Сообщение #249


Продвинутый участник
****

Группа: Пользователи
Сообщений: 179
Регистрация: 24.2.2009
Из: Самара
Пользователь №: 2 340
Спасибо сказали: 103 раза




Да я не про пробег. Я про то, что в каждом отдельноом скрипте они все парсируют данные для рабюоты отдельно. Каждый скрипт. А тут это делается лишь один раз и передаётся в готовом виде плагинам, которым уже не надо что-либо парсировать big_smile.gif Да и плагины используют одни и теже процедуры и функции, не надо в каждом скрипте дублировать...
Go to the top of the page
+Quote Post
Phazeus
сообщение 22.5.2010, 1:15
Сообщение #250


Продвинутый участник
****

Группа: Пользователи
Сообщений: 179
Регистрация: 24.2.2009
Из: Самара
Пользователь №: 2 340
Спасибо сказали: 103 раза




Кстати, а какие бы вы хотели пункты видеть в анкетах? Как вы себе представляете, что там должно быть и как... Какие предложения/соображения есть? Только своими словами big_smile.gif
Go to the top of the page
+Quote Post
Naum_Off
сообщение 23.5.2010, 18:22
Сообщение #251


Начинающий
*

Группа: Пользователи
Сообщений: 25
Регистрация: 1.10.2009
Из: Самара
Пользователь №: 4 611
Спасибо сказали: 0 раз




1. Пункты (по минимуму)
-Имя
-Фамилия
-Пол
-Адрес
-Возраст
-Учеба/работа
-Привычки
-Интересы
2. Возможность оставлять/просматривать комментарии к анкетам другим юзеров.
3. Напоминание юзерам при заходе на хаб заполнить анкету, или же отказаться от ее заполнения.
4. Вывод списка всех юзеров, создавших анкеты.
5. Рейтинг по заполненности анкеты (не обязательно).
6. Рейтинг по профилю (респекты, тоже не обязательно).
Думаю этого более чем достаточно)
Вот пример сообщения от бота:
Цитата
<<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>;><<>><<>>
*** Мой Аккуант ***
<<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>
Имя -> Александр
Фамилия -> Наумов
Пол -> м
Адрес -> 6-ка
Возраст -> 22
Учеба/работа -> ФАИТ
Привычки -> бла бла бла
Интересы -> бла бла бла
<<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>
Рейтинг анкеты: 62.5% (Нормально)
Респектов автору: 3 (Лох)
<<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>

Юзер Serva4ok написал:
Превед хозяин
Go to the top of the page
+Quote Post
(Steep)_(Boss)
сообщение 23.5.2010, 21:03
Сообщение #252


МеСтНый ФлУдЕР xD
***

Группа: Пользователи
Сообщений: 59
Регистрация: 2.3.2010
Из: Г.Муравленко ЯНАО
Пользователь №: 6 241
Спасибо сказали: 0 раз




Цитата(Naum_Off @ 23.5.2010, 20:22) *
1. Пункты (по минимуму)
-Имя
-Фамилия
-Пол
-Адрес
-Возраст
-Учеба/работа
-Привычки
-Интересы
2. Возможность оставлять/просматривать комментарии к анкетам другим юзеров.
3. Напоминание юзерам при заходе на хаб заполнить анкету, или же отказаться от ее заполнения.
4. Вывод списка всех юзеров, создавших анкеты.
5. Рейтинг по заполненности анкеты (не обязательно).
6. Рейтинг по профилю (респекты, тоже не обязательно).
Думаю этого более чем достаточно)
Вот пример сообщения от бота:

---------------------------------------------------------------------------------------
припишу к етому если можно добавить город
что+ что бы показывало когда последний раз редоктировалась ета анкета,,
++ если можно зделать добавить
следущее:


хотелось бы что бы следущеи пунткты можно было зделать что бы просматревать их могли только по нику
приведу пример,, я сижу на хабе вот в друг создал свою анкету,, и решил вбить в свою анкету мыло асю сотовый и т.д,, но хотелось бы видеть такое что бы в етом же пункте(меню) была такая шляпа что какие то именно разделы(мыло ася и т.д) были видны опреденлёным юзерам,,,,
--------------------
домашний телефон
сотовый телефон
мыло
ася
жабер
мсн
+что бы почты ети и сото
Go to the top of the page
+Quote Post
Phazeus
сообщение 24.5.2010, 21:04
Сообщение #253


Продвинутый участник
****

Группа: Пользователи
Сообщений: 179
Регистрация: 24.2.2009
Из: Самара
Пользователь №: 2 340
Спасибо сказали: 103 раза




Я тут подумал, нерационально делать систему "друзей" или "привелигированных" пользователей для просмотра вашей анкеты. Тоесть записывать туда информацию, которую разрешать для просмотра лишь отдельным никам. Это не имеет особого смысла (можно и без анкет кому надо сообщить что надо, раз вы общаетесь). Слишком "раздует" базу такая система, я не люблю занимать лишние ресурсы big_smile.gif ВОт, думаю, что это не нужно big_smile.gif
Go to the top of the page
+Quote Post
Phazeus
сообщение 29.5.2010, 13:01
Сообщение #254


Продвинутый участник
****

Группа: Пользователи
Сообщений: 179
Регистрация: 24.2.2009
Из: Самара
Пользователь №: 2 340
Спасибо сказали: 103 раза




А зачем нужны комментарии к анкетам и "респекты"? Какой смысл в комментариях к анкете? big_smile.gif Если надо связаться с автором, то есть оффлайн-почта, к примеру... Или же тот же плагин доски объяслений (который можно как микроблог использовать). Может не нужно это?
Go to the top of the page
+Quote Post
Andrew Frost
сообщение 31.5.2010, 11:02
Сообщение #255


Участник
**

Группа: Пользователи
Сообщений: 39
Регистрация: 8.3.2009
Из: Ярославля
Пользователь №: 2 517
Спасибо сказали: 3 раза




Доброго времени суток Phazeus! victory.gif Хотел узнать, как можно сделать так, чтобы незарегистрированные пользователи не могли писать в чат команды /me. И еще вот какая штука, если перед текстом с плюсом поставить пробел, то сообщение попадает в чат, если человек незарегистрирован.
Например:
+бла-бла-бла
Результатом будет попадание сообщение в общий чат. В настройках ["CmdPrefix"] = "[!%+]" . Как быть? beaten.gif
PS: Думаю что анкеты для хаба не нужны. Это программа, основной задачей которой является файлообмен. А превращать из дц социалку бред. Для этого есть Commfort, etc. Как показывает практика примерно 95% юзеров не пользуется и половиной всех возможностей бота, его функций. Это мое личное мнение big_smile.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 2.6.2010, 7:13
Сообщение #256


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Сделай под русхаб.
Большая функциональность - это всегда плюс, если только эта функциональность не приводит к тормозам big_smile.gif


Спасибо сказали:
Go to the top of the page
+Quote Post
Phazeus
сообщение 2.6.2010, 9:13
Сообщение #257


Продвинутый участник
****

Группа: Пользователи
Сообщений: 179
Регистрация: 24.2.2009
Из: Самара
Пользователь №: 2 340
Спасибо сказали: 103 раза




Поможешь со своим АПИ? big_smile.gif


Спасибо сказали:
Go to the top of the page
+Quote Post
Nickolya
сообщение 2.6.2010, 10:16
Сообщение #258


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Конечно поможем! big_smile.gif Если что - мы часто на хабе, да и на форуме стараемся оперативно отвечать.


Спасибо сказали:
Go to the top of the page
+Quote Post
Naum_Off
сообщение 4.6.2010, 22:43
Сообщение #259


Начинающий
*

Группа: Пользователи
Сообщений: 25
Регистрация: 1.10.2009
Из: Самара
Пользователь №: 4 611
Спасибо сказали: 0 раз




Цитата(Andrew Frost @ 31.5.2010, 12:02) *
PS: Думаю что анкеты для хаба не нужны. Это программа, основной задачей которой является файлообмен. А превращать из дц социалку бред. Для этого есть Commfort, etc. Как показывает практика примерно 95% юзеров не пользуется и половиной всех возможностей бота, его функций. Это мое личное мнение big_smile.gif

В нашей локалке все чаты были вытеснены ДС и для многих хаб стал местом общения. По поводу незнания/неумения/нехотения юзерами всех фич согласен. Мизерное колечество пользователей пользуется чем либо еще кроме файлообмена и главного чата.
Анкеты однозначно нужны, да и маслом кашу не испортишь. Комментарии и тем более респекты совсем не обязательны, это всего лишь мои предложения.
Go to the top of the page
+Quote Post
prokazzza
сообщение 9.6.2010, 15:07
Сообщение #260


Активный участник
***

Группа: Пользователи
Сообщений: 53
Регистрация: 8.6.2010
Пользователь №: 7 012
Спасибо сказали: 1 раз




Может я плохо чет читал, но в мануале я так и не понял, как удалять или отключать ненужные мне функции Экзекутора к примеру Печкина, Доску объявлений и т.д. И как вообще скрыть пункты меню для простых юзеров, оставив там только Действия и Регистрация.
Go to the top of the page
+Quote Post

16 страниц V  « < 11 12 13 14 15 > » 
Ответить в данную темуНачать новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No new Topic has attachmentsЭкзекутор (ekzekutor)
API2|Универсальный многоязычный бот для PtokaX,VerliHub,RusHub,Eximius
168 Phazeus 228 493 27.4.2014, 10:08 Посл. сообщение: Prizrak333
No New Posts Экзекутор, Верлик и ВДС
8 Aлзим 13 297 12.3.2013, 15:40 Посл. сообщение: Артём
No New Posts Бот Экзекутор
бот птохи
1 Slav 6 661 11.9.2009, 12:43 Посл. сообщение: Maximum

 



RSS Сейчас: 26.11.2024, 20:04