Sabtu, 24 September 2016

3.Sanny Builder- TIPE DATA

Tipe Data

: (Double point) menandai Label (alamat)



CODE
:MAIN_1


@ Digunakan untuk 2 fungsi yang berbeda

1. dalam instruksi melompat untuk menandai label yang harus dicapai


CODE
004D: jump_if_false @SAVE_5
0050: gosub @SAVE_14
0002: jump @SAVE_1


2. untuk menandai VARIABEL LOKAL

Hal-hal dalam permainan membutuhkan identitas untuk pendaftaran untuk dapat menangani dengan itu
Identitas dapat variabel, untuk exemble dengan menghitung sesuatu

Variabel lokal dibangun dengan tanda @ dan nomor
0@, 1@, ... 30@ dari 0@ hingga 31@ mungkin, 32@ dan 33@ adalah untuk timer, yang maksimum dalam sebuah file Cs

1@ mendefinisikan generator mobil yang diparkir
CODE
014B: 1@ = init_parked_car_generator #PCJ600 0 17 1 alarm 0 door_lock 0 0 10000 at 2490.0 -1682.0 13.5 angle 90.0

1@ kemudian dapat digunakan lebih lanjut sebagai nama variabel generator mobil yang diparkir
CODE
014C: set_parked_car_generator 1@ cars_to_generate_to 101



$ Digunakan untuk menandai GLOBAL VARIABLE

Hal-hal dalam permainan membutuhkan identitas untuk pendaftaran untuk dapat menangani dengan itu
Identitas dapat variabel, untuk exemble dengan menghitung sesuatu

Variabel global dibangun dengan tanda $ dan surat atau kata atau nomor atau keduanya
Tetapi menggunakan variabel global dalam script Cleo dapat menyebabkan bug berat atau crashs
hanya $PLAYER_CHAR, $PLAYER_ACTOR, $ONMISSION berlaku

global, lokal, whats itu?
variabel global yang digunakan dalam main.scm untuk berkomunikasi antara benang yang berbeda
variabel lokal juga digunakan dalam main.scm tetapi mereka tidak dapat berkomunikasi antara benang yang berbeda
Anda dapat membuat mobil dengan variabel LOCAL di thread sebagai 1@ dan juga dengan 1@ di thread lain main.scm
1@ = create_car
Anda memiliki kemudian 2 mobil yang berbeda, diperintahkan dari 2 benang yang berbeda

Anda dapat membuat mobil dengan variabel GLOBAL di thread tapi tidak menggunakan lagi sama global untuk membuatnya lagi di thread lain.
$mycar5 = create_car
Tapi Anda bisa memerintahkan mobil dari thread lain dari main.scm dengan menggunakan variabel GLOBAL
Paling sedikit:
Variabel GLOBAL adalah storable, variabel LOCAL tidak

Tapi tidak menggunakan variabel global dalam skrip Cleo karena mereka dapat menyebabkan bug berat atau crashs
hanya $PLAYER_CHAR, $PLAYER_ACTOR, $ONMISSION berlaku

# Menandai masuknya terhubung sebagai nama file dari modul loadable
CODE
0247: load_model #BMYCG
0247: load_model #HMYCM
0247: load_model #SWATVAN
0247: load_model #M4
0247: load_model #COLT45

Untuk Cleo hanya dapat digunakan model yang didefinisikan dalam vehicles.idepeds.ide atau default.ide
Model-model lain perlu menggunakan nomor ID mereka

'...' String pendek untuk memasukkan huruf atau angka seperti GXT memasukkan nama atau nama entri IPL khusus
CODE
03A4: name_thread 'MAIN'
0917: audio_zone 'BEACH' enable_sound 0
00BA: show_text_styled GXT 'INTRO_1' time 1000 style 2
0299: activate_garage 'MODLAST'
07FB: set_interior 'GYM1' access 1  // Ganton Gym
0390: load_txd_dictionary 'LD_BEAT'
076C: set_zone 'GAN1' gang 1 density_to 25


"..." String panjang untuk memasukkan huruf atau angka seperti animation- dan nama file IFP, bagian nama tubuh, nama partikel, dll ...
CODE
087B: set_player $PLAYER_CHAR clothes_texture "PLAYER_FACE" model "HEAD" body_part 1
038F: load_texture "DOWN" as 1 // Load dictionary with 0390 first
0605: actor -1 perform_animation_sequence "DAN_LOOP_A" IFP_file "DANCING" 4.0 loop 1 0 0 0 time -1 // versionA
0674: set_car_model #GREENWOO numberplate "GROVE4L_"
0245: set_actor 5@ walk_style_to "GANG2"
064B: 25@ = create_particle "EXPLOSION_MOLOTOV" at 2010.0 -1610.0 16.5 type 1


Untuk mengatur entri string sama dengan nama variabel harus digunakan opcodes khusus dan diperpanjang tanda-tanda variabel
05AA:
05A9:
06D2:
06D1:
selanjutnya dapat string juga diganti dengan variabel dengan menggunakan tanda-tanda variabel diperpanjang

@s - lokal-string-variabel
CODE
05AA: 5@s = 'FEM_OK'
00BC: show_text_highpriority GXT 5@s time 10000 flag 1


s$ - global yang-string-variabel
Perhatian dengan menggunakan vars global dalam script cleo, dapat menyebabkan bug atau crash!
CODE
05A9: s$Actor_Speech_GXT_Reference = 'CATX_UA'  // ~z~Carl, you are a f*cking idiota!                  
00BC: show_text_highpriority GXT s$Actor_Speech_GXT_Reference time 10000 flag 1
05AA: 5@s = s$Actor_Speech_GXT_Reference
00BC: show_text_highpriority GXT 5@s time 10000 flag 1


@v - lokal panjang-string-variabel
CODE
06D2: 28@v = "LAPDAN1" // @v = string
0812: AS_actor $PLAYER_ACTOR perform_animation "LAPDAN_P" IFP_file 28@v 1000.0 loopA 0 lockX 0 lockY 0 lockF 1 time -1



v$ - global yang panjang string variabel
Perhatian dengan menggunakan vars global dalam script cleo, dapat menyebabkan bug atau crash!
CODE
06D1: v$1225 = "Bat_block"// 16-byte strings                  
0605: actor $PLAYER_ACTOR perform_animation_sequence v$1225 from_file "BASEBALL"  4.0  1  0  0  0 -1 ms

Rabu, 21 September 2016

2.Sanny Builder - EDITOR

Editor

Fungsi utama dapat ditemukan sebagai tombol icon di menu bar

1. Decompile: Sanny membuka file naskah dengan ekstensi 
 .CS.CM atau .SCM

2. Compile:  sanny mengkompilasi secara default untuk [Name]main.SCM 
Sanny compiles automaticly ke file Cleoscript, jika skrip memiliki Cleo-Direktive sebagai entri

{$CLEO .cs} = Cleo-Direktive, akan compiled ke Name.CS
{$CLEO .cm} = Cleo-Direktive, akan compiled ke Name.CM

3.








ALAT YANG BERGUNA

Pilih ALAT pada menu, maka IDE Tools >> Coords Manajer
untuk membaca x,y,z koordinat dan z-sudut posisi pemain saat ini jika permainan berjalan

Pilih ALAT pada menu, maka IDE Tools >> Opcode Cari
untuk mencari opcodes
ketik kata kunci untuk menemukan codeline yang meliputi kata ini
atau ketik opcode untuk menemukan description
temuan selalu ada garis main.scm asli
Alat pencarian opcode mengharuskan untuk menciptakan opcode.txt di Sanny Builder 3 \ data folder \ sa
Memuat decompile asli utama ke builder sanny kemudian pilih ALAT pada menu sanny, maka: membuat opcodes.txt















nomor baris
Pilih ALAT, maka opsi
di menu pilihan EDITOR Anda dapat menemukan fitur untuk mengganti nomor Baris / di
Nomor baris adalah bagian dari editor, bukan dari script

Bantuan sanny builder
Pilih HELP pada menu, kemudian Konten untuk menemukan informasi,
seperti seperti nomor key_press, nomor senjata, bodyparts dll ..











____________________________________________________________________________
____________________________________________________________________________


Pilihan: pandangan yang berbeda dari kode decompiled

Pilih ALAT, maka opsi
dalam pilihan menu GENERAL Anda dapat menemukan fitur untuk beralih antara 2 cara untuk mengurai

baik decompile dengan menulis opcodes
atau decompiling tanpa opcodes







1. Menulis OpcodesSemua entri ditampilkan dengan opcodes mereka
Opcodes adalah kode program nyata dari fungsi script
dan dengan menunjukkan mereka adalah seperti melihat nama perintah
Script dengan opcodes:
CODE
:CARSL_6439
00D6: if
00E1:   player 0 pressed_key 16
004D: jump_if_false @CARSL_6535
010B: 5@ = player $PLAYER_CHAR money
00D6: if
002D:   5@ >= 14@ // (int)
004D: jump_if_false @CARSL_6512
0012: 14@ *= -1
0109: player $PLAYER_CHAR money += 14@
0002: jump @CARSL_6700

2. Tanpa Opcodes
Script ini lebih ramping, mungkin lebih jelas (tapi tidak bagi saya)
terutama  004D: jump_if_false sekarang akan jf
Tapi tidak semua opcodes yang menghilang. Banyak kode harus digunakan lebih lanjut dengan menerapkan opcodes mereka.
Script tanpa opcodes:

CODE
:CARSL_6439
if
00E1:   player 0 pressed_key 16
jf @CARSL_6535
5@ = Player.Money($PLAYER_CHAR)
if
002D:   5@ >= 14@ // (int)
jf @CARSL_6512
14@ *= -1
Player.Money($PLAYER_CHAR) += 14@
jump @CARSL_6700

Dengan menyusun tidak masalah jika Anda menggunakan kode dengan opcodes atau tanpa opcodes
Anda dapat menggabungkan segala sesuatu dan sanny kompilasi juga,
asalkan kode ini benar dan codelines yang meliputi opcodes oleh mengurai tanpa opcodes
harus digunakan lebih lanjut dengan menggunakan opcodes

Sebuah fitur khusus oleh decompiling tanpa opcodes adalah menerjemahkan perintah berdasarkan opcode ke
Kelas dan Kata Kunci

Untuk beberapa kode dapat digunakan CLASSES
Baca lebih lanjut tentang kelas di Sanny Builder-HELP tema: Coding >> Kelas

Kode ini dengan decompiling dengan tulisan opcodes
00AB: put_car 22@ at -1577.942 52.6333 40.0 

akan ditampilkan oleh decompiling dengan tanpa opcodes dalam jenis:

Car.PutAt22@ , -1577.942, 52.6333, 40.0) 

arti dari kode didefinisikan oleh entri kelas

CAR = class-nama
Putat = kelas-anggota
nama dan anggota digabungkan dengan sebuah titik di tengah
22@ = kelas-pemilik
kelas-pemilik dan parameter ditempatkan dalam kurung dan dipisahkan dengan tanda koma
(Parameter = informasi yang dibutuhkan untuk perintah)

Sanny memungkinkan untuk menggunakan beberapa KEYWORDS bukan menggunakan opcodes

Opcode = Keyword
_____________
0001: = wait
00d6: = if
004d: = else_jump
004d: = jf
0002: = jump
0051: = return
0050: = gosub
016a: = fade
01B6: = set_weather
03a4: = thread
04BB: = select_interior
0417: = start_mission
00d8: = mission_cleanup
0317: = increment_mission_attempts


Instead writing
004D: jump_if_false @MAIN_6
can be written
jf @MAIN_6
or
else_jump @MAIN_6
you also can merge it
004D: jf @MAIN_6


____________________________________________________________________________
____________________________________________________________________________
< LAYAR UTAMA >< 1 ><3

1.Sanny Builder Tutorial - Mulai untuk pemula

Langkah pertama dalam scripting Cleo dengan Sanny Builder

Download versi terbaru dari Sannybuilder dari Seeman di http://sannybuilder.com/

Instal Sanny Builder dan membuat folder untuk script Anda

Kemudian mulai Sanny Builder,

Membuka halaman kosong baru, salin script di bawah ini dan masukkan ke dalam halaman baru.
CODE
{$CLEO .cs}
:DEMOTEXT
03A4: name_thread "DEMO"
wait 1000

:DEMOTEXT_1
wait 0
if
0256:   player $PLAYER_CHAR defined
004D: jump_if_false @DEMOTEXT_1
if
00E1:   key_pressed  0  17
004D: jump_if_false @DEMOTEXT_1
00BA: text_styled 'FEM_OK'  1000 ms  1
0A93: end_custom_thread

Simpan di folder Sannyscript Anda dan memberikan nama.





Compile script itu. Klik pada ikon menu dengan untuk memilih Compile + Copy
Jika CLEO - Perpustakaan/library terinstal, script akan disusun dan disalin ke GTA SA \ CLEO - folder

Maka file Cleo script dapatkan ekstensi file, yang ditulis dalam direktif Cleo Script pada awal script

{$CLEO .cs} =  Cleo direktif akan dikompilasi ke *.cs
Sebagai DEMOTEXT.txt disimpan dan disusun sebagai DEMOTEXT.cs
__________________________________________________________________________

Jika CLEO tidak terpasang, maka sannybuilder akan meminta Anda untuk melakukannya dan di sudut kanan bawah dari editor Tampaknya CLEO - kotak dengan perbatasan merah. Klik dan Sanny Builder menginstal Cleo segera. Atau mendownload yang cleo auto install exe di http://cleo.sannybuilder.com
__________________________________________________________________________

Jika proses kompilasi berhasil Anda mendapatkan lalu pesan laporan




klik OK untuk mengkonfirmasi
nilai yang lebih rendah "Script Terbesar" menunjukkan ukuran file script
nilai-nilai lain milik proses penyusunan sebuah main.scm







Uji maka script ingame, press fire button untuk menampilkan pesan teks "OK"
Script berakhir kemudian, akan dinonaktifkan karena berakhir dengan opcode 0A93: end_custom_thread
_____________________________________________________________________________
_____________________________________________________________________________
< LAYAR UTAMA >< 2 >