Spellbook Attribute System.

substance

New Member
Reaction score
34
I have an idea for a attribute system and I just wanna make sure it's possible before attemping to make it from scratch. The only reason i assume it may not be is because i've never seen it done and the attribute systems i have seen use item inventory. it's pretty simple but I dont wanna spend too much time on it if it's not doable. Anyway the idea is this :

When a hero levels he gains his attribute bonuses like normal, however when you click the icon to learn a skill he can learn either of his 4 default skills OR he can click the attribute icon. Clicking that icon will bring up a new set of icons, Str, Int, Agi. Now each icon should have a '6' inside of it to show that you have six points to distribute. Clicking any of the icons will give u +1 in that attribute and set them all to 5 and then 4 etc, etc.

Obviously this should all stack so if you gained 2 levels then you could distribute 12 points etc.

Also, would I have to use bonusmod for it to show up like '32+2'?
 

elmstfreddie

The Finglonger
Reaction score
203
To bonusmod - No.
For the stat system itself, the only way I could see it is giving the dude 3 stat items in his inventory (because of your charges)
Or just give him a spell book with abilities inside that give you stats, and when you learn the +stat it enables the abilities in the spellbook, and after learning 6 stats with the spellbook it disables the abilities inside it again.
 

Waaaaagh

I lost all my rep and my title being a jerk
Reaction score
70
Definately it is possible. Use Weaadar's attributer as an example, but, also use the bonus mod to show the +2. Assuming you know JASS, and that's why you posted in the JASS forum, it is completely possible, but I would:

-Definately use items
-Definately use BonusMod.
-Definately not listen to elmstfreddie :p

You probably know how to go about doing this, but just make sure your event is when a her o learns a skill, and that skill is a +0 stat attributer skill.
 

elmstfreddie

The Finglonger
Reaction score
203
I thought he meant is there a way to do it other than using Bonusmod... If he wants the +# thing then yeah go ahead and use it o_O (I hate the green pluses that's why I made that assumption jeeez)

-Definately use items
... If you say don't listen to me, then why'd you say that? I said you could use items =/

I wouldn't go the items way, it's kinda ugly and cluttery.
Same with spellbooks...
There's really no NICE way to do this.
OR MAYBE... OKAY IDEA! (hold on for edit)
When you learn the ability, it selects another hero on the map, which you add 6 stat points to. That hero only has 3 abilities, the +str, +agi, and +int. Using the +stat mobobbery system, check the level of the ability that the dummy hero has and set the +stat to the level of the ability!!! Yay!!!
Once you use up all 6 stat points on the dummy hero, you can go back to your own hero and ... yeah.

(Waaaaagh I am in no mood for insults, this video thing went screwball. Once more and it's -rep for you)
 

Waaaaagh

I lost all my rep and my title being a jerk
Reaction score
70
-Wow. Quick reply = No life :p

-This is at least the eighteenth time I've seen you try to defend yourself and make an excuse after giving bad advice.

-Please, don't reply in threads if your only reason to reply is to defend yourself. If you have something to say, then you can add in the excuse, but please - you are EVERYWHERE.

But yes, BonusMod would be the best way in my oppinion, simply because it is so configurable. You will, and I just realized this, have to add in 30 more abilities for strength, agility and intelligence. Then, simply use 4, 5, and 6 as types when you call addBonus(1, u, type).
 

elmstfreddie

The Finglonger
Reaction score
203
I'm going to bed soon, I usually wait for this to calm down before I do. Also it's good practise for my grammar since I type nicely.
But quick reply because this is all that is open.
-Please, don't reply in threads if your only reason to reply is to defend yourself. If you have something to say, then you can add in the excuse, but please - you are EVERYWHERE.
Oh my dear god learn to read. Go back and read my post, seriously, I dare you.
 

U are a noob

Mega Super Ultra Cool Member
Reaction score
152
-Please, don't reply in threads if your only reason to reply is to defend yourself. If you have something to say, then you can add in the excuse, but please - you are EVERYWHERE.

.... Dude 2/5 of his post was defending him self. And the rest was advice. Also do not bash him for replying fast and trying to help...
________________________
Check Out my MUI System for GUI
 

Waaaaagh

I lost all my rep and my title being a jerk
Reaction score
70
I'm going to bed soon, I usually wait for this to calm down before I do. Also it's good practise for my grammar since I type nicely.
But quick reply because this is all that is open.

Oh my dear god learn to read. Go back and read my post, seriously, I dare you.
Ok, first off. You EDITED your post. Second, I think that the second hero idea is actually a good one, although substance, I would suggest dynamically creating a unit of the same type as the triggering unit, and then removing all abilities, and adding the three, because that would make sure the portraits are the same. That, or make a new unit, with a blank portrait, called Pick Your Attributes. Up to you. Of course, you won't be able to control your hero while picking your attributes... But, meh.

Before he edited the post... which I'm starting to think he did after I posted, it was just

I thought he meant is there a way to do it other than using Bonusmod... If he wants the +# thing then yeah go ahead and use it o_O (I hate the green pluses that's why I made that assumption jeeez)

So don't get mad at me for getting mad at him.

Also, elmstfreddie, I appologize for this:

-Wow. Quick reply = no life. :p
 

elmstfreddie

The Finglonger
Reaction score
203
Well my sister temporarily ruined my internet, the forums died down. SO I AM GOING TO BED BECAUSE I HAVE A LIFE. lol jk
Night everyone...
Thanks for sticking up for me uareanoob.
I have a question though, can someone link me to this +stat system mobobbery? I would like to know what it is :D

Edit >
Ok, first off. You EDITED your post.
Yes... But before I did I said WAIT I GOT AN IDEA! (wait for edit). Not to mention I edited BEFORE you posted.
Oh my dear god he complimented me.

K bed for real now.
 

Waaaaagh

I lost all my rep and my title being a jerk
Reaction score
70
I have a question though, can someone link me to this +stat system mobobbery? I would like to know what it is :D

Currently I have the code, and have edited it to include agi, str and int, but, on account of my JassCraft being frozen in syntax check :)p), and my dumbness making me not save things, and wc3campaigns (the one place I would point you t ofor the code) being down, I cannot post it at this moment. I really do hope to get it uploaded though, along with a few other systems I've been working on (as soon as JassCraft unfreezes).
 

substance

New Member
Reaction score
34
Thanks guys.

I havent messed with spellbooks yet, but yeh im pretty versed in JASS.

I'll probably finish this system up tommrow (dunno if i'll use bonusmod) and share.
 
S

shadowvzs

Guest
I have an idea for a attribute system and I just wanna make sure it's possible before attemping to make it from scratch. The only reason i assume it may not be is because i've never seen it done and the attribute systems i have seen use item inventory. it's pretty simple but I dont wanna spend too much time on it if it's not doable. Anyway the idea is this :

When a hero levels he gains his attribute bonuses like normal, however when you click the icon to learn a skill he can learn either of his 4 default skills OR he can click the attribute icon. Clicking that icon will bring up a new set of icons, Str, Int, Agi. Now each icon should have a '6' inside of it to show that you have six points to distribute. Clicking any of the icons will give u +1 in that attribute and set them all to 5 and then 4 etc, etc.

Obviously this should all stack so if you gained 2 levels then you could distribute 12 points etc.

Also, would I have to use bonusmod for it to show up like '32+2'?

demo map pls
 

substance

New Member
Reaction score
34
Ok well I just talked to a few other people and apparently this isnt possible. I made them a picture to show exactly what i wanted to happen:

spellbook.attribute.png


apparently not only is it not possible to show the number of points the player has to distribute (6) on the attribute icons, but I'd also have to give the unit the ability in order for the spellbook to pop up (as opposed to just clicking to learn the attribute skill and it popping up automatically) which would waste a spellcard slot which is something im not willing to do.

I got an idea of how I can do it though :

I make 3 dummy units on the map somewhere you cant see, then add icons over them (STR,INT,AGI). When a player learns the attribute skill it makes the camera go to this part of the map and create a trigger so that when you click on each other icons you gian that respective skill. when the the points are down to 0 then trigger is killed and the camera moves back.

I can keep track of how many attribute points to distribute by just setting the unit's custom value to +6 when he gains a level and -6 when he learns
a skill.

**To clarify, this isnt to replace the engine's attribute distribution, it's an optional thing a player can do instead of learning a skill. ie. when a player gains a level he can learn a skill OR add additional attribute points to himself.
 

emjlr3

Change can be a good thing
Reaction score
395
you have to use a dummy inventory

check my attribute system at wc3c
 

Waaaaagh

I lost all my rep and my title being a jerk
Reaction score
70
you have to use a dummy inventory

check my attribute system at wc3c
wc3campaigns is down right now... check out THIS link instead (it's by weaaddar).

The demo map is pretty good, and you will see quite easily how to implement an attributer. You will have to change a few things though...
 

substance

New Member
Reaction score
34
yeh I kinda figuired it wasnt possible =p BUT i'm well on my way to the new idea stated in my previous post.

JASS:
globals
unit STR_Unit = gg_unit_e00W_0131
unit AGI_Unit = gg_unit_e00W_0132
unit INT_Unit = gg_unit_e00W_0133
endglobals

struct attributedata
trigger t              //should i 'createtrigger' here on in the function?
triggeraction ta
texttag tt
unit hero
endstruct

function Trig_ClassLearnAttributeSkill_Conditions takes nothing returns boolean
return GetLearnedSkill() == 'A07P'
endfunction

function ClickedAttribute takes nothing returns nothing
local unit clickedattribute = GetTriggerUnit()
local player p = GetTriggerPlayer()
local attributedata struct = GetData(p)
local integer attribute

if clickedattribute == STR_Unit then
set attribute = 0
elseif clickedattribute == AGI_Unit then
set attribute = 1
elseif clickedattribute == INT_Unit then
set attribute = 2
endif

call SetHeroStat(struct.hero, attribute, GetHeroStatBJ(attribute, struct.hero, false) + 1)
call SetTextTagText(struct.tt,"You have "+I2S(GetUnitUserData(struct.hero))+" attribute points left to distribute",0.028)
//create a special effect at the attribute icon location

if GetUnitUserData(struct.hero) == 0 then
call SetCameraPositionForPlayer(p,GetUnitX(struct.hero),GetUnitY(struct.hero))
call DestroyTextTag(struct.tt)
call DisableTrigger(struct.t)
call DestroyTrigger(struct.t)
set clickedattribute = null
//destroy triggeraction?
//unlock camera?
//destroy struct?
//set hero to null?
endif

endfunction

function Trig_ClassLearnAttributeSkill_Actions takes nothing returns nothing
local player p = GetTriggerPlayer()
local real x = GetUnitX(STR_Unit)
local real y = GetUnitY(STR_Unit)
local attributedata struct = attributedata.create()

set struct.hero = GetTriggerUnit()
set struct.tt = CreateTextTag()
set struct.t = CreateTrigger()
set struct.ta= TriggerAddAction(struct.t , function ClickedAttribute)

   call TriggerRegisterPlayerSelectionEventBJ( struct.t , p, true )   
   call SetTextTagPos(struct.tt,x,y,200)
   call SetTextTagText(struct.tt,"You have "+I2S(GetUnitUserData(struct.hero))+" attribute points left to distribute",0.028)
   if GetLocalPlayer() == p then
      call SetTextTagVisibility(struct.tt, true)
      call PanCameraTo(x, y)
   endif
   
   call SetData(p, integer(struct))
//remove whatever ability was given to the hero when he learn the attribute skill
//lock the camera
//destroy struct here on in next function?  
endfunction

//===========================================================================
function InitTrig_ClassLearnAttributeSkill takes nothing returns nothing
    set gg_trg_ClassLearnAttributeSkill = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_ClassLearnAttributeSkill, EVENT_PLAYER_HERO_SKILL )
    call TriggerAddCondition( gg_trg_ClassLearnAttributeSkill, Condition( function Trig_ClassLearnAttributeSkill_Conditions ) )
    call TriggerAddAction( gg_trg_ClassLearnAttributeSkill, function Trig_ClassLearnAttributeSkill_Actions )
endfunction

//should make a 'cancel' button, maybe a 'distribute evenly (+2 to all stats)' button as well?


Bout half-way done.

**That's odd, there's not even one post about 'CreateImage' on these boars. I remember seeing a demo hero selection map that used icons thta you could click on in the map... if anyone has that let me know =X It was called 'hero selection window' or something.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Ghan Ghan:
    Howdy
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?
  • The Helper The Helper:
    Happy Thursday!
    +1
  • Varine Varine:
    Crazy how much 3d printing has come in the last few years. Sad that it's not as easily modifiable though
  • Varine Varine:
    I bought an Ender 3 during the pandemic and tinkered with it all the time. Just bought a Sovol, not as easy. I'm trying to make it use a different nozzle because I have a fuck ton of Volcanos, and they use what is basically a modified volcano that is just a smidge longer, and almost every part on this thing needs to be redone to make it work
  • Varine Varine:
    Luckily I have a 3d printer for that, I guess. But it's ridiculous. The regular volcanos are 21mm, these Sovol versions are about 23.5mm
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though
  • Ghan Ghan:
    Heard Houston got hit pretty bad by storms last night. Hope all is well with TH.
  • The Helper The Helper:
    Power back on finally - all is good here no damage
    +2
  • V-SNES V-SNES:
    Happy Friday!
    +1

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top