[PSDK] [NB/N2B2] Animation objets rares

9 Réponses • 405 Vues

Redder

Programmeur

Bonjour, bonsoir à toutes, à tous,

Aujourd'hui je vous propose un système permettant de faire une animation d'obtention d'objet à la 5G.

Tout d'abord une vidéo :



Donc, premier cas de figure, vous voulez l'utiliser pour un objet rare, vous n'avez rien à faire à part le donner, le reste se fera automatiquement

Sinon, vous voulez l'utiliser pour afficher une image quelquonque. Dans ce cas, insérez ceci dans une commande de script :
GamePlay::Anim_KeyItem.new(image,mode,x,y,size_x,size_y)


Où :
-image correspond à l'image que vous voulez afficher (chemin complet à partir de graphics)
-mode doit être à false
-x la position x de votre image (défaut : centré)
-y la position y de votre image (défaut : centré)
-size_x la taille x de votre image (défaut : 32px)
-size_y la taille y de votre image (défaut : 32px)


Voilà, si vous avez des questions, n'hésitez pas.

Le script est en pièce jointe.

UPDATE : La taille est maintenant automatiquement détectée

Crédits obligatoires.

« Modifié: 02 juin 2019, 09:36:56 par Redder »

Script PSDK

Nuri Yuri

HostMaster

Bonjour, il y a un soucis avec le script d'après ce que j'ai vu dans des MP.
Il faut préciser le chemin complet et ça ça ne marche pas sur les jeux compilés.
Il faut utiliser RPG::Cache.icon() dans le script avec le nom de l'icone dans le dossier Graphics/Icons.
ln(yo) = <3

Redder

Programmeur

Okay, je vais regarder ça :D je savais pas
Comme l'a dit yuri ça marche pas en compilé et le cercle vert n'apparâit pas en fond et je n'ai pas vu dans le script ou était gérer la  musique, et cela le fait a chaque objet ? ou uniquement les rares ? merci :)

Eurons

Mappeur

Il est conseillé de l’utiliser seulement pour les objets rares sous peine d'alourdir inutilement l'obtention de tes objets, en effet, imagine à quel point te choper une animation pour tout et n'importe quoi peut se révéler chiant...
"Apprendre à nager à quelqu'un en le noyant, c'est ma passion dans la vie." - Eurons, 2018
Rey approuve,
Il est conseillé de l’utiliser seulement pour les objets rares sous peine d'alourdir inutilement l'obtention de tes objets, en effet, imagine à quel point te choper une animation pour tout et n'importe quoi peut se révéler chiant...
D'apres le code que j'ai compris c'est pour tout les items :/

Redder

Programmeur

T'as mal compris, parce que c'est que pour les objets rares. Le cercle j'ai pas trouvé les ressources, donc je l'ai pas fait mais si on le trouve c'est bon.

EDIT : La musique c'est PSDK de base qui la gère

« Modifié: 22 mai 2019, 11:56:12 par Redder »

Je vois car je ne l'avais pas mise dans l'évenement et je ne l'ai pas vu dans le code du coup pour le cercle vert c'est reglé fin vite fait XD et du coup t'a une solution pour les jeux compilés ? c'est un peu l'objectif final ^^

Redder

Programmeur

Bah si tu utilises la fonction première, c'est à dire juste avec les objets rares, normalement y a pas de souci car j'ai utilisé le code que Yuri a donné. Pour l'affichage d'une autre image, je regarderai quand je serai plus disponible, là je suis en période d'examen
Je me suis permis de retoucher ton script pour l'adapter à PSP 0.9.2 :
module GamePlay
class Anim_KeyItem

def initialize(id=1,item=true,x=(640/2),y=(480/2))

@running = true
@viewport = Viewport.new(0,0,640,480)
@viewport.z = 10001
@item = Sprite.new(@viewport)
@item.x = x
@item.y = y
if item == true
@item.bitmap = RPG::Cache.icon(::POKEMON_S::Item.icon(id))
else
@item.bitmap = Bitmap.new(id)
end
@item.ox = @item.bitmap.width/2
@item.oy = @item.bitmap.height/2
@item.zoom_x = 0.4
@item.zoom_y = 0.4
@item.angle = 180
@item.opacity = 0
start_zoom
@item.opacity = 255
Graphics.wait(10)
tilt
                        Graphics.wait(10)
disappear
dispose
end

def start_zoom

for i in 1..30
@item.opacity += 8.5
@item.zoom_x += 0.05
@item.zoom_y += 0.05
#@item.x -= 0.5
#@item.y -= 0.5
@item.angle -= 6
Graphics.update
end

end

def tilt

for i in 1..5
@item.angle -= 2
Graphics.update
end

for i in 1..10
@item.angle += 2
Graphics.update
end

for i in 1..5
@item.angle -= 2
Graphics.update
end

end

def disappear

for i in 1..10
@item.zoom_x -= 0.2
@item.zoom_y -= 0.2
@item.opacity -= 25.5
Graphics.update
end

end

def dispose
@viewport.dispose
@running = false
end

end
end

class Interpreter

alias old_command126 command_126
def command_126
old_command126
if ::POKEMON_S::Item.socket(@parameters[0]) == 5
GamePlay::Anim_KeyItem.new(@parameters[0])
#Graphics.transition
end
end

end
module Graphics
    def self.wait(frame)
      i = 0
      loop do
        i += 1
        Graphics.update
        if i >= frame
          break
        end
      end
    end
end
ça peut toujours servir. Il n'y a pas de crédits supplémentaires puisque je n'ai fait qu'ajuster le script.

There was an error while thanking
Thanking...