Compartilhe
HybridTheory
Scripter CLEO - Básico
Scripter CLEO - Básico
Título : Boludo
Mensagens : 200
Reputação : 42
Desde : 29/01/2018
Idade : 17
Localização : Buenos Aires - Argentina
Ver perfil do usuário
  • Reputação da mensagem: 100% (3 votos)
em Sab 03 Fev 2018, 06:25
AVISO
O português não é minha língua materna, então eu posso cometer erros ao escrever. (Aprendi lendo os post da MixMods)  Fuch That Guy . Sinta-se livre para me corrigir.

Este é o meu primeiro mod de script, ou pelo menos o primeiro que publico. Na verdade eu já havia feito alguns, mas eram muito simples. (não é que este seja muito complexo) Então, vou liberar o código para que as pessoas mais experientes em Cleo o revejam e me digam se eu fiz algo errado. (o que é muito provável)




Os creepypastas mas populares e assustadores, agora em GTA San Andreas.




Os creepypastas são, basicamente, histórias de horror inventadas na internet e divulgadas em fóruns e outros sites, com o objetivo de assustar o leitor. Este mod os traz à vida.

São um total de 5 creepypastas, espalhados por todo San Andreas. Você deve encontrá-los e matá-los todos. Ao morrer, os creepypastas deixam cair uma boa quantia de dinheiro. A saúde deles é muito alta e eles atacam ferozmente. Eles não morrem com headshots. Além disso, eles não vão parar de te atacar até você morrer (shoot rate: 100), então você deve ir bem equipado se quiser enfrentá-los. Também, eles podem caminhar e até bater em você mesmo enquanto você está atirando neles, o que aumenta a dificuldade.




Lista de creepypastas:

  • Jeff The Killer
  • Slenderman
  • The Rake
  • Smile Dog
  • Eyeless Jack

No download haverá um mapa com a localização de todos eles. Se você acha que tira a graça, procure eles por você mesmo!




Eu tive problemas tentando colocar os 5 "monstros" em um único script (se você matava um deles e depois você queria ir matar outro, você tinha que esperar 20 minutos para que o outro monstro apareça, porque eu tinha colocado uma condição que fazia isso. Isso é para que o monstro não apareça imediatamente depois de matá-lo. Se eu não me expresei bem, leia o código para entender melhor). Não encontrei outra maneira de fazer isso, porque ainda sou meio noob em Cleo. Portanto, cada monstro possui um script separado. Se você tem experiência com o GTA3Script e sabe como fazer o que eu tentei, eu realmente apreciaria se você pudesse me mostrar como fazê-lo, para que eu possa melhorar os meus próximos scripts. Os scripts são muito parecidos um com o outro, são quase iguais. O único que muda são as coordenadas, os nomes das variáveis e outros detalhes menores. Portanto, não há necessidade de lê-los todos, então só vou mostrar um.

Source code:

Código:
SCRIPT_START
{
LVAR_INT player therake farmer

GET_PLAYER_CHAR 0 player

loop:
WAIT 0

WHILE NOT MISSION_HAS_FINISHED // O mod não é ativado em missões, por razões óbvias.
    WAIT 0
ENDWHILE

WHILE NOT LOCATE_CHAR_ANY_MEANS_3D player -1644.765259 -2235.393066 29.798340 70.0 70.0 70.0 FALSE
    WAIT 0
ENDWHILE

TASK_SAY player 346

LOAD_SPECIAL_CHARACTER 5 rake
REQUEST_MODEL CWMOFR
LOAD_ALL_MODELS_NOW
 
CREATE_CHAR PEDTYPE_MISSION5 SPECIAL05 -1644.765259 -2235.393066 29.798340 therake
CREATE_CHAR PEDTYPE_CIVMALE CWMOFR -1650.612549 -2237.928955 30.224819 farmer
UNLOAD_SPECIAL_CHARACTER 5
MARK_MODEL_AS_NO_LONGER_NEEDED CWMOFR


FORCE_WEATHER_NOW 9// O clima muda para "foggy", não sei como dizer isso em português. Um clássico em mods de "monstros".
SET_ANIM_GROUP_FOR_CHAR therake oldman
SET_CHAR_MONEY therake 5000
GIVE_MELEE_ATTACK_TO_CHAR therake 5 5
SET_CHAR_HEALTH therake 20000
SET_CHAR_HEALTH farmer 1
SET_CHAR_SUFFERS_CRITICAL_HITS therake 0 // Não morre com headshots
SET_CHAR_USES_UPPERBODY_DAMAGE_ANIMS_ONLY therake TRUE
SET_CHAR_DROWNS_IN_WATER therake 0
SET_CHAR_SHOOT_RATE therake 100

TASK_KILL_CHAR_ON_FOOT therake farmer

WHILE NOT IS_CHAR_DEAD farmer    // The Rake vai matar o farmer (fazendeiro?) e então irá por você
    WAIT 0                                  
ENDWHILE

TASK_KILL_CHAR_ON_FOOT therake player
    
// Rake ainda não morre, esperar.
WHILE NOT IS_CHAR_DEAD therake
    WAIT 0
ENDWHILE

// Rake morreu
    PLAY_MISSION_PASSED_TUNE 1
    SET_WEATHER_TO_APPROPRIATE_TYPE_NOW // O clima volta ao normal

WHILE IS_CHAR_DEAD therake
    WAIT 500000
ENDWHILE

GOTO loop

}
SCRIPT_END

Autor dos scripts: Eu
Autor dos skins do Jeff The Killer, Eyeless Jack e The Rake: Eu (skins originais do jogo editados por mim)
Autor do skin do Slenderman: DragonGhost88
Autor do skin do Smile Dog: Lisa Buckaley, Laurie Stanley (era um skin de cachorro normal, eu editei)

Recomendado Modloader


______________________________


Junior_Djjr
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 23
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br
em Sab 03 Fev 2018, 06:54
@HybridTheory escreveu:AVISO
O português não é minha língua materna, então eu posso cometer erros ao escrever. (Aprendi lendo os post da MixMods)  Fuch That Guy . Sinta-se livre para me corrigir.
De verdade, eu estou feliz com isso Fuch That Guy

Você pede para corrigirem erros de português, de cleo, faz mod interessante. Esse fórum precisa de mais pessoas assim.

E você escreve português melhor que a maioria dos brasileiros, além de que:
Código:
// O clima muda para "foggy", não sei como dizer isso em português. Um clássico em mods de "monstros".
Acredite eu não, até eu tive um lag no cérebro para traduzir isso. "foggy" é "nebuloso" ou "nevoento" (o segundo é mais correto e específico, mas nunca vi alguém falando isso), geralmente é falado simplesmente "névoa" (fog).

O script tá até bom, mas utilizar WHILE para checar condições é uma prática muito ruim...
Você devia utilizar IF, pois em WHILE... veja um pseudocode (nada a ver com o seu mod, só explicando):
Código:
Enquanto não está no lugar X
    Espere

Chegou no lugar X

Enquanto não apertou a tecla
    Espere
Tem lógica, mas, esperar?...
O script é pouco dinâmico assim, pois é muito linear, pré-determinado. É como andar numa linha reta.

O melhor é utilizar loops separados, onde um chama o outro etc. GOSUB é sempre bem vindo.

Código:
loop:
IF Está no lugar X?
AND Apertou a tecla?
    GOSUB carregar
    GOSUB ativar
GOTO loop

carregar:
Carregando modelos etc
RETURN

ativar:
Mod ativado
etc
etc
RETURN
Assim você pode imaginar diferentes lógicas pro script, por exemplo utilizar um GOSUB ou GOTO para uma outra label com outro loop para esperar até que tal pessoa seja morta etc... Só exemplo, o bom é você fazer o que é mais lógico para você, só tente separar um pouco, evite fazer tudo em linha reta, use GOSUB ou GOTO etc.

Ainda mais vendo coisas deste tipo, que é também muito comum:
Código:
loop_para_o_inimigo:

IF Inimigo morreu?
   Sai deste loop

IF Saiu do local?
OR Player morreu?
    Desativa o mod
    Sai deste loop

GOTO loop_para_o_inimigo
Veja, assim você pode ter várias condições dentro do loop, bom controle, onde você checa se a pessoa morreu, ou se o player saiu do local (pois às vezes você pode querer desativar o mod quando isso acontece), também poderia checar se o player morreu etc etc...

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
ViniZ0Z
Mensagens Nível 5
Mensagens Nível 5
Título : Vinicius
Mensagens : 831
Reputação : 12
Desde : 15/06/2017
Localização : Curitiba - Paraná
Link : https://www.youtube.com/channel/UCaSYxN2qRfn-M6VvT-pKJrA?view_as=subscriber
Ver perfil do usuário
em Sab 03 Fev 2018, 11:21
Que orgulho desse gringo...  Not Bad Not Bad

______________________________
Se nossa certeza é a morte, porque não aproveitar tudo aquilo que temos ao máximo?  (ROLL)
pérolas do discord:


Nex
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 1239
Reputação : 99
Desde : 04/03/2013
Idade : 18
Ver perfil do usuário
em Sab 03 Fev 2018, 11:34
Muito bom. Seu português tá ótimo (melhor que o meu) e o tópico tá bem escrito e organizado. Sobre o código é isso que o Djjr falou, só tentar deixar ele mais dinâmico (eu acho que a palavra certa é modular, @Thelost ?)
Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Sab 03 Fev 2018, 11:53
@Junior_Djjr escreveu:O script é pouco dinâmico assim, pois é muito linear, pré-determinado. É como andar numa linha reta.
A palavra que você procura é procedural. Dinamismo de uma linguagem tem a ver com gerenciamento de memória e ambiente de execução.
O melhor é utilizar loops separados, onde um chama o outro etc. GOSUB é sempre bem vindo.
Refez o while (que é uma funcionalidade first-class) com ferramentas de baixo nível. Se você quer expressar um loop, utilize um loop. Se você quer representar troca de fluxo, utilize gosub. Na verdade, gosub é bom pra representar funções, não loops.

@Nex escreveu:Muito bom. Seu português tá ótimo (melhor que o meu) e o tópico tá bem escrito e organizado. Sobre o código é isso que o Djjr falou, só tentar deixar ele mais dinâmico (eu acho que a palavra certa é modular, @Thelost ?)

Modular significa a isolação de código baseado em entidades adicionáveis/removíveis, que implementam uma funcionalidade completa separada de um programa. Não faz sentido o uso desse termo aqui. O que falta no código do rapaz é generalização.
Junior_Djjr
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 23
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br
em Sab 03 Fev 2018, 12:33
@Thelost escreveu:
O melhor é utilizar loops separados, onde um chama o outro etc. GOSUB é sempre bem vindo.
Refez o while (que é uma funcionalidade first-class) com ferramentas de baixo nível
Não há WHILE TRUE no GTA3script, é assim que loops funcionam nele... Tem nem BREAK.

Eu imaginei que "procedural" tivesse significado mais específico.

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Sab 03 Fev 2018, 12:47
@Junior_Djjr escreveu:Não há WHILE TRUE no GTA3script, é assim que loops funcionam nele... Tem nem BREAK.

Mas tem como extensão no compilador, não?

Eu imaginei que "procedural" tivesse significado mais específico.

Existe rotinas em cada parte do programa.
Junior_Djjr
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 23
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br
em Sab 03 Fev 2018, 13:01
@Thelost escreveu:
@Junior_Djjr escreveu:Não há WHILE TRUE no GTA3script, é assim que loops funcionam nele... Tem nem BREAK.

Mas tem como extensão no compilador, não?
Não.
O objetivo é ser o mais próximo possível da linguagem original da Rockstar North, se não tem, não tem.
Lembro que o LINK/2012 disse que ainda deixaria BREAK opcional, mas aparentemente não fez.

Eu acho que deveria ter como extensão... assim como o RETURN_TRUE e RETURN_FALSE que a gente tem que usar IS_PC_VERSION (que sempre retorna true) e IS_AUSTRALIAN_GAME (que sempre retorna false) para simular, não é legal...

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
Israel
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Mensagens : 847
Reputação : 134
Desde : 22/09/2015
Ver perfil do usuário
em Sab 03 Fev 2018, 13:13
@Junior_Djjr escreveu:[...] Lembro que o LINK/2012 disse que ainda deixaria BREAK opcional, mas aparentemente não fez.
Fez sim:
Código:
"gta3script.buildflags": {
    "gtasa": [
        "--guesser",
        "--cs",
        "-fbreak-continue"
    ]
}

______________________________
Everyone gonna remember my name !
Thelost
Programador - Avançado
Programador - Avançado
Mensagens : 10179
Reputação : 265
Desde : 08/11/2012
Ver perfil do usuário
em Sab 03 Fev 2018, 13:23
Junior_Djjr
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 23
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br
em Sab 03 Fev 2018, 13:49
@Thelost escreveu:
@Junior_Djjr escreveu:
@Thelost escreveu:
@Junior_Djjr escreveu:Não há WHILE TRUE no GTA3script, é assim que loops funcionam nele... Tem nem BREAK.

Mas tem como extensão no compilador, não?
Não.

https://github.com/thelink2012/gta3sc/blob/a4f3f16574c4e0461ff3c14f8a2839cf3040d952/src/parser_syntax.cpp#L998
Você mostrou o WHILE e não WHILE_TRUE.

E realmente, ele fez o BREAK.
Ele ia fazer o WHILE_TRUE mas depois viu que só o GTA2script que tinha, daí resolveu não fazer.

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
HybridTheory
Scripter CLEO - Básico
Scripter CLEO - Básico
Título : Boludo
Mensagens : 200
Reputação : 42
Desde : 29/01/2018
Idade : 17
Localização : Buenos Aires - Argentina
Ver perfil do usuário
em Sab 03 Fev 2018, 15:36
@Junior_Djjr Muito obrigado pelas dicas, certamente serão muito úteis para mim. Vou tentar melhorar em futuros scripts. Na verdade, eu já estou trabalhando em outro script agora, fazer scripts é viciante. Eu não tenho nada melhor para fazer. Vou tentar aplicar as dicas que você me deu, e se o mod fica bom, vou publicá-lo.

@Junior_Djjr escreveu:E você escreve português melhor que a maioria dos brasileiros

@Nex escreveu:Seu português tá ótimo (melhor que o meu)

É bom saber que o meu português não é tão ruim como eu pensava Fuch That Guy

______________________________


Hue
Produtor de vídeos - Avançado
Produtor de vídeos - Avançado
Mensagens : 17164
Reputação : 162
Desde : 03/06/2012
Ver perfil do usuáriohttp://playgamemods.blogspot.com.br/
em Sab 03 Fev 2018, 22:59
@HybridTheory,
Você poderia colocar um vampiro em seu mod? Ao enfrentá-lo, o CJ perderia saúde, portanto teria que matá-lo antes que toda sua saúde se esvaísse.

______________________________
http://playgamemods.blogspot.com.br/




"Usaremos o idiota útil na linha de frente. Incitaremos o ódio entre as classes. Destruiremos sua base moral, a família e a espiritualidade. Comerão as migalhas que caírem de nossas mesas. O Estado será deus. Nossa minoria organizada irá sempre derrotar a maioria desorganizada" (Vladmir Lenin 1870 - 1924)

"Os fascistas do futuro chamarão a si mesmos de antifascistas." (Winston Churchill)

“Toda verdade passa por três estágios. Primeiro, ela é ridicularizada. Segundo, ela é violentamente resistida. Terceiro, ela é aceita como sendo autoevidente” (Arthur Schopenhauer, 1788-1860)"

“Se pudesse ser demonstrada a existência de qualquer órgão complexo que não poderia ter sido formado por numerosas, sucessivas e ligeiras modificações, minha teoria desmoronaria por completo.” (Charles Darwin, 1872)
HybridTheory
Scripter CLEO - Básico
Scripter CLEO - Básico
Título : Boludo
Mensagens : 200
Reputação : 42
Desde : 29/01/2018
Idade : 17
Localização : Buenos Aires - Argentina
Ver perfil do usuário
em Dom 04 Fev 2018, 15:04
@Hue escreveu:@HybridTheory,
Você poderia colocar um vampiro em seu mod? Ao enfrentá-lo, o CJ perderia saúde, portanto teria que matá-lo antes que toda sua saúde se esvaísse

Boa ideia  Not Bad. Poderia sim, mas acho que um vampiro seria muito "off-topic" neste mod (é só de creepypastas). Maybe eu poderia colocar ele em outro mod.

______________________________


ViniZ0Z
Mensagens Nível 5
Mensagens Nível 5
Título : Vinicius
Mensagens : 831
Reputação : 12
Desde : 15/06/2017
Localização : Curitiba - Paraná
Link : https://www.youtube.com/channel/UCaSYxN2qRfn-M6VvT-pKJrA?view_as=subscriber
Ver perfil do usuário
em Dom 04 Fev 2018, 15:16
@HybridTheory escreveu:
@Hue escreveu:@HybridTheory,
Você poderia colocar um vampiro em seu mod? Ao enfrentá-lo, o CJ perderia saúde, portanto teria que matá-lo antes que toda sua saúde se esvaísse

Boa ideia  Not Bad. Poderia sim, mas acho que um vampiro seria muito "off-topic" neste mod (é só de creepypastas). Maybe eu poderia colocar ele em outro mod.
Talvez.  :)
HybridTheory
Scripter CLEO - Básico
Scripter CLEO - Básico
Título : Boludo
Mensagens : 200
Reputação : 42
Desde : 29/01/2018
Idade : 17
Localização : Buenos Aires - Argentina
Ver perfil do usuário
em Dom 04 Fev 2018, 16:18
@ViniZ0Z escreveu:Talvez.  :)

Obrigado  :)

______________________________


Hue
Produtor de vídeos - Avançado
Produtor de vídeos - Avançado
Mensagens : 17164
Reputação : 162
Desde : 03/06/2012
Ver perfil do usuáriohttp://playgamemods.blogspot.com.br/
em Dom 04 Fev 2018, 17:43
Existe alguma creepypasta semelhante ao vampiro?

recentemente li o livro do drácula e estou fissurado nisso :v

______________________________
http://playgamemods.blogspot.com.br/




"Usaremos o idiota útil na linha de frente. Incitaremos o ódio entre as classes. Destruiremos sua base moral, a família e a espiritualidade. Comerão as migalhas que caírem de nossas mesas. O Estado será deus. Nossa minoria organizada irá sempre derrotar a maioria desorganizada" (Vladmir Lenin 1870 - 1924)

"Os fascistas do futuro chamarão a si mesmos de antifascistas." (Winston Churchill)

“Toda verdade passa por três estágios. Primeiro, ela é ridicularizada. Segundo, ela é violentamente resistida. Terceiro, ela é aceita como sendo autoevidente” (Arthur Schopenhauer, 1788-1860)"

“Se pudesse ser demonstrada a existência de qualquer órgão complexo que não poderia ter sido formado por numerosas, sucessivas e ligeiras modificações, minha teoria desmoronaria por completo.” (Charles Darwin, 1872)
Ordep_
Mensagens Nível 3
Mensagens Nível 3
Título : "O amor é apenas uma reação química"
Mensagens : 171
Reputação : 2
Desde : 21/01/2018
Idade : 15
Localização : Serra - ES
Ver perfil do usuário
em Dom 04 Fev 2018, 22:50
Não sei se foi só pra mim, mas ao se aproximar do local aonde fica as Creepypastas o jogo crasha...  newspaperboy
Bom, não sei se foi incompatibilidade com algum mod, (Pouco provável, já que o mod não substitui nenhum arquivo)

______________________________


Créditos : Daz_Vlad
HybridTheory
Scripter CLEO - Básico
Scripter CLEO - Básico
Título : Boludo
Mensagens : 200
Reputação : 42
Desde : 29/01/2018
Idade : 17
Localização : Buenos Aires - Argentina
Ver perfil do usuário
em Dom 04 Fev 2018, 23:07
@Ordep_ escreveu:Não sei se foi só pra mim, mas ao se aproximar do local aonde fica as Creepypastas o jogo crasha...  newspaperboy
Bom, não sei se foi incompatibilidade com algum mod, (Pouco provável, já que o mod não substitui nenhum arquivo)

Isso acontece com todos os creepypastas, o apenas com um? Testei o mod e tudo funciona bem.

______________________________


Carlos João Santos
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 45
Reputação : 0
Desde : 17/01/2018
Link : www.youtube.com/channel/UCKNCus2lIr4f9pmYa8IqouA?view_as=subscriber?&ab_channel=SandboxGtaSA
Ver perfil do usuário
em Qua 07 Fev 2018, 10:38
moh da hora mano, pra mim n teve nem crash e olhe q eu forço os bugs kk

Djjr, ajuda ae mano pq qndo tu mira eles levantam a mão e vão embora kkk

ou se por o tradicional fogo tb =(

uma parada q ficaria mais realista se eles aparecessem apenas a noite, e tb qndo vc por ex sai do local e volta eles n dão um respawn e ficam la paradão.

______________________________
Spoiler:
Conteúdo patrocinado
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum