Script de armas para evitar mesma munição

    Compartilhe
    avatar
    RafaQN
    Mensagens Nível 2
    Mensagens Nível 2

    Mensagens : 97
    Reputação : 12
    Desde : 18/10/2015
    Idade : 23
    Localização : São Paulo - SP

    Script de armas para evitar mesma munição

    Mensagem por RafaQN em Dom 01 Nov 2015, 02:11

    Olá,
    gostaria de uma ajuda em um script super simples. Esse é o primeiro script feito do zero por mim, e por isso ainda não conheço muito a respeito da linguagem do cleo.
    O objetivo final do mod é criar um sistema de slots de poucas armas, incluindo armas primárias e secundárias. Quero deixar os slots das armas primárias no slot 4, das metralhadoras, porém, suas munições acabam sendo consideradas iguais.
    Nisso, estou fazendo esse script para desfazer esse problema, com excessão das armas 9mm e 9mm silenciada, que quero manter o mesmo slot. Inclusive, queria criar um separado para somar as munições de 9mm e 9mm silenciada no slot 2, o padrão delas.
    O script que tentei fazer foi esse:

    Código:
    {$CLEO .cs}
    0000: NOP

    :Slot4NoSameAmmo01
    wait 0
       Player.Defined($PLAYER_CHAR)
    jf @Slot4NoSameAmmo01
    04B8: get_weapon_data_from_actor $PLAYER_ACTOR slot 4 weapon 0@ ammo 1@ model 2@
    if
    0039:   0@ == 22
    jf @Slot4NoSameAmmo02
    wait 50
    04B8: get_weapon_data_from_actor $PLAYER_ACTOR slot 4 weapon 3@ ammo 4@ model 5@
    if  
    0039:   3@ == 23
    jf @Slot4NoSameAmmo03
    0114: set_actor $PLAYER_ACTOR weapon 23 add_ammo 1@

    jump @Slot4NoSameAmmo01

    :Slot4NoSameAmmo02
    if
    0039:   0@ == 23
    jf @Slot4NoSameAmmo03
    wait 50
    04B8: get_weapon_data_from_actor $PLAYER_ACTOR slot 4 weapon 3@ ammo 4@ model 5@
    if
    0039:   3@ == 22
    jf @Slot4NoSameAmmo03
    0114: set_actor $PLAYER_ACTOR weapon 22 add_ammo 1@
    jump @Slot4NoSameAmmo01

    :Slot4NoSameAmmo03
    wait 50
    04B8: get_weapon_data_from_actor $PLAYER_ACTOR slot 4 weapon 3@ ammo 4@ model 5@
    if
    003B:   3@ == 0@  // (int)
    jf @Slot4NoSameAmmo05
    jump @Slot4NoSameAmmo01

    :Slot4NoSameAmmo05
    0A8F: 6@ = 1@ - 4@ // int
    0114: set_actor $PLAYER_ACTOR weapon 22 add_ammo 6@
    jump @Slot4NoSameAmmo01

    Agradeço a ajuda de vocês.
    avatar
    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

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

    Re: Script de armas para evitar mesma munição

    Mensagem por Junior_Djjr em Dom 01 Nov 2015, 05:20

    Difícil entender, tipo, parece q o modo q vc está tentando não ajudaria muito nisso (não encontrei a lógica) ao msm tempo q eu não consigo imaginar um modo simples de se criar isso
    Soh consigo imaginar um re-controle geral da munição, guardando o valor de todas as armas no script e checando se vc atirou com alguma arma, se sim, remove 1 e rebota o valor na arma
    Eh como se a contagem do jogo fosse totalmente ignorada e o cleo recriaria a contagem por si soh


    ____________________
    avatar
    RafaQN
    Mensagens Nível 2
    Mensagens Nível 2

    Mensagens : 97
    Reputação : 12
    Desde : 18/10/2015
    Idade : 23
    Localização : São Paulo - SP

    Re: Script de armas para evitar mesma munição

    Mensagem por RafaQN em Dom 01 Nov 2015, 13:17

    Seguinte,

    - Quero fazer slots com armas primárias e secundárias.

    - As armas secundárias do jogo seriam: as pistolas em geral, a sawoff, a tec9 e a micro-uzi.

    - Poderia deixá-las no slot 2, das pistolas, porém, não atiraria com nenhuma arma dentro do carro. Para isso, tenho que deixá-las no slot 4, das sub-metralhadoras. Isso tudo eu faria pelo weapon.dat mesmo.

    - Porém, nesse slot, as munições são consideradas as mesmas. Por exemplo: estou com uma sawoff shotgun, estou com 15 balas, se vou trocá-la por uma 9mm, ao invés de de substituir as 15 munições de shotgun pela pistola, elas são somadas como se fossem do mesmo tipo, entendeu?

    - O objetivo do script é diferenciar os tipos de munições de cada arma secundária, com excessão das 9mm e 9mm silenciada, que quero mantê-las do mesmo tipo.

    Vou tentar explicar o que tentei fazer no script:

    - Na primeira label: defini se o player estava disponível; pelo opcode 04B8, defini qual é a arma e a quantidade de munição que tenho no slot 4 no primeiro momento; depois verifica se a arma é a 9mm (ID 22 no sanny builder), caso contrário, iria pra label 2; se fosse a 9mm, verificaria num instante 2, pelo opcode 04B8, se a arma foi trocada pela silenciada, se sim, manteria a munição, caso contrário, iria pra label 3.

    - Na segunda label: depois verifica se a arma é a 9mm silenciada (ID 23 no sanny builder), caso contrário, iria pra label 3; se fosse ela, verificaria num instante 2 se a arma foi trocada pela 9mm comum, se sim, manteria a munição, caso contrário, iria pra label 3.

    - Na label 3, faria semelhante na segunda e na primeira, mas verificaria se simplesmente a arma trocou por qualquer outra, caso contrário voltaria para a label 1; se confirmasse, iria para a label 5;

    - Na label 5 (pulei a 4): com a confirmação de troca de arma na label 3, ela garantiria que as munições não fossem somadas, e assim, apenas substituiria uma munição pela outra.

    Espero ter deixado bem mais claro.

    Conteúdo patrocinado

    Re: Script de armas para evitar mesma munição

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Seg 26 Jun 2017, 04:10