Feliz 2010!
Feliz Ano Novo todo mundo, tudo de bao pra quem le esse blog e pra quem nao le tbm ;P :)
Read more...Blog em português sobre como criar mapas para o GTA2 Multiplayer.
Feliz Ano Novo todo mundo, tudo de bao pra quem le esse blog e pra quem nao le tbm ;P :)
Read more...Quem já jogou o GTA2 no multiplayer via GTA2 Game Hunter sabe do q estou falando. A versão estável mais recente (e a que todo mundo tem) é a versão 1.491:
clique na imagem para ver em tamanho maior
O programador e modder Sektor, que faz o GTA2 Game Hunter, estava trabalhando no GTA2 GH v1.5 há um tempo, e acaba de lançá-lo numa versão beta (GTA2 GH v1.5 beta 28):
clique na imagem para ver em tamanho maior
Legenda:
Feliz Natal a todos que lêem meu blog :). Td de bao para voces e obrigado pelas visitas :P
Comentem dando feliz Natal também XDXD
Um car crusher eh uma combinação de vários objetos no script, incluindo o crusher, os guindastes e as esteiras.
Vamos começar com o crusher em si. A base deve consistir de 5 blocos dispersados em um sinal de +; nos distritos, as beiradas sao preenchidas com paredes diagonais, formando um octagono. A base não precisa ser elevada, mas tenha certeza que é impossivel chegar nela. O crusher em si é colocado no script com o seguinte comando:
| CRUSHER nome = ( X.x , Y.y ) |
| nome | Um nome único pro crusher |
| ( X.x , Y.y ) | As coordenadas do crusher. A coordenada Z.z não é necessária, pois o jogo coloca o crusher no ponto mais alto do lugar, por isso vc nao pode colocar nada em cima do crusher |
Próximo do crusher, vc precisa de dois cranes. No mapa, o crane consiste simplesmente de 2 blocos um acima do outro; o guincho dele é feito no script. Há vários tiles pra cranes, como o 878. Não coloque um crane muito proximo do outro, pois será estranho se um crane se mover através do outro.
Para o primeiro crane, vc precisará deste comando:
| CRANE_DATA nome = ( X.x , Y.y ) rotação_crane NO_HOMECRANE FIRST ( X.x , Y.y 2) rotação_carro |
| nome | Um nome unico. Vc vai precisar dele dps |
| ( X.x , Y.y ) | As coordenadas do crane. De novo, sem a coordenada Z |
| rotação_crane | A rotação do guincho do crane qdo ele está parado. |
| ( X.x , Y.y 2 ) | As coordenadas do lugar no qual o crane deve colocar o carro. Neste caso, o centro do crusher. |
| rotação_carro | A rotação do carro na hora que ele é posicionado no crusher. Ela deve ser 0 ou 180 qdo o carro será colocado num crusher |
O segundo crane pega o wreck do crusher e o coloca no conveyor belt 1. Isso eh feito com o seguinte comando:
| CRANE_DATA nome = ( X.x , Y.y ) rotação_crane nome_primeiro_crane SECOND ( X.x , Y.y 2) rotação_carro |
| nome | O nome unico do crane |
| ( X.x , Y.y ) | As coordenadas do crane |
| rotação_crane | A rotação do guincho na posição inicial |
| nome_primeiro_crane | O nome do primeiro crane |
| ( X.x , Y.y 2 ) | As coordenadas do lugar que o crane deveria colocar o wreck, no caso o conveyor belt |
| rotação_carro | A rotação que o wreck devera ter em relação ao conveyor belt. Ela deve estar alinhada ao rumo que o conveyor vai |
O crane básico é um crane que pega os carros e os coloca nos Transporters/Transportadores/Trailers e vice-versa. Esse tipo de crane não é usado para crushers
| CRANE_DATA nome ( X.x , Y.y ) rotação_crane NO_HOMECRANE |
| nome | Um nome único pro crane |
| ( X.x , Y.y ) | As coordenadas do crane |
| rotação_crane | A rotação do guindaste na posição inicial |
Os conveyor belts transportam o wreck dentro de um predio e a recompensa fora de outro prédio. Eles são feitos com tiles animados e um comando. Qdo fazendo o conveyor belt, vc deve extendê-los ao menos dois blocos dentro dos prédios para ter espaço o suficiente pra fazer os objetos aparecerem e desaparecerem fora do campo de visão. No arquivo de texturas bil.sty, os tiles usados para os conveyor belts são os 309, 313, 317 e 318. Dê a animação a “frame rate” de 2 pra eles ficarem com a mesma velocidade que a dos objetos se movendo.
P/ fazer os objetos se moverem qdo colocados nos tiles animados, vc tem q colocar o seguinte comando no seu script:
| CONVEYOR nome = ( X.x , Y.y , Z.z ) ( X.x , Y.y 2 ) X Y |
| nome | Um nome único pro conveyor |
| ( X.x , Y.y , Z.z ) | As coordenadas do centro do conveyor |
| ( X.x , Y.y 2 ) | A largura e o comprimento do conveyor |
| X | O movimento de acordo com o eixo X: 1 é pro leste, 0 é parado e –1 é pro oeste |
| Y | O movimento de acordo com o eixo Y: 1 é pro sul, 0 é parado e –1 é pro norte |
Scanners são objetos invisiveis que detectam qual era o modelo do wreck ou veículo que passou por ele e diz ao GENERATOR qual é a recompensa que deve ser dada. Note que o scanner pode escanear wrecks, mas tbm veículos não-compactados, fazendo com que seja possível pular o processo do crusher e criando um sistema no qual os carros são “entregues” em troca de uma recompensa
| DECLARE_CRANE_POWERUP ( nome_crane , nome_generator , X , Y , Z ) |
| nome_crane | O nome do crane que poe o wreck no conveyor. |
| nome_generator | O nome do generator que cria a recompensa (ver abaixo) |
| X , Y , Z | As coordenadas do scanner. O lugar ideal é logo antes do DESTRUCTOR (veja abaixo), pq aí vc tem certeza q o wreck q vc colocou ali é escaneado antes de ser deletado |
Os DESTRUCTORs são objetos invisíveis que deletam qualquer coisa que passa por eles. Vc precisará de um no final de cada conveyor: um pra remover os wrecks e um pra remover as recompensas não utilizadas. Os DESTRUCTORS devem estar escondidos dentro de um prédio, pra mascarar o fato que os objetos desaparecem do nada no ar.
| DESTRUCTOR nome = ( X.x , Y.y , Z.z ) ( X.x , Y.y 2) |
| nome | Um nome único pro destructor. |
| ( X.x , Y.y , Z.z ) | As coordenadas do centro do destructor. |
| ( X.x , Y.y 2 ) | A largura e comprimento do destructor (deixe como “1.0 , 1.0”) |
No começo do segundo conveyor, na localização onde as recompensas devem ser criadas, vc precisa criar um GENERATOR. Não importa qual OBJECT/objeto vc coloca no generator, e vc nao tem q ativá-lo com um SWITCH_GENERATOR. O tempo que tem que demorar pra aparecer uma recompensa qdo o wreck passa pelo scanner pode ser “setado” com o tempo_min e tempo_max.
Finalmente, vc deve escolher qual carro da qual recompensa. Isso eh feito com o seguinte comando:
| DECLARE_POWERUP_CARLIST ( CARRO1 , CARRO2 , … , CARRO18 , CARRO19 ) |
| CARRO1 , CARRO2 , … , CARRO18 , CARRO19 | A lista de carros correspondentes a lista de recompensas abaixo (em ordem). CARRO1 da uma metralhadora, CARRO2 uma Rocket Launcher, CARRO3 uma Electrogun, etc. Armas vem em sets de 3x5 de munição. Carros não mencionados nessa lista darão uma metralhadora |
| 1 | Metralhadora |
| 2 | Rocket Launcher |
| 3 | Electrogun |
| 4 | Molotov Cocktails |
| 5 | Grenades |
| 6 | Shotgun |
| 7 | Electro Baton (coloque um veiculo pesado aqui ou um veículo ja colocado pra evitar que os jogadores peguem o Electro Baton |
| 8 | Flamethrower |
| 9 | Silenced Machine Gun |
| 10 | Health |
| 11 | Armour |
| 12 | Get Outta Jail FreeCard |
| 13 | Cop Bribe |
| 14 | Invulnerability* |
| 15 | Double Damage |
| 16 | Fast Reload |
| 17 | Electrofingers |
| 18 | Respect! |
| 19 | Invisibility |
Abaixo está um exemplo de um car crusher funcional e completo.
| CRANE_DATA crushera = ( 67.5 , 84.5 ) 0 NO_HOMECRANE FIRST ( 65.5 , 86.5 ) 180 |
| CRANE_DATA crusherb = ( 44.5 , 21.5 ) 283 crushera SECOND ( 43.5 , 21.5 ) 0 |
| CRUSHER crusherc = ( 65.5 , 86.5 ) |
| CONVEYOR crusherd = ( 67.0 , 81.5 , 3.0 ) ( 8.0 , 1.0 ) -1 0 |
| DESTRUCTOR crushere = ( 70.5 , 81.5 , 3.0 ) ( 1.0 , 1.0 ) |
| CONVEYOR crusherg = ( 73.5 , 87.0 , 3.0 ) ( 1.0 , 8.0 ) 0 1 |
| GENERATOR crusherf = ( 73.5 , 83.5 , 3.0 ) 0 COLLECT_06 300 300 5 |
| DESTRUCTOR crusherh = ( 73.5 , 90.5 , 3.0 ) ( 1.0 , 1.0 ) |
| LEVELSTART |
| DECLARE_CRANE_POWERUP ( crusherb , crusherf , 69.5 , 81.5 , 3.0 ) |
| DECLARE_POWERUP_CARLIST ( ALFA , DART , EDSEL , FIAT , GRAHAM , JEFFREY , JEFFREY , MORGAN , MORRIS , SPIDER , STINGRAY , STYPE , STYPECAB , VESPA , WBTWIN , XK120 , MIURA , EDSELFBI , ISETTA ) |
| LEVELEND |
Car shops como o Max Paynt, Red Army Surplus e Hell Oil são muito fáceis de adicionar a seu mapa.


| OBJ_DATA name = ( X.x , Y.y , Z.z ) 0 CAR_SHOP tipo_shop |
| Nome | Um nome único |
| X.x , Y.y , Z.z | As coordenadas do carshop |
| 0 | A rotação do carshop. Deixe-a em 0 pois carshops nao devem ser rotacionados |
| tipo_shop | O tipo de carshop que vc qr adicionar. Há quatro tipos de carshop: MACHINEGUN_SHOP, BOMB_SHOP, MINES_SHOP e OILSLICK_SHOP. O quinto carshop, o Max Paynt, não tem um código, ele é feito adicionando o remap no qual o carro vai ser pintado (lista aqui) |
| OBJ_DATA machinegunshop1 = ( 95.5 , 65.5 , 2.0 ) 0 CAR_SHOP MACHINEGUN_SHOP OBJ_DATA minesshop1 = ( 93.5 , 65.5 , 2.0 ) 0 CAR_SHOP MINES_SHOP OBJ_DATA sprayshop1 = ( 91.5 , 65.5 , 2.0 ) 0 CAR_SHOP 2 OBJ_DATA oilslickshop1 = ( 89.5 , 65.5 , 2.0 ) 0 CAR_SHOP OILSLICK_SHOP OBJ_DATA bombshop1 = ( 87.5 , 65.5 , 2.0 ) 0 CAR_SHOP BOMB_SHOP |
Se vc quiser jogar seu mapa no modo dusk, vc tera q adicionar várias luzes pelo mapa inteiro, ou entao ele ficará todo escuro.
As luzes podem ser feitas no map editor criando light markers. Pra fazer isso, vc tem q selecionar o bloco onde vc qr colocar a luz. Isso pode ser em qqr lugar, ate mesmo dentro de predios.
^selecionando o bloco para adicionar a luz^
Vá em Edit>Lights>Add selection ou aperte Alt + L. Essa janela vai aparecer:
Essa janela eh usada pra alterar todas as caracteristicas da luz q vc vai adicionar. Vc pode mudá-las dps clicando duas vezes num light marker existente. Vc pode remover luzes criadas clicando em "Del".
A luz no exemplo vai ficar num sinal de neon vermelho/marrom, entao a luz tem q ser um vermelho escuro. As cores podem ser escolhidas em Colour > Choose. A intensidade da luz pode ser alterada em intensity, e o tamanho em Radius. Vc pode tbm fazer luzes que piscam com Timing, mas não eh mto usada e causa desynch no multiplayer.
Crie a luz qdo todas as configuraçoes estão corretas clicando em OK. Um light marker vai aparecer no bloco selecionado. Se não, vá em Edit > Lights > View Markers pra mostrar todos os light markers
^um light marker^
Para ver como seria seu mapa no modo dusk, clique em Edit > Lights > View.
Um THREAD_TRIGGER eh, como o nome indica, um comando que faz uma subroutine funcionar qdo um char (geralmente o jogador) atende um telefone ou entra num certo carro. Existem 5 THREAD_TRIGGERs diferentes:
| THREAD_TRIGGER nome = THREAD_WAIT_FOR_CHAR_IN_CAR ( nome_char , nome_carro , subroutine: ) THREAD_TRIGGER nome = THREAD_WAIT_FOR_CHAR_IN_BLOCK (nome_char , X.x , Y.y , Z.z , subroutine: ) THREAD_TRIGGER nome = THREAD_WAIT_FOR_CHAR_IN_AREA (nome_char , X.x , Y.y , Z.z , taman_X , taman_Y , subroutine: ) THREAD_TRIGGER nome = THREAD_WAIT_FOR_CHAR_IN_AREA_ANY_MEANS (nome_char , X.x , Y.y , Z.z , taman_X , taman_Y , subroutine: ) THREAD_TRIGGER nome = THREAD_WAIT_FOR_ANSWER_PHONE ( nome_char , nome_telef , subroutine: ) |
| nome | Um nome único pro TT |
| nome_char | O nome do char |
| nome_carro | O nome do carro que o char deve entrar |
| X.x , Y.y , Z.z | As coordenadas do bloco ou área q o char deve entrar |
| taman_X , taman_Y | A largura (eixo X) e o comprimento (eixo Y) da área em blocos (coloque 1.0 e 1.0 pra apenas um bloco) |
| nome_telef | O nome de um telefone. |
| subroutine: | O nome da subroutine que deve começar a funcionar qdo as condiçoes estiverem corretas (nao se esqueça do ":" no fim do nome dela!) |
| DISABLE_THREAD_TRIGGER ( nome_do_tt ) ENABLE_THREAD_TRIGGER ( nome_do_tt ) |
um post sobre uma coisa que nem eu sei direito lol
Subrotinas/subroutines sao usadas pra facilmente "pular" pra um set de comandos no script.
| nome: //O código vai aqui RETURN |
| nome: | Um nome unico pra subroutine. Note o ":" no fim dele. |
| RETURN | Toda subroutine termina com um RETURN |
| FORWARD nome: |
| GOSUB nome: |
Os COUNTERs são vitais p/ scripts complexos, mas eles sao muito faceis pra se trabalhar. Como o nome sugere, o COUNTER simplesmente "conta": ele mantem o controle de valores. Vc pode usá-los como o contador de alguma coisa aparecendo na tela ou como um simples "liga/desliga" de um IF ou WHILE.
| COUNTER nome |
| COUNTER nome = valor |
| SET nome = novo_valor |
| SET nome = counter2 SET nome = ( counter2 + counter3 ) SET nome = ( counter2 - counter3 ) SET nome = ( counter2 * counter3 ) SET nome = ( counter2 / counter3 ) SET nome = ( counter2 + valor ) SET nome = ( counter2 - valor ) SET nome = ( counter2 * valor ) SET nome = ( counter2 / valor ) |
| COUNTER counter1 COUNTER counter2 = 3 LEVELSTART IF ( counter1 = 1 ) //Se o counter1 esta com o valor 1... SET counter2 = 5 //Dê ao counter2 o valor 5 ENDIF LEVELEND |
| IF ( counter1 < valor ) //Se o counter1 eh menor q tal valor... IF ( counter1 < counter2 ) //Se o counter1 eh menor q counter2... IF ( counter1 > valor ) //Se o counter1 eh maior q tal valor... IF ( counter1 > counter2 ) //Se o counter1 eh maior q counter2... IF ( counter1 = valor ) //Se o counter1 eh igual a tal valor... IF ( counter1 = counter2 ) //Se o counter1 eh igual ao counter2... |
Hj (23/10/09) faltam 4 dias (27/10/09) para o 10º aniversário do GTa2 (e para o meu tbm :P) :). Nesse dia o jogador e modder [DAFE], Ontario, Canadá lançará a mais nova versão do seu mapa, DAFE's Death Valley (a mais da hora ate agora :P, atualmente em fase de testes com certos jogadores) e, provavelmente, o programador e modder Sektor lançará a mais nova versão do GTA2 Game Hunter (GH), a 1.5. Junto com o GH 1.5 será lançada a versão do Vike (jogador e modder tbm) do GTA2.exe, a 11.0, a qual o GH vai, tecnicamente, obrigar os jogadores a usar. Eu tbm lançarei a mais nova versao de um dos meus mapas: Gustavob's RC Race, com o conserto de vários bugs
Read more...Os WHILE são quase identicos aos IFs, mas os comandos num WHILE vão se repetir enquanto a expressao for verdade, enquanto q os IFs serão executados apenas uma vez.
| WHILE ( expressão ) //comandos ENDWHILE |
| expressao | A situaçao que faz os comandos entre WHILE e ENDWHILE acontecerem |
| //comandos | Os comandos que terão que acontecer repetidamente quando "expressao" é verdade |
| ENDWHILE | Todo WHILE deve terminar com um ENDWHILE |
| WHILE_EXEC ( expressão ) //comandos ENDWHILE |
Primeiro post da parte de Programaçao na área Script(ing)
IF ( expressao ) //comando ENDIF |
|---|
| expressao | A situaçao q faz o comando entre IF e ENDIF acontecer. Pode ser um COUNTER (explicado mais tarde) ou um check como HAS_CHARACTER_DIED (TAL_CHAR_MORREU, uma lista desses checks pode ser encontrada no GTA2 Scripting.doc) |
|---|---|
| comando | O comando que acontece quando o q ta dentro do IF ( ) eh verdade |
| ENDIF | O final do IF. Todo IF deve terminar com um ENDIF |
| IF ( X ) //Esses comandos acontecem qdo X é verdade IF ( Y ) //Esses comandos acontecem qdo X e Y acontecem no jogo ENDIF ENDIF |
|---|
| IF ( NOT ( X ) ) //Esses comandos acontecem qdo X não eh verdade ENDIF |
|---|
| IF ( X ) //Esses comandos acontecem qdo X eh verdade ELSE //Esses comandos acontecem qdo X não eh verdade ENDIF |
|---|
| IF ( ( X ) AND ( Y ) ) //Esses comandos acontecem qdo X e Y acontecem ENDIF |
|---|
| IF ( ( ( X ) AND ( Y ) AND ( Z ) ) //Esses comandos acontecem qdo X, Y e Z sao verdade |
|---|
| IF ( ( X ) AND ( Y ) ) OR ( Z ) ) //Esses comandos acontecem qdo X e Y, ou apenas Z sao verdade ENDIF |
|---|
| IF ( ( X ) OR ( Y ) ) //Esses comandos acontecem qdo X ou Y sao verdade ENDIF |
|---|
| IF ( ( ( X ) AND ( Y ) ) AND ( Z ) ) //Esses comandos acontecem qdo X, Y e Z sao verdade ENDIF |
|---|
| IF ( ( X ) AND ( Y ) AND ( Z ) ) |
|---|
| IF ( ( ( X ) AND ( Y ) ) AND ( Z ) ) |
|---|
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
| 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) |
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 | " " " " " |
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 ) |
Aqui vc pode achar uma lista completa de remaps e ocupaçoes de chars.
Read more...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 |
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
| 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 |
Aqui vai ser falado sobre como vc cria armas, powerups ou objetos genericos como cones.
OBJ_DATA nome ( X.x , Y.y , Z.z ) rotação objeto [munição] |
| nome | Um nome único pro objeto |
| ( X.x , Y.y , Z.z ) | As coordenadas |
| rotaçao | A rotaçao do objeto, veja o post do script principal |
| objeto | O tipo de objeto, veja a tabela abaixo |
| [munição] | A munição (so funciona se vc criar uma arma com o comando OBJ_DATA) |
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 |
98.5 , 80.5 , 2.0, virado pro oeste, o comando seria ± assim:OBJ_DATA banco ( 98.5 , 80.5 , 2.0 ) 270 BENCH |
GENERATOR nome = ( X.x , Y.y , Z.z ) rotaçao tipopickup tmpomin |
| 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çao | A rotaçao do pickup/arma |
| tipopickup | O tipo de " / " |
| tmpomin | O tempo mínimo que o pickup demora pra reaparecer |
| tmpomax | O tempo máximo que o pickup demora pra reaparecer |
| munição | A muniçao q vc recebe qdo vc pega a arma |
SWITCH_GENERATOR nomegnrtor ON/OFF |
| nomegnrtor | O nome do generator q vc usou antes |
| ON/OFF | O valor q define se o GENERATOR está ligado (ON) ou desligado (OFF) |
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 |
CROSS, GRAVE e FBI BLOCK, mas esses objetos nao sao reconhecidos pelo Script Compiler.
Read more...
O GTA2 automaticamente cria os veiculos andando nas ruas, apenas os veiculos estacionados e de missoes q tem q ser postos no script.
PARKED_CAR_DATA nome ( X.x , Y.y , Z.z ) remap rotaçao modelo |
| nome | O nome unico pro carro |
| ( X.x , Y.y , Z.z ) | As coordenadas nas quais o carro vai ser colocado |
| remap | A cor do carro (veja a lista abaixo) |
| rotaçao | A rotaçao do veículo (veja o compasso no post do Script principal) |
| modelo | Eh o nome do veículo usado no script (nao o do jogo, p.ex. "Panto"; veja a tabela abaixo) |
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 |
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 |
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...O compilador de scripts eh um programa oficial da DMA Design (atual Rockstar North) q eh usado pra converter arquivos *.mis pra arquivos *.SCR



Primeiro post na categoria GTA2 Scripting, onde vcs aprenderao sobre o Script do GTA2 =D
|
|
| 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. |
| |||||||||||||||||||||||||
| 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) | ||||||||||||||||||||||||||
PLAYER_PED player1 = ( 91.5 , 84.5 , 2.0 ) 25 90
PLAYER_PED player1 = ( 91.5 , 84.5 , 2.0 ) 25 90
LEVELSTART
LEVELEND
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)
CHAR_DATA ped1 = ( 126.5 , 112.5 , 2.0 ) 21 270 DUMMY
ped1 = CREATE_CHAR ( 126.5 , 112.5 , 2.0 ) 21 270 DUMMY END
CHAR_DATA ped1
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