Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Heretic86

1
Ok, got it.  I was expecting the values i put in would cause the checkbox to stay checked, but when i put in 0 and 1 and saved it, it did come back up as unchecked.  Odd one but got it.

Thanks!
2
Just curious where the ON / OFF value for the Conditions are stored...



module RPG
  class Enemy
    class Action
      def initialize
        @kind = 0
        @basic = 0
        @skill_id = 1
        @condition_turn_a = 0
        @condition_turn_b = 1
        @condition_hp = 100
        @condition_level = 1
        @condition_switch_id = 0
        @rating = 5
      end
      attr_accessor :kind
      attr_accessor :basic
      attr_accessor :skill_id
      attr_accessor :condition_turn_a
      attr_accessor :condition_turn_b
      attr_accessor :condition_hp
      attr_accessor :condition_level
      attr_accessor :condition_switch_id
      attr_accessor :rating
    end
  end
end

None of these appear to contain any data about the Editors conditions, so Im wondering where / how these are stored in the Editor in the window above?  I mean for checking and unchecking the condition sets, not the values themselves...

From the documentation:

Quotecondition_turn_a
condition_turn_b
a and b values specified in the [Turn] condition. To be input in the form a + bx.
When the turn is not specified as a condition, a = 0 and b = 1.

Thing is, although invalid, a = 0 and b = 1 can be entered.  So what controls whether or not that check box is checked?

3
Do I need to put together a different version?

I included the source code for the .dll with the collection...

Sorry for the delay, havent been very active here lately...
4
Quote from: Blizzard on May 25, 2022, 04:10:24 amThe formula I came up with for my script isn't 100% accurate, but I could never figure out why. It might be possible that it just comes down to some mathematical accuracy/rounding issues or something like that. But I think you can still rely on the formula being 99%+ accurate.

Good enough for me!
5
Thanks KK20, I actually fully missed the reply in that thread!



Ok, Exp Curve is done.

Taking a whack at making the Parameters curve tho, not much luck.  Values dont look to be set anywhere in Engine Code, so has to be calculated in the Editor.  Anyone else happen to know what the formula is for calculating curves like this?

6
Hopefully a quick question...

Using HTML5 Canvas to generate Experience Inflation and Parameter Curves...

What are the formulas for calculating the Exp Inflation and Parameter Curves?

Pretty much BOTH things that happen in THESE windows...




7
Fully agree on making it sure that it is fully legal.

For me, this is just more of a passion project, so yes, still playing with this over Unity...  Just a personal preference...

I think the best solution is to work with Enterbrain prior to making games distributable to make sure that users have a valid license for using the RTP assets on any sort of distributed games.  If a person doesn't have a valid license, I plan on setting some stuff up to assist them in getting a valid license.

I already have rudimentary checks set up that will check for uploading known copyrighted material, which currently is just the RTP assets.  The checks I have in place currently are also intended to make it more difficult for any users to steal other users work that they did not license for free use.

Although RPG Maker has been around for a long time by our standards, there is now a whole new generation who have not experienced how much fun it can be to create games!  That means new sales for Enterbrain, if they are willing to allow their XP RTP to be used here when a user has a valid RTP license.  Its their product, so they should be the ones to make profits off of it, not me.

That being said, users will be able to upload their own assets and share, which will be encouraged.

---

Aside from that, Battle Processing in the Editor...



Setting up the stuff to allow for Conditional Branches was quite the chore, next is Shop Processing and thats gonna take some work also...

---

4-21-2022

Not that anyone would be following this, if anyone does, at this time, I really only want a handful of people being aware of what is going on.

The Event Editor is just about complete.  I still need to put in Cut Copy and Paste functionality, which should only take a few hours at tops.  Next up is the Database.

In the XP Editor, there is a button called "Database" where you set up your Items, Actors, Armors, etc.  That is the next very big part, and its gonna be a pain in the buttootie, so expect it to take a while.  Upside is that the Battle Event Editor has everything set up already from the Map Event Editor, so most of that code can be recycled.  Event Editor is a giant pain due to the number of forms that had to be created to handle configuring all of the event command parameters.  And of course, since I overbuild everything, it includes Error Checking.  So if you delete an Item, but you have an Event that lists that Item in a Shop Event, that event and specific command will be highlighted.

Yes, Im still making progress, so YAY for you!
8
I will try to post some Updates as things happen.

Currently Im working thru the Event Editor, and it is a BEAST to do in HTML and Javascript.  Im doing my best to set up the Event Data to be as similar as RPG Maker XP's Event structure as I can, which will hopefully make things easier for Scripters once we get to that point.

The Event Editor is about 75% complete.  Event Graphics, Pages, Conditions, Move Route Commands and Parameters are done, and Audio are also mostly done.  Right now I am going through each Event Command creating forms for each command, which is a very time consuming process to make each form.  Each form is created to be fully functional, so when the Event Command Forms list properly on the Event Editor screen with proper data.

I just started on Page 3 of the Event Commands (Battle Processing), all the buttons on the previous two pages are DONE.

This is quite different than doing things in Visual Studio as the page requires a ton of CSS styling and javascript listeners, so its actually more work, not less.  The forms are relatively simple, there are just so many of them!

One thing that did throw me off was how to achieve the Color Tone shifting that was achieved in XP without a custom DLL.  The solution I came up with was to use an SVG color matrix filter on an image then draw that filtered image to an HTM5 Canvas element.

Gif is highly compressed so it should load fast for most people and here is the effect in action:



A big part of my plan here is to allow for TEAMS.  Another thing that I hope can be achieved is games created with this should be playable on most modern phones!  I dont have any plans to support touch devices for Game Creation however so the editor is being geared toward PC over mobile.

PM if you are interested in seeing what is already done, and what needs to be done.  I wont post any public links until this is in a further state of development...

Anyone?  Anyone?  Bueller?  Bueller?
9
I am still around, focusing on something a bit different.

I have been experimenting to see if I can remake the RPG Maker XP Engine in Javascript, driven on the back end by PHP and MySQL.

There is a lot of work to do on this, but the Tile Editor is complete and some of the back end stuff is done, Event Editor is a Work in Progress, the game engine itself has not been started yet so this is not playable or even close to Alpha stage...

I am deviating from the XP Editor in many places to try to put in IMPROVEMENTS to things I felt that the XP Editor is lacking.  One thing you can immediately notice is there are four graphic layers instead of 3, and an "Auto" mode...  Other things like "Zoom" by just rolling your Mouse Wheel or "Pan" (like Photoshop) where you can hold down the Spacebar and click drag your mouse to pan the map.

These screenshots are of a WEB PAGE so this is all DONE in PURE HTML and Javascript!  Not even the JQueries (too much overhead)!  Map is just a simple map I slapped together...



Layers:



Zoom Out:



Zoom In: (is this zoomed in enough?)



Improvement: Error Detection (This Event has an error where the Condition Switch is out of range, so it is HIGHLIGHTED)



Zooming and Panning:



If I am able to finish this and you want to make games using this, your players wont need to download or install ANYTHING, the plan is to simply send a LINK and play away, so no version comparability issues!






If you have ANY interest, please POST!




Not just scripters but anyone with a general interest...
10
Well, I am half way there, without a dll, or going pixel by pixel.

Possible solution is SVG.  SVG can be drawn to a canvas!

What I did was to use a feColorMatrix filter to the SVG.

I am having some trouble loading the image source graphic into Blob.  I can load the SVG by itself with the external image just fine and the effects appear to be the same as Color Tone in XP.  When I try to make a Blob out of the SVG, it doesnt use the Image Source Data.

Any suggestions to convert the SVG to an Image so I can draw that Image to the canvas?

Spoiler: ShowHide

          <svg xmlns="http://www.w3.org/2000/svg" id="changeMapFogToneSVG" class="changeMapFogTone">
            <filter id="svgCssFilter">
              <feColorMatrix id="svgMatrix" type="matrix"
                values="1 0 0 0 1
                        0 1 0 0 0
                        0 0 1 0 0
                        0 0 0 1 0">
              </feColorMatrix>
            </filter>
            <img id="svgImg" class="changeMapFogToneSvgFilter" src="data:image/png;base64,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" />
          </svg>

      img = new Image();
      let domurl = window.URL || window.webkitURL || window;
      let svgTemp = new Blob([svg], {type: 'image/svg+xml'});
      let url = domurl.createObjectURL(svgTemp);
      img.src = url;

11
Thanks!

I was figuring this would be more complicated than one of the existing CSS image filters.  The results almost look like an HSL value as the S for Saturation might be applicable?  I wasnt really planning on doing this on a pixel by pixel redraw, rather apply to the whole image.

Do you think an HSL filter might be better?  If anything I would rather have MORE functionality rather than less...

---

Edit: Got it, problem solved.

So yes, it IS possible to use an SVG with a Raster Image, apply an SVG filter (such as feColorMatrix), then draw that filtered image to an HTML5 Canvas element.

NOTE: I suck at SVG.

For anyone else that ends up here, the trick is to create a new Image, set an Event Listener for onload on the new Image() to handle drawing to your canvas, then set the matrix values on the feMatrix element, then set the image source  (img.src = 'data:image/svg+xml;base64,' + btoa(svg.outerHTML).replace(/\=+$/, ''); ) to a base64 encoded string of your full SVG element (svg.outerHTML).

It appears to me so far that the onload event listener is needed as even though the data src may be base64 encoded, it appears to be considered as "not fully loaded" until the render with filters is complete.

It may also be necessary to wrap ctx.clearRect and ctx.drawImage in a setTimeout call.  In my situation, I did not need it.

Spoiler: ShowHide

INLINE SVG HTML (contains a base64 data source for a Color Chip)
            <svg id="colorChipSVG" width="73" height="118" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
              <filter id="colormatrix" x="0" y="0" width="1" height="1">
                <feColorMatrix id="feMatrix" type="matrix" values="1 0 0 0 0  0 1 0 0 0   0 0 1 0 0   0 0 0 1 0" />
                <feColorMatrix id="fs" type="saturate" values="1"/>
              </filter>
              <image id="svgImg" width="73" height="118" filter="url(#colormatrix)" xlink:href="data:image/png;base64,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" />
            </svg>

Javascript
    function drawColorChip(){
      let tempImg = new Image();
     
      tempImg.onload = function(){
        ctx.clearRect(0, 0, ctx.width, ctx.height);
        ctx.drawImage(tempImg, 0, 0, 73, 118);
      };
     
      tempImg.src = 'data:image/svg+xml;base64,' + btoa(svg.outerHTML).replace(/\=+$/, '');
    }
12
In the XP Editor in Change Fog Color Tone, its obvious to me that it uses an RGBA value.

If I wanted to simulate the effect in CSS / Javascript using a filter, what would I need need to do to use to achieve the same effects on regular images or a Canvas image?

*cough cough* Blizz?
13
General Discussion / CSS Question
August 18, 2021, 11:06:02 pm
I need to make a Text Area behave like a DOS prompt

Basically so it wraps and spaces are placed like they are in a DOS / CMD window...

This might display a little better...

14
Quote from: Ssinssrigg on April 19, 2021, 09:01:15 amWow! This is amazing!
What is the license/copyright of that scripts?
Is it not forbidden to modify them and use in any production (including commercial) as long as authors will be included in credits? Or I should feel free to do so as long as I credit everyone :D

License is decided by the original or current Rights Holder.  In case of my scripts in this pack, FREE FOR COMMERCIAL USE so long as you give me credit!

There is a ton of other stuff in the collection that come from other people too, KK20, Blizzard, etc.  Enterbrain obviously has the license for all of their content, but just so you know, much of the graphics content does not come from me.  To the best of my knowledge, the additional graphics and audio assets are covered by the Rights they granted, and I believe they were all also free.  None the less, I would still give all those people proper credits too so dont forget about them!

Oh, you can modify the scripts if you need to...
15
Hopefully this is an "easy" one.

I have a page that creates an Instance of a Class.  Then the Class Instance is sent to another page using page.postMessage();  When I receive the data on the other page, and I check the received data to see if the object is an Instance of the Class, it always fails, presumably because I am missing a step.

Properties Page:
class MyClass {
  constructor(name, value){
    this.name = name;
    this.value = value;
  }
}
const foo = new MyClass("bob", 123);
window.postMessage( { myMsg : foo });
function messageListener(msg){
  console.log(msg.data.myMsg instanceof MyClass); // Always returns false
}

I left a lot of code out of the examples but basically using Modules so the same class constructor is available on both pages.

I would like to be able to check the data on the receiving page to see if the object is an instance of the class.

What am I doing wrong?  Most importantly, how can I check on the receiving page to see if the received data is an instance of the class?
16
I put together a simple page that can play back an audio file, and changes pitch by adjusting playbackRate.  Then just to get into the deeper parts of Web Audio API, I saw there was a way to create a visual output of tones in a canvas element.

After I put in the graph canvas tho, I am no longer able to adjust the pitch of an audio file by changing the playback rate, and just in Firefox, but oddly it still works in Chrome.

...
        audio.preservesPitch = false;
        audio.mozPreservesPitch = false;
        audio.webkitPreservesPitch = false;
...

    function graphAnimator(){
      requestAnimationFrame(graphAnimator);
      let fbc_array = new Uint8Array(analyzer.frequencyBinCount);
      analyzer.getByteFrequencyData(fbc_array);
      ctx.clearRect(0, 0, graph.width, graph.height);
      ctx.fillStyle = "#00FFAA";
      for (let i = 0; i < 100; i++){
        let x = i * 3;
        let h = -(fbc_array[i * 8] / 12);
        ctx.fillRect(x, 20, 2, h);
      }
    }
   
    function setupGraph(){
      graph.width = 222;
      graph.height = 20;
      ctx = graph.getContext('2d');
      aCtx = new window.AudioContext();
      analyzer = aCtx.createAnalyser();
      audio_source = aCtx.createMediaElementSource(audio);
      audio_source.connect(analyzer);
      analyzer.connect(aCtx.destination);
      graphAnimator();
    }

Is there a better way to change the pitch of audio?  Honestly, one of the things I did like a bit better about old ass RMXP was its use of MIDI files did not change the playback rate and only changed the tones, but so far, I cant find any reliable ways to play MIDI files, which might be a better solution?  Not sure, and only recently noticed too (or maybe forgotten) that changing Pitch on MP3 / Ogg files does adjust playback rate , lol!

What am I doing wrong that the pitch no longer changes in Firefox but does in Chrome?
17
Thank you!
18
So playing around with some stuff, and I came across this:

module RPG
  class Troop
    def initialize
      @id = 0
      @name = ""
      @members = []
      @pages = [RPG::BattleEventPage.new]
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :members
    attr_accessor :pages
  end
end

Trouble is that there is nothing in the documentation for the structure of the RPG::BattleEventPage.new

Whats up with that?
19
General Discussion / Is This Any Good?
March 29, 2021, 09:01:50 pm
(Removed)

It might look a little familiar... it should!  This is a VERY early version, but what do you guys think so far?

I took the advice a couple very generous folks gave me and worked the Autotiles as best as I could, which as far as I can tell, works PERFECT, even with features that XP didnt have, like the ability to disable affecting Neighbor Autotiles.  Even the "B" tiles work!

- Hold Spacebar and Drag Mouse to Pan the Map
- Mousewheel Up and Down to Zoom In and Out
- Mouse Over a Button for additional information on Modifiers and what else you can do.

Mostly going for User Friendly Interface.  I feel like these were features RPG Maker XP SHOULD have had by default, and last time I used other versions, think they still lack...  The buttons are ALL gonna change positions so its more User Friendly.
20
General Discussion / Hack My Webpage!
March 09, 2021, 05:24:07 am
I am experimenting with a bunch of stuff I am brand new to, so I EXPECT there are gonna be issues...

Other sites I posted on, the messages I got back so far are a bunch of preachers "do not allow users to run their own scripts, ever".  Well, I am not gonna listen to them.  Hasnt been many replies tho, so still waiting for better responses.  Really they just sound very lazy.

Please dont do damage to my server, just the webpage...

What I want to do is to allow Users to UPLOAD THEIR OWN SCRIPTS to an IFRAME to allow them FULL CONTROL of a Canvas Object.  But, it needs to be done so SAFELY.  What I think makes this at least somewhat more secure is not just the code you can see, but a combination of headers and some CORS stuff as well, which you can also see, its just under the response headers.  Sandboxed in.

The GOAL here is for you to BREAK OUT OF THE IFRAME in Javascript and access the rest of the Page.  I set this up to be as easy to hack as possible.  I made it a FORM so you can post ANY JAVASCRIPT YOU WANT in the text field and execute it.  Why?  Because that is what I want ALL USERS to be able to do.  However, the scripts they create need to be completely confined within some sort of sandbox environment that does not put anyone who views their content at risk.  So try things like window.location, window.open, parent.caller, let img = new Image; img.src = 'someurl.jpg',

http://www.webucate.me/iframe/

Please let me know if this works or does not work as I hope it will...

If you can get out of the iframe in javascript and somehow access "hack target" then I will have to dig deeper in how to do this, please let me know how you did and what I need to do to fix.  Basically in theory everything is blacklisted, then opened up some stuff that hopefully is fully contained within the web page.  I need to set up quite a few other things to make this work as I hope, and could use some assistance from people I know and trust...  Im having some issues getting Reporting to work, so need to focus on that if anyone gets a spot of time...

Thanks a ton guys!