System Libram

PurgeandFire

zxcvmkgdfg
Reaction score
509
Updated:

3.0.0.0
  • It is now MUI, to an extent. See the documentation for details.
  • The code has been improved, and it now requires an indexer.
  • Lua has been added to instantly generate the needed objects for the Libram Page Shift add-on.
  • The spells and items no longer interrupt the unit's order.
  • Simple wrapper functions have been added, to make it easier for those who wish to use GUI or simpler JASS. (you still end up using mostly JASS)

Please report any bugs.
 

ZhengHe

New Member
Reaction score
0
I'm newbie in Jass and i have a question, Can i add more skills later? I.e: i start the game with a hero lv 1 and he have only 1 page ability, and when he reach lvl 10 i will give him another page.

Thanks for reading. I'm not good at English ^^
 

PurgeandFire

zxcvmkgdfg
Reaction score
509
Yep, any of the functions can be called at any point in the game. It isn't restricted to just initialization, I just happened to do that in the demo map. =)

For example, the following code will do essentially what you want:
JASS:
scope Example initializer Init
    // An example trigger using the Libram library
    //
    // It creates a paladin and creates a libram for him.
    //
    // At level 10, he gains a new page.
    
    globals
        Libram myLibram             // This is the libram object assigned to the paladin
        LibramPage array myPages    // These are the pages of the libram assigned to the paladin
        unit myHero                 // This is the paladin
    endglobals
    
    private function onLevel takes nothing returns boolean
        if GetHeroLevel(myHero) == 10 then  // Checks the level of the hero to see if it is level 10 
            set myPages[1] = myLibram.createPage() // adds a page, and stores the page in myPages[1]   
            call myLibram.addAbility(myPages[1], 'A001') // adds an ability to it    
        endif
        return false
    endfunction
    
    // if you want to make the above function more ambiguous, you can also do something like this:
    
    // private function onLevelAmbiguous takes nothing returns boolean
    //      local unit u = GetTriggerUnit()
    //      if GetHeroLevel(u) == 10 then
    //          set myPages[1] = Libram<u>.createPage()
    //          call Libram<u>.addAbility(myPages[1], &#039;A001&#039;)
    //      endif
    //      set u = null
    //      return false
    // endfunction

    private function Init takes nothing returns nothing
        local trigger t = CreateTrigger()   // Trigger to register when the hero gains a level
        
        set myHero      = CreateUnit(Player(0), &#039;Hpal&#039;, 0, 0, 0) // creates the pally
        set myLibram    = Libram.create(myHero)                  // creates a libram for him
        set myPages[0]  = myLibram.first                         // sets myPages[0] to the first page of the libram (not necessary)
        call myLibram.addAbility(myPages[0], &#039;A000&#039;)             // adds the ability &#039;A000&#039; to the first page (not necessary)
        
        call TriggerRegisterUnitEvent(t, myHero, EVENT_UNIT_HERO_LEVEL) // registers when the pally gains a level
        call TriggerAddCondition(t, Condition(function onLevel))        // adds the condition to be evaluated on his level-up
    endfunction
endscope</u></u>


Feel free to ask any more questions if you are still confused. :D
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      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