Objetos
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.
Curvas de suavização
Seção intitulada “Curvas de suavização”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").
Linear | InQuad | OutQuad |
InOutQuad | OutInQuad | InElastic |
OutElastic | InOutElastic | OutInElastic |
InBack | OutBack | InOutBack |
OutInBack | InBounce | OutBounce |
InOutBounce | OutInBounce | SineCurve |
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 segundoslocal 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 salamoveObject(plataforma, 5000, 2050.0, 1400.0, 10.0, 0, 0, 180, "InOutQuad")Física dinâmica
Seção intitulada “Física dinâmica”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.
Propriedades
Seção intitulada “Propriedades”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.
| Nome | Descriçã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.