Jump to content

Общий мини "HELP ME" топик по скриптингу


Recommended Posts

Код покажи нам.

У меня вообще не в каких случаях не копирует она колшейпы.

Ну, допустим, так:

cloneElement(createColSphere(1, 2, 3, 4)) 

Да, я проверил. Колшейп не клонируется вообще никак

Link to comment
  • 3 weeks later...

Всем хай))

Я на форуме новичок так, что если напортачу с оформлением сильно не пинайте :D

Интересует такой вопрос существует каоелибо ограничение на информацию хранимую

В функциях setAccountData/getAccountData?

Если нет то как объяснить что это код

  
Local box = {} 
For n=o do 0 
box[n]={} 
box[n].id=-1 
box[n].col=0 
end 
setAccountData(akk, "ble",toJONS(box)) 
Cat(getAccountData(akk, "ble",toJONS(box))) 
  

Выводит не весь массив а лиге до пятого элемента причём без всякого закрывания скобок как буд то данные попросто не вместились!!

Ps про обрезание дробной части в вещественных числах я знаю tostring не помогло

Pss cat это не ошибка это функция вывода она рабочая!!

Link to comment

Lua - регистрзависимый язык. local не тоже самое, что и Local, с for так же.

Максимум 255 символов, если не изменяет память. Пробуй более удобнее хранить значения, например организовав структуру и работая с бинарными данными или разделив значения, ну или используете свою дб.

Link to comment

На счёт регистра учту, спасибо)

Можешь по подробней объяснить на счёт организации структуры и приведении её к бинарному виду?

Просто вариант с БД как то смущает...

Link to comment
  • 2 weeks later...
Можно ли как-то восстановить показ худа после изменения параметров камеры функцией setCameraMatrix ?

showPlayerHudComponent

Пробовал. Ничего не даёт. А вот радар как показывал, так и показывает, всё остальное пропадает.

Link to comment
Можно ли как-то восстановить показ худа после изменения параметров камеры функцией setCameraMatrix ?

showPlayerHudComponent

Пробовал. Ничего не даёт. А вот радар как показывал, так и показывает, всё остальное пропадает.

Может, проблема в коде? Я использовал, все работало.

Создавал зону, где вырубаются датчики и радары с картой. Все работало безупречно. После выхода с зоны все включалось.

Link to comment
addCommandHandler("hud", 
    function() 
        showPlayerHudComponent("all", true) 
    end 
) 
  
addCommandHandler("cam", 
    function() 
        local x,y,z = getElementPosition(localPlayer) 
        setCameraMatrix(x, y, z+10, x, y, z) 
    end 
) 

Попробуй введи /cam - с хада всё пропадет, кроме радара. /hud никакого эфекта не даст.

Link to comment
addCommandHandler("hud", 
    function() 
        showPlayerHudComponent("all", true) 
    end 
) 
  
addCommandHandler("cam", 
    function() 
        local x,y,z = getElementPosition(localPlayer) 
        setCameraMatrix(x, y, z+10, x, y, z) 
    end 
) 

Попробуй введи /cam - с хада всё пропадет, кроме радара. /hud никакого эфекта не даст.

addCommandHandler("hud", 
    function() 
        showPlayerHudComponent("all", false) -- false, чтобы убрать. 
    end 
) 

Link to comment

Всем привет. У меня проблема, когда я захожу на маркер открываются ворота, а когда захожу повторно, нет ни каких действий, а по идеи ворота должны закрыться, я думаю что это из-за того что status[markerParent] не меняется на 'open'. Пожалуйста помоги решить эту проблему. скрипт TCT

local dist3d = getDistanceBetweenPoints3D 
local status = {} 
  
addEventHandler ( "onMarkerHit", resourceRoot, 
    function (hitElement,matchingDimension ) 
        if matchingDimension ~= true then 
            return 
        end 
        markerParent = getElementParent (source) 
        status[markerParent] = 'close' 
        if getElementType ( markerParent ) ~= "object" and getElementType ( markerParent ) ~= "marker"  then 
            return 
        end 
        for _, trigger in ipairs ( getElementsByType ( "trigger", source ) ) do 
            local triggerData = getAllElementData ( trigger ) 
            local x, y, z = getElementPosition ( markerParent )     
        if dist3d ( x, y, z, triggerData.startX, triggerData.startY, triggerData.startZ ) <  dist3d ( x, y, z, triggerData.endX, triggerData.endY, triggerData.endZ) then 
             if status[markerParent] == 'close' then 
                moveObject ( markerParent, triggerData.time, triggerData.endX, triggerData.endY, triggerData.endZ,triggerData.endrX, triggerData.endrY, triggerData.endrZ)  
              setTimer(function()status[markerParent] = 'open' end,triggerData.time,1) 
              end 
                else 
             if status[markerParent] == 'open' then 
                moveObject( markerParent, triggerData.time, triggerData.startX, triggerData.startY, triggerData.startZ ) 
              setTimer(function()status[markerParent] = 'close' end,triggerData.time,1)    
            end 
          end 
       end 
    end )   

Link to comment
Всем привет. У меня проблема, когда я захожу на маркер открываются ворота, а когда захожу повторно, нет ни каких действий, а по идеи ворота должны закрыться, я думаю что это из-за того что status[markerParent] не меняется на 'open'. Пожалуйста помоги решить эту проблему. скрипт TCT
local dist3d = getDistanceBetweenPoints3D 
local status = {} 
  
addEventHandler ( "onMarkerHit", resourceRoot, 
    function (hitElement,matchingDimension ) 
        if matchingDimension ~= true then 
            return 
        end 
        markerParent = getElementParent (source) 
        status[markerParent] = 'close' 
        if getElementType ( markerParent ) ~= "object" and getElementType ( markerParent ) ~= "marker"  then 
            return 
        end 
        for _, trigger in ipairs ( getElementsByType ( "trigger", source ) ) do 
            local triggerData = getAllElementData ( trigger ) 
            local x, y, z = getElementPosition ( markerParent )     
        if dist3d ( x, y, z, triggerData.startX, triggerData.startY, triggerData.startZ ) <  dist3d ( x, y, z, triggerData.endX, triggerData.endY, triggerData.endZ) then 
             if status[markerParent] == 'close' then 
                moveObject ( markerParent, triggerData.time, triggerData.endX, triggerData.endY, triggerData.endZ,triggerData.endrX, triggerData.endrY, triggerData.endrZ)  
              setTimer(function()status[markerParent] = 'open' end,triggerData.time,1) 
              end 
                else 
             if status[markerParent] == 'open' then 
                moveObject( markerParent, triggerData.time, triggerData.startX, triggerData.startY, triggerData.startZ ) 
              setTimer(function()status[markerParent] = 'close' end,triggerData.time,1)    
            end 
          end 
       end 
    end )   

Попробуйте заменить 'triggerData.time' на число.

Link to comment

Пробуй

local dist3d = getDistanceBetweenPoints3D 
local status = {} 
      
addEventHandler ( "onMarkerHit", resourceRoot, 
    function (hitElement,matchingDimension ) 
        if matchingDimension ~= true then 
            return 
        end 
        markerParent = getElementParent (source) 
        status[markerParent] = 'close' 
        if getElementType ( markerParent ) ~= "object" and getElementType ( markerParent ) ~= "marker"  then 
            return 
        end 
         
        local x, y, z = getElementPosition ( markerParent ); 
         
        local aTriggers = getElementsByType ( "trigger", source ); 
         
        for _, trigger in ipairs ( aTriggers ) do 
            local triggerData = getAllElementData ( trigger ) 
             
            if dist3d ( x, y, z, triggerData.startX, triggerData.startY, triggerData.startZ ) <  dist3d ( x, y, z, triggerData.endX, triggerData.endY, triggerData.endZ) then 
                if status[markerParent] == 'close' then 
                    moveObject ( markerParent, triggerData.time, triggerData.endX, triggerData.endY, triggerData.endZ,triggerData.endrX, triggerData.endrY, triggerData.endrZ) 
                    setTimer(function()status[markerParent] = 'open' end,triggerData.time,1) 
                elseif status[markerParent] == 'open' then 
                    moveObject( markerParent, triggerData.time, triggerData.startX, triggerData.startY, triggerData.startZ ) 
                    setTimer(function()status[markerParent] = 'close' end,triggerData.time,1)   
                end 
            end 
        end 
    end  
);   

Link to comment
  • 2 weeks later...

Здравствуйте, у меня небольшой вопрос с функцией outputChatBox.

Следуя примеру вики

outputChatBox ( "#FF0000Hello #00FF00World", getRootElement(), 255, 255, 255, true ) 

делаю таким образом.

И на выходе должно быть Hello World, но я получаю "#FF0000Hello #00FF00World".

Попробовав еще варианты,

outputChatBox ( "Красный#FFFFFF:Белый", 255, 0, 0) 

выводит Красный#FFFFFF:Белый.

Как сделать так, что бы было Красный Белый?

Link to comment
Здравствуйте, у меня небольшой вопрос с функцией outputChatBox.

Следуя примеру вики

outputChatBox ( "#FF0000Hello #00FF00World", getRootElement(), 255, 255, 255, true ) 

делаю таким образом.

И на выходе должно быть Hello World, но я получаю "#FF0000Hello #00FF00World".

Попробовав еще варианты,

outputChatBox ( "Красный#FFFFFF:Белый", 255, 0, 0) 

выводит Красный#FFFFFF:Белый.

Как сделать так, что бы было Красный Белый?

Посмотрите отличие между клиентской и серверной версией функции.

Link to comment

Есть БД под MySQL. Какие уже только кодировки не ставил - никак не принимает кириллицу. Не подскажите ли, какую кодировку ставить полям в БД или, может быть, нужно какие-нибуть преобразования в самом скрипте делать ?

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