Below is an article titled Mabinogi Pet AI. Ice Counter and Fire Counter that we collected from various sources. All credit goes to its original writer.
Mabinogi Pet AI. Ice Counter and Fire Counter by Konril
There has been recently a bit of talk about Pet AI. Mostly these are calls for pet scripts that people can plug in and play with. Honestly, while there are a couple of good pet AI scripts on some of the fan-forums, I’ve seen very little of it here on the official site. The best I’ve seen is Aokouu magic counter script. Even then people complain of it getting their pets killed. I have also had an old script specific to fire bolt that I have used for a while. However while it has served me well, it is buggy, and I never did get any feedback about it after posting it.
What has changed recently is the limited release of the mini skeleton. I have expanded my stable of pets to include a Miniature Pinscher that was previously a brown fox, and a pure mini skeleton to work with, giving me access to a rank B and a rank 7 ice bolt pet, and no scripts capable of handling them.
Aokouu’s script basically puts the pet into a perpetual counterattack stance which it will not come out of until it is attacked or the owner calls it. That does a spectacular job of keeping the pet alive if it is using fire bolt, and while stamina lasts. However, the ice or lightning bolt released too soon will cause the opponent to spring forward and attack before even a human can get a proper counterattack started. A human ice-countering needs to wait until the opponent gets up before using an ice bolt, which none of the current scripts account for.
So I had to make a new one. Instead of being counter-driven, my new ice counter script is attack oriented. A lot of it is scripting when to use and not use the ice bolt, and so counterattack is by necessity reserved strictly as a response to an attack (either the pet’s own or the enemy’s). The initial tests went extremely well. I had accidentally left my defense-buster clause to use fire. However the combination worked extremely well, and the pet fought perfectly. So I re-adapted my ice counter script to create 2.0 of my fire counter script, and I’ve been very happy with the result.
There are three scripts located at the end of this post. These are Mixed Magic, Fire Counter, and Ice Counter.Mixed Magic uses ice, fire, and counter so is appropriate for a rebirthed pet, a fox, or a mini skeleton with all three skills available. Fire Counter strictly uses fire and counter, and Ice Counter strictly uses ice and counter. If your pet has one of these magic skills without the other, then pick the one whose name matches your pet’s magic skill.
- Copy the script to your computer’s clipboard. (Select the full script and press Ctrl-C.)
- Enter the Mabinogi client and log in as a human player.
- Open the pet interface (By default, press T).
- Go to AI Settings
- Create a new AI
- Select See Source
- Press the button labeled paste. If you did this correctly, the AI script will appear in the window.
- Type an appropriate name for the script where it says AI Name.
- Press Confirm.
To use the AI, summon the pet you want to use it with, and then use the AI Settings or Behavior Settings option to apply the script to the pet.
The scripts duplicate a “passive” setting regarding when the pet fights. The pet will not start a fight unless something goes on alert against the pet or when the master tells it to attack. Once a fight starts, the pet will first use their magic bolt to stun or delay the enemy then load counterattack. Magic bolts and counterattacks will alternate until the target is finished.
Starting cold with magic is a little risky, so I have put in a little option to pre-start, if you know you’re going into a situation where it’s likely the pet will get attacked. If the master uses first-aid, the pet will prepare an ice or fire bolt and hold it. Pre-loading a bolt will allow the pet to respond instantly to an alert, and strike the enemy before it has a chance to approach. You can get the pet started by using a bandage, then canceling the first aid skill to preserve the bandage. When you need to actually use first-aid to bandage your pet or a teammate, just tell your pet to “Sit!” first, if you don’t want the pet to load magic.
Otherwise the pet can be commanded just like normal. If the pet gets confused by an attack command, the mixed magic and fire counter scripts will load magic and use it to start the fight rather than standing there stupidly like some of the other scripts are prone to do. The pet doesn’t get stuck in counterattack for longer than 10 seconds, so there is often no need to call the pet when the room is cleared.
Like with any human, the pet needs space to knock the monster back when magic-countering. However currently the pet is not able to run away if the monster gets stuck against a wall. The pet is likely to need a rescue if the target maneuvers itself between a wall and the pet. Also, magic counter does not work against opponents who use magic. If the fomor is a magic user, I strongly recommend switching scripts or telling the pet to “Return!” until the fomors are disposed of.
These scripts are tested in Rabbie normal and Basic, Rundal, and Fiodh normal. I make no guarantees that the script will be useful in Alby Intermediate or Fiodh Intermediate where multi-aggro is unavoidable. Aokouu’s script might be your best option in those two dungeons. But be prepared to rescue your pet frequently regardless.
Warning specifically regarding Ice Counter script: In order not to get the pet killed by an opponent skill locked into defense, I’ve had to tune the firing condition not to hit defense. However this has resulted in a somewhat pacifist pet that will refuse to attack something that isn’t itself attacking. If the pet does get confused, you may need to order it to a full stop or use the pet’s lightning bolt to manually start combat again (if the pet has it.) A single attack against the pet’s target also can work, but that can put you at risk.
Please let me know what you think and how well these scripts work for you. There is no perfect script, and we programmers are usually happy to make adjustments as quirks and bugs are found. So don’t be shy.
The Scripts
Mixed Magic Counter:
<rules> <rule name="Ouch by arrow"> <conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stackmagic_attack" stack_magic="icebolt" timeout="5000"> </cmd></sequence> </param_decl></pattern> <event down="false" master_skill="ranged_attack" name="attacked"> </event></conditions></rule> <rule name="Ouch by arrow 2"> <conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stackmagic_attack" stack_magic="icebolt" timeout="5000"> </cmd></sequence> </param_decl></pattern> <event down="true" master_skill="ranged_attack" name="attacked"> </event></conditions></rule> <rule name="Magnum Ouch"> <conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stackmagic_attack" stack_magic="icebolt" timeout="5000"> </cmd></sequence> </param_decl></pattern> <event down="true" master_skill="magnum_shot" name="attacked"> </event></conditions></rule> <rule name="Ouch"> <conditions> <condition name="skill_preparable" pet_skill="counter"> </condition></conditions> <pattern> <param_decl> <sequence> <cmd name="prepare_skill" pet_skill="counter" timeout="0" try_cnt="0"> <cmd max="10000" min="10000" name="wait"> <cmd name="cancel_skill"> <cmd charge="1" name="stack_skill" stack_magic="icebolt"> </cmd></cmd></cmd></cmd></sequence> </param_decl></pattern> <event down="false" master_skill="all" name="attacked"> </event></rule> <rule name="Big ouch"> <conditions> <condition name="skill_preparable" pet_skill="counter"> </condition></conditions> <pattern> <param_decl> <sequence> <cmd name="prepare_skill" pet_skill="counter" timeout="0" try_cnt="0"> <cmd max="10000" min="10000" name="wait"> <cmd name="cancel_skill"> <cmd charge="1" name="stack_skill" stack_magic="icebolt"> </cmd></cmd></cmd></cmd></sequence> </param_decl></pattern> <event down="true" master_skill="all" name="attacked"> </event></rule> <rule name="Ice after counter"> <conditions> <condition name="skill_preparable" pet_skill="icebolt"> </condition></conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stack_skill" stack_magic="icebolt"> </cmd></sequence> </param_decl></pattern> <event down="true" name="attack" pet_attackable_skill="counter"> </event></rule> <rule name="Counter after knockdown"> <conditions> <condition name="skill_preparable" pet_skill="counter"> </condition></conditions> <pattern> <param_decl> <sequence> <cmd name="prepare_skill" pet_skill="counter" timeout="5000" try_cnt="0"> <cmd max="10000" min="10000" name="wait"> <cmd name="cancel_skill"> <cmd charge="1" name="stack_skill" stack_magic="icebolt"> </cmd></cmd></cmd></cmd></sequence> </param_decl></pattern> <event down="true" name="attack" pet_attackable_skill="all"> </event></rule> <rule name="Counter after attack"> <conditions> <pattern> <param_decl> <sequence> <cmd name="prepare_skill" pet_skill="counter" timeout="0" try_cnt="1"> <cmd max="10000" min="10000" name="wait"> <cmd name="cancel_skill"> <cmd charge="1" name="stack_skill" stack_magic="icebolt"> </cmd></cmd></cmd></cmd></sequence> </param_decl></pattern> <event down="false" name="attack" pet_attackable_skill="all"> </event></conditions></rule> <rule name="Punish defense"> <conditions> <condition name="target_state" state="stop, walk"> <condition name="skill_preparable" pet_skill="firebolt"> </condition></condition></conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stackmagic_attack" stack_magic="firebolt" timeout="5000"> <cmd charge="1" name="stackmagic_attack" stack_magic="firebolt" timeout="0"> </cmd></cmd></sequence> </param_decl></pattern> <event name="target_skill_prepare"> </event></rule> <rule name="Prepare when target down"> <conditions> <condition name="target_state" state="blowaway"> <condition name="target_state" state="shoved"> <condition name="target_state" state="hit"> <condition name="skill_preparable" pet_skill="icebolt"> </condition></condition></condition></condition></conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stack_skill" stack_magic="icebolt"> </cmd></sequence> </param_decl></pattern> <event name="now_targeting"> </event></rule> <rule name="Arrow buster"> <conditions> <condition name="skill_preparable" pet_skill="icebolt"> </condition></conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stackmagic_attack" stack_magic="icebolt" timeout="500"> <cmd charge="1" name="stackmagic_attack" stack_magic="icebolt" timeout="0"> </cmd></cmd></sequence> </param_decl></pattern> <event name="aimed"> </event></rule> <rule name="Ice when target is up"> <conditions> <condition name="target_state" state="walk"> <condition name="target_state" state="stop"> <condition name="target_state" state="run"> <condition name="skill_preparable" pet_skill="icebolt"> </condition></condition></condition></condition></conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stackmagic_attack" stack_magic="icebolt" timeout="0"> </cmd></sequence> </param_decl></pattern> <event name="now_targeting"> </event></rule> <rule name="Pet aggro"> <conditions> <pattern> <param_decl> <sequence> </sequence></param_decl></pattern> <event name="targeted" targeting_type="attack"> </event></conditions></rule> <rule name="Pre load"> <conditions> <condition name="skill_preparable" pet_skill="icebolt"> </condition></conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stack_skill" stack_magic="icebolt"> </cmd></sequence> </param_decl></pattern> <event event_skill="firstaid" name="master_skill_prepare"> </event></rule> <rule name="Script by Nene, Talach server (Konril)"> <conditions> <pattern> <param_decl> <sequence> </sequence></param_decl></pattern> <event name="now_targeting"> </event></conditions></rule></rules>
Fire Counter
<rules> <rule name="Ouch by arrow"> <conditions> <pattern> <param_decl> <sequence> <cmd name="melee_attack" timeout="5000"> </cmd></sequence> </param_decl></pattern> <event down="false" master_skill="ranged_attack" name="attacked"> </event></conditions></rule> <rule name="Ouch by arrow 2"> <conditions> <pattern> <param_decl> <sequence> <cmd name="prepare_skill" pet_skill="defence" timeout="5000" try_cnt="0"> <cmd chase_target="enemy" name="chase" run="false" timeout="10000"> <cmd name="cancel_skill"> <cmd name="melee_attack" timeout="5000"> </cmd></cmd></cmd></cmd></sequence> </param_decl></pattern> <event down="true" master_skill="ranged_attack" name="attacked"> </event></conditions></rule> <rule name="Magnum Ouch"> <conditions> <pattern> <param_decl> <sequence> <cmd name="prepare_skill" pet_skill="defence" timeout="5000" try_cnt="0"> <cmd chase_target="enemy" name="chase" run="true" timeout="10000"> <cmd name="cancel_skill"> <cmd name="melee_attack" timeout="5000"> </cmd></cmd></cmd></cmd></sequence> </param_decl></pattern> <event down="true" master_skill="magnum_shot" name="attacked"> </event></conditions></rule> <rule name="Defense hit"> <conditions> <pattern> <param_decl> <sequence> <cmd name="melee_attack" timeout="5000"> </cmd></sequence> </param_decl></pattern> <event defence_enable_skill="all" name="defence"> </event></conditions></rule> <rule name="Ouch"> <conditions> <condition name="skill_preparable" pet_skill="counter"> </condition></conditions> <pattern> <param_decl> <sequence> <cmd name="prepare_skill" pet_skill="counter" timeout="0" try_cnt="0"> <cmd max="10000" min="10000" name="wait"> <cmd name="cancel_skill"> <cmd charge="1" name="stack_skill" stack_magic="firebolt"> </cmd></cmd></cmd></cmd></sequence> </param_decl></pattern> <event down="false" master_skill="all" name="attacked"> </event></rule> <rule name="Big ouch"> <conditions> <condition name="skill_preparable" pet_skill="counter"> </condition></conditions> <pattern> <param_decl> <sequence> <cmd name="prepare_skill" pet_skill="counter" timeout="0" try_cnt="0"> <cmd max="10000" min="10000" name="wait"> <cmd name="cancel_skill"> <cmd charge="1" name="stack_skill" stack_magic="firebolt"> </cmd></cmd></cmd></cmd></sequence> </param_decl></pattern> <event down="true" master_skill="all" name="attacked"> </event></rule> <rule name="Fire after counter"> <conditions> <condition name="skill_preparable" pet_skill="firebolt"> </condition></conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stack_skill" stack_magic="firebolt"> </cmd></sequence> </param_decl></pattern> <event down="true" name="attack" pet_attackable_skill="counter"> </event></rule> <rule name="Counter after knockdown"> <conditions> <condition name="skill_preparable" pet_skill="counter"> </condition></conditions> <pattern> <param_decl> <sequence> <cmd name="prepare_skill" pet_skill="counter" timeout="5000" try_cnt="0"> <cmd max="10000" min="10000" name="wait"> <cmd name="cancel_skill"> <cmd charge="1" name="stack_skill" stack_magic="firebolt"> </cmd></cmd></cmd></cmd></sequence> </param_decl></pattern> <event down="true" name="attack" pet_attackable_skill="all"> </event></rule> <rule name="Counter after attack"> <conditions> <pattern> <param_decl> <sequence> <cmd name="prepare_skill" pet_skill="counter" timeout="0" try_cnt="1"> <cmd max="10000" min="10000" name="wait"> <cmd name="cancel_skill"> <cmd charge="1" name="stack_skill" stack_magic="firebolt"> </cmd></cmd></cmd></cmd></sequence> </param_decl></pattern> <event down="false" name="attack" pet_attackable_skill="all"> </event></conditions></rule> <rule name="Punish defense"> <conditions> <condition name="target_state" state="stop, walk"> <condition name="skill_preparable" pet_skill="firebolt"> </condition></condition></conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stackmagic_attack" stack_magic="firebolt" timeout="500"> <cmd charge="1" name="stackmagic_attack" stack_magic="firebolt" timeout="0"> </cmd></cmd></sequence> </param_decl></pattern> <event name="target_skill_prepare"> </event></rule> <rule name="Arrow buster"> <conditions> <pattern> <param_decl> <sequence> <cmd name="cancel_skill"> <cmd name="melee_attack" timeout="5000"> </cmd></cmd></sequence> </param_decl></pattern> <event name="aimed"> </event></conditions></rule> <rule name="Prepare when target down"> <conditions> <condition name="target_state" state="blowaway"> <condition name="target_state" state="shoved"> <condition name="target_state" state="hit"> <condition name="skill_preparable" pet_skill="firebolt"> </condition></condition></condition></condition></conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stack_skill" stack_magic="firebolt"> </cmd></sequence> </param_decl></pattern> <event name="now_targeting"> </event></rule> <rule name="Fire when target is up"> <conditions> <condition name="target_state" state="walk"> <condition name="target_state" state="stop"> <condition name="target_state" state="run"> <condition name="skill_preparable" pet_skill="firebolt"> </condition></condition></condition></condition></conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stackmagic_attack" stack_magic="firebolt" timeout="0"> </cmd></sequence> </param_decl></pattern> <event name="now_targeting"> </event></rule> <rule name="Pet aggro"> <conditions> <pattern> <param_decl> <sequence> </sequence></param_decl></pattern> <event name="targeted" targeting_type="attack"> </event></conditions></rule> <rule name="Pre load"> <conditions> <condition name="skill_preparable" pet_skill="firebolt"> </condition></conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stack_skill" stack_magic="firebolt"> </cmd></sequence> </param_decl></pattern> <event event_skill="firstaid" name="master_skill_prepare"> </event></rule> <rule name="Script by Nene, Talach server (Konril)"> <conditions> <pattern> <param_decl> <sequence> </sequence></param_decl></pattern> <event name="now_targeting"> </event></conditions></rule></rules>
Ice Counter
<rules> <rule name="Ouch by arrow"> <conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stackmagic_attack" stack_magic="icebolt" timeout="5000"> </cmd></sequence> </param_decl></pattern> <event down="false" master_skill="ranged_attack" name="attacked"> </event></conditions></rule> <rule name="Ouch by arrow 2"> <conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stackmagic_attack" stack_magic="icebolt" timeout="5000"> </cmd></sequence> </param_decl></pattern> <event down="true" master_skill="ranged_attack" name="attacked"> </event></conditions></rule> <rule name="Magnum Ouch"> <conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stackmagic_attack" stack_magic="icebolt" timeout="5000"> </cmd></sequence> </param_decl></pattern> <event down="true" master_skill="magnum_shot" name="attacked"> </event></conditions></rule> <rule name="Ouch"> <conditions> <condition name="skill_preparable" pet_skill="counter"> </condition></conditions> <pattern> <param_decl> <sequence> <cmd name="prepare_skill" pet_skill="counter" timeout="0" try_cnt="0"> <cmd max="10000" min="10000" name="wait"> <cmd name="cancel_skill"> <cmd charge="1" name="stack_skill" stack_magic="icebolt"> </cmd></cmd></cmd></cmd></sequence> </param_decl></pattern> <event down="false" master_skill="all" name="attacked"> </event></rule> <rule name="Big ouch"> <conditions> <condition name="skill_preparable" pet_skill="counter"> </condition></conditions> <pattern> <param_decl> <sequence> <cmd name="prepare_skill" pet_skill="counter" timeout="0" try_cnt="0"> <cmd max="10000" min="10000" name="wait"> <cmd name="cancel_skill"> <cmd charge="1" name="stack_skill" stack_magic="icebolt"> </cmd></cmd></cmd></cmd></sequence> </param_decl></pattern> <event down="true" master_skill="all" name="attacked"> </event></rule> <rule name="Ice after counter"> <conditions> <condition name="skill_preparable" pet_skill="icebolt"> </condition></conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stack_skill" stack_magic="icebolt"> </cmd></sequence> </param_decl></pattern> <event down="true" name="attack" pet_attackable_skill="counter"> </event></rule> <rule name="Counter after knockdown"> <conditions> <condition name="skill_preparable" pet_skill="counter"> </condition></conditions> <pattern> <param_decl> <sequence> <cmd name="prepare_skill" pet_skill="counter" timeout="5000" try_cnt="0"> <cmd max="10000" min="10000" name="wait"> <cmd name="cancel_skill"> <cmd charge="1" name="stack_skill" stack_magic="icebolt"> </cmd></cmd></cmd></cmd></sequence> </param_decl></pattern> <event down="true" name="attack" pet_attackable_skill="all"> </event></rule> <rule name="Counter after attack"> <conditions> <pattern> <param_decl> <sequence> <cmd name="prepare_skill" pet_skill="counter" timeout="0" try_cnt="1"> <cmd max="10000" min="10000" name="wait"> <cmd name="cancel_skill"> <cmd charge="1" name="stack_skill" stack_magic="icebolt"> </cmd></cmd></cmd></cmd></sequence> </param_decl></pattern> <event down="false" name="attack" pet_attackable_skill="all"> </event></conditions></rule> <rule name="Punish defense"> <conditions> <condition name="target_state" state="stop, walk"> <condition name="skill_preparable" pet_skill="icebolt"> </condition></condition></conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stack_skill" stack_magic="icebolt"> </cmd></sequence> </param_decl></pattern> <event name="target_skill_prepare"> </event></rule> <rule name="Prepare when target down"> <conditions> <condition name="target_state" state="blowaway"> <condition name="target_state" state="shoved"> <condition name="target_state" state="hit"> <condition name="skill_preparable" pet_skill="icebolt"> <condition name="target_state" state="stop, walk"> </condition></condition></condition></condition></condition></conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stack_skill" stack_magic="icebolt"> </cmd></sequence> </param_decl></pattern> <event name="now_targeting"> </event></rule> <rule name="Arrow buster"> <conditions> <condition name="skill_preparable" pet_skill="icebolt"> </condition></conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stack_skill" stack_magic="icebolt"> <cmd charge="1" name="stackmagic_attack" stack_magic="icebolt" timeout="0"> </cmd></cmd></sequence> </param_decl></pattern> <event name="aimed"> </event></rule> <rule name="Ice when target is up"> <conditions> <condition name="target_state" state="run"> <condition name="skill_preparable" pet_skill="icebolt"> </condition></condition></conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stackmagic_attack" stack_magic="icebolt" timeout="0"> </cmd></sequence> </param_decl></pattern> <event name="now_targeting"> </event></rule> <rule name="Pet aggro"> <conditions> <pattern> <param_decl> <sequence> </sequence></param_decl></pattern> <event name="targeted" targeting_type="attack"> </event></conditions></rule> <rule name="Pre load"> <conditions> <condition name="skill_preparable" pet_skill="icebolt"> </condition></conditions> <pattern> <param_decl> <sequence> <cmd charge="1" name="stack_skill" stack_magic="icebolt"> </cmd></sequence> </param_decl></pattern> <event event_skill="firstaid" name="master_skill_prepare"> </event></rule> <rule name="Script by Nene, Talach server (Konril)"> <conditions> <pattern> <param_decl> <sequence> </sequence></param_decl></pattern> <event name="now_targeting"> </event></conditions></rule></rules>
Mabinogi Pet AI. Ice Counter And Fire Counter Images
We also give random image about Mabinogi Pet AI. Ice Counter And Fire Counter hope you like this, we got this
images from arround the web .
image source :
I'm correctly copying your code, but I cannot paste it for some reason.
ReplyDelete