Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Развлекательные скрипты [PtokaX] _ Fans

Автор: rus.region78 18.8.2008, 2:49

Нашёл на офф форуме PokaX,
Скрипт добавляет меню где можно фанатеть по какомунить юзеру и это будут видеть все желающие, в своём роде как уважаемый человек чтоли, если по нему многие фанатеют laughing.gif
Бестолковый скрипт но на хабе поставил, перевёл наобум поэтому поправте что нетак, переконвертировал с API1 в API2
 Fans_API2.ZIP ( 2.06 килобайт ) : 422

Автор: DEM0N 18.8.2008, 10:27

а нельзяли добавить в скрипт как в скрипт ChatRanks чтобы можно было смотреть у кого больше фанатов? still_dreaming.gif

Автор: rus.region78 18.8.2008, 13:03

Боюсь если кто воспользуется этой командой то список будет слишком большой beat_plaster.gif думаю не стоит этого делать, темболие на общительных хабах laughing.gif

Автор: *FoxMalder* 18.8.2008, 13:31

можно сделать маленький топ где то 20 ников, а если ник не попал в топ то по личной стате big_smile.gif
а так скрипт довольно интересный

Автор: rus.region78 18.8.2008, 14:05

Цитата(*FoxMalder* @ 18.8.2008, 14:31) *
можно сделать маленький топ где то 20 ников, а если ник не попал в топ то по личной стате big_smile.gif
а так скрипт довольно интересный

Отличная задумка ;) ктобы взялся её воплотить...

Автор: Andrey_SHANDERA 20.8.2008, 16:08

Да и зоодно, переведите под птоку 3.6.0 пожалуйста! still_dreaming.gif

Автор: Sephiroth_Lukaw 20.8.2008, 22:58

Я на каком-то англоязычном форуме отрыл, как раз под API 1, с Английского переводил сам, на скорую руку...так что не обессудь.

 FansAPI_1.lua ( 5.53 килобайт ) : 76
 

Автор: DEM0N 21.8.2008, 10:49

а можно под Api2? eyes_droped.gif

Автор: Wariner 21.8.2008, 23:55

Цитата(DEM0N @ 21.8.2008, 11:49) *
а можно под Api2? eyes_droped.gif

По внимательнее в первом посте под API2!!!

Ну вот по вашей просьбе добавил топ 20)))))

PS: вот тут подумал, может этот скрипт переделать и назвать его по другому? Типо "Друзья". Смысл как в контакте))) Еслли кому то идея понравилась, пишите, я займусь))))

 Fans.lua ( 10.27 килобайт ) : 184
 

Автор: *FoxMalder* 22.8.2008, 9:27

ты делай делай big_smile.gif а если нам не понравится спасибо мы не скажем :P
и кстати можно тоже самое токо под 360 птоку big_smile.gif

Автор: Andrey_SHANDERA 23.8.2008, 10:09

Цитата(Sephiroth_Lukaw @ 20.8.2008, 23:58) *
Я на каком-то англоязычном форуме отрыл, как раз под API 1, с Английского переводил сам, на скорую руку...так что не обессудь.

Спасибо тебе огромное, вопрос к специалистам, в этом скрипте, при выборе стать фанатом, необходимо в вести ник того юзера. А можно попросить сделать, что бы на юзера тыкнул и стал фанатом, но и меню написать кого, то же оставить. И хорошо бы, добавить Топ 20, друзья, помогите пожалуйста. still_dreaming.gif

Автор: Sephiroth_Lukaw 23.8.2008, 13:19

Цитата(Andrey_SHANDERA)
А можно попросить сделать, что бы на юзера тыкнул и стал фанатом, но и меню написать кого, то же оставить.

Код
NewUserConnected = function(user)
  if tCommands[Addfan].tLevels[user.iProfile] then
    SendToNick(user.sName,"$UserCommand 1 3 Фанаты\\Стать фанатом Юзера$<%[mynick]> +"..Addfan.." %[line:Nick]& #124;|")
    SendToNick(user.sName, "$UserCommand 1 3 Фанаты\\Стать фанатом Выделенного Юзера$<%[mynick]> +"..Addfan.." %[nick]& #124;|")
  end
  if tCommands[Showfans].tLevels[user.iProfile] then
    SendToNick(user.sName,"$UserCommand 1 3 Фанаты\\Показать фанатов Юзера$<%[mynick]> +"..Showfans.." %[line:Nick]& #124;|")
    SendToNick(user.sName, "$UserCommand 1 3 Фанаты\\Показать фанатов Выделенного Юзера$<%[mynick]> +"..Showfans.." %[nick]& #124;|")
  end
  if tCommands[Delfan].tLevels[user.iProfile] then
    SendToNick(user.sName,"$UserCommand 1 3 Фанаты\\Перестать быть фанатом Юзера$<%[mynick]> +"..Delfan.." %[line:Nick]& #124;|")
  SendToNick(user.sName, "$UserCommand 1 3 Фанаты\\Перестать быть фанатом Выделенного Юзера$<%[mynick]> +"..Delfan.." %[nick]& #124;|")
  end
end
OpConnected = NewUserConnected
RegConnected = NewUserConnected
Между & # убери пробел

upd. Делать было нечего, немного поманьячил над топом Wariner'а(копипастил куски его кода в скрипт под API 1), может быть, перевелось под API1, может и нет...короче вот...прикреплено.У меня, пока что, работает.
upd.
Цитата("Setuper")
все верно, но есть несколько мелких недочетов...
Перезалил. Спасибо.

 FansAPI_1.lua ( 8.56 килобайт ) : 74
 

Автор: Setuper 23.8.2008, 16:06

все верно, но есть несколько мелких недочетов:
в функции getLenght лишняя переменная Nick только забивает стек
более оптимизированно будет так:

Код
function getLenght(Nick) -- функция длинны ника
    sLength = string.len(Nick)
    if sLength < 20 then
             tLength = 20 - sLength
   end
   Nick = Nick..string.rep(" ", tLength)
   return Nick
end

также лишнее повторение действия 2 раза подряд: SaveToFile(fFansFile, Fans, "Fans")

Автор: Andrey_SHANDERA 24.8.2008, 5:20

Всем, ОГРОМНОЕ при огромное спасибо! Всё супер, всё работает на ура!!!!

Автор: Al-j® 28.8.2008, 0:53

Цитата(Wariner @ 22.8.2008, 1:55) *
По внимательнее в первом посте под API2!!!

Ну вот по вашей просьбе добавил топ 20)))))

PS: вот тут подумал, может этот скрипт переделать и назвать его по другому? Типо "Друзья". Смысл как в контакте))) Еслли кому то идея понравилась, пишите, я займусь))))

я пишу big_smile.gif
суть понял только примерно,расскажи об идее или сразу выложи,а мы дружно оценим ;)
оценим,люди??? big_smile.gif

З.Ы.: мне пишет ошибку на этой строке(API2 Pt. 0.4.0.0) hFile:write(sTab %[nick] = {\n");
..........attemp to index global hFile (a nil value)
кратко объясню,не добавляет он в фанатов,просто команду в чат кидает
[03:58:11 | 89.113.28.76] <Al-j®> !Addfan [E-burg]Kent.

а за тем вылазит ошибка в скрипте. Думал везде так,но ранг работает (он пуст big_smile.gif )
[03:36:28] ¤ Текущий Toп ранжирования ¤

№: Ник: Колл. фанов
»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»
»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»

Автор: Wariner 28.8.2008, 9:29

Цитата(Al-j® @ 28.8.2008, 1:53) *
суть понял только примерно,расскажи об идее или сразу выложи,а мы дружно оценим ;)

Скрипты будут похожи... главное отличие что при попытке добавить пользователя в друзья будет требоваться подттверждение от этого пользователя и при положительном ответе первый юзер добавляется в список второго и второй в список первого.
Цитата(Al-j® @ 28.8.2008, 1:53) *
З.Ы.: мне пишет ошибку на этой строке(API2 Pt. 0.4.0.0) hFile:write(sTab %[nick] = {\n");
..........attemp to index global hFile (a nil value)

проверь есть ли файлы в папке Fans(создал ли ты её вообще?!) Если папка есть но файлов нет, то попробуй в скрипте убрать абсалютные пути.
ЗЫ:тестил скрипт на птоке 0400 всё работало!!!

Автор: Al-j® 28.8.2008, 14:45

Цитата(Wariner @ 28.8.2008, 11:29) *
проверь есть ли файлы в папке Fans(создал ли ты её вообще?!) Если папка есть но файлов нет, то попробуй в скрипте убрать абсалютные пути.
ЗЫ:тестил скрипт на птоке 0400 всё работало!!!


как всё просто)))я ваще об этом не подумал big_smile.gif
СПАСИБО!!!
Цитата(Wariner @ 28.8.2008, 11:29) *
Скрипты будут похожи... главное отличие что при попытке добавить пользователя в друзья будет требоваться подттверждение от этого пользователя и при положительном ответе первый юзер добавляется в список второго и второй в список первого.


эта идея мне оч нравится)))

Автор: СТУДЕНТ 3.9.2008, 23:51

Спасибо за скриптbig_smile.gif

Автор: li4nost 8.3.2009, 23:07

скажите, а можно как нить переделать этот скрипт, чтоб стало похоже на форумную репутацию?
не фанатеть по 1 пользователю 1 раз и на все время, а говорить "пасибо" столько раз, сколько нужно. big_smile.gif

только чтоб самому себе нельзя говорить было (в этом скрипте фанатеть за себя можно)
очень нужно big_smile.gif

Автор: ART8150 16.9.2009, 13:54

Кто сделал это скрипт под API2 пожалуста выложите у кого рабочий или киньте в личику мне заранее спасибо !!!

Автор: Wariner 16.9.2009, 17:35

почему то на такие изрречения хочется всегда ответить грубостью....

качай отсюда http://mydc.ru/index.html?showtopic=292&view=findpost&p=1843

Автор: Gate001 12.10.2009, 19:44

Wariner? обращаюсь к вам и ко всем пользователям, кто имеет дело с unix-данный скрипт "гадит в корне".
Прочитал тему (http://mydc.ru/topic539.html), но пока исправить не удалось. Можно ли поправить данный скрипт под nix?

С горем пополам поправил сам.
Изменил в начале скрипта переменные, отвечающие за пути к файлу. У меня на дебиане работает.
Если кому нужно-забирайте.

 Fans.lua ( 10.24 килобайт ) : 6
 

Автор: Gate001 13.10.2009, 19:06

Еще одна просьба, если кому не сложно.
Взять скрипт из поста выше и переделать его так, чтобы возможность "фанатеть" была только у зарегистрированых пользователей и выше (вип, ОП, админ).
Иными словами, чтобы у гостей не было возможности добавляться в список фанатов кому-то. Опционально-чтобы и к гостям в список нельзя было добавляться.

Автор: Wariner 13.10.2009, 19:51

для того чтоб незарег не могли пользовать команды надо сделать с каждой так так

Код
if cmd == "!Addfan" then
          if user.iProfile ~= -1 then
                  ...
          end
          return true
end

надеюсь понятно написал

Автор: Gate001 13.10.2009, 21:03

Да, спасибо. Сработало. Попробую этим же кодом "отобрать" у гостей менюшки для добавления в фанаты. А то неудобно-меню осталось, хотя и не действует.

Автор: Wariner 13.10.2009, 22:09

конечно же меню скрывается этим же кодом))))

Автор: Gate001 15.10.2009, 8:30

Вот, переделал под себя.
Из переделок:
Корректно работает под *nix (не гадит файлами в корне)
У гостей отобрал права на добавление/удаление фанатов. Теперь они могут только смотреть топ рангов и списки фанатов у пользователей
Убрал менюшки, требующие ввода ника (Типа добавиться в список фанатов-введите ник). Добавление и удаление доступно при правом клике на юзера.

Делал для себя. Если кому пригодится-берите.

 Fans.lua ( 10.42 килобайт ) : 22
 

Автор: Wariner 15.10.2009, 19:21

твоё последние сообщение я оставлю, но на будущее не надо прикладывать скрипт с незначительными переделками! Каждый настроит под себя сам!

Автор: Gate001 19.10.2009, 19:20

Хорошо, понял.
Кстати, можно ли добавить след. сообщения типа

Цитата
Пользователь такой то добавился в фанаты пользователя
Пользователь такой то ушел из фанатов пользователя

Я в принципе вроде как понимаю как добавить такое, но не знаю куда... Вот
Код
if cmd == "!Addfan" then
                 if user.iProfile ~= -1 then
        local _,_,nick = string.find(sData, "%b<>%s+%S+%s+(%S+)")
                                     if nick then
                                           if nick ~= user.sNick then
                                                      if not Fans[nick] then
                                                                   Fans[nick] = {}
                                                      end
                                                      if Fans[nick][user.sNick] == 1 then
                                                                   Core.SendToNick(user.sNick,"Вы уже добавляли себя в список фанатов к "..nick)
                                                      else
                                                                  Fans[nick][user.sNick] = 1
                                                                  SaveToFile(fFansFile, Fans, "Fans")
                                                                  if not FansTop[nick] then
                                                                                  FansTop[nick] = 1
                                                                                  SaveToFile(fFansTopFile, FansTop, "FansTop")
                                                                  else
                                                                                  FansTop[nick] = FansTop[nick] + 1
                                                                                  SaveToFile(fFansTopFile, FansTop, "FansTop")
                                                                  end
                                                                  Core.SendToNick(user.sNick,"Вы создали фан-лист для "..nick)
                                                      end
                                            else
                                                      Core.SendToNick(user.sNick,"Вы не можете быть фанатом самому себе :P")
                                            end
                                       else
                                              Core.SendToNick(user.sNick,"Пожалуйста вводите верный НИК")
                                       end
                                        end
                                       return true
                  end

А для удаления:
Код
if cmd == "!Delfan" then
                        if user.iProfile ~= -1 then
                local _,_,nick = string.find(sData, "%b<>%s+%S+%s+(%S+)")
                            if nick then
                                 if not Fans[nick] then
                                         Core.SendToNick(user.sNick, nick.." нет в базе данных")
                                 end
                                 if Fans[nick][user.sNick] then
                                             Fans[nick][user.sNick] = nil
                                             SaveToFile(fFansFile, Fans, "Fans")
                                             FansTop[nick] = FansTop[nick] - 1
                                             SaveToFile(fFansTopFile, FansTop, "FansTop")
                                             Core.SendToNick(user.sNick,"Вы удалили себя из списка фанатов у "..nick)
                                 else
                                             Core.SendToNick(user.sNick,"Вас нет в списке фанатов у "..nick)
                                 end
                           else
                                   Core.SendToNick(user.sNick,"Пожалуйста вводите верный НИК")
                           end
                           return true
                           end

Здесь вроде как строку нужно приписывать после
Код
Core.SendToNick(user.sNick,"Вы удалили себя из списка фанатов у "..nick)
. Верно?
Т.е что то типа:
Код
Core.SendToAll(user.sNick," ушел из фанатов пользователя "..nick)


А вот куда пихать строку для добавления в фанаты-ума не приложу.

Автор: Wariner 19.10.2009, 19:24

можно просто сменить строчку

Код
Core.SendToNick(user.sNick,"Вы удалили себя из списка фанатов у "..nick)

на
Код
Core.SendToAll(user.sNick..", ушел из фанатов пользователя "..nick)


ну или просто добавить :
Код
Core.SendToNick(user.sNick,"Вы удалили себя из списка фанатов у "..nick)
Core.SendToAll(user.sNick..", ушел из фанатов пользователя "..nick)



Автор: Gate001 19.10.2009, 20:31

Спасибо, работает.
А код для добавления?
Нужно что-то заменить вот на это, а что? big_smile.gif

Код
Core.SendToAll(user.sNick.."записался в фанаты пользователя "..nick)


UPD: Очевидно вместо этого:
Код
Core.SendToNick(user.sNick,"Вы создали фан-лист для "..nick)

Вопрос снят.

Автор: Плюшевая_мишка 10.12.2013, 21:03

А можно попросить выложить конечный вариант скрипта с добавленными фразами?.. Если, конечно не жалко)) На API2 пойдет?