Manawydan Mantis - NPC
Detaily problému
0001192NPCNezařazanoveřejný06.10.2013 - 14:4306.01.2014 - 20:03
Whitey 
Whitey 
normálnímaláN/A
uzavřenývyřešený 
0001192: Partovací NPC
Přesunout vlastnosti z BaseFriendlyCreature do BaseCreature.
Umožnit definici zóny v které NPC hlídá vstup do party:
- střed lokace + poloměr (oboje definovatelné; nyní je to Home a RangeHome; střed definovatelný jako bod mapy, Home, nebo pozici NPC)
- území (dva rohy + min/max výška)
Umožnit podobně definovat opuštění party (nyní pokud je hráč dál než RangeHome od NPC).
Žádné štítky nepřiloženy.
spojený s %id 0001213uzavřený Whitey Hráčům přátelské týmy (záporná čísla týmu) 
Historie problému
06.10.2013 - 14:43WhiteyNový problém
06.10.2013 - 14:43WhiteyStavnový => přiřazený
06.10.2013 - 14:43WhiteyPřiřazen => Whitey
10.10.2013 - 18:08WhiteyPoznámka přidána: 0003119
10.10.2013 - 18:08WhiteyStavpřiřazený => čeká na testy
12.10.2013 - 01:12StigPoznámka přidána: 0003123
12.10.2013 - 01:18StigPoznámka upravena: 0003123bug_revision_view_page.php?bugnote_id=3123#r841
12.10.2013 - 10:33WhiteyPoznámka přidána: 0003124
12.10.2013 - 10:46WhiteyPoznámka přidána: 0003125
12.10.2013 - 11:54WhiteyPoznámka upravena: 0003125bug_revision_view_page.php?bugnote_id=3125#r843
12.10.2013 - 12:39StigPoznámka přidána: 0003126
12.10.2013 - 12:41StigPoznámka upravena: 0003126bug_revision_view_page.php?bugnote_id=3126#r845
12.10.2013 - 12:44StigPoznámka upravena: 0003126bug_revision_view_page.php?bugnote_id=3126#r846
12.10.2013 - 12:47StigPoznámka upravena: 0003126bug_revision_view_page.php?bugnote_id=3126#r847
12.10.2013 - 13:05WhiteyPoznámka přidána: 0003128
12.10.2013 - 13:43WhiteyPoznámka přidána: 0003131
12.10.2013 - 19:32WhiteyPoznámka přidána: 0003132
12.10.2013 - 19:34WhiteyPoznámka upravena: 0003132bug_revision_view_page.php?bugnote_id=3132#r849
20.10.2013 - 13:19GalranPoznámka přidána: 0003146
20.10.2013 - 16:20WhiteyPoznámka přidána: 0003148
20.10.2013 - 16:21WhiteyPoznámka upravena: 0003148bug_revision_view_page.php?bugnote_id=3148#r857
20.10.2013 - 16:21WhiteyPoznámka upravena: 0003148bug_revision_view_page.php?bugnote_id=3148#r858
20.10.2013 - 16:47GalranPoznámka přidána: 0003150
26.10.2013 - 11:59WhiteyPoznámka přidána: 0003161
26.10.2013 - 11:59WhiteyStavčeká na testy => reakce
27.10.2013 - 10:38WhiteyVztah přidánspojený s %id 0001213
18.12.2013 - 20:26StigPoznámka přidána: 0003315
22.12.2013 - 08:06WhiteyPoznámka přidána: 0003316
22.12.2013 - 08:06WhiteyStavreakce => přiřazený
22.12.2013 - 08:55WhiteyPoznámka přidána: 0003317
22.12.2013 - 08:55WhiteyStavpřiřazený => čeká na testy
24.12.2013 - 12:37GalranPoznámka přidána: 0003320
24.12.2013 - 23:58WhiteyPoznámka přidána: 0003323
24.12.2013 - 23:58WhiteyStavčeká na testy => reakce
04.01.2014 - 10:49WhiteyPoznámka přidána: 0003333
04.01.2014 - 10:49WhiteyStavreakce => přiřazený
04.01.2014 - 10:49WhiteyStavpřiřazený => čeká na testy
05.01.2014 - 11:47GalranPoznámka přidána: 0003345
05.01.2014 - 12:17WhiteyPoznámka přidána: 0003347
06.01.2014 - 18:32GalranPoznámka přidána: 0003357
06.01.2014 - 20:03WhiteyPoznámka přidána: 0003365
06.01.2014 - 20:03WhiteyStavčeká na testy => uzavřený
06.01.2014 - 20:03WhiteyŘešeníotevřený => vyřešený

Poznámky k problému
(0003119)
Whitey   
10.10.2013 - 18:08   
SVN 1905
Parametry přesunuty z BaseFriendlyMobile (zrušeno) na BaseMobile.
Vše se ovládá jediným parametrem, "PartyZoneDefinition":
Definice může být:
"SQR:x,y,r" = obdélník, střed x,y, poloměr r
"RND:x,y,r" = kruh, střed x,y, poloměr r
parametr "x,y" lze zaměnit za "home" (homepozice NPC), nebo "this" (aktuální pozice NPC).
Příklad:
"SQR:this,10" = partyzóna tohoto NPC je čtvercová, okolo něj, s poloměrem 10 polí
"RND:1000,1000,50" = partyzóna má střed 1000,1000, je kulatá a má poloměr 50 polí.

Definice by měla být vždy celá, ale teoreticky by mělo fungovat i:
"SQR:this" = partyzóna v dosahu tohoto NPC a jeho ActiveRange (to samé RND)
"SQR:home" = partyzóna v místě domova tohoto NPC a jeho RangeHome
(0003123)
Stig   
12.10.2013 - 01:12   
(upraveno: 12.10.2013 - 01:18)
Pokud je pohromadě víc monster s nastaveným partováním, tak vleze do party hráči jen jedno z nich.. Nedalo by se to nějak ošetřit např. aby podle shodného Teamu anebo nekonfliktního stavu mezi těma NPC (nejsou pro sebe agresory) byla vytvořena parta se všema?

Jinak kdyby to byl problém, že by čistě teoreticky pak mohli hledat "všichni" po celé mapě svoje parťáky (netuším, jak je to přesně udělané), tak bych to klidně omezil na viditelnost.. Ono by to stejně možná bylo vůbec nejlepší, aby partu navázal pouze pokud hráče to NPC opravdu vidí a opustil jí, jakmile se vzdálí ze zadané oblasti (tedy opuštění jako dosud, to bych na viditelnost už nevázal).


Jinak pro jedno NPC to zdá se funguje bez problémů, paráda, díky moc!

(0003124)
Whitey   
12.10.2013 - 10:33   
Nyní je jediné omezení, že parta musí být hráčská. Tj. měly by se tam přidat všechny NPC které hráče vidí. Podívám se kde je problém, možná se musí u založení party ručně nastavovat příznak "PlayerParty" (nebo jak se jmenuje).

Vstup do party upravím podle týmu - pokud už bude v partě NPC z jiného týmu, pak tohle nevstoupí.
Můžu taky upravit aby při vstupu do party automaticky přidal obsah svého spawneru, tj. i když ho ostatní NPC ze spawneru neuvidí, tak se přidají.
A do třetice upravím aby NPC které z party vykopneš do ní až do restartu nevstupovalo, pokud ho sám nepozveš.
(0003125)
Whitey   
12.10.2013 - 10:46   
(upraveno: 12.10.2013 - 11:54)
Ať testuji jak testuji, mě se do party přidají všechny NPC, které mají nastavené partování - testováno s "SQR:this" (= čtvercová okolo NPC, s dosahem jejich ActivationRange).

Jediný problém že po mém vystoupení ji nezrušili.

(0003126)
Stig   
12.10.2013 - 12:39   
(upraveno: 12.10.2013 - 12:47)
Uff, tak to je divné, budu pokračovat v testech, třeba na něco přijdu.
Dneska sem si udělal Spawner s pěti NPC a dal jsem jim "SQR:this,10" (btw. asi pak přenesu tu vlastnost Party definice i na Spawnery).
Napřed sem jim nastavil, aby měli partu spolu (přes Spawner) a Team = 3.
a) Pokud mají zatrženou položku "Parta" na spawneru, tak mi do party nechtěli vstoupit. Myslím, že můj včerejší problém mohl mít právě tento důvod, protože NPC z armádních questů mají spolu partu.
A teď ještě jedna zvláštní věc, asi mimo, ale asi důvod, proč mi jedno z těch NPC do party vlezlo:
někdy, když se spawnuje ta parta vojáků, tak jeden z nich je dle mého mimo partu. Vůbec třeba nebojuje po boku svých přátel a jak sem psal včera, tak to asi byl ten jediný, co mi do party vlezl. Skoro mi to přijde, jak kdyby tam byl nějaký problém typu číslování polí od nuly/od jedničky, ale spíš to bude nějak složitější, protože to nedělá vždycky, ale jen někdy (zatím neznám specifika).
b) Pokud mají jenom Team, tak do party mi vlezou všechny. Ale nějak mě už nevyhodili, ani když jsem odběhl dál než 10 políček, ani když sem přepnul do GM modu. Vyhodil jsem se tedy sám tlačítkem. Potom už mě zas nechtěli brát do party - to už je asi na serveru ta změna, aby do restartu znovu nevstoupili zpět?
Toto dělá i bez Teamu. Skoro se mi zdá, že ještě včera mě bez problému vyhazovali a brali zpět sami.. ať už jsem odběhl anebo přepl do GM modu.
c) NPC mě z party nevyhodili ani když sem dal respawn - tedy přestali existovat. To samé platí i pro smrt NPC.
d) Napadl jsem jednoho z mých členů party, on opětoval údery a následně ho umlátili jeho kamarádi.. Nevím, jak by tohle mělo vypadat, radši to ale reportuju. :)

(0003128)
Whitey   
12.10.2013 - 13:05   
SVN 1909
- oprava rozpuštění party (nerozpustila se pokud v ní bylo víc NPC)
- oprava dosahu při definici "home" bez použití dosahu (dosah = RangeHome, ne ActiveRange)
- pokud má spawner nastavený tým (tým != 0), přidají se do party všechna týmovací NPC ze spawneru
- oprava detekce "hráče v dosahu" pokud je v partě víc NPC a partyzóna má jako střed NPC ("this")
- NPC se nepokusí o vstup do party která má členy jiného týmu než je tým NPC
- NPC vyhozené z party se již nepokouší o vstup, pokud není ručně pozváno
(0003131)
Whitey   
12.10.2013 - 13:43   
Poznámka: Přidat definici zóny na Spawner!
Pokud bude na spawneru null (string.IsNullOrEmpty), zůstane NPC jeho defaultní hodnota, jinak se změní,
(0003132)
Whitey   
12.10.2013 - 19:32   
(upraveno: 12.10.2013 - 19:34)
Spawner upraven.
Připomínám že vlastnost NPC "PartyZoneDefinition" by měla být nastavitelná i z interakce.

(0003146)
Galran   
20.10.2013 - 13:19   
- NPC vyhozené z party se již nepokouší o vstup, pokud není ručně pozváno
Zkoušel jsem NPC pozvat a ono mi vždy pozvání odmítlo.

- NPC se nepokusí o vstup do party která má členy jiného týmu než je tým NPC
Vytvořeny dva spawnery, každý s jiným teamem -> do party mi vždy vlezli všichni.

Pokud má npc "team" vyšší jak -1, tak i přes partu s hráčem útočí všechna npc na hráče.
(0003148)
Whitey   
20.10.2013 - 16:20   
(upraveno: 20.10.2013 - 16:21)
"již" nepokouší o vstup.
Jde o partující NPC které se ti přidá do party a ty ho pak vyhodíš. Dokud existuje parta z které to NPC bylo vyhozeno, tak se nepokouší o automatický vstup, pokud ho nepozveš ručně.
Jediná nepartující NPC které lze pozvat do party jsou hráčem ovládaná NPC (pety, summony).

Omezení týmem jsem asi neudělal, říkal jsem si že je to zbytečné.
Přidám to tam.

Parta a Tým jsou dvě odlišné věci.
NPC se stále bude chovat podle pravidel svého týmu i když je s někým v partě.

(0003150)
Galran   
20.10.2013 - 16:47   
Citace:
"Parta a Tým jsou dvě odlišné věci.
NPC se stále bude chovat podle pravidel svého týmu i když je s někým v partě."

Dobrá, nešlo by tedy zařídit, aby spawner uměl přiřadit hodnoty menší jak -1 (NPC by po sobě šla, ale ne po hráči)?
(0003161)
Whitey   
26.10.2013 - 11:59   
Tohle chování (záporné týmy) stále není naskriptováno.
Uvidím co se s tím dá dělat.
(0003315)
Stig   
18.12.2013 - 20:26   
Hráč mi hlásil:
"ta parta se nerozpusti když opustim lokaci"
Jedná se o region Obrana mostu v mapě Plane1. Do lokace se vstupuje portem z interakce, z lokace se odchází portem z interakce (příkaz IS Move). Je to port mezi mapou Manawydan a mapou Plane1, kdyby to náhodou hrálo roli.
Na spawnerech je nastaveno "SQR:this,20".
(0003316)
Whitey   
22.12.2013 - 08:06   
Mrknu na to, problémem bude zřejmě ta rozdílná mapa.
(0003317)
Whitey   
22.12.2013 - 08:55   
Změna mapy ošetřena, lze otestovat.
(0003320)
Galran   
24.12.2013 - 12:37   
- NPC se nepokusí o vstup do party která má členy jiného týmu než je tým NPC
Vytvořeny dva spawnery, každý s jiným teamem -> do party mi vždy vlezli všichni. ...tohle pouze připomínám. :)

- Též jsem si všiml, že se z party nevyhazují mrtvá NPC.
(0003323)
Whitey   
24.12.2013 - 23:58   
Na ty týmy mrknu, stejně tak na ta mrtvá NPC.
(0003333)
Whitey   
04.01.2014 - 10:49   
Týmy vyřešeny (bug1213).

SVN 2198:
NPC při zabití se odhlašují z party, výjimkou jsou peti vázaní perkem.
Oprava přihlašování NPC do party, kde už je NPC z jiného týmu (problém záporných týmů).
(0003345)
Galran   
05.01.2014 - 11:47   
NPC už berou ohled na svojí partu, až na jednu vyjímku a to, když mají oba týmy záporné hodnoty, tak se stále do party přidají obě perty NPC.

NPC se už správně odhlašují z party při zabití. :)
(0003347)
Whitey   
05.01.2014 - 12:17   
Problém byl jinde, tým -4 a tým 4 byl považován za shodný tým.
SVN 2206 to opraví.
(0003357)
Galran   
06.01.2014 - 18:32   
Funguje. :)
(0003365)
Whitey   
06.01.2014 - 20:03   
Jsem rád že jsme tenhle nápad dotáhli do konce.
Děkuji za test a uzavírám.