-feu est le nom de l'effet speciau.il ya aussi orbite, fumee, feu, explosion, aura, orbite2, orbite3,lance_flamme,projectile -1 est l'ID de l'evenement ou il va se passer l'effet speciau. Image(s):
x = particule.z*Math.cos(particule.y)*Math.cos(particule.x) y = particule.z*Math.cos(particule.y)*Math.sin(particule.x) z = particule.z*Math.sin(particule.y)
particule.sprite.x = x + ev(effet.cible).screen_x particule.sprite.y = (y-z)/2 + ev(effet.cible).screen_y - 20 particule.sprite.z = (y < 0 ? 10 : 1000) particule.sprite.opacity=63*(3+y/particule.z) if particule.sprite.zoom_x<particule.aleas particule.sprite.zoom_x+=0.02 particule.sprite.zoom_y+=0.02 end end effet.particules.delete_if{|particule|particule.z>640} end #----------------------------------------------------------- def orbite2_nouvelle_particule(effet,n=100) n.times { particule = Particule.new particule.sprite = Sprite.new(@viewport1) particule.sprite.bitmap = RPG::Cache.picture("smoke") particule.sprite.blend_type = 1 particule.aleas = 10+rand(360)*Math::PI/180 particule.sprite.origine 5 particule.sprite.zoom_x=particule.sprite.zoom_y=0 particule.aleas=0.5+rand/2 particule.x = 2*Math::PI*rand # angle phi particule.y = (rand-0.5)*Math::PI #angle theta particule.z = 0# rayon effet.particules.push particule} end #------------------------------------------------------------ def orbite3_maj(effet) 20.to_i.times {orbite3_nouvelle_particule(effet)} if effet.particules.size<200 for particule in effet.particules particule.x+=particule.vx particule.y+=particule.vy particule.vx/=1.03 particule.vy/=1.03 particule.vx=10*sgn(particule.vx) if particule.vx.abs>10 particule.vy=10*sgn(particule.vy) if particule.vy.abs>10 particule.sprite.x=particule.x-$game_map.display_x/4 particule.sprite.y=particule.y-$game_map.display_y/4 particule.sprite.z=(particule.sprite.y*4 + 3) / 4 + 32 for cible in effet.cible dx=particule.sprite.x-ev(cible).screen_x dy=particule.sprite.y-ev(cible).screen_y+20 dy*=1.3 distance=((dx*dx+dy*dy)/6000.0)**2-0.1 distance=distance/(1+distance/200.0)**4
if particule.sprite.zoom_x<1 particule.sprite.zoom_x+=0.05 particule.sprite.zoom_y+=0.05 end end # effet.particules.delete_if{|particule|particule.sprite.opacity<=0} # ev=ev(0) # effet.particules.delete_if{|particule|Math.hypot(ev.screen_x-particule.sprite.x,ev.screen_y-particule.sprite.y-16)<16 } end #--------------------------------------------------------- def orbite3_nouvelle_particule(effet) particule=ini_classique(effet,"fla") particule.sprite.z=300 particule.sprite.tone=Tone.new(255,40,5) effet.cible=[effet.cible] if not effet.cible.is_a?(Array) particule.x=ev(effet.cible[0]).screen_x+$game_map.display_x/4 particule.y=ev(effet.cible[0]).screen_y+$game_map.display_y/4-20 particule.aleas=rand*2*Math::PI particule.aleas=[Math.cos(particule.aleas),Math.sin(particule.aleas)] particule.vx= particule.aleas[0] particule.vy= particule.aleas[1] particule.sprite.angle=rand*360 effet.particules.push particule end #----------------------------------------------------------- def lance_flamme_maj(effet) 10.times {lance_flamme_nouvelle_particule(effet)} for particule in effet.particules maj_classique 0,particule particule.sprite.tone.red+=30 if particule.sprite.tone.green<255 particule.sprite.tone.green+=5 if particule.sprite.tone.green<50 particule.sprite.tone.blue-=20 if particule.sprite.tone.green>20 particule.sprite.opacity-=Math.hypot(particule.vx,particule.vy)*3 end effet.particules.delete_if{|particule|particule.sprite.opacity<=0} ev=ev(1) effet.particules.delete_if{|particule|Math.hypot(ev.screen_x-particule.sprite.x,ev.screen_y-particule.sprite.y-16)<16 } end #--------------------------------------------------------- def lance_flamme_nouvelle_particule(effet) particule=ini_classique(effet,"fla") particule.aleas=rand particule.sprite.tone=Tone.new(-255,0,255) particule.x=ev(effet.cible).screen_x+$game_map.display_x/4+rand(8)-4 particule.y=ev(effet.cible).screen_y+$game_map.display_y/4-rand(10)-14 angle=[135,90,45,180,0,0,-135,-90,-45][ev(effet.cible).direction-1]*Math::PI/180 angle+=(rand-0.5)/8.0 particule.vx= 5*Math.cos(angle) particule.vy= 5*Math.sin(angle) effet.particules.push particule end #-------------------------------------------------------- def brume_maj(effet) 200.times {brume_nouvelle_particule(effet)} if effet.particules.size<200 for particule in effet.particules maj_classique(0,particule,(rand-0.5)**5,(rand-0.5)**5) particule.vx/=1.1 particule.vy/=1.1 for cible in effet.cible next if not ev(cible).moving? dx=particule.sprite.x-ev(cible).screen_x dy=particule.sprite.y-ev(cible).screen_y+20 next if dx.abs+dy.abs>200 dy*=1.3 distance=0.2*Math.hypot(dx,dy)**2+1 vx,vy=ev(effet.cible).vitesse_event particule.vx+= sgn(dx)/distance + vx/distance particule.vy+= sgn(dy)/distance + vy/distance end end effet.particules.delete_if{|particule|particule.sprite.opacity<=0} end #--------------------------------------------------------- def brume_nouvelle_particule(effet) particule = ini_classique(effet,"fla") particule.sprite.tone=Tone.new(0,255,250) particule.sprite.opacity=rand*200+55 particule.aleas = 1 effet.cible=[effet.cible] if not effet.cible.is_a?(Array) particule.x= ev(effet.cible[0]).screen_x+$game_map.display_x/4+rand(200)-100 particule.y=ev(effet.cible[0]).screen_y+$game_map.display_y/4+rand(200)-100 particule.dsprite_z = 0 particule.sprite.blend_type=0 effet.particules.push particule end #--------------------------------------------------------- def traine_sprite_maj(effet) traine_sprite_nouvelle_particule(effet) for particule in effet.particules particule.sprite.opacity-=20 particule.sprite.x=particule.x-$game_map.display_x/4 particule.sprite.y=particule.y-$game_map.display_y/4 end effet.particules.delete_if{|particule|particule.sprite.opacity<=0} end #--------------------------------------------------------- def traine_sprite_nouvelle_particule(effet) return if Graphics.frame_count%2==0 if effet.particules.empty? particule = Particule.new particule.sprite=Sprite.new(effet.cible.viewport) particule.sprite.bitmap = effet.cible.bitmap for truc in ["x","y","ox","oy","angle","opacity","blend_type","zoom_x","zoom_y"] eval("particule.sprite."<<truc<<" = effet.cible."<<truc) particule.x= particule.sprite.x + $game_map.display_x/4 particule.y= particule.sprite.y + $game_map.display_y/4 effet.particules.push particule end end
end ombre.sprite.x=particule.sprite.x ombre.sprite.y=particule.sprite.y ombre.sprite.zoom_x=1.0/(particule.vz.abs/2+1) particule.sprite.y-=particule.z*2 ombre.sprite.opacity=particule.sprite.opacity/Math.sqrt(2+particule.z.abs/3) end effet.particules.delete_if{|particule| particule[0].sprite.opacity-=effet.particules.size/20 if particule[0].z<=0 particule[0].sprite.opacity<=0 }
Se scripte a l'aire super je viens de l'installer sauf que moi je ne voit rien sur ma map , enfin si je voit des truc minuscule qui bouge , mais pas de grand effets du coup sa donne rien , Que dois-je faire ?