Sujet n°14160
Posté par Seusyn le 14 Oct - 16:35 (2014)
Titre : Script
Bonjour,

en codant des nouvelles attaques voici ce que j'ai fait :

Code:

 when 0x1771 # Parasite
            malus = actor.max_hp / 10
          draw_text("L'énergie de " + actor.given_name,"est drainée!")
          heal(actor, actor_sprite, actor_status, -malus)
          heal(enemy, enemy_sprite, enemy_status, malus)
          wait(40)


J'aimerais rajouter que cet effet ne s'applique que pendant 3 tours, comment puis-je faire ? merci d'avance.

Posté par Schneitizel le 14 Oct - 16:57 (2014)
Rajoute un truc du genre

target.skill_effect(0x1771, 4) #Infilge l'effet hex 1771 a la cible (target) pendent 4 tours, le tour en cours inclut

Et cherche le code de l'attaque vampigraine, il te suffira de le copier mais avec l'id hex de ton attaque

Posté par Seusyn le 14 Oct - 17:37 (2014)
Problème c'est que vampigraine n'as pas de tours...

Posté par Schneitizel le 14 Oct - 17:41 (2014)
Sauf que justement, avec mon code, la cible aura l'effet 1771 sur elle pendant 4 tours
Au bout des 4, l'effet disparait de lui meme, et donc la condition est en false => L'energie n'est plus drainée

Posté par Seusyn le 14 Oct - 17:43 (2014)
Ah d'accord oui je comprends, merci

Puis je laisser ce topic ouvert pour mes futurs problemes de script ?

Posté par Seusyn le 14 Oct - 18:30 (2014)
Je viens vers vous donc pour une attaque qui détruit certains objets j'ai reperé ceci :

Code:
when 0x69 # Thief / Larcin
              if target.ability == 60
                draw_text("#{target.ability_name} de #{target.given_name}", "empêche le vol d'objet!")
                wait(40)
              elsif user.item_hold == 0 and target.item_hold != 0
                user.item_hold = target.item_hold
                target.item_hold = 0
                draw_text("#{user.given_name} vole ", "#{user.item_name}!")
                wait(40)
              end


Si j'ai bien compris je devrais utiliser target.item_hold == idobjet
mais je me demande comment faire pour mettre plusieurs id par exemple du 205 au 247.
Merci d'avance.

Posté par Schneitizel le 14 Oct - 19:42 (2014)
Le double post est interdit, prefere faire des edit visibles
Ton code ici sert à voler l'objet de la cible, qu'est ce que tu veux faire exactement ?

Posté par Seusyn le 14 Oct - 20:27 (2014)
Utiliser Calcination qui rend inutilisable une baie ou un joyau tenu par l'adversaire.

Posté par Schneitizel le 14 Oct - 20:41 (2014)
Inutilisable => L'objet est gardé mais le pokémon ne peut plus s'en servir pendent le match OU l'objet disparait et ne peut plus etre recuperé ?

Posté par Seusyn le 14 Oct - 20:43 (2014)
L'objet ne peut pas etre servi pendant le combat.

Posté par Schneitizel le 14 Oct - 20:50 (2014)
if target.item_hold >= 205 and target.item_hold <= 247
target.skill_effect(0xZ)
end

ou Z => id hex de ton effet
Puis, dans la portion de code qui fait utilisé les objets, tu fais

if not user.effect_list.include?(0xZ)
utilisation_de_l'objet
end

Posté par Seusyn le 16 Oct - 00:59 (2014)
Merci pour ton aide mais je reviens encore pour une nouvelle attaque : Force Ajoutée.

Sa puissance de base est 20 mais sa puissance augmente de 20 par augmentation de statistiques, je n'ai pas trouvé le code qui permet d'appeler le nombre d'augmentation effectué.
Merci d'avance.