Jump to content

Дада (: фулдилка


Recommended Posts

  • Replies 2.4k
  • Created
  • Last Reply

Top Posters In This Topic

Появился такой вопрос: в луа используюся null-terminated строки или как определяется конец строки?

Второй вопрос: через fileWrite можно записывать только текстовые строки? (согласуется с первым вопросом)

Хороший вопрос. Советую проверить это на практике самому. Чтобы дать ответ, другие тоже должны проверить это на практике, а это куда дольше, чем тебе бы хотелось (: отпишись потом

Link to comment
Вообще когда кто - то что нибудь пишет в чате это сохраняется в логе . Вот функция : https://wiki.multitheftauto.com/wiki/OutputServerLog

А когда допустим вводишь команду или когда выходят сообщения скриптов как сделать что бы они сохранялись в лог?

Link to comment
Вообще когда кто - то что нибудь пишет в чате это сохраняется в логе . Вот функция : https://wiki.multitheftauto.com/wiki/OutputServerLog

А когда допустим вводишь команду или когда выходят сообщения скриптов как сделать что бы они сохранялись в лог?

есть события

https://wiki.multitheftauto.com/wiki/OnClientChatMessage

https://wiki.multitheftauto.com/wiki/OnClientConsole

для них можно добавить обработчик в котором будет outputServerLog

Link to comment

Можно ли на уровне сервера (весь скрипт только на сервере) сделать так, чтобы сообщение выводилось только определенным группам зарегенных юзеров?

Пробовал делать проверку

    local acn = getAccountName(getPlayerAccount(source)) 
    if isObjectInACLGroup("user." .. acn, aclGetGroup("Admin")) or isObjectInACLGroup("user." .. acn, aclGetGroup("SuperModerator")) or isObjectInACLGroup("user." .. acn, aclGetGroup("Moderator")) then 

и далее на подобие

outputChatBox(getPlayerName(source) .. ": " .. stringWithAllParameters, getRootElement(), 255, 255, 0, true) 

Но в итоге потерпел fail, так как выводилось всем, даже незарегенному :o

Можно ли вообще такую проверку делать, и что-то я не очень понял + как этот visibleTo юзать (и надо ли)?

Link to comment

Одно из решений

for _, player in ipairs ( getElementsByType ( "player" ) ) do 
 local playerAccount = getPlayerAccount ( player ) 
 if isGuestAccount ( playerAccount ) ~= true then 
  local accountName = getAccountName ( playerAccount ) 
  if isObjectInACLGroup ( "user." .. accountName, aclGetGroup ( "Admin" ) ) or isObjectInACLGroup ( "user." .. accountName, aclGetGroup ("SuperModerator" ) ) or isObjectInACLGroup ( "user." .. accountName, aclGetGroup ( "Moderator" ) ) then 
   outputChatBox ( "Text", player ) 
  end 
 end 
end  
  

Link to comment
Можно ли на уровне сервера (весь скрипт только на сервере) сделать так, чтобы сообщение выводилось только определенным группам зарегенных юзеров?

Пробовал делать проверку

    local acn = getAccountName(getPlayerAccount(source)) 
    if isObjectInACLGroup("user." .. acn, aclGetGroup("Admin")) or isObjectInACLGroup("user." .. acn, aclGetGroup("SuperModerator")) or isObjectInACLGroup("user." .. acn, aclGetGroup("Moderator")) then 

и далее на подобие

outputChatBox(getPlayerName(source) .. ": " .. stringWithAllParameters, getRootElement(), 255, 255, 0, true) 

Но в итоге потерпел fail, так как выводилось всем, даже незарегенному :o

Можно ли вообще такую проверку делать, и что-то я не очень понял + как этот visibleTo юзать (и надо ли)?

visibleTo - это тот игрок которому придёт сообщение.. root - для всех. можно построить дерево назвав его например Admins в котором будут админы..

Например:

-- При старте ресурса создаём элемент с именем группы + префикс 
Admins = createElement( 'acl:Admins' ); 
-- При подключении игрока (или при ещё каких либо событиях) заносим его в елемент админов (убедившись что он админ) 
local pAcc = getPlayerAccount( player ); 
if not isGuestAccount( pAcc ) == false and isObjectInACLGroup ( "user." .. getAccountName( pAcc ), aclGetGroup( "Admin" ) ) then 
    setElementParent( player, Admins ); 
end 
-- А вот так отправлять сообщение всем админам 
outputChatBox( 'txt', Admins ); 

Link to comment

Спасибо за ответы :)

Так как опыта у меня почти нет, более привлекательным кажется вариант Kernell'а, он как-то легок для понимания, чтоли.

А то в альтернативном варианте меня в ступор уже первая строка ввела, если несложно, то разъясните, что есть "in ipairs"?..

Link to comment
Спа

сибо за ответы :)

Так как опыта у меня почти нет, более привлекательным кажется вариант Kernell'а, он как-то легок для понимания, чтоли.

А то в альтернативном варианте меня в ступор уже первая строка ввела, если несложно, то разъясните, что есть "in ipairs"?..

ipairs - цикл по элементам массива с целочисленными индексами (до первого отсутствующего).

pairs - цикл по элементам массива где индекс может быть чем угодно (кроме nil).

Link to comment

возникла непонятная проблема, после запуска линух сервера на сервер зайти невозможно, при этом сам хост пингуется, сервер отображается в списке, часть названия "SigNet.su", при попытке законнектиться висит окошко с подключением, а потом всё это обрывается таймаутом. в чём может быть проблема и как это лечить?

Link to comment

запустить чистый серв последней версии с найтли со свежими ресурсами? у меня кста 1,0,5 линух серв не посл вверсии на проекте и все робит как часы

ну еще как полагается мона проверить логи серва

Link to comment

RAGE POST.

Сервер работает и отвечает по http. СТАР, Я ТЕБЯ НАВЕРНОЕ, ДВАДЦАТЬ РАЗ ПРОСИЛ СВАЛИТЬ ЭТОТ ЧЕРТОВ СЕРВЕР, ЧТОБЫ Я МОГ ЕГО ПЕРЕНАСТРОИТЬ. ТЫ ДВЕ НЕДЕЛИ МЕНЯ НЕ СЛУШАЛ, ТАК ЧТО Е**СЬ С НИМ САМ ТЕПЕРЬ, ТУТ ТЕБЕ ПОМОГУТ. Но помогут не более чем "порты открыты?" "анонс идет?" "редиреста нет?".

Link to comment

Добавлю только, что даже если б я его перенастроил, это бы ничего не решило. Чисто для уверенности, что нет ошибок в конфиге. Сервер анонсится, сервер отвечает по http. До сервера не доходят данные по игровому порту ИЗ ТОМСКА, но при этом на него умудрилось зайти 8 человек ОТКУДА-ТО. ???? -> Неправильно настроен хост. Тут без вопросов.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...