Cześć
Próbuję przenieść pewną rzecz z Gothic 2 do Gothic 1. Chodzi o to by pobite postacie się regenerowały i uzupełniały podręczną broń po tym jak znikną głównemu bohaterowi z widoku.
Jeżeli dobrze rozumiem, to kluczowy jest plik "B_RefreshAtInsert.d" wzięty z "Gothic II\_work\data\Scripts\Content\AI\AI_Intern".
Trochę edytowałem ten plik i próbowałem go umieścić w różnych miejscach. W pierwszej kolejności rzecz jasna w "Gothic\_work\data\Scripts\Content\AI\AI_Intern". Między innymi zauważyłem, że w "Gothic.src" Gothica Dwójki znajdowała się linijka "AI\AI_Intern\B_RefreshAtInsert.d", więc dodałem analogiczną linijkę w "Gothic.src" Gothica Jedynki.
Gdy to się nie udało próbowałem przekleić treść "B_RefreshAtInsert" do jednego z plików ".d" w folderze "Gothic\_work\DATA\scripts\Content\Story\B". Też kicha.
Próbowałem potem na różne sposoby. Wstawiłem plik "B_RefreshAtInsert.d" do folderu "Gothic\_work\DATA\scripts\Content\AI\B_Human".
Na zabawie metodą prób i błędów zeszło mi kilka godzin - próbując wstawić tą rzecz w różnych konfiguracjach. Niestety na próżno.
Próbowałem też z "ZS_HealSelf.d" (z folderu "D:\Steam\steamapps\common\Gothic\_work\DATA\scripts\Content\AI\ZS_Human") - jako swoistą wersję minimum, żeby chociaż ci z niepełnym HP uzupełniali sobie miksturami i nie stali wykrwawieni do końca gry ale NPC nie chciały tego robić nawet jak byli ranni czy pobici. Zależałoby mi też na tym by pozbawieni broni się jednak uzbrajali jak w Gothic 2.
Dodam, że wszystko ładnie się reparsuje w Spacerze i nie wyskakuje żaden błąd - poza tym, że skrypt nie działa.
Bardzo proszę o pomoc. Wstawiam tu projekt swojej wersji B_RefreshAtInsert i prosiłbym o:
1. Wskazówki co w nim jest ewentualnie źle.
2. Gdzie go wstawić by zadziałał.
func void b_refreshatinsert()
{
var C_NPC her;
if(self.attribute[ATR_HITPOINTS] <= 0)
{
return;
};
her = Hlp_GetNpc(pc_hero);
if((self.guild < GIL_SEPERATOR_HUM) && (Hlp_GetInstanceID(self) != Hlp_GetInstanceID(her)))
{
self.attribute[ATR_HITPOINTS] = self.attribute[ATR_HITPOINTS_MAX];
if(Npc_HasEquippedWeapon(self) == FALSE)
{
if(self.guild == GIL_NONE)
{
CreateInvItems(self,Itmw_1h_club_01,1);
};
if(self.guild == GIL_EBR)
{
CreateInvItems(self,itmw_1h_sword_03,1);
};
if(self.guild == GIL_GRD)
{
CreateInvItems(self,itmw_1h_sword_03,1);
};
if(self.guild == GIL_STT)
{
CreateInvItems(self,Itmw_1h_club_01,1);
};
if(self.guild == GIL_KDF)
{
CreateInvItems(self,Itmw_1h_club_01,1);
};
if(self.guild == GIL_VLK)
{
CreateInvItems(self,Itmw_1h_club_01,1);
};
if(self.guild == GIL_KDW)
{
CreateInvItems(self,Itmw_1h_club_01,1);
};
if(self.guild == GIL_SLD)
{
CreateInvItems(self,itmw_1h_sword_03,1);
};
if(self.guild == GIL_ORG)
{
CreateInvItems(self,Itmw_1h_club_01,1);
};
if(self.guild == GIL_BAU)
{
CreateInvItems(self,Itmw_1h_club_01,1);
};
if(self.guild == GIL_SFB)
{
CreateInvItems(self,Itmw_1h_club_01,1);
};
if(self.guild == GIL_GUR)
{
CreateInvItems(self,Itmw_1h_club_01,1);
};
if(self.guild == GIL_NOV)
{
CreateInvItems(self,Itmw_1h_club_01,1);
};
if(self.guild == GIL_TPL)
{
CreateInvItems(self,itmw_1h_sword_03,1);
};
if(self.guild == GIL_BAB)
{
CreateInvItems(self,Itmw_1h_club_01,1);
};
};
};
};