myDC.ru

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

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

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

serrrios
сообщение 9.2.2009, 16:56
Сообщение #241


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

Группа: Пользователи
Сообщений: 67
Регистрация: 12.10.2008
Из: Красноярск
Пользователь №: 784
Спасибо сказали: 9 раз




Только начал пробывать писать, накидал тут пару строк под апи2:
Код
function Core.OnStartup()
    TmrMan.AddTimer(60000, " Func1")
end

function Func1()
  ScriptMan.RestartScript(scripts/123.lua)
end


Сам 123.lua
Код
Core.SendToAll("тест")


Выдает: \restart.lua:6: malformed number near '123.lua'
Почему может не работать?
Go to the top of the page
+Quote Post
Setuper
сообщение 9.2.2009, 16:59
Сообщение #242


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

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




Пишется так
Код
ScriptMan.RestartScript("123.lua")
но этот скрипт правильно работать не будет)))
Go to the top of the page
+Quote Post
serrrios
сообщение 9.2.2009, 18:55
Сообщение #243


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

Группа: Пользователи
Сообщений: 67
Регистрация: 12.10.2008
Из: Красноярск
Пользователь №: 784
Спасибо сказали: 9 раз




Цитата(Setuper @ 9.2.2009, 16:59) *
Пишется так
Код
ScriptMan.RestartScript("123.lua")

Спасибо, в документациях не заметил чет / А абсолютный путь не нужно указывать? Просто видел много скриптов которые ругались на это.
Цитата(Setuper @ 9.2.2009, 16:59) *
но этот скрипт правильно работать не будет)))

Соответственно вопрос почему? И как реализовать правильно? big_smile.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 9.2.2009, 19:27
Сообщение #244


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

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




Вот так работать будет, и только на API1
Код
dofile(frmHub:GetPtokaXLocation().."scripts/old_api.lu")
function Core.OnStartup()
    TmrMan.AddTimer(60000, "Func1")
end

function Func1()
  Core.SendToAll("тест")
end


Соответственно для API2 вот так:
Код
function OnStartup()
    TmrMan.AddTimer(60000, "Func1")
end

function Func1()
  Core.SendToAll("тест")
end


Вообще говоря скажи в чём задача состоит и знаешь ли ты, что используешь метод быстрого перевода под api1?
Go to the top of the page
+Quote Post
*FoxMalder*
сообщение 12.2.2009, 22:54
Сообщение #245


мяу =^.^=
******

Группа: Пользователи
Сообщений: 414
Регистрация: 20.5.2008
Пользователь №: 6
Спасибо сказали: 14 раз




какое кол-во строк может быть максимально в действиях (чтоб не сильно нагружать хаб\клиент)?? (О>,<О)
и вообще затрудняют ли они (действия) когда их много)) вход на хаб?
Go to the top of the page
+Quote Post
Setuper
сообщение 12.2.2009, 23:12
Сообщение #246


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

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




Если уж на то пошло, то любой скрипт грузит хаб. Не парься с количеством действий.
Go to the top of the page
+Quote Post
*FoxMalder*
сообщение 19.2.2009, 1:03
Сообщение #247


мяу =^.^=
******

Группа: Пользователи
Сообщений: 414
Регистрация: 20.5.2008
Пользователь №: 6
Спасибо сказали: 14 раз




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

и вот такой еще вопросец

можно ли поставить разделитель сразу после 1 менюшки тоесть..

1 менюшка -> 2 менюшка
---------------- разделитель
1 менюшка -> 2 менюшка
---------------- разделитель

надеюсь понятно обьяснил shocked.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 19.2.2009, 1:15
Сообщение #248


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

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




Универсального способа подо все клиенты нету, однако на некоторых клиентах (на большинстве) проходит следующий код:
Код
Core.SendToUser(tUser,"$UserCommand 1 3 Меню\\Команда$<%[mynick]> !cmd&#*124;|"..
"$UserCommand 1 3 $<%[mynick]>&#*124;|$UserCommand 0 3&#*124;")
* - удалить
Go to the top of the page
+Quote Post
*FoxMalder*
сообщение 19.2.2009, 1:22
Сообщение #249


мяу =^.^=
******

Группа: Пользователи
Сообщений: 414
Регистрация: 20.5.2008
Пользователь №: 6
Спасибо сказали: 14 раз




Ну раз под все клиенты не подходит то поставим старое доброе _ )

спасиб =)
Go to the top of the page
+Quote Post
Setuper
сообщение 19.2.2009, 1:27
Сообщение #250


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

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




В смысле старое доброе?

Под основные клиенты подходит (DC++, Strong, Apex, Pelink, Greylink, Flylink). Под другие не тестировал, однако помнится, что на каком-то клиенте разделитель не появлялся (не помню что за клиент был).
Go to the top of the page
+Quote Post
*FoxMalder*
сообщение 19.2.2009, 2:44
Сообщение #251


мяу =^.^=
******

Группа: Пользователи
Сообщений: 414
Регистрация: 20.5.2008
Пользователь №: 6
Спасибо сказали: 14 раз




в смысле старое доброе "нижнее подчеркивание" _____ ;)
мне так даже больше нравится =)
Go to the top of the page
+Quote Post
*FoxMalder*
сообщение 21.2.2009, 20:53
Сообщение #252


мяу =^.^=
******

Группа: Пользователи
Сообщений: 414
Регистрация: 20.5.2008
Пользователь №: 6
Спасибо сказали: 14 раз




Цитата(Setuper @ 12.2.2009, 23:12) *
Если уж на то пошло, то любой скрипт грузит хаб. Не парься с количеством действий.


кстате ты не прав когда онлайн подбирается к 2к народу из-за действий и инфо_в_меню на хаб становится невозможно зайти..
он заходит тока через 1-10 минут после того как появится "PtokaX DC Hub 0.3.6.0" ...

над с этой менюшкой делать что то beat_plaster.gif

p.s. может можно сделать что бы действия загружались после того как юзер зашел на хаб? или частично (в смысле не все сразу, а по частям)
Go to the top of the page
+Quote Post
Wariner
сообщение 21.2.2009, 21:05
Сообщение #253


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

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




почитай вот это: http://mydc.ru/ipb.html?s=&showtopic=6...post&p=4763 там есть про меню!
Go to the top of the page
+Quote Post
Setuper
сообщение 21.2.2009, 21:09
Сообщение #254


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

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




1) Просто надо оптимизировать отправку. Наверняка в твоём скрипте действий происходит многократный вызов функции отправки, что сильно нагружает. Например, можно отправлять так:
Код
Core.SendToUser(tUser,"$UserCommand 1 3 Меню\\Команда1$<%[mynick]> !cmd1&#*124;")
Core.SendToUser(tUser,"$UserCommand 1 3 Меню\\Команда2$<%[mynick]> !cmd2&#*124;")
Core.SendToUser(tUser,"$UserCommand 1 3 Меню\\Команда3$<%[mynick]> !cmd3&#*124;")
Core.SendToUser(tUser,"$UserCommand 1 3 Меню\\Команда4$<%[mynick]> !cmd4&#*124;")
...
Core.SendToUser(tUser,"$UserCommand 1 3 Меню\\КомандаN$<%[mynick]> !cmdN&#*124;")
* - удалить.

Но намного оптимизированнее отправлять так:
Код
Core.SendToUser(tUser,"$UserCommand 1 3 Меню\\Команда1$<%[mynick]> !cmd1&#*124;|"..
"$UserCommand 1 3 Меню\\Команда2$<%[mynick]> !cmd2&#*124;|"..
"$UserCommand 1 3 Меню\\Команда3$<%[mynick]> !cmd3&#*124;|"..
"$UserCommand 1 3 Меню\\Команда4$<%[mynick]> !cmd4&#*124;|"..
...
"$UserCommand 1 3 Меню\\КомандаN$<%[mynick]> !cmdN&#*124;")
* - удалить.
Во втором случае функция отправки вызывается всего 1 раз, а клиент уже сам разберётся и разделит отправленную строку на несколько менюшек.
2) Скрипт действий лучше ставить последним в списке всех скриптов, так как менюшки можно отослать и после того как вошёл на хаб.
3) Не советую использовать скрипт действий, в котором для разных пользователей показывается разный текст действий, так как этот скрипт в отличии от обычного скрипта действий в разы больше потребляет ресурсов из-за наличия обработки действий.
Go to the top of the page
+Quote Post
*FoxMalder*
сообщение 21.2.2009, 22:29
Сообщение #255


мяу =^.^=
******

Группа: Пользователи
Сообщений: 414
Регистрация: 20.5.2008
Пользователь №: 6
Спасибо сказали: 14 раз




вот так я и сделаю =) правдо переделывать весь скрип я буду дооолго(

на 1 апи это будет выглядеть так? big_smile.gif
Код
user:SendData("$UserCommand 1 3 Меню\\Команда1$<%[mynick]> !cmd1&#*124;|"..
"$UserCommand 1 3 Меню\\Команда2$<%[mynick]> !cmd2&#*124;|"..
"$UserCommand 1 3 Меню\\Команда3$<%[mynick]> !cmd3&#*124;|"..
"$UserCommand 1 3 Меню\\Команда4$<%[mynick]> !cmd4&#*124;|"..
"$UserCommand 1 3 Меню\\КомандаN$<%[mynick]> !cmdN&#*124;")
Go to the top of the page
+Quote Post
Wariner
сообщение 21.2.2009, 22:31
Сообщение #256


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

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




естественно)))
Go to the top of the page
+Quote Post
*FoxMalder*
сообщение 21.2.2009, 22:35
Сообщение #257


мяу =^.^=
******

Группа: Пользователи
Сообщений: 414
Регистрация: 20.5.2008
Пользователь №: 6
Спасибо сказали: 14 раз




и еще можно сделать так чтоб те ники которые есть в этом скрипте при использование /me писали [Время] *** nick2 text?
Код
tNames = {
  ["nick1"] = "nick2",
}
    
function ChatArrival(curUser,data)
  if tNames[curUser.sName] then
    SendToAll(tNames[curUser.sName],data:sub(curUser.sName:len()+4,-2))
    return 1
  end
end
Go to the top of the page
+Quote Post
*FoxMalder*
сообщение 24.2.2009, 20:22
Сообщение #258


мяу =^.^=
******

Группа: Пользователи
Сообщений: 414
Регистрация: 20.5.2008
Пользователь №: 6
Спасибо сказали: 14 раз




*** яидиот... оказывается лагало не из-за действий, а из-за "ограничение входа N юзеров за 10 сек". Теперь вход на хаб отличный и наконец-то лагать перестало) нагрузка цп не больше 20% в пик юзеров big_smile.gif *счастлив за хаб*
Go to the top of the page
+Quote Post
IIPu3PAK
сообщение 20.3.2009, 1:50
Сообщение #259


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

Группа: Пользователи
Сообщений: 80
Регистрация: 25.2.2009
Пользователь №: 2 359
Спасибо сказали: 6 раз




1) вопрос -- есть строчка SendToAll("blablabla") почему она выводится ПОСЛЕ следующей за этой строчкой строкой?
CODE
local c = string.char
local sDatagram = c(0xFF)..c(0xFF)..c(0xFF)..c(0xFF)..c(0x54)..c(0x53)..c(0x6F)..c(0x75)..
c(0x72)..c(0x63)..c(0x65)..c(0x20)..c(0x45)..c(0x6E)..c(0x67)..c(0x69)..c(0x6E)..
c(0x65)..c(0x20)..c(0x51)..c(0x75)..c(0x65)..c(0x72)..c(0x79)..c(0x00) ---это основной запрос всем source и goldscr серверам
local sServerIp = {"81.9.25.202","tf.csmania.ru",} -- суда вписываем айпи своего сервера
local sServerPort = {"27013","27016",} -- суда вписываем порт своего сервера
local iTimeOut = 1 -- таймаут соединения на получение
local iBuferSize = nil -- размер буфера (nil - стандартный)
BotName = "Курильщик" -- имя бота
BotDesc = "Закуривай;)" -- описание бота
BotEmail = "hub@mail.ru" -- email бота
----------------------------------------------------------------------------
-- loads the socket module
socket = require("socket")

myudp = socket.udp()

myudp:settimeout(iTimeOut)

function Main()
SetTimer(1000)
frmHub:RegBot(BotName, 1, BotDesc, BotEmail) --регистрируем бота на хабе
end

function CorrectData(sData, sReplace)
local sStr, iSmb = ''
for i = 1, sData:len() do
iSmb = sData:byte(i)
if iSmb > 243 and iSmb < 256 then
sStr = sStr..sReplace
elseif iSmb > 31 then
sStr = sStr..string.char(iSmb)
elseif iSmb < 1 then
sStr = sStr..sReplace
elseif iSmb >= 1 then
sStr = sStr..iSmb
end
end
return sStr
end


function ChatArrival(tUser, sData)
local sCmd = sData:match"%b<> !л4д"
if sCmd then
for i = 1,table.getn(sServerIp) do
myudp:setpeername(sServerIp[i], sServerPort[i])
local _, sError = myudp:send(sDatagram, sServerIp[i], sServerPort[i])
local bData, sError = ReceiveData()
if not sError and bData then
local z = CorrectData(bData,'?'):sub(7)
local sName, sMap, sTyp, sType, ilen, iTotal, sVersion = z:match"(.-)?(.-)?(.-)?(.-)?(.+)"
if sName then
if sName==sName:match"(%d*%p%d+%p%d+%p%d+:%d+)" then
k=sMap
sMap=sTyp
l=sType
sType=k
sName=k
end
iPlayers, iTotal, sVersion = ilen:sub(3):match"(%d*)(%d)(.+)"
if iPlayers:len() >1 then
iPlayers, iTotal, sVersion = ilen:sub(3):match"(%d*)(%d%d)(.+)"
end
if zlen then
iTotal="32"
iPlayers=ilen:sub(3):match"(%d*).+"
end
sVersion = sVersion:match"(%d%p%d+%p%d+%p%d+)"
iPlayers = iPlayers~='' and iPlayers or 0
SendToAll("blablabla") --написано до следующих строчек а выводится после них
tUser:SendData("Курильщик"," Айпи адрес сервера---> "..sServerIp[i]..":"..sServerPort[i]..""..
"|<Курильщик> Название сервера---> "..tostring(sName)..
"|<Курильщик> Карта на сервере---> "..tostring(sMap)..
"|<Курильщик> Тип и сложность игры---> "..tostring(sType)..
"|<Курильщик> Игроков на сервере---> "..tostring(iPlayers).."/"..tostring(iTotal)..
"|<Курильщик> Версия сервера---> "..tostring(sVersion)..
"|<Курильщик> =======================================")
end
end
end
return 1
end
end

function OnExit()
myudp:close()
end
OnError = OnExit

function ReceiveData()
local sData, sError = myudp:receive(iBuferSize)
if sError then
-- ошибка!
return nil, sError
end
return sData
end



function NewUserConnected(tUser)
tUser:SendData("$UserCommand 1 3 Left4Dead\\Мониторинг наших серверов$<%[mynick]> !л4д||")
end
OpConnected=NewUserConnected


2)если я пишу Unban("172.25.188.23") или Unban(172.25.188.23) то в 1 случае мне пишут что невозоможно вызвать функцию со значением НИЛ , а во 2 случае неправильный синтаксис... и даже если я вместо айпи пишу ник Ошибки теже самые (забанил через Пкм в птохе где Юзер/чат)

оба вопроса относятся к Апи1 , в 1 вопросе даны рабочие интернет-сервера для проверки
Go to the top of the page
+Quote Post
Setuper
сообщение 20.3.2009, 2:29
Сообщение #260


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

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




1) Так устроена функция SendToAll. Вызывая её, мы помещаем данные в "глобальную очередь". Это связано с производительностью. Сначала отсылаем то, что можно быстро отослать, а потом уже всё, что находится в "глобальной очереди". Считается, что это ускоряет процесс отсылки нескольких сообщений подряд, однако на практики разницы никогда не ощутишь))

Если не нравится то, что сообщения помещаются в глобальную очередь, то можно отсылать всем юзерам по отдельности:
Код
for _,v in pairs(frmHub:GetOnlineUsers()) do
  v:SendData(sData)
end


2) Первый вариант должен работать. Это может быть баг ptokax, у меня на 0.3.5.2f эта функция работает.


P.S. Вообще говоря, для таких мелких вопросов создана тема: Вопросы разработчикам скриптов. Прошу задавать в ту тему подобного рода вопросы.
Go to the top of the page
+Quote Post

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

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No new ВАЖНО: Topic has attachmentsМодули для скриптов RusHub
26 Setuper 45 297 21.3.2017, 17:31 Посл. сообщение: Alexey
No new ВАЖНО: Topic has attachmentsВаши Вопросы И Предложения По Поводу Форума
447 Svyat 320 750 20.10.2015, 19:39 Посл. сообщение: Ksan
No New Posts От: Вопросы Разработчикам Скриптов
От темы с ID: 173
0 MIKHAIL 4 329 23.1.2015, 0:56 Посл. сообщение: MIKHAIL
No new Topic has attachmentsВопросы по протоколу NMDC
Делаю программу
26 Master255 29 668 12.1.2015, 0:38 Посл. сообщение: Master255
No New Posts Вопросы к Phazeus по Экзекутору
Мастер может забанить мастера, как решить в Экзекуторе?
1 AndreiDC 5 359 31.10.2014, 19:20 Посл. сообщение: Ksan
No New Posts От: Установка скриптов
От темы с ID: 5657
0 MIKHAIL 4 795 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 937 28.1.2014, 13:11 Посл. сообщение: Alexey
No new Topic has attachmentsВопросы по RusHub
Технические вопросы
316 Jaska 268 406 19.12.2013, 13:59 Посл. сообщение: mod
No new Topic has attachmentsМелкие вопросы
44 Wariner 50 824 19.9.2013, 12:34 Посл. сообщение: Alexey
No New Posts От: Ваши Вопросы И Предложения По Поводу Форума
От темы с ID: 753
3 anila 9 112 28.3.2013, 16:02 Посл. сообщение: настя
No New Posts Единая платформа для скриптов
Обсуждения вопроса создания единой платформы скриптов
5 Enyby 9 032 18.1.2012, 20:15 Посл. сообщение: Setuper
No new Topic has attachmentsПеределка скриптов
Прошу помощи
47 Fe(one)X 41 281 26.12.2011, 15:04 Посл. сообщение: Ksan
No new Topic has attachmentsВопросы Разработчикам Скриптов с SQL
вопросы по скриптам (мелкие вопросы)
101 Wariner 62 148 6.12.2011, 0:34 Посл. сообщение: Enyby
No New Posts От: Вопросы по RusHub
От темы с ID: 2902
4 Otshelnik-Fm 8 457 19.10.2011, 9:23 Посл. сообщение: Mangust

 



RSS Сейчас: 23.11.2024, 11:44