Quest Expediční vlčák
#1
Jednoduchý návrh pro jednoduchý začátečnický Quest :-)

RP:
Bylo nebylo, jednou při zakládání cechu Expedice, se její členové rozhodli. Že by měli rádi nějakého hlídače v době své nepřítomnosti.
Proto hraničářka Mabel na žádost Denetriuse ochočila Lesního vlka, kterého vychovala a dali mu tento úkol.
Ovšem v dobách nepřítomnosti netušili, že jejich vlčák si nebude schopný v Isharu ulovit potravu.
Pomůže mu někdo?

[Obrázky: UO_20141202_174017_69898.png]


Návrh: Jednoduchý questík pro začátečníky, ktery jde splnit pouze jednou.
Donést vlčákovi dvě syrová masa aby měl co jíst.
Odměna: 70 expů
Interakce při přiblížení hráče *smutně kouká*
Běžná interkace *čenichá*

Šlo by to? Smile
Odpovědět
#2
Zkus mrknout sem: http://wiki.manawydan.cz/doku.php?id=wik...cni_system Smile
Odpovědět
#3
Uff takže to zkusim... aspoň z toho někdo pochopí můj nápad.
Kód:
<?xml version="1.0" encoding="utf-8"?>
<Interaction ID="Expediční_Vlk">
  <Procedure ID="doubleclick">
    <Trigger WaitOn="Doubleclick" Range="3" />
    <emote>*Smutně kouká*</emote>
  </Procedure>
</Interaction>
<Trigger WaitOn="emote" Text="Položil maso">
     target.CountItems("Syrové Maso")
     <Req>HasItem("Meat", 2, "Syrové Maso", "")</Req>
    <emote>Vděčně zaštěkal a pustil se do jídla>
</Trigger>

Musel bych ty skripty číst tak hodinu a učit se to, je to jine než sphere, ale tohle sem si nějak vycucal z prstu z toho co tam je (neznam jmena itemů v DB, ani způsob všech možných kombinací)

čize funkce lajcky by byla asi taková

v dosahu (range) 5 jakéhokoliv hráče by se zpustil emote *Smutně kouká*
při doubleclicku, by se zpustil emote hráče *Vypadá hladově, co mu něco dát*
při dalším emotu hráče *Položil maso* nebo *Dal vlkovi maso*
se zpustí podmínka, která bude hledat, jestli hráč má 2x Syrové maso (žebro)
pokud ano, zpustí se emote *Vděčně zaštěkal a dal se do jídla*
player gain exp (nebo jak je ten příkaz) 75 +
if no - tak emote hráče *Jsem si jistý, že mám to co chce?*
konec scriptu...
Odpovědět
#4
Tyhle xml skripty pro chování NPC (Interakční systém, zkráceně IS) je náš vlastní Smile

Pro automatické spuštění když někoho vidí je trigger s čekáním na "onsee", s doubleclickem by to emotoval až na poklepání.
Poptám se jestli neuvolníme program v kterém se ta skripta nechají zjednodušeně psát.
Nevěřte rase která se pořád usmívá. Něco s ní není v pořádku.
Odpovědět
#5
Nemame zadny plne funkcni program na kontrolu script Angry Sice se v tom editoru psat daji, ale moc to nepomuze, protoze nejde jednoduse overit funkcnost script (zastarala databaze) a ani editor sam o sobe nedela zadne korekce nebo neco podobneho.
Odpovědět
#6
Nenašla by se nějaká hodná duše, která by to scripty napsala korektně správně?
Přeci to nemůže být tak těžké, je to jednoduchý questík D-:
Odpovědět
#7
Ten editor je stejně naprd.. Smile Jediná kontrola XML je načíst ho v prohlížeči, to odhalí chyby ve stromové struktuře, což je aspoň něco.
Tohle jistě neprojde ani validací formátu XML (tedy prohlížeč to "nepustí") a je tam pár dost zásadních chyb (koncová značka Interaction uprostřed interakce apod.), ale jinak jako začátek je to dobrý. Nic radši neslibuju, ale pokud se k tomu nikdo nedostane, zkusím to doklepnout a hodit sem (+ do hry) výsledek.
Odpovědět
#8
Mám to skoro hotový, jen si musím osvěžit paměť, protože mi to nějak nechce fungovat se Stage (blok interakce pro zjišťování stavu plnění úkolu)..
Odpovědět
#9
Akorát si nejsem jistý co udělá PetSpawner pokud se na něj připne NPC s interakcí.
Pokud ho nemíníte používat, smažu ho.
Nevěřte rase která se pořád usmívá. Něco s ní není v pořádku.
Odpovědět
#10
Ani si nepamatuju, jestli jde na PetSpawner nahodit interakce, jako na standardní Spawner.. Smile Každopádně NPC s interakcí a bez Kill/Damage Triggeru stejně neumírá a pokud bude releasnuté (jakože určitě), tak asi moc dalších výhod PetSpawner pro NPC s interakcí nepřinese.
Odpovědět
#11
Snad finální verze - podpora pro: náhodné fráze v dialozích (větší rozmanitost rozhovorů), Reputace (Ishar), Perky: Přesvědčování, Smlouvání, Chovatel, Rváč, Porozumění zvířatům.
Drobná XP odměna, ať to není úplná charita.
Kód:
<?xml version="1.0" encoding="utf-8"?>
<Interaction ID="expedicni_vlk">
    <Stage Name="maso_pro_psa" Title="Maso pro psa">
        <Objective ID="1">Potkal##a# jsem psa před cechem Expedice. Vypadá hladově. Možná by uvítal aspoň dva kousky syrové svaloviny.</Objective>
        <Objective ID="-1">Nakrmil##a# jsem psa před cechem Expedice. Byl vděčný.</Objective>
        <Objective ID="-2">Potýral##a# jsem trochu čokla před cechem Expedice. Teď už snad přestane somrovat.</Objective>
    </Stage>
  <Procedure ID="see">
    <Trigger WaitOn="See" Target="Any.Player" Range="5" />
    <If>
        <Req>this.IsExpired("pauza_vlk_emotes")</Req>
        <Expire Target="this" Name="pauza_vlk_emotes" Seconds="15"/>
        <Turn To="target"/>
        <Emote>@RandomString("smutně kouká","schlíple stojí","kouká posmutněle","má svěšený ocas","kňučí")@</Emote>
        <Sound Play="136"/>
      </If>      
      <End/>
  </Procedure>
  <Procedure ID="start">
    <Trigger WaitOn="Doubleclick" Range="3"/>
    <Turn To="target"/>
    <Show Dialog="start_convo"/>
  </Procedure>
    <Dialog ID="start_convo">
        <Text>*@RandomString("vzhlédl k tobě v očekávání","zvedl hlavu","zbystřil","očuchává tě")@*</Text>
        <Choice>
            <Req>Stage("maso_pro_psa") = 0</Req>
            <Text>Hodnej pejsek..</Text>
            <After>
                <Wait Time="1"/>
                <Turn To="target"/>
                <Emote>@RandomString("zaštěkal","olízl ti ruku","vrtí ocasem","kouká tázavě")@</Emote>
                <Wait Time="2"/>
              <Emote>@RandomString("vypadá hladově","vypadá zuboženě","koukaj mu žebra","kouká kolem, co by sežral")@</Emote>
              <SetStage Name="maso_pro_psa" ID="1"/>
                <Sound Play="136"/>  
                <End/>    
            </After>
        </Choice>
        <Choice>
            <Req>target.Thug &gt; 1</Req>
            <Req>!target.Tag("expedicni_vlk_thug-dealt") == "true"</Req>
            <Text>[Rváč] *nakopnout psa*</Text>
            <After>
                <Wait Time="1"/>
              <Turn To="target"/>
                <Emote>@RandomString("vrčí na tebe","štěká","vyjel po tobě")@</Emote>
                <Sound Play="135"/>
                <Trust Zone="Ishar" Take="10"/>
                <AddExperience NoMessage="true" Amount="20"/>
                <Message>Obdržel##a# jsi 20 zkušeností za použití perku Rváč.</Message>
                <Set>target.Tag("expedicni_vlk_thug-dealt") = "true"</Set>
                <SetStage Name="maso_pro_psa" ID="-2"/>
                <End/>        
            </After>
        </Choice>
        <Choice>
            <Text>@RandomString("Zlej pes!","Ošklivej čokl!","Mazej odsud!","Táhni, čokle!")@</Text>
            <After>
              <Wait Time="1"/>
              <Turn To="target"/>
                <Emote>@RandomString("štěká","ustoupil o krok a kouká zvědavě","pozoruje tě zaujatě")@</Emote>
                <Sound Play="133"/>
              <End/>
          </After>
        </Choice>
      <Choice>
          <Text>*@RandomString("zavrčet","pohrozit pěstí","zařvat na něj")@*</Text>
          <After>
              <Wait Time="1"/>
              <Turn To="target"/>
                <Emote>@RandomString("štěká","ustoupil o krok a kouká zvědavě","pozoruje tě zaujatě")@</Emote>
                <Sound Play="133"/>
              <End/>
          </After>
      </Choice>
      <Choice>
          <Text>*odejít*</Text>
          <After>
              <Wait Time="1"/>
                <Emote>@RandomString("přestal si tě všímat","otočil hlavu jinam","sklonil hlavu a kouká do země")@</Emote>
        <Wait Time="2"/>
              <Emote>@RandomString("vypadá hladově","vypadá zuboženě","koukaj mu žebra","kouká kolem, co by sežral")@</Emote>
              <End/>
          </After>
      </Choice>
      <Choice>
          <Req>HasItem("RawMeat", 2)</Req>
          <Req>Stage("maso_pro_psa") &gt; -1</Req>
          <Text>*nabídnout dva kusy syrového masa*</Text>
          <After>
              <Req>GetItem("RawMeat", 2)</Req>
              <Wait Time="1"/>
              <Turn To="target"/>
                <Emote>vzal si maso a @RandomString("vrtí ocasem","pustil se hladově do něj")@</Emote>
                <AddExperience NoMessage="false" Amount="50"/>
                <Outlaw Zone="Ishar" Take="10"/>
                <SetStage Name="maso_pro_psa" ID="-1"/>
                <If>
                    <Req>target.Persuation &gt; 1 OR target.Haggling &gt; 1 OR target.MasterAnimalHandler &gt; 1</Req>
                    <Emote Target="target">drbe ho za ušima</Emote>
                    <Wait Time="1"/>
                  <Turn To="target"/>
                    <Emote>*radostně zaštěkal*</Emote>
                    <Sound Play="133"/>
                    <Outlaw Zone="Ishar" Take="5"/>
                    <AddExperience NoMessage="true" Amount="10"/>
                    <Message>Obdržel##a# jsi 10 zkušeností za použití pasivního perku.</Message>
                    <End/>
                </If>
                <If>
                    <Req>target.AnimalMastery &gt; 0</Req>
                    <Emote Target="target">drbe ho za ušima</Emote>
                    <Outlaw Zone="Ishar" Take="5"/>
                    <AddExperience NoMessage="true" Amount="20"/>
                    <Message>Obdržel##a# jsi 20 zkušeností za použití perku Porozumění zvířatům.</Message>
                    <End/>
                </If>
          </After>
      </Choice>
    </Dialog>
</Interaction>

Testnu to ještě naposled a nahodím..
Odpovědět
#12
Funkční, nasazeno.
Odpovědět
#13
Jen je blby, ze ted kazdej vi, co ma delat a kolik za to dostane Tongue
Odpovědět
#14
Bylo předem daný, co má kdo udělat, to už bylo v samotnym zadání, takže se to ví od postu číslo 1.. Smile Je to jen o nakrmení psa, miniquest, odměna je symbolická - základní XP odměna činí 50 expů. A výši odměny lze ovlivnit jen vlastnictvím perku, což udělá rozdíl nějakých 10-20 XP navíc. Biggrin Na tom questu je nejtěžší najít toho psa a co se mu má donést, to už se napíše úplně přesně přímo v zadání.
Tady bych to tudíž nevnímal přímo jako spoiler, nakrmit psa masem je triviální úkon. Spíš jsem to sem dal, aby tu byly nějaký učební materiály i pro hráče.
Kdyby šlo o složitější hádanky nebo logické úlohy, tak je to samozřejmě spoiler jak prase, to se na fórum opravdu dávat nemá.. Smile Zveřejnit quest na Měsíční štít jednorožce nebo ten hádankářský quest z Vilhelmovic atd. snad nikoho nenapadne.

Ale jinak věci jako tohleto a třeba i armádní questy, v tom problém nevidím, protože je předem dané, co je třeba udělat a technicky se jedná o vcelku zajímavé interakce s prakticky maximálním využitím všech možností IS.
Bylo by podle mě supr nedělat interakce jen v základním tvaru, ale začlenit tam i všechny ty featury jako perky, reputaci, pseudonáhodný stringy a další hodnoty a to se dá právě podle kódu výše solidně naučit. Ačkoliv samozřejmě cokoliv je lepší než nic.. Smile
Odpovědět



Skok na fórum: