sexta-feira, 9 de outubro de 2009

“carinhas”/characters

Os “carinhas”/characters (tbm chamados de chars, bots, pedestres ou peds, dos quais os dois ultimos representam os pedestres normais do jogo) especiais (pedestres sao criados automaticamente nas areas de pavement do map editor) sao mto importantes qdo vc esta criando missoes ou estruturas de codigo similares. Vc pode dar varios objetivos a eles

criando os chars

Os chars sao criados no script com o seguinte comando:
CHAR_DATA nome ( X.x , Y.y , Z.z ) //Comando Declare
nome = CREATE_CHAR ( X.x , Y.y , Z.z ) remap rotação ocupaçao END
//Comando Set
CREATE_CHAR nome ( X.x , Y.y , Z.z ) remap rotação ocupaçao //Comando Declare & Set

 

nome O nome único do char
( X.x , Y.y , Z.z ) As coordenadas onde ele deve ser criado
remap A cor da roupa dele. Cada remap tem um numero q esta listado no link q sera mostrado no fim do post
rotação A rotaçao do char (0 é sul)
ocupaçao A ocupaçao do char (veja link no fim do post)

Dando objetivos ao char

So criar um char nao tem mta graça; na maioria das vezes vc vai ter so um char parado sem fazer nada. Por isso vc tem q dar objetivo(s) ao(s) char(s) pra deixar ele mais interessante.

SET_CHAR_OBJECTIVE ( nome , objetivo )
SET_CHAR_OBJECTIVE ( nome , objetivo , segundo_item )
SET_CHAR_OBJECTIVE ( nome , objetivo , X.x , Y.y , Z.z )
SET_CHAR_OBJECTIVE ( nome , objetivo , X.x , Y.y , Z.z , rotaçao , distancia )

 

nome o nome do char pra dar objetivo
objetivo o objetivo do char
segundo_item Usado dependendo do obj do char
X.x , Y.y , Z.z "         "                 "     "   "
rotaçao "         "                 "     "   "
distancia "         "                 "     "   "

Exemplo

Vamos criar um policial q qr matar o player a qualquer custo

CHAR_DATA policia ( 126.5 , 112.5 , 2.0 ) 0 0 POLICE
SET_CHAR_OBJECTIVE ( policia , KILL_CHAR_ANY_MEANS , player1 )

Se vc fizer isso, ele vai te atacar socando vc, o q nao combina mto com um policial. Portanto vamos dar a ele uma arma. E tbm, ele vai te perseguir com um Benson marrom, o q tbm nao combina mto com ele. Vamos dá-lo um Cop Car.

GIVE_WEAPON ( policia , PISTOL )
SET_FAVOURITE_MODEL ( policia , COPCAR )

 

Remaps & Ocupaçoes

Aqui vc pode achar uma lista completa de remaps e ocupaçoes de chars.

Read more...

sábado, 3 de outubro de 2009

Sons

Os sons no GTA2 são feitos quase do mesmo jeito que objetos, mas com um comando diferente:

SOUND nome = ( X.x , Y.y , Z.z ) som
PLAY_INSTANT/PLAY_FOREVER



























nome O nome unico do som
( X.x , Y.y , Z.z ) As coordenadas do som
som O tipo de som (ver tabela no fim do post)
PLAY_INSTANT/PLAY_FOREVER Escolher entre tocar uma vez so ou pra sempre, respectivamente




Exemplo


Se vc quiser criar o barulho do órgão da igreja de salvar o jogo nas coords 121.5 , 56.5 , 2.0, tocando pra sempre, o comando vai se parecer com isso:

SOUND orgao ( 121.5 , 56.5 , 2.0 ) CHURCH_SINGING
PLAY_FOREVER


Lista de sons



























































































































































































































































































































Som
Código
Nada WIND
Música com batida forte NIGHT_CLUB
Música com batida forte BAR
Zumbido industrial GENERATOR_RUMBLE
Work shop WORKSHOP
Órgão da igreja CHURCH_SINGING
Mantra Krishna TEMPLE_CHANT
Zumbido industrial INDUSTRIAL_HIGH
Vários gritos de pedestres HUMAN_ABATTOIR
Várias risadas loucas FUNNY_FARM
Alarme de banco BANK_ALARM
Zumbido industrial INDUSTRAL_LOW
Água borbulhando e suspiro PORTA_LOO
Água caindo WATERFALL
Trinado de grilo CRICKETS
Nada PRISON
Alarme de prisão PRISON_ALARM
Gangue gritando “Let us out!” GANG_DUMPED
Várias risadas SMUG_LAUGH
Nada PRISON_YARD
Distúrbio PRISON_RIOT
Gangue gritando “Let us out!” GANG_LOCKED_IN_BUS
Barulho de shopping SHOPPING_MALL
Barulho de relogio CLOCK_TOWER
WHOO! YEEHEEE! (INSTANT apenas) YEEHA_BOMB
Jogo de boliche BOWLING_ALLAY
Nada CROWD_NOISE
Ventilador industrial FAN_NOISE
Nada GENERATOR_LOSE_POWER
Grito (apenas INSTANT) SCREAM
Tic tac” de bomba BOMB_TICK
Merda!/Shit!” BOMB_TICK_SHIT!
Nada DETECTED_MUMBLE
Canto Krishna (do GTA1) KRISHNA_CHANT
Choro (apenas INSTANT) CRYING
Gatilho preso (INSTANT) ROCKET_LAUNCH_FAIL_CLICK
Risada (INSTANT) ROCKET_FAIL_LAUGH
Pedestre envenenado (INSTANT) POISONED
Zumbido industrial POWER_PLANT
Murmuro MUMBLE
Música c/ saxofone JAZZ_CLUB
Música c/ violão COUNTRY_CLUB
Barulho com som de “tic tac” BAR_2
Música com piano profundo STRIP_CLUB
Canto Krishna TEMPLE_2
Garagem abrindo GARAGE_OPEN
Garagem fechando GARAGE_CLOSE
Pessoas gritando “Let us out!” LET_ME_OUT
Água borbulhando VAT
Zumbido industrial PYLON
Nada SKID

Read more...

sábado, 26 de setembro de 2009

Criando objetos, armas e powerups/pickups

Aqui vai ser falado sobre como vc cria armas, powerups ou objetos genericos como cones.

OBJ_DATA




OBJ_DATA nome ( X.x , Y.y , Z.z ) rotação objeto [munição]








nomeUm nome único pro objeto
( X.x , Y.y , Z.z )As coordenadas
rotaçaoA rotaçao do objeto, veja o post do script principal
objetoO tipo de objeto, veja a tabela abaixo
[munição]A munição (so funciona se vc criar uma arma com o comando OBJ_DATA)


Exemplos


Se vc quiser criar uma Rocket Launcher/Bazooka nas coords 85.5 , 79.5 , 2.0, o comando vai se parecer com isso:




OBJ_DATA zooka ( 85.5 , 79.5 , 2.0 ) 0 COLLECT_02 10



E se vc quiser criar um banco nas coords 98.5 , 80.5 , 2.0, virado pro oeste, o comando seria ± assim:




OBJ_DATA banco ( 98.5 , 80.5 , 2.0 ) 270 BENCH



GENERATORs


Vc provavelmente vai querer criar armas e powerups q reaparecem, pra isso existe o comando GENERATOR. Os GENERATORs sao um pouco mais complicados q os OBJ_DATA, pois consistem de duas partes: o GENERATOR em si e o comando que o liga. A primeira parte eh mais ou menos assim:



GENERATOR nome = ( X.x , Y.y , Z.z ) rotaçao tipopickup tmpomin 
tmpomax muniçao











nome
O nome único do GENERATOR. Vc vai precisar dele dps, portanto escolha um nome lembrável
( X.x , Y.y , Z.z )As coordenadas
rotaçaoA rotaçao do pickup/arma
tipopickupO tipo de " / "
tmpominO tempo mínimo que o pickup demora pra reaparecer
tmpomaxO tempo máximo que o pickup demora pra reaparecer
muniçãoA muniçao q vc recebe qdo vc pega a arma


Essa parte do comando apenas declara onde o pickup deve ser colocado, e o q o jogo deve criar, portanto vem antes do LEVELSTART. Agora vc tem q usar o comando SWITCH_GENERATOR, q liga e desliga os GENERATORs. Todos os GENERATORs sao automaticamente colocados como desligados (OFF) e vc tem q ligá-los com o comando SWITCH_GENERATOR depois do levelstart




SWITCH_GENERATOR nomegnrtor ON/OFF






nomegnrtorO nome do generator q vc usou antes
ON/OFFO valor q define se o GENERATOR está ligado (ON) ou desligado (OFF)


Note q o GTA2 nao aguenta mais q 120 GENERATORs

Exemplos


Se vc qr criar uma S-Uzi Machine Gun (SMG/Metralhadora) nas coords 114.5 , 83.5 , 2.0, com 10 de munição, q reaparece a cada mais ou menos um minuto, o código se parecerá com isso:



GENERATOR smg ( 114.5 , 83.5 , 2.0 ) 0 COLLECT_01 1600 1800 10



Lista de codigos


Essa pagina contem uma lista de todos os objetos/armas/powerups q podem ser usados no GTA2. Varios objetos sao feitos de outras coisas retiradas do jogo antes do lançamento e podem ter falhas. O GTA2 Scripting.doc menciona tbm os objetos CROSS, GRAVE e FBI BLOCK, mas esses objetos nao sao reconhecidos pelo Script Compiler.

Read more...

sexta-feira, 25 de setembro de 2009

Criando veiculos

O GTA2 automaticamente cria os veiculos andando nas ruas, apenas os veiculos estacionados e de missoes q tem q ser postos no script.

O comando


Pra criar um carro no script vc usa o seguinte comando:



PARKED_CAR_DATA nome ( X.x , Y.y , Z.z ) remap rotaçao modelo








nomeO nome unico pro carro
( X.x , Y.y , Z.z )As coordenadas nas quais o carro vai ser colocado
remapA cor do carro (veja a lista abaixo)
rotaçaoA rotaçao do veículo (veja o compasso no post do Script principal)
modeloEh o nome do veículo usado no script (nao o do jogo, p.ex. "Panto"; veja a tabela abaixo)


Exemplo


Se vc quiser criar um Z-Type preto nas coords 108.5 , 80.5 , 2.0, rotacionado 45° (virado pra sudeste), o comando se pareceria com isso:



PARKED_CAR_DATA ztype1 ( 108.5 , 80.5 , 2.0 ) 2 VTYPE


Cores e nomes dos veículos no script

















































































































































Veículo
  ↓
Codigo
  ↓
Aniston BD4
AMDB4
Arachnid
SPIDER
Armed Land Roamer
GUNJEEP
A-Type
RTYPE
Beamer

BMW
Benson
MERC
Box Truck
BOXTRUCK
Big Bug
MONSTER
B-Type
STYPE
Bug
BUG
Bus
BUS
Bulwark

BUICK
Container
TRUKCONT
Cop Car
COPCAR
Dementia
ISETTA
Dementia Limousine
ISETLIMO
Eddy
EDSEL
Fire Truck
FIRETRUK
Furore GT

ZCX5
G4 Bank Van
BANKVAN
Garbage Truck
GTRUCK
GT-A1
GT24640
Hachura
STRIPETB
Hot Dog Van
HOTDOG
Ice Cream Van
ICECREAM
Jagular XK

XK120
Jefferson
JEFFREY
Karma Bus
KRSNABUS
Land Roamer
JEEP
Maurice
MORRIS
Medicar
MEDICAR
Meteor
STRATOS
Meteor

STRATOSB
Miara
MIURA
Michelli Roadster
T2000GT
Minx
DART
Morton
MORGAN
Pacifier
APC
Panto
FIAT
Pickup

PICKUP
Romero
ALFA
Rumbler
WBTWIN
Schmidt
MESSER
Shark
GRAHAM
Special Agent Car
EDSELFBI
Sports Limousine
LIMO2
Spritzer

SPRITE
Stinger
STINGRAY
Stretch Limousine
LIMO
SWAT Van
SWATVAN
Tank
TANK
Tanker
TANKER
Taxi
TAXI
Taxi Xpress

STYPECAB
Tow Truck
TOWTRUCK
Trance Am
TRANCEAM
Transporter
TRUKTRNS
T-Rex
TBIRD
Truck Cab
TRUKCAB1
Truck Cab SX
TRUKCAB2
TV Van

TVVAN
U-Jerk Truck
VESPA
Van
VAN
Wellard
ALLARD
Z-Type
VTYPE


Vehicle colors



















































































Cor
  ↓
Codigo
  ↓
14Marrom

0
(Cor padrao, podera ser diferente qdo usada com outros carros como o Eddy)
61Roxo escuro
1
71Preto
2
591Azul

3
57Azul acinzentado
4
41Verde "brilhante"
5
22Vermelho brilhante
6
17Marrom
7
18Marrom
8
56Azul prateado
9
31Amarelo

10
12Creme
11
52Ciano
12
44Bege escuro
13
59Azul escuro
14
58Azul profundo
15
43Verde escuro
16
21Vermelho escuro

17
16Cor-de-ferrugem escura
18
13Dourado
19
42Verde
20
72Cinza
21
32Verde amarelado
22
45Oliva
23
24Laranja

24
54Azul pálido
25
23Cor-de-rosa
26
62Roxo
27
23Vermelho
28
15Cor-de-ferrugem
29
73Prata
30
53Azul céu

31
51Turqueza
32
74Cinza claro
33
75Branco
34
11Amarelo
35
55Azul claro
36
(Só da pra usar com a G4 Bank Van [van do banco])

Read more...

Lista de códigos e comandos

Essa página contém uma lista com os codigos de cores de veículos estacionados (script), remaps de chars (script), nomes dos carros no script, nomes de sons, objetos, armas e powerups pra colocar no script e essa contém todos os comandos usados no script de GTA2 (que estão no documento GTA2 Scripting.doc pela R* Games)

Read more...

domingo, 20 de setembro de 2009

Script compiler (compilador de scripts)

O compilador de scripts eh um programa oficial da DMA Design (atual Rockstar North) q eh usado pra converter arquivos *.mis pra arquivos *.SCR

Compilando um script


Os scripts sao geralmente feitos em editores de texto normais. Pra criar um script usável, vc tem q salvá-lo como um arquivo *.mis. É bom nomear o seu script com o mesmo nome do seu mapa, entao o script de exemplo será chamado MapaTeste.mis. Abra o Script Compiler e carregue seu script em File > Load. O compiler deve se parecer com isso:



Vá em Run > Parser e o compiler imediatamente ira começar a compilar seu script. Nosso script de exemplo so tem tres linhas, entao a conversão irá levar apenas uma fraçao de segundo. Qdo ela estiver pronta, o compiler vai se parecer com isso:



Se há um erro no seu script, o compiler nao conseguira converter o arquivo e mostrará um erro:



Na maioria das vezes é apenas um simples errinho no seu código, como um typo ou um simbolo esquecido. O compiler vai mostrar onde ele encontrou o erro ("Current token") e o q foi feito errado. No exemplo o compiler "encontrou um símbolo desconhecido no script" perto de um "(" na primeira linha.

Qdo o script eh compilado, os novos arquivos ficarao na mesma pasta q o seu arquivo *.mis e com o mesmo nome. perto do *.scr, haverá tbm um arquivo *.tmp. Esse arquivo nao eh importante. Note q o Windows reconhecerá os arquivos *.scr como Proteções de tela (screensavers)

Qdo vc tem o arquivo *.scr, vc pode instalá-lo (veja Pondo uma fase no jogo) e jogar com o seu mapa.

Outra maneira de compilar seu script eh baixando o GTA2 MISPad, um editor e compilador de scripts de GTA2 feito por JernejL. Na parte superior do MISPad vc encontra os botoes de abrir scripts nao compilados, salvar seu script, compilar e varios outros; enquanto que na parte inferior vc encontra o log do compilador do MISPad.

Read more...

sábado, 19 de setembro de 2009

Script principal

Primeiro post na categoria GTA2 Scripting, onde vcs aprenderao sobre o Script do GTA2 =D

Script principal


Toda fase de GTA2 precisa de seu proprio script pra rodar. Os scripts sao vistos como os arquivos *.scr na pasta [...]\GTA2\data

LEVELSTART e LEVELEND


Antes de vc poder começar a fazer um script pro seu novo mapa, vc deve primeiro entender como eles funcionam. Os scripts de GTA2 sao divididos em duas partes: a parte de "declaraçao" e a parte de "programaçao". Essas partes sao separadas uma da outra com o comando LEVELSTART: td antes desse comando eh a parte de declaraçao, e td dps dele eh a parte de programaçao. Já q há um comando LEVELSTART, entao tbm deve ter um comando LEVELEND. Esse comando vai no finzim do script.

Entao a base de todo script deve se parecer com isso:






LEVELSTART

LEVELEND


Esse script ainda eh inutil, pq a gente nao tem um "carinha" pra controlar no jogo. Entao a proxima coisa a fazer no script eh um "Playerped". Isso eh feito com esse comando:





PLAYER_PED nome = ( X.x , Y.y , Z.z ) remap rotaçao












Nome:
O nome no script do playerped. Tudo q vc cria no script precisa de um nome unico, entao vc pode referir a essa coisa dps. Tenha certeza q vc da um nome reconhecivel a tudo, entao vc pode facilmente achá-lo qdo seu mapa começa a ficar grande
( X.x , Y.y , Z.z ):
As coordenadas nas quais o playerped aparece no começo do jogo. As coordenadas podem ser achadas selecionando um bloco no map editor e vendo o canto inferior direito do editor. Lembre-se que as coordenadas de dentro de um bloco sao mostradas. Entao, qdo vc clica num bloco no chao, o bloco abaixo do nível do chao vai ser selecionado. Usar essas coordenadas significa q o playerped vai aparecer abaixo do chao! As coordenadas X e Y tambem tem uma divergência de 0.5. Se vc qr seu playerped em 91, 84, 2, suas coordenadas serão ( 91.5 , 84.5 , 2.0 ).
Remap:
O remap eh a aparencia do playerped. Todo remap tem um numero, q sao listados abaixo.












NW

N

NE

225°
180°
135°

W
270°
X

90°
E

315°

45°

SW

S

SE


Rotação:
A direçao q o playerped deve estar virado, em graus de 0 a 359. 0 é o Sul (veja o compasso ao lado)


Esse eh um comando de declaraçao, portanto vem antes do LEVELSTART. Esse eh um dos primeirissimos comandos q vc coloca no seu script

Exemplo


Se vc qr um playerped padrao nas coordenadas ( 91.5 , 84.5 , 2.0 ), olhando pro leste, o comando vai se parecer com isso:


PLAYER_PED player1 = ( 91.5 , 84.5 , 2.0 ) 25 90


Qdo colocado no script, ele se parecerá com isso:


PLAYER_PED player1 = ( 91.5 , 84.5 , 2.0 ) 25 90

LEVELSTART

LEVELEND


"Declare" e "Set"


O comando PLAYER_PED é um comando chamado de "comando declare & set", o q significa q ele cria e coloca o playerped ao mesmo tempo no começo do jogo. No entanto, vc pode querer criar no meio do jogo ao inves de no começo. Pra fazer isso, vc tem q usar comandos separados de "declare" (declara o que vai ser criado) e "set" (que coloca o objeto no meio do jogo no lugar definido)

Isso nao eh possivel com o comando PLAYER_PED (pq vc nao pode criar mais jogadores no meio do jogo), entao nesse tutorial a gente usa o comando CHAR_DATA, q eh usado pra criar alguns chars (esse tema será mais aprofundado em posts futuros)

Declare & set


Um comando declare & set padrao deve se parecer com isso:


CHAR_DATA ped1 = ( 126.5 , 112.5 , 2.0 ) 21 270 DUMMY


Esse comando eh usado pra criar um pedestre no começo do jogo. O comando vai antes do LEVELSTART

Set


Se vc qr criar o pedestre no meio do jogo, por exemplo, durante uma missao, vc tem q usar esse comando:


ped1 = CREATE_CHAR ( 126.5 , 112.5 , 2.0 ) 21 270 DUMMY END


Esse comando "set" deve ser posicionado onde vc qr q o script coloque o pedestre, num IF (explicado em posts [bem] futuros), por exemplo. Ele tem q ser dps do LEVELSTART!

Declare


Se vc usa um comando set, vc tbm precisa "declarar" o pedestre com um comando "declare". Ele diz ao script para reservar "espaço" pra um pedestre q sera criado depois. Um comando "declare" se parece com isso:


CHAR_DATA ped1


Como vc vê, eh um comando mto curto. A única coisa q vc tem q adicionar eh o nome (nesse caso "ped1"), q tem q combinar com o nome no comando "set". Os comandos "declare" tem q ser antes do levelstart.

Adicionando notas ao script


Seu script eh mto basico no momento, mas qdo ele ficar maior e mais complexo vc pode querer colocar notas para nao se confundir no meio de tantas linhas de codigo. Pra prevenir o compilador de ver suas notas (o q causaria o compilador a dar um erro), vc tem q usar /*, */ e //.

Tudo numa linha dps do // sera ignorado pelo compilador. Texto numa nova linha (dps de um enter) será compilado d nv. Esse método eh mto util pra adicionar notas simples dps de um comando

Tudo entre /* e */ tbm será ignorado, mas isso inclui novas linhas. Esse método pode ser usado pra adicionar multiplas linhas de notas ou pra (temporariamente) desativar grandes partes de código.

Exemplos



PLAYER_PED player1 = ( 91.5 , 84.5 , 2.0 ) 25 90
//PLAYER_PED player1 = ( 87.5 , 84.5 , 2.0 ) 25 180 //Possível alternativa de ponto de início

LEVELSTART

/*Um monte de código vai ser adicionado aqui mais tarde.
Por enquanto ainda está vazio*/

LEVELSTART


Remaps


0
Policial


1
Policial da SWAT vermelho


2
Policial da SWAT verde


3
Policial da SWAT amarelo



4
Soldado


5
Redneck #1


6
Redneck #2



7
SRS Scientist


8
Zaibatsu


9
Hare Krishna



10
Membro da Russian Mafia


11
Loonie


12
Elvis


13
Yakuza



14
Bombeiro


15
Ladrao de carros


16
Medico


17
Pickpocket/ladrao de dinheiro



18
Pedestre azul


19
Pedestre azul claro


20
Pedestre verde


21
Pedestre



22
Prisioneiro


23
Pedestre envenenado


24
Pedestre envenenado #2


25
Claude Speed (playerped padrao)



26
Pedestre pelado


De 27 ate 52
Outros pedestres normais

Read more...