Library EffectLib - Manage your effects the nice way. (Text/Image in Particles)

Discussion in 'Resources' started by Slikey, Apr 21, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    Slikey

    I don't know if you gonna understand that, because it includes the ration-matricies.. But of course I post the source.. Please keep in mind, that I can't support the source if you copy & paste it to your own plugin. I'll be easier if you just use the lib.

    Show Spoiler

    Code:java
    1.  
    2. import net.minecraft.server.v1_7_R3.PacketPlayOutWorldParticles;
    3.  
    4. import org.bukkit.Location;
    5. import org.bukkit.util.Vector;
    6.  
    7. import de.slikey.effectlib.EffectManager;
    8. import de.slikey.effectlib.EffectType;
    9. import de.slikey.effectlib.util.MathUtils;
    10. import de.slikey.effectlib.util.ParticleType;
    11. import de.slikey.effectlib.util.RandomUtils;
    12. import de.slikey.effectlib.util.VectorUtils;
    13.  
    14. public class ConeLocationEffect extends LocationEffect {
    15.  
    16. /**
    17.   * ParticleType of spawned particle
    18.   */
    19. public ParticleType particle = ParticleType.FLAME;
    20.  
    21. /**
    22.   * Radius of cone (2)
    23.   */
    24. public float radius = 2;
    25.  
    26. /**
    27.   * Growing per iteration (0.05)
    28.   */
    29. public float grow = .05f;
    30.  
    31. /**
    32.   * Radials per iteration (PI / 16)
    33.   */
    34. public double radials = Math.PI / 16;
    35.  
    36. /**
    37.   * Cone-particles per interation (10)
    38.   */
    39. public int particles = 10;
    40.  
    41. /**
    42.   * Growth in blocks per iteration (0.002)
    43.   */
    44. public float coneGrow = .002f;
    45.  
    46. /**
    47.   * Conesize in particles per cone
    48.   */
    49. public int coneSize = 200;
    50.  
    51. /**
    52.   * Current step. Works as counter
    53.   */
    54. protected int step = 0;
    55.  
    56. /**
    57.   * Randomize every cone on start (true)
    58.   */
    59. public boolean randomize = true;
    60.  
    61. protected double randomAngle = 0;
    62.  
    63. public ConeLocationEffect(EffectManager effectManager, Location location) {
    64. super(effectManager, location);
    65. type = EffectType.REPEATING;
    66. period = 1;
    67. iterations = 200;
    68. }
    69.  
    70. @Override
    71. public void onRun() {
    72. for (int x = 0; x < particles; x++) {
    73. if (step > coneSize)
    74. step = 0;
    75. if (randomize && step == 0)
    76. randomAngle = RandomUtils.getRandomAngle();
    77. double angle = step * radials + (2 * Math.PI) + randomAngle;
    78. Location location = this.location.clone();
    79. Vector v = new Vector(Math.cos(angle) * radius * step * coneGrow, step * grow, Math.sin(angle) * radius * step * coneGrow);
    80. VectorUtils.rotateAroundAxisX(v, (location.getPitch() + 90) * MathUtils.degreesToRadians);
    81. VectorUtils.rotateAroundAxisY(v, -location.getYaw() * MathUtils.degreesToRadians);
    82. location.add(v);
    83. PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles(particle.getParticleName(), (float) location.getX(), (float) location.getY(), (float) location.getZ(), 0, 0, 0, 0, 0);
    84. sendPacket(packet, location, visibleRadiusSquared);
    85. step++;
    86. }
    87. }
    88. }

     
    CeramicTitan likes this.
  2. Offline

    VictoryShot

    Download?
     
  3. Offline

    Slikey

    VictoryShot You always get the latest version on the link in the third post. It's a static download.
     
  4. Offline

    VictoryShot

    I like this cone better than the other.
     
  5. Offline

    TimTheAmazing

  6. Offline

    Slikey

    Hey, please take a look at the Usage-Spoiler. As you'll see, you have to pass an EffectManager to the effect. So make the EffectManager from the onEnable a class attribute and remove the EffectManager in front of your variable at your onEnable.
    Code:java
    1. private EffectManager effectManager;


    VictoryShot What are you saying? You like this one on the image better than the one implemented? You might have to set the radius for your needs on the effect.

    Oh. And you might change the variable ConeLocationEffect.randomize to false. I'll prevent the cone from randomizing each time it restarts.

    New Effect: The orbital model of the atom!
    • Custom nucleus and orbital particles
    • Custom radius of nucleus and oribtals
    • Custom amount of particles in nucleus and orbitals
    • Rotate around the Y-Axis
    • Custom velocity of orbitals
    Upload soon.
    [​IMG]

    Source:
    Show Spoiler
    Code:java
    1.  
    2. import net.minecraft.server.v1_7_R3.PacketPlayOutWorldParticles;
    3.  
    4. import org.bukkit.Location;
    5. import org.bukkit.util.Vector;
    6.  
    7. import de.slikey.effectlib.EffectManager;
    8. import de.slikey.effectlib.EffectType;
    9. import de.slikey.effectlib.util.ParticleType;
    10. import de.slikey.effectlib.util.RandomUtils;
    11. import de.slikey.effectlib.util.VectorUtils;
    12.  
    13. public class AtomLocationEffect extends LocationEffect {
    14.  
    15. /**
    16.   * ParticleType of the nucleus
    17.   */
    18. public ParticleType particleNucleus = ParticleType.DROP_WATER;
    19.  
    20. /**
    21.   * ParticleType of orbitals
    22.   */
    23. public ParticleType particleOrbital = ParticleType.DROP_LAVA;
    24.  
    25. /**
    26.   * Radius of the atom
    27.   */
    28. public int radius = 3;
    29.  
    30. /**
    31.   * Radius of the nucleus as a fraction of the atom-radius
    32.   */
    33. public float radiusNucleus = .2f;
    34.  
    35. /**
    36.   * Particles to be spawned in the nucleus per iteration
    37.   */
    38. public int particlesNucleus = 40;
    39.  
    40. /**
    41.   * Particles to be spawned per orbital per iteration
    42.   */
    43. public int particlesOrbital = 10;
    44.  
    45. /**
    46.   * Orbitals around the nucleus
    47.   */
    48. public int orbitals = 6;
    49.  
    50. /**
    51.   * Rotation around the Y-axis
    52.   */
    53. public double rotation = 0;
    54.  
    55. /**
    56.   * Velocity of the orbitals
    57.   */
    58. public double angularVelocity = Math.PI / 80d;
    59.  
    60. protected int step = 0;
    61.  
    62. public AtomLocationEffect(EffectManager effectManager, Location location) {
    63. super(effectManager, location);
    64. type = EffectType.REPEATING;
    65. period = 2;
    66. iterations = 200;
    67. }
    68.  
    69. @Override
    70. public void onRun() {
    71. for (int i = 0; i < particlesNucleus; i++) {
    72. Vector v = RandomUtils.getRandomVector().multiply(radius * radiusNucleus);
    73. location.add(v);
    74. PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles(particleNucleus.getParticleName(), (float) location.getX(), (float) location.getY(), (float) location.getZ(), 0, 0, 0, 0, 0);
    75. sendPacket(packet, location, visibleRadiusSquared);
    76. location.subtract(v);
    77. }
    78. for (int i = 0; i < particlesOrbital; i++) {
    79. double angle = step * angularVelocity;
    80. for (int j = 0; j < orbitals; j++) {
    81. double xRotation = (Math.PI / orbitals) * j;
    82. Vector v = new Vector(Math.cos(angle), Math.sin(angle), 0).multiply(radius);
    83. VectorUtils.rotateAroundAxisX(v, xRotation);
    84. VectorUtils.rotateAroundAxisY(v, rotation);
    85. location.add(v);
    86. PacketPlayOutWorldParticles packet = new PacketPlayOutWorldParticles(particleOrbital.getParticleName(), (float) location.getX(), (float) location.getY(), (float) location.getZ(), 0, 0, 0, 0, 0);
    87. sendPacket(packet, location, visibleRadiusSquared);
    88. location.subtract(v);
    89. }
    90. step++;
    91. }
    92. }
    93.  
    94. }
    95.  


    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Oct 29, 2015
  7. Offline

    VictoryShot

    Wow that's amazing:eek:
     
  8. Offline

    TimTheAmazing


    Woops :) ty

    Is there a way that I can stop the effect from playing without changing the iterations? Trying to make some of these into a trail and I want stop the previous effect from playing if a player types a command. Would I have to terminate the Runnable somehow? Or some other way

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Oct 29, 2015
  9. Offline

    Slikey

    TimTheAmazing just call cancel on the effect. And pass Effect.cancel(boolean callback) if you want to play the callback.
     
  10. Offline

    wouterrr

    This. Is. Awesome.
     
    bigteddy98 likes this.
  11. Offline

    coco5843

    Can you make your lib for Bukkit 1.7.2 and spigot to give you all of my sources :D
     
  12. Offline

    Slikey

    coco5843 I am going to finish these 2 effects I am working on and then, i'll take a look on calling NMS via reflection.. ;) I hope my lib will be compatible with every CB build 1.7+
     
  13. Offline

    VictoryShot

    Can you make a star effect
     
  14. Offline

    Slikey

    VictoryShot Do you mean a 3D star or just a 2D star with n corners?
     
  15. Offline

    coco5843

    I try to implement your atomeffect in your lib but i don't find VectorUtils
     
  16. Offline

    Slikey

    coco5843 Just download the new version. It is already implemented ;) VectorUtils might be VectorUtil in you version.. I renamed it to match with the other Utils classes.

    EDIT: Download updated with new Fountain and Grid effect.

    New Effect: Grid
    • Custom width, height of cells
    • Custom amount of rows and columns
    • Custom amount of particles per cell height and width
    • Rotate around Y-Axis
    • Custom ParticleType
    [​IMG]
    Source:
    Show Spoiler

    Code:java
    1.  
    2. import net.minecraft.server.v1_7_R3.Packet;
    3. import net.minecraft.server.v1_7_R3.PacketPlayOutWorldParticles;
    4.  
    5. import org.bukkit.Location;
    6. import org.bukkit.util.Vector;
    7.  
    8. import de.slikey.effectlib.EffectManager;
    9. import de.slikey.effectlib.EffectType;
    10. import de.slikey.effectlib.util.ParticleType;
    11. import de.slikey.effectlib.util.VectorUtils;
    12.  
    13. public class GridLocationEffect extends LocationEffect {
    14.  
    15. /**
    16.   * ParticleType of the nucleus
    17.   */
    18. public ParticleType particle = ParticleType.FLAME;
    19.  
    20. /**
    21.   * Rows of the grid
    22.   */
    23. public int rows = 5;
    24.  
    25. /**
    26.   * Columns of the grid
    27.   */
    28. public int columns = 10;
    29.  
    30. /**
    31.   * Width per cell in blocks
    32.   */
    33. public float widthCell = 1;
    34.  
    35. /**
    36.   * Height per cell in blocks
    37.   */
    38. public float heightCell = 1;
    39.  
    40. /**
    41.   * Particles to be spawned on the horizontal borders of the cell
    42.   */
    43. public int particlesWidth = 4;
    44.  
    45. /**
    46.   * Particles to be spawned on the vertical borders of the cell
    47.   */
    48. public int particlesHeight = 3;
    49.  
    50. /**
    51.   * Rotation around the Y-axis
    52.   */
    53. public double rotation = 0;
    54.  
    55. public GridLocationEffect(EffectManager effectManager, Location location) {
    56. super(effectManager, location);
    57. type = EffectType.REPEATING;
    58. period = 5;
    59. iterations = 200;
    60. }
    61.  
    62. @Override
    63. public void onRun() {
    64. // Draw rows
    65. Vector v = new Vector();
    66. for (int i = 0; i <= (rows + 1); i++) {
    67. for (int j = 0; j < particlesWidth * (columns + 1); j++) {
    68. v.setY(i * heightCell);
    69. v.setX(j * widthCell / particlesWidth);
    70. addParticle(v);
    71. }
    72. }
    73. // Draw columns
    74. for (int i = 0; i <= (columns + 1); i++) {
    75. for (int j = 0; j < particlesHeight * (rows + 1); j++) {
    76. v.setX(i * widthCell);
    77. v.setY(j * heightCell / particlesHeight);
    78. addParticle(v);
    79. }
    80. }
    81. }
    82.  
    83. protected void addParticle(Vector v) {
    84. v.setZ(0);
    85. VectorUtils.rotateAroundAxisY(v, rotation);
    86. location.add(v);
    87. Packet packet = new PacketPlayOutWorldParticles(particle.getParticleName(), (float) location.getX(), (float) location.getY(), (float) location.getZ(), 0, 0, 0, 0, 0);
    88. sendPacket(packet, location, visibleRadiusSquared);
    89. location.subtract(v);
    90. }
    91.  
    92. }
    93.  



    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Oct 29, 2015
  17. Offline

    LCastr0

    Do you even have a life? :confused:
    That's so awesome!!!
     
  18. Offline

    Slikey

    Just finished school and having 17 weeks off to start my studies in IT ;) My girlfriend learns photoshop on this time.. so I have a lot of time.. :D
    Thank you so much for your feedback!

    Just published the complete Source!
    https://github.com/Slikey/EffectLib

    coco5843 Hmm... I don't know why this could happen.. Effect.java:95 says iterations = -1;
    Do you call Effect.infinite()?

    3D-Star.. But it is not perfectly visible.. I'll have to do something about it.. :(
    [​IMG]

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jan 4, 2016
  19. Offline

    LCastr0

    Oh... You actually have a life... Better than me... and I can't even do 1% of what you do :confused: Well, I hope when I start college I can learn something... (And get a GF D: )
     
  20. Offline

    Slikey

    Everyone started once... I remember my father teaching me HTML when I was 10 or 11.. Since then, I wanted to learn every program-language, which was important.. I always learned by try'n'error.. My english was too bad to ask on forums for help^^

    coco5843 Please paste the code, you want to show on notepad first and copy it again from there to remove the style.. I can't read the code with these tags insite :/

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Oct 29, 2015
  21. Offline

    VictoryShot

    3-D :D
     
  22. Offline

    Slikey

    coco5843 Okay.. In general I take a pen and a paper and start drawing what I want to do.. Then I mark down all the known values, which I need for an algorithm... In general I generate all my effects only vertial and rotate it afterwards first by the pitch on the x-axis and then by the yaw on the y-axis..

    This is what you need to do the rotations.. It is implemented in VectorUtils. http://en.wikipedia.org/wiki/Rotation_matrix

    And here is a photo of my pen and paper :'D
    http://i.imgur.com/7UU0X8z.jpg

    VictoryShot That's going to be hard.. But I'll try.. Let's do the maths ;)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Oct 29, 2015
  23. Offline

    coco5843


    XD best drawing ever


    Im getting error when i have take your github sources and implement it :

    Code:
     
    Loading libraries, please wait...
    [03:19:00 INFO]: Starting minecraft server version 1.7.9
    [03:19:01 INFO]: This server is running CraftBukkit version git-Bukkit-1.7.2-R0.
    3-56-g3779cff-b3072jnks (MC: 1.7.9) (Implementing API version 1.7.9-R0.1-SNAPSHO
     
    [03:19:14 INFO]: coco_gigpn issued server command: /premierplugin
    [03:19:14 ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'prem
    ierplugin' in plugin PremierPlugin v1.0
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[cra
    ftbukkit.jar:git-Bukkit-1.7.2-R0.3-56-g3779cff-b3072jnks]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:18
    0) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-56-g3779cff-b3072jnks]
            at org.bukkit.craftbukkit.v1_7_R3.CraftServer.dispatchCommand(CraftServe
    r.java:703) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-56-g3779cff-b3072jnks]
            at net.minecraft.server.v1_7_R3.PlayerConnection.handleCommand(PlayerCon
    nection.java:955) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-56-g3779cff-b3072jnks]
            at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java
    :817) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-56-g3779cff-b3072jnks]
            at net.minecraft.server.v1_7_R3.PacketPlayInChat.a(PacketPlayInChat.java
    :28) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-56-g3779cff-b3072jnks]
            at net.minecraft.server.v1_7_R3.PacketPlayInChat.handle(PacketPlayInChat
    .java:47) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-56-g3779cff-b3072jnks]
            at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:157
    ) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-56-g3779cff-b3072jnks]
            at net.minecraft.server.v1_7_R3.ServerConnection.c(SourceFile:134) [craf
    tbukkit.jar:git-Bukkit-1.7.2-R0.3-56-g3779cff-b3072jnks]
            at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:6
    67) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-56-g3779cff-b3072jnks]
            at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:2
    60) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-56-g3779cff-b3072jnks]
            at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:5
    58) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-56-g3779cff-b3072jnks]
            at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java
    :469) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-56-g3779cff-b3072jnks]
            at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:6
    28) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-56-g3779cff-b3072jnks]
    Caused by: java.lang.NullPointerException
            at de.slikey.effectlib.Effect.start(Effect.java:95) ~[?:?]
            at PremierPlugin.PremierPlugin.onCommand(PremierPlugin.java:78) ~[?:?]
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[cra
    ftbukkit.jar:git-Bukkit-1.7.2-R0.3-56-g3779cff-b3072jnks]
            ... 13 more
    
     
  24. Offline

    xTrollxDudex

    Slikey
    Awesome, you did all the math for us ;)
     
    Someone_Like_You likes this.
  25. Offline

    Slikey

    New Effect: 3D-Star (from v1.1)
    • Custom particle to draw it
    • Custom amount of particles per spike
    • Custom spike-height
    • Custom amount of spikes
    • Custom inner radius of the star
    [​IMG]
    Source (or visit GitHub):
    Show Spoiler

    Code:java
    1. import org.bukkit.Location;
    2. import org.bukkit.util.Vector;
    3.  
    4. import de.slikey.effectlib.EffectManager;
    5. import de.slikey.effectlib.EffectType;
    6. import de.slikey.effectlib.util.MathUtils;
    7. import de.slikey.effectlib.util.ParticleEffect;
    8. import de.slikey.effectlib.util.RandomUtils;
    9. import de.slikey.effectlib.util.VectorUtils;
    10.  
    11. public class StarLocationEffect extends LocationEffect {
    12.  
    13. /**
    14.   * Particles to create the star
    15.   */
    16. public ParticleEffect particle = ParticleEffect.FLAME;
    17.  
    18. /**
    19.   * Particles per spike
    20.   */
    21. public int particles = 70;
    22.  
    23. /**
    24.   * Height of the spikes in blocks
    25.   */
    26. public float spikeHeight = 3.5f;
    27.  
    28. /**
    29.   * Half amount of spikes. Creation is only done half and then mirrored.
    30.   */
    31. public int spikesHalf = 3;
    32.  
    33. /**
    34.   * Inner radius of the star. (0.5)
    35.   */
    36. public float innerRadius = 0.5f;
    37.  
    38. public StarLocationEffect(EffectManager effectManager, Location location) {
    39. super(effectManager, location);
    40. type = EffectType.REPEATING;
    41. period = 4;
    42. iterations = 50;
    43. }
    44.  
    45. @Override
    46. public void onRun() {
    47. float radius = 3 * innerRadius / MathUtils.SQRT_3;
    48. for (int i = 0; i < spikesHalf * 2; i++) {
    49. double xRotation = i * Math.PI / spikesHalf;
    50. for (int x = 0; x < particles; x++) {
    51. double angle = 2 * Math.PI * x / particles;
    52. float height = RandomUtils.random.nextFloat() * spikeHeight;
    53. Vector v = new Vector(Math.cos(angle), 0, Math.sin(angle));
    54. v.multiply((spikeHeight - height) * radius / spikeHeight);
    55. v.setY(innerRadius + height);
    56. VectorUtils.rotateAroundAxisX(v, xRotation);
    57. location.add(v);
    58. particle.display(location, visibleRange);
    59. location.subtract(v);
    60. VectorUtils.rotateAroundAxisX(v, Math.PI);
    61. VectorUtils.rotateAroundAxisY(v, Math.PI / 2);
    62. location.add(v);
    63. particle.display(location, visibleRange);
    64. location.subtract(v);
    65. }
    66. }
    67. }
    68.  
    69. }


    Download updated on Thread. BukkitDev approves downloads very slow, so you may need to wait if you want to download it there.
     
    Someone_Like_You likes this.
  26. Offline

    Dread9Nought

    This is simply awesome. I can't wait to see what other effects you add :)
     
  27. Offline

    LCastr0

    Oh my God...
    Can you make a DNA?
     
  28. Offline

    Slikey

    New Effect: Parabola-Arc
    • Custom start and end position
    • Custom height
    • Supports Y-difference of start and end position
    • Custom particle
    C'mon guys, Create nicer bridges on your arenas and hubs! ;)Someone creating a plugin with that?!
    [​IMG]

    Aaand the source (or on GitHub):
    Show Spoiler

    Code:java
    1. import org.bukkit.Location;
    2. import org.bukkit.util.Vector;
    3.  
    4. import de.slikey.effectlib.EffectManager;
    5. import de.slikey.effectlib.EffectType;
    6. import de.slikey.effectlib.util.ParticleEffect;
    7.  
    8. public class ArcLocationEffect extends LocationEffect {
    9.  
    10. /**
    11.   * ParticleType of spawned particle
    12.   */
    13. public ParticleEffect particle = ParticleEffect.FLAME;
    14.  
    15. /**
    16.   * Height of the arc in blocks
    17.   */
    18. public float height = 2;
    19.  
    20. /**
    21.   * Particles per arc
    22.   */
    23. public int particles = 100;
    24.  
    25. protected final Vector link;
    26. protected final float lenght;
    27. protected int step = 0;
    28.  
    29. public ArcLocationEffect(EffectManager effectManager, Location start, Location stop) {
    30. super(effectManager, start);
    31. link = stop.toVector().subtract(start.toVector());
    32. lenght = (float) link.length();
    33.  
    34. type = EffectType.REPEATING;
    35. period = 1;
    36. iterations = 200;
    37. }
    38.  
    39. @Override
    40. public void onRun() {
    41. float pitch = (float) (4 * height / Math.pow(lenght, 2));
    42. for (int i = 0; i < particles; i++) {
    43. Vector v = link.clone().normalize().multiply((float) lenght * i / particles);
    44. float x = ((float) i / particles) * lenght - lenght / 2;
    45. float y = (float) (-pitch * Math.pow(x, 2) + height);
    46. location.add(v);
    47. location.add(0, y, 0);
    48. particle.display(location, visibleRange);
    49. location.subtract(0, y, 0);
    50. location.subtract(v);
    51.  
    52. step++;
    53. }
    54. }
    55.  
    56. }



    LCastr0 Next Effect will be DNA! With custom bases! ;)
     
    Someone_Like_You likes this.
  29. Offline

    LCastr0

    Oh God... :p
     
  30. Slikey amazing amazing amazing! AMAZING!

    Slikey I'm speechless! totally amazing, Il be honest with you, when you asked for helps - I really did not expected to that kind of effects, do you think you will be able to make it fit into 1 folder so dev's could just "copy paste" it to their plugin? (Il understand if no, cause after all, thats your work!)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jan 23, 2016
    Slikey likes this.
Thread Status:
Not open for further replies.

Share This Page