myDC.ru

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

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

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

Sephiroth_Lukaw
сообщение 11.1.2009, 4:05
Сообщение #201


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 307
Регистрация: 11.7.2008
Пользователь №: 173
Спасибо сказали: 31 раз




В начало функции ставь, а не в конец.
У тебя там переменная "sType" используется из фаила настроек.
Так что, либо в начале функции, либо за её пределами.
Цитата
function OnStartup()
...
if (sType ~= "sIP" and sType ~= "sNick") or not sType then
Core.SendToOpChat("<"..SetMan.GetString(21).."> В скрипте KarmaBot обнаружена ошибка!!! Проверьте параметр sType!!! Его значени должно быть равно sIP или sNick")
ScriptMan.StopScript("KarmaBot.lua")
end
...
end
Вот оно и отключение, сразу после запуска, при запущенной PtokaX, без вывода ошибок(хотя, должно в оп-чат отсылаться).
Go to the top of the page
+Quote Post
Wariner
сообщение 11.1.2009, 17:06
Сообщение #202


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

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




эх как всегда я на ровном месте.... beat_brick.gif Спасибо
Go to the top of the page
+Quote Post
lOKO1
сообщение 11.1.2009, 17:22
Сообщение #203


Абсолютный новичок


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




Подскажите, если кто знает php, как будет выелядеть код ниже в LUA с использованием библиотек PXLuaSocket?
Код
$file = file("http://mysite.org/$QUERY_STRING");
$file = @implode("", $file);
echo "$file";


Спасибо!
Go to the top of the page
+Quote Post
Sephiroth_Lukaw
сообщение 11.1.2009, 17:37
Сообщение #204


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 307
Регистрация: 11.7.2008
Пользователь №: 173
Спасибо сказали: 31 раз




Код
http = require("socket.http")
file = http.request("http://mysite.org/"..QUERY_STRING) // функция file - возвращяет результат в виде массива, http.request - получает в виде строки, так что использовать альтернативу функции implode в lua - не нужно. QUERY_STRING - Нужно определить.
Core.SendToAll(file) //Отправит в чат(просто SendToAll- если API 1, либо использовать print - если речь идёт не о PtokaX)
Go to the top of the page
+Quote Post
Wariner
сообщение 12.1.2009, 20:05
Сообщение #205


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

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




наткнулся тут на старые скрипты во всех есть DataArrival(user, data) Я так понимаю это сегодняшняя ChatArrival()?
Go to the top of the page
+Quote Post
Setuper
сообщение 12.1.2009, 21:00
Сообщение #206


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

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




Правильно думаешь
Go to the top of the page
+Quote Post
Al-j®
сообщение 14.1.2009, 0:02
Сообщение #207


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

Группа: Пользователи
Сообщений: 68
Регистрация: 26.8.2008
Из: Екатеринбург
Пользователь №: 430
Спасибо сказали: 2 раза




А интересует напосредственно пропуск команды в чат... Как этого НЕ допустить? Я когда-то пробовал на API1 и у меня получилось исключить пропуск команды +radio для G-Bot в чат, на API2 не смог, да и не помню как на первую прописывал, думаю эта информация пригодится многим
Go to the top of the page
+Quote Post
Setuper
сообщение 14.1.2009, 0:06
Сообщение #208


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

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




для api1: return 1
для api2: return true
Go to the top of the page
+Quote Post
Wariner
сообщение 15.1.2009, 19:56
Сообщение #209


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

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




где ошибка в следующем коде. Глаз замылился не могу понять...
Код
local _,_,RateNumber,One,Two,Three,Four,Five,Six = string.find(Rate, "%s*(%d+)%(%s*(%S+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)")
Go to the top of the page
+Quote Post
Setuper
сообщение 15.1.2009, 20:58
Сообщение #210


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

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




вроде всё верно, смотря что надо захватывать)))

пример строки для захвата:
Код
"  473(   word    7634   3847   3478  5365 998"
Go to the top of the page
+Quote Post
Wariner
сообщение 15.1.2009, 21:07
Сообщение #211


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

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




вот так работает
Код
        local _,_,RateNumber = string.find(Rate, "%s*(%d+)")
        local _,_,One = string.find(Rate, "%s*%d+%(%s*(%S+)")
        local _,_,Two = string.find(Rate, "%s*%d+%(%s*%S+%s+(%d+)")
        local _,_,Three = string.find(Rate, "%s*%d+%(%s*%S+%s+%d+%s+(%d+)")
        local _,_,Four = string.find(Rate, "%s*%d+%(%s*%S+%s+%d+%s+%d+%s+(%d+)%")
        local _,_,Five = string.find(Rate, "%s*%d+%(%s*%S+%s+%d+%s+%d+%s+%d+%s+(%d+)")
        local _,_,Six = string.find(Rate, "%s*%d+%(%s*%S+%s+%d+%s+%d+%s+%d+%s+%d+%s+(%d+)")

вот так нет
Код
        local _,_,RateNumber,One,Two,Three,Four,Five,Six = string.find(Rate, "%s*(%d+)%(%s*(%S+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)")

в последнем варианте все параметры равны nil
Go to the top of the page
+Quote Post
Setuper
сообщение 15.1.2009, 21:18
Сообщение #212


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

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




Не может такого быть! Всё работает и тот и другой код:
Код
local Rate="  473(   word    7634   3847   3478  5365 998"
function OnStartup()
  local _,_,RateNumber = string.find(Rate, "%s*(%d+)")
  local _,_,One = string.find(Rate, "%s*%d+%(%s*(%S+)")
  local _,_,Two = string.find(Rate, "%s*%d+%(%s*%S+%s+(%d+)")
  local _,_,Three = string.find(Rate, "%s*%d+%(%s*%S+%s+%d+%s+(%d+)")
  local _,_,Four = string.find(Rate, "%s*%d+%(%s*%S+%s+%d+%s+%d+%s+(%d+)")
  local _,_,Five = string.find(Rate, "%s*%d+%(%s*%S+%s+%d+%s+%d+%s+%d+%s+(%d+)")
  local _,_,Six = string.find(Rate, "%s*%d+%(%s*%S+%s+%d+%s+%d+%s+%d+%s+%d+%s+(%d+)")
  Core.SendToAll(tostring(RateNumber).." "..tostring(One).." "..tostring(Two).." "..tostring(Three).." "..tostring(Four).." "..tostring(Five).." "..tostring(Six))
end


Код
local Rate="  473(   word    7634   3847   3478  5365 998"
function OnStartup()
  local _,_,RateNumber,One,Two,Three,Four,Five,Six = string.find(Rate, "%s*(%d+)%(%s*(%S+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)")
  Core.SendToAll(tostring(RateNumber).." "..tostring(One).." "..tostring(Two).." "..tostring(Three).." "..tostring(Four).." "..tostring(Five).." "..tostring(Six))
end
Go to the top of the page
+Quote Post
Wariner
сообщение 15.1.2009, 22:02
Сообщение #213


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

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




А что значат буквы RC в версиях программ(скриптов)? shame.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 15.1.2009, 22:17
Сообщение #214


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

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




RC - сокращение от Release Candidate. Дословно переводится как релиз-кандидат, по русски говорять предварительная версия

В предыдущем вопросе разобрался? Что не так у тебя было?
Go to the top of the page
+Quote Post
Wariner
сообщение 15.1.2009, 23:03
Сообщение #215


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

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




Нет пока не разобрался.... Почему то когда начинаю писать скрипты работающие с приватом начинаются проблемы((((
Код
    if tStatAR[tUser.sNick].Type == "ReceRates" then
        local _,_,RateMoney = string.find(sData, "$To:%s%S+%sFrom:%s%S+%s$%S+%s+(%d+)")
        local _,_,Rate = string.find(sData, "$To:%s%S+%sFrom:%s%S+%s$%S+%s+%d+%s+(.*)")
        Core.SendPmToUser(tUser, sBot, "sss: "..Rate)
        local _,_,RateNumber,One,Two,Three,Four,Five,Six = string.find(Rate, "%s*(%d+)%s+%(%s*(%S+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)%s+(%d+)")
        if ((To == sBot) and (Rate) and (RateMoney)) then
        Core.SendPmToUser(tUser, sBot, RateNumber)
...

ввожу
Цитата
100 2(10 11)


до последнего часа думал что я понимаю захваты и рег выражения.....
Код
local _,_,a,b,c,d = string.find(msg,"(%d+)%s*%S+%s*(%d+)%s*%S+%s*(%d+)%s*%S+%s*(%d+)")

ввожу
Цитата
10.2.101

результат
Цитата
a=10 b=2 c=1 d=1

Что я опять делаю не так?

PS: видать последние мозги сессия выбила xD)))))))))))))))
Go to the top of the page
+Quote Post
Setuper
сообщение 15.1.2009, 23:21
Сообщение #216


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

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




Всё верно. Не вижу ничего удивительного:
Код
(%d+)%s*%S+%s*(%d+)%s*%S+%s*(%d+)%s*%S+%s*(%d+)
(10)%s*.%s*(2)%s*.%s*(1)%s*0%s*(1)
надеюсь так понятнее?

я так понимаю, что ты хочешь сделать антирекламу?
Go to the top of the page
+Quote Post
Wariner
сообщение 16.1.2009, 15:53
Сообщение #217


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

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




да я пока не хочу делать готовый скрипт, токо подбираю варианты....
по поводу цифр в скобках я и так понял, непонятно почему %d+ он находит только одну цифру а не "один или более символов" Или он стремится всем переменным присвоить значение?
Go to the top of the page
+Quote Post
Setuper
сообщение 16.1.2009, 16:32
Сообщение #218


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

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




Так как это функция find, то название говорит само за себя. Эта функция пытается найти совпадения в строке с указанным регулярным выражением. %d+ означает 1 или более цифр. Функция перебирает все возможные варианты до тех пор, пока не найдёт какое-то совпадение. Сначала функция проверяет конечно же такой вариант: (10)%s*.%s*(2)%s*.%s*(101)%s*%S+%s*(%d+). Но в данном варианте в строке не найдётся совпадений из-за "хвоста": %S+%s*(%d+). Поэтому продолжается дальнейший перебор вариантов, подходящих под это регулярное выражение.
Go to the top of the page
+Quote Post
Wariner
сообщение 16.1.2009, 22:29
Сообщение #219


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

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




решил проблему так:
Код
local _,_,a,b,c,d = string.find(msg,"(%d+)%s*%D+%s*(%d+)%s*%D+%s*(%d+)%s*%D+%s*(%d+)")

Setuper, а ты бы какой код посоветовал?
Go to the top of the page
+Quote Post
Setuper
сообщение 17.1.2009, 0:37
Сообщение #220


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

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




Такой код не пойдет по следующей причине:

Допустим кто-то пишет так:
Цитата
1) какое-то педложение
2) ещё какое-то преложение
3) снова какое-то предложение
4) и ещё предложение


или вот так:
Цитата
сколько будет 2+2? вы думаете 4, а я думаю 3!


В данном случае любые 4 числа в предложении будут ловиться. Единственное условие - это наличие между этими числами хотя бы одного не пробельного символа! Поэтому твой вариант является наихудшим.


Предлагаю лучше сделать так:
Код
local _,_,a,b,c,d = msg:find"(%d+)%s*%p*[%p*%s*]%s*(%d+)%s*%p*[%p*%s*]%s*(%d+)%s*%p*[%p*%s*]%s*(%d+)"
в данном случае будут ловиться только числа, разделённые знаками пунктуации и/или пробелами.
К данному захвату нужно добавить ещё один из распространённых методов:
Код
local _,_,a,b,c,d = msg:find"(%d+)%s*ю%s*(%d+)%s*ю%s*(%d+)%s*ю%s*(%d+)"
Go to the top of the page
+Quote Post

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

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No new ВАЖНО: Topic has attachmentsМодули для скриптов RusHub
26 Setuper 43 712 21.3.2017, 17:31 Посл. сообщение: Alexey
No new ВАЖНО: Topic has attachmentsВаши Вопросы И Предложения По Поводу Форума
447 Svyat 305 724 20.10.2015, 19:39 Посл. сообщение: Ksan
No New Posts От: Вопросы Разработчикам Скриптов
От темы с ID: 173
0 MIKHAIL 4 082 23.1.2015, 0:56 Посл. сообщение: MIKHAIL
No new Topic has attachmentsВопросы по протоколу NMDC
Делаю программу
26 Master255 27 810 12.1.2015, 0:38 Посл. сообщение: Master255
No New Posts Вопросы к Phazeus по Экзекутору
Мастер может забанить мастера, как решить в Экзекуторе?
1 AndreiDC 5 067 31.10.2014, 19:20 Посл. сообщение: Ksan
No New Posts От: Установка скриптов
От темы с ID: 5657
0 MIKHAIL 4 529 29.7.2014, 23:37 Посл. сообщение: MIKHAIL
No New Posts Установка скриптов
Нужна помощь по установке
2 _wRz_ 6 894 29.7.2014, 16:11 Посл. сообщение: Артём
No new От: Вопросы Разработчикам Скриптов
От темы с ID: 173
29 Wariner 24 719 28.1.2014, 13:11 Посл. сообщение: Alexey
No new Topic has attachmentsВопросы по RusHub
Технические вопросы
316 Jaska 254 014 19.12.2013, 13:59 Посл. сообщение: mod
No new Topic has attachmentsМелкие вопросы
44 Wariner 48 836 19.9.2013, 12:34 Посл. сообщение: Alexey
No New Posts От: Ваши Вопросы И Предложения По Поводу Форума
От темы с ID: 753
3 anila 8 633 28.3.2013, 16:02 Посл. сообщение: настя
No New Posts Единая платформа для скриптов
Обсуждения вопроса создания единой платформы скриптов
5 Enyby 8 521 18.1.2012, 20:15 Посл. сообщение: Setuper
No new Topic has attachmentsПеределка скриптов
Прошу помощи
47 Fe(one)X 39 136 26.12.2011, 15:04 Посл. сообщение: Ksan
No new Topic has attachmentsВопросы Разработчикам Скриптов с SQL
вопросы по скриптам (мелкие вопросы)
101 Wariner 57 918 6.12.2011, 0:34 Посл. сообщение: Enyby
No New Posts От: Вопросы по RusHub
От темы с ID: 2902
4 Otshelnik-Fm 8 021 19.10.2011, 9:23 Посл. сообщение: Mangust

 



RSS Сейчас: 6.5.2024, 23:17