O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Código de RGSS2 para aumentar MP?

Iniciado por Foghart, 15/03/2013 às 22:53

15/03/2013 às 22:53 Última edição: 15/03/2013 às 23:32 por Foghart
E aew galera!!
Eu estava usando o SBS Configurations do estilo de batalha Takentai e encontrei essa parte:
#--------------------------------------------------------------------------
 # ? Script Operation Settings
 #--------------------------------------------------------------------------
  # Type - Always "script"
  # 
  # Inserts a simple script code into the action sequence. In the sample, 
  # where it says p=1 can be replaced with any script. Character strings 
  # and anything beyond functions will not work. (?) 
  # ?              ??  Type    
  "TEST_SCRIPT"   => ["script", " 
  
  p = 1 
  
  "],

Então eu estava tentando fazer esse truque aqui...
Meus ataques básicos não dão só 1 hit, eles dão 2 ou mais hits dependendo da skill e personagem, não é problema nenhum, já está funcionando normalmente. Em meu projeto, quando você causa dano com um ataque básico, você ganha SP (Spiritual Points) e com isso você pode executar golpes mais poderosos, sem precisar se preocupar com escasses de SP como os magos, então aqui vai.
Quando o herói causar dano, eu queria que o herói ganhasse 5~15 SP quando atacar, então eu pensei se tem algum código que possa escrever nesse Script Operation Settings que possa encher o SP! Algo do tipo:

#--------------------------------------------------------------------------
 # ? Script Operation Settings
 #--------------------------------------------------------------------------
  # Type - Always "script"
  # 
  # Inserts a simple script code into the action sequence. In the sample, 
  # where it says p=1 can be replaced with any script. Character strings 
  # and anything beyond functions will not work. (?) 
  # ?              ??  Type    
  "Hero 1 SP"   => ["script", "código que enche de 5~15 SP para Hero 1"],

"Hero 2 SP"   => ["script", "código que enche de 5~15 SP para Hero 2"],


Então:

"NORMAL_ATTACK_HERO1"          => ["PREV_MOVING_TARGET","WPN_SWING_V","OBJ_ANIM_WEIGHT","One Wpn Only","Hero 1 SP","16","Can Collapse","FLEE_RESET"],


"NORMAL_ATTACK_HERO2"          => ["PREV_MOVING_TARGET","WPN_SWING_V","OBJ_ANIM_WEIGHT","One Wpn Only","Hero 2 SP","16","Can Collapse","FLEE_RESET"],

Notou que eu inseri o "HERO 1 SP" e o "HERO 2 SP" no processo do NORMAL_ATTACK? Assim ele ativaria o script escrito no Script Operation Settings, funcionando em harmonia!

Não deve ser difícil montar um código que aumente o SP, certo? Se não for possível colocar para selecionar um número de 5 à 15 como plano A, tem como colocar um número fixo, como plano B? Não é o SP máximo que quero aumentar, é o SP atual.
Acho que esse código que estou procurando seria a mesma coisa se colocar em "Chamar Script" em eventos, mas estou querendo usar no Script Operation Settings para ficar mais organizado e ter a imagem do SP enchendo a cada batida e não só quando a skill acaba e o Hero volta pra posição original. (é, já tentei de tudo quanto é evento, não funciona durante uma skill, só quando acaba...)

Exemplo de resultado final em Batalha:
HERO 1 usa ATAQUE TRIPLO => 100dmg (+6 SP), 120dmg (+10 SP), 95dmg (+8 SP).


Exemplo de resultado final em Configurações:
"TRIPLE_ATTACK_HERO1"          => ["PREV_MOVING_TARGET",
"WPN_SWING_V","OBJ_ANIM_WEIGHT","One Wpn Only","Hero 1 SP","16",
"WPN_SWING_V","OBJ_ANIM_WEIGHT","One Wpn Only","Hero 1 SP","16",
"WPN_SWING_V","OBJ_ANIM_WEIGHT","One Wpn Only","Hero 1 SP","16",
"Can Collapse","FLEE_RESET"],


Então, alguém sabe o que eu posso escrever em Script Operation Settings??
Se alguém não entendeu o que quero fazer, pode perguntar! Eu estou procurando por ajuda em vários fóruns e ninguém nem respondeu ao meu tópico, chego a pensar se essa idéia simples que tive é coisa de desenvolvedor JAVA...
Anexos e outras opções
Muito obrigado!! Aguardando respostas a cada hora!!

Pera.. eu acho que entendi, você quer algo assim?
$game_party.members[0].mp += rand(10) + 5


Esse número faz o seguinte, o primeiro membro da party vai receber um valor aleatório de 0-10 de mp, + 5, ou seja, de 5 a 15 de mp, e ele é o primeiro membro da equipe.

16/03/2013 às 21:46 #2 Última edição: 17/03/2013 às 00:06 por Foghart
Funcionou perfeitamente! Porém tem como fazer com o id do personagem pelo Database ao invés de fazer por party.members? Também é possível adicionar esse valor com str, def, int ou agi? Exemplo:
mp += rand(10) + 5 + int


Não sei qual é o código da int do user, mas nesse caso ele iria adicionar o valor da int para o comando.
Existe forma de fazer isso?
Muito obrigado pela ajuda, o código realmente funcionou, só precisava fazer funcionar pelo id do personagem e não pelo grupo!

EDIT:

Consegui fazer com que o valor passe pelo personagem individual!
$game_actors[1].mp += rand(10) + 5


Ainda fica a minha dúvida de como faço para somar o "rand(10) + 5" mais algum status. Tem como somar também o valor de uma variable?

EDIT 2:

$game_actors[3].mp += rand(10) + 5 + $game_variables[x]

Eu utilizei essa linha para fazer a variable X ter o valor somado e funcionou. Fiz correto? Não haverá problemas ou conflitos futuros?
Agora só restou o status.

+ algum status? é que o seu é VX...
E sim pelo que vi o seu code estão legal, acho que sem problemas !  :wow:
tem isso daqui por exemplo...
$game_actors[1].param(x)

aonde x segue o seguinte parametro.
def mhp;  param(0);   end    # HP Máximo
  def mmp;  param(1);   end    # MP Máximo
  def atk;  param(2);   end    # Ataque
  def def;  param(3);   end    # Defesa
  def mat;  param(4);   end    # Inteligência
  def mdf;  param(5);   end    # Resistência
  def agi;  param(6);   end    # Agilidade
  def luk;  param(7);   end    # Sorte

só colocar o número do param dentro das () que deve funfar, ah detalhe tem o xparam também, que são os atributos não visíveis.
  def hit;  xparam(0);  end    # Precisão
  def eva;  xparam(1);  end    # Esquiva
  def cri;  xparam(2);  end    # Crítico
  def cev;  xparam(3);  end    # Esquiva Crítica
  def mev;  xparam(4);  end    # Esquiva Mágica
  def mrf;  xparam(5);  end    # Reflexão
  def cnt;  xparam(6);  end    # Contra Ataque
  def hrg;  xparam(7);  end    # Regeneração de HP
  def mrg;  xparam(8);  end    # Regeneração de SP
  def trg;  xparam(9);  end    # Regeneração de TP

No caso desse código:
$game_actors[1].param(x)


Eu usaria o atk dessa forma?
$game_actors[1].mp += rand(10) + $game_actors[1].param(2)

Sendo a chance de 0~10 + atk

sim :D, tente ai e veja se dá tudo certo  :clap:

Funcionou perfeitamente!!! Muito obrigado Raizen! Quando eu lançar uma demo do meu projeto eu te mando uma PM com o link e quando você tiver tempo, dê uma olhada no resultado desse sistema!
Podem fechar o tópico.