myDC.ru

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

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

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

Ksan
сообщение 20.1.2012, 15:54
Сообщение #881


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

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




Enyby, я уже в апдейте своего поста написал про это..
Go to the top of the page
+Quote Post
Enyby
сообщение 20.1.2012, 15:57
Сообщение #882


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

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




Цитата(Ksan @ 20.1.2012, 14:46) *
Только при этом нужно быть уверенным, что нет других команд, содержащих stat, это касается любого из представленных кодов. Если есть такие команды, то тут лучше использовать сравнение команд с шаблонами, а не поиск наличия.

Не любого. Мой исправленный вариант этому не подвержен.
Блокирует только четыре команды: "stat", "stats", "memstat" и "memstats".
Go to the top of the page
+Quote Post
Ksan
сообщение 20.1.2012, 16:01
Сообщение #883


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

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




Ну с исправленным да.

Кстати, я не понимаю содержания результата команды !memstat(s)
О чем там пишется?
Цитата
PX total commited: 1544192
PX total uncommited: 2650112
Recv total commited: 163840
Recv total uncommited: 1015808
Send total commited: 229376
Send total uncommited: 1081344
Lua total commited: 17997824
Lua total uncommited: 15032320

Go to the top of the page
+Quote Post
Enyby
сообщение 20.1.2012, 16:18
Сообщение #884


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

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




Это вывод для отладки использования памяти в байтах.

Для четырех куч памяти снимается по два показателя.

  • TotalUncommitted Показывает, сколько байтов из TotalAddrSpace не находятся в swap-файле.
  • TotalCommitted Показывает, сколько байтов из TotalAddrSpace находятся в swap-файле. Соответственно, TotalCommited + TotalUncommited = TotalAddrSpace


Кучи памяти в порядке вывода:
  • PX total - вся птока;
  • Recv - куча для приема информации от клиентов;
  • Send - куча для отправки информации для клиентов;
  • LUA total - куча LUA. Не входит в PX total.


Спасибо сказали:
Go to the top of the page
+Quote Post
MIKHAIL
сообщение 25.1.2012, 0:30
Сообщение #885


KEEP CLEAR AT ALL TIMES
****

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




Есть таблица, и в ней есть данные:
Код
local tContains = {
    ["Name1"] = {Data1,Data2,},
    ["Name2"] = {Data1,Data2,},
}

Допустим идёт поиск на наличие содержимого в локальной tContains.
Подскажите, пожалуйста, как получить название Name1, содержащееся в tContains?
Go to the top of the page
+Quote Post
Enyby
сообщение 25.1.2012, 0:38
Сообщение #886


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

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




Никак. У таблиц нет названия. Таблица это кусок памяти. А переменная, которая указывает на таблицу - указатель. Чтобы получить уникальное "имя" для таблицы, можешь вызвать tostring(tTable). На выходе будет строка вида "table: адрес памяти таблицы".

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

ADD:
Код
for sName, tTable in pairs(tContains) do
   -- do something
end

В этом цикле будут перебраны все элементы таблицы tContains, причем sName будет содержать текущий индекс, а tTable - его значение.


Спасибо сказали:
Go to the top of the page
+Quote Post
MIKHAIL
сообщение 25.1.2012, 0:45
Сообщение #887


KEEP CLEAR AT ALL TIMES
****

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




Цитата
В этом цикле будут перебраны все элементы таблицы tContains, причем sName будет содержать текущий индекс, а tTable - его значение

Какой тип данных у sName и tTable?
Go to the top of the page
+Quote Post
Enyby
сообщение 25.1.2012, 0:50
Сообщение #888


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

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




Ну для твоего примера строка и таблица. Наверное ты не знаешь, но это особый такой способ именования переменных. К имени переменной впереди приписывается буква означающая тип. Например, sName - строка с именем, а tName - таблица с именем.
Префиксы:
  • s - string (строка)
  • t - table (таблица)
  • b - boolean (булево число)
  • i - integer (целое число)
  • n - number (число)



ADD:
Хочу отметить, что это только для того массива, который ты указал. Для произвольного содержимого таблицы это могут быть любые типы.


Спасибо сказали:
Go to the top of the page
+Quote Post
MIKHAIL
сообщение 25.1.2012, 1:26
Сообщение #889


KEEP CLEAR AT ALL TIMES
****

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




Имеем:
Код
local tContains = {
    ["Name1"] = {Data1,Data2,},
    ["Name2"] = {Data1,Data2,},
}

И задаём поиск:
Код
for sName, tTable in pairs(tContains) do
   -- do something
end

При относительно большой tContains переменным sName и tTable желательно быть локальными или они автоматически уже "локальные", поскольку имеют отношение к local tContains?
Go to the top of the page
+Quote Post
Ksan
сообщение 25.1.2012, 4:04
Сообщение #890


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

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




Автоматически. Но не потому, что local tContains, а потому, что они задействованы только для выполнения данного цикла.
А если внутри этого цикла запустишь ещё один цикл с переменными с такими же наименованиями, они всё равно не будут путаться.


Спасибо сказали:
Go to the top of the page
+Quote Post
Enyby
сообщение 25.1.2012, 8:10
Сообщение #891


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

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




Путаться они не будут, но будет путаться автор такого кода. big_smile.gif Так что лучше не использовать одинаковые имена переменных, чтобы не было подобных казусов.
Go to the top of the page
+Quote Post
Ksan
сообщение 25.1.2012, 8:56
Сообщение #892


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

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




Автор будет путаться, только если задумается про них.
"--Зачем ты меня вчера спросил, куда я кладу бороду, когда сплю, - на одеало или под одеало, - не выспался из-за тебя - всю ночь не спал, думал, а куда же я кладу бороду.."
Go to the top of the page
+Quote Post
MIKHAIL
сообщение 28.1.2012, 23:03
Сообщение #893


KEEP CLEAR AT ALL TIMES
****

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




Дана часть кода:
Код
function OnStartup()
    tmr = TmrMan.AddTimer(60000)
end

...

function OnTimer(tmr)
    ...
end

Уточните, пожалуйста, tmr является локальной или глобальной функцией в данном случае? И стоит ли tmr указывать локальной для увеличения быстродействия (период таймера выставлен в 1 минуту, на мой взгляд это относительно часто)?
Go to the top of the page
+Quote Post
Setuper
сообщение 28.1.2012, 23:13
Сообщение #894


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

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




Во-первых, tmr тут вовсе не функция, а переменная.
Во-вторых, в lua всякая переменная, которая не объявлена как локальная, является глобальной.
В-третьих, по внегласному правилу обращелние к локальным переменным происходит быстрее чем к глобальным.
В-четвертых, в указанном примере переменная tmr в функции OnStartup является глобальной, а переменная в функции OnTimer является локальной, то есть это разные переменные в разных областях видимости.

Чтобы не путаться в них следует называть их по-разному:
Код
function OnStartup()
    tmr = TmrMan.AddTimer(60000)
end

...

function OnTimer(id)
    ...
end


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


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

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




tmr является глобальным значением. Если указать
Код
function OnStartup()
    local tmr = TmrMan.AddTimer(60000)
end
то переменная tmr будет утеряна после выхода из функции и идентификатора таймера у вас не будет. Это не существенно, если таймер один, и важно, если таймеров несколько. В последнем случае можно использовать именованую функцию таймера.


Спасибо сказали:
Go to the top of the page
+Quote Post
MIKHAIL
сообщение 28.1.2012, 23:35
Сообщение #896


KEEP CLEAR AT ALL TIMES
****

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




Так, принял к сведению. И ещё:
Код
function OnStartup()
    TmrMan.AddTimer(60000)
end

...

function OnTimer()
    ...
end

В случае использования только одного таймера, данный вариант будет предпочтительнее (в плане быстродействия, т.к. отсутствует явное имя(id) таймера), или всёже лучше с указанием local (замечаю, что таймер только один)?
Go to the top of the page
+Quote Post
Setuper
сообщение 28.1.2012, 23:39
Сообщение #897


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

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




на быстродействие никак не повлияет, ибо хаб всё равно будет впихивать в стек этот id при вызове OnTimer, просто этот id не используется


Спасибо сказали:
Go to the top of the page
+Quote Post
MIKHAIL
сообщение 31.1.2012, 0:04
Сообщение #898


KEEP CLEAR AT ALL TIMES
****

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




Искал, но практически не нашёл информации про возможность бана по MAC-адресу, только то, что, вроде как, такое не возможно. Правда или неправда, в чём тут загвоздка?.. Хотелось бы узнать про это чуть больше. Поделитесь, пожалуйста, инфой по данному вопросу.
Go to the top of the page
+Quote Post
Setuper
сообщение 31.1.2012, 8:59
Сообщение #899


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

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




Такое возможно только если между хабом и юзером нету активного сетевого оборудования, которое меняет mac-адрес.


Спасибо сказали:
Go to the top of the page
+Quote Post
MIKHAIL
сообщение 31.1.2012, 21:16
Сообщение #900


KEEP CLEAR AT ALL TIMES
****

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




То есть для обычной локальной сети с неуправляемыми свичами можно добиться бана по MAC-адресу? Если так, то не подскажете, есть ли такие скрипты здесь на форуме в реализации, быть может, я где-то пропустил?
Go to the top of the page
+Quote Post

53 страниц V  « < 43 44 45 46 47 > » 
Ответить в данную темуНачать новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 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, 20:02