• 🏆 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!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!
Spellbound
Reaction score
429

Profile posts Latest activity Postings Experience Media Albums Resources About Medals

  • And again you've misunderstood

    Here is it better:
    Can you help me convert the SRBTN (NagaBTN) to DISBTN While Maintaining the BTN's border and the DISBTN's dark portrait like this:
    Hey Spellbound
    Do you know how to make a DISBTN version of Icon borders and if you know to make it can you do it for This icon border
    USE_COLLISION_Z_FILTER is an optional toogle which is either ON or OFF per map.

    static if is a feature Vexorian added to his JassHelper.
    A static if works like a normal if then else, but is evaluated during compile time.
    If the condition doesn't match that code is not written into the map script at all.
    static if only allow constant booleans, the and and not operator as condition argument.

    Here is a piece from the MissileStruct module.

    static if Missile_USE_COLLISION_Z_FILTER then
    set collideZ = Missile_GetLocZ(GetUnitX(u), GetUnitY(u)) + GetUnitFlyHeight(u) - this.terrainZ
    if (collideZ + GetUnitBodySize(u) >= this.z - this.collisionZ) and (collideZ <= this.z + this.collisionZ) then
    // Mark as hit.
    call SaveUnitHandle(HASH, this, GetHandleId(u), u)
    if thistype.onCollide(this, u) then
    call thistype.missileTerminateP(this)
    exitwhen true
    endif
    endif

    else
    // Runs unit collision without z collision checks.
    call SaveUnitHandle(HASH, this, GetHandleId(u), u)
    if thistype.onCollide(this, u) then
    call thistype.missileTerminateP(this)
    exitwhen true
    endif
    endif

    Z collision is in most maps not required and therefore optional as it adds overhead.
    The GetLocZ function has been reported to seldom, but sometimes cause desyncs on MAC computers on
    terrain with TerrainDeformations ( via trigger ). I can't confirm that though.
    Hey Spellbound. Your Opinion:
    Should I replace the male Elven Archer\Ranger from the original game to a female Elven Archer\Ranger?
    Yep i have some ideas for that
    Original Content:
    -New abilities for old units (Call to arms for Peasant, Defend for footman just as examples)
    -Proper storyline (with characters that has dialogue, in-game cutscenes, and dialogue not just a wall of text with a guy narrating, action and then ending)
    -Some new units (To make the tech tree more diverse)
    -Proper heroes (Make hero characters like Turalyon, Alleria, Cho'Gall, Deathwing into proper heroes)
    -Voice Acting, Dialogues and Unit Sound Sets (To not try to, at least, to use sound sets from warcraft 2
    -Protagonists (In Starcraft 2, you play as Jim Raynor\Kerrigan\Artanis in their respective race campaign: Terran\Zerg\Protoss. Why not make the protagonist a third party character)

    These are some of my current ideas. but if time comes some more Ideas will come.
    Hey Spellbound
    I'm planing to start a special project here.
    It's Called War2R or Warcraft 2 Remake.

    How it will work:
    It will be a remake of Warcraft 2 campaign in that it will be more storybased like warcraft 3's campaign
    Any help I can get is appreciated. Ok so the "how to use" aspect is still hazy. That will be the topic of my next video, then.
    I'd definitely like them to know how to use it. Spell System is my favorite resource I've ever made, but if no one is using it, it feels like a waste of time. Maybe it's too late to teach a new technique to people.
    Yeah, BPower's Missile is the vJass champ right now. I am not looking to step on his toes, but I am looking forward to setting a higher standard for GUI missile systems.
    I'd like to do something with that, actually. It would be a challenge, but I'll do half-GUI and half-JASS like with what I've been doing with my other systems. I don't want to automate TOO much, but I also want it to be able to be used as a custom-shockwave/multishot thing which could also stop after it hits a unit(s). The effect art would be destroyed automatically at the end. Dummy units will use a vanilla-JASS version of MissileRecycler. Ideally, I want a missile to be as simple to create as setting 3 variables (artwork, start position and end position/unit), while supporting complexity such as being able to handle events (onImpact/completion). The biggest hurdle I have to overcome is the math. I have only been able to copy the work of others, but never do missile arcing/pitching things on my own.
    Hello Sir,

    Congrats on the 1st place of TTC#9. I saw that you were asked to work on the art, if this helps you, here is the official contest Template. Although on the last TechTree contest#9 Pharaoh used another template.
    I just made a cool new addition to Spell System: Spell__Duration. That script we were working on last time is now as simple as this:


    Config Trigger
    Events
    Map Initialization
    Conditions
    Actions
    Set Spell__Trigger_OnEffect = Cast Trigger <gen>
    Set Spell__Trigger_OnLoop = DoT Trigger <gen>
    Set Spell__Ability = Soul Burn
    Trigger - Run Spell System <gen> (ignoring conditions)

    Cast Trigger
    Events
    Conditions
    Actions
    Set Spell__Time = 1.00
    Set Spell__Duration = 5.00

    DoT Trigger
    Events
    Conditions
    Actions
    Unit - Cause Spell__Caster to damage Spell__Target for 35 of attack type Spells and damage Type Normal
    Let's just say i'm a guy who gets prepared and i'm planing to show the moderator your art to (at least try to )make it official
    Hey spellbound
    Do you think will be cool to add Order (Light) and Chaos (Darkness) to Elements?
    And What do you think of the Elements name:
    -Fire: Pyros
    -Air: Aeros
    -Earth: Terros
    -Water: Acquos
    Hey thanks for your feedback!
    As i say, you are invited to join part of the team when you want Spellbound!
    I need guys with likes as you
    The problem is that you are dividing 10 by a real converted into an integer. When you convert a real to an integer, it truncates everything after the decimal. So 0.5 becomes 0. 0.99 becomes 0. To fix this, change the statement where you set the ticks to this:

    Set EC_Ticks[Spell__Index] = (Integer((10.00 / EC_Interval)))

    Always keep division between real variables only, unless you're using some kind of modulo arithmatic.
    Something like that would have to be saved into the hashtable. Granted, I could add it, but what if the user attaches more than one effect? Or other kinds of data? I would love to automate everything for users but the learning curve would then be endless.
    What do you mean by special effects handled by the system? I tried to keep just the essential aspects of a spell, otherwise the system has to keep track of too many situational variables. Tracking targets is really the main feature that doesn't have to be handled by the system, but exists because it's very annoying for the user to have to code it on their own (as it requires custom script to create the group and to destroy the group).

    I had been working on an additional feature to automatically handle offset locations for users, but it adds too much complexity while being very inefficient (and actually requires more work from users).

    I think Spell System has reached critical mass with features, but I'm open to all kinds of feedback.
    Ok, it's obviously channeling since it's based on Cloud.

    Instead of using a "ticks" integer, just check if Spell__Channeling is True. If it's False, then don't set the Spell__Time. This way, you don't need the OnFinish trigger.

    Another Correction needed here:

    Set CCloud_Damage = (20.00 / CCloud_Interval)

    The "/" should be an "x". The way you have it, an interval of 1.00 will damage for 20 per second while 0.25 will damage for 80 per second.
    Is Your spell a channeling spell or single cast? If you want the spell to stop prematurely if canceled or interrupted, then it's fine. otherwise, get rid of the OnFinish trigger as you don't need it.

    Also, delete the first 5 lines in your Effect trigger. You also don't need any filter configurables as your spell only uses the default filter anyway.
    It's formatted like this:

    Config Trigger
    Events
    Map Initialization
    Conditions
    Actions
    Set Spell__Trigger_OnEffect = Cast Trigger <gen>
    Set Spell__Trigger_OnLoop = DoT Trigger <gen>
    Set Spell__Ability = Soul Burn

    Cast Trigger
    Events
    Conditions
    Actions
    Set Spell__Time = 1.00
    Set SoulBurn_Ticks[Spell__Index] = 5

    DoT Trigger
    Events
    Conditions
    Actions
    Set SoulBurn_Ticks[Spell__Index] = (SoulBurn_Ticks[Spell__Index] - 1)
    If (Multiple Conditions)
    If - Conditions
    SoulBurn_Ticks[Spell__Index] Greater than 0
    Then - Actions
    Set Spell__Time = 1.00
    Else - Actions
    Unit - Cause Spell__Caster to damage Spell__Target for 35 of attack type Spells and damage Type Normal
    That's asking for problems, unfortunately. If you don't have a dummy unit as a projectile, you need to use a dummy Object Editor ability based on Death Coil missile art and have a dummy unit cast that ability. When a unit is damaged by that dummy unit, that's when Death Coil was hit.

    It's better to code the missile movement manually or by using a projectile system, as it is less dependent on Object Editor data which slows down map loading times and makes it more difficult to import a resource.

    You can't just say "a unit was dealt spell damage by hero X" and assume it was Death Coil and not some other spell.
    You can't detect being hit by Death Coil in the first place, unless you trigger the death coil's missile movement by having it be attached to a dummy unit.
    OK, not as trigger-dependent as you other resources, I see, so not much could be improved. Here's what it looks like using Spell System:

    function Trig_Pocket_Matrix_Actions takes nothing returns boolean
    local unit u = udg_Spell__Target
    local unit PM_UNIT = null
    local integer ID = 0

    call ShowUnit(u, false)
    if IsUnitType(u, UNIT_TYPE_FLYING) then
    set ID = 'tpof'
    else
    set ID = 'tpou'
    endif
    set PM_UNIT = CreateUnitAtLoc(GetOwningPlayer(u), ID, udg_Spell__TargetPoint, 270)

    call SetUnitFlyHeight(PM_UNIT, GetUnitFlyHeight(u), 0)
    set ID = GetUnitUserData(PM_UNIT)
    set udg_PM_Source[ID] = u

    if IsUnitType(u, UNIT_TYPE_HERO) then
    call UnitApplyTimedLife(PM_UNIT, 'BTLF', 2.5)
    else
    call UnitApplyTimedLife(PM_UNIT, 'BTLF', 5)
    endif
    set u = null
    set PM_UNIT = null
    return false
    endfunction

    //===========================================================================
    function InitTrig_Pocket_Matrix takes nothing returns nothing
    set udg_Spell__Trigger_OnEffect = CreateTrigger()
    call TriggerAddCondition(udg_Spell__Trigger_OnEffect, Filter(function Trig_Pocket_Matrix_Actions))
    set udg_Spell__Ability = 'tpoc'
    call TriggerExecute(gg_trg_Spell_System)

    call TriggerAddCondition(udg_Spell__Trigger_OnEffect, Filter(function Trig_Pocket_Matrix_Actions))
    endfunction
    Do you have any non-submitted spells which I can show you as an example how to adapt them? The video is complete, but it has taken 4 hours just to upload 17% so I will convert the file format, crop some stuff and hope it's faster next time.
  • Loading…
  • Loading…
  • Loading…
  • Loading…
  • Loading…
  • Loading…
  • Loading…
  • Loading…
Top