Funkcja wytwarzania skór na nowym obiekcie interaktywnym w grze 3772 0

O temacie

Autor pagi111

Zaczęty 11.09.2021 roku

Wyświetleń 3772

Odpowiedzi 0

pagi111

pagi111

Użytkownicy
posty51
Propsy2
Profesjabrak
  • Użytkownicy
Czołem, chcę dodać możliwość garbowania skór do gry i chciałbym, żeby to się odbywało na jakimś obiekcie w grze (to się chyba nazywa Mob) - tak jak np. wykuwanie mieczy robimy na kowadle. Dodałem w Spacerze do świata gry obiekt oCMobIntern, jako visual dałem mu BARBQ_SCAV.MDS (ognisko ze ścierwojadem - na razie wziąłem coś pierwsze lepsze tylko przykładowo), a w onstatefunction wpisałem SKINTAN (wzorowałem się przy tym na kowadle - tam jest SMITHWEAPON). W skryptach zrobiłem nowy plik, w którym przekopiowałem wszystko z kowadła, tylko podmieniłem wytwarzanie mieczy na skóry oraz wszystkie nazwy robiłem według tego samego schematu, tylko wszędzie zamiast SmithWeapon dawałem SkinTan, no i zwłaszcza linijki:
FUNC INT PC_SmithWeapon_End_Condition ()
{
if (PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
{
return TRUE;
};
};
Zmieniłem na:
FUNC INT PC_SkinTan_End_Condition ()
{
if (PLAYER_MOBSI_PRODUCTION == MOBSI_SKINTAN)
{
return TRUE;
};
};
MOBSI_SKINTAN dodałem w AI_Constants.

Rzecz w tym, że to nie działa. Tzn. bezi podchodzi do ogniska, jak klikam to zaczyna obracać tego ścierwojada (:D), ale nie wyświetlają się żadne opcje dialogowe dotyczące wytwarzania przedmiotów. Dodam, że skrypt sam w sobie działa, bo gdy NIE zmieniam linijki if (PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON) na if (PLAYER_MOBSI_PRODUCTION == MOBSI_SKINTAN) to mogę wytwarzać te skóry, tyle że na kowadle.
W Spacerze do tej pory się nie bawiłem, więc może tam coś źle robię. Albo jeszcze w jakimś pliku coś dodać. W sumie nie wiem do czego odwołuje się to onstatefunction w Spacerze - do nazwy pliku, do nazwy jakiejś funkcji w skryptach czy jeszcze czegoś innego?

EDIT:
No dobra, po prostu za mało patrzyłem w skrypty. Trzeba jeszcze dodać funkcję (np. w nowym pliku SkinTan.d) na wzór tej ze SmithWeapons:
func void SkinTan_S1()
{
    var C_Npc her;
    her = Hlp_GetNpc(Pc_Hero);
    if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(her))
    {
        self.aivar[AIV_INVINCIBLE] = TRUE;
        Player_Mobsi_Production = Mobsi_SkinTan;
        AI_ProcessInfos(her);
    };
};
Dzięki, @Czudak
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry