[XP] Dynamic Lights by Fabien

Started by finalholylight, April 08, 2014, 07:59:38 am

Previous topic - Next topic

finalholylight

April 08, 2014, 07:59:38 am Last Edit: April 08, 2014, 09:48:53 am by finalholylight
Dynamic Lights
Authors: Fabien
Version: 3.0
Type: Custom Lights
Key Term: Custom Environment System



Introduction

I don't own this script, all info in script is French language, I just use Google translate.
Cause of my bad English, please see pictures -,-



Features


  • Manage lights are not just white on black night but the darkness to hunt truly reveal the true colors. This is what we call light in this script: a hole in a layer hiding the map.
  • Fixed lights is easy without script.
  • One moving light is easy without script.
  • By several lights against relative movement with opportunities colision is impossible without a script like this.
  • The purpose of this code is to facilitate multiple lights "simultaneously".



Screenshots
Spoiler: ShowHide













Script

In demo






Demo

https://www.mediafire.com/?4dh836e78tbc7mz




Instructions

Create an event that call script: "ecran_nuit" to initialize then call a parallel script "lum (name , id)" as many times as you want lights, with "name" the file name of the image of light and "id" is id of the event wearing light.

Ex:
ecran_nuit(240)
or
ecran_nuit(240,0,0,0)
init the dark, only call once (opacity of the dark, red, green, blue)
then call
lum("lampe2",0,255-rand(50))
 (image of light, event id, opacity) (event id = 0 means player)
by using this script call, light like a torch.
or
lumF("lampe2",0,80) if $game_player.moving?

by using this script call, map will be reveal like picture 1



Compatibility

No problems so far!



Credits and Thanks


  • Fabien



ForeverZer0

Did you get permission of the author to post the script here?
I am done scripting for RMXP. I will likely not offer support for even my own scripts anymore, but feel free to ask on the forum, there are plenty of other talented scripters that can help you.

finalholylight

Hmm, I have this demo 4 years ago, now I don't remember where I download this, I think it's no problem to upload it, and in the introduction of the script, I don't see author mentions anything about rule of posting his script, hmm, I think he will be okay.

Heretic86

Note: Start the demo from New Game, not the save game.

The script itself is pulling off some very cool things.  Its extremely impressive.  It may need to be translated better...
Current Scripts:
Heretic's Moving Platforms

Current Demos:
Collection of Art and 100% Compatible Scripts

(Script Demos are all still available in the Collection link above.  I lost some individual demos due to a server crash.)

Ranquil

Regarding the demo:
The guy with the lamp often blocks me from moving, like trapping me into a corner, forcing me to restart the game. Also, if I try to go to the town without the flashlight, the demo will just endlessly show me the message telling me to get the flashlight. The thing is, every time I get the message out of the way, it comes immediately back, so I can't go and get the flashlight.

Regarding the instructions:
Pardon, but I don't understand it at all. This may or may not have something to do with the fact I don't speak English natively. Please don't use Google Translate when publishing something; oftentimes it's just not comprehensible. This definitely needs a better translation.

Regarding the script:
Awesome! C'est magnifique! :3
Quote from: Some guy on FacebookLife is like a penis. It's short but it feels so long when it gets hard.


Quote from: Steven WinterburnBefore you diagnose yourself with depression or low self-esteem, first make sure that you are not, in fact, just surrounded by assholes.

Heretic86

If you happen to speak the same language as the original version of the script was created in, perhaps you'd be interested in assisting in translating the script?  Also, you might be able to get in contact with the original author to get that permission to both translate and distribute on CP.  Sometimes, getting ahold of the original author is challenging, but getting ahold of the original author when we speak different languages is much more difficult.

Agree, the mapping had some issues, getting stuck and what not.  Just hold down CTRL and walk through everyone.

Now, just looking at the way the code itself works, I havent figured any of it out yet, but it looks like it could be made to be much much easier.  And translation can provide a means of doing this with a knowledgable scripter.
Current Scripts:
Heretic's Moving Platforms

Current Demos:
Collection of Art and 100% Compatible Scripts

(Script Demos are all still available in the Collection link above.  I lost some individual demos due to a server crash.)

Ranquil

Quote from: Heretic86 on April 12, 2014, 05:46:31 pm
If you happen to speak the same language as the original version of the script was created in, perhaps you'd be interested in assisting in translating the script?


Sorry, my French skills are very minimal; I last studied - and used - French four years ago and I don't remember pretty much anything about the language anymore. I understood just a bit of the game and I mostly just used Google Translate to get a rough idea on what different things meant. It wasn't very easy though.

Quote from: Heretic86 on April 12, 2014, 05:46:31 pmJust hold down CTRL and walk through everyone.


@___ò
Why has no one told me this before!?
Quote from: Some guy on FacebookLife is like a penis. It's short but it feels so long when it gets hard.


Quote from: Steven WinterburnBefore you diagnose yourself with depression or low self-esteem, first make sure that you are not, in fact, just surrounded by assholes.

finalholylight

Okay, finally, I asked author and had his permission of posting his script.

Spoiler: ShowHide




Now, the only thing is translate it better. Cause of my bad English and I don't know French, I can not do that :D. So that please someone do it and post a new topic.

Spaceman McConaughey

May 29, 2014, 12:44:36 am #8 Last Edit: May 29, 2014, 01:30:55 am by Colonel Blinx
Alright, this is confusing as all fuck.

Even looking at the demo, I cannot for the life of me figure it out. :|
How do I mimic the lighting in screenshot #2?

Also, I literally cannot have more than one light source visible at a time.
Need help.

EDIT:
Plenty of anger later, and I figured it out. :|

ArcaneAlchemy

June 24, 2014, 09:17:13 pm #9 Last Edit: June 25, 2014, 03:38:09 am by ArcaneAlchemy
Okay so I edited this with tutorials to help out those in need that are as confused as I once was!

TUTORIALS BELOW

HERE ARE STEPS TO GET IT WORKING PARTIALLY
Spoiler: ShowHide

To light yourself a torch/flashlight:

1. Go ahead and locate your picture that you want to use for your flashlight. If using the demo as a ..well ... demo then go ahead and make a note of the location in your folder called Graphics/Pictures/lumieres (lumieres means "lights" btw since I've been reading French for the past f-cking hour). If using the demo, you'll see a whole bunch of names.

2. Go ahead and choose one. I chose "lampe2" for my little flashlight/torch thing. It will work just fine for you too. It kinda looks like a torch or something.

3. Make a parallel process triggered event on a new map and paste in the following script:

ecran_nuit(240)
lum("lampe2",0,255)


So what the hell does that mean? ecran_nuit translates to "wallpaper_night", whatever the hell that means. Actually what they mean by that is they are taking an image and overlaying it to a closer z index on the screen. The picture is overlapping what is on the map.
the (240) is the opacity. You can change this if you'd like the 'darkness' aka. wallpaper_night to be more or less opaque.

so what about the lum("lampe2",0,255) part? Well it's pretty simple.
the "lum" stands for light. So I just think of the word 'light' or like lumination.
Inside the parenthesis it goes as follows:

lum("name_of_image",event_id,opacity)

the image I used was lampe2. The event_id of 0 is the main character sprite. Opacity is at max(255)

So that's how you get yourself a nice little torch. But what about all the other cool shit with the lamps lighting at the same time?

Here's where it really confused me. So, apparently, if you try to use more than one parallel process to illuminate lamps, the game will shit all over itself for no apparent reason. No matter how much French you learn in one day, it will still be more confusing and less telling than a creepy mime on the corner of the wine bistro.

HOW WE SET UP LIGHTS AND TORCH AT THE SAME TIME:(This is good for a flickering torch-like effect)

Here's the meat and potatoes:

1. If you followed my last rant, then you should already have the torch on your player. You will want to use A SINGLE parallel process for all of this, so I will go ahead and post in the script for both the player torch AND the lamp torches. Add this to a SINGLE event on a blank map. I suggest using a map texture set that has something that resembles a light or torch for visual satisfaction purposes only. In this map, make an event for your parallel process, and make three more for your lamps. I did mine like so:

[spoiler]




here's the script:


ecran_nuit(240)
lum("lampe2",0,255)
lum("lampe2",1,255-rand(50))
lum("lampe2",2,255-rand(50))
lum("lampe2",3,255-rand(50))



You will notice a few things. Firstly, you will see the code for the original stuff. The first two lines make it dark and give your player a lamp(player = event #0) But if you look above, you'll know this. The next three lines are similar. The numbers after the "lampe2" part are the event id numbers. The other thing you will notice is that in the opacity section, it's set to 255-rand(50). This will create a flickering effect, essentially subtracting a random value of 0-49 of opacity.

Anyway, when you're all said and done, run it and it'll look like this:
Spoiler: ShowHide


[/spoiler]

HOW TO ILLUMINATE A TILE TYPE AND REPEAT WITHOUT ADDITIONAL SCRIPTING(like in example 2 in demo)
Please use the provided demo here to make this easy for the both of us.


This one really confused me for a bit but I figured it out and man I'm so freaking excited!  :D
Spoiler: ShowHide

Step 1. Make a plain old map like this one. Use the Castle town map for this(it's called Ville Forte Ext in the french demo)

[spoiler]


Step 2. Add in a couple of lamps(take note of the coordinates of one of the tops of your lamps is located)VERY IMPORTANT

Spoiler: ShowHide


The tip of my lamp in in the picture is at (003,006) x=3 and y=6 *remember this part

Step 3. Set up a parallel process event like so:

Spoiler: ShowHide


Here is the code to put in there:

ecran_nuit(220)
lum_tile("lampadaire",3,6,1,255,-60,-16)


Firstly, there is the ecran_nuit(220). This is just to set up the darkness at 220 opacity.

Secondly there is the lum_tile() part and I will break down each section.
The overview is: lum_tile("name_of_light_picture",x_coordinate_of_tile, y_coordinate_of_tile, not_sure, opacity, image_x, image_y)

Phew, so let's look at these:


  • lum_tile() is the function that will help us do this awesome trick.

  • the "name_of_light_picture" is the image you're using. Located in Graphics/Pictures/lumieres.

  • I don't know what this one does, but don't change it from 1. It's called the "i_tile" but I don't know what that means.

  • the x_coordinate_of_tile part is the x location of a tile on your map. For instance, if it has a picture of a torch or the top of a
    light post, this is what you want

  • y_coordinate_of_tile part is the same as the x above, but applies to the y. Notice my x,y coordinates were 3,6 just like in the code. Make your coordinates work properly to suit your map

  • opacity is pretty basic and is a value from 0-255 as you probably know already.

  • image_x is just the x coordinate of the image you're using. move as needed

  • image_y is same as image_x above but y coordinate



Phew.

Step 4. Now that you've figured out where one lamp tip or torch flame should be at, use a proper picture. I used the "lampadaire" image for the lamp post because that's what it's made for.

If all goes well, you'll be able to post lamps over and over with no additional scripting and they will automatically be lit up. This effect will be more like a solid light. For a flickering effect, use this in opacity

255 - rand(50)     You don't have to use 50 in the rand, use whatever you want. you could even wait a few frames in the event to change the effect as well.

Hopefully you ended up with this:

Spoiler: ShowHide


This took a while so you are welcome! 8) Enjoy.

[/spoiler]


"Wait? Do I look like a waiter?" -Kefka

Sylphe

wow, so you learned french just for this script o_O
Tu es vraiment fort ! XD anyway  very good explanation I lvl up you
blindly follow his heart can lead to the loss

Sylphe, descendant of Zoldik Family.
Quote from: TedBearTRY KEEP UP

PhoenixFire

nifty! see, now with this translation and instructions, I might actually use this. I've always wondered why it was so hard to find a radius lighting script...
Quote from: Subsonic_Noise on July 01, 2011, 02:42:19 amNext off, how to create a first person shooter using microsoft excel.

Quote from: Zeriab on September 09, 2011, 02:58:58 pm<Remember when computers had turbo buttons?

ArcaneAlchemy

Yeah, I actually added more instructions and completely translated the scripts and the demo. http://forum.chaos-project.com/index.php/topic,14284.msg186222.html#msg186222

I'm just wondering when they'll add it to the database...
"Wait? Do I look like a waiter?" -Kefka