Uživatel: Heslo:
collapse collapse

* Uživatelská sekce

 
 
Vítejte Host. Prosím přihlašte se nebo zaregistrujte.Nedostali jste svůj aktivační email??

* Pokec

Sorry, this shoutbox does not exist.
Výtejte na forum.unrealeditor.cz

REGISTRACE je spuštěna. Nahrávání avatarů funguje zatím jen z externího URL nebo z knihovny co už tu je.

xxSpuštění triggeru po události jako je např. zabití NPC

Květen 16, 2012, 09:37:23 odpoledne od deter | Views: 26 | Comments: 4

Zdravím,

po delší době jsem opět nažhavil unrealed, tentokrát kvůli hře Deus Ex, kterou jsem objevil docela nedávno a chytla mě natolik, že mám hned potřebu udělat si nějakou tu vlastní misi :)

Mám tento požadavek: mám nějakýho NPC pawna a chci aby se spustil trigger  pokud ho zastřelím, nebo případně pokud změní svůj "stav" (v originále tzv. orders tag).

Můj požadavek zní sice dost Deus Ex specificky, ale jde asi obecně o spuštění vlastního triggeru, pokud se změní nějaká vlastnost nějakýho actora.  S UScriptem nemám žádnou zkušenost, ale předpokládám, že přes něj by to nějak jít mělo, tak jestli někdo máte nějaký hint, budu vděčný ,)

xxSraz 2012

Březen 27, 2012, 07:03:57 odpoledne od Herakleitos | Views: 374 | Comments: 9

Léto se blíží a je třeba naplánovat termín srazu, aby se chata mohla už nějak rezervovat. Je to chata, kde jsme byli na srazu v roce 2010, už je to nějak předběžně domluveno. Byla možnost to zamluvit i na chatě, kde jsme byli loni, ale nechci, aby to dopadlo s lidma jako minule. 4x jsem volal majiteli chaty a musel jsem mu postupně oznamovat, že pojede míň a míň lidí.. Naštěstí to nebyl parchant a nechtěl žádné storno poplatky, které bych z některých lidí asi nevytáhl.
Potřebuju teda vědět, kdo by měl předběžně zájem a taky návrhy na termín. Já bych to viděl zase na první týden v červenci. Bylo by to teda 5 dní, od 3.7(úterý) do 7.7(sobota). V tom týdnu jsou i nějaké svátky. Tak se na to zase nevyserte a snažte se dopředu si zabrat dovolenou a hlavně pište návrhy..

Odkaz na web chaty - www.lucarino.cz

Na TS se mluvilo o tom, že někomu by vyhovovalo být tam od 5.7. (čtvrtek) do 8.7. (neděle). Je potřeba se k tomu vyjádřit, ať se domluvíme na tom termínu..

Rozhoduje se teda mezi 2 termíny: 3.7. (úterý) - 7.7 (sobota) - 5 dní
                                                        5.7. (čtvrtek) - 8.7. (neděle) - 4 dny



odkaz na mapu:
Kód: [Vybrat]
http://mapy.cz/#x=17.337830&y=50.099275&z=14&t=s&q=Ludv%C3%ADkov&qp=13.009262_49.220325_18.578478_51.093690_7&d=firm_1992372_1

xxMeshPlus UT99

Daewon
Únor 27, 2012, 12:56:29 odpoledne od Daewon
Views: 702 | Comments: 35

Ahoj, koumal jsem jak vyřešit problém s mizením větších meshů jen pomocí UScriptu.
Problém meshů je že vám zmizí když nemáte v pohledu jejich Střed(těžiste).
Unreal script nám ovšem dovoluje změnit u aktoru Location a PrePivot.
Takže pokud zmenim u actoru Location a odečtu PrePrepivot od uložene DefaultLocation pozice Actoru, tak Mesh ktery zobrazuje Actor vypada že se vubec nepohnul, kdežto Střed se nam pohne kam chceme :)

Pak stačilo vyřešit kam Sřed, přenašet. Ted to funguje tak že MeshPlus actor kontroluje vector Location PlayerPawn a pokud
se hráč dostane do kontrolniho Boxu. Pokud je uvnitř, tak se Střed MeshPlusu meni podle pozice hráče.
Rychlost každé nové pozice se dá nastavit 20/40/80 za vteřinu.
Předtim jsem to zkousel pomoci externich actoru a touch, nebo ZoneInfa, dopadlo to tak že to zasekavalo hru atd...

dale je zde ještě druhy kontrolni Box, ktery udava jesti ma mesh plynule zmizet nebo se objevit.(if bDistanceFade)

Aktualni problemy..
Optimalizace:
        - nevim zda řešeni pomoci Stavů je dobré, zvlašt když jsou dost rychle opakovány ve smičkach
        - pokud letite s Raketou od Redeemeru, zmena Středu je vypnuta, a Fade/Out check probiha pomaleji
          pokud to bylo zapnute, tak se to sekalo jak prase

        - najit jiny zpusob, napr. zmenit Středu vic pred hrace, než presně na jeho Location. Ono když běžite, tak
          než proběhne další změna, tak kousek se pohnete od Středu. proto taky nejpomalejši check je 20x/1 sec,
          když jsem to měl 10x tak se stavalo že mesh semtam problikaval (mizel).
Podpora online:
        - MeshPlus je DumbProxy, tudiš se ni neposila ani neprima, problem je že použivam pro kontrolu pozici
          PlayerPawn actoru, takže pokud hrajete online tak se v mape zobrazi vice PlayerPawn.
          Chtelo by to aby to prijalo pouze 1 hráče ktery by nebyl replikovan od ostanich..
          takže by zmeny Actoru probyhali pouze pro vas.

TestLevel + Source:
Nic extra, ale mužete si vyzkoušet jak to funguje.
http://daewon.ic.cz/MeshPlus.zip

Class MeshPlus:
Kód: [Vybrat]
//=============================================================================
// MeshPlus. Class by Daewon // 27.2.2012 // DaewonSong@seznam.cz
// MeshDrawing:
// If player isn't in mesh check box, mesh is normal.
// Else if player is in check box, mesh is going to state
// FindPlayerLoc and find player location every 20x,40x or 80x per second.
// So, saved player location is now location of mesh,
// therefore need prepivot mesh, to make it appear, they didn't moved :)
// Now actor still on "same position", because center point(pivot) is same as
// center of player view, so Mesh didn't Disappearing.
// DistanceFade:
// Mesh Fade if player isn't in other check box.
//=============================================================================
class MeshPlus expands Actor;

// ----------------------------------------------------------------------------
// If you need collision for this actor,
// you must use 'multiple BlockAll actors' or Invisible semisolid brush...
// If you use in level WarheadLauncher weapon, place to level MPWSfixer,
// it's fixes problem when player view is from guided rocket.
// ----------------------------------------------------------------------------

// Update speed
var() enum EMeshUpdateSpeed
{
US_SLOW, // 20 per second, may strobe
US_NORMAL, // 40 per second, relative good
US_FAST, // 80 per second, ...
} UpdateSpeed;

var() vector BoxCheck; // set check box for mesh update(manualy to mesh scale)
var() vector BoxFade; // set fade box for mesh fade
var() bool bDistanceFade; // mesh fade in/out (after fade out, go bHidden)
var vector DefaultLoc; // save default location
var vector defaultpivot; // default zero pivot
var float UpdateLocation; // custom timing
var PlayerPawn PP;
var GuidedWarShell GG;
var int SavedStyle; // save default style
var vector BP; // check box vector +
var vector BM; // check box vector -
var vector BPf; // fade box vector +
var vector BMf; // fade box vector -
var bool bRocket; // fix problem with fade
var int Fade; // other fade fix (scaleglow)
var float DefaultGlow; // save default glow

// nekolik parametru, ktere se nastavi pred zacatkem hry
function PreBeginPlay()
{
// set some default's
SetCollision(false,false,false);
SetCollisionSize(0,0);
bRocket=false;
DefaultGlow=ScaleGlow;
Fade=0;

// set update speed
if ( UpdateSpeed == US_FAST )
UpdateLocation=0.0125;
else if ( UpdateSpeed == US_NORMAL )
UpdateLocation=0.025;
else
UpdateLocation=0.05;

// set default location and pivot
DefaultLoc=Location;
defaultpivot.x=0;
defaultpivot.y=0;
defaultpivot.z=0;
// set check box
BP.x=DefaultLoc.x+(BoxCheck.x/2);
BM.x=DefaultLoc.x-(BoxCheck.x/2);
BP.y=DefaultLoc.y+(BoxCheck.y/2);
BM.y=DefaultLoc.y-(BoxCheck.y/2);
BP.z=DefaultLoc.z+(BoxCheck.z/2);
BM.z=DefaultLoc.z-(BoxCheck.z/2);
// set fade box
BPf.x=DefaultLoc.x+(BoxFade.x/2);
BMf.x=DefaultLoc.x-(BoxFade.x/2);
BPf.y=DefaultLoc.y+(BoxFade.y/2);
BMf.y=DefaultLoc.y-(BoxFade.y/2);
BPf.z=DefaultLoc.z+(BoxFade.z/2);
BMf.z=DefaultLoc.z-(BoxFade.z/2);

// save real default style
if (Style == STY_Masked)
SavedStyle = 2;
else if (Style == STY_Translucent)
SavedStyle = 3;
else if (Style == STY_Modulated)
SavedStyle = 4;
else
SavedStyle = 1;

Super.PreBeginPlay();
}

// autostav kontrola pozice hrace
auto state FindPlayerLoc
{
Begin:
ForEach AllActors(class 'PlayerPawn', PP)
if (PP!=None)
{
// check
if (PP.Location.x<BM.x || PP.Location.x>BP.x || PP.Location.y<BM.y || PP.Location.y>BP.y || PP.Location.z<BM.z || PP.Location.z>BP.z)
{
SetLocation(DefaultLoc);
prepivot=defaultpivot;
}
else if (PP.Location.x>=BM.x || PP.Location.x<=BP.x || PP.Location.y>=BM.y || PP.Location.y<=BP.y || PP.Location.z>=BM.z || PP.Location.z<=BP.z)
{
SetLocation(PP.Location);
prepivot=DefaultLoc-PP.Location;
}
// fade out/in
if (bDistanceFade)
{
bRocket=false;
if (PP.Location.x<BMf.x || PP.Location.x>BPf.x || PP.Location.y<BMf.y || PP.Location.y>BPf.y || PP.Location.z<BMf.z || PP.Location.z>BPf.z)
{
if (ScaleGlow>=DefaultGlow)
Fade=1;
}
else if (PP.Location.x>=BMf.x || PP.Location.x<=BPf.x || PP.Location.y>=BMf.y || PP.Location.y<=BPf.y || PP.Location.z>=BMf.z || PP.Location.z<=BPf.z)
{
if (ScaleGlow<=0.0)
Fade=2;
}
}
}

// update new location and prepivot
Sleep(UpdateLocation);
if (Fade==1)
GotoState( 'FadeOut', 'Begin' );
else if (Fade==2)
GotoState( 'FadeIn', 'Begin' );
else
GotoState( 'FindPlayerLoc', 'Begin' );
}

// stav se spusti pokud je pohled hrace z rakety redeemeru
state FindRocketLoc
{
Begin:
ForEach AllActors(class 'GuidedWarShell', GG)
if (GG!=None)
{
// check disabled, much lagy :/
SetLocation(DefaultLoc);
prepivot=defaultpivot;

// fade out/in
if (bDistanceFade)
{
bRocket=true;
if (GG.Location.x<BMf.x || GG.Location.x>BPf.x || GG.Location.y<BMf.y || GG.Location.y>BPf.y || GG.Location.z<BMf.z || GG.Location.z>BPf.z)
{
if (ScaleGlow>=DefaultGlow)
Fade=1;
}
else if (GG.Location.x>=BMf.x || GG.Location.x<=BPf.x || GG.Location.y>=BMf.y || GG.Location.y<=BPf.y || GG.Location.z>=BMf.z || GG.Location.z<=BPf.z)
{
if (ScaleGlow<=0.0)
Fade=2;
}
}
}

// update new location and prepivot
Sleep(0.1); // slowy
if (Fade==1)
GotoState( 'FadeOut', 'Begin' );
else if (Fade==2)
GotoState( 'FadeIn', 'Begin' );
else
GotoState( 'FindRocketLoc', 'Begin' );
}

// mesh fade in
state FadeIn
{
Begin:
bHidden=false;
Style=STY_Translucent;
ScaleGlow=ScaleGlow+0.125;
Sleep(0.1);
if (ScaleGlow<=DefaultGlow)
GotoState( 'FadeIn', 'Begin' );
else
GotoState( 'FadeIn', 'Close' );

Close:
if (SavedStyle==2)
Style=STY_Masked;
else if (SavedStyle==3)
Style=STY_Translucent;
else if (SavedStyle==4)
Style=STY_Modulated;
else
Style=STY_Normal;

Fade=0;
if (!bRocket)
GotoState( 'FindPlayerLoc', 'Begin' );
else
GotoState( 'FindRocketLoc', 'Begin' );
}

// mesh fade out
state FadeOut
{
Begin:
Style=STY_Translucent;
ScaleGlow=ScaleGlow-0.125;
Sleep(0.1);
if (ScaleGlow>=0.0)
GotoState( 'FadeOut', 'Begin' );
else
GotoState( 'FadeOut', 'Close' );

Close:
bHidden=true;
Fade=0;
if (!bRocket)
GotoState( 'FindPlayerLoc', 'Begin' );
else
GotoState( 'FindRocketLoc', 'Begin' );
}

Pages: [1] 2


* Poslední téma

topic Spuštění triggeru po události jako je např. zabití NPC
[Unreal script]
Daewon
Květen 17, 2012, 09:47:52 dopoledne
topic MeshPlus UT99
[Unreal script]
Leo(T.C.K.)
Květen 16, 2012, 02:28:50 dopoledne
topic Sraz 2012
[Fear/LiT/Unchained]
Rhombus
Duben 26, 2012, 04:27:14 odpoledne
topic RE: Nové fórum
[O fóru]
Sektan
Duben 01, 2012, 10:03:52 odpoledne
topic Nedokončené projekty..
[Unreal Editor 1.0/2.0 - Unreal 1]
Leo(T.C.K.)
Únor 27, 2012, 05:47:44 odpoledne

* Kalendář

Květen 2012
Ne Po Út St Čt So
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 [19]
20 21 22 23 24 25 26
27 28 29 30 31

No calendar events were found.

* Poslední příspěvek

* Kdo je Online

  • Dot Hostů: 3
  • Dot Skrytých: 0
  • Dot Uživatelů: 0

There aren't any users online.