13. GOSUB e CLEO_CALL

    Compartilhe
    avatar
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Não quero acreditar, quero saber.
    Mensagens : 21449
    Reputação : 629
    Desde : 03/05/2012
    Idade : 21
    Localização : Ibitinga - SP
    Link : www.MixMods.com.br

    Re: 13. GOSUB e CLEO_CALL

    Mensagem por Junior_Djjr em Seg 27 Fev 2017, 16:12

    Pega todo o script logo kkkk. Estava refazendo aquele mod que postaram de 15 animações de morte aleatórias:

    Script:

    Código:
    SCRIPT_START
    {
        SCRIPT_NAME peddiea

        LVAR_INT scplayer
        LVAR_INT lv_char_targeted
        LVAR_INT lv_random
        
        GOSUB sub_load_anims
        
        GET_PLAYER_CHAR 0 scplayer

        label_1:
            WAIT 0

            IF NOT IS_PLAYER_PLAYING 0
                GOTO label_1
            ENDIF

            //NPC
            GET_CHAR_PLAYER_IS_TARGETING 0 lv_char_targeted
            IF DOES_CHAR_EXIST lv_char_targeted
                IF HAS_CHAR_BEEN_DAMAGED_BY_CHAR scplayer lv_char_targeted
                AND NOT IS_CHAR_IN_ANY_CAR lv_char_targeted
                AND NOT IS_CHAR_HEALTH_GREATER lv_char_targeted 10
                    GENERATE_RANDOM_INT_IN_RANGE 0 8 lv_random
                    IF NOT lv_random > 2
                        CLEO_CALL function_set_die_anim 0 (lv_char_targeted) ()
                    ENDIF
                ENDIF
            ENDIF

            //Player
            IF NOT IS_CHAR_HEALTH_GREATER scplayer 10
            AND NOT IS_CHAR_IN_ANY_CAR scplayer
                GENERATE_RANDOM_INT_IN_RANGE 0 6 lv_random
                IF NOT lv_random > 1
                    CLEO_CALL function_set_die_anim 0 (scplayer) ()
                ENDIF
            ENDIF

        GOTO label_1
    }

    {  
        sub_load_anims:
            REQUEST_ANIMATION "KNIFE"
            REQUEST_ANIMATION "CRACK"  
            REQUEST_ANIMATION "WUZI"
            REQUEST_ANIMATION "FINALE"
            REQUEST_ANIMATION "MD_CHASE"
            REQUEST_ANIMATION "PARACHUTE"
            REQUEST_ANIMATION "RYDER"
            REQUEST_ANIMATION "SWEET"
        RETURN
    }

    {
        function_set_die_anim:
            LVAR_INT lv_char_anim
            LVAR_INT lv_random1
            LVAR_FLOAT lv_random2
            
            lv_char_anim = 0
            IF lv_char_anim = 1
                CREATE_CHAR 0 10 0.0 0.0 0.0 lv_char_anim
            ENDIF

            //Check anims
            IF HAS_ANIMATION_LOADED "KNIFE"
            AND HAS_ANIMATION_LOADED "CRACK"
            AND HAS_ANIMATION_LOADED "WUZI"
            AND HAS_ANIMATION_LOADED "FINALE"
            AND HAS_ANIMATION_LOADED "MD_CHASE"
            AND HAS_ANIMATION_LOADED "PARACHUTE"
            AND HAS_ANIMATION_LOADED "RYDER"
            AND HAS_ANIMATION_LOADED "SWEET"
                //Choice randim animation    
                GENERATE_RANDOM_INT_IN_RANGE 0 16 lv_random1
                GENERATE_RANDOM_FLOAT_IN_RANGE 1.5 4.0 lv_random2
                SWITCH lv_random1
                    CASE 0
                        TASK_DIE_NAMED_ANIM lv_char_anim "KILL_KNIFE_PED_DIE" "KNIFE" lv_random2 1
                        BREAK
                    CASE 1
                        TASK_DIE_NAMED_ANIM lv_char_anim "KNIFE_HIT_3" "KNIFE" lv_random2 1
                        BREAK
                    CASE 2
                        TASK_DIE_NAMED_ANIM lv_char_anim "CRCKDETH1" "CRACK" lv_random2 1
                        BREAK                                                                
                    CASE 3
                        TASK_DIE_NAMED_ANIM lv_char_anim "CRCKDETH2" "CRACK" lv_random2 1
                        BREAK
                    CASE 4
                        TASK_DIE_NAMED_ANIM lv_char_anim "CRCKDETH3" "CRACK" lv_random2 1
                        BREAK
                    CASE 5
                        TASK_DIE_NAMED_ANIM lv_char_anim "CRCKDETH4" "CRACK" lv_random2 1
                        BREAK
                    CASE 6
                        TASK_DIE_NAMED_ANIM lv_char_anim "CS_Dead_Guy" "WUZI" lv_random2 1
                        BREAK                                                                
                    CASE 7
                        TASK_DIE_NAMED_ANIM lv_char_anim "CRCKIDLE2" "CRACK" lv_random2 1
                        BREAK
                    CASE 8
                        TASK_DIE_NAMED_ANIM lv_char_anim "FIN_Land_Die" "FINALE" lv_random2 1
                        BREAK
                    CASE 9
                        TASK_DIE_NAMED_ANIM lv_char_anim "CRCKIDLE4" "CRACK" lv_random2 1
                        BREAK
                    CASE 10
                        TASK_DIE_NAMED_ANIM lv_char_anim "MD_BIKE_Lnd_Roll" "MD_CHASE" lv_random2 1
                        BREAK
                    CASE 11
                        TASK_DIE_NAMED_ANIM lv_char_anim "MD_HANG_Lnd_Roll" "MD_CHASE" lv_random2 1
                        BREAK
                    CASE 12
                        TASK_DIE_NAMED_ANIM lv_char_anim "MD_BIKE_Lnd_Roll_F" "MD_CHASE" lv_random2 1
                        BREAK                                                                
                    CASE 13
                        TASK_DIE_NAMED_ANIM lv_char_anim "FALL_skyDive_DIE" "PARACHUTE" lv_random2 1
                        BREAK
                    CASE 14
                        TASK_DIE_NAMED_ANIM lv_char_anim "Carhit_Tumble" "MD_CHASE" lv_random2 1
                        BREAK
                    CASE 15
                        TASK_DIE_NAMED_ANIM lv_char_anim "Sweet_injuredloop" "SWEET" lv_random2 1
                        BREAK
                    DEFAULT
                        BREAK                                                                                                                                                                                            
                ENDSWITCH
            ELSE
                GOSUB sub_load_anims
            ENDIF
        CLEO_RETURN 0 0
    }
    SCRIPT_END
    Há motivo algum pra você fazer isso
    Código:
           lv_char_anim = 0
            IF lv_char_anim = 1
                CREATE_CHAR 0 10 0.0 0.0 0.0 lv_char_anim
            ENDIF
    Tipo, algum mesmo.
    Como explicado, você envia uma variável pra função, e ela vai cair nas primeiras variáveis declaradas, neste caso, o lv_char_anim, e o que você fez?
    Código:
    lv_char_anim = 0
    ?? Ué, e agora? O char estava aí, você setou "0", perdeu ele.


    ____________________
    avatar
    Deadstroke
    Scripter CLEO - Intermediário
    Scripter CLEO - Intermediário

    Mensagens : 481
    Reputação : 30
    Desde : 08/02/2016
    Localização : São Paulo

    Re: 13. GOSUB e CLEO_CALL

    Mensagem por Deadstroke em Seg 27 Fev 2017, 16:35

    Está certo o que você falou, tinha perdido o handle do actor no lv_char_anim e iria dar errado o script.
    Mas o problema permanece:

    Função:
    Código:
    {
        function_set_die_anim:
            LVAR_INT lv_char_anim
            LVAR_INT lv_random1
            LVAR_FLOAT lv_random2
           
            IF NOT IS_PLAYER_PLAYING 0
                CREATE_CHAR 0 10 0.0 0.0 0.0 lv_char_anim
            ENDIF

            //Check anims
            IF HAS_ANIMATION_LOADED "KNIFE"
            AND HAS_ANIMATION_LOADED "CRACK"
            AND HAS_ANIMATION_LOADED "WUZI"
            AND HAS_ANIMATION_LOADED "FINALE"
            AND HAS_ANIMATION_LOADED "MD_CHASE"
            AND HAS_ANIMATION_LOADED "PARACHUTE"
            AND HAS_ANIMATION_LOADED "RYDER"
            AND HAS_ANIMATION_LOADED "SWEET"
                //Choice randim animation   
                GENERATE_RANDOM_INT_IN_RANGE 0 16 lv_random1
                GENERATE_RANDOM_FLOAT_IN_RANGE 1.5 4.0 lv_random2
                SWITCH lv_random1
                    CASE 0
                        TASK_DIE_NAMED_ANIM lv_char_anim "KILL_KNIFE_PED_DIE" "KNIFE" lv_random2 1
                        BREAK
                    CASE 1
                        TASK_DIE_NAMED_ANIM lv_char_anim "KNIFE_HIT_3" "KNIFE" lv_random2 1
                        BREAK
                    CASE 2
                        TASK_DIE_NAMED_ANIM lv_char_anim "CRCKDETH1" "CRACK" lv_random2 1
                        BREAK                                                               
                    CASE 3
                        TASK_DIE_NAMED_ANIM lv_char_anim "CRCKDETH2" "CRACK" lv_random2 1
                        BREAK
                    CASE 4
                        TASK_DIE_NAMED_ANIM lv_char_anim "CRCKDETH3" "CRACK" lv_random2 1
                        BREAK
                    CASE 5
                        TASK_DIE_NAMED_ANIM lv_char_anim "CRCKDETH4" "CRACK" lv_random2 1
                        BREAK
                    CASE 6
                        TASK_DIE_NAMED_ANIM lv_char_anim "CS_Dead_Guy" "WUZI" lv_random2 1
                        BREAK                                                               
                    CASE 7
                        TASK_DIE_NAMED_ANIM lv_char_anim "CRCKIDLE2" "CRACK" lv_random2 1
                        BREAK
                    CASE 8
                        TASK_DIE_NAMED_ANIM lv_char_anim "FIN_Land_Die" "FINALE" lv_random2 1
                        BREAK
                    CASE 9
                        TASK_DIE_NAMED_ANIM lv_char_anim "CRCKIDLE4" "CRACK" lv_random2 1
                        BREAK
                    CASE 10
                        TASK_DIE_NAMED_ANIM lv_char_anim "MD_BIKE_Lnd_Roll" "MD_CHASE" lv_random2 1
                        BREAK
                    CASE 11
                        TASK_DIE_NAMED_ANIM lv_char_anim "MD_HANG_Lnd_Roll" "MD_CHASE" lv_random2 1
                        BREAK
                    CASE 12
                        TASK_DIE_NAMED_ANIM lv_char_anim "MD_BIKE_Lnd_Roll_F" "MD_CHASE" lv_random2 1
                        BREAK                                                               
                    CASE 13
                        TASK_DIE_NAMED_ANIM lv_char_anim "FALL_skyDive_DIE" "PARACHUTE" lv_random2 1
                        BREAK
                    CASE 14
                        TASK_DIE_NAMED_ANIM lv_char_anim "Carhit_Tumble" "MD_CHASE" lv_random2 1
                        BREAK
                    CASE 15
                        TASK_DIE_NAMED_ANIM lv_char_anim "Sweet_injuredloop" "SWEET" lv_random2 1
                        BREAK
                    DEFAULT
                        BREAK                                                                                                                                                                                           
                ENDSWITCH
            ELSE
                GOSUB sub_load_anims
            ENDIF
        CLEO_RETURN 0 0
    }

      Data/hora atual: Qui 25 Maio 2017, 09:29