createObjectFracture
Quebra um objeto em fragmentos que todos podem ver.
O próprio objeto fica no lugar — escondido, com as colisões desligadas — e um novo elemento de fratura (tipo "fracture") é criado com objetos-fragmento abaixo: cópias do modelo de origem lançadas para fora, entregues à simulação física, inquebráveis e com 1000 de vida. A fratura é replicada para todos os clientes e para quem entrar depois.
Sintaxe
Seção intitulada “Sintaxe”fracture createObjectFracture ( object oObjeto [, table opcoes ] )Parâmetros
Seção intitulada “Parâmetros”| Nome | Tipo | Padrão | Descrição |
|---|---|---|---|
oObjeto | object | — | O objeto a quebrar. |
opcoes | table | — | Qualquer mistura dos campos abaixo; deixe de fora para todos os padrões. |
A tabela opcoes aceita:
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
fragments | number | 16 | Quantos pedaços mirar, limitado a 1–32. Quantos nascem de fato depende do plano de corte. |
force | number | 4 | Força da explosão, limitada a 0–256. |
randomness | number | 0.8 | Quão irregular é o corte, de 0 (uniforme) a 1 (selvagem). |
velocity | number | 1 | Multiplicador de velocidade da explosão, limitado a 0–8. |
gravity | number | 1 | Quão forte os pedaços caem, limitado a 0–100. |
bounce | number | 0.2 | Quanto os pedaços ricocheteiam no impacto, de 0 a 1. |
drag | number | 0.05 | Resistência do ar dos pedaços, de 0 a 1. |
lifetime | number | 90000 | Milissegundos até a fratura terminar e onFractureEnd disparar. 0 significa que nunca termina sozinha. |
renderDistance | number | 0 | Distância de desenho carregada no estado da fratura. |
hideOriginal | bool | true | Se os clientes escondem o objeto de origem. |
disableOriginalCollision | bool | true | Se os clientes desligam as colisões do objeto de origem. |
interFragmentCollisions | bool | false | Carregada no estado da fratura para colisões dos fragmentos entre si. |
collisionMode | number | 0 | Modo de colisão dos fragmentos: 0 caixa, 1 malha. Qualquer valor 1 ou acima seleciona malha. |
paused | bool | false | Nasce com os fragmentos congelados no lugar, no meio da explosão. |
seed | number | 0 | Semente do corte. 0 (ou omitida) escolhe um corte aleatório novo a cada chamada. |
Retorno
Seção intitulada “Retorno”O elemento de fratura, ou false — com um aviso no console de debug — quando o primeiro argumento não é um objeto, ou quando a fratura não pôde ser criada: o objeto já está fraturado, nenhum fragmento sobreviveu ao plano de corte, ou o limite de fragmentos do servidor (256 pedaços ao mesmo tempo por padrão) foi atingido.
O elemento de fratura não fica preso ao recurso que o criou. Ele termina depois do seu lifetime — onFractureEnd dispara logo antes do elemento e seus fragmentos serem destruídos — ou antes se você chamar restoreObjectFracture ou destruir o objeto de origem. onFractureRest dispara uma vez, antes do fim, quando todo fragmento ficou em repouso por um segundo.
Esta função não dispara onObjectFracture; aquele evento é para fraturas que o servidor dispara sozinho quando a vida de um objeto com perfil acaba — veja setObjectFractureProfile.
Exemplo
Seção intitulada “Exemplo”-- um muro que se desfaz sob comandolocal muro = createObject(19444, 331.5, -17.5, 4.0)
addCommandHandler("arrebenta", function(player) local fx = createObjectFracture(muro, { fragments = 24, force = 6, lifetime = 30000 }) if fx then outputChatBox("muro estilhaçado", player) endend)Veja também
Seção intitulada “Veja também”restoreObjectFracture— Desfaz uma fratura, destruindo seus fragmentos e revelando o objeto de origem.getObjectFractureProfile— Devolve o perfil de fratura de um objeto.setObjectFractureProfile— Arma um objeto para fraturar quando a vida de fratura acaba.clearObjectFractureProfile— Remove o perfil de fratura de um objeto.getObjectFractureHealth— Devolve a vida de fratura restante de um objeto.setObjectFractureHealth— Define a vida de fratura restante de um objeto.resetObjectFractureHealth— Devolve a vida de fratura de um objeto ao valor do perfil.