| 10-27-2003, 10:20 AM | #211 |
Your idea seems to be better than mine =) As for 2-digit hex value H2I can be simplified a lot. |
| 10-27-2003, 11:02 AM | #212 | |
Quote:
|
| 10-27-2003, 12:31 PM | #213 |
I saw you offer your JASS editor for download there. Maybe if Magnus lets you, you could also upload his syntax checker. This would make the JASS Vault more "complete" |
| 10-27-2003, 06:32 PM | #214 |
Who is Magnus? Is that the guy who made http://jass.sourceforge.net/doc and the Syntax Checker there? |
| 10-27-2003, 08:54 PM | #215 |
Yes, he is. You can't see him that often on the forums here but he has created the syntax checker. Edit: I think his Account here is Magnus99 |
| 11-01-2003, 05:42 AM | #216 |
I uploaded my first function to the repository, it is for Diablo2 style summon AI (ie no player control required) Code:
function UnitGuardUnitAI takes unit summon, unit master returns nothing
local location target
local real angle
local real dist
loop
exitwhen IsUnitDeadBJ(summon)
if (DistanceBetweenPoints(GetUnitLoc(summon), GetUnitLoc(master)) > 1000.00 ) then
set target = GetUnitLoc(master)
call IssuePointOrderLocBJ(summon, "move", target)
call RemoveLocation(target)
else
set target = GetUnitLoc(master)
set angle = GetRandomDirectionDeg()
set dist = GetRandomReal(100.00, 500.00)
call MoveLocation(target, GetLocationX(target) + dist * Cos(angle * bj_DEGTORAD), GetLocationY(target) + dist * Sin(angle * bj_DEGTORAD))
call IssuePointOrderLocBJ(summon, "attack", target)
call RemoveLocation(target)
endif
call TriggerSleepAction( 1.0+GetRandomReal(0.0,1.5))
endloop
endfunction |
| 11-30-2003, 05:51 PM | #217 |
I2Hexa(Integer) => String Convert integer < 255 to hexadecimal string strlen(String) => Integer Return number of char in a string (not coded by me but needed) Degrade(String, Integer, Integer, Integer, Integer, Integer, Integer) => String Make a grader text. First 3 integer are RGB of first color and 3 last integer are RGB of last color. Code:
function I2Hexa takes integer i returns string
local string Hexa_Liste = "0123456789ABCDEF"
local integer Conversion_Wait1
local integer Conversion_Wait2
local string Conversion_Hexa
set Conversion_Wait1 = ( i / 16 )
set Conversion_Wait2 = ( i - ( 16 * Conversion_Wait1 ) )
set Conversion_Hexa = ( SubStringBJ(Hexa_Liste, ( Conversion_Wait1 + 1 ), ( Conversion_Wait1 + 1 )) + SubStringBJ(Hexa_Liste, ( Conversion_Wait2 + 1 ), ( Conversion_Wait2 + 1 )) )
return Conversion_Hexa
endfunction
function strlen takes string whichString returns integer
local integer stringlength = 1
if(whichString == "") then
return 0
endif
loop
exitwhen SubStringBJ(whichString, stringlength, stringlength) == ""
set stringlength = stringlength + 1
endloop
return stringlength - 1
endfunction
function Degrade takes string Chaine, integer DRed, integer DGreen, integer DBlue, integer FRed, integer FGreen, integer FBlue returns string
local integer array Degrade_CouleurDeFin
local integer array Degrade_CouleurDeDebut
local string Tempi = ""
set Degrade_CouleurDeDebut[1] = DRed
set Degrade_CouleurDeDebut[2] = DGreen
set Degrade_CouleurDeDebut[3] = DBlue
set Degrade_CouleurDeFin[1] = FRed
set Degrade_CouleurDeFin[2] = FGreen
set Degrade_CouleurDeFin[3] = FBlue
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = 3
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set Degrade_CouleurDeFin[GetForLoopIndexA()] = ( ( Degrade_CouleurDeFin[GetForLoopIndexA()] - Degrade_CouleurDeDebut[GetForLoopIndexA()] ) / strlen( Chaine ) )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = strlen( Chaine )
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set Tempi = ( Tempi + "|cFF" )
set bj_forLoopBIndex = 1
set bj_forLoopBIndexEnd = 3
loop
exitwhen bj_forLoopBIndex > bj_forLoopBIndexEnd
set Tempi = ( Tempi + I2Hexa(Degrade_CouleurDeDebut[GetForLoopIndexB()]) )
set bj_forLoopBIndex = bj_forLoopBIndex + 1
endloop
set Tempi = ( Tempi + ( SubStringBJ(Chaine, GetForLoopIndexA(), GetForLoopIndexA()) + "|r" ) )
set Degrade_CouleurDeDebut[1] = ( Degrade_CouleurDeDebut[1] + Degrade_CouleurDeFin[1] )
set Degrade_CouleurDeDebut[2] = ( Degrade_CouleurDeDebut[2] + Degrade_CouleurDeFin[2] )
set Degrade_CouleurDeDebut[3] = ( Degrade_CouleurDeDebut[3] + Degrade_CouleurDeFin[3] )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
return Tempi
endfunction |
| 12-01-2003, 05:42 PM | #218 |
To submit functions, please go here, create a user (unless you have one), login and submit. Do not submit I2Hexa and strlen as such functions already exist, but the last one is really good. |
