LUA пару вопросов технического характера.

Сообщения
359
Реакции
17
Господа дайте ответ на несколько вопросов:
1) LUA - язык программирования схожий с..? если pawn схож с C (C++\C#) то с чем схож этот?
2) LUA - кто-то говорил мне что в Gary's mod скрипт который запущен на сервере может скачать (посмотреть\украсть) любой школьник который подключится к серверу - это правда или я что-то не так понял?
3) Кто знает PAWN и LUA ... - знаю что возможно это не корректный вопрос однако какой язык сложнее? сложнее научиться писать скрипты на PAWN на CSGO или LUA для Garry's mod? скажите ваше субьективное мнение.
5) Если для PAWN есть sourcemod то для LUA что?
 

gibs

Фитиль народного волненья
Сообщения
698
Реакции
250
1. Паскале-подобный.
2. Нет, там есть возможность писать клиентские скрипты. Только они загружаются на клиент. Нет смысла даже передавать серверный скрипт.
3. Все на самом деле простое, но для освоения всего нужны усилия.
5. Пропустил вопрос 4. Для lua есть много чего))) Смысл гаррис мода состоит в пользовательских модах. И они выбрали lue в качестве скриптового языка для более простой и быстрой реализации модов.
 

Reiko1231

AlexTheRegent
Сообщения
438
Реакции
1,107
Я пожалуй тоже оставлю своё мнение.

1. Мне кажется что Lua больше похож на python/javascript.
2. Не знаю, но по тому, что мне говорили, @gibs сказал правильно - есть клиентские скрипты (загружаются клиенту), есть серверные (не загружаются клиенту).
3. С Lua знаком заочно, точно сказать не могу, однако ниже напишу свои мысли по этому поводу. Хотя один из плюсов Lua - он является динамически типизированным языком, что делает его освоение чуточку проще.
4. Нет вопроса.
5. Ответ ниже.

Моё личное мнение. Pawn постепенно себя изживает (моё личное мнение, основанное на политике валв, которая по моему мнению направлена на снижение количества серверов сообщества), в то время как Lua расширяется. Если стоит выбор, какой язык изучать (из этих двух), я однозначно скажу Lua. Это связано с тем, что Pawn это только движок сурс. Lua это полноценный язык. На нём написано множество игр (среди которых Payday 2, Don't Starve и многие другие), программ (косвенно могу сказать, что движок сурс использует фреймворк SDL2, который, в свою очередь, так же портирован и на Lua) и прочих вещей (так, например, в Dota 2 скрипты для пользовательских игр (кастомки) пишутся на Lua). Осваивать Lua просто перспективнее.
 
Сообщения
359
Реакции
17
Спасибо большое.. pawn я уже знаю на досточно высоком уровне.. давно удмал заняться Garry's mod и GTA а там на сколько мне известно есть только LUA
 
Сообщения
75
Реакции
4
Спасибо большое.. pawn я уже знаю на досточно высоком уровне.. давно удмал заняться Garry's mod и GTA а там на сколько мне известно есть только LUA
Я знаю как можно украсть аддон, но, я опираюсь на серверную часть,
Тоесть как работает hookaddons(dll который Якобы крадет) когда ты на сервере
И допустим видишь Hud он записывается у тебя в папке с игрой - Cache
А dll только переделывает для работы,

Коротко говоря, Он ворует только клиентскую часть, а серверную не сможет, допустим настройки mysql
 
Сообщения
359
Реакции
17
Я знаю как можно украсть аддон, но, я опираюсь на серверную часть,
Тоесть как работает hookaddons(dll который Якобы крадет) когда ты на сервере
И допустим видишь Hud он записывается у тебя в папке с игрой - Cache
А dll только переделывает для работы,

Коротко говоря, Он ворует только клиентскую часть, а серверную не сможет, допустим настройки mysql
другими словами я могу не переживать что мой уникальный плагин украдут?)
 
Сообщения
75
Реакции
4
другими словами я могу не переживать что мой уникальный плагин украдут?)
Если большую половину делать не опираясь на клиент часть, меню, панели,
Все что клиент слышит видит обрабатывает, что происходит только на сервере
Пароли и тд не найдут, если даже украдут то врятли заработает без sv части

А так легкий язык программирования:

Код:
--[ Владелец - Rustgame ]-- --[ Wiki.Garrysmod.com ]--
------------------------------------------------------

local draw = draw
local surface = surface
local cam = cam
local math = math
local team = team
local ply = LocalPlayer()

local eyepos
local Page = Material("icon64/tool.png")

------------------------------------------------------

surface.CreateFont ("PlayerOrg1", {     
        size = 55,
        weight = 800,
        antialias = true,
        additive = false,       
        font = "Tahoma"})
        
------------------------------------------------------

hook.Add("RenderScene", "3D2DNicksPosAng",function(pos)
    eyepos = pos
end)


hook.Add("PostPlayerDraw", "3D2DNicks", function(ply)
    local dist = ply:GetPos():Distance(eyepos)
    if dist > 350 or !ply:Alive() then return end
    local bone = ply:LookupAttachment("eyes")
    if bone == 0 then return end
            
    local attach = ply:GetAttachment(bone)
    local alpha = 255 * (1 - math.Clamp((dist - 255) / 100, 0, 1))
    local color = team.GetColor(ply:Team())
    local jobcolor = Color(color.r, color.g, color.b, alpha)
    local nickcolor = Color(255,255,255,255)

    if ply:GetNWBool("PlayerNickColored", false) then
        local col = ply:GetNWVector("PlayerNickColor")
        nickcolor = Color(col.x, col.y, col.z, alpha)
    end

    local team = ply:GetUserGroup()
    local name = ply:Nick()


    if team == "superadmin" then team = "Основатель" end
    if team == "admin" then team = "Администратор" end
    if team == "user" then team = "Игрок" end
    if team == "root" then team = "Root" end
    if team == "vip" then team = "VIP" end
    if team == "youtube" then team = "Стример/YouTube" end
    if team == "moderator" then team = "Смотритель" end
    
    local Page = Material("icon16/user.png")
    local metal = MyMoney
    
    local hpplayer = ply:Health()
    local armorplayer = ply:Armor()
    
    local orrg=ply:GetNWString("orgName")
    cam.Start3D2D(attach.Pos + Vector(0, 0, 25), Angle(0, (attach.Pos - eyepos):Angle().y - 90, 90), 0.05)
        if
        (ply:IsSpeaking()) then
        draw.SimpleText("Говорит", "PlayerOrg1", 202, 365, Color(255, 255, 255, 257), TEXT_ALIGN_LEFT)
        elseif
        (ply:GetNW2Bool('ti_istyping')) then
        draw.SimpleText("Пишет", "PlayerOrg1", 202, 365, Color(255, 255, 255, 257), TEXT_ALIGN_LEFT)
        end
        draw.SimpleText("Ник", "PlayerOrg1", 202, 400, Color(255, 255, 255, 257), TEXT_ALIGN_LEFT)
        draw.SimpleText(" | "..name, "PlayerOrg1", 400, 400, Color(255, 255, 255, 257), TEXT_ALIGN_LEFT)
        draw.SimpleText("Ранг", "PlayerOrg1", 202, 435, Color(255, 255, 255, 257), TEXT_ALIGN_LEFT)
        draw.SimpleText(" | "..team, "PlayerOrg1", 400, 435, Color(255, 255, 255, 257), TEXT_ALIGN_LEFT)
        if
        (LocalPlayer():GetUserGroup() == "root")             or
        (LocalPlayer():GetUserGroup() == "superadmin")        or
        (LocalPlayer():GetUserGroup() == "admin")             or
        (LocalPlayer():GetUserGroup() == "moderator")         or
        (LocalPlayer():GetUserGroup() == "youtube")         or
        (LocalPlayer():GetUserGroup() == "vip")             then
        draw.SimpleText("HP", "PlayerOrg1", 202, 470, Color(255, 255, 255, 257), TEXT_ALIGN_LEFT)
        draw.SimpleText(" | "..hpplayer, "PlayerOrg1", 400, 470, Color(255, 255, 255, 257), TEXT_ALIGN_LEFT)
        draw.SimpleText("Бронь", "PlayerOrg1", 202, 505, Color(255, 255, 255, 257), TEXT_ALIGN_LEFT)
        draw.SimpleText(" | "..armorplayer, "PlayerOrg1", 400, 505, Color(255, 255, 255, 257), TEXT_ALIGN_LEFT)
        end
    cam.End3D2D()
end)
 
Все изображения и файлы загружайте только на наш сервер! Для этого используйте кнопку Прикрепить файлы, расположенную ниже или просто перетащите необходимые файлы/изображения со своего компьютера в окно редактора.
Сверху