Manawydan Mantis

Detaily problému Přechod na poznámky ] Historie problému ] Tisk ]
IDProjektKategorieZobrazit stavDatum vloženíPoslední změna
0001192NPCNezařazanoveřejný06.10.2013 - 14:4306.01.2014 - 20:03
ReportérWhitey 
PřiřazenWhitey 
PrioritanormálníZávažnostmaláReprodukovatelnostN/A
StavuzavřenýŘešenívyřešený 
PlatformaOSVerze OS
Shrnutí0001192: Partovací NPC
PopisPř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).
ZnačkyŽádné štítky nepřiloženy.
Přiložené soubory

- Závislosti
spojený s %id 0001213uzavřenýWhitey Hráčům přátelské týmy (záporná čísla týmu) 

-  Poznámky k problému
(0003119)
Whitey (správce)
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 (správce)
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 (správce)
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 (správce)
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 (správce)
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 (správce)
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 (správce)
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 (správce)
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 (reportér)
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 (správce)
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 (reportér)
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 (správce)
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 (správce)
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 (správce)
22.12.2013 - 08:06

Mrknu na to, problémem bude zřejmě ta rozdílná mapa.
(0003317)
Whitey (správce)
22.12.2013 - 08:55

Změna mapy ošetřena, lze otestovat.
(0003320)
Galran (reportér)
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 (správce)
24.12.2013 - 23:58

Na ty týmy mrknu, stejně tak na ta mrtvá NPC.
(0003333)
Whitey (správce)
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 (reportér)
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 (správce)
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 (reportér)
06.01.2014 - 18:32

Funguje. :)
(0003365)
Whitey (správce)
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.

- Historie problému
Čas modifikace Uživatelské jméno Pole Změna
06.10.2013 - 14:43 Whitey Nový problém
06.10.2013 - 14:43 Whitey Stav nový => přiřazený
06.10.2013 - 14:43 Whitey Přiřazen => Whitey
10.10.2013 - 18:08 Whitey Poznámka přidána: 0003119
10.10.2013 - 18:08 Whitey Stav přiřazený => čeká na testy
12.10.2013 - 01:12 Stig Poznámka přidána: 0003123
12.10.2013 - 01:18 Stig Poznámka upravena: 0003123 Zobrazit revize
12.10.2013 - 10:33 Whitey Poznámka přidána: 0003124
12.10.2013 - 10:46 Whitey Poznámka přidána: 0003125
12.10.2013 - 11:54 Whitey Poznámka upravena: 0003125 Zobrazit revize
12.10.2013 - 12:39 Stig Poznámka přidána: 0003126
12.10.2013 - 12:41 Stig Poznámka upravena: 0003126 Zobrazit revize
12.10.2013 - 12:44 Stig Poznámka upravena: 0003126 Zobrazit revize
12.10.2013 - 12:47 Stig Poznámka upravena: 0003126 Zobrazit revize
12.10.2013 - 13:05 Whitey Poznámka přidána: 0003128
12.10.2013 - 13:43 Whitey Poznámka přidána: 0003131
12.10.2013 - 19:32 Whitey Poznámka přidána: 0003132
12.10.2013 - 19:34 Whitey Poznámka upravena: 0003132 Zobrazit revize
20.10.2013 - 13:19 Galran Poznámka přidána: 0003146
20.10.2013 - 16:20 Whitey Poznámka přidána: 0003148
20.10.2013 - 16:21 Whitey Poznámka upravena: 0003148 Zobrazit revize
20.10.2013 - 16:21 Whitey Poznámka upravena: 0003148 Zobrazit revize
20.10.2013 - 16:47 Galran Poznámka přidána: 0003150
26.10.2013 - 11:59 Whitey Poznámka přidána: 0003161
26.10.2013 - 11:59 Whitey Stav čeká na testy => reakce
27.10.2013 - 10:38 Whitey Vztah přidán spojený s %id 0001213
18.12.2013 - 20:26 Stig Poznámka přidána: 0003315
22.12.2013 - 08:06 Whitey Poznámka přidána: 0003316
22.12.2013 - 08:06 Whitey Stav reakce => přiřazený
22.12.2013 - 08:55 Whitey Poznámka přidána: 0003317
22.12.2013 - 08:55 Whitey Stav přiřazený => čeká na testy
24.12.2013 - 12:37 Galran Poznámka přidána: 0003320
24.12.2013 - 23:58 Whitey Poznámka přidána: 0003323
24.12.2013 - 23:58 Whitey Stav čeká na testy => reakce
04.01.2014 - 10:49 Whitey Poznámka přidána: 0003333
04.01.2014 - 10:49 Whitey Stav reakce => přiřazený
04.01.2014 - 10:49 Whitey Stav přiřazený => čeká na testy
05.01.2014 - 11:47 Galran Poznámka přidána: 0003345
05.01.2014 - 12:17 Whitey Poznámka přidána: 0003347
06.01.2014 - 18:32 Galran Poznámka přidána: 0003357
06.01.2014 - 20:03 Whitey Poznámka přidána: 0003365
06.01.2014 - 20:03 Whitey Stav čeká na testy => uzavřený
06.01.2014 - 20:03 Whitey Řešení otevřený => vyřešený


Copyright © 2000 - 2024 MantisBT Team
Powered by Mantis Bugtracker