Jump to content

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


Recommended Posts

И вообще я считаю, что юзать лишние скобки в условиях в lua - моветон

Я с Вами категорически согласен, коллега. И когда он говорил, что это его скрипт, я понял, что это не его скрипт.

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

Link to comment
  • Replies 2.4k
  • Created
  • Last Reply

Top Posters In This Topic

Лично я использую многим неизвестный редактор UEStudio со своей личной подсветкой синтаксиса, поэтому проблем со скобками у меня нет. Бывает, канеш, иногда забуду поставить then или do, но не более

Link to comment

Привет всем. Народ, подскажите пожалуйста, вот такой код должен работать:

  
while getControlState ( "horn" ) == true do 
      outputChatBox ( "1" ) 
end 
  

Я его вставляю прямо так (без функции) в клиентский скрипт, а он чего та не пашет. Может кто знает в чем проблема?

Link to comment

Можно узнать свернул ли игрок игру ( и развернул ) с помощью новых event'ов onClientMinimize и onClientRestore? с использованием outputChatBox конечно . Я пытался что-то сделать ничего не случилось или error.( В LUA я новичёк ).Если кто может скрипт написать , буду благодарен.

Link to comment

SweetyWolf, вот к примеру, может тебе подойдёт

local horn = false 
addEventHandler( 'onClientRender', root, 
    function( ) 
        if isPedInVehicle(getLocalPlayer( )) then 
            if getControlState ('Horn') and horn == false then 
                outputChatBox('Ты жмешь на Сигналку') 
                horn = true 
                setTimer(function() horn = false end, 1000, 1) 
            end 
        end 
    end 
) 

Link to comment
Сколько будет MTA-серв на Linux при 16 игроках жрать ресурсов?

если мод типа freeroam, то 32 МБ ОЗУ и крошечку от проца

если полноценный ДМ/ТДМ, то в два раза больше

Звучит очень хорошо :)

Тогда следующий вопрос - есть ли какой-либо путь расчета трафика за день, отличный от практического?

Link to comment
Можно узнать свернул ли игрок игру ( и развернул ) с помощью новых event'ов onClientMinimize и onClientRestore? с использованием outputChatBox конечно . Я пытался что-то сделать ничего не случилось или error.( В LUA я новичёк ).Если кто может скрипт написать , буду благодарен.

Надеюсь, вы понимаете, что версия клиента должна быть не ниже той, в которой эти события были добавлены. Это клиентские события, поэтому в клиенте - добавить обработчики для этих событий, в которых будут эти данные передаваться серверу с помощью triggerServerEvent. И только на сервере после получения этих данных можно outputChatBox. Пример может позже дам.

Сколько будет MTA-серв на Linux при 16 игроках жрать ресурсов?

если мод типа freeroam, то 32 МБ ОЗУ и крошечку от проца

если полноценный ДМ/ТДМ, то в два раза больше

Звучит очень хорошо :)

Тогда следующий вопрос - есть ли какой-либо путь расчета трафика за день, отличный от практического?

Я не знаю не одного человека, который бы вел такую статистику, чтобы потом ее кому-то сказать. А дополнительный трафометр (да еще и под линукс - у меня) для отдельной программы ставить никто не будет.

У тебя же онлайн будет не всегда 16, поэтому - тока практически каждый у себя может вычислить согласно своему моду и среднему онлайну.

Link to comment
Я не знаю не одного человека

ни.

Раз уж зашла речь о трафике. Хочется поинтересоваться, какой размер имеют таблицы в lua, или исходя из чего их размер берется. Например, если через element data я синхронизирую табличку

{ 
["cursorVisible"] = true/false, 
["chatActive"] = true/false, 
["gameWindowActive"] = true/false, 
["voiceChat"] = true/false 
} 

между всеми игроками (иконка над головой - что делает игрок), то какой объем трафика будет проходить между сервером и игроками? Сколько байт будет "весить" такая таблица? А если выкинуть из нее текстовые индексы и заменить просто на

{true/false, true/false, true/false, true/false} 

? Предполагается что element data меняется только при изменении переменных в этой таблице.

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

Link to comment

На каждую переменную 1 байт - её тип +

Строка: 2 байта длинна + 2 байта на каждый символ

Логические переменные по 1 биту

Так что в твоём случае:

"cursorVisible" = 1 + 2 + 13*2

"chatActive" = 1 + 2 + 10*2

"gameWindowActive" = 1 + 2 + 16*2

"voiceChat" = 1 + 2 + 9*2

4 булина = 4 + 4/8

В итоге: 29 + 23 + 35 + 21 + 4 + 1/2 = 112.5 байтов

В админке, для таких вещей, я сделал небольшую функцию:

function enum ( args, prefix ) 
    for i, v in ipairs ( args ) do 
        if ( prefix ) then _G[v] = prefix..i 
        else _G[v] = i end 
    end 
end 

Использовать так:

enum ({ 
    "SYNC_CURSOR", 
    "SYNC_CHAT", 
    "SYNC_WINDOW", 
    "SYNC_VOICE" 
}, "s" ) -- префикс менять для каждого enum'а 
  
{ 
    [SYNC_CURSOR] = true/false, 
    [SYNC_CHAT] = true/false, 
    [SYNC_WINDOW] = true/false, 
    [SYNC_VOICE] = true/false 
} 
  

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

Либо если использовать без префикса то будет просто числовой ключ, что в итоге еще на 2 байта меньше.

Link to comment

Боьшое спасибо. Если так, то я думаю, даже если поместить вообще все данные игрока в элемент дату, получится не больше килобайта данных на минуту игры :)

Ах да, и с энумами попробую что нибудь сделать, думаю на первых порах не понадобится, но в будущем может.

О том, что числовые индексы занимают меньше места чем строковые, можно было бы догадаться и самому (:

Об этом я и так догадывался, разве что хотел убедиться еще раз.

Link to comment
  • Other Languages Moderators

Здрасте! Подскажите как сделать чтоб при движение ACL пользователя (допустим админа) при приближение админа к объекту объект твигался я чет немогу вникнуть в это. Может кто поможет написать начало или типо того? :)

Link to comment
Здрасте! Подскажите как сделать чтоб при движение ACL пользователя (допустим админа) при приближение админа к объекту объект твигался я чет немогу вникнуть в это. Может кто поможет написать начало или типо того? :)

писать во флудилке такие задачи - моветон

Я один не могу с билдом 2896 подключиться к серверу на 2896?

Мне говорит, что "different branches: client 4 server 0" или как-то так)

фиксед

Link to comment

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

А то я делаю перевод своего мода на английский, перевод в XML файлах. И было не плохо загрузить перевод в одном lua файле в каждом ресурсе.

Link to comment

Немного не понял вопроса. Если

чтобы переменная была доступна из всех файлов ресурса?
, то любая переменная и так доступна "из любого файла со скриптом" в пределах одного ресурса. Если нужно иметь "общую" переменную для нескольких ресурсов сразу, то рекомендуют использовать call( ), например. Или в качестве такой переменной использовать elementData: setElementData( ), getElementData( ) для чтения/изменения значения переменной.
Link to comment

lil Toady уже писал, что ресурсы независимы и общаются они между собой благодаря экспортам.

Вопрос к Лилу: то что через экспорты не передаются функции (в таблицах) это баг или специально так сделано?

Link to comment

у меня 1 ресурс является сборником инструментов, из него другие ресурсы просто читают файлы - файловыми функцияи и затем loadstring(...). Особенно это полезно, если имеешь дело с какими-то классами, которые со временем дорабатываешь и все остальные ресурсы пользуются этим доработанным вариантом. Иными словами работает это все как include'ы

Насколько я знаю, можно упаковать функцию в байт-код, передать ее любым способом другим ресурсам и затем снова превратить в функцию

Link to comment

Билд клиент/сервер 2996, логинюсь админом, открываю чат, пишу туда, открываю консоль и там:

[21:05:33] CHAT: [u1tra]^Vincent: trololo 
[u1tra]^Vincent: trololo 

Дублированное сообщение.

Баг или фича?

P.S. Гейммод - play.

Link to comment

Прошу помощи. Есть таблица в БД, в ней иды и координаты объектов. Как сделать чтобы эти объекты создавались? Точнее интересует даже не это, есть запрос, как из переменной извлечь данные, полученные запросом, да при чём ещё в цикле?

код запроса:

local lol = exports.sql:query_assoc( "SELECT * FROM `droped`" ) 

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...