| 03-11-2006, 10:56 PM | #1 |
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. 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 |
Decimals doesnt work with integers, you'll have to use reals. |
| 03-11-2006, 11:00 PM | #3 |
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. 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 |
