Jump to content

хееелп


Recommended Posts

хочу сделать телепорт, который телепортирует игроков с определенными скинами.

все сделал, но в консоле выдает ошибку 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
function Makemarker ( thePlayer ) так?

В событии onResourceStart есть всего 1 аргумент - это запущенный ресурс, а не игрок.

Upd

function Teleporthit ( hitPlayer, matchingDimension, thePlayer ) так?

Нет. Ты просто добавляешь аргумент, но в любом случае он будет nil.

https://wiki.multitheftauto.com/index.ph ... troduction

Link to comment

Ты видимо думаешь, что thePlayer - это всегда переменная с игроком?

Так вот, такой переменной нет!

Чтобы получить игрока, тебе нужно либо обработчик события/команды задействоавть, либо каким-нибудь образом отобрать нужного из таблицы getElementsByType("player").

А вообще тебе правильную ссылку дали на "введение в скриптинг".

Link to comment

Причем тут луа, сейчас дело не в луа.

TaHkep, Ты должен заменить переменную thePlayer на переменную hitPlayer. Я писал, что thePlayer переменная не определена. Я думаю, что можно было самому догадаться :)

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