Witam, a więc ściągnąłem z
http://www.worldofgothic.de/?go=moddb&action=view&fileID=291&cat=1&page=6&order=0 animacje i moba malowania. Umieściłem statyw jako oCMobInter, dałem odpowiedni wygląd (MALEN_01.ASC) i przedmiot do używania jako pędzel (ItMi_Pinsel). Zarejestrowałem także animki w humans.mds, rejestracja wygląda następująco:
// Malen
ani ("T_MALEN_STAND_2_S0" 1 "S_MALEN_S0" 0.1 0.0 M. "Hum_malen_image.ASC" F 0 20)
{
*eventTag (1 "DEF_CREATE_ITEM" "ZS_RIGHTHAND" "Itmi_Pinsel")
*eventTag (1 "DEF_CREATE_ITEM" "ZS_LEFTHAND" "Itmi_Palette")
}
ani ("S_MALEN_S0" 1 "S_MALEN_S0" 0.0 0.0 M. "Hum_malen_image.ASC" F 20 20)
ani ("T_MALEN_S0_2_STAND" 1 "" 0.1 0.1 M. "Hum_malen_image.ASC" R 0 20)
ani ("T_MALEN_S0_2_S1" 1 "S_MALEN_S1" 0.0 0.0 M. "Hum_malen_image.ASC" F 20 20)
ani ("T_MALEN_S1_2_S0" 1 "S_MALEN_S0" 0.1 0.1 M. "Hum_malen_image.ASC" R 20 20)
{
*eventTag (18 "DEF_REMOVE_ITEM")
}
ani ("S_MALEN_S1" 1 "S_MALEN_S1" 0.0 0.0 M. "Hum_malen_image.ASC" F 20 100)
oraz owe animki (w .asc) dodałem do folderu Anims/Asc i stworzyłem itema pędzla i palety, a także banalny do granic możliwości skrypt funkcji rutyny
FUNC VOID ZS_Painting ()
{
Perception_Set_Normal();
B_ResetAll (self);
AI_SetWalkmode (self, NPC_WALK);
if (Npc_HasItems (self,ItMi_Palette) == 0)
{
CreateInvItem (self, ItMi_Palette);
};
if (Npc_HasItems (self, ItMi_Pinsel) == 0)
{
CreateInvItem (self, ItMi_Pinsel);
};
};
FUNC int ZS_Painting_Loop ()
{
// ------ Braten ------
if (!C_BodyStateContains(self, BS_MOBINTERACT_INTERRUPT))
&& (Wld_IsMobAvailable(self,"MALEN"))
{
AI_UseMob (self, "MALEN", 1);
};
return LOOP_CONTINUE;
};
FUNC VOID ZS_Painting_End ()
{
AI_UseMob (self, "MALEN", -1);
};
Potem, po dodaniu wpisu w TA.d i stworzeniu skryptu malarza kiedy go odwiedzam on "używa" mojego moba, jednak nie ma żadnych animek, tj. stoi przed statywem i ciągle drga, nic nie robi, chociaż moba teoretycznie używa. Dodałem mu nawet do ekwipunku pędzel i paletę, ale nadal nic nie działa. Jakieś sugestie?