Compartilhe
avatar
Mensagens Nível 4
Mensagens Nível 4
Mensagens : 426
Reputação : 12
Desde : 12/01/2016
Localização : 127.0.0.1:25565
Ver perfil do usuário

Meu script deve estar uma porcaria, por favor, me digam todos problemas que acharem

em Sab 28 Jan 2017, 02:39
Código:

SCRIPT_START
{
    NOP
    LVAR_INT jogador, marcador, marcador2, conta1int, conta2int, conta3int, conta4int, conta5int, conta6int
    LVAR_FLOAT x, y, z, conta1, conta2, conta3, conta4, conta5, conta6
    GET_PLAYER_CHAR 0 jogador // Só para usar o jogador em scripts, embora dê para usar 0

    WAIT 0 // Para outros scripts do jogo poderem ser carregados
    CREATE_USER_3D_MARKER 2502.695, -1712.153, 13.568, 0, marcador // Criar primeiro marcador, no exterior
    CREATE_USER_3D_MARKER 2503.819, -1707.867, 2.731, 0, marcador2 // Criar segundo marcador, no interior

    main_loop: // Começar loop
    GET_CHAR_COORDINATES jogador, x, y, z // Pegar coordenadas do jogador para fazer contas e teleportes

    // ** MARCADOR 1 **
    // Fazer  contas com as coordenadas que estão em float
    conta1 = x - 2502.695
    conta2 = y - -1712.153
    conta3 = z - 13.568

    // Transformar em INT
    conta1int =# conta1
    conta2int =# conta2
    conta3int =# conta3
   
    // Teleportar 1
    IF conta1int = 0
        IF conta2int = 0
            IF conta3int = 0
                SET_CHAR_COORDINATES jogador, 2506.623, -1706.550, 2.731
            ENDIF
        ENDIF
    ENDIF

    // ** MARCADOR 2 **
    // Fazer  contas com as coordenadas que estão em float
    conta4 = x - 2503.81
    conta5 = y - -1706.275
    conta6 = z - 2.731

    // Transformar em INT
    conta4int =# conta4
    conta5int =# conta5
    conta6int =# conta6
   
    // Teleportar 2
    IF conta4int = 0
        IF conta5int = 0
            IF conta6int = 0
                SET_CHAR_COORDINATES jogador, 2505.458, -1712.173, 13.536
            ENDIF
        ENDIF
    ENDIF

    PRINT_FORMATTED_NOW "Coordenadas: %.3f %.3f %.3f", 500, x, y, z
    wait 500
    GOTO main_loop // Repetir o que aconteceu

    // Teleporte do marcador 1
    // Teleporte interior: 2506.623 -1706.550 2.731
    // Marca interior: 2503.819 -1707.867 2.731

    // Teleporte exterior: 2505.458 -1712.173 13.536
    // Marca exterior: 2502.695 -1712.153 13.568
}
SCRIPT_END

É o seguinte, eu estou querendo fazer uma modificação de porão para o CJ e queria com uma boa qualidade. Estava até pensando em colocar na TC GTA Brasil, já que estou na pasta do Drive. Mas antes eu queria corrigir todos os problemas dessa modificação para não estragar o savegame de ninguém com marcadores 3D presos, ou quem sabe deixar o script mais leve.
A parte do mapa é um IPL usando objetos do jogo.


Última edição por DouglasB2310 em Sab 28 Jan 2017, 02:47, editado 1 vez(es)
avatar
Mensagens Nível 4
Mensagens Nível 4
Mensagens : 426
Reputação : 12
Desde : 12/01/2016
Localização : 127.0.0.1:25565
Ver perfil do usuário

Re: Meu script deve estar uma porcaria, por favor, me digam todos problemas que acharem

em Sab 28 Jan 2017, 02:43
Eu ainda vou fazer a parte de destruir os marcadores, mas queria saber se estou no caminho certo. Tá muito grande, deve ter coisa errada :v:
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 490
Reputação : 32
Desde : 08/02/2016
Localização : São Paulo
Ver perfil do usuário

Re: Meu script deve estar uma porcaria, por favor, me digam todos problemas que acharem

em Sab 28 Jan 2017, 02:52
Sinceramente, não tenho certeza sobre o script, mas porque não usa o opcode CREATE_USER_3D_MARKER ao invés desse cálculo todo?
avatar
Mensagens Nível 4
Mensagens Nível 4
Mensagens : 426
Reputação : 12
Desde : 12/01/2016
Localização : 127.0.0.1:25565
Ver perfil do usuário

Re: Meu script deve estar uma porcaria, por favor, me digam todos problemas que acharem

em Sab 28 Jan 2017, 03:02
O cálculo é para teleportar, só o CREATE_USER_3D_MARKER não teletransporta.
Parece que o CREATE_USER_3D_MARKER é só visual.
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 630
Reputação : 38
Desde : 19/08/2015
Idade : 14
Localização : Em algum lugar do brasil
Link : https://www.youtube.com/watch?v=lMB18XPgEWA
Ver perfil do usuário

Re: Meu script deve estar uma porcaria, por favor, me digam todos problemas que acharem

em Sab 28 Jan 2017, 03:02
1
2
3
4
5
6
7
    IF conta1int = 0
       IF conta2int = 0
           IF conta3int = 0
               SET_CHAR_COORDINATES jogador,   2506.623, -1706.550, 2.731
           ENDIF
       ENDIF
   ENDIF


Desnecessário usar 3 ifs era só usar assim:

1
2
3
4
5
    IF conta1int = 0
   AND conta2int = 0
   AND conta3int = 0
      SET_CHAR_COORDINATES jogador, 2506.623, -1706.550, 2.731
   ENDIF


mas de resto não vi mais nada, so é desnecessário mas se quer quiser fazer pode fazer :)


Última edição por AguiaX2 em Sab 28 Jan 2017, 03:03, editado 1 vez(es)

______________________________


avatar
Mensagens Nível 4
Mensagens Nível 4
Mensagens : 426
Reputação : 12
Desde : 12/01/2016
Localização : 127.0.0.1:25565
Ver perfil do usuário

Re: Meu script deve estar uma porcaria, por favor, me digam todos problemas que acharem

em Sab 28 Jan 2017, 03:03
E precisa destruir os marcadores para não ficar preso no savegame?
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 630
Reputação : 38
Desde : 19/08/2015
Idade : 14
Localização : Em algum lugar do brasil
Link : https://www.youtube.com/watch?v=lMB18XPgEWA
Ver perfil do usuário

Re: Meu script deve estar uma porcaria, por favor, me digam todos problemas que acharem

em Sab 28 Jan 2017, 03:04
Não sei se marcadores ficam preso no save mas seria melhor destruir neh :)

______________________________


avatar
Mensagens Nível 4
Mensagens Nível 4
Mensagens : 426
Reputação : 12
Desde : 12/01/2016
Localização : 127.0.0.1:25565
Ver perfil do usuário

Re: Meu script deve estar uma porcaria, por favor, me digam todos problemas que acharem

em Sab 28 Jan 2017, 03:17
Imagens da modificação:
Spoiler:




Coloquei na TC GTA Brasil, espero que não dê nenhum erro e não cause problemas em GTAs alheios.
avatar
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Não quero acreditar, quero saber.
Mensagens : 21864
Reputação : 676
Desde : 03/05/2012
Idade : 22
Localização : Ibitinga - SP
Link : www.MixMods.com.br
Ver perfil do usuáriohttp://MixMods.com.br

Re: Meu script deve estar uma porcaria, por favor, me digam todos problemas que acharem

em Sab 28 Jan 2017, 05:00
Olha, o GTA Brasil, como eu disse, vai precisar ter main.scm (usar scripts cleos numa tc é totalmente no sense). Então, não precisa se importar com isso, já que o main.scm foi FEITO pra essa coisa de "ficar preso no save". Quando você dá New Game, os marcadores são criados, e quando você dará Save Game, ele ficará preso no save pra sempre e nunca será criado (só será criado lá no New Game ou situações especificas, tipo após uma missão etc).

______________________________

avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 1023
Reputação : 82
Desde : 04/03/2013
Idade : 17
Ver perfil do usuário

Re: Meu script deve estar uma porcaria, por favor, me digam todos problemas que acharem

em Sab 28 Jan 2017, 10:40
Eu faria assim:
Código:
SCRIPT_START
{
    NOP

    LVAR_INT marcadores[2], raioCheck, jogador
   
    GET_PLAYER_CHAR 0 jogador
    raioCheck = TRUE
 
    main_loop: // Começar loop
    WAIT 0

    IF LOCATE_CHAR_ANY_MEANS_2D jogador, 2502.695, -1712.153, 50.0, 50.0, 0 // verifico se o player está em um raio de 50.0 parar criar os marcadores ou remover..
        IF raioCheck = TRUE
            GOSUB criar_marcadores
        ENDIF
    ELSE //se o player n esta por perto, remover os marcadores..
        IF raioCheck = FALSE
            GOSUB remover_marcadores
        ENDIF
        GOTO main_loop // Já que o player não esta perto, o script n precisa fazer o resto abaixo...
    ENDIF

    IF LOCATE_CHAR_ON_FOOT_3D jogador 2502.695, -1712.153, 13.568, 0.5, 0.5, 0.5, 0 // verifico se o player está em um raio de 0.5 do primeiro marcador
        SET_CHAR_COORDINATES jogador, 2506.623, -1706.550, 2.731 // se sim, teleporta
    ENDIF
   
    IF LOCATE_CHAR_ON_FOOT_3D jogador 2503.819, -1707.867, 2.731, 0.5, 0.5, 0.5, 0 // idem a cima...
        SET_CHAR_COORDINATES jogador, 2505.458, -1712.173, 13.536
    ENDIF

    GOTO main_loop

    criar_marcadores:
    CREATE_USER_3D_MARKER 2502.695, -1712.153, 13.568, 0, marcadores[0] // Criar primeiro marcador, no exterior
    CREATE_USER_3D_MARKER 2503.819, -1707.867, 2.731, 0, marcadores[1] // Criar segundo marcador, no interior
    raioCheck = FALSE
    RETURN

    remover_marcadores:
    REMOVE_USER_3D_MARKER marcadores[0]
    REMOVE_USER_3D_MARKER marcadores[1]
    raioCheck = TRUE
    RETURN
}
SCRIPT_END
Testa ai pra ver se tá funcionando pokerface


Última edição por Nex' em Sab 28 Jan 2017, 11:15, editado 2 vez(es) (Razão : Fiz umas melhorias e correções)
avatar
Scripter CLEO - Intermediário
Scripter CLEO - Intermediário
Mensagens : 490
Reputação : 32
Desde : 08/02/2016
Localização : São Paulo
Ver perfil do usuário

Re: Meu script deve estar uma porcaria, por favor, me digam todos problemas que acharem

em Sab 28 Jan 2017, 10:50
Nex' escreveu:Eu faria assim:

Testa ai pra ver se tá funcionando pokerface

Qual a diferença de GOTO e GOSUB nesse caso do script, parece que são a mesma coisa do jeito que fez...
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 1023
Reputação : 82
Desde : 04/03/2013
Idade : 17
Ver perfil do usuário

Re: Meu script deve estar uma porcaria, por favor, me digam todos problemas que acharem

em Sab 28 Jan 2017, 10:54
Deadstroke escreveu:
Nex' escreveu:Eu faria assim:

Testa ai pra ver se tá funcionando pokerface

Qual a diferença de GOTO e GOSUB nesse caso do script, parece que são a mesma coisa do jeito que fez...
Acabei de corrigir, eu tinha confundido :) muito tempo sem fazer scripts..
avatar
Mensagens Nível 4
Mensagens Nível 4
Mensagens : 426
Reputação : 12
Desde : 12/01/2016
Localização : 127.0.0.1:25565
Ver perfil do usuário

Re: Meu script deve estar uma porcaria, por favor, me digam todos problemas que acharem

em Sab 28 Jan 2017, 14:25
Tinha um GOTO em baixo de outro GOTO e depois do ELSE não precisava ter outro IF, já que se o IF é verdadeiro o contrário é falso.
Código:

/*

    Feito por DouglasB, melhorado, corrigido e aprimorado por NEX

*/
SCRIPT_START
{
    NOP

    LVAR_INT marcadores[2], raioCheck, jogador

    GET_PLAYER_CHAR 0 jogador
    raioCheck = TRUE

    main_loop: // Começar loop
    WAIT 0

    IF LOCATE_CHAR_ANY_MEANS_2D jogador, 2502.695, -1712.153, 50.0, 50.0, 0 // verifico se o player está em um raio de 50.0 parar criar os marcadores ou remover..
        IF raioCheck = TRUE
            GOTO criar_marcadores
        ENDIF
    ELSE //se o player n esta por perto, remover os marcadores..
        GOTO remover_marcadores
    ENDIF

    IF LOCATE_CHAR_ON_FOOT_3D jogador 2502.695, -1712.153, 13.568, 0.5, 0.5, 0.5, 0 // verifico se o player está em um raio de 0.5 do primeiro marcador
        SET_CHAR_COORDINATES jogador, 2506.623, -1706.550, 2.731 // se sim, teleporta
    ENDIF

    IF LOCATE_CHAR_ON_FOOT_3D jogador 2503.819, -1707.867, 2.731, 0.5, 0.5, 0.5, 0 // idem a cima...
        SET_CHAR_COORDINATES jogador, 2505.458, -1712.173, 13.536
    ENDIF
    GOTO main_loop

    criar_marcadores:
    CREATE_USER_3D_MARKER 2502.695, -1712.153, 13.568, 0, marcadores[0] // Criar primeiro marcador, no exterior
    CREATE_USER_3D_MARKER 2503.819, -1707.867, 2.731, 0, marcadores[1] // Criar segundo marcador, no interior
    raioCheck = FALSE
    RETURN

    remover_marcadores:
    REMOVE_USER_3D_MARKER marcadores[0]
    REMOVE_USER_3D_MARKER marcadores[1]
    raioCheck = TRUE
    GOTO main_loop // Já que o player não esta perto, o script não precisa fazer o resto.
    RETURN
}
SCRIPT_END
avatar
Scripter CLEO - Básico
Scripter CLEO - Básico
Mensagens : 1023
Reputação : 82
Desde : 04/03/2013
Idade : 17
Ver perfil do usuário

Re: Meu script deve estar uma porcaria, por favor, me digam todos problemas que acharem

em Sab 28 Jan 2017, 17:25
Rapaz, tu cagou o script.
GOSUB != GOTO
GOSUB é pra ir ate uma subrotina e voltar pro mesmo lugar em que foi chamado assim que encontrar um RETURN
https://en.wikipedia.org/wiki/GOSUB

E aquele GOTO ali dentro do ELSE é pra economizar processamento, pois se cair no ELSE significa que o player não está perto, e se ele não está perto não tem porque ficar checando se o player está perto dos marcadores...

e o IF dentro do ELSE não é inútil, ele serve pra evitar que jogo fique apagando os marcadores a cada frame (D)
avatar
Mensagens Nível 4
Mensagens Nível 4
Mensagens : 426
Reputação : 12
Desde : 12/01/2016
Localização : 127.0.0.1:25565
Ver perfil do usuário

Re: Meu script deve estar uma porcaria, por favor, me digam todos problemas que acharem

em Sex 03 Fev 2017, 14:23
kkkkkjj
Corrigido. Achei que gosub era coisa da Sanny Builder Fuch That Guy
Ainda bem que o ThePedro004 não colocou o mod na pasta Modloader da TC.

Só vou colocar meu script que você escolhe a cidade e se teletransporta para uma casa aleatória na cidade escolhida ao entrar no jogo. Aquele sim eu tenho noção do que fiz.
Conteúdo patrocinado

Re: Meu script deve estar uma porcaria, por favor, me digam todos problemas que acharem

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum