• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    ESYgr1d - A persistent multiplayer online programming game
    PJOTRIK
    PJOTRIK --- ---
    ad 1) vsak jsou oboji interfacy, tak snad dedi?

    jinak se nechci prit, vim ze mi to nefunguje, staci mi najit zpusob jak ziskat kolekci IAgentInfo ktera bude fungovat
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    PJOTRIK: Reknu to jinak. To moje funguje, to tvoje ne :).
    1) Nededi to, ale implementuje.
    2) Bohuzel se v jadre Gr1du pouziva linq-to-sql, kde zalezi na konkretnich instancich objektu. Nestaci, ze maji stejne rozhrani a stejny hodnoty.
    3) Ta funkce sice dle statickyho rozhrani ocekava IAgentInfo a ty ocekavas, ze kdyz tam posles cokoliv, co implementuje IAgentInfo, tak bude spravne. Ale ve skutecnosti ta funkce ocekava konkretni instance objektu, ktere shodou okolnosti vzdy implementuji IAgentInfo.
    PJOTRIK
    PJOTRIK --- ---
    TENCOKACISTROMY: to mi uplne nedava smysl...
    IKnownAgent<TAgent> je podedeny IAgentInfo, ktery navic pridava propertu Implementation typu TAgent. Mne o implementaci nejde, naopak potrebuju IAgentInfo
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    PJOTRIK: Uvedom si, ze metoda "GetInitialisedAgents<TAgent>" ti vraci rozhrani IKnownAgent<TAgent>. Pricemz instance agenta se nachazi az v property "Implementation". Cili potrebujes:
    Deck.GetInitialisedAgents<IAgent>
    .Where(a => a.Node.Sector == agentUpdate.Node.Sector)
    .Select(a => a.Implementation);
    



    Obecne: To ze nejakej objekt implementuje nejaky rozhrani, jeste neznamena ze tim objektem skutecne je. Muze to byt klidne jen wrapper (coz je tento pripad) nebo jinej "trik", jak zajistit treba pohodlny pouzivani nejakyho objektu z hlediska uzivatele-vyvojare.
    PJOTRIK
    PJOTRIK --- ---
    MATASX: ale KnownAgent dedi od IAgentInfo... to pretypovat neni problem, ale pak je tam nekde v kodu dalsi pretypovani, ktery uz neprojde

    a bokem, muzete mi nekdo poslat do areny nejakyho losera? zrovna je tam volno, tak bych si konecne moh vyplnit task...
    MATASX
    MATASX --- ---
    PJOTRIK: Tohle není uplně dobrej nápad, Deck.GetInitialisedAgents - tím dostaneš přímo instance svých agentů. Musíš použít třeba Node.AlliedAgents coz vraci kolekci rozhrani IAgentInfo (coz neni instance agenta). Pretypovani mezi IAgent a IAgentInfo asi neexistuje.
    PJOTRIK
    PJOTRIK --- ---
    na IRC mi zatim nikdo neporadil, tak se zeptam i tu.

    Jak poustite skilly ktery maj jako parametr kolekci agentu?
    zkousim this.Haste(Deck.GetInitialisedAgents<IAgent>().Select(ka => ka as IAgentInfo).Where(a => a.Node.Sector == agentUpdate.Node.Sector));
    do syslogu to vypise "Calling direct agent collection skill Haste @Pjotr(FiGrid.DefenderThree(3,2)),Pjotr(Experimental.SuccessiveHaste(5,1))" coz sedi, ale pak to vyhodi vyjimku
    System.InvalidCastException: Unable to cast object of type 'Gr1d.Runtime.KnownAgent`1[Gr1d.Api.Agent.IAgent]' to type 'Gr1d.Runtime.RuntimeAgent'.
    at Gr1d.Runtime.Skill.TargetAgentCollectionResult.GetRolledAgentResult(IEnumerable`1 targets, RuntimeAgent caster, Func`3 skill, Boolean wait) in C:\Users\Nathan\Projects\gr1d.org\source\Gr1d.Runtime\Skill\TargetAgentCollectionResult.cs:line 26
    at Gr1d.Runtime.Skill.SkillProvider.Direct(IAgent caster, Func`3 skill, IEnumerable`1 targets) in C:\Users\Nathan\Projects\gr1d.org\source\Gr1d.Runtime\Skill\SkillProvider.cs:line 367

    prijde mi to jako bug gridu, ale nejsem si jistej. Navic mi prijde divny ze by na to jeste nikdo nenarazil...
    SUK
    SUK --- ---
    GOSHEWAN: Netusim. V ticku delam bud presun nebo claim a nikdy jsem to nesledoval. Jen jednou jsem meril kolik mi to dava a bylo to trosku min, protoze mi nekdo nodiky uzira...
    GOSHEWAN
    GOSHEWAN --- ---
    (mluvime o teoreticke maximalni hodnote bez failu a za predpokladu vzdy claimable nodu)
    GOSHEWAN
    GOSHEWAN --- ---
    SUK: Ty mas 0.5 nodu na agenta za tick? Ja se porad jeste uplne neorientuju v tom warmup a cooldown, takze to asi chapu spatne, nicmene zatim jsem vychazel z toho, ze claim + move trvaji celkem 3 ticky -> maximalne 1/3 nodu na agenta za tick. Jak to tedy je?
    SUK
    SUK --- ---
    Hele, na to kaslu... za 480 ticku si nahrabu 4800 nodu. To mi za tu tisicovku expu a minusovy nody fakt nestoji :) Kdybys byl bliz, tak mozna...
    PJOTRIK
    PJOTRIK --- ---
    Mistni hackeri uz to asi vedi, ale potesilo... haste okamzite funguje i na sesilajiciho agenta takze toho desitkovyho cooldownu neni treba se bat :-)
    SUK
    SUK --- ---
    Tyvole! 480 ticku? To si ze me delate prdel ne? q
    GOSHEWAN
    GOSHEWAN --- ---
    SUK: Ty to mas za pekne dlouho. Uvidime jestli je posle znovu, az mu je (snad) opet killnu.
    SUK
    SUK --- ---
    Jdu :D
    GOSHEWAN
    GOSHEWAN --- ---
    Neni tu nekdo kdo si chce splnit defent another player task? Zde to je celkem zadarmo (:
    GOSHEWAN
    GOSHEWAN --- ---
    To by byla dost hloupa utilitka (: Na druhou stranu mi to dava alespon expy, kdyz uz nic jineho...
    SUK
    SUK --- ---
    Asi ma neajakou utilitku, co to dela za nej :D
    GOSHEWAN
    GOSHEWAN --- ---
    Hm, tak zatim na me ani jednou nezautocil, pouze mu zabijim agenty... co mi prijde ale divne je fakt, ze je na me okamzite posila znovu ackoli musi videt, ze nezvladaji (a to je posila tak, jak umrou, tzn. nesynchronizovane)
    ESY
    ESY --- ---
    GOSHEWAN: v ty dobe te nikdo nemuze raidovat a ty muzes pouzivat jen lvl 1 agenty :]
    Kliknutím sem můžete změnit nastavení reklam