Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - Orion

Strony: [1] 2 3
1
Skrypty / Problem z monologiem
« dnia: 2013-06-06, 23:06 »
Dodawanie przedmiotów działa, a użyłem self, bo tak było w GII. Nie wiem dlaczego funkcja usuwania ekwipunku nagle nie chce się wywołać, bo wcześniej normalnie była uruchamiana podczas zabijania npc.

Edit:
Brak wyświetlenia napisu nie jest winą Gothica I, bo zmieniłem na zwyczajne
print("Czyszczenie eq: ");i dalej nic nie pokazuje.

2
Skrypty / Problem z monologiem
« dnia: 2013-06-06, 22:50 »
Wkleiłem ten z printami, (i dodałem przy tym dwa ")", bo zabrakło ich, co pokazał mi zSpy), no i dalej nic nie usuwa. Poza tym, nie wyświetlił mi się żaden napis.
Teraz trochę o tym, jak wywołuję funkcję. (Wzorowałem, a raczej przepisałem ją z Gothic II, i działa, bo wcześniejsze funkcje normalnie wywoływało, czyli gdy usuwałem tylko jeden przedmiot na sprawdzenie).

func void B_GiveTradeInv (var C_NPC self)
{
var C_NPC Trd_Sharky; Trd_Sharky = Hlp_GetNpc (ORG_843_Sharky);

if Hlp_GetInstanceID (self) == Hlp_GetInstanceID (Trd_Sharky) {B_GiveTradeInv_Sharky (self);}; //B_GiveTradeInv_Sharky - mam tam wypisane, które przedmioty Sharky dostaje, i to działa, bo gdy z nim handluję, (a właśnie przy handlu wywołuję B_GiveTradeInv (self)) to ma je w inwentarzu.

if (Npc_IsInState (self, ZS_Dead))
{
if  Hlp_GetInstanceID (self) == Hlp_GetInstanceID (Trd_Sharky) {Npc_ClearInventory (self);};   //no i tu ją wywołuję
};
};

3
Skrypty / Problem z monologiem
« dnia: 2013-06-06, 22:10 »
Zrobiłem tak jak pisałeś, wstawiłem ten skrypt, jednak było tam kilka "literówek". Wygląda to tak:
var int amount;
func void Npc_ClearInventoryLoop (var c_npc npc, var int category)
{
    amount = Npc_GetInvItemBySlot (npc, category, 0);
    if (amount>0)
    {
            NPC_RemoveInvItems (npc, Hlp_GetInstanceID (item), amount);
            Npc_ClearInventoryLoop(npc, category);
    }
    else if (category < INV_CAT_MAX-1)
    {
            Npc_ClearInventoryLoop(npc, category+1);
    };
};

func void Npc_ClearInventory (var c_npc npc)
{
    Npc_ClearInventoryLoop(npc, 0);
};
Ale to w ogóle nie działa, nie usuwa żadnego przedmiotu. Choć pewnie dlatego, że znowu coś w skrypcie zepsułem.

4
Skrypty / Problem z monologiem
« dnia: 2013-06-06, 14:56 »
Nie bardzo wiem jak zrobić aby tamta działała, więc napisałem coś takiego:
var int amount;
func void B_ClearTradeInvLoop (var c_npc npc, var int category)
{
    amount = Npc_GetInvItemBySlot (npc, category, 0);
    if (amount >= 1)
    {
            NPC_RemoveInvItems (npc, Hlp_GetInstanceID (ItMiNugget), 1);
            B_ClearTradeInvLoop(npc, category);
    }
    else if (category < INV_CAT_MAX-1)
    {
            B_ClearTradeInvLoop(npc, category+1);
    };
};



func void B_ClearTradeInv (var c_npc npc)
{
    B_ClearTradeInvLoop(npc, 0);
};

Ale to też wyłącza grę podczas zabijania npc.

5
Skrypty / Problem z monologiem
« dnia: 2013-06-05, 22:43 »
Gdy korzystałem z tamtej, to usuwało tylko przedmioty z pierwszego slotu ekwipunku (czyli broń), a dodawałem tam inne przedmioty. Poza tym musiałem napisać kilka zmiennych amount, bo każdy slot potrzebuje innej.

6
Skrypty / Problem z monologiem
« dnia: 2013-06-05, 22:28 »
Ten sposób działa, ale gdy wpisywałem dwa przedmioty. Teraz skrypt wygląda tak:

var int amountweapon;
var int amountarmor;
var int amountmagic;
var int amountartifacts;
var int amountfood;
var int amountpotions;
var int amountwritten;
var int amountmisc;
func void B_ClearTradeInv (var C_NPC ctrd)
{
amountweapon = Npc_GetInvItemBySlot (ctrd, 1, 0);
amountarmor = Npc_GetInvItemBySlot (ctrd, 2, 0);
amountmagic = Npc_GetInvItemBySlot (ctrd, 3, 0);
amountartifacts = Npc_GetInvItemBySlot (ctrd, 4, 0);
amountfood = Npc_GetInvItemBySlot (ctrd, 5, 0);
amountpotions = Npc_GetInvItemBySlot (ctrd, 6, 0);
amountwritten = Npc_GetInvItemBySlot (ctrd, 7, 0);
amountmisc = Npc_GetInvItemBySlot (ctrd, 8, 0);
    if (amountweapon >= 1)
    {
    NPC_RemoveInvItems (ctrd, Hlp_GetInstanceID (ItMw_1H_Sword_Broad_03), 1);
NPC_RemoveInvItems (ctrd, Hlp_GetInstanceID (ItMw_2H_Sword_01), 1);
B_ClearTradeInv(ctrd);
};
if (amountarmor >= 1)
{
NPC_RemoveInvItems (ctrd, Hlp_GetInstanceID (Vlk_Armor_L), 1);
B_ClearTradeInv(ctrd);
};
if (amountmagic >= 1)
{
NPC_RemoveInvItems (ctrd, Hlp_GetInstanceID (ItArScrollLight), 1);
B_ClearTradeInv(ctrd);
};
if (amountartifacts >= 1)
{
NPC_RemoveInvItems (ctrd, Hlp_GetInstanceID (Amulett_der_Macht), 1);
NPC_RemoveInvItems (ctrd, Hlp_GetInstanceID (Ring_der_Erleuchtung), 1);
B_ClearTradeInv(ctrd);
};
if (amountfood >= 1)
{
NPC_RemoveInvItems (ctrd, Hlp_GetInstanceID (ItFo_Plants_mountainmoos_01), 1);
NPC_RemoveInvItems (ctrd, Hlp_GetInstanceID (ItFo_Plants_Berrys_01), 1);
NPC_RemoveInvItems (ctrd, Hlp_GetInstanceID (ItFo_Plants_Flameberry_01), 1);
NPC_RemoveInvItems (ctrd, Hlp_GetInstanceID (ItFoRice), 1);
NPC_RemoveInvItems (ctrd, Hlp_GetInstanceID (ItFoBooze), 1);
B_ClearTradeInv(ctrd);
};
if (amountpotions >= 1)
{
NPC_RemoveInvItems (ctrd, Hlp_GetInstanceID (ItFo_Potion_Health_02), 1);
B_ClearTradeInv(ctrd);
};
if (amountwritten >= 1)
{
NPC_RemoveInvItems (ctrd, Hlp_GetInstanceID (Die_Gruft), 1);
B_ClearTradeInv(ctrd);
};
if (amountmisc >= 1)
{
NPC_RemoveInvItems (ctrd, Hlp_GetInstanceID (ItMiNugget), 1);
NPC_RemoveInvItems (ctrd, Hlp_GetInstanceID (ItKeLockpick), 1);
B_ClearTradeInv(ctrd);
};
};

Napisałem kilka zmiennych na górze, bo tego chyba wymagała ta funkcja, a te wszystkie przedmioty znajdują się w inwentarzu npc gdy on umiera.
Gra wywala do pulpitu, i nie wyświetla żadnych komunikatów podczas śmierci npc, więc chyba silnik nie wyrobił z czymś takim. No i tak na uboczu zmieniłem npc na ctrd, bo w innym skrypcie mam trd, ale to nie jest istotne.

7
Skrypty / Problem z monologiem
« dnia: 2013-06-05, 18:43 »
Dzięki. Mam tylko co do tego kilka pytań. (Jestem początkujący,i chciałbym się nauczyć pisać skrypty, a z takim się jeszcze nie spotkałem.)
Co do:
func void Npc_ClearInventory (var c_npc npc)
{
    Npc_ClearInventoryLoop(npc, 0);
}
To npc w (var c_npc npc) to argument, więc służy tylko do wywołania funkcji? Czyli równie dobrze mogłoby to być "self", albo w ogóle jakieś przypadkowe słowo?
W  Npc_ClearInventoryLoop(npc, 0); npc to argument, więc musi być tak jak wyżej, a 0 co oznacza? Wydaje mi się, że jest to cyfra, która wynika z drugiej części skryptu.

A co do drugiej części:
func void Npc_ClearInventoryLoop (var c_npc npc, var int category)
{
    int amount = Npc_GetInvItemBySlot (npc, category, 0);
    if (amount)
    {
            NPC_RemoveInvItems (npc, Hlp_GetInstanceID (item), amount);
            Npc_ClearInventoryLoop(npc, category);
    }
    else if (category < INV_CAT_MAX-1)
    {
            Npc_ClearInventoryLoop(npc, category+1);
    };
};

To npc po "var c_npc" jest argumentem? Musi być tak samo jak wyżej?
Category to zmienna liczbowa, którą gdzieś tu opisujemy w "int amount"?
Co właściwie robi linijka "int amount = Npc_GetInvItemBySlot (npc, category, 0);"? Bo rozumiem, że tam gdzie jest RemoveInvItems amount odpowiada za liczbę przedmiotów usuwanych, ale tam wyżej przy if i int? Mamy je jakoś wpisać w miejsce amount? No i przy else wygląda to tak, że jest kilka category, ale gdzie one zostają opisane?
Wiem, że ten post może wywołać napad śmiechu na tym forum, albo jakąś salwę zasłużonej krytyki, ale chciałbym zrozumieć funkcje raz a dobrze, bo w każdym tutorialu czytałem tylko co można dzięki jakiejś danej zrobić, co mi niewiele dało.

Edit: Thanks Lehona for a tip. I'm not a great programmer, 'couse my knowledge about it is just this forum, and my very weak skills, so I don't know if i can use Ikarus on my own.

8
Skrypty / Problem z monologiem
« dnia: 2013-06-05, 07:32 »
Odświeżam temat, ponieważ mam kolejny problem.
Nie wiem jak zrobić skrypt tak, aby usuwał wszystkie przedmioty w inwentarzu NPC.
W G2NK jest po prostu tak:
Npc_clearInventory
W Gothic I nie ma takiej funkcji, więc poszedłem dłuższą drogą, i postanowiłem stworzyć funkcję, która usuwa wszystkie te przedmioty, i wypisałem kilka przedmiotów, które mają zniknąć, i które NPC ma w inwentarzu. Więc napisałem np. :
Npc_RemoveInvItems (self , ItFoRice, Npc_HasItems (self, ItFoRice ));znalazłem takie wpisy w plikach GII, ale to nie działało. Potem wstawiłem:
Npc_RemoveInvItems (self , ItFoRice);ale tutaj trzeba wstawić określoną liczbę. Gdy wstawiłem liczbę mniejszą lub taką samą jak w inwentarzu NPC, to usuwało poprawnie:
Npc_RemoveInvItems (self, ItMiNugget, 220;ale nie usuwało wszystkiego, bo gdyby NPC miał więcej tych przedmiotów, to wciąż by ich kilka miał. Dlatego wstawiłem tam np. 1000, bo NPC nigdy by nie miał ich tak dużo, i zostałyby usunięte wszystkie. Ale to nie działa, gdy podamy liczbę większą od tej, którą ma NPC, więc po wstawieniu 1000 (NPC ma 250 bryłek) nic się nie działo, i NPC dalej miał wszystkie itemy.

Może mnie ktoś naprowadzić jak to zrobić?

PS. Gdy wstawiłem tam wartość ujemną, to skrypt dodawał przedmioty, ale nie zawsze, bo gdy NPC miał tylko jeden taki przedmiot, a ja wstawiłem -2, to usunęło przedmiot, i niczego nie dodało, ale gdy miałem 3 przedmioty, a wstawiłem -1000, to miałem 1003 przedmiotów.
PS.2. Gdy do CreateInvItems wstawiałem wartość ujemną, to gdy była mniejsza (np. -2), to dodawało jeden przedmiot, ale gdy było to -1000, to działo się coś dziwnego. Zostawał tylko jeden taki przedmiot, ale nie dało się go wyciągnąć z ekwipunku NPC (martwego lub pokonanego). Jednak dalej tam był, jak normalny przedmiot, tylko nie mogłem do dodać do swojego ewkipunku.

9
Skrypty / Problem z monologiem
« dnia: 2013-05-25, 15:38 »
Avallach i Adanos, dzięki za trochę konstruktywnej krytyki (o pojęciu i Szekspirze), oraz za wytłumaczenie czym jest funkcja i do czego służy Gothic.src. Ekwipunek działa.

10
Skrypty / Problem z monologiem
« dnia: 2013-05-25, 13:50 »
Wstawiłem () i wygląda to tak:
func void B_CreateAmbientInv ()
{
CreateInvItems (self, ItFoApple, 7);
CreateInvItems (self, ItFoCheese, 3);
CreateInvItem  (self, Die_Gruft);
CreateInvItem  (self, ItAt_Swampshark_01);
CreateInvItem  (self, ItMw_2H_Sword_Heavy_01);
};
Ale dalej wyskakuje błąd Unknown identifier: B_CreateAmbientInv, błąd jest w skrypcie NPC (w tym przypadku Orry'ego). Wstawiłem tam:
B_CreateAmbientInv (self);
EDIT:
Być może wyskakuje błąd, bo ta funkcja jest w złym pliku, zapisałem ją w C:\Program Files\Gothic\_Work\Data\Scripts\Content\Story\B\B_CreateAmbientInv.d

11
Skrypty / Problem z monologiem
« dnia: 2013-05-25, 13:29 »
To znaczy, że ma to wyglądać tak, że po func void B_CreateAmbientInv ma być w nawiasie var  int <nazwa argumentu>? Tylko co ma być argumentem w tym nawiasie? Coś po czym skrypt wykrył, że jakiś npc go używa? C_NPC, czy coś takiego?

12
Skrypty / Problem z monologiem
« dnia: 2013-05-25, 09:19 »
Dzięki za pomoc z monologiem, już wszystko działa. Teraz mam drugi problem i nie chcę zakładać nowego tematu, więc napiszę tutaj.
Chciałem zrobić zmienne ekwipunku jak to jest w Gothic II, czyli, że zestawy ekwipunku są opisane w jednym pliku, a w plikach NPC wstawiamy tylko, że ma je odczytać.
Mój skrypt nie działa, próbowałem go naprawić, ale czego bym nie zmienił, i tak wyskakuje błąd.

Oto skrypt z Gothic II: (plik B_CreateAmbientInv.d)
Spoiler
// ******************
// B_CreateAmbientInv
// ******************

//Hier stehen die Hilfsfunktionen zum befüllen der NPCs

func void B_CreateAmbientInv_VLK (var int InventorySet)
{
if InventorySet ==1
{
CreateInvItems (self, ItPl_Blueplant, 1);
CreateInvItems (self, ItMi_SilverRing, 1);
CreateInvItems (self, ItFo_Water, 1);
CreateInvItems (self, ItMi_gold, 5);
}
else if InventorySet ==2
{
CreateInvItems (self, ItPl_Planeberry, 1);
CreateInvItems (self, ItFo_Apple, 1);
CreateInvItems (self, ItFo_Fish, 1);
CreateInvItems (self, ItFo_Beer, 1);
CreateInvItems (self, ItMi_gold, 1);
}
else if InventorySet ==3
{
CreateInvItems (self, ItFo_Fish, 1);
CreateInvItems (self, ItFo_Bread, 1);
CreateInvItems (self, ItMi_Flask, 1);
CreateInvItems (self, ItMi_gold, 17);
}
else if InventorySet ==4
{
CreateInvItems (self, ItFo_Bread, 1);
CreateInvItems (self, ItFo_Water, 1);
CreateInvItems (self, ItFoMuttonRaw, 1);
CreateInvItems (self, ItMi_gold, 17);
}
else if InventorySet ==5
{
CreateInvItems (self, ItFo_Apple, 1);
CreateInvItems (self, ItFo_Cheese, 1);
CreateInvItems (self, ItFo_Bread, 1);
CreateInvItems (self, ItMi_gold, 13);
}
else if InventorySet ==6
{
CreateInvItems (self, ItFo_Apple, 1);
CreateInvItems (self, ItFo_Cheese, 1);
CreateInvItems (self, ItPo_Health_01, 1);
CreateInvItems (self, ItMi_gold, 11);
}
else if InventorySet ==0
{
CreateInvItems (self, ItPl_Planeberry, 1);
CreateInvItems (self, ItFo_Apple, 1);
CreateInvItems (self, ItFo_Beer, 1);
CreateInvItems (self, ItMi_gold, 12);
};
};
func void B_CreateAmbientInv_BAU (var int InventorySet)
{
if InventorySet ==1
{
CreateInvItems (self, ItPl_Forestberry, 1);
CreateInvItems (self, ItFo_Water, 1);
CreateInvItems (self, ItFo_Milk, 1);
CreateInvItems (self, ItMi_gold, 12);
}
else if InventorySet ==2
{
CreateInvItems (self, ItPl_Forestberry, 1);
CreateInvItems (self, ItPl_Planeberry, 1);
CreateInvItems (self, ItFo_Apple, 1);
CreateInvItems (self, ItFo_Cheese, 1);
CreateInvItems (self, ItMi_gold, 10);
}
else if InventorySet ==3
{
CreateInvItems (self, ItFo_Apple, 1);
CreateInvItems (self, ItFo_Cheese, 1);
CreateInvItems (self, ItPo_Health_01, 1);
CreateInvItems (self, ItMi_gold, 17);
}
else if InventorySet ==4
{
CreateInvItems (self, ItPl_Blueplant, 1);
CreateInvItems (self, ItFoMuttonRaw, 1);
CreateInvItems (self, ItFo_Bread, 1);
CreateInvItems (self, ItMi_gold, 14);
}
else if InventorySet ==5
{
CreateInvItems (self, ItPl_Forestberry, 1);
CreateInvItems (self, ItFo_Bread, 1);
CreateInvItems (self, ItFoMuttonRaw, 1);
CreateInvItems (self, ItMi_gold, 13);
}
else if InventorySet ==6
{
CreateInvItems (self, ItPl_Forestberry, 1);
CreateInvItems (self, ItMi_Joint, 1);
CreateInvItems (self, ItFo_Cheese, 1);
CreateInvItems (self, ItPl_Planeberry, 1);
CreateInvItems (self, ItMi_gold, 11);
}
else if InventorySet ==0
{
CreateInvItems (self, ItPl_Planeberry, 1);
CreateInvItems (self, ItFo_Apple, 1);
CreateInvItems (self, ItFo_Cheese, 4);
CreateInvItems (self, ItFo_Beer, 1);
};
};
func void B_CreateAmbientInv_NOV (var int InventorySet)
{
if InventorySet ==1
{
CreateInvItems (self, ItPl_Forestberry, 1);
CreateInvItems (self, ItFo_Water, 3);
CreateInvItems (self, ItPl_Blueplant, 1);
CreateInvItems (self, ItFo_Fish, 1);
}
else if InventorySet ==2
{
CreateInvItems (self, ItFoMuttonRaw, 1);
CreateInvItems (self, ItFo_Cheese, 1);
CreateInvItems (self, ItMi_Flask, 1);
CreateInvItems (self, ItMi_gold, 15);
}
else if InventorySet ==3
{
CreateInvItems (self, ItFo_Apple, 3);
CreateInvItems (self, ItFo_Cheese, 2);
CreateInvItems (self, ItFo_Beer, 2);
CreateInvItems (self, ItMi_Sulfur, 1);
}
else if InventorySet ==4
{
CreateInvItems (self, ItPl_Blueplant, 1);
CreateInvItems (self, ItFo_Bread, 1);
CreateInvItems (self, ItFo_Water, 1);
CreateInvItems (self, ItMi_Coal, 1);
CreateInvItems (self, ItMi_gold, 13);
}
else if InventorySet ==5
{
CreateInvItems (self, ItFo_Bread, 2);
CreateInvItems (self, ItFoMuttonRaw, 1);
CreateInvItems (self, ItFo_Fish, 1);
CreateInvItems (self, ItMi_gold, 14);
}
else if InventorySet ==6
{
CreateInvItems (self, ItPl_Forestberry, 1);
CreateInvItems (self, ItFo_Fish, 1);
CreateInvItems (self, ItFo_Bread, 1);
CreateInvItems (self, ItPo_Mana_01, 1);
CreateInvItems (self, ItMi_gold, 12);
}
else if InventorySet ==0
{
CreateInvItems (self, ItPl_Planeberry, 3);
CreateInvItems (self, ItFo_Apple, 1);
CreateInvItems (self, ItFo_Cheese, 1);
CreateInvItems (self, ItFo_Beer, 1);
};
};
func void B_CreateAmbientInv_SLD (var int InventorySet)
{
if InventorySet ==1
{
CreateInvItems (self, ItFoMutton, 1);
CreateInvItems (self, ItPl_Mushroom_01, 1);
CreateInvItems (self, ItMi_gold, 17);
}
else if InventorySet ==2
{
CreateInvItems (self, ItPl_Health_Herb_01, 1);
CreateInvItems (self, ItFo_Booze, 2);
CreateInvItems (self, ItFo_Sausage, 1);
}
else if InventorySet ==3
{
CreateInvItems (self, ItFo_Stew, 1);
CreateInvItems (self, ItMi_Joint, 2);
CreateInvItems (self, ItMi_gold, 16);
}
else if InventorySet ==4
{
CreateInvItems (self, ItFo_Stew, 1);
CreateInvItems (self, ItFo_Booze, 1);
CreateInvItems (self, ItMi_gold, 15);
}
else if InventorySet ==5
{
CreateInvItems (self, ItFo_Sausage, 1);
CreateInvItems (self, ItFoMuttonRaw, 1);
CreateInvItems (self, ItMi_gold, 11);
}
else if InventorySet ==6
{
CreateInvItems (self, ItFo_Booze, 1);
CreateInvItems (self, ItPl_Planeberry, 1);
CreateInvItems (self, ItFo_FishSoup, 1);
CreateInvItems (self, ItMi_gold, 19);
}
else if InventorySet ==0
{
CreateInvItems (self, ItPl_Mushroom_02, 3);
CreateInvItems (self, ItFo_Booze, 1);
CreateInvItems (self, ItMi_gold, 10);
CreateInvItems (self, ItFoMutton, 2);
};
};
func void B_CreateAmbientInv_KDF (var int InventorySet)
{
if InventorySet ==1
{
CreateInvItems (self, ItFoMutton, 1);
CreateInvItems (self, ItMi_Quartz, 1);
CreateInvItems (self, ItMi_Coal, 1);
CreateInvItems (self, ItMi_gold, 33);
}
else if InventorySet ==2
{
CreateInvItems (self, ItPo_Mana_02, 1);
CreateInvItems (self, ItMi_Sulfur, 1);
CreateInvItems (self, ItMi_Flask, 1);
CreateInvItems (self, ItMi_gold, 36);
}
else if InventorySet ==3
{
CreateInvItems (self, ItMi_SilverRing, 1);
CreateInvItems (self, ItPl_Mushroom_01, 1);
CreateInvItems (self, ItPl_Planeberry, 1);
CreateInvItems (self, ItMi_Rockcrystal, 1);
CreateInvItems (self, ItMi_gold, 30);
}
else if InventorySet ==4
{
CreateInvItems (self, ItFo_Sausage, 1);
CreateInvItems (self, ItPo_Health_03, 1);
CreateInvItems (self, ItFo_Booze, 1);
CreateInvItems (self, ItMi_gold, 36);
}
else if InventorySet ==5
{
CreateInvItems (self, ItPl_Health_Herb_01, 1);
CreateInvItems (self, ItPl_Mushroom_01, 1);
CreateInvItems (self, ItPl_Mana_Herb_01, 1);
CreateInvItems (self, ItMi_gold, 39);
}
else if InventorySet ==6
{
CreateInvItems (self, ItFo_Booze, 1);
CreateInvItems (self, ItMi_Sulfur, 1);
CreateInvItems (self, ItPl_Blueplant, 1);
CreateInvItems (self, ItMi_gold, 34);
}
else if InventorySet ==0
{
CreateInvItems (self, ItPl_Mushroom_02, 1);
CreateInvItems (self, ItMi_Quartz, 1);
CreateInvItems (self, ItMi_Pitch, 1);
CreateInvItems (self, ItMi_gold, 35);
};
};
func void B_CreateAmbientInv_MIL (var int InventorySet)
{
if InventorySet ==1
{
CreateInvItems (self, ItFoMutton, 3);
CreateInvItems (self, ItPl_Mushroom_01, 1);
CreateInvItems (self, ItFo_Stew, 1);
CreateInvItems (self, ItMi_gold, 15);
}
else if InventorySet ==2
{
CreateInvItems (self, ItPo_Health_01, 1);
CreateInvItems (self, ItPl_Health_Herb_01, 3);
CreateInvItems (self, ItFoMutton, 1);
CreateInvItems (self, ItMi_gold, 17);
}
else if InventorySet ==3
{
CreateInvItems (self, ItPl_Mushroom_01, 1);
CreateInvItems (self, ItPl_Health_Herb_01, 1);
CreateInvItems (self, ItMi_gold, 25);
}
else if InventorySet ==4
{
CreateInvItems (self, ItPl_Mushroom_01, 1);
CreateInvItems (self, ItFo_Sausage, 1);
CreateInvItems (self, ItMi_gold, 30);
}
else if InventorySet ==5
{
CreateInvItems (self, ItFo_Booze, 3);
CreateInvItems (self, ItFo_FishSoup, 1);
CreateInvItems (self, ItMi_gold, 14);
}
else if InventorySet ==6
{
CreateInvItems (self, ItPl_Health_Herb_01, 1);
CreateInvItems (self, ItFo_FishSoup, 1);
CreateInvItems (self, ItPl_Mushroom_02, 1);
CreateInvItems (self, ItMi_gold, 26);
}
else if InventorySet ==0
{
CreateInvItems (self, ItPl_Mushroom_02, 1);
CreateInvItems (self, ItFo_Booze, 1);
CreateInvItems (self, ItFo_Sausage, 3);
CreateInvItems (self, ItMi_gold, 25);
};
};
func void B_CreateAmbientInv_DJG (var int InventorySet)
{
if InventorySet ==1
{
CreateInvItems (self, ItFo_Wine, 1);
CreateInvItems (self, ItPl_Mana_Herb_01, 1);
CreateInvItems (self, ItFoMuttonRaw, 1);
CreateInvItems (self, ItAt_WolfFur, 1);
CreateInvItems (self, ItMi_gold, 39);
}
else if InventorySet ==2
{
CreateInvItems (self, ItFo_Milk, 1);
CreateInvItems (self, ItMi_Joint, 1);
CreateInvItems (self, ItPl_Health_Herb_02, 1);
CreateInvItems (self, ItMi_gold, 46);
}
else if InventorySet ==3
{
CreateInvItems (self, ItFo_Bacon, 1);
CreateInvItems (self, ItPl_Speed_Herb_01, 1);
CreateInvItems (self, ItAt_BugMandibles, 1);
CreateInvItems (self, ItMi_gold, 45);
}
else if InventorySet ==4
{
CreateInvItems (self, ItFoMutton, 1);
CreateInvItems (self, ItPl_SwampHerb, 1);
CreateInvItems (self, ItFo_Bacon, 1);
CreateInvItems (self, ItMi_gold, 44);
}
else if InventorySet ==5
{
CreateInvItems (self, ItFo_Stew, 1);
CreateInvItems (self, ItPl_Health_Herb_02, 1);
CreateInvItems (self, ItMi_Joint, 1);
CreateInvItems (self, ItMi_gold, 43);
}
else if InventorySet ==6
{
CreateInvItems (self, ItPo_Health_02, 1);
CreateInvItems (self, ItFo_Booze, 2);
CreateInvItems (self, ItFo_Wine, 1);
CreateInvItems (self, ItMi_gold, 46);
}
else if InventorySet ==0
{
CreateInvItems (self, ItFo_Sausage, 1);
CreateInvItems (self, ItFoMuttonRaw, 2);
CreateInvItems (self, ItAt_SheepFur, 1);
CreateInvItems (self, ItMi_gold, 41);
};
};
func void B_CreateAmbientInv_PAL (var int InventorySet)
{
if InventorySet ==1
{
CreateInvItems (self, ItFo_Wine, 1);
CreateInvItems (self, ItFo_Bacon, 1);
CreateInvItems (self, ItPl_Speed_Herb_01, 1);
CreateInvItems (self, ItMi_Pitch, 1);
CreateInvItems (self, ItMi_gold, 44);
}
else if InventorySet ==2
{
CreateInvItems (self, ItFo_Booze, 1);
CreateInvItems (self, ItFo_Milk, 1);
CreateInvItems (self, ItMi_Rockcrystal, 1);
CreateInvItems (self, ItPl_Mana_Herb_02, 1);
CreateInvItems (self, ItMi_gold, 42);
}
else if InventorySet ==3
{
CreateInvItems (self, ItFo_Bacon, 1);
CreateInvItems (self, ItPl_Mana_Herb_01, 2);
CreateInvItems (self, ItMi_Sulfur, 1);
CreateInvItems (self, ItPl_Dex_Herb_01, 1);
CreateInvItems (self, ItMi_gold, 23);
}
else if InventorySet ==4
{
CreateInvItems (self, ItMi_Rockcrystal, 1);
CreateInvItems (self, ItMi_SilverRing, 1);
CreateInvItems (self, ItMi_Pitch, 1);
CreateInvItems (self, ItPl_Health_Herb_03, 1);
CreateInvItems (self, ItMi_gold, 46);
}
else if InventorySet ==5
{
CreateInvItems (self, ItFo_Stew, 1);
CreateInvItems (self, ItPl_Health_Herb_02, 1);
CreateInvItems (self, ItMi_Rockcrystal, 1);
CreateInvItems (self, ItMi_gold, 43);
}
else if InventorySet ==6
{
CreateInvItems (self, ItPo_Health_02, 1);
CreateInvItems (self, ItPl_Speed_Herb_01, 2);
CreateInvItems (self, ItMi_Coal, 1);
CreateInvItems (self, ItMi_gold, 37);
}
else if InventorySet ==0
{
CreateInvItems (self, ItFo_Sausage, 1);
CreateInvItems (self, ItMi_Coal, 1);
CreateInvItems (self, ItPl_Health_Herb_02, 1);
CreateInvItems (self, ItMi_gold, 40);
};
};
func void B_CreateAmbientInv_DMT (var int InventorySet)
{
if (InventorySet == 1)
{
CreateInvItems (self, ItPo_Mana_01, 1);
CreateInvItems (self, ItMi_Pitch, 1);
CreateInvItems (self, ItMi_gold, 42);
}
else if (InventorySet == 2)
{
CreateInvItems (self, ItPo_Mana_02, 1);
CreateInvItems (self, ItMi_gold, 35);
CreateInvItems (self, ItMi_Aquamarine, 1);
}
else if (InventorySet == 3)
{
CreateInvItems (self, ItMi_Sulfur, 1);
CreateInvItems (self, ItMi_gold, 23);
CreateInvItems (self, ItPo_Mana_01, 1);
}
else if (InventorySet == 4)
{
CreateInvItems (self, ItMi_Rockcrystal, 1);
CreateInvItems (self, ItPo_Health_01, 1);
CreateInvItems (self, ItMi_gold, 46);
}
else if (InventorySet == 5)
{
CreateInvItems (self, ItMi_Quartz, 1);
CreateInvItems (self, ItMi_gold, 43);
CreateInvItems (self, ItPo_Health_02, 1);
}
else if (InventorySet == 6)
{
CreateInvItems (self, ItPo_Speed, 1);
CreateInvItems (self, ItMi_Coal, 1);
CreateInvItems (self, ItMi_gold, 37);
}
else if (InventorySet == 0)
{
CreateInvItems (self, ItMi_Rockcrystal, 1);
CreateInvItems (self, ItPo_Health_01, 1);
CreateInvItems (self, ItMi_gold, 40);
};
};
func void B_CreateAmbientInv_STRF (var int InventorySet)
{
if InventorySet ==1
{
CreateInvItems (self, ItPl_Planeberry, 1);
}
else if InventorySet ==2
{
CreateInvItems (self, ItFo_Apple, 1);
}
else if InventorySet ==3
{
CreateInvItems (self, ItFo_Beer, 1);
}
else if InventorySet ==4
{
CreateInvItems (self, ItFo_Cheese, 1);
}
else if InventorySet ==5
{
CreateInvItems (self, ItFo_Water, 1);
}
else if InventorySet ==6
{
CreateInvItems (self, ItPl_Forestberry, 1);
}
else if InventorySet ==0
{
CreateInvItems (self, ItFo_Bread, 1);
};
};

func void B_CreateAmbientInv_PIR (var int InventorySet)
{
if InventorySet ==1
{
CreateInvItems (self, ItPl_Planeberry, 1);
CreateInvItems (self, ITMW_1H_VLK_Sword,1);
CreateInvItems (self, ItFO_Addon_Grog,1);
CreateInvItems (self, ItPl_Health_Herb_02, 1);

}
else if InventorySet ==2
{
CreateInvItems (self, ItFo_Apple, 1);
CreateInvItems (self, ItFO_Addon_Grog,2);
CreateInvItems (self, ItMi_Gold,12);
CreateInvItems (self ,ItMi_Joint,3);
}
else if InventorySet ==3
{
CreateInvItems (self, ItFo_Beer, 1);
CreateInvItems (self ,ItPo_Health_01,1);
CreateInvItems (self ,ItMi_GoldRing,1);
}
else if InventorySet ==4
{
CreateInvItems (self, ItFo_Addon_Grog,2);
CreateInvItems (self, ItFo_Cheese, 1);
CreateInvItems (self ,itMi_Joint,1);
CreateInvItems (self ,ItMi_Gold,9);
}
else if InventorySet ==5
{
CreateInvItems (self, ItFo_Beer, 1);
CreateInvItems (self, ItFo_Addon_Rum,1);
CreateInvItems (self ,ItFo_Addon_Pfeffer_01,1);
}
else if InventorySet ==6
{
CreateInvItems (self ,ItMi_Gold, 23);
CreateInvItems (self, ItPl_Forestberry, 1);
CreateInvItems (self, ITMW_1H_VLK_Sword,1);
}
else if InventorySet ==0
{
CreateInvItems (self ,itFO_Fish,1);
CreateInvItems (self,ItFo_Addon_Grog,1);
CreateInvItems (self, ItFo_Bread, 1);
};
};

func void B_CreateAmbientInv_BDT (var int InventorySet)
{
if InventorySet ==1
{
CreateInvItems (self, ItPl_Planeberry, 1);
CreateInvItems (self, ITMW_1H_VLK_Sword,1);
CreateInvItems (self, Itke_Lockpick,2);
CreateInvItems (self, ItPl_Health_Herb_02, 1);

}
else if InventorySet ==2
{
CreateInvItems (self, ItFo_Apple, 1);
CreateInvItems (self, ItFO_Booze,2);
CreateInvItems (self ,ItMi_GoldNugget_Addon,1);
CreateInvItems (self ,ItMi_Joint,3);
}
else if InventorySet ==3
{
CreateInvItems (self, ItFo_Beer, 1);
CreateInvItems (self ,ItPo_Health_01,1);
CreateInvItems (self ,ItMi_SilverRing,1);
CreateInvItems (self, ItFO_Beer,2);
}
else if InventorySet ==4
{
CreateInvItems (self, ItKe_lockpick,1);
CreateInvItems (self, ItFo_Cheese, 1);
CreateInvItems (self ,itMi_Joint,1);
CreateInvItems (self ,ItMi_GoldNugget_Addon,1);
}
else if InventorySet ==5
{
CreateInvItems (self, ItFo_Beer, 1);
CreateInvItems (self, ItFo_Addon_Rum,1);
CreateInvItems (self ,ItFo_Fish,1);
CreateInvItems (self ,ItMi_GoldNugget_Addon,2);
}
else if InventorySet ==6
{
CreateInvItems (self ,ItMi_Gold, 23);
CreateInvItems (self, ItPl_Forestberry, 1);
CreateInvItems (self, ITMW_1H_VLK_Sword,1);
}
else if InventorySet ==0
{
CreateInvItems (self ,itFO_Fish,1);
CreateInvItems (self,ItFo_Addon_Grog,1);
CreateInvItems (self, ItFo_Bread, 1);
CreateInvItems (self, Itke_Lockpick, 3);
};
};


// Hier der NPC Befehl
func void B_CreateAmbientInv (var C_NPC slf)
{
var int Zufall;
Zufall = Hlp_Random (7);

if (slf.guild == GIL_VLK) { B_CreateAmbientInv_VLK (Zufall);}
else if (slf.guild == GIL_BAU) { B_CreateAmbientInv_BAU (Zufall); }
else if (slf.guild == GIL_NOV) { B_CreateAmbientInv_NOV (Zufall); }
else if (slf.guild == GIL_SLD) { B_CreateAmbientInv_SLD (Zufall); }
else if (slf.guild == GIL_KDF) { B_CreateAmbientInv_KDF (Zufall); }
else if (slf.guild == GIL_MIL) { B_CreateAmbientInv_MIL (Zufall); }
else if (slf.guild == GIL_DJG) { B_CreateAmbientInv_DJG (Zufall); }
else if (slf.guild == GIL_PAL) { B_CreateAmbientInv_PAL (Zufall); }
else if (slf.guild == GIL_DMT) { B_CreateAmbientInv_DMT (Zufall); }
else if (slf.guild == GIL_STRF) { B_CreateAmbientInv_STRF(Zufall); }
else if (slf.guild == GIL_PIR) { B_CreateAmbientInv_PIR(Zufall); }
else if (slf.guild == GIL_BDT) { B_CreateAmbientInv_BDT(Zufall); }
else { B_CreateAmbientInv_BAU (Zufall); };

};



Na samym dole skryptu znajduje się najważniejsza część.
Gdy chcemy, aby NPC miał jakiś zestaw ekwipunku, to dodajemy mu  w skrypcie:
B_CreateAmbientInv (self);
Mój skrypt wygląda tak: (plik z tym skryptem nazwałem  B_CreateAmbientInv.d, i umieściłem w Story\B, ten z GII jest w NPC Scripts, ale w GI nie ma takiego folderu)
Spoiler
func void B_CreateAmbientInv
{
CreateInvItems (self, ItFoApple, 7);
CreateInvItems (self, ItFoCheese, 3);
CreateInvItem  (self, Die_Gruft);
CreateInvItem  (self, ItAt_Swampshark_01);
CreateInvItem  (self, ItMw_2H_Sword_Heavy_01);
};
Jest to  mocno uproszczona wersja tego z GII. NPC dodaję ekwipunek tak  samo jak w GII, czyli wstawiam im w skrypt B_CreateAmbientInv.
Wyskakuje masa błędów, najważniejszy z nich to Unknown identifier, czyli nie przypisania do zmiennej. Wyskakuje mi ten błąd przy sprawdzaniu skryptów NPC. Chciałem ustalić taką zmienną, jednak w skryptach GII nie znalazłem innego pliku, w którym jest B_CreateAmbientInv, niż ten, który wkleiłem.
Ma ktoś pomysł jak to zrobić?

13
Ukończone modyfikacje / Budzis Skrypt Mod
« dnia: 2013-05-22, 08:38 »
No tak, ale wolałbym dowiedzieć się jak to zrobić. :)  Oczywiście wzmianka o nim zostanie zamieszczona. (O ile będzie w czym, bo nie wiem czy to co robię w ogóle ujrzy światło dzienne.)

14
Ukończone modyfikacje / Budzis Skrypt Mod
« dnia: 2013-05-22, 08:28 »
Mógłbym wiedzieć jak usunąłeś sześciany z lasów i bagien? Nie mogę znaleźć o tym poradnika/tutoriala/wytłumaczenie w google.

15
Skrypty / Problem z monologiem
« dnia: 2013-05-20, 20:37 »
Mam też inny pomysł, chodzi o to, że w skryptach kowalstwa z MT jest taki dopisek:
func void smith()
{
//Edit By Fenix
self.aivar[AIV_INVINCIBLE] = FALSE;
/////////////////
PrintScreen("Właśnie wykułeś miecz.",-1,-1,"font_old_20_white.tga",3);
MOBUSE = 0;
PrintGlobals(PD_ITEM_MOBSI);
Npc_SendPassivePerc(hero,PERC_ASSESSENTERROOM,NULL,hero);
};
Mam na myśli dokładnie te dwie linijki:
PrintGlobals(PD_ITEM_MOBSI);
Npc_SendPassivePerc(hero,PERC_ASSESSENTERROOM,NULL,hero);
Czy ktoś wie za co one odpowiadają? Mam taką małą nadzieję, że właśnie za "zneutralizowanie" zamiany rozgrzaneej stali na ostrze.

Tutaj jest cały skrypt z MT:
Spoiler

//**************************************************************
// Made by Shergar   *
//**************************************************************
//Edit By Fenix

var int str_improve;

func string NotEnoughtAttribute (var C_NPC slf, var int Att_Str, var int Att_Dex)
{
var string msg;

var int HowManySkillsAreMissing;
HowManySkillsAreMissing = 0;

var int Str_Mis;
var int Dex_Mis;

var string msg_Str;
if (slf.attribute[ATR_STRENGTH] < Att_Str)
{
HowManySkillsAreMissing += 1;
msg_Str = ConcatStrings (" Siły: ",IntToString (Att_Str-slf.attribute[ATR_STRENGTH]));
};

var string msg_Dex;
if (slf.attribute[ATR_DEXTERITY] < Att_Dex)
{
HowManySkillsAreMissing += 1;
msg_Dex = ConcatStrings (" Zręczności: ",IntToString (Att_Dex-slf.attribute[ATR_DEXTERITY]));
};

msg = "Brakuje ci";
msg = ConcatStrings (msg,msg_Str);

if (HowManySkillsAreMissing >= 2)
{
msg = ConcatStrings (msg,"i");
};

msg = ConcatStrings (msg,msg_Dex);

//(hero.attribute[ATR_STRENGTH] >= 60) && (hero.attribute[ATR_DEXTERITY] >= 40)

return msg;
};

func void smith()
{
//Edit By Fenix
self.aivar[AIV_INVINCIBLE] = FALSE;
/////////////////
PrintScreen("Właśnie wykułeś miecz.",-1,-1,"font_old_20_white.tga",3);
MOBUSE = 0;
PrintGlobals(PD_ITEM_MOBSI);
Npc_SendPassivePerc(hero,PERC_ASSESSENTERROOM,NULL,hero);
STR_IMPROVE = STR_IMPROVE + 1;
if(STR_IMPROVE == 10)
{
Npc_ChangeAttribute(self,ATR_STRENGTH,1);
PrintScreen("Siła + 1",-1,-1,"FONT_OLD_20_WHITE.TGA",3);
};
if(STR_IMPROVE == 20)
{
Npc_ChangeAttribute(self,ATR_STRENGTH,2);
PrintScreen("Siła + 2",-1,-1,"FONT_OLD_20_WHITE.TGA",3);
};
if(STR_IMPROVE == 30)
{
Npc_ChangeAttribute(self,ATR_STRENGTH,3);
PrintScreen("Siła + 3",-1,-1,"FONT_OLD_20_WHITE.TGA",3);
};
if(STR_IMPROVE == 50)
{
Npc_ChangeAttribute(self,ATR_STRENGTH,4);
PrintScreen("Siła + 4",-1,-1,"FONT_OLD_20_WHITE.TGA",3);
};
if(STR_IMPROVE == 100)
{
Npc_ChangeAttribute(self,ATR_STRENGTH,5);
PrintScreen("Siła + 5",-1,-1,"FONT_OLD_20_WHITE.TGA",3);
};
if(STR_IMPROVE == 500)
{
Npc_ChangeAttribute(self,ATR_STRENGTH,10);
PrintScreen("Siła + 10",-1,-1,"FONT_OLD_20_WHITE.TGA",3);
};
if(STR_IMPROVE == 1000)
{
Npc_ChangeAttribute(self,ATR_STRENGTH,20);
PrintScreen("Siła + 20",-1,-1,"FONT_OLD_20_WHITE.TGA",3);
};
if(STR_IMPROVE == 10000)
{
Npc_ChangeAttribute(self,ATR_STRENGTH,30);
PrintScreen("Siła + 30",-1,-1,"FONT_OLD_20_WHITE.TGA",3);
};
};

func void smithery_s1()
{
var C_Npc him;
var C_Npc rocker;
MOBUSE = SMITHERY_USING;
him = Hlp_GetNpc(PC_Hero);
rocker = Hlp_GetNpc(PC_Rockefeller);
if((Hlp_GetInstanceID(self) == Hlp_GetInstanceID(him)) || (Hlp_GetInstanceID(self) == Hlp_GetInstanceID(rocker)))
{
self.aivar[AIV_INVINCIBLE] = TRUE;
AI_ProcessInfos(him);
};
};


instance NOSMITH1(C_Info)
{
npc = PC_Hero;
nr = 999;
condition = nosmith1_condition;
information = nosmith1_info;
important = 0;
permanent = 1;
description = "Nie potrafisz użyć kowadła.";
};


func int nosmith1_condition()
{
if (MOBUSE == SMITHERY_USING) && (Npc_GetTalentSkill(hero, NPC_TALENT_SMITH) == 0)
{
return 1;
};
};

func void nosmith1_info()
{
AI_StopProcessInfos (self);
MOBUSE = 0;
self.aivar[AIV_INVINCIBLE] = FALSE;
};


instance NOSMITH(C_Info)
{
npc = PC_Hero;
nr = 999;
condition = nosmith_condition;
information = nosmith_info;
important = 0;
permanent = 1;
description = "Odejdź od kowadła.";
};


func int nosmith_condition()
{
if (MOBUSE == SMITHERY_USING) && (Npc_GetTalentSkill(hero, NPC_TALENT_SMITH) >= 1)
{
return 1;
};
};

func void nosmith_info()
{
AI_StopProcessInfos (self);
MOBUSE = 0;
self.aivar[AIV_INVINCIBLE] = FALSE;
};

//Edit By Fenix
instance FeSMITH(C_Info)
{
npc = PC_Hero;
condition = FeSMITH_condition;
information = FeSMITH_info;
important = 0;
permanent = 1;
description = "Przekłuj wszystkie rozgrzane pręty.";
};


func int FeSMITH_condition()
{
if (MOBUSE == SMITHERY_USING) && (Npc_GetTalentSkill(hero, NPC_TALENT_SMITH) > 0) && (NPC_HasItems(hero,ItMiSwordrawhot)>=1)
{
return 1;
};
};

func void FeSMITH_info()
{
CreateInvItems(hero,ItMiSwordbladehot,NPC_HasItems(hero,ItMiSwordrawhot));

Npc_RemoveInvItems(hero,ItMiSwordrawhot,NPC_HasItems(hero,ItMiSwordrawhot));

AI_StopProcessInfos (self);
MOBUSE = 0;
self.aivar[AIV_INVINCIBLE] = FALSE;
};
///////////////

instance FIRSTSWORD(C_Info)
{
npc = PC_Hero;
condition = firstsword_condition;
information = firstsword_info;
important = 0;
permanent = 1;
description = "Wykuj długi miecz.";
};


func int firstsword_condition()
{
if (MOBUSE == SMITHERY_USING) && (Npc_GetTalentSkill(hero, NPC_TALENT_SMITH) >= 1)
{
return 1;
};
};

func void firstsword_info()
{
if (Npc_HasItems(hero,ItMiSwordblade) >= 1) && (Npc_HasItems(hero,ItMw_1H_Sledgehammer_01) >= 1) && (Npc_HasItems(hero,ItMiSwordraw) >= 2)
{
if (hero.attribute[ATR_STRENGTH] >= 60) && (hero.attribute[ATR_DEXTERITY] >= 40)
{
AI_StopProcessInfos (self);
Npc_RemoveInvItems(hero,ItMiSwordblade,1);
Npc_RemoveInvItems(hero,ItMiSwordraw,2);
CreateInvItems(hero,goodlongsword,1);
B_GiveXP(XP / 5);
smith();
}
else
{
AI_StopProcessInfos (self);
PrintScreen(NotEnoughtAttribute(hero,60,40),-1,-1,"font_old_20_white.tga",6);
MOBUSE = 0;
};
}
else
{
AI_StopProcessInfos (self);
PrintScreen("Nie masz wszystkich komponentów.",-1,-1,"font_old_20_white.tga",3);
MOBUSE = 0;
};
};


instance GOODSWORD(C_Info)
{
npc = PC_Hero;
condition = goodsword_condition;
information = goodsword_info;
important = 0;
permanent = 1;
description = "Wykuj jednoręczny miecz z magicznej rudy.";
};


func int goodsword_condition()
{
if (MOBUSE == SMITHERY_USING) && (Npc_GetTalentSkill(hero, NPC_TALENT_SMITH) >= 1)
{
return 1;
};
};

func void goodsword_info()
{
if (Npc_HasItems(hero,ItMiSwordblade) >= 1) && (Npc_HasItems(hero,ItMw_1H_Sledgehammer_01) >= 1) && (Npc_HasItems(hero,ItMiNugget) >= 100) && (Npc_HasItems(hero,ItMiSwordraw) >= 1)
{
if (hero.attribute[ATR_STRENGTH] >= 60) && (hero.attribute[ATR_DEXTERITY] >= 60)
{
AI_StopProcessInfos (self);
Npc_RemoveInvItems(hero,ItMiSwordblade,1);
Npc_RemoveInvItems(hero,ItMiNugget,100);
Npc_RemoveInvItems(hero,ItMiSwordraw,1);
CreateInvItems(hero,magicoresword,1);
B_GiveXP(XP / 4);
smith();
}
else
{
AI_StopProcessInfos (self);
PrintScreen(NotEnoughtAttribute(hero,60,60),-1,-1,"font_old_20_white.tga",6);
MOBUSE = 0;
};
}
else
{
AI_StopProcessInfos (self);
PrintScreen("Nie masz wszystkich komponentów.",-1,-1,"font_old_20_white.tga",3);
MOBUSE = 0;
};
};


instance SM_GOODSWORD2H(C_Info)
{
npc = PC_Hero;
condition = sm_goodsword2h_condition;
information = sm_goodsword2h_info;
important = 0;
permanent = 1;
description = "Wykuj dwuręczny miecz z magicznej rudy.";
};


func int sm_goodsword2h_condition()
{
if (MOBUSE == SMITHERY_USING) && (Npc_GetTalentSkill(hero, NPC_TALENT_SMITH) >= 3)
{
return 1;
};
};

func void sm_goodsword2h_info()
{
if (Npc_HasItems(hero,ItMiSwordblade) >= 3) && (Npc_HasItems(hero,ItMw_1H_Sledgehammer_01) >= 1) && (Npc_HasItems(hero,ItMiNugget) >= 200) && (Npc_HasItems(hero,ItMiSwordraw) >= 2)
{
if (hero.attribute[ATR_STRENGTH] >= 80) && (hero.attribute[ATR_DEXTERITY] >= 80)
{
AI_StopProcessInfos (self);
Npc_RemoveInvItems(hero,ItMiSwordblade,2);
Npc_RemoveInvItems(hero,ItMiNugget,200);
Npc_RemoveInvItems(hero,ItMiSwordraw,2);
CreateInvItems(hero,magicoresword2h,1);
B_GiveXP(XP / 2);
smith();
}
else
{
AI_StopProcessInfos (self);
PrintScreen(NotEnoughtAttribute(hero,80,80),-1,-1,"font_old_20_white.tga",6);
MOBUSE = 0;
};
}
else
{
AI_StopProcessInfos (self);
PrintScreen("Nie masz wszystkich komponentów.",-1,-1,"font_old_20_white.tga",3);
MOBUSE = 0;
};
};


instance SM_AXE1H(C_Info)
{
npc = PC_Hero;
condition = sm_axe1h_condition;
information = sm_axe1h_info;
important = 0;
permanent = 1;
description = "Wykuj dobry jednoręczny topór.";
};


func int sm_axe1h_condition()
{
if (MOBUSE == SMITHERY_USING) && (Npc_GetTalentSkill(hero, NPC_TALENT_SMITH) >= 2)
{
return 1;
};
};

func void sm_axe1h_info()
{
if (Npc_HasItems(hero,ItMiSwordblade) >= 2) && (Npc_HasItems(hero,ItMw_1H_Sledgehammer_01) >= 1) /*&& (Npc_HasItems(hero,ItMiNugget) >= 100)*/ && (Npc_HasItems(hero,ItMiSwordraw) >= 2)
{
if (hero.attribute[ATR_STRENGTH] >= 60) && (hero.attribute[ATR_DEXTERITY] >= 50)
{
AI_StopProcessInfos (self);
Npc_RemoveInvItems(hero,ItMiSwordblade,2);
//Npc_RemoveInvItems(hero,ItMiNugget,100);
Npc_RemoveInvItems(hero,ItMiSwordraw,2);
CreateInvItems(hero,axe1h,1);
B_GiveXP(XP / 4);
smith();
}
else
{
AI_StopProcessInfos (self);
PrintScreen(NotEnoughtAttribute(hero,60,50),-1,-1,"font_old_20_white.tga",6);
MOBUSE = 0;
};
}
else
{
AI_StopProcessInfos (self);
PrintScreen("Nie masz wszystkich komponentów.",-1,-1,"font_old_20_white.tga",3);
MOBUSE = 0;
};
};


instance SM_AXE2H(C_Info)
{
npc = PC_Hero;
condition = sm_axe2h_condition;
information = sm_axe2h_info;
important = 0;
permanent = 1;
description = "Wykuj dobry dwuręczny topór.";
};


func int sm_axe2h_condition()
{
if (MOBUSE == SMITHERY_USING) && (Npc_GetTalentSkill(hero, NPC_TALENT_SMITH) >= 3)
{
return 1;
};
};

func void sm_axe2h_info()
{
if (Npc_HasItems(hero,ItMiSwordblade) >= 3) && (Npc_HasItems(hero,ItMw_1H_Sledgehammer_01) >= 1) && (Npc_HasItems(hero,ItMiNugget) >= 200) && (Npc_HasItems(hero,ItMiSwordraw) >= 4)
{
if (hero.attribute[ATR_STRENGTH] >= 80) && (hero.attribute[ATR_DEXTERITY] >= 70)
{
AI_StopProcessInfos (self);
Npc_RemoveInvItems(hero,ItMiSwordblade,3);
Npc_RemoveInvItems(hero,ItMiNugget,200);
Npc_RemoveInvItems(hero,ItMiSwordraw,4);
CreateInvItems(hero,axe2h,1);
B_GiveXP(XP / 2);
smith();
}
else
{
AI_StopProcessInfos (self);
PrintScreen(NotEnoughtAttribute(hero,80,70),-1,-1,"font_old_20_white.tga",6);
MOBUSE = 0;
};
}
else
{
AI_StopProcessInfos (self);
PrintScreen("Nie masz wszystkich komponentów.",-1,-1,"font_old_20_white.tga",3);
MOBUSE = 0;
};
};


var int noname;

instance SM_NONAME_SWORD2H(C_Info)
{
npc = PC_Hero;
condition = sm_noname_sword2h_condition;
information = sm_noname_sword2h_info;
important = 0;
permanent = 1;
description = "Wykuj własny miecz dwuręczny.";
};


func int sm_noname_sword2h_condition()
{
if (MOBUSE == SMITHERY_USING) && (Npc_GetTalentSkill(hero, NPC_TALENT_SMITH) >= 4 )
{
return 1;
};
};

func void sm_noname_sword2h_info()
{
if (Npc_HasItems(hero,ItMiSwordblade) >= 6) && (Npc_HasItems(hero,ItMw_1H_Sledgehammer_01) >= 1) && (Npc_HasItems(hero,ItMiNugget) >= 5000) && (Npc_HasItems(hero,ItMiSwordraw) >= 10)
{
if (hero.attribute[ATR_STRENGTH] >= 100) && (hero.attribute[ATR_DEXTERITY] >= 100)
{
AI_StopProcessInfos (self);
Npc_RemoveInvItems(hero,ItMiSwordblade,6);
Npc_RemoveInvItems(hero,ItMiNugget,5000);
Npc_RemoveInvItems(hero,ItMiSwordraw,10);
CreateInvItems(hero,noname_sword2h,1);
B_GiveXP(XP * 15);
smith();
NONAME = NONAME + 1;
}
else if (hero.attribute[ATR_STRENGTH] < 100) && (hero.attribute[ATR_DEXTERITY] < 100)
{
AI_StopProcessInfos (self);
PrintScreen(NotEnoughtAttribute(hero,100,100),-1,-1,"font_old_20_white.tga",6);
MOBUSE = 0;
}
else if(NONAME > 0)
{
AI_StopProcessInfos (self);
PrintScreen("Możesz wykuć tylko jeden osobisty oręż.",-1,-1,"font_old_20_white.tga",3);
MOBUSE = 0;
};
}
else
{
AI_StopProcessInfos (self);
PrintScreen("Nie masz wszystkich komponentów.",-1,-1,"font_old_20_white.tga",3);
MOBUSE = 0;
};
};


instance SM_NONAME_SWORD1H(C_Info)
{
npc = PC_Hero;
condition = sm_noname_sword1h_condition;
information = sm_noname_sword1h_info;
important = 0;
permanent = 1;
description = "Wykuj własny jednoręczny miecz.";
};


func int sm_noname_sword1h_condition()
{
if (MOBUSE == SMITHERY_USING) && (Npc_GetTalentSkill(hero, NPC_TALENT_SMITH) >= 4)

{
return 1;
};
};

func void sm_noname_sword1h_info()
{
if (Npc_HasItems(hero,ItMiSwordblade) >= 4) && (Npc_HasItems(hero,ItMw_1H_Sledgehammer_01) >= 1) && (Npc_HasItems(hero,ItMiNugget) >= 3000) && (Npc_HasItems(hero,ItMiSwordraw) >= 8)
{
if (hero.attribute[ATR_STRENGTH] >= 90) && (hero.attribute[ATR_DEXTERITY] >= 100)
{
AI_StopProcessInfos (self);
Npc_RemoveInvItems(hero,ItMiSwordblade,4);
Npc_RemoveInvItems(hero,ItMiNugget,3000);
Npc_RemoveInvItems(hero,ItMiSwordraw,8);
CreateInvItems(hero,noname_sword1h,1);
B_GiveXP(XP * 10);
smith();
NONAME = NONAME + 1;
}
else if (hero.attribute[ATR_STRENGTH] < 90) && (hero.attribute[ATR_DEXTERITY] < 100)
{
AI_StopProcessInfos (self);
PrintScreen(NotEnoughtAttribute(hero,90,100),-1,-1,"font_old_20_white.tga",6);
MOBUSE = 0;
}
else if(NONAME > 0)
{
AI_StopProcessInfos (self);
PrintScreen("Możesz wykuć tylko jeden osobisty oręż.",-1,-1,"font_old_20_white.tga",3);
MOBUSE = 0;
};
}
else
{
AI_StopProcessInfos (self);
PrintScreen("Nie masz wszystkich komponentów.",-1,-1,"font_old_20_white.tga",3);
MOBUSE = 0;
};
};


instance SM_NONAME_AXE(C_Info)
{
npc = PC_Hero;
condition = sm_noname_axe_condition;
information = sm_noname_axe_info;
important = 0;
permanent = 1;
description = "Wykuj własny dwuręczny topór.";
};


func int sm_noname_axe_condition()
{
if (MOBUSE == SMITHERY_USING) && (Npc_GetTalentSkill(hero, NPC_TALENT_SMITH) >= 4)

{
return 1;
};
};

func void sm_noname_axe_info()
{
if (Npc_HasItems(hero,ItMiSwordblade) >= 8) && (Npc_HasItems(hero,ItMw_1H_Sledgehammer_01) >= 1) && (Npc_HasItems(hero,ItMiNugget) >= 8000) && (Npc_HasItems(hero,ItMiSwordraw) >= 16)
{
if (hero.attribute[ATR_STRENGTH] >= 80) && (hero.attribute[ATR_DEXTERITY] >= 70)
{
AI_StopProcessInfos (self);
Npc_RemoveInvItems(hero,ItMiSwordblade,8);
Npc_RemoveInvItems(hero,ItMiNugget,8000);
Npc_RemoveInvItems(hero,ItMiSwordraw,16);
CreateInvItems(hero,noname_axe,1);
B_GiveXP(XP * 20);
smith();
NONAME = NONAME + 1;
}
else if (hero.attribute[ATR_STRENGTH] < 80) && (hero.attribute[ATR_DEXTERITY] < 70)
{
AI_StopProcessInfos (self);
PrintScreen(NotEnoughtAttribute(hero,80,70),-1,-1,"font_old_20_white.tga",6);
MOBUSE = 0;
}
else if(NONAME > 0)
{
AI_StopProcessInfos (self);
PrintScreen("Możesz wykuć tylko jeden osobisty oręż.",-1,-1,"font_old_20_white.tga",3);
MOBUSE = 0;
};
}
else
{
AI_StopProcessInfos (self);
PrintScreen("Nie masz wszystkich komponentów.",-1,-1,"font_old_20_white.tga",3);
MOBUSE = 0;
};
};

instance SM_URIZIEL_1H(C_Info)
{
npc = PC_Hero;
condition = SM_URIZIEL_1H_condition;
information = SM_URIZIEL_1H_info;
important = 0;
permanent = 1;
description = "Przekuj Uriziel w miecz jednoręczny (25000 bryłek rudy).";
};


func int SM_URIZIEL_1H_condition()
{
if (Npc_HasItems(hero,Mythrilklinge02) >= 1)
&& (MOBUSE == SMITHERY_USING) && (Npc_GetTalentSkill(hero, NPC_TALENT_SMITH) >= 4)

{
return 1;
};
};

func void SM_URIZIEL_1H_info()
{
if (Npc_HasItems(hero,ItMw_1H_Sledgehammer_01) >= 1) && (Npc_HasItems(hero,ItMiNugget) >= 25000)
{
if (hero.attribute[ATR_STRENGTH] >= 120) && (hero.attribute[ATR_DEXTERITY] >= 100)
{
AI_StopProcessInfos (self);
Npc_RemoveInvItems(hero,ItMiNugget,25000);
Npc_RemoveInvItems(hero,Mythrilklinge02,1);
CreateInvItems(hero,uriziel_1h,1);
B_GiveXP(XP * 50);
smith();
}
else if (hero.attribute[ATR_STRENGTH] < 120) && (hero.attribute[ATR_DEXTERITY] < 100)
{
AI_StopProcessInfos (self);
PrintScreen(NotEnoughtAttribute(hero,120,100),-1,-1,"font_old_20_white.tga",6);
MOBUSE = 0;
};
}
else
{
AI_StopProcessInfos (self);
PrintScreen("Nie masz wszystkich komponentów.",-1,-1,"font_old_20_white.tga",3);
MOBUSE = 0;
};
};


16
Skrypty / Problem z monologiem
« dnia: 2013-05-20, 08:28 »
No to napiszę prosto z mostu. Czy ktoś ma jakiś pomysł, jak mam zrobić tak, aby podczas korzystania z kowadła wyświetlała nam się rozgrzana stal w prawej ręce, ale nie zabierało nam jej, i nie dawało rozgrzanego ostrza? Ustawiając inne rzeczy na UseWithItem w Spacerze, nasz bohater korzysta z innego itemu w prawej ręce, a gdy usunąłem skryptu rozgrzanego ostrza, to zabierało nam kawałek rozgrzanej stali i nie dawało nic, ale mi chodzi o to, że postać ma trzymać w ręce rozgrzaną stal, ale jej nie zużywać, i nie dostawać rozgrzanego ostrza. Jeżeli usunę skrypty rozgrzanej stali, albo w UseWithIItem nie dam nic, to postać będzie miała prawą rękę pustą, a w lewej będzie młot. Wiem, że takie coś jest możliwe, ponieważ tak jest w Mrocznych Tajemnicach, problem w tym, że od dwóch tygodni próbuję to zrobić, i nie wiem jak.
Jeżeli ktoś uzna to za przydatne, to oto pliki, które odkopałem w GothicVDFS, plik .asc mam z Gothic Sourucer'a.

BSANVIL_OC.MDS (C:\Program Files\Piranha Bytes\Gothic\_Work\Data\Anims\MDS_MOBSI)
Spoiler
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Last Changes:
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


Model ("BSANVIL_OC")
{

meshAndTree ("BSANVIL_OC.asc")
aniEnum
{
ani ("s_S0" 1 "s_S0" 0.0 0.0 M. "BSANVIL_OC_USE.asc" F 3 3)
ani ("t_S0_2_S1" 1 "s_S1" 0.0 0.0 M. "BSANVIL_OC_USE.asc" F 4 9)
ani ("s_S1" 1 "s_S1" 0.0 0.0 M. "BSANVIL_OC_USE.asc" F 10 47)
{
*eventSFX (30 "Forge_Anvil")
*eventPFX (30   1 "ANVIL_SPARKS" "BIP01 PFX_SPARK")
*eventSFX (38 "Forge_Anvil")
}
ani ("t_S1_2_S0" 1 "s_S0" 0.0 0.0 M. "BSANVIL_OC_USE.asc" R 4 9)
}
}
BSANVIL_OC.ASC (C:\Program Files\GothicSourcer V3.10\Gothic Projects\Anims\asc_bsanvil_oc)
Spoiler
*3DSMAX_ASCIIEXPORT 110
*COMMENT "[ GothicSourcer v3.10 ] - August 2006"
*SCENE {
*SCENE_FILENAME "BSANVIL_OC.MAX"
*SCENE_FIRSTFRAME 0
*SCENE_LASTFRAME 100
*SCENE_FRAMESPEED 25
*SCENE_TICKSPERFRAME 192
*SCENE_BACKGROUND_STATIC 0 0 0
*SCENE_AMBIENT_STATIC 0.2 0.2 0.2
}
*MATERIAL_LIST {
*MATERIAL_COUNT 1
*MATERIAL 0 {
*MATERIAL_NAME "Compound Material #1"
*MATERIAL_CLASS "Multi/Sub-Object"
*NUMSUBMTLS 2
*SUBMATERIAL 0 {
*MATERIAL_NAME "MATERIAL #5"
*MATERIAL_CLASS "Standard"
*MATERIAL_AMBIENT 0.341176 0.356863 0.345098
*MATERIAL_DIFFUSE 0.341176 0.356863 0.345098
*MATERIAL_SPECULAR 0.9 0.9 0.9
*MATERIAL_SHINE 0.1
*MATERIAL_SHINESTRENGTH 0
*MATERIAL_TRANSPARENCY 0
*MATERIAL_WIRESIZE 1
*MATERIAL_SHADING Blinn
*MATERIAL_XP_FALLOFF 0
*MATERIAL_SELFILLUM 0
*MATERIAL_FALLOFF In
*MATERIAL_XP_TYPE Filter
*MAP_DIFFUSE {
*MAP_NAME "Map #1-1"
*MAP_CLASS "Bitmap"
*MAP_SUBNO 1
*MAP_AMOUNT 1
*BITMAP "MOMEMETALS01.TGA"
*MAP_TYPE Screen
*UVW_U_OFFSET 0
*UVW_V_OFFSET 0
*UVW_U_TILING 1
*UVW_V_TILING 1
*UVW_ANGLE 0
*UVW_BLUR 1
*UVW_BLUR_OFFSET 0
*UVW_NOUSE_AMT 1
*UVW_NOISE_SIZE 1
*UVW_NOISE_LEVEL 1
*UVW_NOISE_PHASE 0
*BITMAP_FILTER Pyramidal
}
}
*SUBMATERIAL 1 {
*MATERIAL_NAME "MATERIAL #1"
*MATERIAL_CLASS "Standard"
*MATERIAL_AMBIENT 0.2 0.145098 0.113725
*MATERIAL_DIFFUSE 0.2 0.145098 0.113725
*MATERIAL_SPECULAR 0.9 0.9 0.9
*MATERIAL_SHINE 0.1
*MATERIAL_SHINESTRENGTH 0
*MATERIAL_TRANSPARENCY 0
*MATERIAL_WIRESIZE 1
*MATERIAL_SHADING Blinn
*MATERIAL_XP_FALLOFF 0
*MATERIAL_SELFILLUM 0
*MATERIAL_FALLOFF In
*MATERIAL_XP_TYPE Filter
*MAP_DIFFUSE {
*MAP_NAME "Map #1-2"
*MAP_CLASS "Bitmap"
*MAP_SUBNO 1
*MAP_AMOUNT 1
*BITMAP "MOWOWOODS01.TGA"
*MAP_TYPE Screen
*UVW_U_OFFSET 0
*UVW_V_OFFSET 0
*UVW_U_TILING 1
*UVW_V_TILING 1
*UVW_ANGLE 0
*UVW_BLUR 1
*UVW_BLUR_OFFSET 0
*UVW_NOUSE_AMT 1
*UVW_NOISE_SIZE 1
*UVW_NOISE_LEVEL 1
*UVW_NOISE_PHASE 0
*BITMAP_FILTER Pyramidal
}
}
}
}
*HELPEROBJECT {
*NODE_NAME "Bip01 Anvil"
*NODE_TM {
*NODE_NAME "Bip01 Anvil"
*TM_ROW0 2.08616e-007 1 -5.96046e-008
*TM_ROW1 -5.96046e-008 2.08616e-007 1
*TM_ROW2 1 -5.96046e-008 2.08616e-007
*TM_ROW3 3e-006 -75 -3e-006
*TM_POS 3e-006 -75 -3e-006
*TM_ROTAXIS -0.57735 -0.57735 -0.57735
*TM_ROTANGLE 2.09439
*TM_SCALE 1 1 1
*TM_SCALEAXIS 0 0 0
*TM_SCALEAXISANG 0 0 0
}
}
*HELPEROBJECT {
*NODE_NAME "Bip01 Pfx_Spark"
*NODE_PARENT "Bip01 Anvil"
*NODE_TM {
*NODE_NAME "Bip01 Pfx_Spark"
*TM_ROW0 1 -8.88154e-016 -3.55269e-015
*TM_ROW1 -3.55269e-015 1 -8.88154e-016
*TM_ROW2 -8.88154e-016 -3.55269e-015 1
*TM_ROW3 -15.9324 -66.9912 101.029
*TM_POS -15.9324 -66.9912 101.029
*TM_ROTAXIS 0 0 0
*TM_ROTANGLE 0
*TM_SCALE 1 1 1
*TM_SCALEAXIS 0 0 0
*TM_SCALEAXISANG 0 0 0
}
}
*HELPEROBJECT {
*NODE_NAME "ZS_POS0"
*NODE_PARENT "Bip01 Anvil"
*NODE_TM {
*NODE_NAME "ZS_POS0"
*TM_ROW0 -1 -1.27952e-006 8.76346e-015
*TM_ROW1 1.27952e-006 -1 -2.19045e-015
*TM_ROW2 -8.88154e-016 -3.55269e-015 1
*TM_ROW3 -2.91738e-012 -7.37744 97.7178
*TM_POS -2.91738e-012 -7.37744 97.7178
*TM_ROTAXIS -1.96883e-015 1.43579e-015 -1
*TM_ROTANGLE 3.14159
*TM_SCALE 1 1 1
*TM_SCALEAXIS 0 0 0
*TM_SCALEAXISANG 0 0 0
}
}
*HELPEROBJECT {
*NODE_NAME "ZS_POS1"
*NODE_PARENT "Bip01 Anvil"
*NODE_TM {
*NODE_NAME "ZS_POS1"
*TM_ROW0 1 -8.88154e-016 -3.55269e-015
*TM_ROW1 -3.55269e-015 1 -8.88154e-016
*TM_ROW2 -8.88154e-016 -3.55269e-015 1
*TM_ROW3 -38.3383 -141.993 97.7178
*TM_POS -38.3383 -141.993 97.7178
*TM_ROTAXIS 0 0 0
*TM_ROTANGLE 0
*TM_SCALE 1 1 1
*TM_SCALEAXIS 0 0 0
*TM_SCALEAXISANG 0 0 0
}
}
*GEOMOBJECT {
*NODE_NAME "zm_Frill"
*NODE_PARENT "Bip01 Anvil"
*NODE_TM {
*NODE_NAME "zm_Frill"
*TM_ROW0 2.08616e-007 1 -5.96046e-008
*TM_ROW1 -5.96046e-008 2.08616e-007 1
*TM_ROW2 1 -5.96046e-008 2.08616e-007
*TM_ROW3 3e-006 -75 -3e-006
*TM_POS 3e-006 -75 -3e-006
*TM_ROTAXIS -0.57735 -0.57735 -0.57735
*TM_ROTANGLE 2.09439
*TM_SCALE 1 1 1
*TM_SCALEAXIS 0 0 0
*TM_SCALEAXISANG 0 0 0
}
*MATERIAL_REF 0
*MESH {
*TIMEVALUE 0
*MESH_NUMVERTEX 48
*MESH_NUMFACES 64
*MESH_VERTEX_LIST {
*MESH_VERTEX 0 -47.4812 -45.9403 57.1008
*MESH_VERTEX 1 -17.1529 -115.72 57.1223
*MESH_VERTEX 2 -17.9404 -33.6505 -4e-006
*MESH_VERTEX 3 13.911 -54.5623 88.838
*MESH_VERTEX 4 -56.089 -53.2477 88.838
*MESH_VERTEX 5 -53.9657 -89.2654 67.4479
*MESH_VERTEX 6 18.7158 -94.5623 88.838
*MESH_VERTEX 7 -83.4565 -71.5111 81.8299
*MESH_VERTEX 8 -52.4056 -63.2806 81.4944
*MESH_VERTEX 9 -52.8647 -83.4165 74.9923
*MESH_VERTEX 10 45.1182 -73.4504 80.7602
*MESH_VERTEX 11 16.967 -64.9882 73.7918
*MESH_VERTEX 12 14.4241 -85.1023 78.7592
*MESH_VERTEX 13 -2.29291 -84.6508 68.9634
*MESH_VERTEX 14 -37.541 -64.5342 69.5495
*MESH_VERTEX 15 9.53998 -89.1861 54.9796
*MESH_VERTEX 16 23.0606 -74.1378 54.7761
*MESH_VERTEX 17 -46.2246 -101.935 -4e-006
*MESH_VERTEX 18 10.3439 -101.935 4.43282e-013
*MESH_VERTEX 19 -45.4539 -59.6594 56.3142
*MESH_VERTEX 20 -57.9404 -73.6505 -5e-006
*MESH_VERTEX 21 -51.2842 -93.2477 88.838
*MESH_VERTEX 22 22.0596 -73.6505 -9.99999e-007
*MESH_VERTEX 23 16.0343 -92.3953 67.3773
*MESH_VERTEX 24 -45.6876 -102.509 54.3481
*MESH_VERTEX 25 9.08729 -46.4417 54.059
*MESH_VERTEX 26 -54.5152 -57.7693 67.7813
*MESH_VERTEX 27 -46.46 -88.4882 55.7001
*MESH_VERTEX 28 15.4848 -60.8992 68.7734
*MESH_VERTEX 29 -37.2929 -83.2257 68.9553
*MESH_VERTEX 30 10.5461 -60.3573 55.1002
*MESH_VERTEX 31 -2.54096 -65.9592 69.2308
*MESH_VERTEX 32 14.6422 -73.7986 84.3747
*MESH_VERTEX 33 -46.2246 -45.3663 -5e-006
*MESH_VERTEX 34 10.3439 -45.3662 -2e-006
*MESH_VERTEX 35 -17.9404 -113.651 -2e-006
*MESH_VERTEX 36 10.8809 -103.01 56.2827
*MESH_VERTEX 37 -52.5557 -72.6668 86.321
*MESH_VERTEX 38 -19.5101 -35.7201 54.3793
*MESH_VERTEX 39 -56.9394 -73.6103 55.7061
*MESH_VERTEX 40 -52.0663 -73.3157 70.7331
*MESH_VERTEX 41 15.1317 -74.0053 68.7856
*MESH_VERTEX 42 14.3332 -85.0008 73.2168
*MESH_VERTEX 43 -52.7738 -83.2932 80.5347
*MESH_VERTEX 44 14.7923 -65.0897 79.3342
*MESH_VERTEX 45 -50.2309 -63.4039 75.952
*MESH_VERTEX 46 -16.9394 -75.7201 54.0742
*MESH_VERTEX 47 -17.9404 -73.6505 -3e-006
}
*MESH_FACE_LIST {
*MESH_FACE 0: A: 5 B: 26 C: 28 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 1: A: 4 B: 21 C: 6 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 2: A: 6 B: 3 C: 4 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 3: A: 28 B: 23 C: 5 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 4: A: 43 B: 37 C: 7 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 5: A: 45 B: 40 C: 7 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 6: A: 41 B: 10 C: 42 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 7: A: 32 B: 10 C: 44 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 8: A: 15 B: 13 C: 29 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 9: A: 31 B: 30 C: 19 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 10: A: 19 B: 14 C: 31 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 11: A: 29 B: 27 C: 15 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 12: A: 5 B: 21 C: 4 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 13: A: 21 B: 5 C: 23 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 14: A: 3 B: 6 C: 23 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 15: A: 23 B: 6 C: 21 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 16: A: 4 B: 26 C: 5 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 17: A: 26 B: 4 C: 3 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 18: A: 14 B: 19 C: 27 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 19: A: 23 B: 28 C: 3 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 20: A: 3 B: 28 C: 26 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 21: A: 27 B: 29 C: 14 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 22: A: 15 B: 30 C: 31 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 23: A: 31 B: 13 C: 15 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 24: A: 12 B: 10 C: 32 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 25: A: 37 B: 8 C: 7 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 26: A: 40 B: 9 C: 7 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 27: A: 11 B: 10 C: 41 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 28: A: 42 B: 10 C: 12 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 29: A: 9 B: 43 C: 7 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 30: A: 44 B: 10 C: 11 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 31: A: 8 B: 45 C: 7 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 0
*MESH_FACE 32: A: 2 B: 0 C: 38 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 33: A: 2 B: 33 C: 0 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 34: A: 46 B: 38 C: 0 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 35: A: 22 B: 34 C: 25 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 36: A: 20 B: 24 C: 39 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 37: A: 18 B: 16 C: 36 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 38: A: 35 B: 18 C: 36 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 39: A: 47 B: 33 C: 2 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 40: A: 47 B: 17 C: 20 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 41: A: 20 B: 17 C: 24 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 42: A: 47 B: 34 C: 22 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 43: A: 18 B: 22 C: 16 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 44: A: 17 B: 1 C: 24 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 45: A: 46 B: 36 C: 16 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 46: A: 22 B: 25 C: 16 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 47: A: 46 B: 16 C: 25 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 48: A: 47 B: 20 C: 33 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 49: A: 33 B: 20 C: 39 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 50: A: 47 B: 2 C: 34 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 51: A: 34 B: 2 C: 38 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 52: A: 47 B: 35 C: 17 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 53: A: 17 B: 35 C: 1 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 54: A: 35 B: 36 C: 1 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 55: A: 46 B: 1 C: 36 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 56: A: 34 B: 38 C: 25 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 57: A: 46 B: 25 C: 38 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 58: A: 33 B: 39 C: 0 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 59: A: 46 B: 0 C: 39 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 60: A: 46 B: 39 C: 24 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 61: A: 46 B: 24 C: 1 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 62: A: 47 B: 18 C: 35 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
*MESH_FACE 63: A: 47 B: 22 C: 18 AB: 1 BC: 1 CA: 1     *MESH_SMOOTHING 1 *MESH_MTLID 1
}
*MESH_NUMTVERTEX 55
*MESH_TVERTLIST {
*MESH_TVERT 0 0.766129 0.577957 0
*MESH_TVERT 1 0.55899 0.577957 0
*MESH_TVERT 2 0.55899 0.912333 0
*MESH_TVERT 3 0.766129 0.912333 0
*MESH_TVERT 4 0.575996 0.593942 0
*MESH_TVERT 5 0.503947 0.738039 0
*MESH_TVERT 6 0.648045 0.738039 0
*MESH_TVERT 7 0.720094 0.882137 0
*MESH_TVERT 8 0.792142 0.738039 0
*MESH_TVERT 9 0.792143 0.738039 0
*MESH_TVERT 10 0.720094 0.593942 0
*MESH_TVERT 11 0.575996 0.882137 0
*MESH_TVERT 12 0.75 0.015513 0
*MESH_TVERT 13 0.65625 0.241946 0
*MESH_TVERT 14 0.34375 0.241946 0
*MESH_TVERT 15 0.25 0.015513 0
*MESH_TVERT 16 0.43602 0.276837 0
*MESH_TVERT 17 0.43602 0.474465 0
*MESH_TVERT 18 0.633648 0.474465 0
*MESH_TVERT 19 0.828027 0.495973 0
*MESH_TVERT 20 0.828026 0.265988 0
*MESH_TVERT 21 0.386784 0.265988 0
*MESH_TVERT 22 0.386784 0.495973 0
*MESH_TVERT 23 0.633648 0.276837 0
*MESH_TVERT 24 0.511108 0.241946 0
*MESH_TVERT 25 0.604858 0.015513 0
*MESH_TVERT 26 0.252903 0.015513 0
*MESH_TVERT 27 0.346653 0.241946 0
*MESH_TVERT 28 0.128744 0.011814 0
*MESH_TVERT 29 0.18916 0.24753 0
*MESH_TVERT 30 0.128744 0.24753 0
*MESH_TVERT 31 0.18916 0.011814 0
*MESH_TVERT 32 0.880896 0.625604 0
*MESH_TVERT 33 0.880896 0.541513 0
*MESH_TVERT 34 0.940357 0.566143 0
*MESH_TVERT 35 0.00791 0.011814 0
*MESH_TVERT 36 0.068327 0.011814 0
*MESH_TVERT 37 0.068327 0.24753 0
*MESH_TVERT 38 0.249577 0.011814 0
*MESH_TVERT 39 0.309994 0.24753 0
*MESH_TVERT 40 0.249577 0.24753 0
*MESH_TVERT 41 0.430827 0.011814 0
*MESH_TVERT 42 0.491244 0.24753 0
*MESH_TVERT 43 0.430827 0.24753 0
*MESH_TVERT 44 0.37041 0.011814 0
*MESH_TVERT 45 0.940357 0.685065 0
*MESH_TVERT 46 0.964987 0.625604 0
*MESH_TVERT 47 0.309994 0.011814 0
*MESH_TVERT 48 0.821435 0.566143 0
*MESH_TVERT 49 0.796805 0.625604 0
*MESH_TVERT 50 0.491244 0.011814 0
*MESH_TVERT 51 0.37041 0.24753 0
*MESH_TVERT 52 0.821435 0.685065 0
*MESH_TVERT 53 0.00791 0.24753 0
*MESH_TVERT 54 0.880896 0.709695 0
}
*MESH_NUMTVFACES 64
*MESH_TFACELIST {
*MESH_TFACE 0 0 1 2
*MESH_TFACE 1 1 0 3
*MESH_TFACE 2 3 2 1
*MESH_TFACE 3 2 3 0
*MESH_TFACE 4 4 5 6
*MESH_TFACE 5 7 8 6
*MESH_TFACE 6 9 6 10
*MESH_TFACE 7 5 6 11
*MESH_TFACE 8 12 13 14
*MESH_TFACE 9 13 12 15
*MESH_TFACE 10 15 14 13
*MESH_TFACE 11 14 15 12
*MESH_TFACE 12 16 17 18
*MESH_TFACE 13 19 20 21
*MESH_TFACE 14 18 17 16
*MESH_TFACE 15 21 22 19
*MESH_TFACE 16 18 23 16
*MESH_TFACE 17 20 19 22
*MESH_TFACE 18 24 25 26
*MESH_TFACE 19 16 23 18
*MESH_TFACE 20 22 21 20
*MESH_TFACE 21 26 27 24
*MESH_TFACE 22 26 25 24
*MESH_TFACE 23 24 27 26
*MESH_TFACE 24 4 6 5
*MESH_TFACE 25 5 11 6
*MESH_TFACE 26 8 10 6
*MESH_TFACE 27 7 6 9
*MESH_TFACE 28 10 6 4
*MESH_TFACE 29 10 4 6
*MESH_TFACE 30 11 6 7
*MESH_TFACE 31 11 7 6
*MESH_TFACE 32 28 29 30
*MESH_TFACE 33 28 31 29
*MESH_TFACE 34 32 33 34
*MESH_TFACE 35 35 36 37
*MESH_TFACE 36 38 39 40
*MESH_TFACE 37 41 42 43
*MESH_TFACE 38 44 41 43
*MESH_TFACE 39 32 34 33
*MESH_TFACE 40 32 45 46
*MESH_TFACE 41 38 47 39
*MESH_TFACE 42 32 48 49
*MESH_TFACE 43 41 50 42
*MESH_TFACE 44 47 51 39
*MESH_TFACE 45 32 52 49
*MESH_TFACE 46 35 37 53
*MESH_TFACE 47 32 49 48
*MESH_TFACE 48 32 46 34
*MESH_TFACE 49 31 38 40
*MESH_TFACE 50 32 33 48
*MESH_TFACE 51 36 28 30
*MESH_TFACE 52 32 54 45
*MESH_TFACE 53 47 44 51
*MESH_TFACE 54 44 43 51
*MESH_TFACE 55 32 54 52
*MESH_TFACE 56 36 30 37
*MESH_TFACE 57 32 48 33
*MESH_TFACE 58 31 40 29
*MESH_TFACE 59 32 34 46
*MESH_TFACE 60 32 46 45
*MESH_TFACE 61 32 45 54
*MESH_TFACE 62 32 52 54
*MESH_TFACE 63 32 49 52
}
}
}
*HELPEROBJECT {
*NODE_NAME "Dummy"
*NODE_PARENT "Bip01 Pfx_Spark"
*NODE_TM {
*NODE_NAME "Dummy"
*TM_ROW0 -1 0 0
*TM_ROW1 0 -1 0
*TM_ROW2 0 0 1
*TM_ROW3 -23.8985 -62.9867 151.543
*TM_POS -23.8985 -62.9867 151.543
*TM_ROTAXIS 0 0 -1
*TM_ROTANGLE 3.14159
*TM_SCALE 1 1 1
*TM_SCALEAXIS 0 0 0
*TM_SCALEAXISANG 0 0 0
}
}
BSNVIL_OC_USE.ASC (C:\Program Files\GothicSourcer V3.10\Gothic Projects\Anims\asc_bsanvil_oc)
Spoiler
*3DSMAX_ASCIIEXPORT 110
*COMMENT "[ GothicSourcer v3.10 ] - August 2006"
*SCENE {
*SCENE_FILENAME "BSANVIL_OC_USE.MAX"
*SCENE_FIRSTFRAME 3
*SCENE_LASTFRAME 47
*SCENE_FRAMESPEED 25
*SCENE_TICKSPERFRAME 192
*SCENE_BACKGROUND_STATIC 0 0 0
*SCENE_AMBIENT_STATIC 0.2 0.2 0.2
}
*HELPEROBJECT {
*NODE_NAME "Bip01 Anvil"
*NODE_TM {
*NODE_NAME "Bip01 Anvil"
*TM_ROW0 2.08616e-007 1 -5.96046e-008
*TM_ROW1 -5.96046e-008 2.08616e-007 1
*TM_ROW2 1 -5.96046e-008 2.08616e-007
*TM_ROW3 3e-006 -75 -3e-006
*TM_POS 3e-006 -75 -3e-006
*TM_ROTAXIS -0.57735 -0.57735 -0.57735
*TM_ROTANGLE 2.09439
*TM_SCALE 1 1 1
*TM_SCALEAXIS 0 0 0
*TM_SCALEAXISANG 0 0 0
}
}
*HELPEROBJECT {
*NODE_NAME "Bip01 Pfx_Spark"
*NODE_PARENT "Bip01 Anvil"
*NODE_TM {
*NODE_NAME "Bip01 Pfx_Spark"
*TM_ROW0 1 -8.88154e-016 -3.55269e-015
*TM_ROW1 -3.55269e-015 1 -8.88154e-016
*TM_ROW2 -8.88154e-016 -3.55269e-015 1
*TM_ROW3 -15.9324 -66.9912 101.029
*TM_POS -15.9324 -66.9912 101.029
*TM_ROTAXIS 0 0 0
*TM_ROTANGLE 0
*TM_SCALE 1 1 1
*TM_SCALEAXIS 0 0 0
*TM_SCALEAXISANG 0 0 0
}
}
*HELPEROBJECT {
*NODE_NAME "ZS_POS0"
*NODE_PARENT "Bip01 Anvil"
*NODE_TM {
*NODE_NAME "ZS_POS0"
*TM_ROW0 -1 -1.27952e-006 8.76346e-015
*TM_ROW1 1.27952e-006 -1 -2.19045e-015
*TM_ROW2 -8.88154e-016 -3.55269e-015 1
*TM_ROW3 -2.91738e-012 -7.37744 97.7178
*TM_POS -2.91738e-012 -7.37744 97.7178
*TM_ROTAXIS -1.96883e-015 1.43579e-015 -1
*TM_ROTANGLE 3.14159
*TM_SCALE 1 1 1
*TM_SCALEAXIS 0 0 0
*TM_SCALEAXISANG 0 0 0
}
}
*HELPEROBJECT {
*NODE_NAME "ZS_POS1"
*NODE_PARENT "Bip01 Anvil"
*NODE_TM {
*NODE_NAME "ZS_POS1"
*TM_ROW0 1 -8.88154e-016 -3.55269e-015
*TM_ROW1 -3.55269e-015 1 -8.88154e-016
*TM_ROW2 -8.88154e-016 -3.55269e-015 1
*TM_ROW3 -38.3383 -141.993 97.7178
*TM_POS -38.3383 -141.993 97.7178
*TM_ROTAXIS 0 0 0
*TM_ROTANGLE 0
*TM_SCALE 1 1 1
*TM_SCALEAXIS 0 0 0
*TM_SCALEAXISANG 0 0 0
}
}

W folderze C:\Program Files\Piranha Bytes\Gothic\_Work\Data\Anims\_compiled znajdują się:
 BSANVIL_OC.MDH
BSANVIL_OC.MDL
BSANVIL_OC.MDM
BSANVIL_OC-S_S0.MAN
BSANVIL_OC-S_S1.MAN
BSANVIL_OC-T_S0_2_S1.MAN
BSANVIL_OC-T_S1_2_S0.MAN
Nie da się ich otworzyć w Notepad++, bo wyskakują liczby, cyfry normalne, i takie na czarnym tle, nie da się tego tu skopiować.
(No da się, ale te pliki nie wyglądają na pliki do odczytu przez tego typu program.)

Czy ma ktoś pomysł jak mogę poradzić sobie z tym kowadłem? Bo przez dwa tygodnie nie udało mi się, a sporo rzeczy wypróbowałem.

17
Skrypty / Problem z monologiem
« dnia: 2013-05-17, 23:17 »
Mam taki problem: mój skrypt działa, ale działają jeszcze skrypty z oryginału. Wygląda to tak, że mam monolog w grze, ale przy korzystaniu z niego samoistnie przerabia mi jedną rozgrzaną stal na rozgrzane ostrze. Próbowałem sam sobie z tym poradzić, zobaczyłem jak to jest w Mrocznych Tajemnicach. Tam korzystając z monologu kowadła nie przerabia nam niczego na rozgrzane ostrze, więcej usunąłem pliki BSANVIL_OC.MDH, BSANVIL_OC-S-S0.MAN itd. z folderu Anims, bo nie znalazłem ich rozpakowując DM_Anim.mod, ale nic się nie zmieniło, więc pytam teraz - jak usunąć możliwość automatycznego przerabiania rozgrzanej stali na rozgrzane ostrze na kowadle?

18
Skrypty / Problem z monologiem
« dnia: 2013-05-15, 22:39 »
W tym folderze nie mam plików MDS, tylko pliki MAN, MDM, MDH. Pliki MDS mam w folderach _Work\Data\Anims, _Work\Data\Anims\MDS_OVERLAY, _Work\Data\Anims\MDS_MOBSI, ale ich jest dużo, i nie wiem, którego wybrać.

Ok, dzięki, już mam.

19
Skrypty / Problem z monologiem
« dnia: 2013-05-15, 22:28 »
O które _compiled chodzi? Jest kilka takich folderów.

20
Skrypty / Problem z monologiem
« dnia: 2013-05-15, 22:07 »
Mam jeszcze jedno pytanie. Gdzie znajdę pliki o rozszerzeniu .asc? Skąd mam je wypakować? (Przepraszam za podwójnego posta, ale chciałem, aby ktoś zauważył zmianę w temacie.)

Strony: [1] 2 3
Do góry