TaHkep Posted June 17, 2012 Share Posted June 17, 2012 хочу сделать телепорт, который телепортирует игроков с определенными скинами. все сделал, но в консоле выдает ошибку base_us\teleport.lua:67 Bad argumen @ 'getElmentModel' когда становлюсь на маркер (ну и конечно не телепортирует) запускал на клиентской части-даже маркеры не создаются пробовал без проверки на скин-все работает сам скрипт: function Makemarker () local theMarker1a = createMarker ( 1213.4, -1670.1, 26.3, "cylinder", 1.5, 255, 0, 0, 70 ) setElementData ( theMarker1a, "teleportid", 1 ) local theMarker1b = createMarker ( 1217, -1692.6, 18.7, "cylinder", 1.5, 255, 0, 0, 70 ) setElementData ( theMarker1b, "teleportid", 2 ) local theMarker2a = createMarker ( 1233.2, -1632.5, 26.3, "cylinder", 1.5, 0, 255, 0, 70 ) setElementData ( theMarker2a, "teleportid", 3 ) local theMarker2b = createMarker ( 1234.1, -1616.6, 12.5, "cylinder", 1.5, 0, 255, 0, 70 ) setElementData ( theMarker2b, "teleportid", 4 ) local theMarker3a = createMarker ( 1282.4, -1689, 33.8, "cylinder", 1.5, 0, 0, 255, 70 ) setElementData ( theMarker3a, "teleportid", 5 ) local theMarker3b = createMarker ( 1281.1, -1641.7, 26.3, "cylinder", 1.5, 0, 0, 255, 70 ) setElementData ( theMarker3b, "teleportid", 6 ) end addEventHandler ( "onResourceStart", getRootElement(), Makemarker ) function Teleporthit ( hitPlayer, matchingDimension ) local teleportid = getElementData ( source, "teleportid" ) if teleportid == 1 then local uss1 = { [67] = true, [29] = true, [105] = true, [106] = true, [107] = true, [111] = true, [311] = true, [112] = true, [113] = true } if uss1[ getElementModel ( thePlayer ) ] then setElementPosition ( hitPlayer, 1219, -1692.6, 19.7 ) end end local teleportid = getElementData ( source, "teleportid" ) if teleportid == 2 then local uss2 = { [67] = true, [29] = true, [105] = true, [106] = true, [107] = true, [111] = true, [311] = true, [112] = true, [113] = true } if uss2[ getElementModel ( thePlayer ) ] then setElementPosition ( hitPlayer, 1213.4, -1668.1, 27.3 ) end end local teleportid = getElementData ( source, "teleportid" ) if teleportid == 3 then local uss3 = { [67] = true, [29] = true, [105] = true, [106] = true, [107] = true, [111] = true, [311] = true, [112] = true, [113] = true } if uss3[ getElementModel ( thePlayer ) ] then setElementPosition ( hitPlayer, 1234.1, -1614.6, 13.5 ) end end local teleportid = getElementData ( source, "teleportid" ) if teleportid == 4 then local uss4 = { [67] = true, [29] = true, [105] = true, [106] = true, [107] = true, [111] = true, [311] = true, [112] = true, [113] = true } if uss4[ getElementModel ( thePlayer ) ] then setElementPosition ( hitPlayer, 1233.2, -1634.5, 27.3 ) end end local teleportid = getElementData ( source, "teleportid" ) if teleportid == 5 then local uss5 = { [67] = true, [29] = true, [105] = true, [106] = true, [107] = true, [111] = true, [311] = true, [112] = true, [113] = true } if uss5[ getElementModel ( thePlayer ) ] then setElementPosition ( hitPlayer, 1281.1, -1639.7, 27.3 ) end end local teleportid = getElementData ( source, "teleportid" ) if teleportid == 6 then local uss6 = { [67] = true, [29] = true, [105] = true, [106] = true, [107] = true, [111] = true, [311] = true, [112] = true, [113] = true } if uss6[ getElementModel ( thePlayer ) ] then setElementPosition ( hitPlayer, 1282.4, -1687, 34.8 ) end end end думаю, что проблема в том, что я не очень отличаю клиентскую и серверную сторону, хотя createMarker и getElementModel работают с обоих сторон помогите пожалуйста Link to comment
TaHkep Posted June 17, 2012 Author Share Posted June 17, 2012 еще пробовал onClientResourceStart, тоже маркеры не создаются Link to comment
Kenix Posted June 17, 2012 Share Posted June 17, 2012 Переменная thePlayer нигде не определена. Link to comment
TaHkep Posted June 17, 2012 Author Share Posted June 17, 2012 (edited) function Teleporthit ( hitPlayer, matchingDimension, thePlayer ) так? Edited June 17, 2012 by Guest Link to comment
Kenix Posted June 17, 2012 Share Posted June 17, 2012 function Makemarker ( thePlayer ) так? В событии onResourceStart есть всего 1 аргумент - это запущенный ресурс, а не игрок. Upd function Teleporthit ( hitPlayer, matchingDimension, thePlayer ) так? Нет. Ты просто добавляешь аргумент, но в любом случае он будет nil. https://wiki.multitheftauto.com/index.ph ... troduction Link to comment
TaHkep Posted June 17, 2012 Author Share Posted June 17, 2012 не понял. вот стоит переменная if uss1[ getElementModel ( thePlayer ) ] then где её нет? Link to comment
_Vincent_ Posted June 17, 2012 Share Posted June 17, 2012 Ты видимо думаешь, что thePlayer - это всегда переменная с игроком? Так вот, такой переменной нет! Чтобы получить игрока, тебе нужно либо обработчик события/команды задействоавть, либо каким-нибудь образом отобрать нужного из таблицы getElementsByType("player"). А вообще тебе правильную ссылку дали на "введение в скриптинг". Link to comment
TaHkep Posted June 17, 2012 Author Share Posted June 17, 2012 введение прочитал, как-то не помогло Link to comment
Mc_Trekkie Posted June 17, 2012 Share Posted June 17, 2012 (edited) Мы можем тебе дать код,но ты ничего не поймёшь,а просто скопируешь. ( uss3[getElementModel ( source )] ) , ( uss3[getElementModel ( hitPlayer)] ) Пробуй. Edited June 17, 2012 by Guest Link to comment
TaHkep Posted June 17, 2012 Author Share Posted June 17, 2012 тогда объясните где ошибка, потому что вики не помогла Link to comment
Mc_Trekkie Posted June 17, 2012 Share Posted June 17, 2012 Как раньше говорил мне Кеникс(Он и щас так говорит) УЧИТЕ ЛУА!!! viewtopic.php?f=141&t=32458 Link to comment
Kenix Posted June 17, 2012 Share Posted June 17, 2012 Причем тут луа, сейчас дело не в луа. TaHkep, Ты должен заменить переменную thePlayer на переменную hitPlayer. Я писал, что thePlayer переменная не определена. Я думаю, что можно было самому догадаться Link to comment
Mc_Trekkie Posted June 17, 2012 Share Posted June 17, 2012 Причем тут луа, сейчас дело не в луа. В луа,если он не знает что нужно указывать что за thePlayer. Если ты понимаешЬ,о чём Я. P.S Ну и коод... Link to comment
TaHkep Posted June 17, 2012 Author Share Posted June 17, 2012 работает понял в чем ошибка, спасибо Link to comment
TaHkep Posted June 17, 2012 Author Share Posted June 17, 2012 нет, реально понял: нужно было указать, что модель скина нужно узнать у игрока который стоит на маркере, а я написал что просто у игрока Link to comment
Mc_Trekkie Posted June 17, 2012 Share Posted June 17, 2012 viewtopic.php?f=141&t=38632 Сюда лучше по таким вопросом. 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