Ragnarok Online

Way back in 2008, I was playing my first MMO, and the boring grind naturally forced a lazy guy like me to look for ways to automate the tedious work.

Thus was born my first set of useful pseudocodes, tiny almost-English scripts which modified a state machine (a python codebase which was beyond my comprehension at the time), to control the behaviour of the game character. My scripts in particular, focused on the more difficult support classes, who had to follow another character around, and keep them healed and buffed.

Those were (and are) the most viewed set of scripts on the site (nearly 300,000 views at the time of writing), and even though I was morally in the wrong, it is still one of my proudest pieces of code.

The post can be found here: http://forums.openkore.com/viewtopic.php?f=6&t=30

I've also copied the stuff onto this post, in case the forums ever go offline.

Acolyte Skills:

Heal
Code:
useSelf_skill Heal {
   lvl 10
   hp < 50%
   sp > 10%
}



Increase AGI
Code:
useSelf_skill Increase AGI {
   lvl 10
   whenStatusInactive Increase AGI
   sp > 10%
   timeout 5
}



Blessing
Code:
useSelf_skill Blessing {
   lvl 10
   whenStatusInactive Blessing
   sp > 10%
   timeout 5
}



Ruwach
Code:
useSelf_skill Ruwach {
   lvl 1
   whenStatusInactive Ruwach
   sp > 10%
   timeout 10
}



Angelus
Code:
useSelf_skill Angelus {
   lvl 10
   whenStatusInactive Angelus
   sp > 10%
   timeout 5
}



Cure
Code:
useSelf_skill Cure {
   lvl 1
   whenStatusActive Cursed, Blinded, Chaos, Silenced
   sp > 10%
   timeout 5
}



Holy Light
Code:
attackSkillSlot Holy Light {
   lvl 1
   sp > 10%
        monsters 
}



Decrease AGI
Code:
attackSkillSlot Decrease AGI {
   lvl 10
   sp > 10%
        monsters 
        maxAttempts 5
        maxUses 1
}


CORRESPONDING PARTY SKILLS:
Code:
partySkill Heal {
   lvl 5
   target_hp < 70%
   sp > 10 %
}

partySkill Blessing {
   lvl 10
   sp > 64
   notInTown 1
   timeout 3
   target_whenStatusInactive Blessing
   target_timeout 240
}

partySkill Increase AGI {
   lvl 10
   sp > 45
   notInTown 0
   timeout 3
   target_whenStatusInactive Increase AGI
   target_timeout 240
}

partySkill Angelus {
   lvl 10
   sp > 45
   notInTown 1
   timeout 3
   target_whenStatusInactive Angelus
   target_timeout 240
        isSelfSkill 1
}

partySkill Cure {
   lvl 1
   target_whenStatusActive Cursed, Blinded, Chaos, Silenced
   sp > 10%
   timeout 5
}





Priest/High Priest Skills


Kyrie Eleison
Code:
useSelf_skill Kyrie Eleison {
   lvl 10
   sp > 45
   stopWhenHit 1
   notWhileSitting 1
   notInTown 1
   timeout 5
   whenStatusInactive Kyrie Eleison
}



Assumptio
Code:
useSelf_skill Assumptio {
   lvl 10
   sp > 20%
   stopWhenHit 1
   notWhileSitting 1
   notInTown 1
   timeout 5
   disabled 1
   whenStatusInactive Assumtio
}


Magnificat
Code:
useSelf_skill Magnificat {
   lvl 5
   sp > 45
   stopWhenHit 1
   notWhileSitting 1
   notInTown 1
   timeout 5
   whenStatusInactive Magnificat
}



Party Skills:

Code:
partySkill Kyrie Eleison {
   lvl 10
   sp > 45
   stopWhenHit 1
   notWhileSitting 1
   notInTown 1
   timeout 5
   disabled 1
   target_whenStatusInactive Kyrie Eleison
   target_timeout 240
}

partySkill Magnificat {
   lvl 3
   sp
   stopWhenHit 1
   timeout 10
   whenStatusInactive Magnificat
   partyAggressives < 1
   isSelfSkill 1
}


partySkill Resurrection {
   lvl 4
   target_dead 1
}


partySkill Impositio Manus {
   lvl 10
   sp > 25
   notInTown 1
   timeout 3
   disabled 0
   target_whenStatusInactive Impositio Manus
   target_timeout 60
}


partySkill Status Recovery {
   lvl 10
   sp > 25
   timeout 2
   target_whenStatusActive Frozen, Stone Curse, Stun
}


partySkill Aspersio {
   lvl 5
   sp > 25
   timeout 2
   target_whenStatusInactive Aspersio
        inInventory Holy Water
}


partySkill Suffragium {
   lvl 3
   sp > 25
   timeout 8
   target_whenStatusInactive Suffragium
        notInTown 1
}

partySkill Assumptio {
   lvl 10
   sp > 20%
   stopWhenHit 1
   notWhileSitting 1
   notInTown 1
   timeout 5
   disabled 1
   target_whenStatusInactive Assumtio
   target_timeout 98
}



Gloria
Code:
useSelf_skill Gloria {
   lvl 10
   sp > 25
   whenStatusInactive Gloria
   timeout 28
}

Monk/Champion Skills

Vigor Condensation/ Summon Spirit Sphere
Code:
useSelf_skill Vigor Condensation {
   lvl 5
   sp > 20
   spirit <5
   notWhileSitting 0
   notInTown 0
   disabled 0
}



Infiltration/Occult Impaction

Code:
attackSkillSlot Infiltration {
   lvl 5
   spirit > 2
   dist 1
   monsters 
   sp > 20%
}



Finger Offensive/Throw Spirit Sphere
Code:
attackSkillSlot Finger Offensive {
   lvl 3
   spirit >4
   dist 1
   monsters 
   sp >20%
}



THE BIG COMBO
Code:
useSelf_skill Vigor Explosion {
   sp > 95%
   whenStatusInactive Vigor Explosion
}

attackComboSlot Chain Combo{
   afterSkill Triple Attack
   isSelfSkill 1
   maxUses 1
}

attackComboSlot Combo Finish{
   afterSkill Chain Combo
   isSelfSkill 1
   maxUses 1
}

attackComboSlot Glacier Fist{
   afterSkill Combo Finish
   isSelfSkill 1
   maxUses 1
}

attackComboSlot Chain Crush Combo{
   afterSkill Glacier Fist
   isSelfSkill 1
   maxUses 1
}



PS: i dunno properly if the combo skills are required to "isSelfSkill" since i've not played a combo monk... anyone who has, please enlighten and i shall correct it...
and also the kore names for champion combos... thank you...