myDC.ru

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

 
53 страниц V  « < 42 43 44 45 46 > »   
Ответить в данную темуНачать новую тему

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

Ksan
сообщение 3.1.2012, 4:48
Сообщение #861


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




1. MIKHAIL, изящность достигается не этим, не твоими "блошиными" исследованиями, ей-богу! Я уже писал тебе выше. Твои скрипты пашут с производительностью в 1 млн вычислений в секунду? Тогда да, твои экзерсисы оправданы. А если ты пишешь то же, что и мы, то забей, займись чем-то более полезным. Просто пиши, как умеешь...остальное придёт с практикой
2. И да, ты выше спрашивал про function, отвечаю - нет разницы.
Это вопрос предпочтений. Лично я пишу всегда так:
Код
function GetData(sData)


Цитата
[01:40:49] * 10
[01:40:49] * 11

Enyby, а ты проверял только 1 раз?
Проверь несколько раз, удивишься.
Вот у меня с 4 раз:
Тык сюда:
Цитата
[08:41:58] 6
[08:41:58] 6
[08:42:22] 6
[08:42:22] 6
[08:42:40] 5
[08:42:40] 6
[08:43:08] 6
[08:43:08] 6

Разница чисел у тебя и у меня, думаю, только из-за разных процессоров.
И вообще, иногда надо думать и о красоте, особенно когда нет практически разницы между способами в скорости. Разница в микросекунды и наносекунды не считаются.


Спасибо сказали:
Go to the top of the page
+Quote Post
Enyby
сообщение 3.1.2012, 9:14
Сообщение #862


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

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Да, согласен, разница в пределах вычислительной погрешности. Более того, нет такого кода, в котором функция переобъявляется несколько миллионов раз. А если есть, то этому кодеру можно рассказать что-то интересное. big_smile.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 3.1.2012, 19:06
Сообщение #863


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

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




Разницы между
Код
function GetData(sData)
и
Код
GetData = function(sData)
быть не может, ибо lua интерпретатор транслирует первый вариант во второй (см. документацию http://www.lua.ru/doc/2.5.9.html или исходный код lua). Проводить тесты тут бессмысленно.


Спасибо сказали:
Go to the top of the page
+Quote Post
MIKHAIL
сообщение 7.1.2012, 17:57
Сообщение #864


KEEP CLEAR AT ALL TIMES
****

Группа: Пользователи
Сообщений: 141
Регистрация: 4.9.2011
Из: Беларусь, Минск
Пользователь №: 9 667
Спасибо сказали: 3 раза




Как быть подскажите, пожалуйста.
Имеем:
Код
local sData1 = "text"
local sData2 = "sData1"

Не могу "снять" кавычки – обойтись без операции присваивания "=", т.е. без явного указания sData2 = sData1?
На ум приходит только перевод типа переменной. Знаю как изменить тип из строки в число и обратно, собственно, только эти типы и знаю. Но ведь само понятие local (в данном случае sData1), вроде как и не число, и не строка. Быть может есть такая возможность изменить тип со строки на локальную. Вот ищу и спрашиваю...
Go to the top of the page
+Quote Post
Setuper
сообщение 7.1.2012, 20:41
Сообщение #865


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

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




То есть ты хочешь обойтись без копирования строки?
В таком случае нужно использовать таблицу

Код
local sData1 = {"text"}
local sData2 = sData1 -- копирование по ссылке


Использование:
Код
print(sData1[1])
print(sData2[1])


Спасибо сказали:
Go to the top of the page
+Quote Post
Enyby
сообщение 7.1.2012, 23:23
Сообщение #866


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

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




MIKHAIL, какая-то каша. Опиши подробнее.

local - это не тип переменной, а модификатор, указывающий на то, что данная переменная локальная для текущего местоположения.
Цитата
We use the keyword local to describe any variables which we would like to keep local to the scope they are defined in.
Go to the top of the page
+Quote Post
Ksan
сообщение 7.1.2012, 23:32
Сообщение #867


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Enyby, забей.
Мне кажется, он не внял нашим советам относительно микроскопических надуманных "проблем".. и продолжает полировать стометровую скалу вручную нулёвкой..
Go to the top of the page
+Quote Post
MIKHAIL
сообщение 7.1.2012, 23:43
Сообщение #868


KEEP CLEAR AT ALL TIMES
****

Группа: Пользователи
Сообщений: 141
Регистрация: 4.9.2011
Из: Беларусь, Минск
Пользователь №: 9 667
Спасибо сказали: 3 раза




Setuper, спасибо за совет. Этот вариант подошёл. Буду изучать таблицы. Как я понял, в таблице могут быть разные типы данных?
Ksan, да, полирую вручную .)
Go to the top of the page
+Quote Post
Ksan
сообщение 8.1.2012, 0:04
Сообщение #869


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




MIKHAIL, тут ответы на почти все твои вопросы, которые ты тут задаёшь..
Ну и заодно - Программироване в Луа.
И да, чуть не забыл - Lua 5.1 Reference Manual


Спасибо сказали:
Go to the top of the page
+Quote Post
roflDDDD
сообщение 20.1.2012, 15:00
Сообщение #870


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

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




кто может кинуть код скрипта, который перехватывает команду !stats (!stat) и выводит ее только операторам, иначе сообщение с ошибкой..
Go to the top of the page
+Quote Post
Артём
сообщение 20.1.2012, 15:24
Сообщение #871


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




roflDDDD,
Код
tProfile = {
    [0]     = 1,    -- [Master]
    [1]     = 1,    -- [OP]
    [2]     = 0,    -- [ViP]
}
function ChatArrival(user, sData)
    if tProfile[user.iProfile] == 1 then
    local cmd = sData:match"%b<>%s+(%S+).*|"
    if cmd == "!stat" or cmd == "!stats" then
        Core.SendToUser(user,  "У вас нет прав на просмотр этой статистики")
        return true
    end    
end


Спасибо сказали:
Go to the top of the page
+Quote Post
Enyby
сообщение 20.1.2012, 15:25
Сообщение #872


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

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Код
function ChatArrival(tUser, sData)    
    local  sCmd = sData:match("^%S+%s["..SetMan.GetString(29).."](%S+)")
    if sCmd and (sCmd:match("^stats?$") or sCmd:match("^memstats?$")) then
        if tUser.bOperator == nil then Core.GetUserData(tUser, 11) end
        if not tUser.bOperator then
            Core.SendToAll(sData)
            return true
        end
    end
end


Артём, твой вариант можно обойти. *stats, +stats и т. д.

UPD: Исправил ошибку.


Спасибо сказали:
Go to the top of the page
+Quote Post
Артём
сообщение 20.1.2012, 15:28
Сообщение #873


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




Enyby, можно, если эти префиксы есть в настройках хаба
Go to the top of the page
+Quote Post
Enyby
сообщение 20.1.2012, 15:29
Сообщение #874


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

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Мой никак нельзя. big_smile.gif
Go to the top of the page
+Quote Post
roflDDDD
сообщение 20.1.2012, 15:36
Сообщение #875


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

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




Цитата(Enyby @ 20.1.2012, 16:29) *
Мой никак нельзя. big_smile.gif

ты свой выкладывал? дашь?)
Go to the top of the page
+Quote Post
Enyby
сообщение 20.1.2012, 15:39
Сообщение #876


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

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Смотри выше в этой теме.
Go to the top of the page
+Quote Post
roflDDDD
сообщение 20.1.2012, 15:42
Сообщение #877


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

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




Цитата(Enyby @ 20.1.2012, 16:39) *
Смотри выше в этой теме.

проморгал, спс)
Go to the top of the page
+Quote Post
Enyby
сообщение 20.1.2012, 15:44
Сообщение #878


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

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Для "спасибо" есть специальная кнопочка внизу каждого поста. Если пост помог - нажимаешь.


Спасибо сказали:
Go to the top of the page
+Quote Post
Ksan
сообщение 20.1.2012, 15:46
Сообщение #879


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Enyby, можно подсократить строку
Код
if sCmd and (sCmd:match("stats?") or sCmd:match("memstats?")) then
таким образом:
Код
if sCmd and (sCmd:find("stat") then
Тут в stats? и memstats? лишние s? , так как stat входит в оба слова.
Только при этом нужно быть уверенным, что нет других команд, содержащих stat, это касается любого из представленных кодов. Если есть такие команды, то тут лучше использовать сравнение команд с шаблонами, а не поиск наличия.
Я тоже написал было код, но не стал выкладывать, видя ваши.
Go to the top of the page
+Quote Post
Enyby
сообщение 20.1.2012, 15:50
Сообщение #880


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

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Если быть совсем точным, то надо
Код
if sCmd and (sCmd:match("^stats?$") or sCmd:match("^memstats?$")) then

Это моя ошибка.

Ksan, нельзя. Будет у тебя своя команда, в другом скрипте, с подстрокой "stat" и будет она заблокирована, если этот скрипт выше.
Go to the top of the page
+Quote Post

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

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No new ВАЖНО: Topic has attachmentsМодули для скриптов RusHub
26 Setuper 45 352 21.3.2017, 17:31 Посл. сообщение: Alexey
No new ВАЖНО: Topic has attachmentsВаши Вопросы И Предложения По Поводу Форума
447 Svyat 322 056 20.10.2015, 19:39 Посл. сообщение: Ksan
No New Posts От: Вопросы Разработчикам Скриптов
От темы с ID: 173
0 MIKHAIL 4 331 23.1.2015, 0:56 Посл. сообщение: MIKHAIL
No new Topic has attachmentsВопросы по протоколу NMDC
Делаю программу
26 Master255 29 734 12.1.2015, 0:38 Посл. сообщение: Master255
No New Posts Вопросы к Phazeus по Экзекутору
Мастер может забанить мастера, как решить в Экзекуторе?
1 AndreiDC 5 366 31.10.2014, 19:20 Посл. сообщение: Ksan
No New Posts От: Установка скриптов
От темы с ID: 5657
0 MIKHAIL 4 800 29.7.2014, 23:37 Посл. сообщение: MIKHAIL
No New Posts Установка скриптов
Нужна помощь по установке
2 _wRz_ 7 307 29.7.2014, 16:11 Посл. сообщение: Артём
No new От: Вопросы Разработчикам Скриптов
От темы с ID: 173
29 Wariner 25 973 28.1.2014, 13:11 Посл. сообщение: Alexey
No new Topic has attachmentsВопросы по RusHub
Технические вопросы
316 Jaska 269 198 19.12.2013, 13:59 Посл. сообщение: mod
No new Topic has attachmentsМелкие вопросы
44 Wariner 50 982 19.9.2013, 12:34 Посл. сообщение: Alexey
No New Posts От: Ваши Вопросы И Предложения По Поводу Форума
От темы с ID: 753
3 anila 9 127 28.3.2013, 16:02 Посл. сообщение: настя
No New Posts Единая платформа для скриптов
Обсуждения вопроса создания единой платформы скриптов
5 Enyby 9 053 18.1.2012, 20:15 Посл. сообщение: Setuper
No new Topic has attachmentsПеределка скриптов
Прошу помощи
47 Fe(one)X 41 379 26.12.2011, 15:04 Посл. сообщение: Ksan
No new Topic has attachmentsВопросы Разработчикам Скриптов с SQL
вопросы по скриптам (мелкие вопросы)
101 Wariner 62 282 6.12.2011, 0:34 Посл. сообщение: Enyby
No New Posts От: Вопросы по RusHub
От темы с ID: 2902
4 Otshelnik-Fm 8 469 19.10.2011, 9:23 Посл. сообщение: Mangust

 



RSS Сейчас: 26.11.2024, 19:00