Thalie


Persistentní svět hry Neverwinter Nights
It is currently 10:33 28. Mar 2024

All times are UTC + 1 hour [ DST ]





Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 41 posts ]  Go to page 1, 2, 3  Next
Author Message
 Post subject: Užitečné scripty
PostPosted: 11:05 15. Aug 2011 
Offline
Ďábel
User avatar
 Profile

Joined: 20:20 24. Jul 2009
Posts: 5342
Moc se ve scriptech nevyznám, ale pokud už jsou v modulu a je k nim návod, tak je rád použivám.

Jde mi o to, aby se sem dávaly scripty, které už v modulu jsou a aby se psalo k čemu jsou a jak je využít. :wink:

A taky aby sem někdo dával nově vytvořené scripty a tak dále. :)

Takže script 1

Mám dveře na které jsem použil script ja_door_onopen, zamkl jsem je a použil na předmět (například dalekohled) vedle script ku_opendoor. Vše samozřejmě funguje jak má.
Ted bych ale třeba rád ten dalekohled (který ovládá dveře) zamkl a použít by šel jen po odemčení klíčem.
Jak to udělat? Páč script ku_opendoor se vykoná, ikdyž je ovládací předmět zamčený.

script 2

Mám další dveře :) a opět jsem je zamkl a tak dále. Chci ty dveře otevřít pomocí dvou pák, za které se musí zatáhnout současně (dvě postavy). Jak to udělat?
Existuje ten script v modulu a nebo se musí vytvořit nový?

script 3

A aby toho nebylo málo, mám další dveře, opět zamčené, jak jinak :roll: :D . Chci aby se ty dveře otevřely poté, když postava šlápne na nějaké tlačítko, takže prakticky vahou postavy.
Existuje takový spouštěč, script ve hře? Na Dragon hammeru byl spouštěč pojmenovaný pressure, ale script se odkazoval na nějaký další, který rozlišoval hmotnost.
Popřípadě existuje jednodušší řešení? ;)

To asi zatím vše, díkas za odpovědi ;)

Popřípadě sem pište jiné užitečné scripty a prosím i návody k nim a k nastavení proměných. Díkas :)

_________________
Aria Oria - pohledná divoká dívka, která ráda své skvostné tělo vystavuje jen ve skromném oblečení. Její postava nese znaky dračí krve, od rudých křídel, přes oranžové dračí oči, až po tělo hřející tak, jako by měla horečku.
Měšťanka Karathy a členka Morusova stánku.

*otisk rudých rtů nad tím malý dráček držící mrkev a to vše ve zlatém poli*


Top
Reply with quote  

 Post subject: Re: Užitečné scripty
PostPosted: 12:26 15. Aug 2011 
Offline
Temnota
User avatar
 WWW  ICQ  Profile

Joined: 10:42 10. May 2007
Posts: 16269
Location: Somewhere around nothing
1. Zamčená páka Viděl bych to asi nějak takhle:
ku_lever_lock.nss
Code:
void main() {

  object oLever = OBJECT_SELF;
  string script;
  if(GetLocked(oLever)) {
    PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE);
    SpeakString(oLever, "* Paka je zamcena a neni mozne s ni hnout *");
    string script = GetLocalString(oLever,"LOCKED");
    if(GetStringLength(script) > 0) {
      ExecuteScript(script, oLever);
    }
  }
  else {
    string script = GetLocalString(oLever,"UNLOCKED");
    PlayAnimation(ANIMATION_PLACEABLE_ACTIVATE);
    DelayCommand(2.0,PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
    if(GetStringLength(script) > 0) {
      ExecuteScript(script, oLever);
    }
  }
}

Do proměnný UNLOCKED na páce dáš script, kterej se má vykonat pouze když je páka odemčená.

_________________
Neaktivní a nezasahující do vývoje. Pouze nouzový support pro WB/DM.
***********************************************
Les jambes en l'air, comme une femme lubrique,
Brûlante et suant les poisons,
Ouvrait d'une façon nonchalante et cynique
Son ventre plein d'exhalaisons.


Top
Reply with quote  

 Post subject: Re: Užitečné scripty
PostPosted: 12:33 15. Aug 2011 
Offline
Temnota
User avatar
 WWW  ICQ  Profile

Joined: 10:42 10. May 2007
Posts: 16269
Location: Somewhere around nothing
2. Otevírání dveří pomocí více pák (nutnost spustit najednou více pák.)

ku_door_lever.nss:
Code:
void LeverReturn(object oDoors, object oLever) {

  AssignCommand(oLever,PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE));
  int iPushed = GetLocalInt(oDoors,"KU_LEVER_PUSHED") - 1;
  if(iPushed < 0)
    iPushed = 0;
  SetLocalInt(oDoors,"KU_LEVER_PUSHED",iPushed);

}

void main()
{
  int iType = 0; //Doors
  string sTag = "";
  int i;
  //ovladacmu prvku nastavit tyto promenne:
  //DOORS_COUNT, int, pocet dveri
  //PLC_DOORS, int, 1 pokud jsou dvere placeable
  //DOORS_TAG, string, tag dvari
  int iCount = GetLocalInt(OBJECT_SELF,"DOORS_COUNT");
  float LeverTimeout = GetLocalFloat(OBJECT_SELF,"TIMEOUT");
  object oLever = OBJECT_SELF;

  if(GetLocalInt(OBJECT_SELF,"PLC_DOORS")) {
    iType = 1;
    sTag = GetLocalString(OBJECT_SELF,"DOORS_TAG");
  }
  if(iCount < 1) {
    iCount = 1;
  }

  PlayAnimation(ANIMATION_PLACEABLE_ACTIVATE);

  if(GetStringLength(sTag) > 0) {
    for(i=1;i<=iCount;i++) {
      object oDoors = GetNearestObjectByTag(sTag,OBJECT_SELF,i);
//SpeakString("mam dvere:"+GetName(oDoors));
      int iNeeded = GetLocalInt(oDoors,"LEVER_COUNT");
      int iPushed = GetLocalInt(oDoors,"KU_LEVER_PUSHED") + 1;
      SetLocalInt(oDoors,"KU_LEVER_PUSHED",iPushed);
      if(iPushed == iNeeded) {
        AssignCommand(oDoors,ActionOpenDoor(oDoors));
      }
      DelayCommand(LeverTimeout,LeverReturn(oDoors,oLever));
    }
  }

  SpeakString("Neni urceny tag dveri: 'DOORS_TAG'");
}

Ovládá se to zhruba stejně jako ku_opendoor. Tzn. do DOORS_TAG nastavit tag dveří, který to má otevírat, DOORS_COUNT = počet dveří, který to otevírá.
Navíc:
int LEVER_COUNT = počet pák, které se musí stlačit zároveň pro otevření.
float TIMEOUT = interval ve vteřinách, v kterym musí být páky spuštěny, protože by se těžko podařilo stlačit páky přesně najednou.

PS: Obojí jsem psal z hlavy a nemám to jak testnout. Můžou tam být chyby.

_________________
Neaktivní a nezasahující do vývoje. Pouze nouzový support pro WB/DM.
***********************************************
Les jambes en l'air, comme une femme lubrique,
Brûlante et suant les poisons,
Ouvrait d'une façon nonchalante et cynique
Son ventre plein d'exhalaisons.


Top
Reply with quote  

 Post subject: Re: Užitečné scripty
PostPosted: 12:34 15. Aug 2011 
Offline
Temnota
User avatar
 WWW  ICQ  Profile

Joined: 10:42 10. May 2007
Posts: 16269
Location: Somewhere around nothing
3. Takže chceš trigger na zemi, nebo jak je to myšleno?

_________________
Neaktivní a nezasahující do vývoje. Pouze nouzový support pro WB/DM.
***********************************************
Les jambes en l'air, comme une femme lubrique,
Brûlante et suant les poisons,
Ouvrait d'une façon nonchalante et cynique
Son ventre plein d'exhalaisons.


Top
Reply with quote  

 Post subject: Re: Užitečné scripty
PostPosted: 12:47 15. Aug 2011 
Offline
Ďábel
User avatar
 Profile

Joined: 20:20 24. Jul 2009
Posts: 5342
kucik wrote:
3. Takže chceš trigger na zemi, nebo jak je to myšleno?


Ano trigger na zemi.

Jinak děkuju za 1 a 2. Super ;)

_________________
Aria Oria - pohledná divoká dívka, která ráda své skvostné tělo vystavuje jen ve skromném oblečení. Její postava nese znaky dračí krve, od rudých křídel, přes oranžové dračí oči, až po tělo hřející tak, jako by měla horečku.
Měšťanka Karathy a členka Morusova stánku.

*otisk rudých rtů nad tím malý dráček držící mrkev a to vše ve zlatém poli*


Top
Reply with quote  

 Post subject: Re: Užitečné scripty
PostPosted: 13:18 15. Aug 2011 
Offline
Temnota
User avatar
 WWW  ICQ  Profile

Joined: 10:42 10. May 2007
Posts: 16269
Location: Somewhere around nothing
Pokud to má být jen trigger na zemi, který otevře dveře, tak tam úplně stejně můžeš dát ku_opendoor.
Pokud to má dělat ještě něco jiinýho, tak to chce popsat co.

_________________
Neaktivní a nezasahující do vývoje. Pouze nouzový support pro WB/DM.
***********************************************
Les jambes en l'air, comme une femme lubrique,
Brûlante et suant les poisons,
Ouvrait d'une façon nonchalante et cynique
Son ventre plein d'exhalaisons.


Top
Reply with quote  

 Post subject: Re: Užitečné scripty
PostPosted: 13:32 15. Aug 2011 
Offline
Ďábel
User avatar
 Profile

Joined: 20:20 24. Jul 2009
Posts: 5342
kucik wrote:
Pokud to má být jen trigger na zemi, který otevře dveře, tak tam úplně stejně můžeš dát ku_opendoor.
Pokud to má dělat ještě něco jiinýho, tak to chce popsat co.


To máš pravdu, stačí pak v proměné nastavit na dveřích DOORCLOSE_DELAY int třeba na 2, takže to ta postava nestihne proběhnout těma dveřma. Je to asi jednodušší než vytvářet nový script :).

Mě hlavně jde o to, abych z některých dungů vyhnal solisty a bylo tam potřeba aspon minimálně 2-3 postavy.

No další dotazy dodám. ;)

Díkas

_________________
Aria Oria - pohledná divoká dívka, která ráda své skvostné tělo vystavuje jen ve skromném oblečení. Její postava nese znaky dračí krve, od rudých křídel, přes oranžové dračí oči, až po tělo hřející tak, jako by měla horečku.
Měšťanka Karathy a členka Morusova stánku.

*otisk rudých rtů nad tím malý dráček držící mrkev a to vše ve zlatém poli*


Top
Reply with quote  

 Post subject: Re: Užitečné scripty
PostPosted: 14:58 18. Sep 2011 
Offline
Ďábel
User avatar
 Profile

Joined: 20:20 24. Jul 2009
Posts: 5342
Další dotaz :)

V jednom dungu na Thalii (v jednom chrámu v bažinách) je logická hádanka, kterou když postava správě vypočítá a řekne číslo, tak se objeví portál.

Šlo by to udělat i na slovo?
Třeba postava řekne něco a objeví se portál?
Pokud ano, jaký by byl script :)

Díkas. :wink:

_________________
Aria Oria - pohledná divoká dívka, která ráda své skvostné tělo vystavuje jen ve skromném oblečení. Její postava nese znaky dračí krve, od rudých křídel, přes oranžové dračí oči, až po tělo hřející tak, jako by měla horečku.
Měšťanka Karathy a členka Morusova stánku.

*otisk rudých rtů nad tím malý dráček držící mrkev a to vše ve zlatém poli*


Top
Reply with quote  

 Post subject: Re: Užitečné scripty
PostPosted: 15:07 18. Sep 2011 
Offline
Temnota
User avatar
 WWW  ICQ  Profile

Joined: 10:42 10. May 2007
Posts: 16269
Location: Somewhere around nothing
Slo. Jen se slovama je trosicku potiz: Rozlisuji se velka a mala pismena, je podstatna diakritika.

_________________
Neaktivní a nezasahující do vývoje. Pouze nouzový support pro WB/DM.
***********************************************
Les jambes en l'air, comme une femme lubrique,
Brûlante et suant les poisons,
Ouvrait d'une façon nonchalante et cynique
Son ventre plein d'exhalaisons.


Top
Reply with quote  

 Post subject: Re: Užitečné scripty
PostPosted: 11:18 19. Sep 2011 
Offline
Ďábel
User avatar
 Profile

Joined: 20:20 24. Jul 2009
Posts: 5342
kucik wrote:
Slo. Jen se slovama je trosicku potiz: Rozlisuji se velka a mala pismena, je podstatna diakritika.


Jasně no, ale tak to bych zvolil slovo, které by snad nedělalo problém.

A jaký je prosímtě ten script? Myslím ten v chrámu na ty čísla. Popřípadě i na to slovo.

Díky :wink:

_________________
Aria Oria - pohledná divoká dívka, která ráda své skvostné tělo vystavuje jen ve skromném oblečení. Její postava nese znaky dračí krve, od rudých křídel, přes oranžové dračí oči, až po tělo hřející tak, jako by měla horečku.
Měšťanka Karathy a členka Morusova stánku.

*otisk rudých rtů nad tím malý dráček držící mrkev a to vše ve zlatém poli*


Top
Reply with quote  

 Post subject: Re: Užitečné scripty
PostPosted: 11:44 19. Sep 2011 
Offline
Temnota
User avatar
 WWW  ICQ  Profile

Joined: 10:42 10. May 2007
Posts: 16269
Location: Somewhere around nothing
V tom chrámu je specifickej pro účely chrámu. Můžu ti ho poslat, lae stejně by se musel předělat na konkrétní účel.

_________________
Neaktivní a nezasahující do vývoje. Pouze nouzový support pro WB/DM.
***********************************************
Les jambes en l'air, comme une femme lubrique,
Brûlante et suant les poisons,
Ouvrait d'une façon nonchalante et cynique
Son ventre plein d'exhalaisons.


Top
Reply with quote  

 Post subject: Re: Užitečné scripty
PostPosted: 13:28 19. Sep 2011 
Offline
Ďábel
User avatar
 Profile

Joined: 20:20 24. Jul 2009
Posts: 5342
kucik wrote:
V tom chrámu je specifickej pro účely chrámu. Můžu ti ho poslat, lae stejně by se musel předělat na konkrétní účel.


Tak pošli prosím, já mrknu aspon co to obsahuje a třeba z toho něco použiju někdy ;)

_________________
Aria Oria - pohledná divoká dívka, která ráda své skvostné tělo vystavuje jen ve skromném oblečení. Její postava nese znaky dračí krve, od rudých křídel, přes oranžové dračí oči, až po tělo hřející tak, jako by měla horečku.
Měšťanka Karathy a členka Morusova stánku.

*otisk rudých rtů nad tím malý dráček držící mrkev a to vše ve zlatém poli*


Top
Reply with quote  

 Post subject: Re: Užitečné scripty
PostPosted: 15:53 19. Sep 2011 
Offline
Ďábel
User avatar
 Profile

Joined: 20:20 24. Jul 2009
Posts: 5342
Ted mě napadla další věc (já vím jsem otravný :roll: ).

Rád bych dal do dungu vězení a v něm nějaké živé a nebo položivé NPC.
A jelikož na Thalii jsou postavy, které rády zachranují nějaké vězně z dungu.

Tak bych chtěl, že pokud PC najde klíč od vězení a odemkne, tak po kliknutí na NPC mu vyskočí rozhovor s tím že bud může vězně nechat trpět v base a nebo ho pustí.

Jde mi o to jaký script je na odvolání NPC?

Díkas :wink:

_________________
Aria Oria - pohledná divoká dívka, která ráda své skvostné tělo vystavuje jen ve skromném oblečení. Její postava nese znaky dračí krve, od rudých křídel, přes oranžové dračí oči, až po tělo hřející tak, jako by měla horečku.
Měšťanka Karathy a členka Morusova stánku.

*otisk rudých rtů nad tím malý dráček držící mrkev a to vše ve zlatém poli*


Top
Reply with quote  

 Post subject: Re: Užitečné scripty
PostPosted: 16:13 19. Sep 2011 
Offline
Temnota
User avatar
 WWW  ICQ  Profile

Joined: 10:42 10. May 2007
Posts: 16269
Location: Somewhere around nothing
Tady je script pro sochu cca tak, jak se používá v chrámu. Viz http://www.nwnlexicon.com/compiled/func ... tring.html
Chová se to case insensitivně. V podstatě si nastavíš pattern podle toho, co čekáš že PC řekne a pak porovnáváš, jestli to pasuje.

Code:
void main()
{
    if(GetLocalInt( OBJECT_SELF, "JA_CHRAM2_ACTIV"))
        return;

    if(!GetLocalInt( OBJECT_SELF, "JA_CHRAM2_AGE")){
        int iAge = Random(1000);

        SetListenPattern( OBJECT_SELF, "*n", 1);
        SetListenPattern( OBJECT_SELF, "** *n **", 2);
        SetListenPattern( OBJECT_SELF, "** *n", 3);
        SetListenPattern( OBJECT_SELF, "*n **", 4);

        SetListening( OBJECT_SELF, TRUE );
    }

    int iAge = GetLocalInt( OBJECT_SELF, "JA_CHRAM2_AGE");
    int iMatch = GetListenPatternNumber();
    int iSaid = 0;

    if( iMatch == 1 || iMatch == 4 ){
        iSaid = StringToInt(GetMatchedSubstring(0));
    }
    else if( iMatch == 2  || iMatch == 3){
        iSaid = StringToInt(GetMatchedSubstring(2));
    }

    if( iSaid == iAge ){
        effect eStart = EffectVisualEffect( VFX_IMP_GOOD_HELP );

        ApplyEffectAtLocation( DURATION_TYPE_INSTANT, eStart, GetLocation(OBJECT_SELF) );
        PlayAnimation( ANIMATION_PLACEABLE_ACTIVATE );

        SetLocalInt( OBJECT_SELF, "JA_CHRAM2_ACTIV", 1 );
    }
}


Na zmizení NPC je návod tady:
http://www.nwnlexicon.com/compiled/func ... ppear.html

_________________
Neaktivní a nezasahující do vývoje. Pouze nouzový support pro WB/DM.
***********************************************
Les jambes en l'air, comme une femme lubrique,
Brûlante et suant les poisons,
Ouvrait d'une façon nonchalante et cynique
Son ventre plein d'exhalaisons.


Top
Reply with quote  

 Post subject: Re: Užitečné scripty
PostPosted: 09:27 20. Sep 2011 
Offline
Ďábel
User avatar
 Profile

Joined: 20:20 24. Jul 2009
Posts: 5342
kucik wrote:
....


Děkuju, omrknu a zkusím jak se mi to povede, snad :)

_________________
Aria Oria - pohledná divoká dívka, která ráda své skvostné tělo vystavuje jen ve skromném oblečení. Její postava nese znaky dračí krve, od rudých křídel, přes oranžové dračí oči, až po tělo hřející tak, jako by měla horečku.
Měšťanka Karathy a členka Morusova stánku.

*otisk rudých rtů nad tím malý dráček držící mrkev a to vše ve zlatém poli*


Top
Reply with quote  

Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 41 posts ]  Go to page 1, 2, 3  Next

All times are UTC + 1 hour [ DST ]



Who is online

Users browsing this forum: No registered users and 19 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group  
Design By Poker Bandits