myDC.ru

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

 
53 страниц V  < 1 2 3 4 > »   
Ответить в данную темуНачать новую тему

> Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы)

Setuper
сообщение 18.8.2008, 14:14
Сообщение #21


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

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




Хаха эта менюшка наверняка не закрывает окно, а просто разъединяет пользователя - такое сделать можно!
Вот код:
Код
bNewApi=true
function Main()
    bNewApi=false
end

function SendToUser(tUser,sMsg)
    if bNewApi then
        Core.SendToUser(tUser,sMsg)
    else
        tUser:SendData(sMsg)
    end
end

function UserConnected(tUser)
    SendToUser(tUser,"$UserCommand 1 3 Закрыть соединение$&# 36;Quit %[mynick]&# 124;")
end

NewUserConnected=UserConnected
OpConnected=UserConnected
RegConnected=UserConnected

В функции UserConnected не забудь убрать пробелы после "&#" (перед "36;" и перед "124;")!!!!!!!!

Для того, чтобы менюшка была последней, необходимо скрипт поставить последним в списке скриптов!
Go to the top of the page
+Quote Post
Wariner
сообщение 18.8.2008, 19:05
Сообщение #22


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




Точно помню что менюшка закрывало окно... но тогда скриптами я не интересовался и не спросил(((
Go to the top of the page
+Quote Post
Setuper
сообщение 18.8.2008, 22:16
Сообщение #23


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

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




средствами хаба никак нельзя закрыть окно клиента!!!
Go to the top of the page
+Quote Post
Wariner
сообщение 18.8.2008, 22:34
Сообщение #24


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




Цитата(Setuper @ 18.8.2008, 23:16) *
средствами хаба никак нельзя закрыть окно клиента!!!


не, ты меня не понимаешь, просто меню которое посылает хаб вставлялось выше кнопки "закрыть" дц клиента
Go to the top of the page
+Quote Post
Setuper
сообщение 18.8.2008, 22:52
Сообщение #25


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

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




Такого тоже не может быть. Контекстное меню устроено так, что в него добавляются менюшки ни сверху а снизу. Так устроено любое контекстное меню. Поэтому никак не получиться.
Go to the top of the page
+Quote Post
Wariner
сообщение 19.8.2008, 11:36
Сообщение #26


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




Помогите написать функцию!!! Смысл её вот в чём:
Когда скрипт выводит ник юзера он должен быть определённой длинны. Т.е на хабе есть ограничение на длину ника(скажем 20 символов), при выводе ника скрипт считает колличество символов в нике и если оно меньше 20 добавляет в конце него нужное пробелов.
Go to the top of the page
+Quote Post
Setuper
сообщение 19.8.2008, 11:45
Сообщение #27


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

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




Зачем это? Тупость какая то!
Программно этого сделать нельзя, то есть нельзя сделать так, чтобы сама программа PtokaX хранила в своей памяти список модифицированных ников. Можно только это сделать внутри скрипта, переопределяя вначале каждой функции поле sNick таблицы пользователя.
Go to the top of the page
+Quote Post
Wariner
сообщение 19.8.2008, 16:41
Сообщение #28


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




Цитата(Setuper @ 19.8.2008, 12:45) *
Зачем это? Тупость какая то!


Смысл в том чтоб в таблицах со статистикой выводимых скриптами чатранкс и топхаберс ники сделать в первом столбце и при этом чтобы хоть чуть чуть уровнять столбцы

вот что то я сделал токо не работает(((
CODE
function getLenght(Name)
local Nick = Name
sLength = string.len(Nick)
if sLength < 20 then
tLength = 20 - sLength
end
for i =1, tLength do
Nick = Nick.." "
end
return Nick
end

что не так?
Go to the top of the page
+Quote Post
Setuper
сообщение 19.8.2008, 20:15
Сообщение #29


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

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




Все верно сделал, но есть метод лучше.
Для выравнивания можно использовать табуляцию.
Go to the top of the page
+Quote Post
Wariner
сообщение 19.8.2008, 20:22
Сообщение #30


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




Блин не работает(((( Я ставлю вывод с этой функцией и пусто((((

Прошу прощения сам разобрался))))
Go to the top of the page
+Quote Post
Wariner
сообщение 20.8.2008, 10:52
Сообщение #31


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




вот есть это
Код
function ChatArrival(sUser,sData)
       sData = string.sub(sData,1,-2)
       local _,_,cmd =string.find(sData, "%b<>%s+(%S+)")
       if cmd == "!topranks" then
                     Core.SendToNick(sUser.sNick,"<"..gBot.."> "..ShowRanks(tRankingTable, 2))
                     return true
    end
end

и это
CODE
function ShowRanks(tQWERTY, number)
local tTemp = {}
for i,v in pairs(tQWERTY) do
table.insert(tTemp,{i,v})
end
table.sort(tTemp,function(a,b) return (a[2] > b[2]) end)
if number == 1 then
local disp = " ¤ Текущий Toп ранжирования ¤\r\n\r\n"
disp = disp.."\t№:\tНик:\t\t\tШара\r\n"
disp = disp.."\t»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«» «»«»«»«»«\r\n"
for i = 1,MaxShowed do
if tTemp[i] then
disp = disp..i..getLenght(tTemp[i][1])..getNormalShare(tTemp[i][2]).."\r\n"
end
end
disp = disp.."\t»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«» «»«»«»«»«\r\n"
end
if number == 1 then
local disp = " ¤ Текущий Toп ранжирования ¤\r\n\r\n"
disp = disp.."\t№:\tНик:\tОчки:\tРанг:\t\r\n"
disp = disp.."\t»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«» «»«»«»«»«\r\n"
for i = 1,MaxShowed do
if tTemp[i] then
disp = disp..i..getLenght(tTemp[i][1])..tTemp[i][2]..tFunctions.GetRankName(tTemp[i][2]).."\r\n"
end
end
disp = disp.."\t»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«» «»«»«»«»«\r\n"
end
return disp
end

выдаёт ошибку [11:43] Синтаксис Копия MyBoT.lua:xx: attempt to concatenate a nil value
где я ошибся?
Go to the top of the page
+Quote Post
Nickolya
сообщение 20.8.2008, 11:04
Сообщение #32


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

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




Ошибка во 2 части кода, а именно:
1) два раза одно условие "if number == 1 then", исправь во втором на двойку big_smile.gif
2) конструкция
Код
if number == 1 then
    local disp = "текст"
end
return disp
вернет nil в свзяи с правилами видимости локальных переменных. Почитать можно про это тут: http://www.lua.ru/doc/2.6.html. А правильный код будет таким:

Код
local disp
if number == 1 then
    disp = "текст"
end
return disp
Go to the top of the page
+Quote Post
Wariner
сообщение 24.8.2008, 18:29
Сообщение #33


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




Вот выкладываю кусок скрипта. Он должен при команде сохранять данные в таблицу, но есть какой то глюк... Толи есть какая то задержка сохранения толи не всегда срабатывает, так как я жму на менюшку, потом проверяю таблицу а в ней пусто((( что делать?
Прикрепленные файлы
Прикрепленный файл  Скрипт.lua ( 3.25 килобайт ) Кол-во скачиваний: 16
 
Go to the top of the page
+Quote Post
Setuper
сообщение 24.8.2008, 18:54
Сообщение #34


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

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




Код
function AddFriends(Name, Friend)
    if not tFriends[Name] then
        tFriends[Name] = {}
    end
    if tFriends[Name][Friend] then
        Core.SendToNick(Friend, "<"..gBot.."> Вы уже являетесь другом "..Name)
    else
        tFriends[Name][Friend] = 1
        WriteFile(tFriends, "tFriends",gFriends)
    end
end
Go to the top of the page
+Quote Post
Wariner
сообщение 24.8.2008, 20:33
Сообщение #35


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




Как можно забрать ник юзера вводящего команду(в функции ChatArrival) и запихнуть его в ToArrival... Не знаю насколько понятно написал, попробую ещё раз... Первый юзер вводит команду(ChatArrival) и второму отправляется запрос о подтверждении, если он подтверждает(ToArrival), ники заносятся в таблицу. Ник подтверждающего не проблема а того кто вводит команду... не понимаю как это сделать(((
Go to the top of the page
+Quote Post
Setuper
сообщение 25.8.2008, 0:47
Сообщение #36


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

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




Вот своял под апи2, но на работоспособность не проверял!
CODE
function OnStartup()
sBot=SetMan.GetString(21)
iTime=60 --Время в минутах, в течение которого нужно отправить подтверждение
tTmp={}
tFriends={} --база друзей
TmrMan.AddTimer(60000,"ClearRequests")
end

function ChatArrival(tUser,sData)
sData=sData:sub(string.len(tUser.sNick)+4,-2)
local _,_,sCmd,sNick=string.find(sData,"[+!/](%S+)%s+(%S+).*")
if sCmd and sNick and sCmd=="friend" then
if sNick==tUser.sNick then
Core.SendToUser(tUser,"*** О боже... Что я вижу... Вы хотите подружиться с собой! Перед тем как подружиться с собой навестите психиатора.")
end
local tUs=Core.GetUser(sNick)
if tUs then
for i,v in pairs(tFriends) do
if v[1]==tUser.sNick and v[2]==sNick or v[2]==tUser.sNick and v[1]==sNick then
Core.SendToUser(tUser,"*** Вы с '"..sNick.."' уже являетесь друзьями!")
return true
end
end
if not tTmp[tUser.sNick] then
tTmp[tUser.sNick]={}
tTmp[tUser.sNick].sNick=sNick
tTmp[tUser.sNick].iTime=os.time()+iTime*60
if tTmp[sNick] and tTmp[sNick].sNick==tUser.sNick then
tTmp[sNick]=nil
tTmp[tUser.sNick]=nil
table.insert(tFriends,{tUser.sNick,sNick}
Core.SendToUser(tUser,"$To: "..tUser.sNick.." From: "..sBot.." $<"..sBot.."> "..
"Запрос подтвержден! Вы с '"..sNick.."' с данного момента являетесь друзьями")
Core.SendToUser(tUs,"$To: "..sNick.." From: "..sBot.." $<"..sBot.."> "..
"Запрос подтвержден! Вы с '"..tUser.sNick.."' с данного момента являетесь друзьями")
else
Core.SendToUser(tUser,"*** Запрос на поддержание дружбы с пользователем '"..sNick..
"' успешно отправлен. Ждите подтверждения!")
end
else
Core.SendToUser(tUser,"*** Запрос на поддержание дружбы уже был отправлен пользователю '"..sNick.."'")
end
Core.SendToUser(tUs,"$To: "..sNick.." From: "..sBot.." $<"..tUser.sNick.."> "..
"Поступил запрос на подтверждение дружбы. Для подтверждения отправьте в чат +friend "..tUser.sNick)
else
Core.SendToUser(tUser,"*** Пользователь '"..sNick.."' оффлайн!")
end
return true
end
end

function ClearRequests()
for i,v in pairs(tTmp) do
if os.time()>v.iTime then
tTmp[i]=nil
end
end
end


Спасибо сказали:
Go to the top of the page
+Quote Post
Wariner
сообщение 25.8.2008, 9:31
Сообщение #37


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




Появились две ошибки:
[10:09] Синтаксис test.lua:6: bad argument #2 to 'AddTimer' (string expected, got function)
[10:10] Синтаксис test.lua:25: attempt to index field '?' (a nil value)
Честно говоря полностью так и не смог разобраться в работе скрипта... Он здесь полностью?
Go to the top of the page
+Quote Post
Setuper
сообщение 25.8.2008, 11:50
Сообщение #38


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

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




Ошибки исправил.
Скрипт не полный. Я думаю, что тебе хватит знаний, чтобы дописать к нему менюшку, а также загрузку и сохранение таблицы tFriends
Go to the top of the page
+Quote Post
Wariner
сообщение 25.8.2008, 15:00
Сообщение #39


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 439 раз




[15:51] Синтаксис test.lua:27: attempt to call global 'time' (a nil value)
[15:51] Синтаксис test.lua:53: attempt to call global 'time' (a nil value)

time() - вроде это вызов функции, но такой функции в скрипте нет. Я правильно понял?
Go to the top of the page
+Quote Post
Setuper
сообщение 25.8.2008, 16:44
Сообщение #40


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

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




os.time()

з.ы. писал на скорую руку и не тестил, так как мне такой скрипт не нужен))))
Go to the top of the page
+Quote Post

53 страниц V  < 1 2 3 4 > » 
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No new ВАЖНО: Topic has attachmentsМодули для скриптов RusHub
26 Setuper 23 108 21.3.2017, 17:31 Посл. сообщение: Alexey
No new ВАЖНО: Topic has attachmentsВаши Вопросы И Предложения По Поводу Форума
447 Svyat 142 531 20.10.2015, 19:39 Посл. сообщение: Ksan
No New Posts От: Вопросы Разработчикам Скриптов
От темы с ID: 173
0 MIKHAIL 1 206 23.1.2015, 0:56 Посл. сообщение: MIKHAIL
No new Topic has attachmentsВопросы по протоколу NMDC
Делаю программу
26 Master255 9 085 12.1.2015, 0:38 Посл. сообщение: Master255
No New Posts Вопросы к Phazeus по Экзекутору
Мастер может забанить мастера, как решить в Экзекуторе?
1 AndreiDC 1 654 31.10.2014, 19:20 Посл. сообщение: Ksan
No New Posts От: Установка скриптов
От темы с ID: 5657
0 MIKHAIL 1 578 29.7.2014, 23:37 Посл. сообщение: MIKHAIL
No New Posts Установка скриптов
Нужна помощь по установке
2 _wRz_ 2 180 29.7.2014, 16:11 Посл. сообщение: Артём
No new От: Вопросы Разработчикам Скриптов
От темы с ID: 173
29 Wariner 8 989 28.1.2014, 13:11 Посл. сообщение: Alexey
No new Topic has attachmentsВопросы по RusHub
Технические вопросы
316 Jaska 104 659 19.12.2013, 13:59 Посл. сообщение: mod
No new Topic has attachmentsМелкие вопросы
44 Wariner 21 180 19.9.2013, 12:34 Посл. сообщение: Alexey
No New Posts От: Ваши Вопросы И Предложения По Поводу Форума
От темы с ID: 753
3 anila 4 033 28.3.2013, 16:02 Посл. сообщение: настя
No New Posts Единая платформа для скриптов
Обсуждения вопроса создания единой платформы скриптов
5 Enyby 3 703 18.1.2012, 20:15 Посл. сообщение: Setuper
No new Topic has attachmentsПеределка скриптов
Прошу помощи
47 Fe(one)X 18 508 26.12.2011, 15:04 Посл. сообщение: Ksan
No new Topic has attachmentsВопросы Разработчикам Скриптов с SQL
вопросы по скриптам (мелкие вопросы)
101 Wariner 9 140 6.12.2011, 0:34 Посл. сообщение: Enyby
No New Posts От: Вопросы по RusHub
От темы с ID: 2902
4 Otshelnik-Fm 3 318 19.10.2011, 9:23 Посл. сообщение: Mangust

 



RSS Сейчас: 25.2.2018, 8:52