Jak zrobić itemy ?
Erstellt von
Ubol300
, Okt 22 2010 05:05
#1
Geschrieben 22 Oktober 2010 - 05:05
Witam. Czy ktoś mógłby podać jakąś instrukcję do tworzenia przedmiotów np. broni w toolset. Szukałem troche po google i znalazłem tylko poradnik, lecz nie znalazłem takowej instrukcji.
#2
Guest_Eridhan_*
Geschrieben 22 Oktober 2010 - 05:02
Guest_Eridhan_*
Jako kompletny toolsetowy laik, zamiast tworzyć przedmiot od podstaw (choć pewnie tak też można), modyfikuję taki, który już istnieje:
Z "Palette Window" (po prawej stronie) wybieram Item (ikona miecza) i z zakładki _Global wybieram przedmiot, jaki chcę zmodyfikować. Gdy go otworzysz, po lewej stronie zobaczysz wszystkie jego właściwości, które możesz sobie praktycznie dowolnie zmieniać, począwszy od nazwy, poprzez wygląd, materiał, opis i tak dalej. Możesz też nadać mu specjalne właściwości. Potem wystarczy tylko zapisać go pod unikalną nazwą i wrzucić do gry
Może są inne sposoby, ale ten jest stosunkowo prosty
Jeśli ktoś robi inaczej to też się chętnie czegoś nauczę
Z "Palette Window" (po prawej stronie) wybieram Item (ikona miecza) i z zakładki _Global wybieram przedmiot, jaki chcę zmodyfikować. Gdy go otworzysz, po lewej stronie zobaczysz wszystkie jego właściwości, które możesz sobie praktycznie dowolnie zmieniać, począwszy od nazwy, poprzez wygląd, materiał, opis i tak dalej. Możesz też nadać mu specjalne właściwości. Potem wystarczy tylko zapisać go pod unikalną nazwą i wrzucić do gry
Może są inne sposoby, ale ten jest stosunkowo prosty
#3
Geschrieben 23 Oktober 2010 - 01:06
Robię wszystko jak trzeba ale nie mogę nic edytować np. chciałem zmniejszyć koszt okładu leczniczego, klikam na tabelkę i gdy próbuję usunąć jedno zero nic się nie dzieje próbuję dodać też nic.
#4
Guest_Eridhan_*
Geschrieben 23 Oktober 2010 - 08:33
Guest_Eridhan_*
Być może otwierasz tylko nieedytowalne zasoby - Read Only Copy, wtedy faktycznie nie wprowadzisz żadnych zmian. Gdy otworzysz listę przedmiotów, na wybranym itemie kliknij prawym przyciskiem myszy i wybierz Check Out - wtedy powinna otworzyć Ci się wersja, którą możesz już dowolnie zmieniać. Może w tym leży problem.
Bearbeitet von Eridhan, 23 Oktober 2010 - 08:34 .
#5
Geschrieben 24 Oktober 2010 - 04:39
Udało się! Mam jeszcze kilka pytań:
- czy ten przedmiot który został przeze mnie stworzony będzie w grze i czy ten przedmiot zastąpi ten podstawowy?
- jest jakiś sposób aby dodać ten przedmiot do wybranej przeze mnie skrzyni, czy będzie się pokazywał losowo?
- czy ten przedmiot który został przeze mnie stworzony będzie w grze i czy ten przedmiot zastąpi ten podstawowy?
- jest jakiś sposób aby dodać ten przedmiot do wybranej przeze mnie skrzyni, czy będzie się pokazywał losowo?
#6
Guest_Eridhan_*
Geschrieben 24 Oktober 2010 - 10:15
Guest_Eridhan_*
Jeżeli nie zmienisz nazwy przedmiotu, tylko zmiany zapiszesz na tym już istniejącym i potem go wyeksportujesz - powinien zastąpić ten dotychczasowy.
Co do drugiego pytania - Tu Ci raczej nie pomogę, gdyż nie testowałam umieszczania stworzonych przedmiotów w skrzyniach, wolałam dodawać je do ekwipunku konkretnych wrogów. Wydaje mi się, że musisz otworzyć daną lokację, poszukać skrzyni, która Cię interesuje i umieścić w niej przedmiot. Wyeksportuj potem zarówno skrzynię, jak i jej nową zawartość. Jedna uwaga - jako że skrzynie znajdujące się w różnych lokacjach i zawierające wyłącznie przedmioty losowe, mogą mieć identyczne etykiety, potem mogłoby się okazać, że każda z nich zawiera ten Twój unikalny przedmiot. Na Twoim miejscu wolałabym więc stworzyć całkowicie nową skrzynię, umieścić ją w danej lokacji i wyeksportować potem wszystko - lokację, skrzynię i przedmiot. Ale to tylko, jak powiedziałam, moje przypuszczenia, spróbuj poeksperymentować.
Przedmiot losowo będzie się pojawiał tylko wtedy, jeśli nie zaznaczysz w jego właściwościach, że jest unikatowy.
Co do drugiego pytania - Tu Ci raczej nie pomogę, gdyż nie testowałam umieszczania stworzonych przedmiotów w skrzyniach, wolałam dodawać je do ekwipunku konkretnych wrogów. Wydaje mi się, że musisz otworzyć daną lokację, poszukać skrzyni, która Cię interesuje i umieścić w niej przedmiot. Wyeksportuj potem zarówno skrzynię, jak i jej nową zawartość. Jedna uwaga - jako że skrzynie znajdujące się w różnych lokacjach i zawierające wyłącznie przedmioty losowe, mogą mieć identyczne etykiety, potem mogłoby się okazać, że każda z nich zawiera ten Twój unikalny przedmiot. Na Twoim miejscu wolałabym więc stworzyć całkowicie nową skrzynię, umieścić ją w danej lokacji i wyeksportować potem wszystko - lokację, skrzynię i przedmiot. Ale to tylko, jak powiedziałam, moje przypuszczenia, spróbuj poeksperymentować.
Przedmiot losowo będzie się pojawiał tylko wtedy, jeśli nie zaznaczysz w jego właściwościach, że jest unikatowy.
#7
Geschrieben 24 Oktober 2010 - 02:43
Mam pytanie otóż w DLC powrót do ostagaru nie mogę porozmawiać z Elrikiem, przez co cały Quest się wali, nie wiem co zrobić!! Pomoźcie, bardzo proszę o odp.
#8
Geschrieben 25 Oktober 2010 - 04:25
Mógłby ktoś powiedzieć jak mogę dodać przedmiot od razu do ekwipunku gracza?
Eridhan możesz napisać jak mam wyeksportować przedmiot?
Eridhan możesz napisać jak mam wyeksportować przedmiot?
#9
Guest_Eridhan_*
Geschrieben 25 Oktober 2010 - 06:14
Guest_Eridhan_*
Jeśli chodzi o dodawanie przedmiotu do ekwipunku postaci, musisz to zrobić tworząc nowy mod - rozszerzenie kampanii, zamiast ją modyfikować. Dobra instrukcja znajduje się np. pod tym linkiem (poruszane zresztą już na tym forum):
http://dragonagemodd...player-an-item/
Tutorial jest napisany prosto i przystępnie, więc bez problemu powinieneś sobie poradzić. Sama go testowałam i potwierdzam skuteczność
Jeśli nie tworzysz modułu, a chcesz tylko eksportować pliki, sprawa jest prosta: Tools -> Export -> Export without dependent resources. Istotne jest to, że wyeksportowane w ten sposób pliki znajdziesz w innym katalogu niż zainstalowane mody, a mianowicie ...\\BioWare\\Dragon Age\\modules\\Single Player\\override\\toolsetexport - i jeśli zdarzy się, że przez przypadek namieszasz coś w grze, po prostu wyczyść zawartość tego folderu.
I rada na koniec: Baw się! W ten sposób można się nauczyć najwięcej
http://dragonagemodd...player-an-item/
Tutorial jest napisany prosto i przystępnie, więc bez problemu powinieneś sobie poradzić. Sama go testowałam i potwierdzam skuteczność
Jeśli nie tworzysz modułu, a chcesz tylko eksportować pliki, sprawa jest prosta: Tools -> Export -> Export without dependent resources. Istotne jest to, że wyeksportowane w ten sposób pliki znajdziesz w innym katalogu niż zainstalowane mody, a mianowicie ...\\BioWare\\Dragon Age\\modules\\Single Player\\override\\toolsetexport - i jeśli zdarzy się, że przez przypadek namieszasz coś w grze, po prostu wyczyść zawartość tego folderu.
I rada na koniec: Baw się! W ten sposób można się nauczyć najwięcej
Bearbeitet von Eridhan, 25 Oktober 2010 - 06:15 .
#10
Geschrieben 26 Oktober 2010 - 03:40
Dzięki, póki co nie mam więcej pytań.
PS: Na pewno będę się dobrze bawić!!!
PS: Na pewno będę się dobrze bawić!!!
Bearbeitet von Ubol300, 26 Oktober 2010 - 03:42 .
#11
Geschrieben 11 Juni 2011 - 05:26
Dla tych bardziej leniwych sporządziłem instrukcję.
1.Tworzenie Modułu:
a) klikamy "FILE -> MANAGE MODULES"
wybieramy opcję "New..."
c) w tabelce "Name" wpisujemy nazwę modułu, a w tabelce "UID" wpisujemy nazwę identyfikacyjną np. ring_01 (UID musi być unikalny i najlepiej małe litery), w tabelce "Extended Module" zmieniamy na "Single Player" i klikamy OK
d) znajdziemy się powtórnie w "MANAGE MODULES" gdzie zaznaczamy naszego moda i wybieramy "Open"
e) ponownie wchodzimy do "MANAGE MODULES", zaznaczamy tam znowu naszego moda i klikamy na "Hierarchy...", zaznaszamy "Single Player" klikamy "OK" i następnie "Open" (UWAGA! Jeżeli wszystkie moduły w tym oknie są szare i nie można ich wybrać wtedy oznacza to, że nie otworzyliśmy modułu, jak wspomniano powyżej.)
2. Tworzenie Przedmiotu:
a) wybieramy "FILE -> NEW -> ITEM"
w tabelce "Resource Name" wybieramy nazwę zasobu ( jak UID musi być unikalny), tabelkę "Folder" zostawiamy bez zmian, w następnej tabelce "Module" wybieramy "Core Game Resources", tabelki "Owner Module" i "State" zostawiamy bez zmian, następnie klikamy "OK"
c) tabelka "Base Item Type" pozwala nam wybrać typ przedmiotu (np. hełm lub miecz), tabelka "Description" pozwala nam dodać swój własny opis przedmiotu, w tabelce "Icon" wstawiamy ikonkę przedmiotu (warto przedtem poprzeglądać inne przedmioty wybranego typu aby wybrać ikonkę która nam się najbardziej podoba), w tabelce "Inventory Subgroup" wpisujemy numery odpowiednie dla każdego typu przedmiotu (numery te znajdziemy w innych przedmiotach tego samego typu np. pierścienie - 431000), tabelka "Item Variation" pozwala zmienić model 3D danego przedmiotu, "Material Progression" i "Material Type" są to określenia poziomu przedmiotu, "Name" to nazwa naszego przedmiotu, "Cost" jest to koszt, "Item Propertie" są to właściowści przedmiotu (np. obrażenia od ognia)
d) zapisz przedmiot klikając dyskietkę u góry ekranu
e) znajdzi swój przedmiot w "Palettw Window" po prawej stronie ekranu, kliknij na niego PPM i wybierz opcję "CHECK IN", jeślij nie chcesz dodawać komentarza zaznacz opcję "I do not wish to enter a comment" i wybierz "OK"
3.Tworzenie Skryptu:
a) klikamy "FILE -> NEW -> SCRIPT"
wpisujemy nazwę skryptu w "Resource Name" i wszystko inne zostawiamy tak jak jest, klikamy "OK"
c) tu jest potrzebny skrypt;
// All module events
#include "utility_h"
#include "wrappers_h"
#include "events_h"
void main()
{
event ev = GetCurrentEvent();
int nEvent = GetEventType(ev);
Log_Events("", ev);
switch (nEvent)
{
////////////////////////////////////////////////////////////////////////
// Sent by: The engine
// When: The module loads from a save game, or for the first time. This event can fire more than
// once for a single module or game instance.
////////////////////////////////////////////////////////////////////////
case EVENT_TYPE_MODULE_LOAD:
{
// this event can fire multiple times, and we only want to do this once
// So we save a flag inside a number variable. We check it here and if its
// set already then we know we've already done this before. The name of the
// variable in quotes can be whatever you want.
int iModuleLoaded = GetLocalInt(OBJECT_SELF, "@@@@@@");
if (iModuleLoaded == 1)
break;
// get the object which contains the player
object oPlayer = GetHero();
// The flag we save won't persist beyond the game session, so its a good idea to actually
// look to see if the player already has the item, unless you WANT them to get another one
// The name in quotes is the TAG of the item. So what we do is see how many of the item
// the player already has, and if its 0, we know we haven't given it to them yet (or they sold it
)
int iItemCount = CountItemsByTag(oPlayer, "@@@@@@");
// if its 0, then let's give them the item. Now this first parameter is a RESOURCE identifier. Note
// how its formatted. R"resource_file_name"
// The "R" part is important and identifies it as a resource. The filename is just the filename of the
// resource. You can see this in the toolset on the tabs up top.
// The number 1 means give 1 item.
if (iItemCount == 0)
UT_AddItemToInventory(R"@@@@@@.uti",1);
// lastly we set that number variable we talked about earlier, to save the fact that we've
// done this already.
SetLocalInt(OBJECT_SELF, "@@@@@@", 1);
break;
}
default:
{
break;
}
}
}
d) tam gdzie jest sześć "@" wpisujemy UID przedmiotu
e) zapisz skrypt
f) wchodzimy do "FILE -> MANAGE MODULES", wybieramy nasz moduł i wybierz opcję "PROPERTIES"
g) znajdujemy tabelkę "SCRIPT" i wybieramy trzy kropki
h) znajdujemy nasz skrypt i klikamy "OK", następnie znowu "OK"
4.Eksportowanie modułu:
a) klikamy nasz przedmiot PPM i wybieramy "EXPORT -> EXPORT WITHOUT DEPENDENT RESOURCES"
następnie zrób to samo ze skryptem
c) aby wyeksportować moduł kliknij "TOOLS -> EXPORT -> GENERATE MODULE XML", a następnie "TOOLS -> EXPORT -> GENERATE MANIFEST XML"
To już koniec, miłej zabawy.
@ Pytanko ktoś zna skrypt na dodawanie wielu przedmiotów?
1.Tworzenie Modułu:
a) klikamy "FILE -> MANAGE MODULES"
c) w tabelce "Name" wpisujemy nazwę modułu, a w tabelce "UID" wpisujemy nazwę identyfikacyjną np. ring_01 (UID musi być unikalny i najlepiej małe litery), w tabelce "Extended Module" zmieniamy na "Single Player" i klikamy OK
d) znajdziemy się powtórnie w "MANAGE MODULES" gdzie zaznaczamy naszego moda i wybieramy "Open"
e) ponownie wchodzimy do "MANAGE MODULES", zaznaczamy tam znowu naszego moda i klikamy na "Hierarchy...", zaznaszamy "Single Player" klikamy "OK" i następnie "Open" (UWAGA! Jeżeli wszystkie moduły w tym oknie są szare i nie można ich wybrać wtedy oznacza to, że nie otworzyliśmy modułu, jak wspomniano powyżej.)
2. Tworzenie Przedmiotu:
a) wybieramy "FILE -> NEW -> ITEM"
c) tabelka "Base Item Type" pozwala nam wybrać typ przedmiotu (np. hełm lub miecz), tabelka "Description" pozwala nam dodać swój własny opis przedmiotu, w tabelce "Icon" wstawiamy ikonkę przedmiotu (warto przedtem poprzeglądać inne przedmioty wybranego typu aby wybrać ikonkę która nam się najbardziej podoba), w tabelce "Inventory Subgroup" wpisujemy numery odpowiednie dla każdego typu przedmiotu (numery te znajdziemy w innych przedmiotach tego samego typu np. pierścienie - 431000), tabelka "Item Variation" pozwala zmienić model 3D danego przedmiotu, "Material Progression" i "Material Type" są to określenia poziomu przedmiotu, "Name" to nazwa naszego przedmiotu, "Cost" jest to koszt, "Item Propertie" są to właściowści przedmiotu (np. obrażenia od ognia)
d) zapisz przedmiot klikając dyskietkę u góry ekranu
e) znajdzi swój przedmiot w "Palettw Window" po prawej stronie ekranu, kliknij na niego PPM i wybierz opcję "CHECK IN", jeślij nie chcesz dodawać komentarza zaznacz opcję "I do not wish to enter a comment" i wybierz "OK"
3.Tworzenie Skryptu:
a) klikamy "FILE -> NEW -> SCRIPT"
c) tu jest potrzebny skrypt;
// All module events
#include "utility_h"
#include "wrappers_h"
#include "events_h"
void main()
{
event ev = GetCurrentEvent();
int nEvent = GetEventType(ev);
Log_Events("", ev);
switch (nEvent)
{
////////////////////////////////////////////////////////////////////////
// Sent by: The engine
// When: The module loads from a save game, or for the first time. This event can fire more than
// once for a single module or game instance.
////////////////////////////////////////////////////////////////////////
case EVENT_TYPE_MODULE_LOAD:
{
// this event can fire multiple times, and we only want to do this once
// So we save a flag inside a number variable. We check it here and if its
// set already then we know we've already done this before. The name of the
// variable in quotes can be whatever you want.
int iModuleLoaded = GetLocalInt(OBJECT_SELF, "@@@@@@");
if (iModuleLoaded == 1)
break;
// get the object which contains the player
object oPlayer = GetHero();
// The flag we save won't persist beyond the game session, so its a good idea to actually
// look to see if the player already has the item, unless you WANT them to get another one
// The name in quotes is the TAG of the item. So what we do is see how many of the item
// the player already has, and if its 0, we know we haven't given it to them yet (or they sold it
int iItemCount = CountItemsByTag(oPlayer, "@@@@@@");
// if its 0, then let's give them the item. Now this first parameter is a RESOURCE identifier. Note
// how its formatted. R"resource_file_name"
// The "R" part is important and identifies it as a resource. The filename is just the filename of the
// resource. You can see this in the toolset on the tabs up top.
// The number 1 means give 1 item.
if (iItemCount == 0)
UT_AddItemToInventory(R"@@@@@@.uti",1);
// lastly we set that number variable we talked about earlier, to save the fact that we've
// done this already.
SetLocalInt(OBJECT_SELF, "@@@@@@", 1);
break;
}
default:
{
break;
}
}
}
d) tam gdzie jest sześć "@" wpisujemy UID przedmiotu
e) zapisz skrypt
f) wchodzimy do "FILE -> MANAGE MODULES", wybieramy nasz moduł i wybierz opcję "PROPERTIES"
g) znajdujemy tabelkę "SCRIPT" i wybieramy trzy kropki
h) znajdujemy nasz skrypt i klikamy "OK", następnie znowu "OK"
4.Eksportowanie modułu:
a) klikamy nasz przedmiot PPM i wybieramy "EXPORT -> EXPORT WITHOUT DEPENDENT RESOURCES"
c) aby wyeksportować moduł kliknij "TOOLS -> EXPORT -> GENERATE MODULE XML", a następnie "TOOLS -> EXPORT -> GENERATE MANIFEST XML"
To już koniec, miłej zabawy.
@ Pytanko ktoś zna skrypt na dodawanie wielu przedmiotów?
Bearbeitet von Ubol300, 14 Juni 2011 - 09:17 .
#12
Geschrieben 16 Juni 2011 - 08:43
Skrypt na wiele przedmiotów:
#include "wrappers_h"
#include "utility_h"
int
MyAddItem( resource p_resItem, int p_nCount = 1 );
void main()
{
MyAddItem( R"UID_przedmiotu_01.uti" );
MyAddItem( R"UID_przedmiotu_02.uti", 2 );
}
int MyAddItem( resource
p_resItem, int p_nCount = 1 )
{
// paranoia check
object[] oChar = GetPartyPoolList();
int nSize =
GetArraySize(oChar);
string strItemTag =
ResourceToTag(p_resItem);
object oItem =
GetObjectByTag(strItemTag);
int i;
int j;
object
oCurrent;
int nHasItem= 0;
for(i = 0; i < nSize;
i++)
{
oCurrent = oChar[i];
if (
IsObjectValid( oCurrent ) )
{
// If
item is in the shared inventory
nHasItem +=
CountItemsByTag(oCurrent, ResourceToTag(p_resItem));
if ( !nHasItem )
{
// If item
is not in the shared inventory
// maybe it is
equipped
for ( j = 524288; j > 0; j>>=1 )
{
if ( GetTag(GetItemInEquipSlot(j,
oCurrent)) == strItemTag )
nHasItem += 1;
}
}
}
}
if (
nHasItem == 0 )
{
UT_AddItemToInventory( p_resItem, p_nCount );
return TRUE;
}
else
return FALSE;
}
#include "wrappers_h"
#include "utility_h"
int
MyAddItem( resource p_resItem, int p_nCount = 1 );
void main()
{
MyAddItem( R"UID_przedmiotu_01.uti" );
MyAddItem( R"UID_przedmiotu_02.uti", 2 );
}
int MyAddItem( resource
p_resItem, int p_nCount = 1 )
{
// paranoia check
object[] oChar = GetPartyPoolList();
int nSize =
GetArraySize(oChar);
string strItemTag =
ResourceToTag(p_resItem);
object oItem =
GetObjectByTag(strItemTag);
int i;
int j;
object
oCurrent;
int nHasItem= 0;
for(i = 0; i < nSize;
i++)
{
oCurrent = oChar[i];
if (
IsObjectValid( oCurrent ) )
{
// If
item is in the shared inventory
nHasItem +=
CountItemsByTag(oCurrent, ResourceToTag(p_resItem));
if ( !nHasItem )
{
// If item
is not in the shared inventory
// maybe it is
equipped
for ( j = 524288; j > 0; j>>=1 )
{
if ( GetTag(GetItemInEquipSlot(j,
oCurrent)) == strItemTag )
nHasItem += 1;
}
}
}
}
if (
nHasItem == 0 )
{
UT_AddItemToInventory( p_resItem, p_nCount );
return TRUE;
}
else
return FALSE;
}
Bearbeitet von Ubol300, 16 Juni 2011 - 08:47 .
#13
Geschrieben 05 Dezember 2011 - 09:46
To ja zadam pytanie 
Jak zrobić npc z którym będzie można porozmawiać i żeby przyłączył się do drużyny?
Jak zrobić npc z którym będzie można porozmawiać i żeby przyłączył się do drużyny?





Nach oben






