Pular para o conteúdo

Objetos

Compartilhada

Objetos são os modelos livres que você espalha pelo mundo: rampas, caixas, portões, móveis. Eles existem no servidor e são replicados para todos os jogadores, inclusive para quem entrar depois.

As funções que recebem coordenadas aceitam tanto números soltos quanto um Vector3 no lugar deles — createObject(1337, Vector3(x, y, z)) e moveObject(obj, 2000, Vector3(x, y, z)) funcionam normalmente. setObjectScale também aceita um Vector3 no lugar dos três fatores.

Um objeto também pode ser entregue ao motor de física — veja a física dinâmica abaixo.

Os objetos criados por um resource são destruídos junto com ele.

Estas 20 funções existem no servidor e no cliente. Você pode usá-las em scripts declarados em server_files, client_files ou shared_files.

No servidor o nome não diferencia maiúsculas de minúsculas; no cliente ele precisa ser escrito exatamente como na tabela ("InOutQuad", não "inoutquad").

LinearInQuadOutQuad
InOutQuadOutInQuadInElastic
OutElasticInOutElasticOutInElastic
InBackOutBackInOutBack
OutInBackInBounceOutBounce
InOutBounceOutInBounceSineCurve
CosineCurve

Os argumentos periodo e amplitude só têm efeito nas curvas Elastic; excesso só afeta as curvas Back.

Exemplo

-- portão que sobe em 3 segundos
local portao = createObject(980, 1544.0, -1353.0, 328.0)
addCommandHandler("abrir", function()
moveObject(portao, 3000, 1544.0, -1353.0, 334.0)
end)
-- plataforma que gira meia volta enquanto atravessa a sala
moveObject(plataforma, 5000, 2050.0, 1400.0, 10.0, 0, 0, 180, "InOutQuad")

Um objeto comum fica onde você o pôs. setElementDynamicPhysics o entrega ao motor de física: ele cai, é empurrado e rola na máquina de todos os jogadores, com a máquina do jogador mais próximo do objeto conduzindo a simulação. Enquanto o estado estiver ligado, moveObject recusa o objeto — dê velocidade a ele com setElementVelocity, ou chute-o com impulseDynamicProp. Quando ele para, o servidor dispara o onDynamicObjectRest. Até max_dynamic_physics_objects deles (128 por padrão) podem ser simulados ao mesmo tempo.

Um prop dinâmico é a mesma ideia desde o nascimento: createDynamicProp cria um objeto do servidor já caindo, feito para substituir um pedaço do mapa estático, e convertDynamicProp é a versão do cliente.

Massa, massa de rotação, resistência do ar, elasticidade, empuxo e centro de massa são os valores de simulação do motor para um objeto. Uma mudança feita no servidor chega a todos os jogadores; uma feita num cliente fica naquela máquina.

NomeDescrição
"mass"Massa do objeto. Não aceita valor negativo.
"turn_mass"Massa de rotação: o quanto ele resiste a girar. Não aceita valor negativo.
"air_resistance"Resistência do ar.
"elasticity"O quanto ele quica ao bater.
"buoyancy"Empuxo: o quanto ele flutua na água.
"center_of_mass"Centro de massa, em três coordenadas relativas ao objeto.
"all"Só na leitura: devolve todas as anteriores de uma vez, numa tabela.

Os nomes das propriedades não diferenciam maiúsculas de minúsculas.