Zrušení pronájmu

Pokud vás napadlo jak něco zlepšit, nebo chcete něco naopak zkritizovat

Moderátoři: Dungeon Servant, World Builder, Dungeon Master

Odpovědět
Uživatelský avatar
Alfray
Příspěvky: 1177
Registrován: 15. 8. 2006 20.59
Bydliště: Plzeň
Kontaktovat uživatele:

Zrušení pronájmu

Příspěvek od Alfray »

Nebylo by prosím možné přidat do dialogu u npc, co pronajímají byty, možnost zrušení dosavadního pronájmu?? Klidně i bez nějakého vracení zbytku nájmu, nebo podobných věcí. Prostě jen přerušení a odebrání klíče.
Uvedu to na konkrétním případě: Moje postava měla na dva ic roky pronajmutý byt v Amfiberai. Ale během té doby našetřila na větší byt a tak se po roce chtěla přestěhovat. Ale ouha, musí čekat ještě ic rok (ir 2 měsíce), než jí ten dosavadní nájem vyprší a bude si moct pronajmout ten větší.
Díky
acc.:skarbi
postavy: Luthor Waldenn
labir
Příspěvky: 6702
Registrován: 18. 12. 2005 1.27
Bydliště: Sídlo u Amfiberai, sféra Equilibrie
Kontaktovat uživatele:

Re: Zrušení pronájmu

Příspěvek od labir »

Alfray píše:Nebylo by prosím možné přidat do dialogu u npc, co pronajímají byty, možnost zrušení dosavadního pronájmu?? Klidně i bez nějakého vracení zbytku nájmu, nebo podobných věcí. Prostě jen přerušení a odebrání klíče.
Uvedu to na konkrétním případě: Moje postava měla na dva ic roky pronajmutý byt v Amfiberai. Ale během té doby našetřila na větší byt a tak se po roce chtěla přestěhovat. Ale ouha, musí čekat ještě ic rok (ir 2 měsíce), než jí ten dosavadní nájem vyprší a bude si moct pronajmout ten větší.
Díky
No technicky to jde dost blbě. Problém je s klíči co mohou být rozdistribuované po postavách a v nich je doba nájmu.
Když něco chcete, nevynucujte si to od okolí. Ptejte se, co vy sami pro to můžete udělat.
Uživatelský avatar
Alfray
Příspěvky: 1177
Registrován: 15. 8. 2006 20.59
Bydliště: Plzeň
Kontaktovat uživatele:

Příspěvek od Alfray »

Aha, myslel jsem, že to není vázané na klíč, ale na postavu.
acc.:skarbi
postavy: Luthor Waldenn
drake127
Příspěvky: 1753
Registrován: 20. 9. 2006 14.39
Bydliště: Jihlava

Příspěvek od drake127 »

Dovolím si navrhnout takovou věc, která by myslím zprůhlednila systém nájmů.

Bylo by pěkné, kdyby každý byt měl právě jeden originální klíč a jedině ten šlo prodlužovat a dělat z něj kopie. Po vypršení jejich platnosti by se musely udělat duplikáty z prodlouženého klíče znovu. Majitelem bytu by zůstávala postava, která si byt pronajala, ale pokud by pomocí originálního klíče prodloužil nájem někdo jiný, byt by se "přepsal".

To by dovolovalo odprodej bytu včetně uvolnění nájmu (ať už PC nebo NPC), stejně tak majiteli zůstává kontrola nad svým bytem (má jistotu, že po vypršení platnosti slave klíčů je v bytě zase sám) a systémově by se nemuselo myslet na několik výjimek, kdy přijde za správcem x postav se snahou prodloužit si "svůj" klíč.
Als sie mich holten, gab es keinen mehr, der protestieren konnte.
labir
Příspěvky: 6702
Registrován: 18. 12. 2005 1.27
Bydliště: Sídlo u Amfiberai, sféra Equilibrie
Kontaktovat uživatele:

Příspěvek od labir »

drake127 píše:Dovolím si navrhnout takovou věc, která by myslím zprůhlednila systém nájmů.

Bylo by pěkné, kdyby každý byt měl právě jeden originální klíč a jedině ten šlo prodlužovat a dělat z něj kopie. Po vypršení jejich platnosti by se musely udělat duplikáty z prodlouženého klíče znovu. Majitelem bytu by zůstávala postava, která si byt pronajala, ale pokud by pomocí originálního klíče prodloužil nájem někdo jiný, byt by se "přepsal".

To by dovolovalo odprodej bytu včetně uvolnění nájmu (ať už PC nebo NPC), stejně tak majiteli zůstává kontrola nad svým bytem (má jistotu, že po vypršení platnosti slave klíčů je v bytě zase sám) a systémově by se nemuselo myslet na několik výjimek, kdy přijde za správcem x postav se snahou prodloužit si "svůj" klíč.
To je sice hezké ale k ničemu. Zkus tohle napsat algoritmicky v možnostech NWN tak aby to nespamovalo databázi a nevytěžovalo server. Navíc jak píšeš "několik výjimek" - pokud už v návrhu systému do něj začneš tahat výjimky tak ti jako systémový programátor můžu zaručit že za chvíli to bude kotel výjimek a nebudeš vědět ani proč to dělá co to zrovna dělá. Není to nemožné napsat ale je to řádově obtížnější než je to teď (čili s řádově větší možnou chybovostí). Jak je to teď tak si troufnu tvrdit že to v 90% zcela postačuje.

Apropo když někdo nechce čekat na vypršení nájmu tak ho může IC přenechat někomu jinému. Třeba za náhradu, dotyčný bude mít kontrolu na klíči jak dlouho nájem trvá a může se stavit za správcem a ten také sdělí jak dlouho nájem ještě trvá.

Pro případné šťouraly, tento návrh je něco zcela jiného než v jiném topicu právě probírané "skoupím N nájmů přes prostředníka a ty přepustím dál", tohle je situace "nepotřebuji už tenhle nájem přepustím ho dál" což je korektní a nic se neobchází. Naopak to pomáhá aby nájmy neležely ladem ale dostaly se k těm co je potřebují.
Když něco chcete, nevynucujte si to od okolí. Ptejte se, co vy sami pro to můžete udělat.
drake127
Příspěvky: 1753
Registrován: 20. 9. 2006 14.39
Bydliště: Jihlava

Příspěvek od drake127 »

Heh, vždyť právě píšu, že by ses výjimkám vyhnul.

Na bytě se váže proměnná, kdo ho má pronajatý (to už musí být teď kvůli kontrole 1 postava max. 1 byt). Na klíči je boolean, jestli je master (nově).

V dialogu správce podmínka na přítomnost klíče v invu (to už je teď) a na ověření, zda je master (nově jedno && navíc), jinak se správce s PC odmítne bavit.

Vydání duplikátu klíče generuje slave verzi (s názvem "Duplikát klíče …"). Prodloužení klíče (jedině pomocí master klíče) přenastaví majitele (pokud už nemá jiný byt, v takovém případě ho správce klasicky vyhodí).

Konec. Žádné výjimky a problémy s dvojím prodlužováním klíčů, děláním duplikátů z duplikátů a neznámým počtem klíčů, nejasnostmi, komu posílat složeny a podobnými potížemi. Tj. má to i další výhody, než je jen předání bytu. A algoritmicky mi to naopak přijde jako zjednodušení.
Als sie mich holten, gab es keinen mehr, der protestieren konnte.
labir
Příspěvky: 6702
Registrován: 18. 12. 2005 1.27
Bydliště: Sídlo u Amfiberai, sféra Equilibrie
Kontaktovat uživatele:

Příspěvek od labir »

drake127 píše:Heh, vždyť právě píšu, že by ses výjimkám vyhnul.

Na bytě se váže proměnná, kdo ho má pronajatý (to už musí být teď kvůli kontrole 1 postava max. 1 byt). Na klíči je boolean, jestli je master (nově).

V dialogu správce podmínka na přítomnost klíče v invu (to už je teď) a na ověření, zda je master (nově jedno && navíc), jinak se správce s PC odmítne bavit.

Vydání duplikátu klíče generuje slave verzi (s názvem "Duplikát klíče …"). Prodloužení klíče (jedině pomocí master klíče) přenastaví majitele (pokud už nemá jiný byt, v takovém případě ho správce klasicky vyhodí).

Konec. Žádné výjimky a problémy s dvojím prodlužováním klíčů, děláním duplikátů z duplikátů a neznámým počtem klíčů, nejasnostmi, komu posílat složeny a podobnými potížemi. Tj. má to i další výhody, než je jen předání bytu.
Ale to by nefungovalo. Navíc jak to píšeš tak to teď není... A neřešíš vůbec případ vypršení pronájmu. A to všechny možnosti, vrací klíč master, vrací klíč ne-master, vrácení nájmu masterem - musí se znevalidnit non-master klíče které jsou v nenalogovaných postavách (a tudíž jsou nedetekovatelné a nedostupné) a to tak že pokud si ten byt pronajme mezitím od vrácení jiná postava tak že stejně postava se starým klíčem jenž se zatím nenalogovala a naloguje se nyní o klíč přijde (i když je u toho bytu veden nájem, ale na někoho jiného). A to i v případě že majitel master klíče není nalogovaný (tudíž systém neví ani kde je). Další případ kdy si postava položí master klíč na zem a zavede si další nájem, způsob jak udělat automatické převedení ze současného stavu atd.…

Těhlech možných kombinací je enormní množství a ošetřeny musí být všechny a to jedním systémem. Ten současný je řeší (téměř) všechny. Ten tvůj tohle ani snad řešit nemůže. Akorát holt současný systém není pohodlný ve vracení nájmu (přijdu-kliknu-odejdu), ale musí se postava snažit IC.

Nehledě na to že systém nájmů je obecný a řeší i adeptské klíče na MUNI, pokoje v hostincích a i částečně jiné věci. Prostě se v systému nájmů vrtat nebudu. přineslo by to víc škody než užitku o investici nemluvě.
Když něco chcete, nevynucujte si to od okolí. Ptejte se, co vy sami pro to můžete udělat.
Uživatelský avatar
Alfray
Příspěvky: 1177
Registrován: 15. 8. 2006 20.59
Bydliště: Plzeň
Kontaktovat uživatele:

Příspěvek od Alfray »

labir píše:Apropo když někdo nechce čekat na vypršení nájmu tak ho může IC přenechat někomu jinému. Třeba za náhradu, dotyčný bude mít kontrolu na klíči jak dlouho nájem trvá a může se stavit za správcem a ten také sdělí jak dlouho nájem ještě trvá.
Jestli se toho starého pronájmu takhle "zbavím", tak potom je to v pořádku. Šlo o to, že jsem myslel, že se to váže na postavu. Protože i když jsem klíč položil na zem a chtěl zkusit jestli to nepůjde, tak nešlo. Ale to asi jen jedno z opatření :smile:

Klidně to tu zahoďte, ať to nepřekáží
acc.:skarbi
postavy: Luthor Waldenn
labir
Příspěvky: 6702
Registrován: 18. 12. 2005 1.27
Bydliště: Sídlo u Amfiberai, sféra Equilibrie
Kontaktovat uživatele:

Příspěvek od labir »

Alfray píše:
labir píše:Apropo když někdo nechce čekat na vypršení nájmu tak ho může IC přenechat někomu jinému. Třeba za náhradu, dotyčný bude mít kontrolu na klíči jak dlouho nájem trvá a může se stavit za správcem a ten také sdělí jak dlouho nájem ještě trvá.
Jestli se toho starého pronájmu takhle "zbavím", tak potom je to v pořádku. Šlo o to, že jsem myslel, že se to váže na postavu. Protože i když jsem klíč položil na zem a chtěl zkusit jestli to nepůjde, tak nešlo. Ale to asi jen jedno z opatřeni :bigwink:

Klidně to tu zahoďte, ať to nepřekáží
Ano je to vázané na postavu, kvůli tomu aby se nedaly tak jednoduše skupovat nájmy. Ale kdo má klíč tak může odemknout. Jen si to asi nebude moct prodloužit. A tvá postava si klidně může pronajmout byt v jiné lokalitě, je to vázáno na postavu a lokalitu (tj. nelze mít na postavu 2 byty v Amfiberai, ale byt v Amfiberai a v Tirianu ano).
Když něco chcete, nevynucujte si to od okolí. Ptejte se, co vy sami pro to můžete udělat.
drake127
Příspěvky: 1753
Registrován: 20. 9. 2006 14.39
Bydliště: Jihlava

Příspěvek od drake127 »

Jo, já vůbec nechci duplikáty adresovat systémově (vyjma jejich zničení na konci jejich období, což se děje už teď), protože PC majitele by o nich mělo 100% přehled a jestli prodá byt i když ví, že existují jiné klíče, lze to řešit IC interakcí postav, správce to zajímat nemusí. A ty klíče tak či onak max. do roka vyprší.

Nutnost, aby tedy každý rok majitel bytu znovu nechal vyrobit duplikáty a předal je příslušným postavám považuji za klad.

Ad položení klíče: Majitelem bytu by byl ten, který by nájem naposledy prodloužil u správce master klíčem, ne ten, který by ho měl zrovna u sebe. Takže položit na zem by nepomohlo.

V hostincích, ani na MUNI nelze vydávat duplikáty (všechny klíče jsou master) a tudíž by je to nijak neovlivnilo.

Samozřejmě je to jen návrh. Pokud se ti v tom vrtat nechce, není to myslím nijak zvlášť třeba. Mě by se spíš než možnost vrátit nájem líbila právě ta featura, že předám klíč, druhý den si ho vezmu a měl bych jistotu, že ho postava nezduplikovala půlce serveru.
Naposledy upravil(a) drake127 dne 3. 12. 2008 13.44, celkem upraveno 1 x.
Als sie mich holten, gab es keinen mehr, der protestieren konnte.
labir
Příspěvky: 6702
Registrován: 18. 12. 2005 1.27
Bydliště: Sídlo u Amfiberai, sféra Equilibrie
Kontaktovat uživatele:

Příspěvek od labir »

drake127 píše:Jo, já vůbec nechci duplikáty adresovat systémově (vyjma jejich zničení na konci jejich období, což se děje už teď), protože PC majitele by o nich mělo 100% přehled a jestli prodá byt i když ví, že existují jiné klíče, lze to řešit IC interakcí postav, správce to zajímat nemusí. A ty klíče tak či onak max. do roka vyprší.

Nutnost, aby tedy každý rok majitel bytu znovu nechal vyrobit duplikáty a předal je příslušným postavám považuji za klad.

Ad položení klíče: Majitelem bytu by byl ten, který by nájem naposledy prodloužil u správce master klíčem, ne ten, který by ho měl zrovna u sebe. Takže položit na zem by nepomohlo.

V hostincích, ani na MUNI nelze vydávat duplikáty (všechny klíče jsou master) a tudíž by je to nijak neovlivnilo.
Ech... ty jsi to představuješ strašně jednoduše. Jak bez systémového zápisu poznám po nalogování postavy, že vypršel pronájem toho a toho duplikátu? A jak u něj poznám že to vypršelo přesto, že je byt veden jako obsazený, protože vypršení proběhlo v době kdy duplikát byl na nedostupné (nenalogované) postavě a mezitím se stihl nájem opět prodat ale nikdo jiný nalogovaný není? To není tak že 1.1. se vynulují duplikáty. To je pronájem na N IC minut dopředu v rozpětí od 8 hodin do 1 roku času. Když se nad tím zamyslíš tak zjistíš že máš jen představu, ale velmi děravou a víš co by jsi chtěl ale nevíš (a někdy to ani nejde) jak toho dosáhnout. A mezi co a jak je dost podstatný rozdíl.
Když něco chcete, nevynucujte si to od okolí. Ptejte se, co vy sami pro to můžete udělat.
drake127
Příspěvky: 1753
Registrován: 20. 9. 2006 14.39
Bydliště: Jihlava

Příspěvek od drake127 »

Měl jsem za to, že na každém klíči je timestamp, kdy vyprší (NOW() + 3600*24*28*12) a kontrola validity probíhá při lognutí se a při pokusu jím odemčít. (protože neplatný klíč zmizí až v době, kdy vejdu do podezřelé oblasti, restartu serveru, snad relogu).

Samozřejmě, nemám v ruce tvé zdrojáky (mohl jsi to napsal úplně jinak, než si myslím a přepsat to dle mého návrhu by znamenalo přepsat to od začátku, což je samozřejmě nesmysl a to ani to nechci) a neznám konkrétní NWN skriptovací háčky, ale představu implementace například v C++ mám. Ostatně taky jsem programátor.
Als sie mich holten, gab es keinen mehr, der protestieren konnte.
maliarda
Příspěvky: 279
Registrován: 24. 5. 2007 10.05
Kontaktovat uživatele:

Příspěvek od maliarda »

labir píše: …...Ano je to vázané na postavu, kvůli tomu aby se nedaly tak jednoduše skupovat nájmy. Ale kdo má klíč tak může odemknout. Jen si to asi nebude moct prodloužit... .
Pokud postava převezme po jiné byt a dostane klíč - lze nájem bez problémů prodloužit
Rina
Donie
Uživatelský avatar
Alfray
Příspěvky: 1177
Registrován: 15. 8. 2006 20.59
Bydliště: Plzeň
Kontaktovat uživatele:

Příspěvek od Alfray »

Tak proto jsem narazil. Chtěl jsem větší byt v Amfiberai o patro výš.
acc.:skarbi
postavy: Luthor Waldenn
labir
Příspěvky: 6702
Registrován: 18. 12. 2005 1.27
Bydliště: Sídlo u Amfiberai, sféra Equilibrie
Kontaktovat uživatele:

Příspěvek od labir »

drake127 píše:Měl jsem za to, že na každém klíči je timestamp, kdy vyprší (NOW() + 3600*24*28*12) a kontrola validity probíhá při lognutí se a při pokusu jím odemčít. (protože neplatný klíč zmizí až v době, kdy vejdu do podezřelé oblasti, restartu serveru, snad relogu).

Samozřejmě, nemám v ruce tvé zdrojáky (mohl jsi to napsal úplně jinak, než si myslím a přepsat to dle mého návrhu by znamenalo přepsat to od začátku, což je samozřejmě nesmysl a to ani to nechci) a neznám konkrétní NWN skriptovací háčky, ale představu implementace například v C++ mám. Ostatně taky jsem programátor.
No jenže psát pro NWN je trochu dost jiné než byť multithread C++ aplikace. Tady není zaručeno nic. Je třeba neustále počítat s tím že informace nejsou k dispozici nijak - jasně že se provádí takováhle kontrola, ale neřeší ti to tu věc s mezidobým pronájmem.
Když něco chcete, nevynucujte si to od okolí. Ptejte se, co vy sami pro to můžete udělat.
drake127
Příspěvky: 1753
Registrován: 20. 9. 2006 14.39
Bydliště: Jihlava

Příspěvek od drake127 »

Myslíš jako že koupím byt, udělám duplicitní klíče, vrátím byt zpět NPC a mám funkční klíče? To máš pravdu, že mnou navrhovaná implementace neumožňuje zpětný odkup bytů pomocí NPC (u PC lze zahrát bez systému).

Pokud by taková featura byla v zadání, pravděpodobně bych na (duplicitní) klíč uložil ještě jednu proměnnou uchovávající ID pronájmu (v jakékoliv formě, ať už autoincrement, concat(accountu, jméno postavy)), jehož platnost by se kontrolovala spolu s ověřením času.

Pravda, je to další proměnná navíc, jeden výraz v dotazu na platnost klíče a možná také úprava struktury databáze bytů.

A pokud by něco z toho na itemu neexistovalo, potom bys prostě ty dveře neotevřel.
Als sie mich holten, gab es keinen mehr, der protestieren konnte.
labir
Příspěvky: 6702
Registrován: 18. 12. 2005 1.27
Bydliště: Sídlo u Amfiberai, sféra Equilibrie
Kontaktovat uživatele:

Příspěvek od labir »

drake127 píše:

A pokud by něco z toho na itemu neexistovalo, potom bys prostě ty dveře neotevřel.
Tohle nelze v NWN zajistit. Otevření dveří je hardcoded. Prostě se provede pokud máš klíč s nastaveným tagem. Jediná možnost jak to udělat pokud bys to chtěl takhle je udělat to stejně jako dveře do obchodů - dvojité otevírání vždy zamčených dveří.
Když něco chcete, nevynucujte si to od okolí. Ptejte se, co vy sami pro to můžete udělat.
drake127
Příspěvky: 1753
Registrován: 20. 9. 2006 14.39
Bydliště: Jihlava

Příspěvek od drake127 »

Ten tag se ale už nyní musí (nějak) nastavovat v závislosti na (časové) platnosti klíče, přidání porovnání na match majitele by snad šlo; ale věděl jsem, že NWN je expert na takové "drobné" komplikace.

Obchodní dveře raději ne, protože se běžně dělá, že se pomocí klíče dveře odemknou a návštěvy pak mohou odejít samy bez klíče, což by s "obchodními" dveřmi nešlo*.

*) čtěte: nejspíš šlo, ale nevyplatilo by se to implementovat.
Als sie mich holten, gab es keinen mehr, der protestieren konnte.
labir
Příspěvky: 6702
Registrován: 18. 12. 2005 1.27
Bydliště: Sídlo u Amfiberai, sféra Equilibrie
Kontaktovat uživatele:

Příspěvek od labir »

drake127 píše:Ten tag se ale už nyní musí (nějak) nastavovat v závislosti na (časové) platnosti klíče, přidání porovnání na match majitele by snad šlo; ale věděl jsem, že NWN je expert na takové "drobné" komplikace. ..
No to právě taky nelze. Tag lze nastavit pouze při vzniku itemu. Tj. jakákoliv změna se projeví "poskočením klíče v inventáři" protože starý je třeba okopírovat se změnou tagu a vymazat. Což může generovat další problémy typu co když má postava zcela plný inventář - pak ten nový klíč vypadne na zem (a toho si málokdo všimne). Nebo při vytížení možnost zpomalení (i dost citelně) smazání klíče. Když mezitím dojde k zneplatnění objektu postavy, což se děje běžně čas od času a pak se to zase chytne nebo při levelupu (proto když čekáte na odplutí lodi tak si level-up nedělejte - neodpluli byste), tak se ten klíč nesmaže nikdy.

Navíc itemy nemají vůbec žádné události, tj. je nutné je hlídat externě. Čili nastavení tagu itemu v časové závislosti je zcela vyloučeno (a to nepočítám s takovými drobnostmi jako odlogování postavy, změna levelu a tím zneplatnění jejího objektu atd...). Takovýhlech problémů je NWN úplně plné. Ono je spousta možností jak vylepšit algoritmy, ale někdy to prostě právě kvůli brutálním omezením NWN engine není možné a musí se to dělat oklikami aby to vůbec nějak fungovalo.
Když něco chcete, nevynucujte si to od okolí. Ptejte se, co vy sami pro to můžete udělat.
Uživatelský avatar
Arto
Příspěvky: 4101
Registrován: 19. 2. 2006 14.35
Kontaktovat uživatele:

Příspěvek od Arto »

Možnost vrácení klíče v hostinci přes rozhovor s NPC hostinským, v případě dalšího nevyužití a tím uvolnění pokoje by se velmi hodilo. Obzvláště nyní, když je Amfiberai často zaplněno...
Wanting something does not give you the right to have it.
Odpovědět