• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

Mms 4d

Status
Not open for further replies.
Level 22
Joined
Sep 24, 2005
Messages
4,821
Actually, what your doing is more complicated. It's easier to use a method call than set a bulk amount of variables to just knockback a unit.

Also, if you want GUI people to be able to use that, you can write an interface using another lightweight method.

EDIT: yeah 62 arguments, because they're all in one bulk... It can be reduced to what you only need though.
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
Actually, what your doing is more complicated. It's easier to use a method call than set a bulk amount of variables to just knockback a unit.
You guys are really good at vJASS, that's why you think it is easier, it is more complicated for those people who doesn't really know how to make this, yesterday, one guy asked me how to use the KB3D system, if you think that this is one exception, it's no, not everybody are so good at coding, people use GUI wrong (KB3D)

if you get my point, it's more or less like when i wanted the KB3D in JASS / GUI to make it more usable for many people, now i want it vJASS / JASS (where vJASS is the coding, and JASS is the usage)
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
I'm silly tired :(
me 2 :/

i want that the users of KB3D get easily familiar with MMS 4D, i don't want that MMS 4D will be a totally different resource, i don't care what will the inside code be, i want that it's usage will be similar to KB3D


what i'm trying to say that i am going to use the public variables for setting the features for MMS 4D, and other ones for the members of the struct ~hope you understand now
 
Level 22
Joined
Sep 24, 2005
Messages
4,821
You can make a GUI API wrappers if you need to, but the core system must be modelled after vjass site standards. We aren't complaining because we want to impose a certain design model on your system, we just want it to get approved.

I perfectly understand where your coming from, but you're not trying to understand why we're being insistent on this.
 
Level 22
Joined
Sep 24, 2005
Messages
4,821
See, you really don't like to try our suggested idea, you just brushed it away again. Ask Bribe or Magetheridon or Nestharus too.

You guys are really good at vJASS, that's why you think it is easier, it is more complicated for those people who doesn't really know how to make this, yesterday, one guy asked me how to use the KB3D system, if you think that this is one exception, it's no, not everybody are so good at coding, people use GUI wrong (KB3D)

Wow, so now we're being elitists? It's not easier for us because we know vjass, I was being objective the whole time I said that. What I was suggesting was a simpler API implementation. You could have at least gave me and Malhorne a chance to write up a sample instead of just brushing it away immediately, like it was a stupid notion.

You make it sound we don't care for the GUI guys. Are we that heartless?
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
225233-albums6219-picture76957.jpg
 
Level 18
Joined
Sep 14, 2012
Messages
3,413
Okay guys I'm awake !

I think we need to design the API before doing the code.
I always do like this when I create a system -> I make the main part (infact the main part is KB3D loop) and then I design the API and at last I finish the system.

Think of what you want the user to do to use your system.
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
First, what does API means? =3
Think of what you want the user to do to use your system.
i (which will obviously use MMS4D) don't want the use to be in vJASS
like this example you gave:
JASS:
local MMS4D this = MMS4D.create()
set this.parameters1 = x
set this.parameters2 = z
....
call this.apply()
if we can do it like KB3D, it will be better, and there is no need for GUI support for this one, i want JASS support (no udg_)
KB3D will be more or less the GUI version of MMS4D
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
Then what about your dune walker? OLMS?
if i remember right, Dune Walker gets 250 OLMS bonus (if it was a higher number, we'll decrease that)
PnF's system gets the distance between points instead of the unit's facing [sic].
Oh.. yes PnF's system is specific to the OLMS, it saves the target point of the order, that's why it doesn't circle around like KB3D
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
REVIVAL

lol, ok so we are going to do the following:
how to create an instance (user's interface)
I changed my mind :p
And second, we will do it like this:
JASS:
Library MMS4D requires optional MMS_AoEKB, MMS_LineDamage........
So, in the main library, we will use static ifs to remove useless code if the user doesn't want some features (he removed some libraries)
In the secondary libraries, the actions will be written, but in the main library, it will only execute the function/method(or whatsoever) is in the secondary library
 
Level 16
Joined
Jul 31, 2012
Messages
2,217
I don't really have a clear idea, but I'll try to visualize it:
Create nessecary globals ( they were listed before in the thread) and the ones for the static ifs
Do the alloc thing, where an instance is created
And so you will do the method (i think) where the instance loops, and add an if block where you dis chain the instance, i will see if there is anything else needed
 
Level 22
Joined
Sep 24, 2005
Messages
4,821
So, how's this project coming along?
EDIT:
@Malhorne
Use instance flags (struct boolean members) for stuff like AllowTreeKill, Zmovement, BreakSpeedOfLight (522 units per tick lol), etc.

It would also be great if you could make a parent struct that we could extend to child structs:


MMS_Struct --> MMS_2D
___________|-> MMS_3D
___________|-> MMS_4D
(proposed)
members: basic data that all child structs will use, like AllowTreeKill
methods: create, destroy


Now, if a user wants to use a 2d knockback provided by the system, he could do something like:

JASS:
 // inside spell onInit block (vjass)
 set MMS_TYPE=create.MMS_2D() // This should be a global variable, this will be used on the spell or system that uses it
 set MMS_TYPE.flag1=true
 set MMS_TYPE.flag2=true
 set MMS_TYPE.flag3=false
 set MMS_TYPE.defaultSpeed=100.00
 set MMS_TYPE.defaultStuff=100.00
 // etc

You can also do it in GUI via custom script calls.

Using something like this, we can avoid using unnecessary overhead for each knockback, move, etc. calls.

EDIT:
JASS:
struct MMS_Core
 boolean AllowTreeKill
 
 method create
 method destroy
 //etc
endstruct

struct MMS_2D extends MMS_Core
 real x
 real y
 
 method KB
 method Move
 //etc
endstruct

struct MMS_3D extends MMS_Core
 real x
 real y
 real z
 
 method KB
 method Move
 //etc
endstruct

struct MMS_4D extends MMS_Core
 real x
 real y
 real z
 real d //dimension ?
 
 method KB
 method Move
 //etc
endstruct
 
Level 22
Joined
Sep 24, 2005
Messages
4,821
Sure, why not. I'm no longer familiar with these vjass hacks so do what you think is efficient :D
 
Level 18
Joined
Sep 14, 2012
Messages
3,413
Just think of something !
With delegate I can do struct extending to multiple struct.
And by the way -> If 2D extends Core -> 3D extends 2D make 3D extends to Core too.

So just the must have members for every MMS in the core.
Then put only the bonus needed on 2D.
Then put only the bonus needed on 3D.
Then put only the bonus needed on 4D.
<=>
JASS:
//! textmacro SentenceToJad takes int
    Then put only the bonus needed on $int$D.
//! endtextmacro
//! runtextmacro SentencetoJad("2")
//! runtextmacro SentencetoJad("3")
//! runtextmacro SentencetoJad("4")
 
Status
Not open for further replies.
Top