Jump to content

Проблема с функциями сервера


Recommended Posts

Здравствуйте.

Я вчера начал пилить системку, сразу после того, как научился пилить триггеры (и сразу-же обновил тему о Lunix OS Blue). Моя проблема заключается в 2х деталях - это onPlayerJoin не реагирует на функции, в следствии чего fadeCamera при коннекте на сервер не активируется, чтобы избавить меня от чёрного экрана, и вторая деталь - это при спавне игрок не может перемещаться по локации (анимация выполняется)

И так - первая проблема. Я пишу 2 стороны на ресурсе (серверную и клиентскую), и до выполнения onPlayerJoin на серверной стороне и на onPlayerClientJoin на клиентской не доходит почему-то. Я решил продебажить данный эвент, но проблем с ним нет (следовательно эвента просто не существует), а текст, который в нём должен отправляться в консоль не отправляется. Даже таймер не помог.

Вот код серверсайда

addEventHandler("onPlayerJoin", resourceRoot, 
    function(thePlayer) 
        outputConsole("Лалка 1") 
        fadeCamera(thePlayer, true) 
        outputConsole("Лалка 2") 
        setCameraTarget(thePlayer, thePlayer) 
        setElementPosition(thePlayer, 2291.3086, -2548.2273, 24.6980) 
        setElementRotation(thePlayer, 0, 0, 90) 
        outputConsole("Лалка 3") 
        setElementDimension(thePlayer, i) 
        setCameraMatrix(thePlayer, 2288.8086, -2550.7273, 26.6980, 2291.3086, -2548.2273, 24.1980) 
        setElementModel(thePlayer, 299) 
        outputConsole("Лалка 4") 
        outputChatBox("#FF0000"..getPlayerName(thePlayer).." #212121зашёл на сервер", resourceRoot, 255, 255, 255, true) 
        outputConsole("Лалка 5") 
        i=i+1 
    end) 

Вот клиентсайда

addEventHandler("onClientPlayerJoin", localPlayer, 
    function() 
        outputConsole("Лалка к1") 
        fadeCamera(true) 
        outputConsole("Лалка к2") 
        showCursor(true) 
        guiSetVisible(leftskin,  true) 
        guiSetVisible(spawnskin, true) 
        guiSetVisible(rightskin, true) 
    end) 

В обоих случаях ничего не отправляется в консоль, НО выполняются функции showCursor и guiSetVisible в onClientPlayerJoin

Решил проверить на триггере, но тоже ничего не срабатывает

--Клиентсайд 
addEventHandler("onClientPlayerJoin", localPlayer, 
    function() 
        outputConsole("Лалка к1") 
        fadeCamera(true) 
        outputConsole("Лалка к2") 
        showCursor(true) 
        guiSetVisible(leftskin,  true) 
        guiSetVisible(spawnskin, true) 
        guiSetVisible(rightskin, true) 
        triggerServerEvent("onPlayerServerJoin", resourceRoot, localPlayer) 
    end) 
  
--Серверсайд 
addEvent("onPlayerServerJoin", true) 
addEventHandler("onPlayerServerJoin", resourceRoot, 
    function(thePlayer) 
        timer = setTimer( 
            function(thePlayer) 
                outputConsole("Лалка 1") 
                fadeCamera(thePlayer, true) 
                outputConsole("Лалка 2") 
                setCameraTarget(thePlayer, thePlayer) 
                setElementPosition(thePlayer, 2291.3086, -2548.2273, 24.6980) 
                setElementRotation(thePlayer, 0, 0, 90) 
                outputConsole("Лалка 3") 
                setElementDimension(thePlayer, i) 
                setCameraMatrix(thePlayer, 2288.8086, -2550.7273, 26.6980, 2291.3086, -2548.2273, 24.1980) 
                setElementModel(thePlayer, 299) 
                outputConsole("Лалка 4") 
                outputChatBox("#FF0000"..getPlayerName(thePlayer).." #212121зашёл на сервер", resourceRoot, 255, 255, 255, true) 
                killTimer(timer) 
                outputConsole("Лалка 5") 
            end, 2*1000, 1) 
        i=i+1 
    end) 

Единственное спасение - это перезагрузка ресурса не выходя с сервера

addEventHandler("onResourceStart", resourceRoot, 
    function() 
        for k, z in ipairs(getElementsByType("player")) do 
            fadeCamera(z, true) 
            setCameraTarget(z, z) 
            setElementPosition(z, 2291.3086, -2548.2273, 24.6980) 
            setElementRotation(z, 0, 0, 90) 
            setElementDimension(z, i) 
            setCameraMatrix(z, 2288.8086, -2550.7273, 26.6980, 2291.3086, -2548.2273, 24.1980) 
            setElementModel(z, 299) 
        end 
    end) 

Отчаялся, решил написать в скайп в конфу, но все оффлайн, поэтому решил сделать тут тему с вопросом.

Вторая проблема - это проблема с перемещением по карте - оно как бы не доступно. Мне подсказали, что может быть у меня установлена функция setElementFrozen на true при спавне или старте сервера (в обоих файлах), но данной функции не было найдено в моём коде. Я решил добавить её, и указать на игрока и дать значение false.

--Серверсайд 
addEventHandler("onPlayerSpawn", resourceRoot, 
    function() 
        fadeCamera(thePlayer, true) 
        setElementFrozen(thePlayer, false) 
    end) 
  
--Клиентсайд 
addEventHandler("OnClientPlayerSpawn", localPlayer, 
    function() 
        guiSetVisible(leftskin,  true) 
        guiSetVisible(spawnskin, true) 
        guiSetVisible(rightskin, true) 
        showCursor(false) 
        setCameraTarget(localPlayer, localPlayer) 
        local zxc = math.random(1, 7) 
        setElementPosition(localPlayer, SpawnPointX[zxc], SpawnPointY[zxc], SpawnPointZ[zxc]) 
        setElementFrozen(localPlayer, false)         
    end) 

Мне кажется, что какая-то другая функция замораживает игрока при спавне, например функция, связанная с камерой, но я в этом пока не уверен. Заранее благодарю.

Link to comment

Ты вообще про параметры функций знаешь? Читаешь на вики что расписано про каждую из них? Про дебагскрипт? Что это у тебя за аргумент в серверной функции 'thePlayer'? Ты пытаешься выполнять действия для того, чего вообще не существует. На клиентской же стороне, камера будет затемняться только при значении false. И приучайся работать с постоянно включенном режимом отладки /debugscript 3, сразу куча вопросов может отпасть.

Link to comment
Ты вообще про параметры функций знаешь? Читаешь на вики что расписано про каждую из них? Про дебагскрипт? Что это у тебя за аргумент в серверной функции 'thePlayer'? Ты пытаешься выполнять действия для того, чего вообще не существует. На клиентской же стороне, камера будет затемняться только при значении false. И приучайся работать с постоянно включенном режимом отладки /debugscript 3, сразу куча вопросов может отпасть.

По идее thePlayer это же тот-же source, только игрок. (с source тоже не проканало)

Дебагскрипт ничего мне не сказал, никаких ошибок и варнов не давал.

Link to comment
По идее thePlayer это же тот-же source, только игрок.

Вот именно что "по идее", только непонятно по чьей. В каждой функции описывается, что является для нее 'source'. А твой 'thePlayer' это лишь один из аргументов некоторых совершенно других функций.

(с source тоже не проканало)

Странно, а у меня почему-то все проканало:

addEventHandler("onPlayerJoin", getRootElement(), 
    function() 
        outputConsole("Лалка 1") 
        fadeCamera(source, true) 
        outputConsole("Лалка 2") 
        setCameraTarget(source, source) 
        setElementPosition(source, 2291.3086, -2548.2273, 24.6980) 
        setElementRotation(source, 0, 0, 90) 
        outputConsole("Лалка 3") 
        setElementDimension(source, i) 
        setCameraMatrix(source, 2288.8086, -2550.7273, 26.6980, 2291.3086, -2548.2273, 24.1980) 
        setElementModel(source, 299) 
        outputConsole("Лалка 4") 
        outputChatBox("#FF0000"..getPlayerName(source).." #212121зашёл на сервер", getRootElement(), 255, 255, 255, true) 
        outputConsole("Лалка 5") 
        i=i+1 
    end) 

Дебагскрипт ничего мне не сказал, никаких ошибок и варнов не давал.

Потому что функция просто не выполнялась.

Link to comment

Надо ставить root, т.к. именно к нему присоединяются новые ветви игроков, а не на ресурс.

onClientPlayerJoin не работает для локалПлейер, т.к. скрипт запусается после подключения.

Link to comment
Я знаю, что функция не выполняется, как её можно активировать? Возможно ли влияние Криминальной России на это?

Уахаха, я так ржал) Путин виноват, влияет плохо)

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