[SA]Travar veículos no Packer
Enviado: 20 Jun 2019, 01:19
Um mod CLEO que trava os veículos em cima do Packer. Ideia do Crowdigger
Obs:
Me avise caso dê algum bug estranho
Ou alguma sugestão
Imagens:
Agora dá pra colocar na rampa debaixo!
Graças ao mod "Packer com veículos"



Código-fonte
- Entre e saia do Packer
- Coloque um ou dois veículos na rampa de cima um atrás do outro seja de frente ou de trás(tecnicamente não é necessário, mas quando for travar os carros vão teleportar pra cima do caminhão com a rotação que estiverem)
Coloque os veículos na ordem lógica, se for 2 coloque embaixo; caso acima de 2, primeiro em cima depois embaixo.
- Entre no Packer (suba a rampa,não é necessário mas os carros irão ficar flutuando) e Pressione [ÍNSERT] para travar os veículos.
- Para destravar pressione [DELETE]
Obs:
- Alguns carros podem não encostar totalmente a roda ou afundarem na rampa por ter tamanhos diferentes
- Os veículos ficam intangíveis em cima do Packer, pra não bugar a câmera
Me avise caso dê algum bug estranho
Ou alguma sugestão
Imagens:
Agora dá pra colocar na rampa debaixo!


Código-fonte
Código: Selecionar tudo
SCRIPT_START
{
NOP
LVAR_FLOAT angle[4] angle_truck temp[4]
LVAR_INT truck car[5] player id i n z LockKey UnlockKey rot[4] rot2[4]
READ_INT_FROM_INI_FILE "cleo/packer.ini" "CONFIG" "LockKey" LockKey
READ_INT_FROM_INI_FILE "cleo/packer.ini" "CONFIG" "UnlockKey" UnlockKey
GET_PLAYER_CHAR 0 player
main:
WAIT 0
i = 0
n = 0
WHILE NOT IS_CHAR_IN_ANY_CAR player
WAIT 0
ENDWHILE
GET_CAR_CHAR_IS_USING player truck
GET_CAR_MODEL truck id
IF NOT id = 443 //Checa se é um Packer
GOTO main
ENDIF
PRINT_FORMATTED "~g~On" 1000
WHILE IS_CHAR_IN_CAR player truck //Espera o player sair do caminhao
WAIT 0
IF IS_CAR_DEAD truck
MARK_CAR_AS_NO_LONGER_NEEDED truck
GOTO main
ENDIF
IF IS_CHAR_DEAD player
MARK_CAR_AS_NO_LONGER_NEEDED truck
GOTO main
ENDIF
ENDWHILE
GOSUB Choose
i = 1
GOSUB Choose
i = 2
GOSUB Choose
i = 3
GOSUB Choose
WHILE NOT IS_CHAR_IN_CAR player truck
WAIT 0
ENDWHILE
WHILE NOT IS_KEY_PRESSED LockKey
WAIT 0
ENDWHILE
grudar:
GOSUB Attach
WAIT 2000
WHILE NOT IS_KEY_PRESSED UnlockKey
WAIT 0
IF IS_CAR_DEAD truck
GOTO end
ENDIF
GOSUB Check
ENDWHILE
end:
WAIT 0
GOSUB Detach
WHILE IS_CHAR_IN_CAR player truck
WAIT 0
ENDWHILE
GOTO main
Choose:
//Loop pra escolher o carro
wait 0
WHILE TRUE
WAIT 0
IF IS_CHAR_IN_ANY_CAR player
IF NOT IS_CHAR_IN_CAR player truck
GET_CAR_CHAR_IS_USING player car
[i] n++
PRINT_FORMATTED "~y~%d" 1000 n
WHILE IS_CHAR_IN_CAR player car[i] //Espera sair do carro
WAIT 0
IF IS_CAR_DEAD truck
GOTO end
ENDIF
IF IS_CHAR_DEAD player
GOTO end
ENDIF
ENDWHILE
BREAK
ELSE
IF n = 0
GOTO main
ENDIF
WHILE IS_CHAR_IN_CAR player truck
WAIT 0
IF IS_KEY_PRESSED LockKey
GOTO grudar
ENDIF
ENDWHILE
ENDIF
ENDIF
IF IS_KEY_PRESSED LockKey
GOSUB Attach
RETURN
ENDIF
IF IS_CAR_DEAD truck
GOTO end
ENDIF
ENDWHILE
RETURN
Attach:
//Travar
WAIT 0
PRINT_FORMATTED "~y~Travado" 1000
z = 0
GET_CAR_HEADING truck angle_truck
WHILE NOT z = n
WAIT 0
GET_CAR_HEADING car[z] temp[z] //Calculo do angulo
angle[z] = angle_truck - temp[z]
CSET_LVAR_INT_TO_LVAR_FLOAT rot[z] angle[z]
MOD rot[z] 360 rot2[z]
CSET_LVAR_FLOAT_TO_LVAR_INT angle[z] rot2[z]
CLOSE_ALL_CAR_DOORS car[z]
SET_CAR_ENGINE_ON car[z] 0
SET_CAR_LIGHTS_ON car[z] 0
z++
ENDWHILE
SWITCH n
CASE 1
ATTACH_CAR_TO_CAR car[0] truck 0.0 -1.5 0.6 0.0 0.0 angle[0] //Trava o carro
SET_CAR_COLLISION car[0] 0
BREAK
CASE 2
ATTACH_CAR_TO_CAR car[0] truck 0.0 -1.5 0.6 0.0 0.0 angle[0]
ATTACH_CAR_TO_CAR car[1] truck 0.0 -7.0 0.18 13.0 0.0 0.0
SET_CAR_COLLISION car[0] 0
SET_CAR_COLLISION car[1] 0
BREAK
CASE 3
ATTACH_CAR_TO_CAR car[0] truck 0.0 1.5 2.40 0.0 0.0 angle[0]
ATTACH_CAR_TO_CAR car[1] truck 0.0 -1.5 0.6 0.0 0.0 angle[1]
ATTACH_CAR_TO_CAR car[2] truck 0.0 -7.0 0.18 13.0 0.0 0.0
SET_CAR_COLLISION car[0] 0
SET_CAR_COLLISION car[1] 0
BREAK
CASE 4
ATTACH_CAR_TO_CAR car[0] truck 0.0 1.5 2.40 0.0 0.0 angle[0]
ATTACH_CAR_TO_CAR car[1] truck 0.0 -4.5 2.45 0.0 0.0 angle[1]
ATTACH_CAR_TO_CAR car[2] truck 0.0 -1.5 0.6 0.0 0.0 angle[2]
ATTACH_CAR_TO_CAR car[3] truck 0.0 -7.0 0.18 13.0 0.0 0.0
SET_CAR_COLLISION car[0] 0
SET_CAR_COLLISION car[1] 0
BREAK
ENDSWITCH
RETURN
Check:
WAIT 0
z = 0
WHILE NOT z = n
WAIT 0
IF IS_CHAR_IN_CAR player car[z]
DETACH_CAR car[z] 0.0 0.0 0.0 1
MARK_CAR_AS_NO_LONGER_NEEDED car[z]
ENDIF
z++
ENDWHILE
RETURN
Detach:
//Destrava
WAIT 0
z = 0
PRINT_FORMATTED "~r~Destravado" 1000
WHILE NOT z = n
WAIT 0
SET_CAR_COLLISION car[z] 1
DETACH_CAR car[z] 0.0 0.0 0.025 1
z++
ENDWHILE
RETURN
}
SCRIPT_END[/i][/i]