AriosJentu Posted February 4, 2014 Share Posted February 4, 2014 Здравствуйте. Я вчера начал пилить системку, сразу после того, как научился пилить триггеры (и сразу-же обновил тему о 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
AMARANT Posted February 4, 2014 Share Posted February 4, 2014 Ты вообще про параметры функций знаешь? Читаешь на вики что расписано про каждую из них? Про дебагскрипт? Что это у тебя за аргумент в серверной функции 'thePlayer'? Ты пытаешься выполнять действия для того, чего вообще не существует. На клиентской же стороне, камера будет затемняться только при значении false. И приучайся работать с постоянно включенном режимом отладки /debugscript 3, сразу куча вопросов может отпасть. Link to comment
AriosJentu Posted February 4, 2014 Author Share Posted February 4, 2014 Ты вообще про параметры функций знаешь? Читаешь на вики что расписано про каждую из них? Про дебагскрипт? Что это у тебя за аргумент в серверной функции 'thePlayer'? Ты пытаешься выполнять действия для того, чего вообще не существует. На клиентской же стороне, камера будет затемняться только при значении false. И приучайся работать с постоянно включенном режимом отладки /debugscript 3, сразу куча вопросов может отпасть. По идее thePlayer это же тот-же source, только игрок. (с source тоже не проканало) Дебагскрипт ничего мне не сказал, никаких ошибок и варнов не давал. Link to comment
AMARANT Posted February 5, 2014 Share Posted February 5, 2014 По идее 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
AriosJentu Posted February 5, 2014 Author Share Posted February 5, 2014 Я знаю, что функция не выполняется, как её можно активировать? Возможно ли влияние Криминальной России на это? Link to comment
AriosJentu Posted February 5, 2014 Author Share Posted February 5, 2014 Всё, заработало, возможно потому, что я исправил resourceRoot yf getRootElement(getThisResource()) осталось только разобраться с обездвиженностью персонажа. Link to comment
TheNormalnij Posted February 5, 2014 Share Posted February 5, 2014 Надо ставить root, т.к. именно к нему присоединяются новые ветви игроков, а не на ресурс. onClientPlayerJoin не работает для локалПлейер, т.к. скрипт запусается после подключения. Link to comment
Narrator Posted February 11, 2014 Share Posted February 11, 2014 Я знаю, что функция не выполняется, как её можно активировать? Возможно ли влияние Криминальной России на это? Уахаха, я так ржал) Путин виноват, влияет плохо) Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now