Pesquisa resultou em 7 ocorrências
Voltar para “[GTA-PS2] Scripts”
- 03 Nov 2019, 09:42
- Fórum: Tutoriais
- Tópico: [GTA-PS2] Scripts
- Respostas: 19
- Exibições: 6506
- Gênero:
Re: [GTA-PS2] Scripts
TUTORIAL RECRIADO (AQUILO NEM ERA UM TUTORIAL)
- 09 Mar 2019, 17:27
- Fórum: Tutoriais
- Tópico: [GTA-PS2] Scripts
- Respostas: 19
- Exibições: 6506
- Gênero:
Re: [GTA-PS2] Scripts
Diogo Santos escreveu: ↑09 Mar 2019, 13:42Eu não entendo como funciona isso de adicionar o Cleo no gta de ps2 e tals, mas ae, no ps2 tinham aqueles games shark, game genie/code breaker uns elfs de por trapaças, aquilo poderia ser útil para algo assim?
Antes era, hoje não mais, pois já existem formas de alterar o código em tempo real nos testes
- 09 Mar 2019, 10:49
- Fórum: Tutoriais
- Tópico: [GTA-PS2] Scripts
- Respostas: 19
- Exibições: 6506
- Gênero:
Re: [GTA-PS2] Scripts
Confundi o código do scm com código do elf
- 08 Mar 2019, 12:54
- Fórum: Tutoriais
- Tópico: [GTA-PS2] Scripts
- Respostas: 19
- Exibições: 6506
- Gênero:
Re: [GTA-PS2] Scripts
Irei testar o código depois, só falta achar um espaço no código, mas antes eu pretendo terminar o modloader/asi loader
- 07 Mar 2019, 02:43
- Fórum: Tutoriais
- Tópico: [GTA-PS2] Scripts
- Respostas: 19
- Exibições: 6506
- Gênero:
Re: [GTA-PS2] Scripts
Se tá sendo difícil implementar a Cleo no PS2 (que foi uma das primeiras no PC), imagina LUA, que ainda nem tem suporte completoJunior_Djjr escreveu: ↑07 Mar 2019, 02:29
"Não vale a pena fazer algo quase impossível, é melhor partir pra algo impossível".
- 02 Fev 2019, 20:15
- Fórum: Tutoriais
- Tópico: [GTA-PS2] Scripts
- Respostas: 19
- Exibições: 6506
- Gênero:
Re: [GTA-PS2] Scripts
Se fica muito bugado significa que ainda não é viável, vou testar depoisVINICIAAO escreveu: ↑29 Jan 2019, 10:43Daniel69 EU Descobri Que Da Para Colocar os Efeitos(EFFECTS) de PC no PS2
Mas Tem Que Mexer no TXD o Ruim Que Fica Bugado(Ou eu Que Sou Burro)
Ps. Testei no Emulador, Usei o Overdose Effects
- 31 Dez 2018, 11:09
- Fórum: Tutoriais
- Tópico: [GTA-PS2] Scripts
- Respostas: 19
- Exibições: 6506
- Gênero:
[GTA-PS2] Scripts
Índice de tutoriais
1. Tudo dentro do possível...
Estou reescrevendo este tutorial, pois percebi que exitem pouquíssimos tutoriais de main.scm pela internet, e os que existem, não são satisfatórios, então resolvi fazer o meu próprio, mas você também precisa fazer um esforço para as coisas darem certo, portanto, irei passar os requisitos mínimos para que possamos seguir com o tutorial.
1. Tudo dentro do possível...
Estou reescrevendo este tutorial, pois percebi que exitem pouquíssimos tutoriais de main.scm pela internet, e os que existem, não são satisfatórios, então resolvi fazer o meu próprio, mas você também precisa fazer um esforço para as coisas darem certo, portanto, irei passar os requisitos mínimos para que possamos seguir com o tutorial.
Requisitos mínimos:
Um PC qualquer
Um PS2
Ler e entender os tutoriais de Sanny Builder
Para um melhor entendimento e aplicação, também irei passar os requisitos recomendados:
Um PC que rode o emulador de PS2
Ler e entender os tutoriais de Sanny Builder
Ler e entender os tutoriais de GTA3Script
Ler e entender o Learn GTA3Script in Y minutes.
Um PC qualquer
Um PS2
Ler e entender os tutoriais de Sanny Builder
Para um melhor entendimento e aplicação, também irei passar os requisitos recomendados:
Um PC que rode o emulador de PS2
Ler e entender os tutoriais de Sanny Builder
Ler e entender os tutoriais de GTA3Script
Ler e entender o Learn GTA3Script in Y minutes.
Note que removi a necessidade de um PS2, caso você tenha um computador razoável que rode o PCSX2, isso facilita e deixa os testes muito mais rápidos, e antes que me venha falar que o emulador não é o PS2, saiba que ele foi feito para funcionar com o PS2, inclusive a "BIOS" usada neles é extraída de consoles reais, ou seja, o que de mod não funciona no emulador, não funciona no PS2, ponto.
2. Colocando as coisas na prática
Existem dois métodos para criação de scripts para PS2, utilizando Sanny Builder ou Visual Studio Code, para qualquer um dos casos, os tutoriais estão linkados no trecho abaixo de "requisitos recomendados". Mas pera aí, Daniel, por qual motivo você está indicando tutoriais de CLEO Scripting, sendo que o GTA San Andreas de Playstation 2 ainda não possui uma biblioteca CLEO? A Biblioteca CLEO (erroneamente chamada de livraria, falso cognato) adiciona apenas cerca de 100 opcodes para facilitar e aumentar as possibilidades para mods, mas é uma ínfima quantidade comparada a quantidade de opcodes originais, pouco mais de 2300, então, dependendo do tipo e nível de complexidade do mod que deseja criar/portar, o uso de Opcodes CLEO não é algo absolutamente necessário.
2. Colocando as coisas na prática
Existem dois métodos para criação de scripts para PS2, utilizando Sanny Builder ou Visual Studio Code, para qualquer um dos casos, os tutoriais estão linkados no trecho abaixo de "requisitos recomendados". Mas pera aí, Daniel, por qual motivo você está indicando tutoriais de CLEO Scripting, sendo que o GTA San Andreas de Playstation 2 ainda não possui uma biblioteca CLEO? A Biblioteca CLEO (erroneamente chamada de livraria, falso cognato) adiciona apenas cerca de 100 opcodes para facilitar e aumentar as possibilidades para mods, mas é uma ínfima quantidade comparada a quantidade de opcodes originais, pouco mais de 2300, então, dependendo do tipo e nível de complexidade do mod que deseja criar/portar, o uso de Opcodes CLEO não é algo absolutamente necessário.
Mas afinal, quais são esses opcodes que não podemos utilizar?
Opcodes que fazem parte da CLEO, e também os específicos para o PC e Xbox. Fiz uma lista, vou por em spoiler abaixo, pois ela é imensa:
Opcodes que não podem ser utilizados pelo PS2Abrir
- 0A49: is_xbox_version
- 0A4A: get_pc_mouse_movement 201@ 202@
- 0A4B: is_pc_using_joypad
- 0A4C: is_mouse_using_vertical_inversion
- 0A4D: is_japanese_version
- 0A4E: is_xbox_player2_pressing_start
- 0A8C: write_memory 0xC0BC15 size 1 val 1 vp 0
- 0A8D: read_memory 1@ size 4 vp 0 store_to 0@
- 0A8E: 4@ = 5@ + 6@
- 0A8F: 4@ = 1@(0@,2i) - 1
- 0A90: 30@ = 100 * 1@
- 0A91: 0@ = 8 / 2
- 0A92: start_new_custom_script "ShowTextBox.s"
- 0A93: terminate_this_custom_script
- 0A94: launch_custom_mission "missions\Custom\Mission1"
- 0A95: save_this_custom_script
- 0A96: get_char_pointer $PLAYER_ACTOR store_to 0@
- 0A97: get_car_pointer 0@ store_to 1@
- 0A98: get_object_pointer 0@ store_to 1@
- 0A99: chdir 0
- 0A9A: open_file "settings.ini" mode 0x72 store_to 0@
- 0A9B: close_file 0@
- 0A9C: get_file_size 0@ store_to 1@
- 0A9D: read_from_file 0@ size 2 store_to 1@
- 0A9E: write_to_file 0@ size 128 from 0@
- 0A9F: get_this_script_struct 0@
- 0AA0: else_gosub @CREATE_NEW_ACTOR
- 0AA1: else_return
- 0AA2: load_dynamic_library "CLEO\version.dll" store_to 0@
- 0AA3: free_dynamic_library 0@
- 0AA4: get_dynamic_library_procedure "GetVersion" library 0@ store_to 1@
- 0AA5: call_function 0@ num_params 1 pop 1 params 1@
- 0AA6: call_method 0x6A3440 struct 0@ num_params 0 pop 0
- 0AA7: call_function_return 0x569660 num_params 2 pop 2 0@ 1@ store_to 2@
- 0AA8: call_method_return 0x4048E0 struct 0xB74494 num_params 1 pop 0 params 0@ store_to 1@
- 0AA9: is_game_version_original
- 0AAA: get_script_struct_named 'OTB' store_to 0@
- 0AAB: does_file_exist "cleo\version.dll"
- 0AAC: load_audio_stream "CLEO\playlist\1.mp3" store_to $hMP3
- 0AAD: set_audio_stream_state $hMP3 to 1
- 0AAE: release_audio_stream $hMP3
- 0AAF: get_audio_stream_length $hMP3 store_to 0@
- 0AB0: is_key_pressed 0x73
- 0AB1: call @GetSQR 1 10 store_to 0@
- 0AB2: ret 1 0@
- 0AB3: set_cleo_shared_var 0 to 10
- 0AB4: get_shared_cleo_var 0 store_to 0@
- 0AB5: store_closest_entities $PLAYER_ACTOR vehicle_to 0@ ped_to 1@
- 0AB6: get_target_blip_coordinates 0@ 1@ 2@
- 0AB7: get_car_number_of_gears 0@ store_to 10@
- 0AB8: get_car_current_gear $CAR store_to 11@
- 0AB9: get_audio_stream_state 0@ store_to 7@
- 0ABA: terminate_all_custom_scripts_with_this_name 'BENZIN'
- 0ABB: get_audio_stream_volume $hMP3 store_to 0@
- 0ABC: set_audio_stream_volume $hMP3 to 0@
- 0ABD: is_car_siren_on 0@
- 0ABE: is_car_engine_on 0@
- 0ABF: cleo_switch_car_engine 0@ to 0
- 0AC0: set_audio_stream_looped $hMP3 to 1
- 0AC1: load_3d_audio_stream "sample.mp3" store_to 0@
- 0AC2: set_play_3d_audio_stream_at_coordinates $hMP3 to 0@ 1@ 2@
- 0AC3: set_play_3d_audio_stream_at_object $hMP3 object $object
- 0AC4: set_play_3d_audio_stream_at_char 0@ char 1@
- 0AC5: set_play_3d_audio_stream_at_car 0@ car 1@
- 0AC6: get_label_pointer @label store_to 0@
- 0AC7: get_var_pointer 0@ store_to 0@
- 0AC8: allocate_memory 260 store_to 0@
- 0AC9: free_memory 0@
- 0ACA: print_help_string 0@v
- 0ACB: print_big_string 0@v time 1000 style 1
- 0ACC: print_string 0x969110 time 100
- 0ACD: print_string_now 0x969110 time 100
- 0ACE: print_help_formatted "This is %.4X opcode" 0x0ACE
- 0ACF: print_big_formatted "This is %.4X opcode" time 2000 style 1 0x0ACF
- 0AD0: print_formatted "This is %.4X opcode" time 2000 0x0AD0
- 0AD1: print_formatted_now "This is %.4X opcode" time 2000 0x0AD1
- 0AD2: get_char_player_is_targeting $PLAYER_CHAR store_to 0@
- 0AD3: string_format 0@v format "%d + %d = %d" 2 2 4
- 0AD4: scan_string 0@v format "%d + %d = %d" store_num_results_to 4@ 5@ 6@ 7@
- 0AD5: file_seek $hFile offset 0x10 origin 1
- 0AD6: is_end_of_file_reached 0@
- 0AD7: read_string_from_file 0@ to 1@v size 15
- 0AD8: write_string_to_file $hFile string 0@v
- 0AD9: write_formatted_string_to_file 0@ format "CLEO version: %d.%d.%d.%d" 4 0 0 1
- 0ADA: scan_file 0@ format "CLEO version: %d.%d.%d.%d" store_num_results_to 0@ 0@ 1@ 2@ 3@
- 0ADB: get_name_of_vehicle_model #LANDSTAL store_to 0@v
- 0ADC: test_cheat "BLOWUP"
- 0ADD: spawn_vehicle_by_cheating #RHINO
- 0ADE: get_text_label_string 0@v store_to 0@
- 0ADF: add_text_label "_TEST" text "Test string"
- 0AE0: remove_text_label "_TEST"
- 0AE1: find_all_random_chars_in_sphere 0@ 1@ 2@ radius 10.0 find_next 1 skip_dead 1 store_to 3@
- 0AE2: find_all_random_vehicles_in_sphere 0@ 1@ 2@ radius 10.0 find_next 1 skip_dead 1 store_to 3@
- 0AE3: find_all_random_objects_in_sphere 0@ 1@ 2@ radius 10.0 find_next 1 store_to 3@
- 0AE4: does_directory_exist "CLEO\CLEO_INI"
- 0AE5: create_directory "CLEO\CLEO_INI"
- 0AE6: find_first_file "CLEO\*.cs" store_search_to 0@ store_filename_to 1@v
- 0AE7: find_next_file 0@ store_to 1@v
- 0AE8: find_close 0@
- 0AE9: pop_float 0@
- 0AEA: get_char_pointer_handle 0@ store_to 1@
- 0AEB: get_vehicle_pointer_handle 0@ store_to 1@
- 0AEC: get_object_pointer_handle 0@ store_to 1@
- 0AED: string_float_format 0@ format "%.15g" store_to 1@v
- 0AEE: exp 2.0 base 0.5 store_to 0@
- 0AEF: log 10.0 base 2.718281828459045 store_to 0@
- 0AF0: read_int_from_ini_file "cleo\config.ini" section "SectionName" key "intKey" store_to 0@
- 0AF1: write_int_to_ini_file 16 path "cleo\config.ini" section "SectionName" key "intKey"
- 0AF2: read_float_from_ini_file "cleo\config.ini" section "SectionName" key "floatKey" store_to 0@
- 0AF3: write_float_to_ini_file 0.0 path "cleo\config.ini" section "SectionName" key "floatKey"
- 0AF4: read_string_from_ini_file "cleo\config.ini" section "SectionName" key "string" store_to 0@v
- 0AF5: write_string_to_ini_file "new string value" path "cleo\config.ini" section "SectionName" key "stringKey"
- 0B00: delete_file "CLEO\log.txt"
- 0B01: delete_directory "CLEO\CLEO_SAVES" include_subdirs 0
- 0B02: move_file "CLEO\1.txt" to "CLEO\2.txt"
- 0B03: move_directory "CLEO\dir1" to "CLEO\dir2"
- 0B04: copy_file "CLEO\1.txt" to "CLEO\2.txt"
- 0B05: copy_directory "CLEO\dir1" to "CLEO\dir2"
- 0B10: bitwise_and 0@ and 0xFF store_to 0@
- 0B11: bitwise_or 0@ or 0x80 store_to 0@
- 0B12: bitwise_xor 1@ xor 1 store_to 0@
- 0B13: bitwise_not 0@ store_to 0@
- 0B14: modulo 0@ mod 5 store_to 0@
- 0B15: bitwise_shr 0@ shr 8 store_to 0@
- 0B16: bitwise_shl 0@ shl 8 store_to 0@
- 0B20: read_clipboard_data 0@ size 27
- 0B21: write_clipboard_data 0x969110 size 28
Mesmo com essa lista em mãos, a possibilidade de colocar um opcode errado e crashar seu game é grande, portanto, eu(Daniel69) editei a versão mais recente do Sanny Builder e adicionei mais um "game" na lista inferior direita, o "GTA SA PS2". Com esse modo, você vai poder compilar qualquer código dentro do main.scm do PS2, e caso tenha algum opcode que o PS2 não leia, o Sanny Builder irá gerar um erro e parar o marcador direto no opcode não suportado. NÃO RECOMENDO DESCOMPILAR SCRIPTS USANDO ESTE MODO, para descompilar, use o modo GTA SA SCR, pois não dará nenhum erro na hora de descompilar scripts com comandos CLEO.
Acho que já enrolei demais nessa parte, vamos pegar alguma situação prática.
Código: Selecionar tudo
03A4: script_name "VCAMRIV"
:VCAMRIV_11
0001: wait 0
00D6: if
0256: is_player_playing $PLAYER_CHAR
004D: goto_if_false @VCAMRIV_11
0001: wait 0
00D6: if
80DF: not is_char_in_any_car $PLAYER_ACTOR
004D: goto_if_false @VCAMRIV_11
0001: wait 0
00D6: if
8818: not is_char_in_air $PLAYER_ACTOR
004D: goto_if_false @VCAMRIV_11
0002: goto @VCAMRIV_78
:VCAMRIV_78
0001: wait 0
00D6: if
0256: is_player_playing $PLAYER_ACTOR
004D: goto_if_false @VCAMRIV_78
00D6: if and
80DF: not is_char_in_any_car $PLAYER_ACTOR
86B9: not has_cutscene_loaded
004D: goto_if_false @VCAMRIV_78
0819: get_char_height_above_ground $PLAYER_ACTOR store_to 10@
00D6: if or
8031: not 10@ >= 5.0
0A0C: is_player_using_jetpack $PLAYER_CHAR
004D: goto_if_false @VCAMRIV_78
04C4: get_offset_from_char_in_world_coords $PLAYER_ACTOR offset 0.27 0.2 0.5 store_to 1@ 2@ 3@
0920: camera_set_vector_track 1@ 2@ 3@ to 1@ 2@ 3@ time 100 ease 2
0922: camera_set_lerp_fov 70.0 to 70.0 time 2000 ease 2
00D6: if and
00E1: is_button_pressed 0 button 6
8A0C: not is_player_using_jetpack $PLAYER_CHAR
004D: goto_if_false @VCAMRIV_78
00D6: if and
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 1
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 2
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 3
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 4
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 5
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 6
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 7
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 8
004D: goto_if_false @VCAMRIV_78
00D6: if and
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 9
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 10
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 11
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 12
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 13
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 14
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 15
004D: goto_if_false @VCAMRIV_78
00D6: if and
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 16
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 17
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 18
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 39
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 40
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 44
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 45
82D8: not is_char_holding_weapon $PLAYER_ACTOR weapon 46
004D: goto_if_false @VCAMRIV_78
0002: goto @VCAMRIV_443
:VCAMRIV_443
0925: camera_reset_new_scriptables
0002: goto @VCAMRIV_78
Primeiramente, mude o modo para GTA SA PS2
Após isso, abra o main.scm e procure "start_new_script", e após encontrar, crie mais um com o seu mod, dessa forma:
Depois disso, procure o último script, no meu caso, o :NONAME_2 vá até o fim dele, crie a label do seu mod e cole ele logo abaixo, ficando mais ou menos assim:
Agora, só compilar o main.scm com o botão F6 ou na barra de ferramentas, e seja feliz ;)
Adendo 1:
Aqui abaixo, vou por alguns opcodes CLEO que você pode substituir por convencionais, então, essa parte será atualizada com o passar do tempo.
0A93: terminate_this_custom_script
para
004E: terminate_this_script
0AB0: key_pressed 73
para
00E1: is_button_pressed 0 button 16
(Tabela de botões aqui)
Aqui abaixo, vou por alguns opcodes CLEO que você pode substituir por convencionais, então, essa parte será atualizada com o passar do tempo.
0A93: terminate_this_custom_script
para
004E: terminate_this_script
0AB0: key_pressed 73
para
00E1: is_button_pressed 0 button 16
(Tabela de botões aqui)