terça-feira, 21 de dezembro de 2010

Como criar mods cleo 3 n° 1

Irei colocar aqui alguns tutoriais como criar scripts cleo (arquivos *.cs)
Irá precisar apenas do programa Sanny Builder.

Tutorial 1 - Sobre Cheats em CLEO
Descrição:
Esse Tutorial ensina à criar cheats em CLEO,
como o do mod do portal, entre outros.
Irei usar como exemplo um cheat para spawnar
um Shamal quando ativado.
O Código:

{$CLEO .cs}
:androm
03A4: name_thread 'shamal'

:start
0001: wait 0 ms
0A8D: 0@ = read_memory 0x00969110 size 4 virtual_protect 0
00D6: if 1
04A4: 0@ == 0x5354495050 //stipp
004D: jump_if_false @start


:start_0
0247: request_model #SHAMAL
038B: load_requested_models

:check
0001: wait 0 ms
00D6: if and
0248: model #SHAMAL available
004D: jump_if_false @check

03E5: text_box 'CHEAT1' // Cheat Ativado
04C4: store_coords_to 3@ 4@ 5@ from_actor $PLAYER_ACTOR with_offset 0.0 9.8 0.0
00A5: 6@ = create_car #SHAMAL at 3@ 4@ 5@
0224: set_car 6@ health_to 3000
08A4: set_car 6@ extra_parts_angle_to 1.0

0249: release_model #SHAMAL

0A8C: write_memory 0x00969110 size 4 value 0 virtual_protect 0
0002: jump @start

Abra seu Sanny Builder [http://sannybuilder.com]
e cole todo o código que está nesse .txt, salve com
o nome que quiser e compile, copie esse arquivo
para a pasta "CLEO" e teste, entre no jogo e digite
"stipp", um shamal irá aparecer perto de você.
Tá, mas como mudo esse cheat "stipp" para outro?
De uma olhada na linha 9:
04A4: 0@ == 0x5354495050 //stipp
Repare o codigo marrom; 0x5354495050
Agora tire o "0x" dele, ficando assim:
5354495050
Cada 2 números desses que sobraram representa
uma letra:
53 = S
54 = T
49 = I
50 = P
50 = P
Para trocar basta saber quais números representam
tal letra, eis a tabela dos caracteres hexadecimais
?
//40 @
//41 A
//42 B
//43 C
//44 D
//45 E
//46 F
//47 G
//48 H
//49 I
//4A J
//4B K
//4C L
//4D M
//4E N
//4F O
//50 P
//51 Q
//52 R
//53 S
//54 T
//55 U
//56 V
//57 W
//58 X
//59 Y
//5A Z
Faça seus testes, Enjoy

Tutorial 2 - Reproduzir sons com scripts cleo

O titulo já diz tudo, código:

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
thread 'LUKASS'
0000: NOP

:LUKASS_13
wait 0
if
0AB0: key_pressed 82 // 82 simboliza a letra R.
else_jump @LUKASS_76
0AAC: 1@ = load_mp3 "CLEO\SOUND\SOM.MP3" // é o diretorio do som
0AAD: set_mp3 1@ perform_action 1
0AAE: release_mp3 1@
Player.Money($PLAYER_CHAR) += 100

:LUKASS_76
jump @LUKASS_13
return

Na sétima linha, o 82 é o comando que ativará o script, pode trocá-lo com a tabela a seguir:

//40 @
//41 A
//42 B
//43 C
//44 D
//45 E
//46 F
//47 G
//48 H
//49 I
//4A J
//4B K
//4C L
//4D M
//4E N
//4F O
//50 P
//51 Q
//52 R
//53 S
//54 T
//55 U
//56 V
//57 W
//58 X
//59 Y
//5A Z

Enjoy

Tutorial 3 - Spawn de Carros

Aprenda com esse tutorial à criar spawns de carros com scripts em CLEO

A primeira coisa a se fazer é ter todas as ferramentas necessárias para a Edição/Compilação/Decompilação de arquivos .CS do CLEO, Abaixo o que você precisa:

SANNY BUILDER: Download

O CODIGO DE SPAWN: Clique aqui para ver

TOOL P/ PEGAR COORDENADAS: Recomendo o Place Manager Clique aqui para ver

Instale o Sanny Builder Normalmente e quando pedir para selecionar a pasta do seu SA (selecione-a) e conclua a instalação.

Abra o programa (Sanny Builder), clique em Novo/New, pegue o codigo de spawn, copie todo ele e cole no programa, ficando assim:



O Proximo passo é editar esse codigo, para que ele funcione corretamente no Jogo.

Abaixo uma pequena legenda do codigo que irá explicar tudo:

############

$MEU_CARRO = Substitua por qualquer coisa, ex: $CARRO_DO_ZEH, mas lembre-se que:

- Nas 2 linhas (014b e 014c) esse nome tem que ser igual:

014B: $MEU_CARRO (...)

014C: set_parked_car_generator $MEU_CARRO (...)

[EDIT] Para mais spawns, basta copiar as 2 linhas e ir colocando umas abaixo das outras respectivamente, caso de algum problema no spawn, use a mesma váriavel para todas as linhas, no caso: $MEU_CARRO

############

#NOME OU ID DO CARRO = Substitua tudo isso pelo nome ou ID do carro que você quiser, abaixo uma lista completa dos IDs dos carros do SA separados por Categorias:

( Clique aqui p/ ver a página com os IDs )

Quando optar por ponhar o ID, ponhe apenas o número, mas caso optar por ponhar o nome, ponhe #NOMEDOVEICULO, sim, isso mesmo, com # na frente!

############

COORD X COORD Y COORD Z = Substitua pelas coordenadas que você pegou, isso mesmo, substitua tudo pela suas coordenadas:

- COORD X = Coordenada X

- COORD Y = Coordenada Y

- COORD Z = Coordenada Z

Ficando +- assim, exemplo:

12345.33 654321.11 987654.22

############

ANGULO = Substitua pelo ângulo (direção que o carro estará: Leste, Oeste, Norte, Sul)

O Place Manager não captura o ângulo, más você pode ir colocando váriaveis diferentes até ajustar o carro na posição que você quiser.

Abaixo os ângulos em default (Leste, Oeste, Norte, Sul):

0 =

90 =

180 =

270 =

Lembrando que, para o ângulo funcionar corretamente, acrescente .0, ficando por exemplo: 270.0 !

Pronto, agora é só compilar o script :)

Vá até Iniciar/Start >> Compilar/Compile.

Compilado o script, copie-o para a pasta "cleo" (\Rockstar Games\San Andreas\cleo).

Inicie o jogo e vá até o local ver se o carro está spawnado :D

OBS: Algumas vezes ocorre de o veiculo não aparecer, não se preocupe, vá até outro lugar e depois volte, o veiculo estará lá.


Tutorial criado por Eduardo Stipp.

Tirado daqui

Tutorial 4 - Criando Saves

{$VERSION 3.1.0027}
{$CLEO .cs}
// Created by STIPP_VICE
//-------------MAIN---------------
thread 'SAVE'
0A95: enable_thread_saving

4@ = 123 //Coordenada X
5@ = 123 //Coordenada Y
6@ = 123 //Coordenada Z

:SAVE_13
1@ = Pickup.Create(1277, 3, 4@, 5@, 6@)// Isso criar o "disquete" no local desejado.
0570: 15@ = create_asset_radar_marker_with_icon 35 at 4@ 5@ 6@ // Isso coloca um icone de save no radar
018B: set_marker 15@ radar_mode 2 // Modo do icone no radar

:SAVE_67
wait 0
if
Player.Defined($PLAYER_CHAR)
else_jump @SAVE_67
if
Pickup.Picked_up(1@)
else_jump @SAVE_67
if
$ONMISSION == 0 // Em missão = 1 // Fora de missão 0
else_jump @SAVE_67
wait 100
03D8: show_save_screen // Isso faz com que apareça a tela de save conhecida por todos

:SAVE_127
if
83D9: not save_done // Isso checa se o save foi concluido com sucesso
wait 0
else_jump @SAVE_151
jump @SAVE_127

:SAVE_151
wait 100
Player.CanMove($PLAYER_CHAR) = True
wait 10000
jump @SAVE_13

Nenhum comentário:

Postar um comentário

Por favor deixe um comentário e sempre ajude-me a melhorar!

Curta-nos no Facebook

Clique em Curtir, não custa nada!!!