Writing in progress
This is a draft: “I added the elements as my memories flooded(i had started to record everything as i was doing with the fisherman, but it was had to much to do/undo/redo because i was blocked in my mind that i finally gave up). It will therefore be necessary to recover “the whole” in a somewhat more logical way, to be able to give some explanations and to clean up garbage files that remains from different experiments. On the other hand, realizing this tutorial, i admit that i may be a little “wrapped” about it. Because, this is almost all the created/modified code i have.
For points “1 to 8”, it's advise'able that you after creation and modification to the files… open them with Georges editor which does a nice syntax check.
For point 8, viewing/modifying the primitive file, the better option is to use World Editor.
Edit file leveldesign/game_element/anim/anim_set/homin/fy_hom/fy_hom_default_fi_.animation_set
Add(to the end of the file) just before the last 5 tags <STRUCT/> :
<STRUCT Name="firework_01"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="FY_HOM_Peche_Init.anim"/> <ATOM Name="next1" Value="1"/> <ATOM Name="next1 weight" Value="100"/> </STRUCT> </ARRAY> <ATOM Name="LodCharacterAnimation" Value="FY_HOM_Peche_loop.anim"/> </STRUCT> <STRUCT Name="firework_02"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="FY_HOM_Peche_loop.anim"/> </STRUCT> </ARRAY> </STRUCT>
I recognize the structure not being as “clean” as it could be, this is because of the animation_set of the fishing! The emotes “firework_01” and “firework_02” are crushed by those of the fishing. But can be considered as only temporary.
Create the directory leveldesign/game_element/sitem/fishing_tool and add:
<?xml version="1.0"?> <FORM Revision="$Revision: 1.2 $" State="modified"> <STRUCT> <STRUCT Name="basics"> <ATOM Name="name" Value="Fishing Rod"/> <ATOM Name="origin" Value="refugee"/> <ATOM Name="family" Value="generic item"/> <ATOM Name="ItemType" Value="Generic"/> <ATOM Name="sack_type" Value="1"/> <STRUCT Name="EquipmentInfo"> <ARRAY Name="EquipmentSlots"> <ATOM Name="right_hand_exclusive_hand" Value="Right Hand"/> </ARRAY> </STRUCT> <ATOM Name="CraftPlan" Value="bccoea01.sbrick"/> <ATOM Name="Bulk" Value="5"/> <ATOM Name="Saleable" Value="false"/> <ATOM Name="Price" Value="1000"/> <ATOM Name="Time to Equip In Ticks" Value="10"/> <ATOM Name="RequiredCharacQualityFactor" Value="1"/> <ATOM Name="RequiredCharacQualityOffset" Value="-10"/> </STRUCT> <STRUCT Name="melee weapon"> <ATOM Name="melee range" Value="0"/> </STRUCT> <STRUCT Name="crafting tool"> <ATOM Name="type" Value="Sharpener"/> </STRUCT> <STRUCT Name="bag"> <ATOM Name="weight_max" Value="5.0"/> <ATOM Name="bulk_max" Value="5.0"/> </STRUCT> <STRUCT Name="3d"> <ATOM Name="shape" Value="GE_Acc_MountingStick_A.shape"/> <ATOM Name="shape_female" Value="GE_Acc_MountingStick_A.shape"/> <ATOM Name="icon" Value="to_fishing_rod.tga"/> <ATOM Name="icon background" Value="BK_generic.tga"/> <ATOM Name="anim_set" Value="Fish"/> <ATOM Name="never hide when equiped" Value="true"/> </STRUCT> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <COMMENTS>Special effects:
 FIGHT_ADD_CRITICAL
 FIGHT_VAMPIRISM
 MAGIC_DIVINE_INTERVENTION
 FORAGE_NO_RISK:num
 MAGIC_SHOOT_AGAIN
 CRAFT_ADD_STAT_BONUS
 CRAFT_ADD_LIMIT
 FORAGE_ADD_RM:num1:num2
 </COMMENTS> <LOG></LOG> </FORM>
* The file mbait01.sitem
<?xml version="1.0"?> <FORM Revision="$Revision$" State="modified"> <STRUCT> <STRUCT Name="basics"> <ATOM Name="name" Value="Fishing Larva"/> <ATOM Name="family" Value="generic item"/> <ATOM Name="ItemType" Value="Generic"/> <ATOM Name="Drop or Sell" Value="true"/> <STRUCT Name="EquipmentInfo"> <ARRAY Name="EquipmentSlots"> <ATOM Value="Left Hand"/> </ARRAY> </STRUCT> <ATOM Name="Bulk" Value="0.5"/> </STRUCT> <STRUCT Name="3d"> <ATOM Name="icon" Value="mp_larva.tga"/> </STRUCT> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <LOG></LOG> </FORM>
* The file mpois02.sitem
<?xml version="1.0"?> <FORM Revision="$Revision$" State="modified"> <STRUCT> <STRUCT Name="basics"> <ATOM Name="name" Value="Clapclap"/> <ATOM Name="family" Value="generic item"/> <ATOM Name="ItemType" Value="Generic"/> <ATOM Name="Drop or Sell" Value="true"/> <ATOM Name="Bulk" Value="0.5"/> </STRUCT> <STRUCT Name="3d"> <ATOM Name="icon" Value="to_fish.png"/> </STRUCT> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <LOG></LOG> </FORM>
Create the leveldesign/game_elem/creature/fauna/bestiary/water/clapclap.creature file and add:
<?xml version="1.0"?> <FORM Revision="$Revision: 1.110 $" State="modified"> <PARENT Filename="_clapclap_for.creature"/> <PARENT Filename="dag_attack.creature"/> <PARENT Filename="_clapclap_mp.creature"/> <STRUCT> <STRUCT Name="Basics"> <ATOM Name="PlayerSkillLevel" Value="1"/> <ATOM Name="NbPlayers" Value="1"/> <ATOM Name="PlayerHpLevel" Value="1"/> <ATOM Name="NbHitToKillPlayer" Value="15"/> <STRUCT Name="Characteristics"> <ATOM Name="DynamicEnergyValue" Value="0.00126"/> </STRUCT> <STRUCT Name="MovementSpeeds"> <ATOM Name="WalkSpeed" Value="2.5"/> <ATOM Name="RunSpeed" Value="5"/> <ATOM Name="GroupDispersion" Value="0.7"/> </STRUCT> <ATOM Name="life" Value="40"/> <ATOM Name="AttackSpeed" Value="3"/> <ATOM Name="LifeRegen" Value="0.109589041"/> <ATOM Name="AttackLevel" Value="1"/> <ATOM Name="DefenseLevel" Value="1"/> <ATOM Name="XPLevel" Value="1"/> <ATOM Name="TauntLevel" Value="0"/> <ATOM Name="MeleeReachValue" Value="0"/> <ATOM Name="RegionForce" Value="1"/> <ATOM Name="ForceLevel" Value="1"/> <ATOM Name="LocalCode" Value="1"/> <ATOM Name="DodgeAsDefense" Value="true"/> </STRUCT> <STRUCT Name="3d data"> <ATOM Name="Automaton" Value="creature"/> <ATOM Name="Scale" Value="0.20"/> <ATOM Name="SoundFamily" Value="0"/> <ATOM Name="SoundVariation" Value="0"/> <ATOM Name="ForceDisplayCreatureName" Value="false"/> </STRUCT> <STRUCT Name="Harvest"> <ATOM Name="Skill" Value="SH"/> <STRUCT Name="MP1"> <ATOM Name="MinQuantity" Value="1"/> <ATOM Name="Quantity" Value="2"/> <ATOM Name="MaxQuality" Value="20"/> </STRUCT> <STRUCT Name="MP2"> <ATOM Name="MinQuantity" Value="0"/> <ATOM Name="Quantity" Value="0"/> </STRUCT> <STRUCT Name="MP3"> <ATOM Name="MinQuantity" Value="0"/> <ATOM Name="Quantity" Value="0"/> </STRUCT> <STRUCT Name="MP4"> <ATOM Name="MinQuantity" Value="0"/> <ATOM Name="Quantity" Value="0"/> </STRUCT> <STRUCT Name="MP5"> <ATOM Name="MinQuantity" Value="0"/> <ATOM Name="Quantity" Value="0"/> </STRUCT> <STRUCT Name="MP6"> <ATOM Name="MinQuantity" Value="0"/> <ATOM Name="Quantity" Value="0"/> </STRUCT> <STRUCT Name="MP7"> <ATOM Name="MinQuantity" Value="0"/> <ATOM Name="Quantity" Value="0"/> </STRUCT> <STRUCT Name="MP8"> <ATOM Name="MinQuantity" Value="0"/> <ATOM Name="Quantity" Value="0"/> </STRUCT> <STRUCT Name="MP9"> <ATOM Name="MinQuantity" Value="0"/> <ATOM Name="Quantity" Value="0"/> </STRUCT> <STRUCT Name="MP10"> <ATOM Name="MinQuantity" Value="0"/> <ATOM Name="Quantity" Value="0"/> </STRUCT> </STRUCT> <STRUCT Name="Collision"> <ATOM Name="Height" Value="10"/> </STRUCT> <STRUCT Name="Properties"> <ATOM Name="LootHarvestState" Value="Harvestable"/> <ATOM Name="XPGainCoef" Value="1"/> </STRUCT> <STRUCT Name="Combat"> <ATOM Name="AggroRadiusNotHungry" Value="15"/> <ATOM Name="AggroRadiusHungry" Value="15"/> <ATOM Name="AggroRadiusHunting" Value="15"/> <ATOM Name="DistModulator" Value="0.2"/> <ATOM Name="TargetModulator" Value="0.25"/> <ATOM Name="LifeLevelModulator" Value="0.01"/> <ATOM Name="CourageModulator" Value="1"/> <ATOM Name="GroupCohesionModulator" Value="0.01"/> <ATOM Name="AssistDist" Value="0"/> <ATOM Name="AggroRadiusD1" Value="100"/> <ATOM Name="AggroRadiusD2" Value="50"/> </STRUCT> <STRUCT Name="Protections"> <ATOM Name="PiercingMax" Value="0"/> <ATOM Name="PiercingFactor" Value="0"/> <ATOM Name="SlashingMax" Value="0"/> <ATOM Name="SlashingFactor" Value="0"/> <ATOM Name="BluntMax" Value="0"/> <ATOM Name="BluntFactor" Value="0"/> <ATOM Name="RotMax" Value="37.5"/> <ATOM Name="RotFactor" Value="50"/> <ATOM Name="AcidMax" Value="0"/> <ATOM Name="AcidFactor" Value="0"/> <ATOM Name="ColdMax" Value="0"/> <ATOM Name="ColdFactor" Value="0"/> <ATOM Name="FireMax" Value="0"/> <ATOM Name="FireFactor" Value="0"/> <ATOM Name="PoisonMax" Value="0"/> <ATOM Name="PoisonFactor" Value="0"/> <ATOM Name="ElectricityMax" Value="0"/> <ATOM Name="ElectricityFactor" Value="0"/> <ATOM Name="ShockMax" Value="0"/> <ATOM Name="ShockFactor" Value="0"/> </STRUCT> <STRUCT Name="Resists"> <ATOM Name="Fear" Value="5"/> <ATOM Name="Sleep" Value="5"/> <ATOM Name="Stun" Value="5"/> <ATOM Name="Root" Value="5"/> <ATOM Name="Blind" Value="5"/> <ATOM Name="Snare" Value="5"/> <ATOM Name="Slow" Value="5"/> <ATOM Name="Acid" Value="5"/> <ATOM Name="Cold" Value="5"/> <ATOM Name="Electricity" Value="5"/> <ATOM Name="Fire" Value="5"/> <ATOM Name="Poison" Value="0"/> <ATOM Name="Rot" Value="5"/> </STRUCT> <STRUCT Name="Damage Shield"> <ATOM Name="Damage" Value="0"/> <ATOM Name="Drained HP" Value="0"/> </STRUCT> <ATOM Name="category" Value="H"/> <ATOM Name="race_code" Value="D"/> <ATOM Name="group_assist" Value="hd"/> <ATOM Name="creature_level" Value="0.5"/> <ATOM Name="group_id" Value="HD"/> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <LOG></LOG> </FORM>
Create the leveldesign/game_elem/creature/fauna/parent_creature_prototype/_clapclap.creature file and add:
<?xml version="1.0"?> <FORM Revision="$Revision: 1.45 $" State="modified"> <PARENT Filename="_formuli.creature"/> <PARENT Filename="_ai_herbivore_craintif.creature"/> <PARENT Filename="_medium_slashing_armor_set.creature"/> <STRUCT> <STRUCT Name="Basics"> <ATOM Name="Race" Value="clapclap"/> <ATOM Name="DamageLocalisationTable" Value="fish"/> <ATOM Name="Size" Value="small"/> <ATOM Name="Profile" Value="caster healer"/> <STRUCT Name="Scores"> <ATOM Name="HitPoints" Value="very low"/> <ATOM Name="Sap" Value="default"/> <ATOM Name="Stamina" Value="very low"/> </STRUCT> <STRUCT Name="Equipment"> <STRUCT Name="Body"> <ATOM Name="Item" Value="clapclap_chest.item"/> </STRUCT> <STRUCT Name="Legs"> <ATOM Name="Item" Value="light_slashing_legs.item"/> </STRUCT> <STRUCT Name="Arms"> <ATOM Name="Item" Value="light_slashing_arms.item"/> </STRUCT> <STRUCT Name="Hands"> <ATOM Name="Item" Value="light_slashing_hands.item"/> </STRUCT> <STRUCT Name="Feet"> <ATOM Name="Item" Value="light_slashing_feet.item"/> </STRUCT> <STRUCT Name="Head"> <ATOM Name="Item" Value="light_slashing_head.item"/> </STRUCT> </STRUCT> <STRUCT Name="MovementSpeeds"> <ATOM Name="WalkSpeed" Value=""3d data.Scale"*1.1"/> <ATOM Name="RunSpeed" Value=""3d data.Scale"*3.536918"/> </STRUCT> <ATOM Name="type" Value="predator"/> </STRUCT> <STRUCT Name="3d data"> <ATOM Name="Skel" Value="TR_MO_clapclap.skel"/> <ATOM Name="AnimSetBaseName" Value="clapclap"/> <ATOM Name="LodCharacterDistance" Value="50.0"/> <ATOM Name="DisplayInRadar" Value="false"/> <ATOM Name="DisplayName" Value="false"/> <ATOM Name="DisplayBars" Value="false"/> <ATOM Name="NamePosZLow" Value="2"/> <ATOM Name="NamePosZNormal" Value="4"/> </STRUCT> <STRUCT Name="Harvest"> <STRUCT Name="MP1"> <ATOM Name="Name" Value="dag meat"/> </STRUCT> <STRUCT Name="MP2"> <ATOM Name="Name" Value="dag canines"/> </STRUCT> <STRUCT Name="MP3"> <ATOM Name="Name" Value="dag tongue"/> </STRUCT> </STRUCT> <STRUCT Name="Collision"> <ATOM Name="CollisionRadius" Value="0.0"/> </STRUCT> <ATOM Name="attack_list1" Value="dag.attack_list"/> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <COMMENTS></COMMENTS> <LOG></LOG> </FORM>
Create the file leveldesign/game_elem/creature/fauna/ecosystem/forest/_clapclap_for.creature and add:
<?xml version="1.0"?> <FORM Revision="$Revision: 1.4 $" State="modified"> <PARENT Filename="_clapclap.creature"/> <STRUCT> <STRUCT Name="Basics"> <ATOM Name="Ecosystem" Value="Forest"/> <STRUCT Name="Scores"> <ATOM Name="HitPoints" Value="default"/> <ATOM Name="Stamina" Value="default"/> </STRUCT> <STRUCT Name="Equipment"> <STRUCT Name="Body"> <ATOM Name="Texture" Value="Jungle/High Quality/Old"/> </STRUCT> </STRUCT> </STRUCT> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <COMMENTS></COMMENTS> <LOG></LOG> </FORM>
Create the file leveldesign/game_elem/creature/raw_material_assignment/_clapclap_mp.creature and add:
<?xml version="1.0"?> <FORM Revision="$Revision$" State="modified"> <STRUCT> <STRUCT Name="Harvest"> <STRUCT Name="MP1"> <ATOM Name="AssociatedItem" Value="m0566cbbca01.sitem"/> </STRUCT> <STRUCT Name="MP2"> <ATOM Name="AssociatedItem" Value="m0566cbbca01.sitem"/> </STRUCT> <STRUCT Name="MP3"> <ATOM Name="AssociatedItem" Value="m0566cbbca01.sitem"/> </STRUCT> <STRUCT Name="MP4"> <ATOM Name="AssociatedItem" Value="m0566cbbca01.sitem"/> </STRUCT> <STRUCT Name="MP5"> <ATOM Name="AssociatedItem" Value="m0566cbbca01.sitem"/> </STRUCT> <STRUCT Name="MP6"> <ATOM Name="AssociatedItem" Value="m0567cbbca01.sitem"/> </STRUCT> <STRUCT Name="MP7"> <ATOM Name="AssociatedItem" Value="m0567cbbca01.sitem"/> </STRUCT> <STRUCT Name="MP8"> <ATOM Name="AssociatedItem" Value="m0567cbbca01.sitem"/> </STRUCT> <STRUCT Name="MP9"> <ATOM Name="AssociatedItem" Value="m0567cbbca01.sitem"/> </STRUCT> <STRUCT Name="MP10"> <ATOM Name="AssociatedItem" Value="m0567cbbca01.sitem"/> </STRUCT> </STRUCT> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <LOG></LOG> </FORM>
This object will be used to triangulate the position of the player and the “clapclap”.
Create the leveldesign/game_elem/creature/objects/object_fisherman_fish_place.creature file and add:
<?xml version="1.0"?> <FORM Revision="$Revision: 1.9 $" State="modified"> <PARENT Filename="_parent_botobject.creature"/> <STRUCT> <STRUCT Name="Basics"> <STRUCT Name="Equipment"> <STRUCT Name="Body"> <ATOM Name="Item" Value="Water01.shape"/> </STRUCT> </STRUCT> </STRUCT> <STRUCT Name="3d data"> <ATOM Name="CharacterScalePos" Value="0"/> <ATOM Name="Scale" Value="0.1"/> <ARRAY Name="ProjectileCastRay"> <STRUCT> <STRUCT Name="Origin"> <ATOM Name="Z" Value="8.5"/> </STRUCT> <STRUCT Name="Pos"> <ATOM Name="Z" Value="8.5"/> </STRUCT> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="Collision"> <ATOM Name="CollisionRadius" Value="0"/> <ATOM Name="BoundingRadius" Value="0"/> <ATOM Name="Length" Value="0"/> <ATOM Name="NotTraversable" Value="false"/> </STRUCT> <STRUCT Name="Properties"> <ATOM Name="Selectable" Value="false"/> <ATOM Name="Talkable" Value="false"/> <ATOM Name="Givable" Value="false"/> <ATOM Name="SelectableBySpace" Value="false"/> </STRUCT> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <LOG></LOG> </FORM>
Create the leveldesign/game_elem/items/armor/creature_armor/creature_body_armor_specific/clapclap_chest.item file
<?xml version="1.0"?> <FORM Revision="$Revision: 1.2 $" State="modified"> <PARENT Filename="_creature_armor.item"/> <STRUCT> <STRUCT Name="basics"> <STRUCT Name="EquipmentInfo"> <ARRAY Name="EquipmentSlots"> <ATOM Name="chest" Value="Chest"/> </ARRAY> </STRUCT> </STRUCT> <STRUCT Name="armor"> <ATOM Name="Armor category" Value="light"/> <ARRAY Name="protection type"> <ATOM Name="slashing" Value="Slashing"/> </ARRAY> <ATOM Name="protection" Value="light"/> <ATOM Name="max protection" Value="light"/> </STRUCT> <STRUCT Name="3d"> <ATOM Name="shape" Value="TR_MO_clapclap.shape"/> </STRUCT> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <LOG></LOG> </FORM>
As info, i generated the files below(as well as those of all the creature assets) by program according to the names contained in the animations(not given, as it was a oneshot). Automatic generation has it's limitations, so it is necessary to make some changes to have the animations as realistic as possible.
Create the directory leveldesign/game_element/anim/anim_set/pet/clapclap and add:
<?xml version="1.0"?> <FORM Revision="$Revision: 1.1 $" State="modified"> <PARENT Filename="_pet.animset_mode"/> <STRUCT> <STRUCT Name="swim"> <ATOM Name="__" Value="true"/> </STRUCT> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <LOG></LOG> </FORM>
<?xml version="1.0"?> <FORM Revision="$Revision: 1.1 $" State="modified"> <STRUCT> <STRUCT Name="idle"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_baille.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_idle.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_occupation.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_senti_danger.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_sortirdelo.anim"/> </STRUCT> </ARRAY> <ATOM Name="LodCharacterAnimation" Value="tr_mo_clapclap_idle.anim"/> </STRUCT> <STRUCT Name="backward"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_recule.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_left"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_gauche.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournegauche.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_right"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_droit.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournedroite.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_left_to_walk"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_gauche.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournegauche.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_right_to_walk"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_droit.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournedroite.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_left_to_backward"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_gauche.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournegauche.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_right_to_backward"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_droit.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournedroite.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="impact"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_impact.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="stun_begin"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_stun_init.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="stun_loop"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_stun_loop.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="stun_end"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_stun_end.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="death_mode"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_mort.anim"/> </STRUCT> </ARRAY> <ATOM Name="LodCharacterAnimation" Value="tr_mo_clapclap_mort.anim"/> </STRUCT> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <COMMENTS></COMMENTS> <LOG></LOG> </FORM>
<?xml version="1.0"?> <FORM Revision="$Revision: 1.1 $" State="modified"> <STRUCT> <STRUCT Name="attack1"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_attaque_1.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_attaque_2.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="attack2"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_attaque_1.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_attaque_2.anim"/> </STRUCT> </ARRAY> </STRUCT> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <COMMENTS></COMMENTS> <LOG></LOG> </FORM>
<?xml version="1.0"?> <FORM Revision="$Revision: 1.1 $" State="modified"> <STRUCT> <STRUCT Name="idle"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_mort_cycle.anim"/> </STRUCT> </ARRAY> </STRUCT> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <COMMENTS></COMMENTS> <LOG></LOG> </FORM>
<?xml version="1.0"?> <FORM Revision="$Revision: 1.1 $" State="modified"> <STRUCT> <STRUCT Name="idle"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_baille.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_idle.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_occupation.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_senti_danger.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_intimidation.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_attaque_1.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_attaque_2.anim"/> </STRUCT> </ARRAY> <ATOM Name="LodCharacterAnimation" Value="tr_mo_clapclap_idle.anim"/> </STRUCT> <STRUCT Name="walk"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_nage.anim"/> <ATOM Name="next1" Value="-1"/> <ATOM Name="next1 weight" Value="1"/> <ATOM Name="next2" Value="-1"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_sortirdelo.anim"/> <ATOM Name="next1" Value="-1"/> <ATOM Name="next1 weight" Value="1"/> <ATOM Name="next2" Value="-1"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_nage.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_nage.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_nage.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_nage.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_nage.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_nage.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_nage.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="backward"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_recule.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_left"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_gauche.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_straffe_gauche.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournegauche.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_right"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_droit.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournedroite.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_left_to_walk"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_gauche.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournegauche.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_right_to_walk"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_droit.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournedroite.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_left_to_backward"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_gauche.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournegauche.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_right_to_backward"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_droit.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournedroite.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="strafe_right"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_straffe_droit.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="impact"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_impact.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="stun_begin"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_stun_init.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="stun_loop"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_stun_loop.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="stun_end"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_stun_end.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="attack1"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_attaque_1.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_attaque_2.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="attack2"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_attaque_1.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_attaque_2.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="death_mode"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_mort.anim"/> </STRUCT> </ARRAY> <ATOM Name="LodCharacterAnimation" Value="tr_mo_clapclap_mort.anim"/> </STRUCT> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <LOG></LOG> </FORM>
<?xml version="1.0"?> <FORM Revision="$Revision: 1.1 $" State="modified"> <STRUCT> <STRUCT Name="idle"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_idle.anim"/> </STRUCT> </ARRAY> <ATOM Name="LodCharacterAnimation" Value="tr_mo_clapclap_idle.anim"/> </STRUCT> <STRUCT Name="backward"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_recule.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_left"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_gauche.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournegauche.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_right"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_droit.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournedroite.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_left_to_walk"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_gauche.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournegauche.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_right_to_walk"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_droit.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournedroite.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_left_to_backward"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_gauche.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournegauche.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_right_to_backward"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_droit.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournedroite.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="impact"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_impact.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="stun_begin"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_stun_init.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="stun_loop"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_stun_loop.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="stun_end"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_stun_end.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="death_mode"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_mort.anim"/> </STRUCT> </ARRAY> <ATOM Name="LodCharacterAnimation" Value="tr_mo_clapclap_mort.anim"/> </STRUCT> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <COMMENTS></COMMENTS> <LOG></LOG> </FORM>
<?xml version="1.0"?> <FORM Revision="$Revision: 1.1 $" State="modified"> <STRUCT> <STRUCT Name="idle"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_baille.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_idle.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_occupation.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_sortirdelo.anim"/> </STRUCT> </ARRAY> <ATOM Name="LodCharacterAnimation" Value="tr_mo_clapclap_idle.anim"/> </STRUCT> <STRUCT Name="backward"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_recule.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_left"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_gauche.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournegauche.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_right"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_droit.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournedroite.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_left_to_walk"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_gauche.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournegauche.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_right_to_walk"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_droit.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournedroite.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_left_to_backward"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_gauche.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournegauche.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="turn_right_to_backward"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_demitour_droit.anim"/> </STRUCT> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_tournedroite.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="impact"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_impact.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="stun_begin"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_stun_init.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="stun_loop"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_stun_loop.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="stun_end"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_stun_end.anim"/> </STRUCT> </ARRAY> </STRUCT> <STRUCT Name="death_mode"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_mort.anim"/> </STRUCT> </ARRAY> <ATOM Name="LodCharacterAnimation" Value="tr_mo_clapclap_mort.anim"/> </STRUCT> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <COMMENTS></COMMENTS> <LOG></LOG> </FORM>
<?xml version="1.0"?> <FORM Revision="$Revision: 1.1 $" State="modified"> <STRUCT> <STRUCT Name="death_mode"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_mort.anim"/> </STRUCT> </ARRAY> <ATOM Name="LodCharacterAnimation" Value="tr_mo_clapclap_mort.anim"/> </STRUCT> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <COMMENTS></COMMENTS> <LOG></LOG> </FORM>
<?xml version="1.0"?> <FORM Revision="$Revision: 1.1 $" State="modified"> <STRUCT> <STRUCT Name="walk"> <ARRAY Name="animations"> <STRUCT> <ATOM Name="filename" Value="tr_mo_clapclap_nage.anim"/> </STRUCT> </ARRAY> </STRUCT> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <COMMENTS></COMMENTS> <LOG></LOG> </FORM>
Edit the leveldesign/game_element/anim/anim_set/entities.animset_list file.
Add (before the last </ARRAY> ) the following code:
<ATOM Name = "clapclap" Value = "clapclap.animset_mode"/>
Create directory leveldesign/game_element/sbrick/others/fish
Create the bfpafi01.sbrick file and add the following code:
<?xml version="1.0"?> <FORM Revision="$Revision: 1.8 $" State="modified"> <STRUCT> <STRUCT Name="Basics"> <ATOM Name="FamilyId" Value="BFAQFME"/> <ATOM Name="Skill" Value="SF"/> </STRUCT> <STRUCT Name="Client"> <ATOM Name="Icon" Value="to_fishing_rod.tga"/> <ATOM Name="IconBack" Value="FO_Back.tga"/> </STRUCT> <STRUCT Name="Credit"> <ATOM Name="f0" Value="BFCA"/> <ATOM Name="f1" Value="BFCB"/> <ATOM Name="f2" Value="BFCC"/> <ATOM Name="f3" Value="BFCD"/> <ATOM Name="f4" Value="BFCE"/> <ATOM Name="f5" Value="BFCF"/> <ATOM Name="f6" Value="BFCG"/> </STRUCT> </STRUCT> <STRUCT/> <STRUCT/> <STRUCT/> <STRUCT/> <LOG></LOG> </FORM>
Add fisherman.primitive file to primitives/newbieland
I do not provide the code of the file(unless you prefer to type 90K lines of xml tags and the code is even more abstruse); You can retrieve it in the repository. I have done quite a lot of experiments on this file and i can “concede” that it is far from being perfect(but in general the code is documented). In order to unlearn a sbrick(a functionality presented on the server but not in the WorldEditor and the primitive compiler), i modified some configuration files and the primitives compiler(it will be necessary to recover the last version of the compiler and the Config files).
Editing the file primitives/primitives.cfg
:
Add the following code(before the last occurrence of "MAPEND", )
"FILE fisherman.primitive",
Send changes to repository https://depots.khaganat.net/scm/hg/khanat-ressources branch lirria
In order to do this, you must of course have write access to the repository.
Position at the root of it's local repository, then type the following commands(answer appropriately to all the asked questions) - I have to revalidated this part:
$ hg pull
$ hg update
$ hg commit
$ hg push -b lirria
Retrieve(locally) the deposit of customer data.
<Code bash> ~/currdata$ hg pull https://depots.khaganat.net/scm/hg/lirria-client-data $ Hg update </code>
Add the following files to the currdata/creatures/fauna/water/clapclap directory of your local repository
GO_MO_Clapclap.shape ju_mo_clapclap.dds TR_MO_Clapclap.shape tr_mo_clapclap.skel tr_mo_clapclap_attaque_1.anim tr_mo_clapclap_attaque_2.anim tr_mo_clapclap_baille.anim tr_mo_clapclap_demitour_droit.anim tr_mo_clapclap_demitour_gauche.anim tr_mo_clapclap_idle.anim tr_mo_clapclap_impact.anim tr_mo_clapclap_intimidation.anim tr_mo_clapclap_mort.anim tr_mo_clapclap_mort_cycle.anim tr_mo_clapclap_nage.anim tr_mo_clapclap_occupation.anim tr_mo_clapclap_recule.anim tr_mo_clapclap_senti_danger.anim tr_mo_clapclap_sortirdelo.anim tr_mo_clapclap_straffe_droit.anim tr_mo_clapclap_straffe_gauche.anim tr_mo_clapclap_stun_end.anim tr_mo_clapclap_stun_init.anim tr_mo_clapclap_stun_loop.anim tr_mo_clapclap_tournedroite.anim tr_mo_clapclap_tournegauche.anim
Send your changes to the https://depots.khaganat.net/scm/hg/lirria-client-data repository(by answering the questions correctly)
~/currdata$ hg commit ~/currdata$ hg push
Provide client data on the server.
Connect to the server with the account that is OK and run the command:
~/$ ./script_regenerer_bnps_client.sh
Update client and server data**
Connect to the server with the account that is fine and then run the command:
~/$ ./script_mise_a_jour_data_serveur.sh