Poszczególne elementy pancerza 28555 101

O temacie

Autor Drake

Zaczęty 14.11.2009 roku

Wyświetleń 28555

Odpowiedzi 101

Mark56

Mark56

Moderator
som veľký magič
posty1632
Propsy1846
ProfesjaAnimator
  • Moderator
  • som veľký magič
czensci pancerza daja sie zrobicz na podstavie novego typu zbroji - czili cosz jak helm tylko dolonczalo by mesh do innej czensci cziala ale tu jest piervszi problem a to ten ze naprziklad but muszal by sie dublovacz na druga noge bo jak go polanczisz z leva noga to oba buty by sie ruszaly z leva noga  :/   a dlatego to lepiej nierobicz :D
 


Althar

Althar

Użytkownicy
posty307
Propsy44
  • Użytkownicy
Mam pomysł. Polega on na zrobieniu mnóstwa tekstur i skryptów warunkowych. Już tłumaczę.

Robimy tak: Robimy tyle tekstur ile jest możliwych kombinacji założenia zbroji(w zależności ile mamy rodzajów pancerza). Robimy osobne modele elementów ubioru i robimy jakoś jak np. amulety, że można założyć kilka naraz. Nastepnie piszemy w skrypcie warunek, który zmieniałby teksturę pancerza na inny typ. (gdybyśmy np. nie mieli rekawic to tekstura bylaby przezroczysta) w zależności od założonego elementu zbroji. Ogólnie rzeczbiorąc byłby to trick dający złudzenie zakładania poszczególnych elementów. W rzeczywistości byłby to jeden i ten sam model a zmieniałaby sie tylko tekstura. Mnóstwo roboty, ale coś z tego może wyjść.
 

wietrzyk

wietrzyk

Użytkownicy
Black Eye Games
posty435
Propsy390
ProfesjaGrafik 3D
  • Użytkownicy
  • Black Eye Games
Ten sposób jest zły, dlatego, że w miejscu gdzie tekstura ma kanał alpha nie widać nic, ani ręki, ani nogi. Przy zakładaniu pancerza następuje zamiana z ciała na pancerz. Pod pancerzem nic nie ma!
 Wykonanie poszczególnych części pancerzy jest wykonalne tylko i wyłącznie poprzez zrobienie wszystkich kombinacji, tak jak napisał Avallach.

Cytuj
Dlaczego nie? Przy zakładaniu aktywowałbyś funkcję która sprawdzałaby za pomocą zmiennych co jest już założone i aktywowała odpowiedni asc, jedynym problemem jest zrobienie tych wszystkich kombinacji. Nawet jeśli założyć że można łączyć ze sobą tylko części z jednego zestawu, powiedzmy 3 częściowego (góra, dół, rękawice) to i tak każdy taki zestaw musiałby korzystać z 9 różnych plików asc (np na wypadek gdyby ktoś założył spodnie i napierśnik, ale nie rękawice, albo sam napierśnik, ale nie resztę itd).

Innej możliwości nie ma, był taki temat wałkowany kilka lat temu za czasów kiedy królowała na forum Angelina Jolie i wtedy nikt nic nie wymyślił.
 

Mark56

Mark56

Moderator
som veľký magič
posty1632
Propsy1846
ProfesjaAnimator
  • Moderator
  • som veľký magič
Vlascivie mial dobry pomysl do 6 linji czili jak by sie zrobilo  tyle kombinacji ile istneje a potem jak zakladasz np rekavice to do zmiennej zapisuje cosz a potem cosz innego to tez dopisze do zmiennej nastempna wartosc , i jak  zmienna ma dana wartosc to automaticzne vybiera z tych tysonc kombinacji jedna ktora odpoviada  naszemu vybioru ... ale tak by sie chyba dalo zrobicz tylko kdybi czensci zbroje by byko malo a samotnych zbroji by bylo tez malo :lol2:  czym viencej kombinacji tym viencej klopotov bylo by

 jezeli to juz bylo napisane to przepraszam i mozna zmazacz bo niepamientam czi juz bio :D
 


Althar

Althar

Użytkownicy
posty307
Propsy44
  • Użytkownicy
Cytuj
Dlaczego nie? Przy zakładaniu aktywowałbyś funkcję która sprawdzałaby za pomocą zmiennych co jest już założone i aktywowała odpowiedni asc, jedynym problemem jest zrobienie tych wszystkich kombinacji. Nawet jeśli założyć że można łączyć ze sobą tylko części z jednego zestawu, powiedzmy 3 częściowego (góra, dół, rękawice) to i tak każdy taki zestaw musiałby korzystać z 9 różnych plików asc (np na wypadek gdyby ktoś założył spodnie i napierśnik, ale nie rękawice, albo sam napierśnik, ale nie resztę itd).

I teraz zrobić mnóstwo tekstur, tyle ile jest kombinacji... Chyba, że... Na 1 model nałożyć 3 tekstury. Na każdą część osobna tekstura i w skrypcie jakoś dać, żeby zmieniała sie odpowiednia tekstura, choć nie wiem czy możliwe jest dodanie kilku tekstur naraz i zrobienie takiego skryptu.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Poszczególne elementy pancerza
#25 2009-12-22, 21:02(Ostatnia zmiana: 2009-12-22, 21:11)
Już było tłumaczone że same operacje na teksturach nic nie dadzą, a poza tym trzeba by było i tak robić ich tyle co asc.
A co do twojego pytania, to nie, nie da się wyświetlić na jednym modelu postaci kilku tekstur na raz i to jeszcze tak żeby za pomocą skryptów część z nich dynamicznie zmieniać na przezroczyste i na dodatek żeby pod spodem było widoczne ciało postaci a nie zwyczajna dziura.

Uważam że moja propozycja z podziałem zbroi na górę i dół jest jak najbardziej do przyjęcia, powtarzam że wymagałaby tylko 3 plików asc, i to dość prostych do zrobienia skoro ma się już podstawową zbroję.

Mark56

Mark56

Moderator
som veľký magič
posty1632
Propsy1846
ProfesjaAnimator
  • Moderator
  • som veľký magič
no tak ale masz pomysl jak zrobicz aby byly dve renkavice a kazda z nich by sie ruszala z osobysce ???
 


inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Poszczególne elementy pancerza
#27 2009-12-22, 21:18(Ostatnia zmiana: 2009-12-22, 21:18)
Najprościej było by zrobić je jako modyfikację skinu bohatera. Przy nakładaniu zmieniał by się na np. HUM_BODY_NAKED_V1 gdzie rękawice byłyby zwyczajnie domalowane. Efekt powinien być dość przekonujący.

Mark56

Mark56

Moderator
som veľký magič
posty1632
Propsy1846
ProfesjaAnimator
  • Moderator
  • som veľký magič
no tak czili mieli by smi rnkavice , tzialo i glove + jezeli g2 to navet belty :(  cziekave
 


Althar

Althar

Użytkownicy
posty307
Propsy44
  • Użytkownicy
Też myślałem od dłuższego czasu o domalowaniu rękawic na ciele.

Cytuj
A co do twojego pytania, to nie, nie da się wyświetlić na jednym modelu postaci kilku tekstur na raz i to jeszcze tak żeby za pomocą skryptów część z nich dynamicznie zmieniać na przezroczyste i na dodatek żeby pod spodem było widoczne ciało postaci a nie zwyczajna dziura.
Szkoda. Nie chodzilo mi teraz o przezroczyste. Tylko, że dla każdego elementu jest osobna tekstura.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
jezeli g2 to navet belty :(
Niestety, z tego co wiem pasy nie są wyświetlane na postaci w żaden sposób. A zrobienie czegoś co jest "zakładane" i tak tylko wirtualnie nawet pod g1 nie jest chyba problemem, kwestia ustawień.

orcwarrior

orcwarrior

The Modders
posty475
Propsy317
Profesjabrak
  • The Modders

orcwarrior
The Modders

Poszczególne elementy pancerza
#31 2009-12-22, 23:26(Ostatnia zmiana: 2009-12-22, 23:28)
Postanowiłem że pomogę w miare możliwości, mam nadzieje ze ktoś zrobi uczynek, fajnie by to było zobaczyć w jakimś modzie .

Jest w miare sensowny i wcale nie taki trudny sposób, który powinien dać conajmniej dobry efekt.

Jedyny powazny problem - z tego co sie orientuje to problem z pfxami - mianowicie zaczynaja się one wyświetlać jeszcze przed tym jak "podepną" sie do odpowiedniej częsci ciała, co powoduje ze mogą być wyswietlane w zlej pozycji. Ale możliwe że da się ten problem jakoś rozwiazać.

Taką dzieloną zbroje może nosić tylko określona liczba NPC/PC która sami zreszta musimy określic - lepiej jeśli chcemy mieć npc z mieszanymi zbrojami zrobic to za pomocą mieszania całości zbroi w .asc, taka sugestia.

Teoretycznie i w skrócie, jak to wyglada:

W pewnej jednostce czasu (przyjmijmy 1 sekundę) wykonuje się skrypt (Timetrigger/ticktock) Który sprawdza wg. zmiennych jakie elementy zbroi mamy załozone, przyjmijmy na poczatek kilka liczb oznaczających zbroje:
const int ARMOR_NONE = 0;
const int ARMOR_THIEF = 1;
const int ARMOR_GRD_HEAVY = 2;
//itd.
//Teraz częsci ciała, potem moge nawet pomóc w rozpisaniu calej listy.

//VAR NAME || ZS/BIP NAME
var int ARMORPART_HELM;// ZS_HELMET
var int ARMORPART_BOOTS;//Bip01 R Foot & Bip01 L Foot
var int ARMORPART_BRACER;//Bip01 R Clavicle & Bip01 L  Clavicle
var int ARMORPART_BREASTPLATE;//Bip01 Spine2 LUB Bip01 Spine1 //zależnie od modelu zbroi
var int ARMORPART_GRAVES;//Bip01 R Thigh & Bip01 L Thigh
//Możliwość podzialu czesci zbroi równie na Lewą i prawą.


//Teraz obrona poszczególnych częsci ciała, jako że tablice nie funkcjonuja jak powinny, wszystko
//zrobimy na zwykłych var-ach.

//HELM
var int PROT_HELM_EDGE; //OSTRZE
var int PROT_HELM_BLUNT;//OBUCH
var int PROT_HELM_POINT;//POCISKI
var int PROT_HELM_FIRE;//OGIEN
var int PROT_HELM_MAGIC;//MAGIA
//Obrona przed bronia = EDGE i BLUNT

//BOOTS
var int PROT_BOOTS_EDGE;
var int PROT_BOOTS_BLUNT;
var int PROT_BOOTS_POINT;
var int PROT_BOOTS_FIRE;
var int PROT_BOOTS_MAGIC;

//Kopjujemy tekst i zamieniamy teraz BOOTS na BRACER, i zlatuje szybciej, ale najlepszy i tak jest column mode;p
//BRACER
var int PROT_BRACER_EDGE;
var int PROT_BRACER_BLUNT;
var int PROT_BRACER_POINT;
var int PROT_BRACER_FIRE;
var int PROT_BRACER_MAGIC;

//itd.
//bez problemu można dodać też inne np. FLY, FALL, BARRIER itd.


//Teraż przejdzmy do samego triggera, rozpisze kawalek funkcji jakby mialo to wygladać.
func void ARMOR_CHECK()
{
//---------------------
// HELM -ZS_HELMET
//---------------------
//Zdaje sobie sprawe ze hełm można zrobić prostrzym sposobem;P
if(ARMORPART_HELM==ARMOR_NONE)//lub poprostu (!ARMORPART_HELM)
{
//Render nothing.
}
else if(ARMORPART_HELM==ARMOR_THIEF)
{
//Render helm of thief armor.
Wld_PlayEffect("V_ARMOR_THIEF_HELM",hero,hero,0,0,0,FALSE);
}
else//(Lub jesli bedzie wiecej) if(ARMORPART_HELM==ARMOR_GRD_HEAVY)
{
//Render helm of heavy old camp guard armor.
Wld_PlayEffect("V_ARMOR_GRD_HEAVY_HELM",hero,hero,0,0,0,FALSE);
};

//---------------------
// BOOTS
//-Bip01 R Foot & Bip01 L Foot
//---------------------
if(ARMORPART_BOOTS==ARMOR_NONE)//lub poprostu (!ARMORPART_BOOTS)
{
//Render nothing.
}
else if(ARMORPART_BOOTS==ARMOR_THIEF)
{
//Render thief boots.
//RIGHT:
Wld_PlayEffect("V_ARMOR_THIEF_RFOOT",hero,hero,0,0,0,FALSE);
//LEFT:
Wld_PlayEffect("V_ARMOR_THIEF_LFOOT",hero,hero,0,0,0,FALSE);
}
else//(Lub jesli bedzie wiecej) if(ARMORPART_BOOTS==ARMOR_GRD_HEAVY)
{
//Render heavy old camp guard boots.
//RIGHT:
Wld_PlayEffect("V_ARMOR_GRD_HEAVY_RFOOT",hero,hero,0,0,0,FALSE);
//LEFT:
Wld_PlayEffect("V_ARMOR_GRD_HEAVY_LFOOT",hero,hero,0,0,0,FALSE);
};
//...itd.
//WLD_SENDTRIGGER("NAZWATRIGGERA"); ->najlepiej jednak zrobic pętle w spacerze.
};

//Czas ma przykłady efektów VFX (czyli tego z Wld_PlayEffect)

//VFX - PRAWY BUT ZBOI ZLODZIEJA
instance V_ARMOR_THIEF_RFOOT (CFx_Base_Proto) // HEAL ORIGIN wird automatisch über emFXInvestOrigin_S getriggert. Aura um den Spieler
{
visname_S = "P_ARMOR_THIEF_RFOOT";//PFX - najlepiej nazywac wszystko wedlug jakiegos systemu, bedzie nam dużo łatwiej wszystko ogarnąc póżniej.
//Być może dla poprawy efektu, bedzie trzeba zmodyfikowac wartości PONIŻEJ.
visAlpha = 1;
emtrjmode_s = "FIXED";
//Być może dla poprawy efektu, bedzie trzeba zmodyfikowac wartości POWYŻEJ.
emTrjOriginNode = "Bip01 Spine1";//Bip do którego bedzie przyłączony PFX.
// LightPresetname = "AURA";
emFXLifeSpan = 1;//Czas trwania VFX'a, w naszym wypadku 1 (sekunda) - tak jak czas co jaki powtarza sie trigger.

};

//VFX - HEŁM CIĘŻKIEJ ZBROI STRAŻNIKA
instance V_ARMOR_GRD_HEAVY_HELM (CFx_Base_Proto) // HEAL ORIGIN wird automatisch über emFXInvestOrigin_S getriggert. Aura um den Spieler
{
visname_S = "P_ARMOR_GRD_HEAVY_HELM";//PFX - najlepiej nazywac wszystko wedlug jakiegos systemu, bedzie nam dużo łatwiej wszystko ogarnąc póżniej.
//Być może dla poprawy efektu, bedzie trzeba zmodyfikowac wartości PONIŻEJ.
visAlpha = 1;
emtrjmode_s = "FIXED";
//Być może dla poprawy efektu, bedzie trzeba zmodyfikowac wartości POWYŻEJ.
emTrjOriginNode = "Bip01 Spine1";//Bip do którego bedzie przyłączony PFX.
// LightPresetname = "AURA";
emFXLifeSpan = 1;//Czas trwania VFX'a, w naszym wypadku 1 (sekunda) - tak jak czas co jaki powtarza sie trigger.

};

//Czas na jakieś przykładowe PFXy - same pfxy maja za zadanie, nie jakby sie wydawalo, wyswietlanie czasteczek, a render mesha
//na którym te cząsteczki będa oparte - same cząsteczki mają być niewidzialne i w jaknajmniejszej ilosci.

//PFX - PRAWY BUT ZBROI ZŁODZIEJA
INSTANCE P_ARMOR_THIEF_RFOOT (C_PARTICLEFX)
{
ppsvalue = 3;
ppsscalekeys_s = "1";
ppsfps = 1;
shptype_s = "MESH";
shpfor_s = "object";
shpoffsetvec_s = "0 0 0";
shpdistribtype_s = "walk";
shpdim_s = "1";
shpmesh_s = "M_ARMOR_THIEF_RFOOT.3ds";//Kolejna nazwa - ze schematu - tu wstawic nazwe modelu czesci zbroi
ShpMeshRender_B = 1;
shpscalekeys_s = "1";
shpscaleislooping = 1;
shpscaleissmooth = 1;
shpscalefps = 1;
dirmode_s = "NONE";
velavg = 1.99999996e-012;
lsppartavg = 400;
flygravity_s = "0 0.000 0";
visname_s = "MAGICDUMMY16BIT_4.TGA";
visorientation_s = "NONE";
vistexisquadpoly = 0;
vistexanifps = 15;
vistexaniislooping = 1;
vistexcolorstart_s = "195 255 255";
vissizestart_s = "1 1";
vissizeendscale = 1;
visalphafunc_s = "NONE";
visalphastart = 1;
visalphaend = 1;
};

//PFX - HEŁM CIĘŻKIEJ ZBROI STRAŻNIKA
INSTANCE P_ARMOR_GRD_HEAVY_HELM (C_PARTICLEFX)
{
ppsvalue = 3;
ppsscalekeys_s = "1";
ppsfps = 1;
shptype_s = "MESH";
shpfor_s = "object";
shpoffsetvec_s = "0 0 0";
shpdistribtype_s = "walk";
shpdim_s = "1";
shpmesh_s = "M_ARMOR_GRD_HEAVY_HELM.3ds";//Kolejna nazwa - ze schematu - tu wstawic nazwe modelu czesci zbroi
ShpMeshRender_B = 1;
shpscalekeys_s = "1";
shpscaleislooping = 1;
shpscaleissmooth = 1;
shpscalefps = 1;
dirmode_s = "NONE";
velavg = 1.99999996e-012;
lsppartavg = 400;
flygravity_s = "0 0.000 0";
visname_s = "MAGICDUMMY16BIT_4.TGA";
visorientation_s = "NONE";
vistexisquadpoly = 0;
vistexanifps = 15;
vistexaniislooping = 1;
vistexcolorstart_s = "195 255 255";
vissizestart_s = "1 1";
vissizeendscale = 1;
visalphafunc_s = "NONE";
visalphastart = 1;
visalphaend = 1;
};

//No i niby wszystko jest zupełnie git, ale pewnie wielu z was już sie zastanawiało jak niby zrobić to żeby dało się założyc
//np. 10 róznych czesci zbroi naraz, jako pierścienie? jako pas? a może jako hełm? nic takiego, jako że wczesniej miałem
//podobny problem napisałem skrypt do itemów który pozwoli ci "założyc" nawet bryłki rudy, wlaściwie to to hack :P.

//Przykładowe itemy:


INSTANCE I_ARMOR_GRD_HEAVY_HELM(C_Item)//Instance itema jak widać bazowany na tym samym co zawsze
{
name = "Ciężki hełm strażnika";//NAZWA? :P

mainflag = ITEM_KAT_ARMOR;
flags = 0;

protection [PROT_EDGE] = 7;
protection [PROT_BLUNT] = 7;
protection [PROT_POINT] = 5;
protection [PROT_FIRE] = 5;
protection [PROT_MAGIC] = 1;

value = 175;

visual = "M_ARMOR_GRD_HEAVY_HELM.3ds";//Ten sam mesh co PFX - powinno wyglądać w miare
material = MAT_METAL;

description = name;
scemename = "NONE";//Nowy schemat taki sam jak np. czytanie mapy, picie piwa - z tym że animacja
//jest niezauwazalna i odrazu przechodzi do akcji, podłączego go potem jako załącznik.
//NARAZIE MOŻECIE DAC "MAP"
on_state[0] = PART_HELM;//Dla wszystkich hełmów ta sama funkcja
TEXT[1] = NAME_Prot_Edge; COUNT[1] = protection [PROT_EDGE];
TEXT[2] = NAME_Prot_Point; COUNT[2] = protection [PROT_POINT];
TEXT[3] = NAME_Prot_Fire; COUNT[3] = protection [PROT_FIRE];
TEXT[4] = NAME_Prot_Magic; COUNT[4] = protection [PROT_MAGIC];
TEXT[5] = NAME_Value; COUNT[5] = value;
};



INSTANCE I_ARMOR_THIEF_BOOTS(C_Item)//Odstepstwo od typowej reguły, bo buty są jako jeden przemiot, a PFXy i VFXy są 2.
{
name = "Buty złodzieja";

mainflag = ITEM_KAT_ARMOR;
flags = 0;

protection [PROT_EDGE] = 5;
protection [PROT_BLUNT] = 5;
protection [PROT_POINT] = 2;
protection [PROT_FIRE] = 1;
protection [PROT_MAGIC] = 0;

value = 175;

visual = "M_ARMOR_GRD_HEAVY_HELM.3ds";//Ten sam mesh co PFX - powinno wyglądać w miare
material = MAT_METAL;

description = name;
scemename = "NONE";//Nowy schemat taki sam jak np. czytanie mapy, picie piwa - z tym że animacja
//jest niezauwazalna i odrazu przechodzi do akcji, podłączego go potem jako załącznik.
//NARAZIE MOŻECIE DAC "MAP"
on_state[0] = PART_BOOTS;//Dla wszystkich butów ta sama funkcja
TEXT[1] = NAME_Prot_Edge; COUNT[1] = protection [PROT_EDGE];
TEXT[2] = NAME_Prot_Point; COUNT[2] = protection [PROT_POINT];
TEXT[3] = NAME_Prot_Fire; COUNT[3] = protection [PROT_FIRE];
TEXT[4] = NAME_Prot_Magic; COUNT[4] = protection [PROT_MAGIC];
TEXT[5] = NAME_Value; COUNT[5] = value;
};

//Teraz czas na funkcje które beda wywoływać te częsci zbroi - maja one na celu
//1. Usawić przedmiot jako założony - wczesniej zdejmując inne z tej samej kategorii np. zakładając
//ciezkie buty strażnika, zdejmuja się nam automatycznie buty złodzieja.
//2. Odjąc punkty obrone poprzednio używanego przedmiotu i dodać obrone nowego przedmiotu.

//Funkcja zbiorowa butów
func void PART_BOOTS()
{
var c_item itm;//wymagana zmienna pomocnicza.

//Musimy zączać od sprawdzenia w jakims stanie są obecnie "użyte buty"
//Jeśli są założone, gracz napewno chce je zdjąć, jeżeli nie są założone musi być na odwrót.

//Dodam że zmienna item w obecnej chwil przechowuje używany C_ITEM, co oczywiscie bardzo szeroko wykorzystamy;P.
//Nie jestem pewien, ale zmienna 'self' przechowuje raczej osobe która dany przedmiot używa, z racji ze nie jestem pewny,
//będe poprostu korzystał z 'hero'.
if(item.flags==0)//0 to wartość początkowa, czyli taka przy której przedmiot nie jest założony, wiec gracz chce go ZAŁOŻYĆ.
{
//Zaczynamy od zdjęcia starego przedmiotu, nie bawimy sie w zaawansowane funkcje sprawdzające czy przedmiot był załozony.
//Poprostu wykonujemy operacje przy każdym przedmiocie który jest w ekwipunku herosa i mógł być założony.

//Buty złodzieja:
if(Npc_HasItems(hero,I_ARMOR_THIEF_BOOTS))//takie sprawdzenie zwróci prawde jeśli ilość tych przedmiotów to bedzie równa jeden lub więcej.
{
itm = Npc_GetInvItem(hero,I_ARMOR_THIEF_BOOTS);
itm.flags = 0;//zdejmujemy wszelkie flagi itemowi, teraz napewno nie będzie "załozony".
};
//Ciężkie buty strażnika:
if(Npc_HasItems(hero,I_ARMOR_GRD_HEAVY_BOOTS))//
{
itm = Npc_GetInvItem(hero,I_ARMOR_GRD_HEAVY_BOOTS);
itm.flags = 0;
};
//itd. w wypadku wiekszej ilosci przedmiotów

//Wszystkie ewentualnie założone przedmioty mamy już zdjete, teraz czas na odjęcie punktów obrony:

hero.protection [PROT_EDGE] -=PROT_BOOTS_EDGE;
hero.protection [PROT_BLUNT]-=PROT_BOOTS_BLUNT;  
hero.protection [PROT_POINT]-=PROT_BOOTS_POINT;  
hero.protection [PROT_FIRE] -=PROT_BOOTS_FIRE;  
hero.protection [PROT_MAGIC]-=PROT_BOOTS_MAGIC;  

//zmiennym przypisujemy nowe wartosci obrony:

PROT_BOOTS_EDGE  = item.protection[PROT_EDGE];
PROT_BOOTS_BLUNT = item.protection[PROT_BLUNT];
PROT_BOOTS_POINT = item.protection[PROT_POINT];
PROT_BOOTS_FIRE  = item.protection[PROT_FIRE];
PROT_BOOTS_MAGIC = item.protection[PROT_MAGIC];

//teraz ustawiamy je bohaterowi:
hero.protection [PROT_EDGE] +=PROT_BOOTS_EDGE;
hero.protection [PROT_BLUNT]+=PROT_BOOTS_BLUNT;  
hero.protection [PROT_POINT]+=PROT_BOOTS_POINT;  
hero.protection [PROT_FIRE] +=PROT_BOOTS_FIRE;  
hero.protection [PROT_MAGIC]+=PROT_BOOTS_MAGIC;  

//pozostało tyło jeszcze "założyć" przedmiot, musimy tylko przypisać mu specjalna flage:
item.flags = 1<<30;
};

};


//Funkcja zbiorowa hełmów
func void PART_HELM()
{
var c_item itm;

//Ta sama spiewka co w wypadku Butów, tym razem bez zbednych juz chyba komentarzy.
if(item.flags==0)
{

if(Npc_HasItems(hero,I_ARMOR_THIEF_HELM))
{
itm = Npc_GetInvItem(hero,I_ARMOR_THIEF_HELM);
itm.flags = 0;
};

if(Npc_HasItems(hero,I_ARMOR_GRD_HEAVY_HELM))
{
itm = Npc_GetInvItem(hero,I_ARMOR_GRD_HEAVY_HELM);
itm.flags = 0;
};

hero.protection [PROT_EDGE] -=PROT_HELM_EDGE;
hero.protection [PROT_BLUNT]-=PROT_HELM_BLUNT;  
hero.protection [PROT_POINT]-=PROT_HELM_POINT;  
hero.protection [PROT_FIRE] -=PROT_HELM_FIRE;  
hero.protection [PROT_MAGIC]-=PROT_HELM_MAGIC;  

PROT_HELM_EDGE  = item.protection[PROT_EDGE];
PROT_HELM_BLUNT = item.protection[PROT_BLUNT];
PROT_HELM_POINT = item.protection[PROT_POINT];
PROT_HELM_FIRE  = item.protection[PROT_FIRE];
PROT_HELM_MAGIC = item.protection[PROT_MAGIC];

hero.protection [PROT_EDGE] +=PROT_HELM_EDGE;
hero.protection [PROT_BLUNT]+=PROT_HELM_BLUNT;  
hero.protection [PROT_POINT]+=PROT_HELM_POINT;  
hero.protection [PROT_FIRE] +=PROT_HELM_FIRE;  
hero.protection [PROT_MAGIC]+=PROT_HELM_MAGIC;  

item.flags = 1<<30;
};

};

//Na koniec kilka słow o samym meshu/modelu czesci zbroi, jedynie w teorii, bo grafikiem nie jestem, wiec przykładu
//raczej nie zrobie.
//-Całość trzeba wypozycjonować tak żeby BIP/ZS do którego jest przyporządkowana cześć zbroi była punktem 0,0,0 na scenie
//kopjujemy najlepiej potrzebnego bipa, razem z czescia mesha ze zbroi która będzie nam potrzebna, wszystko pozycjonujemy,
//na koniec usuwamy bipeda i zostawiamy samą część zbroi.
//-Warto aby kawałki zbroi które sobie tak utworzymy zamknąć, mimo tego ze ciało spod spodu bedzie widoczne, czasami beda sie napewno
//pojawiac puste przestrzenie, wtedy zamkniecie modelu znacznie poprawiło by efekt, niemówiac juz o dopasowaniu elementów z róznych
//zbrói - w wypadku zamkniecia modelu bedzie to wygladalo znacznie lepiej.
Gdyby ktoś chciał się za to zabrać, to jestem w stanie pomóc i doradzic, no chyba ze to by był mod który dodaje królewskich
gwardzistów, wtedy bym sie poważnie zastanowił - osobiscie proponuje wydać to w postaci łatki do gothica.

Całość była pisana pod G1, skrypty nie były testowane, ale staralem się nie popełniac błędów.
Czekam na jakąkolwiek dyskusje, zainteresowanie, no i nie przerażać się wielkoscia - jest taka a nie inna
przedewszystkim dlatego ze staralem sie wszystko wytlumaczyc komentarzami.
 



orcwarrior

orcwarrior

The Modders
posty475
Propsy317
Profesjabrak
  • The Modders
UPDATE:

Poprawiłem problem z pfx'ami, zamieszczam filmik zeby pokazac ze to dziala.
(Robione samym triggerem, nie chcialo mi sie itemów tworzyc, dla niedowiarków nie ma problemu zebym tez pokazał.)


http://tinypic.com/player.php?v=25h3kom&s=6

Mam nadzieje że ktoś sie zgłosi do zrobienia tego, w sumie połowa roboty jest jak na tacy, wystarczy jeden grafik 3d na srednim poziomie + skrypter, też niekoniecznie najwyzszych lotów. Do tego jakies 1-2 tygodnie roboty i patch do g1 w postaci dzielonych zbroi gotowy :( .
 



jendrzejs

jendrzejs

Użytkownicy
posty586
Propsy31
Profesjabrak
  • Użytkownicy
Ja moge zacząc to robic,zabieram sie od  zaraz.
 

Althar

Althar

Użytkownicy
posty307
Propsy44
  • Użytkownicy
Brawo ! orc, jesteś geniuszem :D .  Skoro mamy już duale, tarcze, pancerz na części to teraz trzeba zrobić celownik do kuszy/łuku :D . W Gothicu chyba można zrobić wszystko wystarczy tylko wiedzieć jak. Proponowałbym przenieść Twoje posty do działu "Tutoriale".
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Genialne, nikt nie pomyślał wcześniej że meshe można renderować za pomocą pfx'ów podczepionych konkretne bipedy :D . Mam tylko takie pytanko, całość musi być ciągle odświeżana za pomocą tick tocka? Co się będzie działo jeśli tylko "założy się" jakiś element ale nie będzie odświeżało?

LordSmarkula

LordSmarkula

Użytkownicy
posty141
Propsy1
  • Użytkownicy
I niech teraz mówią, że Gothic nie jest dostatecznie modowalny :D
 
Ludzie zamienili religię na telewizję. Teraz telewizja daje lepsze efekty w manipulowaniu ludźmi.



Znakiem bogatej młodzieży nie wiedzącej co zrobić z pieniędzmi nie powinien być banan, a nadgryzione jabłuszko.

orcwarrior

orcwarrior

The Modders
posty475
Propsy317
Profesjabrak
  • The Modders

orcwarrior
The Modders

Poszczególne elementy pancerza
#37 2009-12-23, 12:34(Ostatnia zmiana: 2009-12-23, 12:39)
Genialne, nikt nie pomyślał wcześniej że meshe można renderować za pomocą pfx#msgote author=Avallach link=topic=7792.msg74776#msg74776 date=1261568056]Genialne, nikt nie pomyślał wcześniej że meshe można renderować za pomocą pfxów podczepionych konkretne bipedy :D  . Mam tylko takie pytanko, całość musi być ciągle odświeżana za pomocą tick tocka? Co się będzie działo jeśli tylko "założy się" jakiś element ale nie będzie odświeżało?
Być może Wld_RemoveEffect załatwiłby sprawe, musiałbym sprawdzić, narazie robiłem to tak zeby działało, i jakoś wygladało.

W takim wypadku - trzeba by przy załozeniu przedmiotu Wld_PlayEffect... ,który trzeba prawdopodobnie powtórzyć kiedy wczytamy grę (moment po wczytaniu gry da sie określić i wprowadzać tam jakie sie chce operacje - wiec to zaden problem) no przy zakładaniu innego przedmiotu tego typu trzeba by ten stary efekt z przedmiotem skasować, wiec: Wld_RemoveEffect. Jedyny problem z tym że nie wiem czy ten remove effect tak naprawde działa.

@jendrzejs - rozumiem ze zgłaszasz się jako grafik 3d? świetnie, w takim razie potrzebujemy tylko skryptera.


Wszyscy swoje oferty wypisywać tutaj, skrypterzy - nie lekajcie się :D , pomogę.
 



jendrzejs

jendrzejs

Użytkownicy
posty586
Propsy31
Profesjabrak
  • Użytkownicy
I niech teraz mówią, że Gothic nie jest dostatecznie modowalny :D
Przieceż w Gothic da sie zrobic PRAWIE wszystko tylko trzeba umiec.

@up
Ja sie na skryptera zgłaszam moge cos wymodelowac ale nie bedzie to zbytnio ładne :D
 

orcwarrior

orcwarrior

The Modders
posty475
Propsy317
Profesjabrak
  • The Modders

orcwarrior
The Modders

Poszczególne elementy pancerza
#39 2009-12-23, 12:40(Ostatnia zmiana: 2009-12-23, 12:41)
@up
Ja sie na skryptera zgłaszam moge cos wymodelowac ale nie bedzie to zbytnio ładne :D

Acha, w takim razie jezeli chodzi o modele, to mysle ze i tak byś sobie poradził - wycinać czesci zbroji byś pewnie potrafil, a dorobic do tego kilka trisów zeby w tym wycietym meshu nie bylo pustych miejsc - pewnie też.
 




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