HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Integer help?

03-11-2006, 10:56 PM#1
The_AwaKening
I'm trying to get a percentage of a number. 75% to be exact. It won't let me use decimals in my integer local, so I tried doing 75/100 * my number and it is setting it to 0 according to a test I ran. Here is my exact trigger that I need to plug it into.

Collapse JASS:
function Trig_Omni_Actions takes nothing returns nothing
local integer i
local player p=GetTriggerPlayer()
local group g=GetUnitsOfPlayerAndTypeId(p, 'Ogrh')
local unit u
    if CountUnitsInGroup(g)>0 then
        set u=FirstOfGroup(g)
        set i=60+((75/100)*(GetHeroStatBJ(bj_HEROSTAT_STR,u,true)+(GetHeroStatBJ(bj_HEROSTAT_AGI,u,true)+GetHeroStatBJ(bj_HEROSTAT_INT,u,true))))
            call ClearTextMessagesBJ( GetForceOfPlayer(p) )
        if i>149 then
            call DisplayTextToPlayer(p,0,0,"Your |cffffcc00Axe Warrior's |r omni is at |cffff0000" + I2S(i) + "|r damage.")
        else
            call DisplayTextToPlayer(p,0,0,"Your |cffffcc00Axe Warrior's |r omni is at |cffff0000" + I2S(i) + "|r damage.")
            call DisplayTextToPlayer(p,0,0,"However omni will do a random number of damage between 150 and 200")
            call DisplayTextToPlayer(p,0,0,"since your stats are not leveled higher yet.")
        endif
    endif
    call DestroyGroup(g)
    set p=null
    set g=null
    set u=null
endfunction

//===========================================================================
function InitTrig_Omni takes nothing returns nothing
local integer i=0
    set gg_trg_Omni = CreateTrigger(  )
    loop
        exitwhen i>8
        call TriggerRegisterPlayerChatEvent( gg_trg_Omni, Player(i), "-omni", true )
        set i=i+1
    endloop
    call TriggerAddAction( gg_trg_Omni, function Trig_Omni_Actions )
endfunction
03-11-2006, 10:57 PM#2
Thunder_Eye
Decimals doesnt work with integers, you'll have to use reals.
03-11-2006, 11:00 PM#3
The_AwaKening
Thanks. Changed to this trigger. I convert it back to integer so that it removes the 3 decimal places. Just for looks since it is display.
Collapse JASS:
function Trig_Omni_Actions takes nothing returns nothing
local real r
local integer i
local player p=GetTriggerPlayer()
local group g=GetUnitsOfPlayerAndTypeId(p, 'Ogrh')
local unit u
    if CountUnitsInGroup(g)>0 then
        set u=FirstOfGroup(g)
        set r=60+((.75)*(GetHeroStr(u,true)+GetHeroAgi(u,true)+GetHeroInt(u,true)))
        set i=R2I(r)
            call ClearTextMessagesBJ( GetForceOfPlayer(p) )
        if r>149 then
            call DisplayTextToPlayer(p,0,0,"Your |cffffcc00Axe Warrior's |r omni is at |cffff0000" + I2S(i) + "|r damage.")
        else
            call DisplayTextToPlayer(p,0,0,"Your |cffffcc00Axe Warrior's |r omni is at |cffff0000" + I2S(i) + "|r damage.")
            call DisplayTextToPlayer(p,0,0,"However omni will do a random number of damage between 150 and 200")
            call DisplayTextToPlayer(p,0,0,"since your stats are not leveled higher yet.")
        endif
    endif
    call DestroyGroup(g)
    set p=null
    set g=null
    set u=null
endfunction

//===========================================================================
function InitTrig_Omni takes nothing returns nothing
local integer i=0
    set gg_trg_Omni = CreateTrigger(  )
    loop
        exitwhen i>8
        call TriggerRegisterPlayerChatEvent( gg_trg_Omni, Player(i), "-omni", true )
        set i=i+1
    endloop
    call TriggerAddAction( gg_trg_Omni, function Trig_Omni_Actions )
endfunction
Also removed my Stat BJ's ;)