Total Conversion Fórum Total Conversion BASH Account System
     
Bejelentkezés
Felhasználónév

Jelszó



Elfelejtetted jelszavad?
Új jelszó kérése

Hírek Tutorialok Generátorok
Mozgólépcső
Hali! Ebben a kis cikkben bemutatom, hogyan lehet egyszerűen mozgólépcsőket csinálni. Sajnos nem tudtam teljesen automatizálni a scriptet, ezért olyanok vágjanak bele akik már ismerik vmennyire a dolgot, persze így se lesz nehéz. :)

A dolog lényege hogy a lépcsőfokok egymást fogják "kergetni". Mindig az előtte lévő helyére akar majd menni.

Radiant

első körben csináljunk egy lépcsőfokot, és az aljára egy origin texturájú brusht.

Utána mindkettőt kijelölve jobbklikk>script>brushmodel.
Másoljuk le és pakoljuk egymás mellé őket.

Úgy pakold őket, hogy majd ha szépen egymás után mennek, akkor úgy nézzen ki mint egy mozgólépcső. Ezt talajhoz képest-i helyzetünkél is vedd figyelembe.


Most jelöld ki az egyik lépcsőfokot(mind1 hogy melyiket), majd Entity-ben, targetname -> mlepcso1.

Most haggyuk kijelölve ezt a lépcsőfokot és jelöljök még ki a következő lépcsőfokot, majd nyomjunk W.

Majd ezt a lépcsőfokot és hozzá a következőt, majd megint W. Egészen addig amíg körbe nem érünk.

Ezzel a módszerrel csinálhatunk több mozgólépcsőt is, csak azoknak más legyen a targetname-jük.
Nekem végül így nézett ki, két mozgólépcső egyiket úgy kötetöttem össze, hogy felfele a másikat meg úgy, hogy lefele menjen. A targetname-jük: mlepcso és mlepcso2.


Script

Kezdjük azzal, hogy megnyitjuk a jegyzettömbünket és beleírjuk ezt a pár sort:
main()
{
mozgolepcso1 = getent ("mlepcso","targetname");
mozgolepcso1 thread mozgolepcso1_mukodes();
mozgolepcso2 = getent ("mlepcso2","targetname");
mozgolepcso2 thread mozgolepcso2_mukodes();

}

mozgolepcso1_mukodes()
{
Lepesek[1] = self;

Lepesek[2] = getent(Lepesek[1].target,"targetname");
Lepesek[3] = getent(Lepesek[2].target,"targetname");
Lepesek[4] = getent(Lepesek[3].target,"targetname");
Lepesek[5] = getent(Lepesek[4].target,"targetname");
Lepesek[6] = getent(Lepesek[5].target,"targetname");
Lepesek[7] = getent(Lepesek[6].target,"targetname");
Lepesek[8] = getent(Lepesek[7].target,"targetname");
Lepesek[9] = getent(Lepesek[8].target,"targetname");
Lepesek[10] = getent(Lepesek[9].target,"targetname");
Lepesek[11] = getent(Lepesek[10].target,"targetname");
Lepesek[12] = getent(Lepesek[11].target,"targetname");
Lepesek[13] = getent(Lepesek[12].target,"targetname");
Lepesek[14] = getent(Lepesek[13].target,"targetname");

Lepesek[15] = Lepesek[1];
Lepesek thread mozgom();
}


mozgolepcso2_mukodes()
{
Lepesek[1] = self;

Lepesek[2] = getent(Lepesek[1].target,"targetname");
Lepesek[3] = getent(Lepesek[2].target,"targetname");
Lepesek[4] = getent(Lepesek[3].target,"targetname");
Lepesek[5] = getent(Lepesek[4].target,"targetname");
Lepesek[6] = getent(Lepesek[5].target,"targetname");
Lepesek[7] = getent(Lepesek[6].target,"targetname");
Lepesek[8] = getent(Lepesek[7].target,"targetname");
Lepesek[9] = getent(Lepesek[8].target,"targetname");
Lepesek[10] = getent(Lepesek[9].target,"targetname");
Lepesek[11] = getent(Lepesek[10].target,"targetname");
Lepesek[12] = getent(Lepesek[11].target,"targetname");
Lepesek[13] = getent(Lepesek[12].target,"targetname");
Lepesek[14] = getent(Lepesek[13].target,"targetname");
Lepesek[15] = Lepesek[1];

Lepesek thread mozgom();
}


mozgom(){
while (1)
{
for(i=1;i<self.size;i++){
f=i+1;
self[i] moveto (self[f].origin,1);
}
self[i] waittill ("movedone");
}
}

A kék rész az ami úgy ahogy van kell a scriptbe. Egy mozgó lépcsőhöz két fő dolog kell. első a mainban:

SCRIPTNÉV = getent ("NÉV","targetname");
SCRIPTNÉV thread SCRIPTNÉV_mukodes();

SCRIPTNÉV - a scriptben szereplő név, mind1 hogy mi
NÉV - amit a radiantban megadtunk neki

A második rész a függvénye.
SCRIPTNÉV_mukodes()
{
Lepesek[1] = self;

Lepesek[2] = getent(Lepesek[1].target,"targetname");
Lepesek[3] = getent(Lepesek[2].target,"targetname");
Lepesek[4] = getent(Lepesek[3].target,"targetname");

....

Lepesek[N] = getent(Lepesek[N-1].target,"targetname");
Lepesek[N+1] = Lepesek[1];

Lepesek thread mozgom();
}

SCRIPTNÉV - a scriptben szereplő név(amit a mainban adtunk emg neki)

A narancssárga részben olvassuk be a scriptbe a lépcsőfokokat. Az én mapomon 14 lépcsőfok volt, ezért a fenti scriptben is ez a vége:
Lepesek[14] = getent(Lepesek[13].target,"targetname");
Lepesek[15] = Lepesek[1];

Ahány lépcsőfokot raktál le annyi sort kell beírni a minta szerint, remélem rájössz a minta alapján hogyan kell.

Ezt a két dolgot kell megcsinálni mind a 2 script résznél. Egyes mozgólépcsőknek lehet különböző lépcsőszáma, ennek következtében a scriptjei is hosszabbak/rövidebbek lesznek.

Most mentsük el mozgo.gsc néven az IWD\maps\mp mappába.

Már csak a pályánk fő gsc fájlában kell megnyitnunk ezzel a sorral:
maps\mp\mozgo::main();

Az áltálam készített minta pálya map fájla és IWD fájla innen letölthető.

Kis videóm is van róla:
Ksisu 2010 - TotalConverion.hu
Üzenőfal
Üzenet küldéséhez be kell jelentkezned!

g4ngszt3r
2013/05/14 19:46
@SkinHead SS: - Gratulálok, én is csipem a rap-et, de ennek mi köze az oldal működéséhezWhat?

SkinHead SS
2013/05/14 18:56
Itt a helyem!Grin [Link]

spencer000
2013/05/14 16:57
@g4ngszt3r: - Kíváncsian várom, a fejleményeket.

g4ngszt3r
2013/05/14 10:12
@spencer000: - Lesz itt újdonság... Kezdetnek itt vagyok én :$ ... de nyugalom, elindultunk...

spencer000
2013/05/14 10:06
A lénnyeg, egy olyan csapat aki alkotna vmi okosságot, mert az, hogy a régi TC Fórumról a tutokat átpakolta PetX az új forumra, és 1-2 ember aki eddig is kérdezett, vagy írt a forumba ezután is megteszi, azon kivül semmi nem lett másabb az új forummal. Ameddig nem látja aki idejön, hogy van értelme ezzel foglalkozni, nem lesz semmi.

g4ngszt3r
2013/05/14 09:59
@spencer000: - Legközelebb amennyire lehetséges, egy üzenetben küld el a mondanivalód Smile Kicsit csakorlom a moderátorkodást Smile

spencer000
2013/05/14 09:51
Egy modellező már tuti lenne Grin Csak elkezdeni kell, csatlakozok lennének tuti, csak ha nem kezdi el a fene se, abból sok nem lesz.

spencer000
2013/05/14 09:50
Sztem a TC, ott vesztette értelmét, amikor a sok "modder"-nek elég volt az, hogy valahonnan szerzett módot, átírta, és azt tette fel szerverére. Ez gyakorlásnak egész, jó de ebből mod nem lesz. Szerintem elég lenne, egy olyan csapat akik, ha hétköznap nem, de hétvégén össze ül, és csinálják a modokat, nincs minden veszve ez tuti, ha egyszer sikerült miért ne sikerülne újra.

g4ngszt3r
2013/05/10 16:18
@Randall: - És arra gondoltál amire én... És persze, hogy a tutoriálból várják csodát, mivel ez már egy másik generáció... És ameddig nem tud valaki egy épkézláb módot magától írni, egyedi módot se várj. Comprende, amigo? Grin

Randall
2013/05/10 12:22
@g4ngszt3r: - mondom én... Grin A tc alapból egy modder csapat volt, és amíg készültek a modok, addig volt is élet. Ehelyett most mindenki a tutorialoktól várja a csodát, amik senkit sem érdekelnek. Ide nem új oldal kell, hanem egyedi modok. És amíg nincs ember az elkészítésükhöz, addig nincs is miről beszélni.

g4ngszt3r
2013/05/09 15:57
@Randall: - Ha arra gondolsz amire én, akkor nagyjából értem. Szabadfordításban pedig persze teljes átalakítást jelent... Úgy általában szerintem meg a totalconversion ( tc ) már az egész oldalt, módkészítést, pályakészítést, "szemléletet" magába foglalja. Legalábbis magyar viszonylatban. Smile Uff, szóltam OK

Randall
2013/05/08 10:55
Szerintem sokan félreértelmezitek, hogy mi is a TC valójában Grin

Szendvics
2013/05/08 01:53
Hát de tudod az oldal kell valakinek feleslegesen dolgozni meg... amúgy akkor üdv a fedélzeten már ha van ilyen Grin

g4ngszt3r
2013/05/07 11:48
@Szendvics: - Most úgy konkrétan az oldalra gondoltam. Grin De ez még várat magára, mostanában nem sokat vagyok gépnél. Igazán megkaphatnám már a névszínezést PetX Grin

asus89
2013/05/06 20:05
Csináltam Cod2Radiant telepitőt,raktam bele pár hasznos programot:cod2wpsettings, dds2iwi,iwitodds,EGTMapFX GSC,IWI_X_DDS_HUN,XModelE xporter_HUN,Tom_IWIViewer cod,2compiletools_compile bsp,modelshots v1.1.ezek találhatók a Bin [URL] meg találhatod a Minden programban [URL]